From b17ff081d6bc6c63ad3909c954d964a4d358554b Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 11 Sep 2017 09:35:27 +0200 Subject: [PATCH 01/46] Added the FirmwareUpdateChecker to Cura - CURA-4224 --- .../FirmwareUpdateChecker.py | 33 ++++++++ .../FirmwareUpdateCheckerJob.py | 79 +++++++++++++++++++ plugins/FirmwareUpdateChecker/__init__.py | 14 ++++ plugins/FirmwareUpdateChecker/plugin.json | 8 ++ 4 files changed, 134 insertions(+) create mode 100644 plugins/FirmwareUpdateChecker/FirmwareUpdateChecker.py create mode 100644 plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py create mode 100644 plugins/FirmwareUpdateChecker/__init__.py create mode 100644 plugins/FirmwareUpdateChecker/plugin.json diff --git a/plugins/FirmwareUpdateChecker/FirmwareUpdateChecker.py b/plugins/FirmwareUpdateChecker/FirmwareUpdateChecker.py new file mode 100644 index 0000000000..3b58a56481 --- /dev/null +++ b/plugins/FirmwareUpdateChecker/FirmwareUpdateChecker.py @@ -0,0 +1,33 @@ +# Copyright (c) 2015 Ultimaker B.V. +# Cura is released under the terms of the AGPLv3 or higher. + +from UM.Extension import Extension +from UM.Preferences import Preferences +from UM.i18n import i18nCatalog + +from .FirmwareUpdateCheckerJob import FirmwareUpdateCheckerJob + +i18n_catalog = i18nCatalog("cura") + + +## This Extension checks for new versions of the firmware based on the latest checked version number. +# The plugin is currently only usable for applications maintained by Ultimaker. But it should be relatively easy +# to change it to work for other applications. +class FirmwareUpdateChecker(Extension): + url = "http://software.ultimaker.com/jedi/releases/latest.version" + + def __init__(self): + super().__init__() + + Preferences.getInstance().addPreference("info/latest_checked_firmware", "") + self.checkFirmwareVersion(True) + + ## Connect with software.ultimaker.com, load latest.version and check version info. + # If the version info is different from the current version, spawn a message to + # allow the user to download it. + # + # \param silent type(boolean) Suppresses messages other than "new version found" messages. + # This is used when checking for a new firmware version at startup. + def checkFirmwareVersion(self, silent = False): + job = FirmwareUpdateCheckerJob(silent = silent, url = self.url) + job.start() \ No newline at end of file diff --git a/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py b/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py new file mode 100644 index 0000000000..913ac96025 --- /dev/null +++ b/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py @@ -0,0 +1,79 @@ +# Copyright (c) 2015 Ultimaker B.V. +# Cura is released under the terms of the AGPLv3 or higher. + +from UM.Preferences import Preferences +from UM.Application import Application +from UM.Message import Message +from UM.Logger import Logger +from UM.Job import Job + +import urllib.request +import codecs + +from PyQt5.QtCore import QUrl +from PyQt5.QtGui import QDesktopServices + + +from UM.i18n import i18nCatalog +i18n_catalog = i18nCatalog("cura") + + +## This job checks if there is an update available on the provided URL. +class FirmwareUpdateCheckerJob(Job): + def __init__(self, silent = False, url = None): + super().__init__() + self.silent = silent + self._url = url + self._download_url = None # If an update was found, the download_url will be set to the location of the new version. + + ## Callback for the message that is spawned when there is a new version. + def actionTriggered(self, message, action): + if action == "download": + if self._download_url is not None: + QDesktopServices.openUrl(QUrl(self._download_url)) + + def run(self): + self._download_url = None # Reset download ur. + if not self._url: + Logger.log("e", "Can not check for a new release. URL not set!") + return + + Logger.log("i", "Checking for new version of firmware") + try: + request = urllib.request.Request(self._url) + current_version_file = urllib.request.urlopen(request) + reader = codecs.getreader("utf-8") + + # Nothing to parse, just get the string + # TODO: In the future may be done by parsing a JSON file + current_version = reader(current_version_file).readline().rstrip() + Logger.log("i", "Reading firmware version: %s" % current_version) + + # If it is the first time the version is checked, the checked_version is None + checked_version = Preferences.getInstance().getValue("info/latest_checked_firmware") + active_machine = Preferences.getInstance().getValue("cura/active_machine") + # If it is not None, then we compare between the checked_version and the current_version + # Now we just do that if the active printer is Ultimaker 3 or Ultimaker 3 Extended + if ((active_machine == "Ultimaker 3 Extended") or (active_machine == "Ultimaker 3"))\ + and ((checked_version is None) or (checked_version != current_version)): + message = Message(i18n_catalog.i18nc("@info", "New %s firmware available

To ensure that your " + "%s is equiped with the latest features it is recommended " + "to update the firmware regularly. This can be done on the " + "%s (when connected to the network) or via USB." + % (active_machine, active_machine, active_machine))) + message.addAction("download", i18n_catalog.i18nc("@action:button", "Download"), "[no_icon]", "[no_description]") + + # If we do this in a cool way, the download url should be available in the JSON file + self._download_url = "https://ultimaker.com/en/resources/20500-upgrade-firmware" + message.actionTriggered.connect(self.actionTriggered) + # Sometimes it's shown, sometimes not + #message.show() + Application.getInstance().showMessage(message) + + Preferences.getInstance().setValue("info/latest_checked_firmware", current_version) + + except Exception as e: + Logger.log("w", "Failed to check for new version: %s" % e) + if not self.silent: + Message(i18n_catalog.i18nc("@info", "Could not access update information.")).show() + return \ No newline at end of file diff --git a/plugins/FirmwareUpdateChecker/__init__.py b/plugins/FirmwareUpdateChecker/__init__.py new file mode 100644 index 0000000000..5da6130772 --- /dev/null +++ b/plugins/FirmwareUpdateChecker/__init__.py @@ -0,0 +1,14 @@ +# Copyright (c) 2015 Ultimaker B.V. +# Cura is released under the terms of the AGPLv3 or higher. + +from UM.i18n import i18nCatalog +from . import FirmwareUpdateChecker + +i18n_catalog = i18nCatalog("cura") + +def getMetaData(): + return { + } + +def register(app): + return { "extension": FirmwareUpdateChecker.FirmwareUpdateChecker()} diff --git a/plugins/FirmwareUpdateChecker/plugin.json b/plugins/FirmwareUpdateChecker/plugin.json new file mode 100644 index 0000000000..d6a9f9fbd7 --- /dev/null +++ b/plugins/FirmwareUpdateChecker/plugin.json @@ -0,0 +1,8 @@ +{ + "name": "Firmware Update Checker", + "author": "Ultimaker B.V.", + "version": "1.0.0", + "description": "Checks for firmware updates.", + "api": 4, + "i18n-catalog": "cura" +} From a8ff1e188f9e5856003264d796763dac5aaaf18c Mon Sep 17 00:00:00 2001 From: Tim Kuipers Date: Wed, 26 Jul 2017 15:24:42 +0200 Subject: [PATCH 02/46] feat: Cross infill types and zig_zaggify_infill --- resources/definitions/fdmprinter.def.json | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 0e871ffad5..8cb8043cdb 100755 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -1365,7 +1365,9 @@ "quarter_cubic": "Quarter Cubic", "concentric": "Concentric", "concentric_3d": "Concentric 3D", - "zigzag": "Zig Zag" + "zigzag": "Zig Zag", + "cross": "Cross", + "cross_3d": "Cross 3D" }, "default_value": "grid", "enabled": "infill_sparse_density > 0", @@ -1373,6 +1375,15 @@ "limit_to_extruder": "infill_extruder_nr", "settable_per_mesh": true }, + "zig_zaggify_infill": + { + "label": "Connect Infill Lines", + "description": "Connect the ends where the infill pattern meets the inner wall using a lines which follows the shape of the inner wall. Enabling this setting can make the infill adhere to the walls better and reduces the effects on infill on the quality of vertical surfaces. Disabling this setting reduces the amount of material used.", + "type": "bool", + "default_value": true, + "enabled": "infill_pattern == 'cross' or infill_pattern == 'cross_3d'", + "settable_per_mesh": true + }, "infill_angles": { "label": "Infill Line Directions", From be6dcdafbdc336b886278831dc1f06122a1ba01c Mon Sep 17 00:00:00 2001 From: Tim Kuipers Date: Wed, 26 Jul 2017 18:10:25 +0200 Subject: [PATCH 03/46] lil: explicitly set cross infill density --- resources/definitions/fdmprinter.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 8cb8043cdb..39c1343870 100755 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -1343,7 +1343,7 @@ "default_value": 2, "minimum_value": "0", "minimum_value_warning": "infill_line_width", - "value": "0 if infill_sparse_density == 0 else (infill_line_width * 100) / infill_sparse_density * (2 if infill_pattern == 'grid' else (3 if infill_pattern == 'triangles' or infill_pattern == 'cubic' or infill_pattern == 'cubicsubdiv' else (2 if infill_pattern == 'tetrahedral' or infill_pattern == 'quarter_cubic' else 1)))", + "value": "0 if infill_sparse_density == 0 else (infill_line_width * 100) / infill_sparse_density * (2 if infill_pattern == 'grid' else (3 if infill_pattern == 'triangles' or infill_pattern == 'cubic' or infill_pattern == 'cubicsubdiv' else (2 if infill_pattern == 'tetrahedral' or infill_pattern == 'quarter_cubic' else (1 if infill_pattern == 'cross' or infill_pattern == 'cross_3d' else 1))))", "limit_to_extruder": "infill_extruder_nr", "settable_per_mesh": true } From 80992dd44c6bd6ea82beea8ef2c89f7a99c25e05 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Tue, 12 Sep 2017 17:22:17 +0200 Subject: [PATCH 04/46] The checker now runs also when the user adds a new printer - CURA-4224 --- .../FirmwareUpdateChecker.py | 21 +++++-- .../FirmwareUpdateCheckerJob.py | 55 +++++++++++-------- 2 files changed, 48 insertions(+), 28 deletions(-) diff --git a/plugins/FirmwareUpdateChecker/FirmwareUpdateChecker.py b/plugins/FirmwareUpdateChecker/FirmwareUpdateChecker.py index 3b58a56481..f20b8be584 100644 --- a/plugins/FirmwareUpdateChecker/FirmwareUpdateChecker.py +++ b/plugins/FirmwareUpdateChecker/FirmwareUpdateChecker.py @@ -1,11 +1,14 @@ # Copyright (c) 2015 Ultimaker B.V. # Cura is released under the terms of the AGPLv3 or higher. - +from UM.Application import Application from UM.Extension import Extension from UM.Preferences import Preferences +from UM.Logger import Logger from UM.i18n import i18nCatalog +from cura.Settings.GlobalStack import GlobalStack from .FirmwareUpdateCheckerJob import FirmwareUpdateCheckerJob +from UM.Settings.ContainerRegistry import ContainerRegistry i18n_catalog = i18nCatalog("cura") @@ -19,8 +22,18 @@ class FirmwareUpdateChecker(Extension): def __init__(self): super().__init__() + # Initialize the Preference called `latest_checked_firmware` that stores the last version + # checked for the UM3. In the future if we need to check other printers' firmware Preferences.getInstance().addPreference("info/latest_checked_firmware", "") - self.checkFirmwareVersion(True) + + # Listen to a Signal that indicates a change in the active printer + ContainerRegistry.getInstance().containerAdded.connect(self._onContainerAdded) + + def _onContainerAdded(self, container): + # Only take care when a new GlobaStack was added + if (isinstance(container, GlobalStack)): + Logger.log("i", "You have a '%s' in printer list. Let's check the firmware!" % container.getId()) + self.checkFirmwareVersion(container, True) ## Connect with software.ultimaker.com, load latest.version and check version info. # If the version info is different from the current version, spawn a message to @@ -28,6 +41,6 @@ class FirmwareUpdateChecker(Extension): # # \param silent type(boolean) Suppresses messages other than "new version found" messages. # This is used when checking for a new firmware version at startup. - def checkFirmwareVersion(self, silent = False): - job = FirmwareUpdateCheckerJob(silent = silent, url = self.url) + def checkFirmwareVersion(self, container = None, silent = False): + job = FirmwareUpdateCheckerJob(container = container, silent = silent, url = self.url) job.start() \ No newline at end of file diff --git a/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py b/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py index 913ac96025..9e0db57ed7 100644 --- a/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py +++ b/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py @@ -20,8 +20,9 @@ i18n_catalog = i18nCatalog("cura") ## This job checks if there is an update available on the provided URL. class FirmwareUpdateCheckerJob(Job): - def __init__(self, silent = False, url = None): + def __init__(self, container = None, silent = False, url = None): super().__init__() + self._container = container self.silent = silent self._url = url self._download_url = None # If an update was found, the download_url will be set to the location of the new version. @@ -38,38 +39,44 @@ class FirmwareUpdateCheckerJob(Job): Logger.log("e", "Can not check for a new release. URL not set!") return - Logger.log("i", "Checking for new version of firmware") try: request = urllib.request.Request(self._url) current_version_file = urllib.request.urlopen(request) reader = codecs.getreader("utf-8") - # Nothing to parse, just get the string - # TODO: In the future may be done by parsing a JSON file - current_version = reader(current_version_file).readline().rstrip() - Logger.log("i", "Reading firmware version: %s" % current_version) + machine_name = self._container.getId() - # If it is the first time the version is checked, the checked_version is None - checked_version = Preferences.getInstance().getValue("info/latest_checked_firmware") - active_machine = Preferences.getInstance().getValue("cura/active_machine") # If it is not None, then we compare between the checked_version and the current_version - # Now we just do that if the active printer is Ultimaker 3 or Ultimaker 3 Extended - if ((active_machine == "Ultimaker 3 Extended") or (active_machine == "Ultimaker 3"))\ - and ((checked_version is None) or (checked_version != current_version)): - message = Message(i18n_catalog.i18nc("@info", "New %s firmware available

To ensure that your " - "%s is equiped with the latest features it is recommended " - "to update the firmware regularly. This can be done on the " - "%s (when connected to the network) or via USB." - % (active_machine, active_machine, active_machine))) - message.addAction("download", i18n_catalog.i18nc("@action:button", "Download"), "[no_icon]", "[no_description]") + # Now we just do that if the active printer is Ultimaker 3 or Ultimaker 3 Extended or any + # other Ultimaker 3 that will come in the future + if (machine_name[0:11] == "Ultimaker 3"): - # If we do this in a cool way, the download url should be available in the JSON file - self._download_url = "https://ultimaker.com/en/resources/20500-upgrade-firmware" - message.actionTriggered.connect(self.actionTriggered) - # Sometimes it's shown, sometimes not - #message.show() - Application.getInstance().showMessage(message) + # Nothing to parse, just get the string + # TODO: In the future may be done by parsing a JSON file with diferent version for each printer model + current_version = reader(current_version_file).readline().rstrip() + Logger.log("i", "Reading firmware version of %s: %s" % (machine_name, current_version)) + # If it is the first time the version is checked, the checked_version is None + checked_version = Preferences.getInstance().getValue("info/latest_checked_firmware") + + # If the checked_version is '', it's because is the first time we check firmware and in this case + # we will not show the notification, but we will store it for the next time + if (checked_version != "") and (checked_version != current_version): + message = Message(i18n_catalog.i18nc("@info", "New %s firmware available

To ensure that your " + "%s is equiped with the latest features it is recommended " + "to update the firmware regularly. This can be done on the " + "%s (when connected to the network) or via USB." + % (machine_name, machine_name, machine_name))) + message.addAction("download", i18n_catalog.i18nc("@action:button", "Download"), "[no_icon]", "[no_description]") + + # If we do this in a cool way, the download url should be available in the JSON file + self._download_url = "https://ultimaker.com/en/resources/20500-upgrade-firmware" + message.actionTriggered.connect(self.actionTriggered) + Application.getInstance().showMessage(message) + + # The first time we want to store the current version, the notification will not be shown, + # because the new version of Cura will be release before the firmware and we don't want to + # notify the user when no new firmware version is available. Preferences.getInstance().setValue("info/latest_checked_firmware", current_version) except Exception as e: From 37ec3bbb26fb8aa027c4e4f9e558e82d55359f9b Mon Sep 17 00:00:00 2001 From: Tim Kuipers Date: Tue, 12 Sep 2017 18:19:59 +0200 Subject: [PATCH 05/46] cross pattern for support --- resources/definitions/fdmprinter.def.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 39c1343870..33ec19acd8 100755 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -3366,7 +3366,8 @@ "triangles": "Triangles", "concentric": "Concentric", "concentric_3d": "Concentric 3D", - "zigzag": "Zig Zag" + "zigzag": "Zig Zag", + "cross": "Cross" }, "default_value": "zigzag", "enabled": "support_enable", From 15790b3965b76cf6d941aeab59b5b01bc7eb01e3 Mon Sep 17 00:00:00 2001 From: Tim Kuipers Date: Tue, 12 Sep 2017 19:18:28 +0200 Subject: [PATCH 06/46] feat: cross 3d experimental algorithm parameters --- resources/definitions/fdmprinter.def.json | 24 +++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 33ec19acd8..01b2b0b498 100755 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -5186,6 +5186,30 @@ "limit_to_extruder": "top_bottom_extruder_nr", "settable_per_mesh": true }, + "cross_infill_pocket_size": + { + "label": "Cross 3D Pocket Size", + "description": "The size of pockets at four-way crossings in the cross 3D pattern at heights where the pattern is touching itself.", + "unit": "mm", + "type": "float", + "default_value": 2.0, + "value": "infill_line_distance", + "minimum_value": "0", + "maximum_value_warning": "infill_line_distance * math.sqrt(2)", + "enabled": "infill_pattern == 'cross_3d'", + "limit_to_extruder": "infill_extruder_nr", + "settable_per_mesh": true + }, + "cross_infill_apply_pockets_alternatingly": + { + "label": "Alternate Cross 3D Pockets", + "description": "Only apply pockets at half of the four-way crossings in the cross 3D pattern and alternate the location of the pockets between heights where the pattern is touching itself.", + "type": "bool", + "default_value": true, + "enabled": "infill_pattern == 'cross_3d'", + "limit_to_extruder": "infill_extruder_nr", + "settable_per_mesh": true + }, "spaghetti_infill_enabled": { "label": "Spaghetti Infill", From aa2c7c2ff6a0b4d695d3499ed043e797b940dd12 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Wed, 13 Sep 2017 10:22:07 +0200 Subject: [PATCH 07/46] Checking first if the user has enabled the 'check for updates' preference - CURA-4224 --- plugins/FirmwareUpdateChecker/FirmwareUpdateChecker.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/plugins/FirmwareUpdateChecker/FirmwareUpdateChecker.py b/plugins/FirmwareUpdateChecker/FirmwareUpdateChecker.py index f20b8be584..994493a4e6 100644 --- a/plugins/FirmwareUpdateChecker/FirmwareUpdateChecker.py +++ b/plugins/FirmwareUpdateChecker/FirmwareUpdateChecker.py @@ -26,8 +26,11 @@ class FirmwareUpdateChecker(Extension): # checked for the UM3. In the future if we need to check other printers' firmware Preferences.getInstance().addPreference("info/latest_checked_firmware", "") - # Listen to a Signal that indicates a change in the active printer - ContainerRegistry.getInstance().containerAdded.connect(self._onContainerAdded) + # Listen to a Signal that indicates a change in the list of printers, just if the user has enabled the + # 'check for updates' option + Preferences.getInstance().addPreference("info/automatic_update_check", True) + if Preferences.getInstance().getValue("info/automatic_update_check"): + ContainerRegistry.getInstance().containerAdded.connect(self._onContainerAdded) def _onContainerAdded(self, container): # Only take care when a new GlobaStack was added From 4ed5796e6fb43daa7fd3503db61ae475959b81ae Mon Sep 17 00:00:00 2001 From: Mark Date: Wed, 13 Sep 2017 14:44:56 +0200 Subject: [PATCH 08/46] Small improvement on startupscreen CURA-4215 --- resources/images/cura.png | Bin 55074 -> 52943 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/resources/images/cura.png b/resources/images/cura.png index ead100b28a9975b8cf983c10b6507db43897f17f..f3aacf32a768942f8243d620391c3a7a788de0b5 100644 GIT binary patch literal 52943 zcmd43hd-C^`#ydnBYQ?>NM=@&y`vXJ#uLewkz{Aj%oG}CHi>LW_R7j8A=#Vk6*Bsr zckj>lfB1RiQ9YlY_kG>hbzbLroX2rop50YfAt9tEL=c4JzgtRL2!gc--#Y|&@CsA3 zR6P8JXRfBA1b@TVkz$QM{B_>();$*lA#Fjwv0`~i8Q?{H*Z=O^#Gg4&LQE@qHC9j# zK`tTxDaq@2{9K#xG}N)2lHKY{3^7BTZoVSw;n0-7%I0!o+@(+TPS;01UN!A&@oBMY z6PCKsaa9la7o49zG}x$_b<3ZyT+Cv#qIa%Jf4WwdHpS8=HQRlO>k>}d!Ri8w@L1xe zxQon^cgh`23;TBz->*lW+CeZq!+lS3zk$@rzu}>nq~op0;ysku2u~x6))& za0S&>tKJT=vYDs9p(Qwf{yc_y!5Y!5kd7glR^eXQEuf^Jz)4XRWL3I`cq4SX9zX9P zzVBlEOU#v&{;D)n-aUVQR~{i9XYIyH=MOLmAr~mKRZ?2(|L`E>$Qn_`>ZjStmc>fo z%9d*4p@b_1svq3ww!o6|BXfB5j;nL4rKKgd;0lFM|Fa0$ud8Q+W;giXRU`{!Gj?{O zKc0K|rItOw0qZ-ws)NOaoY6KWX?5!BCWd#?GgGUyGA+&_1>7xy?XqU1NF-7~rEuFK z`&l@XgyulV5g*cw*gQYX(m^<}Tw}Gal4$`-+2pfSaZh2^wM&W4pZ}1>)k!g4D}SCQ>U4X1+xqnM)a1dxA>LFc z7@%!zz*@c+sSuAfeVu#389qk0tP^8)#u~6qyvt^Zzon?4pg>fpd;j^uC756uw}fJx z{^zk=q8&);Ypo5le-{d&n9o2&u|2|vDg`Fvwfw#cqZ78l(LIKBc%d<$X2xu;SS9KNLaEu8Af|L)3Z?}nRY+&QUV_az$cF+5- z?qB1>h5L2|_>=lQ$L>!V;(9`f+ae!dcf8>ofz@8tWpq9$5}Z1h&cG{=6d=|Aaaa8N$U*8Q2W-=e_RJ^m zvG3~B{AnLSWL|3-TXDmZ5%0ZbTAXm){haf3=n|PaLdTIk-ljz!Ycw8a{IU7uDw0IE z=!#E)d?sM6hxmlh=pfoHMqVIcKR%ecVS6a5UhLB%7wTV;A%rxkOTEB=)ZHVgR-ab6Nh^EO5!Y6a1RA9sw3?521|E3FhLm_+yh9T+7lU!7bWxpXnW_^8G=ANYMa{u<5 zD|aMd55ed+zSIf?h$Bz+NviwQ(Zp=njK2QC)Jz7qQ6Ev(4N?u~L-Mm@1WKr3(48g; zeOQ7oV$&(d3uU>p=gFnuIi=23Ati{M9{jA>wE(^B7&U!Di2Mc8-Qh~loKK+zc%HAy zk+!n?oRB&LUcP)e8Ij3{b2n<}l0Xb3ecor!o~^QpTEDx@`0UDGizi<``)e_xtj28t5#zR;Jvra;W_6_C-Y#2nvT6nw zB1^<718e*vBi>daybU2m2p(L|rPjt`#O>Es<-SLXe&%X-8WzNLa;E|gGEITB2a`+x z?+xzm9BewW#;~Du;bjJdMU|ThZh}{RBkbq`Vsy4*5Z;;RffWD8?G6z}?CL}ifG*meIRz!<&bv%5 zS?vCg^hzO}dm6a{kcQ}%Z%!ooBc?pO@;dJ>U?;F;--bXZB-6N$vvn}#Pe!3|@>P(N z=Ypc+?%roVG?exfNOt3{-jBlV6X4{rCq;y>2JX2W@7n;oD6^)ykURSPM zNrjxVVVub1Osi1a2G^lr*1_zDlg~c>_q_7WKFk4n$Z{nCc`O|%;w?ho^PHC7u(Ht^ zeG=-$FhpdjfRm^68&>WAVsgPG@giJGiGcOYG=VDCV*x3kQ1Fqm?4)KcP;DWV)=N0R z5~OOxNnTJgUJwj8$c`D)C(IO{%phXDf^~SKIr%H^_2ZoTY2C2HW=M?)wrT7qf5(K^ zPNg0m9ya`6itoIYPQ+@995TxJ_nK#Faa=^<1q~mrCO4TYs}d2iizTwS#=#R?faw0m zjsKBaDO;pJgnR;v5BKh~vbfyuHF)XKG0rS%@;VWu5mXAq*d?#b)OD@ zRS8$t762mRlFvE|B9Zs1++=0cEu<4fr!HfI6T~i=!o`vS`wHQje7L2G2f`Wfm6ykS z?(UniSK;=hw^fg%y5xvm1ug|IW0}$*?AELlRok3s@-*VZjioWZG0z`-=#Th4NTAYW zWQOD&1LG2fMhvXJnIL_$*ysHczrS5NW&OoVx|AYI6z zOC0%t?*mQhg=Z}-O2%eUwY|QwTu>NE0S$;##3C{Pk0=$or98GwIpczUWGu;ck02fq zWr5+U>3?wrpN<4^;(0N{m7mhwyhoPKZH+|{YwCui-Qu3I;0_Pm_!+B${R5FJIZ>MD z7{;Nynl06=b@x9^!7;3NG4i8NkdsYdkgAcCwIv^B{s;{y?f`dWS>KIqN9zKznjNE2 zMy+!N$B3YmQqDgvDO~m0ISi)8sMcfK{~jR^RUm(GZgkR8{EgNgq8nU%Fl081?3lrO zcsxV!)-qzs8eqV8jUv{(w9-@B!)?{ogr-B@NgKap?7i}vAV^rQcCP z`Y0J^t2Sl_QIoHjP5BlcUaR&P84D(7LAO~-c&_UqO`|FIf>Yd6Xa^`fi@6Y$VDeLa zLa3q?o;TP7Sc1uS0c_fSWF&TFW81M;q`5f?vD2(2*#9j2Yt0aTi86suQZ|>j$6ZDW z%@tSd#zC!4vACy95)^PX0t7#V+@X|u4gKNcQLL8P#fdS>d!*2+D9xvQf@VYvF4pP% zzl&l1C6lAghQG{ToMU7dojKWfyh*V=OjN7hWSfSmD=AIpa|Aq52;b(z#YurjNsHgmUY>_wu*0}!-Aa~DoweDR^*ge93x1X5!BhT7$ zEAD9^df_`nrtitkgUHz;7EIyMU%9VhnZ6;Pee!>A7t#lKDujpp-+iaZS(R$ZGnv$y z;USardyTAt#u>-)efO)68A1|Z(Y2oZ#GrAES1<#RI}xW4B6h)(V>=bT}FbM0;c?q zN$ywJU)>F~EF105*Aw^--y=J(Qd6U(y?;;dtqg8$Z_gCJ%{}xbo5tZ@fc%cbbno81 z!`bHoTRU9>ORGmKD=Yftwlr66Cm<>6@tblUdjl$^cB8^N1^N`o%ec7Egao?VZ$-HE zXzfIkglxZa-A)!8SU|d$QSl)Q+8xKqM)AM*-C7AZSeCtK+*x1>H944i{ z=V~?|$z-WSE8o6-`&Be?jE-(T4UDVhOUMSGATy_kv ze#CKB%ZoV!z6*OB6OvPX0(wP^Ucc9#<>qolPt?{#hQd@xKwpfFgELU$?jT}6E;e%f z!%kG>(QxB@%PV2!^`C4 z7oR?fyvxpJy?&kM!-o&IG&I~9e$w#h$nF0c+ND{}%VWEA32AC-;*Z9B&}v=Sl#!9q zuXg1wGOAe=y8LS>e`$QgSCaLdsNIhMA&a)@Aw84Ur?^CdK8IV98$=^3uDQl_)m>A* zzP??1ey%JmECmMTgz*94@2Qvl8J#x3$HsU)6}j z%h5ax5K)A&xpU^Rx`0)Z-~K| zmFk<8>LcTf!+pHT!otEYV`CSbWPM4KdKTTzv2zl9GPsI{_CeFsA3v|Uv(#vMcQMA2 zvGuBYmEMD48a@kqDc@`G_dF;28Duj#JGRPldFHMy8)P#D;{aKE&pO(D&{^m zZ%zAh$TmbdE3nDbF-mT9-R<4`_YyfB=B4T8tr76K-jVE_9Cm5x3Cj_xSG0oI;WP>- zeTmnsd5({c>b|}f>{pX|(-HhEI8L_PS$Ik2FBZ|!F}kxDdkNJE2vV6|%5C~^J}VOVqE^t7qc&6_iU_{;&i z`5_bbVXfwYqjt&)3fO0db7b${y=!c5$FHxize%|PvobR?lOX2A))_AlJyGLs@q2Cb z=x3}&#n`J?uL75sZIo10<{?ndEJmb)Wf{;PZk>Jqe<3E4QAr0CLWa7RReeBi#iU6r}ULYJUydNgea6;M9 z(GlXOn|UgEr)7h41A)*C# zWuxTO)WL9Jv1Tciks>4MDE-_#!bs(yrXYNagN=#s@bIrLe|>wW*xA{g4!6vt4#r)2 z^XVsftShJ9;E~Wz_uQD;tHmuE%=WT`+7z8I#9(&Mn)E@Hu%Hxhipq7reu<3d?ic2vQm+d%Ao7BUA zjt&+I$THcshy&IY!u9kC@w}d8j;xkiw3B|apP-jL-Fu@ZX!YR1bfR^te1-i)f02>o z-tqv>#fum1!>o1{HL20ZJN>h-m?ZkRzu?|AK9hQ>z7Y+m+m;P=6ZR_c{6>ZnKkiE( z&A;hi-S@1oP|iXD#?E-aXsHGMXNM^ip3K6MGN(z}{V4I?P=K%ydNj-j#rDTSDWp`> z;evbiHI~m?pJL(Qp=Im|!`^1y0kgp;o50`eV_6Re-+QbUR=iA1T-h0~nDS$I{PR-> z<{DbjjA}06;FGohZL=X(4CqJr+O=1)u^~`>*{)o{8_dyg_g=$&6`x098bv-k#n)O# z=6#pdS&UK4`!}C@vREKznvd{^#g#Yb+oPBit*qW(YuVgK1aE4h#d&`I0p!|r*aM#R zIRiE=&jsqkVZVrnB|%9YsB*EcV8^L&Un#Td**TPgEd!5YPa#Cm?WV(-72>o z+5%8jEoD`1Fp!~$pDg7mJaYFG#FY}yU8}XxGR_eWZ(koDsP&GF;?9>xhVW=^%6oZv zrN)0KAGL${`P5avlbp5UNx{Tp>4OkcD4OeR5DdhkO%JxWozA*O z8)SeRsn~o{!BpL2)f`U2E(pDFe7lym_V%y*VsqGc%+XH>$jIEin!E zNTiSgW<_&H@jvYwwaImqlrCK%nWIF&z)kk{7MkG@sO(r}tG9)k0lNpopXjLOieyZNrX}LcG+ene6vWl0D zGu60UGUEK?9FD?cFww=Ei6OlPR6UO3pbX@OyoUBqP$w-POEB=vR z02%BZ3bY&iPO&FMu5fcdGgEin_1c1&QhXOfbdMA!3sCgar%(GcZxY3$KrJ*U&F|-e zND2Hi6COYO#S5iu)mTI03iDP%snfl|s?cnRq6ZHy=jj$k?CtGI;#CgVC=KOdC?I=% zems^584U7u(hY|;0PBVi;;$9n&3HPN-T>96Ui9)?k%zN8usx4^E-peBCj+G>Zga)S zJrtW_;W=}o0&5E!LX{m8uTLpJwkK(Hm?b#bp5$=HRyYxD9%_8oph7BYX;CUiGpDR> zUVk*)Vi7GJ>OSe&zHl9~QG&F$C^|4wCW(13K0ZF;Nc!tvAfHQzT3A_K@!J0t0yD%W zA@Ose$OiJK94zf;`w4?-^}kU>pVY(lS4XnsgYc@(j7!aL`atRSSWL8j`S$Hw>#&U? z$==a`ffZMKhuSx^+?I*;`&TttJub?)_zvb_Zvg>13_vG89C$geB<9elitn`rq*J_1)edF=4-YwP&GpYs(RBH#{fnhqbpB zeN2*iLOpjEXTE>X?tRo;b8Ib|L_td%M#3O!`t#F6_u6@WiV4lj0scg+i>1`YKQnkE zp1ycN9L)=e=dTY*mINc|_adXQIl>yQFWHr%ZhwBSuZjx7Tn2Z=3n=CcngMF26Eu}8 zYKMfpwnGnhd$Ky*1YsX<;wP`A^}6e5#i-h~DOudb@ace6nHltxbixn9yC~+xn}?j7 zob)T~nd12FXZvO204P&x){Gb5?hV}*lsR0`9)Mp@{rvlT`tnn%Bi9*Z&oL@!oN}si0}c zYYuysLECcuGAj}Z_l*}2HqZg16oqu<)eA(>lZV}WenEUQ4r2iA$EU|*!|VM=&G$chv8w-aw) zA!d;ox5)9WpuQ=us;XL))H9xE)*MPFWFD-BUzlfGw7NYd@u$S+Xh&*OW7APA`9S4H zQcvxqgy!}#(KH!r%N!8YFUweb0o5|&_(SB1`5X$iMKL`GQUgV7bP}#y7x?r84i7z` zkzb2qN~zf1-BpB2Jx*#O0QhCZ?+Fy_H2*X4zQG$Hs-Do}?S?lXcz{7cV{|q~WL?pMiQXK{j6}<{QcE#da;nxLDq=7 zfnLNW09v4C;BXlmb+pKA2nh+Dy$g3LE5#Tk-H4%sud1FvaWMc9W&yb}2>kdt3SfX> zX@p#t@5b-e9Ph7&In*Cr(K|G$c0CV!zGuHSJe&Yf9wTH170AcLcsS@dnWeqb0sb&I zm;id;o{N^fVAH(m1~d~oFlNtr3fIlaiG^)|er%$m7al%**h>)z^DvWNT(2#WLw@V*)(AfSGVt*z_XvU({wRuXi!_2W7hoB1#7ZlmQ1JS;lEScGQ&VJ^=BxG`Jed|$)((I zNL9O~#w}#s%ZRcCGme)yIB>!EBCo3(*M4xYzu%gxndJ!K0GaK@H;9LJ-gD1*Nn0_s>UwrbT*FrJqA$G>lH_v4Tf951&_r zJ+<8{xha=3I0J;MlA&Spt|zo?X}-S`$AZ>$Fs(3eE)zjgLP8WowETM>_BFcskgIsn z=G@vB-fxR!pkQEF{rz19I@7;r2Msopwc?AtDXX=2`_@^Lfz5dL4gmM%>1f%r#^Q#v z2-sV*qtAs~VD^h==WV?oktgbtzXNjybYF%A29q(e znliNnIrb2E3MstYR&#kEyU8zJT&Ycup0IC+F8I~UmjQ1$HNM!EOPDy6>Z8;lT$vTv zQvbiFHvp+FmTH&l^Vv+*O9LHF28|`K3f1E|;}h0Flk~YLxfLMS@ z%G3Gq6dM0amoJ}-<<$!X7OLaH(-=zV(}0#$F*nb=_R=Npng+xNun-hXOpyTrh+(B8 z*8R_RX71`bhdPK0F!6qcsQCgYwVmWYOS9bKDH^>r)y`4xbumL1e^$83kcP2O;WtkF zxhOty-|s!|Qk7dxogDA4r#{BLE=117`}e0BE)B+(bzPE8dvfevS>Co`e7~Q5s`@zd z($wkj2#tu;?jLo}tFj?NY0s8ZTd_QJRgWZ5G34tpNvu|{z+;n$b%cT<_WEuJ`D!pZ ziRxfHD&=V2`%cuT4niWT;;?OAL40_F^}A5@V#m)nm^>$#yyqflGD?$$tSCvqJ^2UM zBSw;fV&JbP)(N)h%a|PzN%WHfk6p2(@TPOgGdcg=wB`s)Um!Svfs#@y2-Q*MCnoPw zTPBfb{%=e**Uyz`5(s5o*0@X-!Oq6k+3*+J!&voVJ4jFAU%jOXO^d;tfXXpSlYMxm z(aKq#XJ0~y;zvP?qVVKo3Wx%|n2c3PXEH_4mIC?}}Nv~tcHXjFZ^3rpS$wV%^ZPEV^GDPs-s5pa@i zSfpz|gY7f3v=qjf>VXYZgghWjs7ZK1O~_5nol_YoeSnM!)YD|vKbH0v-oMeEEI!Eb z9pdb4$^Q(W=mK9rbhJkO`zO!>{_E5~U5r#FW)LMFt8fr-dC2W^h?=Lc?B}?Vm<@EUQu%UiZC6q&ER{IE9%MNz#hA>vhy&UAU@o| zKNwk9(&jfe|FYqvL_`8Z6hcU|1%$wCVZ|hmBSBnfBs^~r4BG-4XaW+Fx+RJzXh+RX z4!1pKpK(?OP{iIbYX0(tA6e$iJ_!s|Z_NZI8*Tpp{+L{8XvpNElkpLo^ju1*nVd>( zejuE2CrLEnnl&j*R;43F?BnYQAB6&6tQINHFS0q!4a?-_nMPn3JM9wC_IdxiHXRgF z>98tbB0W6B7JHJ~1vxVr>k+*3to($m%x3A@uLKis(_OcvmT+6s7a@vQ*3KlG1j;v8 zJBJi9%@d6&A#48z;Diph=b$<64tXAKPm4YMl6*EY^AAE=6|V_}0C-!$N#BDBAL+k< z?Vu9(95mS?FJHaFdefm}{>ZdqY#X?)iEYo((NQtaoy+#)l~@2XPiiu`4o?rJAb)1$ z@c_>o0SIv^ALiW9DYf1W1Rv-nD_>H^%E%y#gsgseTY)hf1qdVk+ zfbol%m>5H|I2O>6q^0Xx{Qg3>mk#8#r;G!1jQUm19FX_c+-kb;V3EQ=S%Ks>>2qyU zO|rec-C}3HBmDXEpds5Q$Be*PJ2aeLKK>ln=TbP!o4 z1RQgk1<+N+CbDZ2H6wH4!;{_i6(|&D?t4-Jq|0CqSrm{}?YlD=%uOhS10Wtm_dSb@ zY=veqg*LZiwN5HTnj)5G2=Rfeay6SThM~@p#p@!;9^k9!V=w5o0c&oh{XNOi2^DwT z{dxv*=gpXblJ@ZA6+TAeZ6JFlo~W)FR<16AUyZGw>E*37QsMNpgQh* zE<(uR0O%%U&Y*CcLOEa-Ak?PUDKfl>$6 zL(&b#fs}U`1J}s}GC-=32Y4%>KzW9)15YexYMMUQ4$8-ihO+k+>0tvN!tZOY zxlSs`RsS<3j&U{Q=XusYx41`y`#T=vdmZgqMn}sYP6rVX67qa=`C3+1Hj(-zd%y0*nVr5}pRGxS|=4lu_)i4}RDoigVO+nxO}mmXUFqRa)A+u$_#H*kq-J*iU;0 zh*LTKm^g9SQjweYeNVvZM!?DpcJ()~F(GR@Ep*aUL^BZM`2d6j$j=H2AE9(OG_&UB zY_DIxmWm=Lz9`%>ho_=0_R~(Z_UzB9$8;e6xQvQw;?gZ8Gcf$3&_hb*>??b;DNy^M z@7?qcNLI#wyjRx$+lQ(op)#E+R)z@++|{+sa-7!bZLO^{Aip!GX_r~uu^X?XfSxWG ziWp#&R&(wxSq%mpu!zEb-90=)X=JOuR1#3u{)uZdQl@>jmDyq%@Y?sBb${8257FtMMBJ?C^(|Dfh%J?qHJ!-B1I|8Akd^`*aE zfEa6+@^($dGQY9i#S9rKgs*6ImNGgEGy`@Jg77*yX!v{e^+Chn(KyW4X6-KN?A#pD zzKaHoAEbMa+E0%)|I^TD2RUMPJ4Q|;V$+I`kUE9=_v7bCU7#$I`Ar_jw19k856|l& zq_2-$qfPuU(@8hMwnB{$L6yH6VuscRb+vJma=hteVvX5l$ra_HJ^4 znoPi)K3|P%<~PoWKy_3J2Z1~s`16VQ`|hde2l0p@594qA3HPd*i2CtEe{XeUv)(vt z5=08<_}aBKq!)hw2+VvpIj&k=#d7-FUzB%^VX<+$%Zh(XDVzGn;CZ0-!D$N%DOmkv zH5538EVzE_pCgEPIuRRkuY-+9^hH?gBfnGNr_fFajb><6`zMyNY9p1|VfP2*qu!>$3JL_m zB`z+46p1Gaps7&6-k+YH#>S5Zxw*bL>ix*7nP^fedea{zSgfq9%ipqzpe+gksuhAz zJk1++HtKvhKGdsvjs9_1~AINz~M9d z?r8!s3tsUlUu*zU6JRhD%MRIY<~2VNV+1T>-|$8^|7y(LhSOaz&g|BV z|Cy}tPwjZH<5B3X!N95no?te%OsxP5M*!3RP(F(L(UUYFb<&{-`~P1r5~}LGzS3r2 zL2LI&DN9~i84s`rk6sZm1|zProBJ5Jdth1te(Gh~X6NzPi86qF3J{9*uogO?H^pNW*Xdy);>;`G!JH2a{FDBi-L*Qd zF6i#QU3;{cv~_Uc&OZiJf&?%H&yRMOEP(O>-I@1yB-+r%05{rSy_*=n2H;kCbcu&+FBWL7{Xmlmau0vDXR*JR5LKA|ugLcB0Lo zfzL&-%LcxjTB2!-C=iorzn^mr@|0Q}pFGe5(~e?N>OnOt+87!?KR*=ole4gpLGxtj z6c=Nuh{3?xWdd+SF>|>cEHcV*J`kRnZVFe%fL%Lq}fFBtolLs7nN$UY&7TK2BF} zZzw=#5Xpc#BF0lJiX^X@ApPfR`DGa3qU!~gm8!G2loS#SCS|aID`L0IB{eA}C1te^ z?BKim&EPnJ%?%3>1eH9KtM}^B{RVe8x6dvH7)*#d+KW04|A5Z+QP$uJ^a~IMV0zdY zCrbt=U9`*}0-ywe4#7v@8J1AD8dyE#a|WAc9Ob}>U?YNESrrY6I2D8jh>P&mOY^k2 zxOmqEXnm+5Gpnns#9%yJ7B+$lp-Fgk-%*UQchj_NGj^VEjOSHi;`!&T*kz+@Cw}6aXkzvGdwPIA4h;N^|DUT7wq?@;;U@5p zN&H56IbPnbD#Jy-Ft56Lxvtj2U74KE;$7hbHr?g5Q-8*UlX}pP!_D~BA~MAq%0}%% z!3YFc)x~pg#TAeee*-%PgWedL`uNQRn9N7_DxcgFrH|}=#q8d&o=m?`VEysqN5fwU zyJLI%`=Gmi?d){smlf}NA|J$K%@kK=I4&dLJZvW3RRxO&vs_&4Q1m1bEJwf%40qXy zO2!W)FWrMF6?T9|e{K#|{Z&35#07mM9>hr1a2?E5@6Uo;#+!RKK6zhIXBd1O&Gww`O!AamiWLGU%}USQamz@G`AObXy< zC@_%{df33<>z9~ffd&%#@+CQ+aV;IVh${U~CEjbKZHzk}Z8ejjc=s|V=Nw9MLdMw? z>(1dq8TmUXa!1DxN5M+G_HDm|m_I_+0KNJlqz}iHZyfKycn0hzivA!Uru5|-*GZtd z3~X)G^9Ybt|C0>`{SEu%rL$_tKd9cRU*~ll@;&@X^_V?>ayS=_k||%Bn@hb9?9pKW zj!Teu!sFxP1M;@PXS-*kW!B(Q0d{eM z1D+0L0Qt~aKmC-Pyue(35*}8 zIu7o##x8*d!)dcsF#MsZ0u3}UWQKyx3rk*JzDo2;I~X4Tdm1+QF#(TuOHHjA3gG~F zl9qM>BA^r$r1bMp55j;k zoTVJO1&uPOru}oFhM?hY^(&HrhaQ3(nuBz(%y?`y;iGF~SnqQY6V zAZUgSt_sa^Ta0zQUY*yIC3$CYqwl~n50qM{Fv|GQf#RV6E*R7#gANru4)TVEjG#_{ znjHk43M(%!kxCRJ)CN?B5VY#1Ti*Awo2(rjT~St1$wDXchCSn?*XmWk66owgv90sk z2ZO;mNY##@0YhCrhmUUo*UL4k5tTXFQUuKjeL5&7knj}<0IYIFV1poy&*DQ4siF;1 z929+kbz9%HHD;0=>YE_JkVBwAr4g~|M_d-Wn?N#-IGFS%gWEw(f@Yivr3z8e-%fN6 zTsVqHI}50F3^lO=M(i9BsG2zXe_nw8_dtHUxOnX@_;r(|y)VE;fIn^pxEBpVJP2cc z0gx~t)=E%o(8*Ra7?^H?8#fPJ?I`Pw4iXe#Qcys_TOrk{;T;K2nq7I;X4 zp|HZ7p(5E2i)btaeks6HFaU%8_UYju9yDq#nKz%qBi;opyY#UZbxOkIK_K6BbrpeA z3(vvHdy5;0{ed!T4YUlRIS)4S3z!3RL)^a7q>RPM3;o*M{J@lVzA z+T%k13p)^vZy1uRq?XgM!&TtFLG23$DG5xFUg?*5Y!gb z9|$*t#rj@&pB8d}$I(K3DWpt*y5Q%?fZi6Zew9vh{ps>JsHzCN0^DdG;9V311rfLq z8i*V$MC9SOmW#{c@?#}tihFCLR6yRi+RtO)NQ6NBAsaZ!nKuDUY38UiNo}`K9YR$_ zt2k8cbg+(r8cIycA_JX~CJ5KW^dkSdTd==^&k+~gwm^ZPTOSaK$4m$NU2K!GYgfqFq zG{lSRvF{a))EAJLEWp;PU++`p68;e=;)ELx%ra+(7C@`vqwZF8b3@Vuqrr_5eLeu8 zig1MaE*#*8g`EaEUd7b(60rG3C`1Bc82SSUb+FLY&TYNxvFa*k8J%%#v?^-?wglzF zAeo~L6k2{E>9>MX{m=9TU5Lj*tX>Hk?vn1L6V*>#iV^^d3wiE5Koc~I{_0PE-(R9Q zLz5=tscmo^pfn0fjlzQvgIAx{*aOS^;LQK`q*UH7Ti+A^6c@4Eoy5Z8a%`j=2{SJu z-j*$fE2@i+YYhq)iqyUL?E3EfS)_Z_qb_c^eD!Xx;(LN{U<(L@JEX|)#T_l1rdRILjOE)-qOUx+t63A*w z78U`cMp!CX=~VEX?CkEs(I>5~-nZAE1Iz%PmBgw$p$Q;ZM_*r#_rb=uJk9ZxPI0a; zmf#_QW(9rhr$IqNbi`1s5&$;|KK?0UKUv!Wpdc@K21@@?pZ}Snv$HTMDe2l|T@t)< z4NRu6Aq;bbn?S$b0zLe{R%?*b;B-p_dQ-@_&d$!LSO(SA0tm!!gPFSdo-pf&^KUdz zlaoc;3p0>6fRO?JU+30LGl$ID`uastJ37ezuduap2DgC=Mf#yatgWrRliTdiz(F|G zlN(J1ORRe6!6VgO>$wZo&jw-=h{7oN{%AiT0pJ9!i=&?&QUTX#4tIcX?pksf`y2_! zEq1`_;0#E51;caoswD_8!J(nRMSlsv!a;o%fRQcwQl&MhmlX)?9zO=uN%Hq})BnH! z{%aZ?O@wG3fU{V@Rkebb2HuJz&8fB%72e?dS%pxSM{ z6D$YecT;?c@PKY z7Z*FNfwXY~C19Tdd-B~6I`G_Zz8RPA z>eWZxQ5O`Z*VpgBB*7ZYfk_;~#MIpUsdCl~?3(df&o`*l`S|hGxt~Ce0(hVowF`$g zVFh5dUd+y#OG!!P78G3O;K)`bMkOuy*phWSL+sX9aFRlp$yQZW51+5t=j+-CrsOyTF}2X^y64Mo^< z-2D7t75>n6z{}4MTT=*b6$X}PCoo4L02^UtqFy}F)77PL9?12=b;OJQ5 zIx&)M_u=Em*FfK=!NIevk<|~mxzm8%A(4cF=c2#P+a0<&Xk{5>&kosZ+&AOm>QuAQ zV=7mqrBk5CFte~=pO|a&9$wvth7Gu)Xw~d5eSOgoi?y}2HsFMTptvF_nS^@pAofa2 zQ9%KL3>yXKWhuzXQJELglyHM$q3$l|hhbo>0ckh9u<$BajB?-+prLsRw6B`i*WTVm zND1GxEf^Pn)VK@4zE6Mm?i}kmuvem9oaN>4l#~goW?K5lPzdl+w{-(g*>8h`;_e%U zG|aeL0E=F~e0eFv;Ne4V=n9r#@jW~}F`jV-g;o&NfMi~Rb%m0V@wS_rD7*3txkBAC zI2Zs=$>HJ-WKBnJZ_(5HtzMfzE7Q=>Xg#Zj9tqIR?Gy=2+Y*G~3-YJXFPPfes=@`p zOdI!zr&dKX6mkP5qzx{Rc>U1@__3ISYyeXrwLFJj>kQJU>i7p89@tYV>guGh>6=?y zv+G~46hFv_kB`?Y6$OIg_8z6e^x|S@dHMCCq9Vwrc@f8L-@jAieYt&az-~;SC#WYZU;33Iwpdo8aR| zpiy;ncPr%#Y8n_sJbQNDx;MFLYAOwsfAAyes;5eUoO3}UWy3l)W9XBKrAAxFW7Qq~ zeKq^!Tg&iFWo6gkh$ZU##{9Msqeo&oC;7JtK{*RsGXf13Oz@mq@kdvwKW9N`YT8rP(^~WvpL?s zfB$c>S_>-YuG5pGrlx99EKfBweA05}3oTY_)ix z2whi)N$QL>fHrwJT#z{L1k_T?&`>N;%s)RrR=ar<7v%8QV)oy2DHKDA&EWJM0Jx8; z>T*vcigR->2?%J^hrQOz;Oaw-mo($t9g(rIu@EPBA+4lcI?$t7E*D~(o2L)Ba_6n7 zm6dLYU@&=0TN`YuyZJ;~*;-CZy-a8m1z-q_H7=;{!>cY8^h8Q(>K6EYJ=r(WQzdX1 zL2E%AFDMY`0`wO+fQc2-p9LVjgtu?eIt-3JHCtPrjg1Z9%Bt19MXaRSHvd#AUsC-L z4*}58@eB%x4BH`1MVh%~xy^t=bv*DFx6I5~K_y%O8JJU8_%*EU+`__5ID>)GZ;(hi zWM$J}dw+y&Vs2rPrb>L6`)52p{ zR#$h{WN{G_Ue(Jf1BT(APzFIgq)QA%Nkl&!r~XFu5Th9rQ?sWgKcf*L=!nF1E!}Ifb)z#I3%GZKj@QjKR z5WozSeM|89fNzw5lamwtI$!(x+Tj^PuN4*)z;A<_0SB&>&*4k3MqYEC|4P5|USg`e zy!<9S&QzR>f+c@A0ir^09pE6(|$H&LfdIO{cDiT-L)La9^3IP5d5SifLYVYZZgqxuT zQaDoXd3Ln40_&))X8YmJwC-QSCQqORz?S;qNp#z`H+(^z_5c5Pd-JHC_jmt0HhX8D zheCGd${6hosV!rJq)}-=12UE&i89Y)142TRd{jh|B4be!Dr1DCUA9s(q}2Vm_WqvV z{X6$M_geQKzjd#5&N_Ra-Sm0CU$1L;KA+d~8nzLEk1n%n{q^;a83p#cJL44bje;t^ z*MkqIM^Z7|tpmLLey1?_ky>Q;zdVP%jE47F)jddcb)tPXp8^DT+-~E|7GK?t{&Waj zsxe@|aSBM@<@jBo(9{ti0@e-%cLod8+!*}#q3=~FA zI&4*C;5UuYVW6_jz_L`^_W-x<+`AW~wnYLx2X5~8s5te(SDbP{Usd3CVLGrS2m^K{ z?UO_M4H>eRqamtm@^Btx(;7!EtORcbQH!2b zpb>fFOZL)ZE&aE5u%OOzcek*&H>S3t1nStOi$PU|(MOj~i}cjh*VE9SWr&g7kU_(D z_T0JaR0MzqO0=ARIypJ*&f%n_=jK{oKED@4$t*gsuTR?KKjs3N(JUiY4`tBTK4-jV zv6j;=!bcU2RxVeDGHdtVy?g%-Uoy1oCGQF~Zv8Ad_`m+j%i74@dG+d5nvcRL*x0)G z(Oh@;fMdtZxUY;xCzj(1fHqahe4>V8&$r7%Etf1=Vmfu|C=O}TlEMS`^7Ha8WTvR- zUW+j~P>mj_5pAa8?FsXs@hDi9j}EOqU3cKP)qZ95ODjHfW~K(@NIndiHg?34h54Ex z<@rrZ0n+9pI_c2Q^xCUe$NU>=3uoBdOGHD4A}VWgdv6|3L4iY_hYrj;k1ZD*$k@bW z!R=*EPHLpVYYhQ^d!&T7jwhs~bFo#NSr*9! z(N+@^6BAz7RC;39`zDk&02?A)XIh~>83rIl%4&)(iumc~=GUlt+%}x`>`~WY^IrR@ zrlu{6i;H2|GLN<28{VT>ziY{kyqnIZ$A4i~yMu~~(bm>I4(a(MEOezOpmw;FoIDIQ zoW0{1QiE6v$jBQg*|YBxJbkDecI@2wPhZI2!DHC>_)vhU>+IR%Q1A;^;N#;Hbnsx& z+qWA?&ivkl)JU+8wB*+*Yis}TE-%>s>;oU_k%e`P)yPq!hH-zDO3SS7pE+};C9lD2 z*)okmgCb9z+6Hh`MCD)~d*DORfdj^G!f)L_HoB1_-}>#1J$v>fl;$8RzU1?{-+==M z)}UiP6cS>6F1<(h?lKR-uLb@I<|Ux#HsSoZ5_08Z|WPTPC3<7!`DlMmBl zZE{n6meJuT)+8N2{%3lDqobpSmR8`+8M{J)i38FFY780Df9TMCur`^ee}hLQGj8HS z4D|FpTyn-D#`T3o-|b88>{Dl;_b`?1V5ihOumeVbQ`9k|mc74Id!k@amo8nHHts~7 z*Rsuk;w{Yw)BO+w0G5N8)YGN}@cU8PpGO;66@F=L|EY&>(Y3ZUq+>#(*;ij*O;=YJ z&1DY`bn)kW4;?;HYE`BdP!p=Y4NmcM(F9%a$Tu!GnP2q?z&_;nufD!mZ`CZz8QZ^u zUUqi24+Yex>gqKM?-;I6P1Oq-aT#lfXQp@Z@`4E4Sq|-*!X=Ydn$BX37Myb(GS#er z9EKdor8nv0d_KKyM3s1opzZb0Bas>QDMKs-ALbebn(Na15J&p->-YA}o9lEoiq~c* zLYX@Pi6?3)g&ZaIzuqSABgp_gV6?{%v~duUTl|6{&h{hPhU)!f$@?*a5?m(M|j# zT}(5eXwuMK^6C}=2I#5s;pCogii>X(q34tPkWO$P-f}f)E-5y_@b)}-U=F}5GfXuQ zB}QguQS?+#pFLybsb<>>%MSX)A^_Yz!-od~_0gm8CF$f!npc}=Y4)-G=+|ld-jU%UVdEEEw?NX;S-k4zjI`ov}5yZ01aWyzHX z(4ij!-_;Lkwp_gl3FndaDWg06U~0?D>y>AJ__CVY>lU)jMp4Y|lya1kVK|sGt$&{< zQmk?F64UQ<_ql7=($lvbbXvWg|25Jtq0F93)106`X25`L+%%DDZ)(=z^rdwhH*EOM z)G(<0Y)~yZg7{QC0b>a%^N|vizD5uq&Y#S-a-U`sma2~K z+_6JAYKlD+vP1DPkOA_TsalV3fJTp6`uduSO8|WbaaiM%m1ZZhQ9+u27{f!89r8)C zxU*z-zSK%}#B0FzBDlWUum=)Is;iendt^}-G;7(?6-f*5jGWZFi4tG*fBYp=JimX) z7(#THX?jmjb%wqn0{1`xoP&RF-lBzDigVMR`62TG!l^Q6b5tl>8UsY%fDxX@bP-`9 z_*f4zHdS#=b?&s%7fC~iue`0TV5j)h+$QEyKmHkMF`FaLz<4Gc+>DD0RlppAyj}T; z3twKgcAv>>MZ(zgZd3Dw0#Yp!i`8e$Efo1g-#LpH-$%K1Xr$-Kf+aKxeCIprd5dN{ zw{4pRP@DRrOksLx=z7c^?xd^$uBBk!930#UIOtxOK^V{*(*Vpe2<)|ntCg^}Qo=5< zgPT$CNe4ifrNr^0p`pp%6;8n^J|7+rB7re6KU~Jhpj1xkh4DEnna!Ftd-i&AD7pZF z#Zs}>proA`7kKpOJ-$WYoz9&*gI)nC4e>M&b?T<$Q9Z+D{M~H`Mg4YHu8z!gUA%ZO z7af9ny+jbw>Ts9zmaqMF3aJT2B>(8L4RxxUTjlHPzu4WkbDZ9iw?~^vHSDZ9g69?J zW03waioTp8M`qnfOwpOX^m5$%^qEVp+-6STcYh|!ebDFHp~{EJIFLVO;3R#sMbR33t7!Nsa3PK&IW z;^x-(@#Dt{bG=uXSbSGP1_K2=1kCTyN(AVy|ydD zBC8y!Ou#n=3>a|AOD)qWsN9Qd07_w(v^dqd@3O?y)T8{{1^Y#zXF|$WVU)MD*pYwh zv_|8e;a$}~_KZ~x+bUJf`j|b-iprF4UtUf8_4)SFTf!)&Ens&~cC>MMem*H_a-;

(ryjrUEgF;f&~WM{^QH55wJ08LYimo!cQuUkN-Fa**j4y2GqX7#ANZ|!V3XTT zoyXoxqq|72{c$NxW`>wVxtU3Sj+{u%TnM&kWBaNd*RkpOW zJmyV)vD;ci9306 z13^UwFRRFIL*YUS*G4S8lJzquF1v0=R@E}U+K3AM-8*Z2Lo;%J+z(r{cXa3;(htDk zBzPFe1Pa}Umsc#H4h(_W%<+4?OAm+Or^~vQycja|NPIiru7!N zk2ABf+`8TPF(Ep-jd6!vKLP?SkN5FOURYf@!ex`R5h~j!h3|J6-=J*1I&wkc^TNK9 z-z1IBE&Sz}%}<}Pbvkc`OuuLY8A72(Wif|xe3h?nhi=`pUYvaFe9XBGshGz&%gt@# znl*J{9`kN2dHHTa$XLgjOMYfF6Rd9-H<~w#q->RD1z9+gS|kKARqR)&{k?`ceY~Mt#!0Yu72D!gwO2E%+SjY`9>@xf9D{Ek_U2 zTx6*zvMD_kwS4=Ct}Xo)N_TVrOA9d1<#cAIab{+w>(;B$6UTf?t8Z)kB>6{W%$Lri z0iaV68QeRfJFUGVxG`f>e=3ioiG)Cn%{g9|c=*Jmo0Nr~D_6c}kTk94RNm+gm$v`o z<;No@rg?K3nRx^Vb{*|V?npWq|*ZHNcV zLQD)M1x4M51~?(Qp(65{00n@|vte|iqx=8y#~%hCzFoX{5ma~!kG_g`r0I)>M3s1n z{xzrp_k}Ok1N`0AJ58THj$$lgytb+DsX z=E%H^H&+?vKjV-buxV41tF`50;7kQWp*I0zep^DohkYWqL^`E;oLBb*(Rmazb6D?zK{1Xxt!9{?u`3$B)A6*va|Ap9#loT^q5HO~kxd^Q`c30oY`@E^x~J{fwaYa#NCO;b zepi*;E0sOs_x!T)`ky?CPift|7mccZ|NgybKKKF{-9Gw3CuXYdj%w~dLPsYycv7&+ zhjj%{Q0*<$-uyO1W>1tuJ7)&W7u3vJ3ilSx9KgBKaG}j2Xj30ep-=kC$(3Y76}R2tyurIq5c|I0b5Ek3Chb0$c+)m*+RzZ7ODsa&4`6$>c{}gF9*n!Me=#vp zE*(F%edo^Uw$5vB8;U0YG>xxll{n9-HT1_dK} zSF`Bx%HzOP#3PH(Odbk2crXKJt_konp$_L5cs{{78##J3z~_Cy$Yds!T|&-Nuk+w5FIc31a z6K)gtpFMv*9DY^%aktK$`)%H@-FFeZ!G#4+_TZd>g$4{&dGFeD7cRI$FzGeaeFhYg zK8arF%X!05hRSDRV^t955x>M63pwWw0KUmr7Z6`@DwDxwfPMI*E#Syj*MqOm63ATm z0x&^p%WRt6W-VHTlb3lP)Ax)le;B^?Xk1q{H8Z05?#5$BjSAt18v8{JxPaP&3ELjs zx^?51Djr;I?_&G-UUqh0zJ#2dKzq*QQ#NVRjzr-S{QKOwbERnGDZpsD@@T%-)&}yB z`C``r7T0Owb&*CR9x?F?raqiLy&Z5ikY?bqW3B%rF?xD=;ciE@-dJX@8H>SgW1si4 zSwqEPO2uOycAKI=41b8?6*bqdkUb+7KHUe$!xi8Rpk&^E^eD%;B>`RJ#KFcQz~XoM zOgPm-U4)?^B?pVvgr7Vq!a{VRRiO=GN&tYBb8AY<$~2L>fO2SWYHLXIv41+W6I@(doa6Gh?1H6rQY(_jW81hy~Av+ ztd!L^5j4;7)zElZ-x4lf>`c$p-cVUYcc_s1K)y`iXx?JRrQfEub2tV!?%p+`%4n{> zX~5vYok`lg3=Evh-Ds(AWM@wuIcCgGq>w0GCYYP=TU8S3{qFOV*qQw~2@`l}x1jGf zw>3mku#IjV=y~F}aqAf^|BekkpTWzYZiKmznffjjudc{|^Nsv`>r0m|37@v}=+W-y z*4D1{iE?vuGgMYbu+$GRx`uuzydCP*e(Km)@m-Mw_hicVA=bI{K4YbetuFduR!J3F{S z6nGC$P47JnP3m+jt3C#{pB(J%HHq(ikTc!ZicjqY=s%GfmKv)gus`1qzBdq-R!ja& zCPCys7%GdjNE9H+QADast13_O1}LYRPo6wko_fQvu&^Pd%?X~K@@~Mq?tZ?&yJ6Zq z7CJb<56OK$dicJZ+MWc#mTq-8^MxBICt@lcK7RaIOvaMWgvf>8#y~}HB>w~TQ4VT) zNAVqR?`36~@LZL-7@n`MHR8!o`*d<%`z6@nJmt+^y(he8nO`~?5%F$+Eg)#$AKxm5 zT&=4zp+vaFy_w+Ul|XXYw~A7(Es?)7Q$_*RQc)9l)jg{|y&2C>rD~OdqZ`kjCENUf zvoS zE2|)8XktBO<_fmtcQC8X{M^(eoyzA(aE$$yf=U@JYc8Y1H(tJUlyls)MQ82@ozhm= zzV$qJe$eB1=OLUKq_!QtRTOq%uAw8p=q=!Lz(ph};D-lC4&h#a;mR3$i}*gM#MN{R zsM!r3IqE4R`{iCwJ7FIuQcp%dKi4!Jp$+v;lBR7>7oSN#O ztbPlpJ}m&&TVY16>ks?;Yqq#TTS=%r`EcGUP>f`Pjz^*@xpGUJo_i44P}|W)OuHOo z6Yn&2(xhMEg#`t=hfa{f&?e5|F1-{dQqtPbCa7(CH1()C`ClypEG2$W>ay&n0jf7_CJgKdwY;j(0>3q^=#q zE>NupLyj0K^T!SL2WG!btVhbABK+;km!Z&FG8#hWTJ+*#u^@Cnx#)H+FQ4|4Fw;?k+=(@!7va_0C+I)yG-HG8&dL%te*b| zCh6Azt;C9yJTJ`wy&)L_jjB&*Wy_(Wjoh$7{FZ6%Agv!!T3@aIv49Rm`UgyS!777L9gRE8kh0H5QO)r(Gu_Kt%?fjRDSeUL}9+vica-9RL9 zY4sOP5d*=InK0^6DHj#&_1*qu@K$pvXoN;a?|&FU-oAqew{G0{3;z_slSy3dE+_&D z4mxJ>$wbf*2xm4bZw^Y~)Q0+6k#O-x0@&^17%_M;3se+ei?euLdbNP(C zjLaOxrSGPuGN(e>SIo;0`5o-Aaf`8|N82Bm-HJvLfOQ$7Lf(B@ox7E@fu)j& zADC$WghS*%dc*lA3elOGy=pRT+BChfW9MW23|kIVXWhFXw&sd_$YM(i zi(Z~5KSjYKz#*u?_cJ5sg4h9%!QEu1M^IrBdDZmS+@Z1*VHQTeTQ59V=H&$m4rg5& zGCg&yIHMt7mMe}ZlgvFMW#u4wE8Lb6;tSX0ah&5$su%23Ma>16(UAlI$vKIkfyi!G zUlrGPyYw6sj=U-6t92-mwA;OfTCU^xYfl=9u#8IzOdoVlj~WljYF9!5MeTn$B*{cN zkfBfyw<(UW!rs)DYvzS=6DVD2U0`4b&MghTW4|hq%P(1ygJz}_F$NzK-geB>=g%K; zBB)BoQG|gDg56GTpVoe7Do-476M}muobWT(qO4QXTXl^Wsxfe2P^E&_Mj$e|;RLFP z7NvZnus}RyD6R|!losq(ye}>m*uJJUBsWhDm6tFY5Gb?x{MuWBcqwol$SH$|{i)tW z2t?*M0zBgxZQ03apnT3rleV;M#b{OR{l<>#g(E6H=$tt+Y3tVCC~f*{YVMFeeUYE_KvVJ^T6?7Tb}f(x8)ZmCdieZq(7>Xt0=ukGfM zc$km0|KP#?IbNug35J0%Sf4@It+qQ~<^OW--khs6>KhlgX7XJ(AmHP;Ut%DzmtOSS ze)BCBZzG?47`3|kl&dkIZNVkajWS@>qQy?tuoxRfGXM+9U?riCTLh7TrIosx%IV!PYZ#1*^*uH(&M2TNr9YHlmf&G~u-uNu?OR0-I{~_oo8EBhO>?tfS)^Wa{rFh5d zm7r?@I+;uzsDfWRn$Xv~bzdC^7)ks2aY@Hcole*&5N--!FCQ8LX*2Jbw9!pT=vcA^ zoihSo&(H6tA{rJLx_9sKTO8!q24A~;YaYT{8ggwe+@x5WWz=F4s_9ML7MnO8KYn~2 zCAJd7TGye@!VdY0Zvu2{uTGEnyQuX9Bv-+8f$a*Bw^lHx!##_nu+nTo28-2cd4aF5 z@l|ia^r!G|5D$;28|k`D_!A?wz3{~gS@!ADn3W9b3B|AShn9xM3F0y7X$!^n0q9+5 zYBK_g@SMzn?1xF)zaIkr0Zhq{h)adqW32D)`iO*=&Y=XJPrFp^vw9PfPz1fZyjfBU z{ZVm+%bYo@Xt@b?^gW*|{2Nj-e;9|JJ-2d6U2;HP2fAmmk_OHIkfWz?O7-H!5w4Q)39U`XY0&7og*fK3crIHOj#sHpzjxBvfzKIFg1Hs$Q%M>j$`0$G zV^r=+=#9mQF4lCaQ94rf+nA#wLCEE)_|)ubDu4s;ma4}`%|6z~zB6xJYJssmdLwTH^-_E^J^0K_`DE+~1`nCc}xKnr_D9D`J zw$$mwR%`(Ap-|R%z}AaSO<#UD^)pKd{#PF_+WV1fu|k#OPZo&zY`>#wareFc?MaKY zWQso5wrtsA?39WQmcQn62|-|gU6E&}LB@7Vp{eX+FE+mqAV+!Iv2$nr{VP5Gc>~7A zeOi%Wm{jPKrhP2T@9W=orBfA(4c0>*gtf=p^eFXVg>c%uV@ilgKp<4ROpSJ&Iddij z&?VvjRCbfOmB1((PA1TZw`VX?Bn1rZ$dHo2G*Z>@AGpT%D7r=GMgQAKrq2S}I%A3e z0y+);`YvFAmex*=Mo6=nxfB0zZvwVO!=q$%?!f7}&-9HxtYkug;sdH*O}z;d*nIf> zRqly)PCJ4lEn;Y#f|}X#$DQ}X2ZiRYLsWpN01j!5A!_xhpI*D z?zE`w(~OLo(Y$dA^$Z)*zV7K}`%*8qy{*eeb6D-6T`4E_jjU5#3o|~>js{o(G4Nv! zUQRIa=27&to$7_@^ zdlg_8s{gkz3Zy+ix59}!?0EHN+O0kJLWurif zA}dEkFv?|kgj!I<)s$RFQid`Byu<}DpBz4R5StX*odpBGSp?-eKc6+> znc}S{W|;{|NixP_efTPZJceRimEX-D`j_*Kh)zE&&LnZaL&7UBG+A$P zG1^8!T2M!)4jGS1-f+qkW%#VUoi37hfV&UT+bA_?ogdBktSAw-Z^?A>i#@KbpK-al zo4VW+p}uGikAb2&7nq~_|eQ@B^89}#(+;$|S-L!vVIryB{mdu&~E54;wZy>}qmVIYLA<;C{F8B6sc=^|a z`Ek+<!hFyygbGNDHGD<5kR0uF<940Gt-|jXU1E^!mtOpYe*rvS;n;c8&J* zjt=W5R<2yRHxeSxn7(Zo!naIYh!jRUis@jkHN4$ukg>xC!Aze%Oz{bdo1^#HwA1qo z7cTTc>&Y9_*yq=5K*>Uo{v*SG9*tXX>=hcItBopNv)SIvF=IxJ8hhZYB6r6yGgK=R z$X@Fk`dY&$VSsN;4Ca7bde=Ao+wGe-e@V38&HM``sP^KxCm(qIZ@9nKhXbW$?>@G) zC0!I+kf%?dT9sxw+1VLUQ4=JU_8HIqvQ|ac2JCMRh$>6kwgY;>w%E*_&5%s-=V0Fv z^kD4aEKey+bvt{*0Fh^8O5Kx{NAo-qEh<$pPNwA2*1hxWnTmly+UgcRlP;!$u#G~9 zMzdN>7G*OS6hsEq8Pf1#JO}#f=mgWEpQphWfeZ>HV`K;Xd4dh_vOiI>2ZVl5OO#9Kqudeq&^Y;hfAbp;Kz#n7Z3M~y$=XZa)a&(o z(2Pff6rr_&luBq8ph#qz4W($k;?P&&K&1sVsIP1z8Wm(dcpEKxKO|0t;d%(@r=-G1}b%V5I+u5kbT| z>b<|7p6e}c55#o?lL5sgB^^3-+Ds!TW^<&KlN@3kbE3>bcR)a41*B7dl|Te$=j@WY z^uM$K?Ynfzzyu(NB0h3+c~Oz9;{ctndDb~_^X8@^TBQML)9^jR;3-qCw5sG-fuZ@s z1(~!`^=oFytSv#?t>i{)~hzl(eM~-RH89W0buQEppTZSi3?+L$6Vfp#q@Ej4ALCa`p zY6{$shnCn$o0$|$dhfiYH@Tl`BeOBf)(Qc?8u_4P&KAObi@n*gVzh9|!+ z`x%o^Kv0FebD=8anlc5kU@YEZi4)zHPl!9G*Rerxz1j=@Q&OhI!PWje}whK&tu5=NC!`FHmJa+oD^?x zOt##Rv(zy;8IhXWolyWj_ylTp4!_^6-BGUos$t_9t3c!WUf@!+i!ukCU=k1#q5{7m zNow^&LHf`_z#0s~O!g02-SmQjqoSc;gnO8OeVyj>6h0zFYhwGP8>Yl0hFDy%zx_g@p*e;p(845K4|)ZRJsA zHsIUL`NcjJuf~eh7m!T+d&Ip4-xgkcX1!n( zUBGueGCI?)BB-SUa(Jw#HOMsHA=!|ugib*wwJ9K`&zLbFCl#Z{tra*xXu2HQU8A?p7(E%MRtK zly?F-TzSKq$Q_6>{%$wN^ofp7&yLeJRHe0LUt}E`#ytD(ImGCCFI|d_lF{RV zsu>DA=}S?_5~Z0PpYrVhEHQUakf!GgU7&C#;yFl>H~B(2u0t zFa{vA8YYL3zEUB-VNA?g+2LGk1{Pf1Q+mCoiP*xaq;3;yS6W8#dx4h4mE?53re%~C zV~ZPTSneu!N@B{l3&kr^Wanej%~Nc&M3E-C9{qdF!3wUE?y%{T}U{FK3&RiA-bx_n%fNyADTiTacUxKH?V12w}wX(&x{g2jF24t49HdC7}stQ-;GS+ocBF9^4d>0~$eU zhGejh-Zkxc71rf4I!#a#$)xc!H>v_uLT^zv>|Nw!)nRdu9zBHA;5N~RZv|iByKw;M zGisFG#i=&;YAT6fYp4DI8c!_!cU%ypd0?cNI9EA%JDy${hv! z1NWpjd9(Xa^#zFO%-XPn*)~@dcCJ4j-}bIcYjGD<`MHZtdOR zC>!bfpln|A+go-WsS#wRt35~jR8dsSzr%}62j`PbhPyVhv;M8*0^|SUhnX+zQlkrn> zTmxd#48D5b4>tD9cY9g8!qNBR;ALL#kCq(uDUUX2CiV>HpWTDU%6n!A;rNF68mLu8 z&8`<8`{66WU@Ds+oMvmit(tkyV}vRWOn`pHn0ULuDFM}dXfu3id0dOXjMKxbTjgIk zv8}4@l8d8udYRT_Tb`~Rr!mC3ID2^Jl6TWz>O8Ivd6Z$}7q~IA@5{q~xWtsJ1z){V zb!1$@;x|)_!m7I6vZ{ZT`DEpoZ+3n~9gAxU22MTw;l-IX6`5(a`dh0if){)#*4;LJ zlJb)a+xH~YY)J?)EpC?=tov6?>ax7-M^kFfRC(LH+GjZGV%=J+Z%M(r{ZB7Gf9S~A z&sCOn^`V8P#kI*VD~6S#Qr0W}}^YcJZ>Woor z-HrdMr}J^IQ_a}ic_V198MZyOXT4XlgW#!Dt`@k~un_Zfd4u}Y^0fSkFWnzl93Hu3 z#l39pMvMr%C|!Q0Q}FlsvXxs-*Y(iR8E51DGi`Z<$JA01#<$P{3~0{;guGllE7zy7fBW3x^?YjG;ugm!QnNtE&+8Wlixg6T)jDM2`ldLq4;zT^U)cdf#9xA-? z<+k2!BBxavBnBSk>&8U1`Kfz+;o#!~=W5iC8IW~WbLV?#`n(4XTaz6ILr=)a60tk2 z)NJD0C)nfLU0pLuCQ3;=-WT4*v^AXaXT!!{t9>i39GrX1XNwrF{Mj%BpewIm&GB+SC5rhGccY0W5%RBpQ=(`o$4L% zYo^bVuQh4Izf~WMxLZ-Pu%fyk>G`J#%IXnY>a|?&0NQcYuqm{1I~$NyY|*7WzI;iR zzl~o~4>!+x+P)*@%I}wtZl6$8OUU5|^KL>Q{h#XH`k3Fe|HT_FgrVLZv z4YAplE`CM$*385;#T9yLZSbPRf5gUjVa@NcxurPH+BW#FC}AB7^Gjn{sF}Cw>fvKs zvx-q5?1a7;*x4kp)YvV)|Vj6(Qegu_Wrw!K@{%_2tmDYkx|T1++7! zIF<1yKv0&%9+nXk{vsRYuh9LI)qI4g4m@x`{=x}h08F{7h#l``V++9rsmqwBdk32( zP7xH6k0@@Av{tgb>VmnW&@E7e=qT>OL$U9!F%7D%ZY?{erHvL(1Zus9$i-gyH>^c7 zH!)0qE!Jf;L}Eq)z@PbVMf5uwHXII5nG8D+96SuhgtW=VhS&#Ti~cym0uFC65*KwE zbBUmL{G{9T@Y$HcP=vgt!y%cTg++#MHCNBZh*=n58fAvgQ#xB(d#Oj^*O7nTL`UO;cJkqeFVg&AH?p4o^gOep(uOcSp)}-5b$hP)+adln z;?<`vi-7$7sVB0=w;6kjvgsLi%OFHdD+dr*WpsvWVe5;J?nuZGx9^3Y5w4rUWIhB8 z9l}5SAXo~!WRa!fdBdLi{j^M8P;9YeH$4$=bv|6r$R z=;x=8kcoY22hiu8hm(+Lcm9{rUReayS6BDo=oMwsf$P`)JsefuH6#Zf1-I|GYGV|8 zql@#JaeybZM2sTjQft6R?9KOZV?1e z;>98E=(ww1`=yQEx=GR6`R?aPto**ptE3{ z__q7`Mxt=Qvx}LuUWoUE85hlr%z{FT%}TUy^z`DQZv6tcYgk5|@>SN#KF@4{yc~YX zTd!o{v*Euz7PYOlK2Niyi>ZpzO;l*lk=%k;HSOAfZrb zi4q8ANc>}?=(CwfJp%MRoQepHGJz>V zO&05D=1d5GXpV6h`so208rR*=$9zk~2SMh9@gBO*>Ch@zhMq=-;Rr34UM{97k%vhu z@*d)UE)+qTx0tEXd{lwL{D%}cb1XWl-?z+IWwpIq=~T6mAMp{OF>Zpt&`ygJ0sYlT zJ}T$O1>#XuMZhE?mU`{%JCN<+8klM`e46%7Nw7%h zD12*FlU`(_13^Y?6@R_h%i3opm5NTa^NcZjckOC&94#E6ZH%$`d?dldR1aqcUeuu% z-n{ayaN`_ck&JV&3Cv<}yQjgE-Ly77!T+F=b$N5niTxcI1aIX1_WsAr_kLTY=W#Zc z0mjWS^OBw?XOu1%L7D_L;`8L-qKf1aHBPhEg#lLHKk3qyh>%1RQsEFKwEt(msunEP z^KaGv<$P z0)&YhCF1YFG_&HXbtwtK$lsLm)FnMyJx<9V4z6c2(+KzodGRHO!I-eRKI|zKL*a&u zB0NIctm8X~`<9W9OT3cFh*B1YRPz~l4C=_>z>DD;miUeiMmOYs9vw4f7ljKRo#K1N z?d;SzAfxCF%7roH;MDL^d$qljKUVyt5Hp%GLG;- z`#_fJDuL7&@x-iu+yz-Rf_Q&^#@TUb1t2o%E`pQ5cIo~DXI|U|#0aU!Rg60qbJfcp z#_NpDf<()^tdAJoyx~drMR6Tl^MJWrH17O^jl%l<;T9CC4V{BjhYPfTBf-?&Q{#=d zutb%8CSAoE1YZ`$YlqFg(F8Y$;1~6;fY0zD#95u{jsbw{jJe)~u>YyZdwsz^cC|Ax zL>NTfR@aJu^L=T|@YkQ4pD!*RVZ8^-v+i0pXUr!@JPC>l24i8+8@W?!a-a(&xksZr zs56gbublbhZ*G8nEVbg<=d~;kzdmc|zQ90B^#^5NemM8N20+SEi_wV>a&o3c#WYi| zH!nY|zdY1zG6j{5BADA{Nk_9nEkQf}d9hc_&%#gfS1V|eIWcYGaWbA(C`FRMPuXww`2SftzKuP-8d5>!)aAF#hUNiTq?Z)9X_ zr6#V#BN)Nqw%k%zvV=@o@D5})1OGfTPtRf8v`9*gPVa4hYufZ75*Drov4m9liABLG z>rh6$tz0z&=#*#8Ef|h>k%VeM?l(&xU^cNLs5W$A0WAqo#1G zg@qv!3|^)1d--wmqMM9!>+>BFmaW_bDayxd1ZkAimt*rElh0WB+(rrY1=UX;ZjQ=` z@F?{rF!zo%#~PSKVuL4gHbM?%v@oM2Vrj?7gWQ7Ji4_O$x{99_S7*|$uH(SRF%-cj zQS4+vo-E$1A_=hDThbjHm9~s{*h0PB!#n?i4(EeKzY~BhMRJAkqL`FRph=9vid_f4 z(VJvuxou?lxg@);yFqM6-2l=Gfr8?`%%XrPOFp8rAYDTD{rl;~UKDGF6tJS57IhJ8 zAwcuwPmuyrgqtM9_4yv;o(?>0(g-9<+~r3hUfH^eP%WJ-5!f)^A+q$|5yOKb1yy;*P!-((Z>lFIw6CcCIGFNQBiav zcIF5}`GS5fWztNwg$6cCoNcJ29QFZCgjraebmU(N6F`3_k9(Pk)~)?GUU+wGqMMN~ zq}@S^r%jw9FTVZwF`L&a)=aa8exgkqPE$e7zKz`;@wXY}c{&!d=H|!uv@*YH68_NY zgF!~WqWvrDFJ3P1ysoWbL969dq&v%_ zTClYlaf2+n!aZ#Ju3e(sCAK2tz6Y5;jVm%uud<1-ehfw1{1SvPNtDBMt8_K^{NJVK zkWv!W-z-9#BzN2!sjH`r{nAlP>^7S=z+{qXn41CPgfQ|aPkZgD6Cel%`)Q~qQ6hM`Q(OOZziepLp{rjLnyRjSi{Cq(?lWz0| zqW;3I=faKD<$b?nEg41^q{ux-uByS<_LQ}vGbN@vP#OV`;fh~u&dgZPQaO)Ayt_IJ zg^42{BLWdNvG!oLpWr^Um%K_f08ouW<|$GYt~0A$WpPa6*B;Dh z;YC7c2YsRC@m#ay)j5~n$bAts4h3KrxZ)py9Fdw)_|h+VDZ#j=01f`&;-!(ZV7lD&Z(00}Tudi;weN{KpZ+$Gt03Uh>*wQkGm# zyZp}GV$c83$H_uU27i#KEF1{Mn?rG)~o47&vQzO05 zToe7`V>)&DeCwK{#!FekAwO{HyV0R$SE6U?^dA$-ige?=Q7^F9KL5;A=*y&;vBL@n zI(Ed!oc%>k@fqxbc=Dl=jB~NgOuGWAqL>UEw!uWH;)rCFgA{;eCB+L$;fO|d-=q1& z<@_@qYuV2M3vzAsAHP{@H8SZRaH$RTsAzi`?jYnx+@Ics60v?>{oJqP4^EWfj=KG& z4R>?_{rGn2_b3C#sD^^18P?g}PBrif98;(0X;WGoJAZm7LBKrzYG|5RU1fQcf8J)$ zE4I)2w*16Kj-WDa+dm*@{r7+Q2Ws22Z=L)=<^TO(ru->?$)+aD<%j;ae*t6Tzx>~T z+yDBP|KZ2~`-}gFAOD}<^*{Xhe}C8i@Z$yC`+xlP|Lt@A?|=RO$B**==kNMI@Yr@< z95Fyi>31cg3FEB(*X#N}`v?P?{J*^Q|5J}DZOq<`jW0f4Rm9!>xU#5nRsBa7zYhyi zk35>{v!~(ih<4s3DU~zpTW|h;r4*remzPt!xF*^YSIYdkRorisiIc)>9R1Hqtb{9) zRV2~5H9eUmBNIQ;5)>pV9@^w@1%vokM_hBSyn6Z5vF#%C(bVbo0VxG z7|6V?sdQX7na>h~W)?Er);LAy8ZmGq{W!XeTLh;tvYC@#jhmX!yLS9AbT(oQ2k9Pd zcp}_uH(OcH0@qOo)hHb2PHnnhR25L%A{zT#GB4@HKj;#sO4O=uP+0@*FNjFpW~TBl zkgRSLY*?IKeLkxvoHGe%*pci8>sXWEuw({PsCgMo`RM&~P@$3ATk#jAf<%Iqx2h)< zhfD^GM`6m#!P6&9`7?g-FOTMp5Dh%#n0S7gS(SK_Is#!1wwOL?|1 z-BtT#a0m@+1Q;W7R-?5C6~5lV#}|)K?Yn`9m6U*rTC}YIv!zTeG4%8n0Z1zPEp$Mz4lk@k!nm2+$_emIQ z|GM#n@t;+6b@N8NU6~?KAQRGETW)EtlE7mq_L@%fCMzWFx}FZ0P4WXarE0(aj&&F%9d$8jyk&=u`gL)N5!U39^ z0*W%qH0O^a)J`BYqL5E^;2$XR1i&cvVui}5%1ZTKy$r`*U9(`vvxWU=?&)?-`{hn; z(ad-px}s^Vj%R*mP3=kA?y}EXJ&*Gw@t*{_KQfbCM72S7EwOQO#=uUGGI?GMkJIIh z4vjOmXZ6?@HB8LN&NBucXx_-wD4sG}XHaG|e8v^g5YViqXJkb4r4EC6WI&;Uclfq~ zy5*hyw)3{dn`NP9Tbbg0-l~h5n$sfnCky|uowB63hoxUbbGCQ$0BO5KUdDNiX}TXs zOBw?91;t)X39cCLGi1q^SIsJqbcv`)-^ns>AiC-w{*JFG!No_EzF*8fpd}h{->F`i zeih7`H8=m@w#axbtgLRKrj)JNv_qD)tJrZ)gYz1ABlYLk7X-b^MXmNIDmLT+rS2e30w2WX(ni+6Oj~bim`C|A!a@;Wq&$b~@w^!zcm@ z4L-ONK{ex9vUZiSpS#X#oU9Jh^wx7u38Fmsw-<9CfCr)>{8EQjr-+{O9oXx89QeeF z4Ec-fw9Y6}M`_vct)adr#p-OnFwOYm&BaL_P{Hwt0r`PpxC$n;IV)2_#g-1#P6}tv zIo?O@DZoV;Bg+_o>jIEBm<+ix0RUXuOlCTn_^AY74Gauq5%pXqoTxPw<8;x2^2Z#@ z%ga;USVLeHUq0EhLh|7h5j9Km6YG?tlso!+;=uy>_F7%s*KxDKca{&2xuax6tvc8;u(Ee98!lyii4nahOH09VNY zj{r&G;vtfn0zk|wVVBe9l4HJm2pgzE%*`U&-PL2v0bt)ZD^u*S?&fzgQg%A$ z!Q!OPtScG@z5#5HBfYJ^EFVas}$A{NBWwrelfV7t7rO4tWr1(nWUZiEjDI9ykD5 zJ3&^K<@4m|-!bN+$CBMZ4ufUofPgP>s3jwf-=-+kdEG5>q4V)A{J^QSP!-6y{ zWuF~Lvvi*H6XXMi6oiyyOm975KpScbIDhGjsWK?MKC z6LUsb*~7X^?sH4zYKRFG1FjJ;fJ~q^=PFXf6jgpAScsW{*gFBpp!u7g*mU@j>~!85 zeY?QrRx^F16Wr2LMLxcSDT*W6DaOalC^|vgsE4h9aEFk1ZM$@t?CDuKHN_<;s+#l9 z{9*=%d)AB2C)48tK6PjR2IQ||eIlF`d#yHrdvFLhzgS%6$CH&=6XEK?Yxs#>5%h!I zO4TES76>ARk>SD?)_>KNJ%m}sETv6Ap35zg@mq49D=Ti$^aEe5BNdh|uVP}7O=^OG z$hsNu?YAf$Sc{2mWFy&Bms|P{`^nj;1Im<)c#4EoA6)Q62FEnX3CIXNbgE@aPa&8j zkuy;&l%hZr?ECVFO{U!zlN9c50Am^eSm^WP0-^w|_3FPDi5sLjTiCGP6ax&=3=`O( zq%jh?!>uIbEiW$!;V}aD$uz2b+CPr$7Kt7EV;I<^xMlqn8d)C{V65g=mzivawV{#tEnlx_08EU>~19 zZW;(MZ*utjM}359=Z5NRC176E z8-^#BR=qRgvBOfffdO%TfF(2 z9L$Pz`XKUi$mAPP!>}DXQNd=>MPS3SKSxB>|2+;1(1-)7f}g|nH-tV z8PV{f-u(7S#Ae%CF3ppRjiK9A+=rdDsB!` zHJAV3vHr%#mEuIcy85r{-Ik;>bEpqZM2tEn#5%;M1@5-c3*z<8O!L$prSbPhuYz}G z2xerv;NGV*v&BlBrW|>j!Y-^n0>=zNb;D9;%fvxF@q`gI z1O?uk%2o4ldEh0=heJ)C?}37_b;`^8Fbu4qDq9v;R}Og_o|&Q;@vtW&H^?di4jh<- z0nbKTrTDb9$(Er7DAXi%wbTA-!A zj@8D`H)8?m$_k!R>9S)E7M)KRoB0h2D1@Os&Rd@8ccz_C#6LnTo4D5!)@%QM;^Oq- zb)>-4Q$KF^nA48MP)2kM&1Ckt8Epb4P$a@Kz~82b;imF1;!<#C!MVOsa4dL zUrTZw#1J7fb(b=?dF`HbQ_x@THJ6fPKe2~SIcqTJ1rQQbaGLa(`+E84`QVLUY_>U- zaC0%Gs};3e^uBEAG5A?J?e7;!d;6LkV4v1uk6JsXWtdT*9o&e$m2|4)FbsX(W5o46 zDQxG%c@h6&pH@AF#^igz*ox7&Y?z6?T~b^udz*BImVR0N#h-?Z+r5<{;N6}5Y`u!v ze3A&l_y=;7%kvf4jH73ey7E2MGsncWG{lh>Mp$hY`&bA^V0V<`1es|cCn0V6yCAv4 zk|hDx86Fw)dLJ~I*~XcoYVXSPz9sj zgA8Ey?+@sC^P?184)$Zr47$nnq5d)SL~qJrZHfvdlkRtrQ9 z&awFsmm41s_|-URdQJ7p(V=CZ&0npc(Bj1BU5l^#%2?=`*5-O4dHFqAWJUm?C zxwo^HvZ#`YFp)o!eXWCMxh1_|eO?LWm*wygkz2g_m)huumlh;b;T%Ow(~{eWSWARh z;`z>(xe$0@6KuPUTrs)_CCe|z`P7{@EaHCB5OU!1MuwXC^h;Z583B#WH-yu3O5Nm; zx@tdv-@-p;2Jio*1dIKekh_L90}4($krhgBA&|r>hpupT@Q1ocl|-+c%v1GMy>AC^ zaIC3defPqGOZ#PY5)tDeV|ctUo8p&N%?~8yemQwGjXH~Bf5ootRc4#nf0yRBc4ft@ z-Bdleg3RT9$&p0UNk1s=L*mIzbE3qbyzj^n6NE5N$<~{vS7)x(8l>c1bq`l%2q`2A zwAS}2^H1j;t$1fQz(>*`p`#bYVMJ6^z>y<6vx?_X^gCQ#L%7X*vD!PhVbHCYWpRK1 zEz$^HL*LP(4~xc%2rl^vyX?G&MdS`@%L7zD3?E@F+EGMiX#W(S!e?Uk4^kD*osdPw z9+Q@RdOc3aDaH|`ETut^{4C4aI(Cdui{5oP{~!5UqjfZKxeO@@=S9G$;*t*6BmMo# z6sEx15X(=}{m3XTO+qD28vCw{2|ywYLSi(V@AC%BoO^vOe}t z!l+c(NC{HiqM}@*$WQ(8it{Z`-bxM5vH$+Tx#4u{ji^^8?F%pd#X_~&k6dEJ@4hM_M_!KRAji z^GPn^6q5dJ4y;x|gLJPH2zhZQ58KZbpFmvLCgA45hUjCXO~mX$Tvg=bVzNQI!6?97 zBnGGB&KSmIsUI?&sn>Pu8((Z91`yed?r4z9o1bK^V6xCFB zdd!=M_tzo|+sD&SrM})(rMG)hZzO+uBv6@60$qB*E0qL|7EJL&kUM02oKT`}_i4kEm^{6yM z{x#L5h=|WTeD`lMSq8osFd|Mkv z5#avvr&l75lm!vl173oWz@MVkg~^;VLN%H3OlmA{@FV_CO4O*w<$(bKU;kDkO|imA=5Ehq0R>GoP!9M zSp6C4o|KyCOk`4wB`1Qgh)$P{F%o=eIVDob03}2_oyVJ!lIW|$b!VpQu+JEb3b}!g)G$8J<^UIsu4 z59!*x5mnTEeBNF`{B*}Zyk^)VE9J7{0`lA1KCEe z#9>Tf=%JU_NsCdg3WZ{Ry_1LO9skTkWNGi-U9VlC=%3@QP+aFSVW9nti=5-PdsXup z9N4Uqd870>A6Q_i1@Eiw&d#?{mMv~;ZPh64;pXA=Lv1!s0}MyEf|HIrOb=Pacl2^8 zoa5%U9x4mz79c#DlcZv%!9#%SULOI-_crIesu8>oW5E98$mST&OTkY=vsEkY9kjR* ziqumtm&9w;EzHQOXqYk4^{>sj_RCaVc|2gN=TZfV&S~|uxq`eM`ZnLPJ~EBF_sR7;hBS2?>0Q$C<50G) zS@G?K*~kBVWZ2(XAhCq4{I=QU7}+RUz+>l;$w7}iqld3zxJRl>fUdQD&$ei5KfmJ_ zdOTM@*oTBL)#=OLSC*WsT$V-9L0#Qa$FhwdT_v!hQBz9pgm3&gP&dfVV}EN?^|Gw? z%GGnRo$QE-D$AHPOtRESf!B`{Uob7VU=X<#8iN*$sy|iz;QICJGPtPiajr{qeCLna zF~eWcRdUK)ybxv=!bTvbKS0Iz?xAyV3o*xWJ7Et+=%V#g%&_1f1yv$UH`8p>OJ0t~ zm%J_$rcU_JyIs5D;j3MTd5fBDT5fl<6LM067y~XQVRpIMX?xlOq8d8%7o@F56$9=_ zi40mP@E?H4$Y7VQOUttV{%aY^zay}nvKY`Wb26d{RQ+XT-nTo;pEmL{793ECkx>kY z6ynL!ij$Bw&_lOxJB1uQD>V#N)4YswK^1@;{gdmlsKcnx5VEOi8yI+1_L{+RqRAF@ znzHH%0>SfsE~wopJJvIPUJ$I0{El#%R0*o19&mdwy#i~{&)`Fj;HH)aFpUijzeFX& z3bQMpC<$u#Xn5gN@;N0?uduRp_au>0ru>#KCf+m# zBgWeXYJONTQKiv+P|-|7#06&WGWIJ!%t=y~r=)PrL*6#PJdN1vMA=$G`OFYOmHIL} zGe;An#Wx~drSB{aP`pblMD$zsAa>IxjrPo|r+^oIPHQ70Lo-RClgwK}b%MX*WO5S< zzc6+EBb3_ z^y(v8fB~F2^Z-%|5?-;2*naB4v}F-IRbtWVMfwD?Np2m;ULkO}K+6jDA0B!_Z(*yq% z%{*1joB8>0mLleIbljrv3*axA?VMPkFcRX;JReHrmGPtRD$CsHt!*ivna&_0C1tj# z{HYfOv?aOG($bP6e^GrO84E_5bx*#B_2+40O7d4#Zx1xJApAI zU)!dtN{Cb8$$_<$Z3g=QrELsa2tukr+;;z$tqZ8nuK<|=}x{n8^ zMrOZ{tJ;XoV`jO*lzHdw_QeJvFCf%|4s|OcxrCJu|KwILduk7+eynpX z4dOh`{LI@>jQJclrS$<525Jdf#K~T{^M`>Fmmt7^yxlohz9rCuPma}ENfiXmCEi%L z3-EY}D;0Q%B_YFw)OFudO)-qMo3fFJwBGvqCps&r>4Z5UE$ zJpr?dga3`%9dL(li;SL_BaS{C2$FT-zx!ft?j#n056})Jn&bcy zu!}=bN{?|xLX5JSm*W-Wr`e$mrKJH9VJUN3q;Mld3ooHH8Rhp#9+S^QLCbVTm--fR zL44W1g#9FaLv)#}L~+XV7slr1Y{N^Ajk|BkyP>KS!#7wmuaXNZpO(Nz^QR^Qo|&A| zQB62h*KW?r<$k+REc^Hj(%|Fh#=868yVcTs%kw>L3p+sqOvwn}o7&26YTGP{l-xFXQXjo}k33$6(Ba1-w%v%4bwad@?LhW0aR)FA z5@1>8pnzj&fU}>qK1}$72*Rlry1D)Wx)*ezVz#d@XXaPBEl%{ipzan_prqvM(vUyn(mae(q9oAf5LVP&csm6s8tk}AYt z!7LI(+B8lx(%({FW+|%@d6?u>L$2AL4VB79HRDESlUjTnX3rgyRsJO5hHqGL%%X-A z5yh-6it_%ct?y%I2k!S!Kf87CX;pgd9;a!pp@T^qn9oj3_l{5c76^hf^Hpw-K=OFw z!RW{uR;bi|05>Q>_VawCRhh z2?o8)9G6VbHPJo8haTEHRC&fMX}_}L!>PWTjvE9A{j^jMwK^69$qklqfpnbG&X6F0 zo3j}+ltk*PG$Tf<#w+z4#}AygAs{5n3&;+5$#X&BGg=-0?q-fHqDVb7RI?btOilF6 z&{S9dGgay5mIb2~I=46$!K-`wi_m?)E4xs1d)H^AM!dKms6YJCC&*aj&I)J9?j_M; z(lX;;oT1+IgQa(Q?^y^$Q~YZjUG6BAl@zlq)j40}dtr?OkFd8l0;UI#fZ>@&vBA+n zoXanmx5Rdi`~@%8W7>QkamjNV-Op_G@1G(scsRZ1P*c;-AyI|fiXrFxCl1^tp6iBz z57WFzrmO&P@Tc@f;tRvj(WM_*Kx}BK?+nnC1D|Ua@qdQ=xtH^SLL#;EX`XJNkgN0K zCS2!MV9Rppptzjz)zo-DPx{`YvI_}m_PCZ(P~$MWl)n|lj1Hkd96-1O+tdNa5MH3% zMiR^)venK==wb4k-K*oWy)3rb&EH_Xjq?uaGqRPJY+FmgJP>7+>byhH&56Nq4qyEv z+E1c~9|k+;$#UW&hE>JS6sAQWWX^K7mrC-`0;{=(F4Tf4REPcxt0$2M&IK;{`Fo;#<< zu!69Ni1o#buC}yTrKP30xVuw(d=|L*DJg33yhL!#%_#SN8v6C1ma)1{EpF5MJZ@|@ zQjV;vtJ_hq@S6z}dZw3ct*&0!=@U)k-kZlx_$OLILS1hDv5nCYzh93YVokoUHD6ln z$*Zm&V(bw9&5A?z#=oCCw{eBlb}x%Av|CO?))B;KyxW25-X>|ffuUjLn>T$lf}^5h z>+1tIB{HtI7l64@->vhaqYd$|HM}cX;6ba|nV&>BAGww~n{BjvblzF8P^W7ra#+@K zz0YK3KCY|l##jRH^d?)owBYZ0IP5x;d+6Z7;E0HA_Qr{-zuVgfu9>Vs-nXYV(d=uD z9Xzv5x2(;}o5H)O&u|I)gk27`OpLL^`J5cvDN{bR7(SfN?~Kl;A)}^D?^C}#|Ix0d zmKJ^HG-P@8T5Gf@>1)Q5Xxr)>ap_vSLf_on96c-pXxEr*skqQg;wJG^IkObUO}dd4 zCW8Z3g$!yL^V#0Of<>bS?Js!J+}z(Pp;w|wdvX0()iU@<2HWmXR!xj7DH#4wb(hw0 z)l*fLo=L^;m6a#HFY+DfXX@IxIw?1G_l3BK_C{UX;_&=O9?#OxUYnV_8@Xb|wVP`7 z7lU?or4R1hrAv1!cMF}iNt-sjPky~FcHfA~IPYt%bJD^Oq`x`rz31(mHB%?tX^8zW z?NHNBtJ)P8^!it||2-ggqU(*qsIS);=G7@ubvf{7d3pJ29oW?ElR_IC!?xm@73VKq zx_n(&|NHBYulgS^?RNLaRI`i9>a{gXH2CFU>ui%|J$LPY0Oi^J0RR91 literal 55074 zcmc$`hd-BX_&H^8 za^KQ;#M0P9Z}QUC;nU(^Q;i0>t(l9PEyh>|YA>@@bEq!V7%vwPU_3f{Q!%SDtiw1%Js5BXsza)#Sd8IiSCF~061mQKt_L7_jdW}{ge zAxTbfPX?2Q<#0<*5I=YuIaVNWO)FjvM_#;o75eR)3f?P>p)kwc+cqKO*ars(Nbv99 zzip6j_-6T?p5mmp)eRE8>BYSYYYGda?yzO)M(h0X(2YANNgppnba86dh`sb!6~FW3 z4j!l(8q!?2aKYvG7Ye)-OmcrXjdE$x@yNSC-e5AU9jCXG&DJ7m8&Yn+F|jY%vwmP4 zmxfp!L>}x~Nzt~X;;Af%1=~txY$z~&o>>vbl9esO9q<33_$nz0KYooCA;Pi}n)wqV ztV)L%adf*~)zKNr&p*#}PFrW5kTL6Wtj?dIrBHJI6czU7=`-5kE2^7}A8?G`rbenx zO7SsN&4cFsHW5|>!P_$fiKr1o;yvg2`esTBTg(xvg>Jci z@K%{|h2*m)+B)TF7W>?6NR2_YxcPC+DV%APuvHOzwh-3^O7}<4&8)QRXBqlzeowa~Fr@54*?)b3IWBG#8f(&MrP4Q=^)zl1c0_!q{ z+``S;I_E=8jcCOL4~3?sd4fN8TuMrKTNoLB{J~rvjir;d70ol;7U8;Ln`+xZ>!QJB zkMeR_3SoBL+Ug4&*ZmJEMop$(DIrF=oL}XiKSduiQ(PTgOKzT_M`-F43v!ytspR|r zG!pcB&J|2NDBaodsBj#=+{}A&>s-qb;wLC*)5DKEerRx7TUy$0U}y+?yVuSKU6G}y z>7{|jX7hV_hW~~-zP$D{)(~#!$;)54%EMD(a<`J-yonha z(q8*n8L7#{%)X-=*OJM3UQkdl3NOT5B0o_w+Q!P_r$_l%!_t?RELc?ql$ypLzc%8s zx--eXW>q{RYmq_N<=Gdae+XTFkT_2lk@ZTOA@Ckl$JD3M^?xhr(}_6A9eEX;jffFT zx0}J8JFQiwix0 zQ?`n~f89nMs!ror9kKgUUfK>2BZo-M{ls~O^F%~MSjClUu%iX8>rZlp);x%NcZU1o zTV4f?7ZU%_K%~91Gssk5pBnv!EAS0*%F4<#3=G1v6=G!wwj_f6TPoKcaMQI|8;_Lq z_4V;t@S&>}+xU*2is0N7K7ZT*BO-;cuqhhOd5B#hVYawda;sov8;^j=4l!2=x~<=}imjOY~-beFkyNk~gGh@@RNj(c|#Yr=3{UR7If5xYh$ao$Zw z=PWy)>-*r~FSlCiD_Odm+Uhn2*4FH_qzW!$gE})-0v-zih^}&+NB!Wk#O1;hr~(hW zbHmPM&0c~23`W(d@I4Y?4WOaAScV|h{x!!AC>Kwt*teA{xr|mGQl5*K=i5r>3Jrz*N&Krg@`{Yww22 zLPXYWf&rqI%h2}ESDJ|hJ0cyN5n1PwPS~;*p6L9^Wny8$LCgeG7(=PaW)#@n?bvXG ziI6pNnW%q9C+z==MY8XDB!2vQBBV6mD*TO-l9B;uQ=(?=S|u+b!mb?minsf3)zhcg zl{GcVnoM?h>J!?rR;Tut>M2^d5IuqCLtoeNH~r-_MO?gY!EQ-wEG*Czp7 zmxN}L!FN;^WFL{4MeuaLN2>Dk^YIx1#{ieG?N}Rd;Uo2vfgg%jBM}cvE6k?=+!-l3 zO)s3=(4O@#seiuUSFQ{b!T>SBebN4fT+V|&c&m&@FF*hAuACfhk`p zGJ(_b4MRR$RPkr;NP+6oC0|F82YD>lD1_-rABZdZ`H4ZVc-qx)Jy;Ks_+q7|&8G(o za~HPR&&-8qYXV&dj0>RcjW|D+Z&<=#F|=z2+#eC^Lx;ZdfngxJ%7Ac zrlJ*fVN4!6!Wt#!Etc^Rp?kq<8#TB*L3C`osLh<8p*wu7*Qt6Ara-He6iG`xERl_| zI8yz!Y)$Fjy?ymNcb-^RkB=Fk%k)JpwPW`o;*IccU0}2m5kjsKVu@sY`3RFEKi{+GGQd2-jV_y->eHN__- z<+=*eWF;EQFd#F+NTaV`xFIV;Z~_d`y0%{$1!RhBFjZWK6D8@w^Lw4weeA*w8?upN zor@1|+`V&gE`9cCx+TnN)iNG+`QdNQx^Hx|beXVP*2{S6;nP9)b%xVmQhTlc%ml_W zz?9f;$^U@^$LB%|&l|NY-Bm3lmOG;C(u@orY=Cb7IAskC44}X7we&j678#2KyO!}B z0UC{I`-vfJOd;YO)zH<&^B>0k`T*-VG4~|~Va29q>UK*C4GrZp;!Pr(sqwUvv?%*( zOdxQ+MX9v$HHKLnF-z^TGR#Oziv)ruN=qvL%uwhq53QB1uI{eYDSv+cSjx9>&QxAR z_vqww5tv{PX&8=9f}bo;W=79SYUl9$b0771xB{r1ace~jpjVV3pyHC}FR?olAmK-`X>=SE_BQAC%K z^!jzfqr&jfFWPhiEp>stRUCanvOsm`aMtTj*pKi*KpNUmUhXH zTSpy4LRb|ov3Twd4@Jw$+C=Kby`wNG@xJTo`mxtVgXb3ajdt94-(0nHl{nTOyiKh5 zTNJ`LmyJh8QhF8^L&LSBF^A>4;vmu)w>Q|#b~$3euo54Z=jX4&>Jm2oj4#U1 zCzmXv^$QRdHj)3Al{6Uw(10|38lHfT5`_QR#VR^#|tVQZQA@IVpi6ReOO`ugX+ zrIo=S_U^xzh^hWCw915=+HKKRhpCg=B`yAn}rp&fdw-<1g>j zRA-~|Cqjmmpu7+%-2MHGLEP{=*R1$=&?esU_D&C`x&*XeHGw{H#wwm&%# zUaZbUN{Zo5O(Y(=IG3a(-Q`GJUteFiER2?Jt=>lFwNO#LkzIAH9UDOo=KSh&NcESp zi4H44M-Nfj!l$`8ic7;B3V<}QH|g_r>6n?b2E9KPueLojn99w!u?e4y1o!)zI$Zk7^PW;ox-c>A#==_K3;g~$v z0HPT~InDDo{u8LEDe|lH8Ydo0nc^ePH-M`O*F|DEP|8H{QxnU-wNw1TYh1@KsBI&R zK66PKOeE}j{1y$DF)ik-97dcPgTV^YGM+OIY3b&MckeIXpU?8`5B_p?W+_6W3NbN#Oo)e+Tc2=N%M*3 zGVg|&m5+ha1yYwp`wMak;j7s&IG>gAIBV(bF1=v7JL6WXp{d#WMT5G_y8QjUxQYuc zF3&?Sc?MtcHMIixTa=Q@9``j^V@ta zTC^}6s2xSp_6V8q@ZxWY_h{~hs>#ZJ%)SxK_l!IiDr#WGL#)>Csz4?sMSGqs61#tL zsw#sqiO4E_r>3$bD=SdQ7hEKRA*?GNN!AMmVGYAsrH|EsGxIR5ClNO|eg3~sJy(rq zUFK%`EZj;39OTL+b`NIeh&z)=17D~Q1p@rd;AAS|o(w^{Ip{8~URcyXlB9y;2TK3D z8ZP{nn=+Ub_ISmweSJ2z>1^n~HpfD)VjZh#UbKOBuVHBTHSfO{3v>{eQKOm}MXMDw z2f&N}^XeeHQVq>l*|&$2JxSdyWjL6#Mt4Yp6)wsdbZS)47P@gT+dam^-q$DC(%8iH zO130S$6zeRlMwc65%;l?l#~<~QQD~Ups&eZv@AYX`hY-y0-+_vr}8uZ@0H0^E#mC) z%e@m5MmNQ~(Wj;9zf;a_*PEt(%m4!c-WLU9uA{(q8J`@n-L0=bT zh&!Vxrx|F)ssG<)3DdOL$Y7>%f{V+KJOAhY=~}pDFmhL}T-j=+y5*Gq-*+6;&K{__ zOCWF#xhQuBm|XTJ^tA$Q9^j6y3ZDnwqR^?wn0XEC1(TE}ZZN_mq@AJ;A}J zzQn$BMoDnaPTEZIY4Pd{RzkeCWgY&dI#Sg^nWF+n>4BKeM?xZYv`;&2_^IF8{S_ETK_Y+CX&IeaRn*hwizM~Nr9U0m7Ih=9;z*=78wGhI`i@oXk z^0tyw>zR)_+!Z>}KY3i8zb~KR)`` zYVmPXPjzT#>f9!WoTgg{RNm+VSDBK$yq5AlsmO8X=0>$~fPV?xdb7X67@l`o<-5z& zYLE=OeMKzK}>RVXL%66q~Wj9BW8Tn!Oa#NGPCxGOVK7b`i%|(q@u3ez>B2f zi`fr^&d#oy8rtZ;SM`&cBK@HP@(o}g?p;?ep)^0El95Q)xsG99e}hB;>u=OM>*LkE zmMq*{T$_Kp`NHCEA*>u6mJ>CuOOy59(I@*Sfjb-1(zAgo>{@y6sEd?LMm$H?y(Eq| z+k6g}bK&ufiqU0vS$%>zZvXA86+bn9&}qPaK$EV2CLT7HkxMJC=5+O#L$a7Bmjpdo z(6Fpc=Pl$^k3hhbfP!YKL(RR2Kl4G6?(sZd&>clZLU=L&6rX?pe*aZsqKwWkMzJ0Q zRzL`zN=tRcEZ43PLTQdb$GLqEBmM z<*tkA-WCH{a>>H>Kdy~`Qe~%vc{jScwY61LM>lEl(QN)}0w*UY#!qr*ZEXA1V}4AY zrXoU*U1~_+DusxqtHl^NGv_S0F+x%3*Lhq6Ec^^QWj~4dXjPNXmW6)Nk5qLQyu0ZI z;~`yw_nG-=qRo#4(t7rfxBFa|`k5yDR*RAaA1dkVI8}%^8jrXR$Wc9$WQ}5wrjNXQ zT?QD~kmZh##6FaW%cSSXu+QVUj_9JJu0gYwrpHJ8PHR(?O>NewN1d^c;OCLRY++uqzJT<`!d6USx z90BO8WCVcQKIN$E%XPlO= z?=3DauB@s-{DYHIj4*YpteFsvxk%dT1fJ>RAnWpjDF0~t)aSPuHRk-!HCMNq1rI!O zh+|#fJA$2S_ECRk`+%H^O0T4kq=Su|03`Gl2a&eL?bg-Z=c$e>-_QMqSMgKBOQ`an zoIi)ndHp&GUHr%@YEI0~&dLPk=5uN5kl6b%M_}n9SJ@Q(fOej>FMA|H=VapJi+yP> zgibhFNL^*OA}bJGD`?v7Xnve-_X>hb7G`;q5yM_upxkN(t?=^1-oQemeAcO^{v zbSu`Sev(4kd2^ympt|%g_$_zm&YkFU6ycq7cQ&RP1^jj% zX=`hnP1bpiRykh1KuNi(lMf}bc@O{!JQV)Ycr_om1hmxA^5?Lzd>T!BBootUPtL$F&Dk}%v6pSr_a^zKGd-Zekloc0%U_?KdD?v?gxlxi>x9A1Z}o-T z$YVgR)UYU1F$fl;%30=?+(4LP>d;$9BXTf0<7E?96ir<-BYL)6{Hwluu8zc28Z zG}LrxG{h^n#&f85Ow_sy08DfkD`T_!1dk{Ah7IY$w-idHZ)B1?fB$HJ`0bFi^JO(nEs%}(Qxu_d1*K zi@wPms9R#v*kAPEX28yX!v5q&AeC#{>({ij;$Fnci9F`_bM+H&%+kqc)g!Ww6S^9H zxkwG*L2>fC&VDu&FVS(vQ3KcQs@+2&nwRP6bh@76*58s#?E+K>`?D3uK=-fu5r`kh z%EZQoOLUp%ww;~bQ0lX5S~+IDuWt!kx0mbl_{@fL^yjK)XaxqT4!!_O0@i4bENCBx zw{hqG=l1qzIS-50P37hBa#Yiv8`pc8Pc`_G=oYQ*9lZqOW4=2nEY7!oSkIKMvIFK0 zH8Gw_iXiUlNC~)sYDMdNts_S}%OM-hXY@BGJ+vO_wyiuJJ{j=Xn4-I3(;Ibq&PmXG zwA361|14RIMI-;gD{_nXV4G~t##tXrM zbuu59PbD3BBxEs|qdE%1I6a0BbV19`7?J{OSOv$Q6|Itc6O@(b{5t8pUzhobkrSAG zdBJq=-aXN5(W%FKlRh&~@Ox{{t-!6keEHa@OePOlki?bhc z-$c}%&2`2qNOlGtjZeF5H10i@)Ys9~oozb$)8;+>n5r^+?n7K<_q-T)wiJe@br)&6 zAftktpA*^B)n%@o+}|fvJ{AQNW#+pwUwarsAax>jcXzkz$?k~d?=LT@#XLCWp_4-S zV|2lQ*eKpxR?3$JQf=^1N!^ZAC!u)AH zm4C*~_-Fbv?^a5+6dII6|J%Lvqu4kSK#c69S4Y$p8>928YHA%%af$lty*Ent0MLFk zYki7&{}AT7Vm$k=Uh$2nI2FMci>2|F$Kp+R-KN&2F`aOlIG*TMCg#TFRsn$@OP@dD(T!F0_m)tP(hKEd~(ia5zM(0BB7%}YFnK|0WIeHlm~ zJl-~_E|x@>jk;Cdwb73(7TfngUv+BS{ZYCXAjR;Uj3EZ_%}8FpX{{R@Y};sPeM8A* zBLEA26dH`ydD=&h;jt+`&Cjn?(^}m-+5)r{TA6_FKj?me&d!_%VFx!R(otkQucoF( zl9*6=sYm|ZRVT~Xg1+9~7=0SaF=OvZ9Tr8vM-+FT6W^MjKKbL_EIvP!4-$NL5?|-_ z>WQbm+Y9Dhacp0DdPsK7s`Ys?gIfRXcGCOv%r>c2hk{7#+9$bZ_Vv{@^NobW#93I{ z&oG0s{&_BqmD_vU=*aX{PU7F=!~Hg@L19S z^tV(O!(Gx)rWWK4gU4*9qXGr;e=_wPf<;Q~5$?H|;zDr$B*W%OEcnUqjv%SV5L zC1d#aCOaiF+PD)SeH>`^PmAc84uuxqHl2&kw7mU^{9j6suVH>!9wgMg`yGXfj33t)oE&tF76NSK3B^pbUIyh=dY;j_(ji!s>?$p=r}av1?L5iP!I(WI{paUQ3~(Eo43U2$813aY zeI3t9uG*=-ievp%-F)IWx(Xcc{I21M5DD7jMvYEVbL1S3R(}*dXuKSKjf=}dkRv~p zEU=o~qHb_GKvLguk^d(9&SljR&v)hBB{O)VW5Fv?#FIEwJ21fr5L!Mf~hriBi{k&paso$<0I!dBN(rw49 z99h^8KYjWnCVB65(CLAB$;tj)Y^K%e7nWEvXbhfGZ|<>N#N?@cLoO3B@nZ3-Yreu} z|3|I9l$*Mr&Ge75TRFaN(rF^_Xq{sEXr%e{SymRa1ds?}lMUD(ymd>==%hCf(lRlL zc}7H)1(1$fD!?atudKX$pg@l=V7uq0W_)({{HM{6mICIV&JkY`WOdM~7|2$*tD_SD zGj^AEIpgnBk(A9Yj*Peddw+yY)D;z5wbUh_0so?Z|NebtVn0hlOb8i2d;Eu~Z4L4C zUfsr>>zX(=b|~Yg0+t=2Y};>lc6PLSHG{-v=jOIx$+Ex>T5E&}Kf9cpQS5o}^HKQC{l_PP z(k8z1mw-ud2;B^L7X)8+Rm=@gg65Gt4&Z_ zo-o~g{<_SIQ#32{!{rPnJKQ)#MNelJo9VMB@){|avCI!GUKI;GJy^tS>;jBXdvD)7 z9jnY+%WBspsB1Iz_vj=U?qhV7H;L$~hyy`UO%` zU-xZ-C%&0=r}Beyh~##UwR_PSpzFm49Cox+Sfd~U_Q+s-*te;bmM%xKS=bUG9nn|A zOd9>U7t_rtv(Y^X!bNBC6>2#(J^SAV3t?GM2N)3S{6($u5~1b|+;&aU>FTI5pUm_v+c~Gb={`t3_P~(;AV*$ik96TvY^jKvtE_XIQ~$_sO&=;1)bd|8FTb@L3dM zJ_G3B2Y}9FSV3^Kx1j*AN8KPRQkamCaA~?Z=<~{I^^{+Me0|-(qt6NqkF{4_${%(o z4kssGMgSs|+79Mm#;3i;9fg&apWJ4&5dMd9;DX_Z+l=IXqkuDDz`HMeYrUjrMB#cy zC*~oV-9!RdLHc+T=S{%hF3g5HpjJK8$DaDLlh7xC*j%VOL2GSy#57wyLkdLr>)>$> zR5?Ddva*_K*zRr1)6Cxd9j|V&{QW(uBcaq--qDaT>%~7*Q9ZR2qM?NR!sxxEAB@(2 zM6AoN^huvdz~H$2(MCk0a_9H*o6mnH>n%?XcQ^eS&FPX;?Za{^Dk?DU2^*93RDgqS zySceVfByr5RVhsUJj#BcG@^ylPgxa58+>m79KS5mboBhHQ%gZflOfB&;^N{QTvx$I zW7s`Yeyi6Tc7HtJSsGNJ_-AOTa42GCH{;fdeQ(v!U@{}L0jKn`Uvpn#3X67kj` zFow_jpTU#sfIXq9t9v=0Ley`E)5PZ&?#}86U!imh4C2^6sUu=oqRwzi4#sXl==3aA z31?3Q)4sEMFeUcQ z`i`uP6?rf))J`l$(9(x1iaNDrl2{30ytYBvZg%rEzy22poBZyLAY3+9R+J9{>voRj z(pQXg0VIiW>;n{v8SUj(ynvR(s+^o$ZlMh6Ic!naS=n@{Zb%|VS9{eO?H{g|u;}j6 zM0fNnxo{k<6qGQ>OycG1UU~4*LT+^R(xpqN5Fr^1>K>1AozQGmtLzw*M?X3LTf5mb z&1`w|qkrq>1e77JM{bW zDD?Vh*{QZFHePN+28^aYk7!pky%)2-_8RkiDXJ1@6T)lJ~He zem1*pVDR752E!VSmjNZa9QppozpwD|@A>&(0OvYkfl41Ac|}nRWOZ2G0JW(7_+UHJ z)-ZZr^^#oc`y>;ZR3;vBf*BAs+JQVXdtt}35(2-cmh|(8rk`+b*urZ9lC9MnkZVhW z4(9yXe+L1mhPX9-c3RyL-PF(^@oFCg8JF45gc1k8<3R#>Fw_TGR#XcCz>c;6AS4bG zH55>`JQGgdpMO(2L^kcuM&6~{{JXs^;J%=8@#4jyds)ySHkyujQG@`#N~o?b(O(}4 zPF~&)5M~5ydTAT}e&q(X1uJ&$@ZWkQ3GmlnP?R9(?=NM?@_YX=`n|ZQ@OX)vle6W&M@BidxNQzi2mLb5!zd|DZV%qz ztKdJeb^mQO%dMShEPwwplw9CJ^P*S1d8Oe%qrbPu$`GLprk~3c@*Z)&G_X_U2&U(NLW)J3@I1Tzw*L6S9h7gcn2g*sJaAx0EF;@!NNd+ zzf=a_&K@v_v9U3j57MB@pyBBNsBBH;eE59ZbCSE&PLnf$hk9;KhZbqkFN-5OItS_E z-tr(iN96KvFS7v&|M7fh#6*H%X zzPb;NmcyU}TA_n={>YS+NN@$huj-Kdp4q%Pn`*L0>| z6w8U@V@spPgDk1(#>461o4!B(rQ6j9(#%Rw4qO>0nvsVvQN`zXQ_L5{C@3@~Rd6=z zvN)e4?!4EhWn|9!u^^0W5HZzZ=_u2BuMCBwh72cOG#a>ZRRFylehn6 zW54&L%c@S`=FO3--HxmOc|P{uMbjJ8yrD}BDhnU=4Q;^qVaE1D_LT^>7GZHZ#M9M) zxS%!?MLXk_mW<=TGkGRiFVMVI5{6R1WW$`so||Dt#zV=og;j~>yB4H8c_`6KtvQEe zKrSW=Jn(bRLmL8G1BqN~*)S{uG!P?-Y*A?t7 zSxzFD^oW3VYv>KmaGtP^qqVC)5VL<-F5lM1-37c^Vz50@Hur z-GLk11>y>(aQ%}`)!=AmmzFNOOQ2sHNI7B&)`P6+*9&68+)#2>v<&O=+TM)0?E@$@mL^b(@#DKZ3Xy zte*=~9X`De#;Y#)X8{u)lVQe>E(Ve<>}Up<>uuj1^Me!gYPyfj+$7>7Tv`T4uT?Csta@n zyNVF8vbKhF4u7WB90>F%KKs+Kt%izLyJ}Cb|1$3YumF}6sy@F=N%8Fvrfu}w{eN~w5JL~1y{2Xh|9DZoyAey*?I z0fh>^EM>mNp*1Qu#w__HT(fX;3l$@yiFN3we{Wiki*Y2{&I_rwf!=25CV$SK!M{;|Fqa+@(2I`FSo;~-^PK*L8T z8}^giOP(Miz|@AS2OTHyxW;ZQS$?#E|w zN(=w)P3Z?ivl(!uy1~;xApTn&SDj~|iwegX7=v}Iqm#D2#~>9T>bJY1v+A|I*w+cJ zCkePAfYJZmhW7qHwhTYubi=*MptHc^gT9~+0FdC=Fgs=2(wr^^o#F$6{Vk_7E*}!Gee2lf~5aK*0<6{{7v5PPlTN+pvry>oOZ%OBy6AKq#}ualvUx z@kq72>c_3R1an7o+z+G$p!!?u)zej9tVp$Y*EV374bem#Y%k7rG6WS4{uY661{Pi9 zVbkF9XVsgNq2NeubXj5Y+S6=>XwFzdsj-oWtk?fm92@E@WI(8ge3ov3@a&QF$qpsF z8I|Y#V02aE{2%%S637^tlLO9>_7SvLT=|NArw42Vw zBNIEaLtJcFKKBSdDiFL36l3#5-^PqzHvNb8pb)^i%6)3EmGcy1+f`waeZ(`FEslo`3O`&L~sAO2=OIkT4LMFJ+Zl+m&7#!KHl>3Ea4XZ>4O_77Pr z2EPhdveq5)^kTpLAuyghZrLD3ISZBp=m+wJ^!8sASys}%ku2_F#f@VPTV7M_=hj*B zuf~=?Jq}N;9Y=^S$)Nf6u-u=?%}cspp#P&v|B-Q>#~njM!|WKQ638uzhNAAKxOjc< z(SQ&M2)?nY!D$v2S3_EZp-8e|`~H&Vk0%84N(xxwcaQX0>_BSX+RHg<^tb^WkAp%e z>MZ#J#GTD#I3h^WkpRX}AMKG{8yHoS2s7`_C$2qRLm9w`K>8@AHwJUb4)->u^K>>k zV;K}6W%hXwSYJOF4_b-eL*|yVRY~0;`v-6>Yhcb+Fl7^PwZh{d@L)3M9Dm;+LikB* zDRR1k&PnjzCX(IH-BP%H(VrgTER;;24-n?!pJ1YZDi{je=51*y|LhSA>Hi!baEIW4 z*i9eiI95VX$$^n*+7slcrPJ&_VM(S19V@Z}qi>{!?l&3k}m}oK`9r(3F1m>Px5s24f`4 zY4D?^LI9w5)MEtD4%iFys?`&|pKZ6DoOu8JnY_BYjf(F)Mm6M88D#J)HRqYw8Uz)f z6H%E4P=J0FT^9>$a&zTpTPDNHRwS(L2?$LJlMAR~1!U6oPwnFK_Oe#%=aK5czpC4? zC=0%a8Tfimn;hMbW$Qf+oI^iFQW_v+DHUob|yf|IC#V@udZp? zrMLI2d(A;ta4H*~f`53KM?bhdl1f4K5M=$<>gm8pa1>z+lEX9s-h`U(Ale0V5S86~ zfrK#WZ$qeWoFIEZ-=TWEbEWQ77)d8=Ob~>a00@tpFsLnNKZoZ|G{N50kq1C;*@zm zc#eZM{w_B+?9?=IK8LQLx7S7Xx?EZD>MC*!DCz8(&YvQE3kzlt*299%j;5o_&a|Qz zs|<^LKven|bask&G9l^z&+OmYm}YL3BTs(*Y)R0G{SecW0ij6?o(rt;SDx^h;(v2J z#v-pI#zWjaj7>X3ry`&zzkXE$L$vY7znzZb0I-f8IMu#ywayiXlr)++s2-oR8eY#d zO=t}U|FCJQl2Em)`nP(&mxI+csI%qnP_-}J-EF_S;y*e~)|HoeEdFW>6R`cx3NG(_ zh5ryfHWo_!Zo(KaNDrH`_&5`)Mhm}N=8!?qvs7fCLms`RtEf(m=~!B_sgbV1%#|dwe*@yb#P(=+8h$nQz@X zC_MXP#7hO#;AfR1QOJ||TX4`~3-3pzy&lAUMwU$h^uTD3B9lHQ2l)gpVsWfc&dW;# z_GAbo%7D?{EU=7>jqQAUCxjo=vwLwKhGgdengET?=?yPlg|rAotT+b;D#gkI$XGpj zJ5G)!&cIEgz2$Ze0LZiH4d>FwowK!Kbbw-=r<*`mB12tJfCA+Y{BERdLUZ~w@0JP8 z&}P0aOZUEvp3Wt3#_~sc_yN@b-2wT8Cp|-^G!!y+qiYrkadA(mf*Iy;ZM#?_MyRFr1LZn_^Q= zWCVi_Og_oy_d0V|#r`j0TbpiXh+`f0n{(hDd0xDF4?K6sMMMMerWvVXRn%_|lmvX= zbg+k)&zE!igY@U7wWxY}Osf z>eO}ghyo`9Zz8yFu?@s~oTP4@xttL|zBEU`*I)(FfcnFSY;ZNqQ^b=_Hz5)O^pA_1 z8>D>DfmU~h@*!olL4t=PqzW31EU?ON*6z_4^x+?2KS9vfa&e*V>>Lv-WTNJ_S{ApT z@y^Vs@<~ZGb=W5)B=k3U;9mdVEP$t^$G14vXHw!dj!<;bk2#<>Eu%>vR8x8J0;wJ+ zQH+yO|2y35jb?WAJ&nV-Q!2BX<6sR98?gDZmDDjGrQGx};Lm;3f zb0mPT#E~}?Gwh(%T+!2!hlhc@&3T^=6PmrWpdJgF&hC?)=2-5`kYgk$>X>KdD$<&3xx%ot7Dqvfcm6er|mzQ^^o`60Bf@E+t(h*m7I=)gb0Nh+&M>RtPIbpsl0RU3H*Y9gRwL81=xOT z-tSh$U~}_aRvz_+j6J}vF$#^ak z38@xPKn9Hj@GK~JG<#DZkZP>uPrE}T#lFD=mccHDa4P5W(3^&Bi*F@~a93bX&HZ+Bd3@6WfN9k7%c_LlQJyw4`^5qw}KWZXqpqUDd5)q`XJ z*ufXj^DE$9P>ZA$sdbL#s9r_ITF5ZS!MB6sEr28#%s|c%{`oGH9L-Ilu@7zSbAawp z8Dqzi=p6RakD{yKY$G~trZe1z|_TFm!+!5v7-G1pNw7>Y%o-OMbkX#VxIY1 zZKw?mzDfl67J2#S;X=S}GH(gS%3KFnd-=LyC>+kss;IaKM;d$}$TI+(({OwhIMybd zM3@7g7W!ovPy0CWNr$VhrHQU4}?BP>NEsR_unI@5)FpsQt6qu~JXle%-dUy#}RMsRhsw;Px|V{|!1l&oSv! z={}2VS|V9*MYS~B2)X_w_{U}6ch(vdN=`xb z^@XGr-Hc1`?$O+7V@W60oevHHOF5KSFd)1 z~Fel z`Ptjs!{H<}#=vHIlO`HQL#g+MNg|H{bDu));1)PFZW~jQa8MjH^aY466u+thhx^Ov z$r0P*sap3im~)EXZ9se-%vE0m-QzvDArQ?DTUvSqXV4T?RIC6fHjg^4|M}Ak(DBRH zuV^p;n9khn?0vNqG)O^6M8v|)9SPDiB*jGCeiOh~lcsM_6T>zx1-S$a5{!JdIfOSs zWRC}7U+LLffakIb3f<+S6}FV%`z8du2b0KQyeb-Udr3F&Dh#hfxy%Bmk#~}&atstd8IScivA#O^n8wx^VDnj0SH1gBt2<2Axn8c2FgBI zA6VG~n4}~slm?BABmql>5bM_8zZU&(?|`$E2oo;u~{xhj5WlTFc;fNS__wKs^@7P`0$(2Gv~! z^18L&8}!jM!n05V?Qr#9zT5)`b$$=VVludORaI5A(t)(;YMlVvpp-g#dZMKsANFU- z5drjzOiwpXh%kcp+}zt!Ab0|e&e_@T-&%M^219ReFZ^_c3s!=z%G^^14^-?VO?u$>*)CS4d*Ed>)zLjkb-~**=8ju;InD=#&_Wg zAP`J=_??2`S*Yf+huxdIyYr@Jhg6A)i8ZygnYsl7kA!@DeKQ9hX?)OrBt!#83JK1i zw}7Vu#wPfvS3o5MpO@w4O|%+z{3KP=MCPFxGcz&Py{HB+bka$NWTQK|`CRZpq{2U6RB3)%@o|YX^ znE;Iu;PNkENCRMAf>Vs3GtYuQc@xr0qGDo7MzDZF=mUZs1*HR3CFkP8-__Lx3M<%X zpFwo=-JHRie!NHL*Z2l%ryP!aKsmR3dPXEb6OHZ~G;guK9$j616JoDMbsmJU?x-4J zQep#OJ;9HQ>w9W_z4)(Rzu-NKjcR4!xh#W8@bBM0aQ#!u$^^B!E&+7BO>jp=h1jo= zURhb02HF$EJW}9z3pC2lR)PaHu9kJ)8)}ewgwC4{C>o4W7x2O1w$SKv7p#C11c{SxjCjgd05uqdjl=Yn(t z-a`~TRM*pE-%xV2ejpI$xA#X?LxUVj4P-p@12~8RAE>+*eF!l7ndgs2_D**-}x~IDG*#g17ZAKq#I=L6@)c2F!hxw+eZ{!9fOs2@J!sN?8{MQ(oykx+o@`uh4P+fsWYp$JKm z)6>&JgYxGev~vFfVsSs*vCUCQ`LsNk3x`;301(9qEbscE7Y8|Z{Tdf0h<+zsIfa8n z*3fBqOq*TP-_UGf$Ii^oeuB0MN&FZOJ+6mdhDC`mF43j}F57z| zQ6ZsM&;;G~{ut9s1;Au``P3UYAG#=zeY*kb46xfaFsH!^kF2n}=>30~d-JHC-}V1D z!-ve7l`$j=kvVhb5E>N3s3n|tIWK`29Pj1++U%%#Eb&Nh8ICV;r$`!W1 z!Gwa!Z5EK_3NT;CyuH2KedCxm5al)jjn6PumKV7g(x2m3u280h(0!ZSm@fgz=JSKG zV)Np-TLJ#j=)~s*vG|pQnLby&I=)hu4IT zx?jG0c}P6|g>;OimE_W1)8sY!0CqwgUyQhXAFwJN&>M0;KdU$`T$8<=OButD#*e>5-K%Z$x(9h6mU={@2_F$I{n)Wq!YYy}t{Z8foQl}-XE?Oo zrlNEYN}yhQ7o+-5cI?=t3pJ}_@45yD4<5XXNmX9X_Dx?FNa7Iqh`PEuJLf5Qn*)Tq z&(D`=-M@U90OGOrXNJAJ>OcSdgZ(TNF%WjH=j_$@2)G*UnOK&?mn%V?sf{Xm^_n%S zdRNt{o%yqF7eeTblr_pT$5KQou)j}YFKra!_;YPl@n@|8I^pK85U5h~EO~i$u<`PY zrmELXgSsieVJ27FE?M%3@A(1IFzp1}x6z6fD^L>*A?og)>P^lwm^-(}3F8f#eR}s+ zQdZ_MAKgBckU?yISf_X9<)TzpNsa}3kDyFm;Fxq)czJ%rF=`|J1~g>vzI{uqtPEFf z2~*n5Kep}CW!AD~y~&8=*ej{FtP(}Sg#go_WKjGcKYlD*IGQSI&!Y+KC;o9^1lXAV8Gytm1PTDUfAt9P4jqxkCVvmQV`?s_puJ|dj{>L^f{XqZ;{ z%nymXM6Tfs=TdLon14&R>5@Q`ctX$J^_lfWNJD|BN^r8bx7VFC$;bB!p}Ad$4kyo^ zouB`weTNR(90YLjIDX^c;lmAkXlS^09xQr!pNzP+3(;KFG8mK5B!ss2;g1bpvP1DC2jRapP0YK_El7cG(}Kcj!ID8TUc zvY{%~2tsEY8MSM)XBWYBOYx`KKpWwRB%t8p=)G4}AmM$ICDfrGE-z87>E5OF= zCQr+{@UAou+R>8&P09iMc>>evA2zIC-=lZ$z2@PzrF6FI^Aftcv|`o;0FmW3+m}ze zAg9UZ*fV5Ab?+C_e0sEVclJ@2u3ay6dhpt2X!^a)hvtm`Ym_{VHcVarLf_}!3i1tT zt$pS~jpru&%;aa9p+>VyGzduD&e4z^L^Rx3ls*bXuG8?`yK8f9OY=FW5Sn+);g!dh5t%U4srB#LfbMa1I4!NI^=he}G;M_haC*v|SoF(zky z|6aZJ5cK7k&CsGA^MTc24UP&WP*%jgB_^m79(gX=MMV~du@&|quPHO)&7e3Y_Sx1% zwWOlrDFUNbty}C@P zi;ySnxJb^OS`|Zo2DlDZa-xX`PQ8tr@!Pm6eO@=#2Co{sw+qf0bP6 z{X6b5%HENqMghOa5XR%i&Qw&*KFWWdK6}=4?_!SL4Z0Tsl?%^@LX)#;6K;;iWhzC9 z#M@PGZ)Acq(13cq`|dnX+1&b%an&-<^lQD38TYm;pR7A)&Kyd_=`&_z5)cR8nRY6+ zcX>mOoz0u;trf;2GVf*bJv*c*G&FRcpHYryKuW$;!^khx2Msz-8{!^1&}p`ZHSSIY z#a6Af4n(RP*-w768q{h1rcF;jeq3;KjkZUeaSNiT-(_7=PemL`*-E{ zh7B8j$;&$s9zKlX`h8kj2SM<9_}7U!`<<|Ni}AqMbZ8vzM-;ExePyeE+W5eiu}p z-ptf4-QU=TUrmg&(f2Wk{W{>E#_kPos`s0ko7Z>m@u(r~#+aOZO2-mU!_4++VPRom zplovT*GpA(^=W;I`gu0`C#Y4oG4u6L41aF8FB*4TBf{6>#XUH}98-g6rya4`R3`fm z9B7QtA#C-Blk8YLYrTr!Q$|Bk9HmxBK>%+zs$Toj`|!31!>YUKS?u!~jRHqE6b&6g5q6O2>sa z#15znNUDSemdY?S&3jb#VCQ$wht;2_7qv;JD?nn{y3e((9|hh0+fFlpc04(13^fm} z>L^egF>fU$CEc)$?lyk>c}wWJcjI0( zSWRtTSlG~6eNNq|XWFnLs88R()6hfbSe#OgItT>?O^Z3=Pz~qe&=(V>+Jup}}%ybqFgDA+b z0ZvgADgND!c`b=gmuZ5<(#J(c{)(r>MAnF9F){&dODUlCmUDRkyqfJ<6Evzm$kS$_ZiN;c7j5 z?#2aL_T^CnVn;mBQ8VVe>-Kk#9@TT#+ZP(T(Z`_>tfKg1I~=d*0C8)u&D67@-iM`Iw~ho3xlvK%W{`Pq`N%o@qhp%*8EF93A@1!n za^zXaRrt~F)s6;#=1=Jy%^pPKVJ$ET_#F7mkHW$xii$mk5AU#(GUvqk^9%Af@(ZPv zmF`79sI%%tS!m5Ht39|n0ZlMq9{or&YEom*16gsV_d7BBD2vY7i)Tj9coFu7XG}X+yX#bp-z$>? z${cqaOzFAz3srJ@lw-#zi#aSk{s8|rd9MP^)l#CodW>}_>kX#0oJdI0EXDg^Wo7k* zdYKM>1;udK+Kh9A%TuRL?J*DRGj5zG$CQ_w#;14xdExx|nP~hwJ?}b~oKC2iZl8i^qJj`Yn8}`VYc4vI` ze7u5#k4tCBKvybn^}xYu9xrH=ryfx$#T(4x3+z)=R0ObNU~aAvzd&cxx01+a59oR~ zWpE;v$RYc&V@qV$Sf9^}YfYdT@ zUqcy9GtZmH?RjGx@3V|3G2hHAw#^-1hXf6Gz1stfPyWK{GwR&1RZ~%c$Zkf&j}9U0 z`}cSPp4yJSVL8+d;&*?v_;_YLpY*vAz+;E>eY2zM{%Xl~!U7@Lk`6&HXWE88`ez4; z%3XEu1n(pXkhJ@y6%}6t?|dTS=#I0bY{|`iCNCJfEbHN}2DAy_B9r)XIS<_WXwk!* zZnD%ltnoaT6L)Nqbo*>IH#1{qN3-oac69F?GPlQw5vF~PJfM#a@i@*2A#k6H=-Cu3 z53_H}hm?%hjRQKcjnAlE5(~$tPo7xb)&t*DAkPg*)&A;5kw(F3(c9G2w0`~i{%UVn zDH=Gz2eY%E(DlV-T-;61rD~vjD>(QI`GkQYMxQKO)O5FtST*#V`m;~nevZ$n1Bt+4 zxA*nyxx%F&^qRAJ^^IBk$r!B|9gH~Tmfi>lWa?s~{_I>gme$#uQih$ELT5M7;{FSM zG&Vlo3e*yK>NrwIyDtyxfqDgpgm|H|l@J9oyWhDcyE`Rqn|AG<;(nP803pyc?a!~@ zzx9?Ff3WZmnf@xg#PyP9hZAKEWbp3WOX?9pG=gKz{& z35VqA;GshejvF_iVf+G`Bh1K%&)ZLRcdj`>6r&?0K7R37;kkq*8nd)bcxBh-Dp8@ z=|AH-(c|Pn0|(-mba3@{Hv9(bG)K(A@Tre*z&+t&V_ zaX>0cs(py6+O}!48z4(SY|0eGR%5f0O)6V2Z}LA{06!z*%6foZ!r?<|X!I4wKhy!z zWYKi6o_4^5m=C2$yNAaeu?PWcmrF;R|6v)_<_?OrP?ynCe zcbQRoIh^tzqKvBA_T<-EttOjP8`2OaYhR!BqK}$dW=>9};!=ipf|Cx2pUk7HYTl{GyK1n@CM{Y7YHzuglK&p`hR&yXw=rk=c=37LD^pFSg$@}v8qkq} zNZO87t2u~Km0#v83t?}`=Y~CgzP2h9|*?qiE1DFv52O(XAiX> z%cP-`=)HM@H*thdY8zz;G# zhrfi}9G~T{KYO+q=Wag?B+_X`*J$IDZ-P4UGOQytg=Em8^aybzXTsT@o^@7VRj&y2!dI#eN0EPC>o)obB?FDp}Nf4 zZ||ZAyM01S;FaK2r-6j_UW4iLAkezis#S+f0<38z;oyf*ZSUT_8(;AfD$I}_rOect zL+-Sm;qJANYU>gte-^ojloOYfOGuSgkH>{0xd|lNOwUAu<5mVz09;KCNDYCw;f0^T z|0bZM>+x=ep59W}1qjy`;8{!&qYgh~Kex5zqD70kuUg$#xzxTW-EXKx(57=QV`C@! zrfewrGEo#wrw1;A@i*LAm%9B}*U_h`u=T#1`xszkhy|5fHfqI`DI4Iu1iX-Td{1uF z&rhcu#^)AZ8>Z5N;=zZedv(UW@N`E8BRouGOb$#DnJXQEtZP0e67vbaD(Ypve*j|#%qSGb)BBtfwWBmPNc1xCAsrhtD>FSLevl0%z zwGkz`vHuQ@SJM#3ZrQRWWQF~d|Cl?itoBg<^j1)tnX!G5+RX(UF2xPe=<^7w=EK=3 z8_YB&FD&ivUW`_I>B^Nez!W0N=T>=bIy1y$7PUp(z0Ku+H9P`nZ21#8+~4|@(f#Mo zUo|lOG{rZ?JyL6*Szog!xwod3m$P$DstsyioPJ+N_ts5$;<*VIXOey+Hh=G68-6eD z&!FdHfu6y&!0mv99HzFn^2)9J7I!YU>zkK}b7ITvfoBjJ&~--~b4?5?xEU~d#Ucl- zm~-|UH+nNu8dPXn!h@b``bB+euXa6al&1al`$3~T`z8kdP(Jp@GREfDiQ z03k=8^T-Y>t8=w48Tr7l{XnBF9pe_A`@FBr1N;M(llB#ZD}e>C4^)p%OG}gQK6UE; z3;QnL{i3=2*BK&>UeK{Wm+amV(@?m%Wn1Rne|LZEI^!`WkGfjt?yAn{w+eXk6q^Sz z@Lh0jI^5_!ubtPmnqWLI+_(Cp`VP}2xz1ZUtk_&t5%!?m^rMxTnKD#5>jVv_OT|jA z3$sbu4fcCuq3?}?-93Yyjye7vvVN*d;`kO9>NJz8EH~VHr#0&P_|9`YtA=PqMuOMW zZ_wZaCZEsS%Uf`0s-H}2`tELeT|wH*bv;g7mhrAXS1J{C-`s7^_tDPbV_`?e{rb{? zq{gx7$*g#~cS68^!UHVbub9N&V?DlI+BGD4*?8ySEyv9MT{Gm%%FKlByVU3WQFaeB zrW}8AK`(z{i!n`A7A*KUW!Uq%4V>-g`nSIk7>JzUWMCiXUzv?9c2pYQw1_g_IDHuZ z?6uo_R>${@6y-_SvpEO%5ia-4Kzq>3N@Z$gdZ~dr7wwM3=U(cpB zf!6|=%Mv$y?=TnrIo;j*bQ-3nmMSLZ58tv^K2zj7TMub-WNNSH`)idiSLnUV-{d^~ z=;Pwe*O2%J{w`Pf<@ors*Xma`L)$1RJ*50|K=5vpes?gZ_Vk*0s}APf*`wzp!xSFA zeR~?2O7xr8dp}3Ux@bGz^Z)ewSlcnMQIddUX+1q_jXvFCuhMYI{0B1SPO7esS{5}K z`_3m%_g&iYKH){seAh#VAgLb}n_pTts1pN#lmH@c6LmgrG;mV&2ca_qN}~ zPVTq;+83MTU%$4=h4kcXYo+0x1U%~U(6e|k(Fi$Kx%3aSY$Q7(07G%~j4jimd*N~{m3FnI7_=T2(^j5I*@_bKf@d-kk) z*14>)9^^Qr0R2WB(E^79izq?=6+1li?c2BX1#X;#e!oBrW{{NuqG)S5iv1ja*Uf7> zixTPAkI+Qw3o3Q!h`K{g#n4+2@S+Kz;L^NvM=*#VKLiB)?DS{N?Dlb=%`S85WfsBm zM9)|7ztuE}xW67UMo8o^+pF!!)la`Ad3X2FHEIx@pk1x`s^4&2(H}mb*mt4ba(wO z#skF<4#^!^8s_fjzt>;;cg3--7E`Qk`Pc?8`eo1UZvS)kxuHuK*&#_(Y6tSZ;3%j( zFd`t@l6fyLN+x2hLz0&X2x3>OJ7IzXn==z_+EV&5p`EIJ)%6lq@Xebywux&{f`+39 z!tYUz&hP+~`SdG+CIO-@xPE=QhVQTv=ed_P8?<=Yxrx!+Hclw)XzvHfObkQWuvWM?BCru?zl^Vd8et~^FBptzxUQTy__zq-haqX$DadX z3xGoHiUZSwcDJHrPrsY{#KCRiVB>ym;uZ^v>To*O)nZD$%U`w`NA%CN_fm|v%wD3T zYxKuK@5iE1#c@>u7cMzut6G;FeYE&8|4EN*rt072_f?Ys8C*m)b79;LbB%ql3({*M zhZu}Bz~tsav!X89+1b$5x4Zl{3@{l`z||yDm?Cv3DKF24;5gG@UN>KbbLBnuebRVx z=y_=XCA?INMjGxz55Fw^bm5uiC#=U_SFbkwW!ds*b(d{ul`Nd9tx3AzXJzBut}I|7 zx;Tdg2VZY9&0YEX&h+!6TKNN{dJnn-Q%Dqp7+@JEuU_3>6ij^lE=xf7hiw0~{(e*x z=Pid$F8#iPq4sKLXJ09M~)5}*cK1sZq7z;FHL%|2j$2)*KyE`X6to;uZF z{`|ft66oJ(iIh5bp1FMawPl+;Jv{;G80GSkf^hx%^_Q7~tV>`{z^yxX)G5+vjg9{}Q9PCY z{Fz6i$Qa5}(Cd`2m4;woA8uJ4Xg3_;i!VP1_;-dg#B~6sN0pg1c4FsF1r9iTEN{se z09Co}#?J_ZD;d8Q8X3YEa+}%O5ddnVJl_I`0kqfr{fovyAa7vWg&Mj@ZqSh$uoD1r zlyqMQFPQ|LDIGmeO;{KphRg51x7PhqP@qTDlbpqaVG?B-73fAng>A%Av%|#~|BFsAMji1dKw(#XTt1Q?7JTZAj6I|LgSfSLaTgJu3^sY=G@w zBl&9)IT3>mjf|es^N*yFjEL0snDr*e@)GqoYEE4~CJpLB2szd%<-rceQCW8Zhwbhy zg-iw(a&KCJHh_g!8*kVyjen6ji%8pe@tpORF1IvS<$nFj5Q3+eIo_jYW7_0mM4w`; zJ7&C_m9$Cn`iF;rV`vahM*5pqudJcfwcGinv(t_U%|ict(o#)b-H?$As0T@>^o8|a z-!L135)rtEtHO>Ed+Mv7Rla^hqyQBbQQ)*gWUQ(jO znzsco(p6NYW12##J9ja?&f^as%sAWs;l&kI_hMe5gH+;q@pCvmH0Qw?X6EIollgi( zqf_B>2@eK=AeL!+Y`cYtNuRw+S)}Fmx{8Bw?^RpyI7M+NzfJp^nU&R(%5z^pK!C75 z`;>GA+99+aBximH=sY_3Zi__f^h#(Y(@ zCQ}wKzI@l|?>!~mgI~WcV~_N0-e?bIwYEfz9a&~uiqg%Bw4g#crm-t%4`+i(nG!Wb zQLzE2fLWdcP}piEhF!fnnb%*o?5a)jRTr2wC63eMckfJ{5*H6T2o^PO;lloj8__F2 ze*WAy?x)@6&FyLULwI8lse_QB%<<{-jumYS5|l-Sg&!-uf0XaB=3w^bBeC+ZtA<% zx{9s4bsK1Ydv!l_)O(|&qcJ`x=_<>l;^J=I zwrwve!@ZG_k;n~B@G&@rnZ?DH`6?_n*TBr-u@Gxi^KWZgj9&G&e{3sYpI#gEcbQr^ zOhJL$WWUSAY>JD62riqY}Av@dv0O%N^0FzA?S5sf`QE?0t2;Hf7#OtMU5c0!0-q!`wys~pq7>&xa>JX znp_5iMu3kWY!Z3qY9`R|>b|J|{7T{N#Rv@P8r zM-_;33Jk{D^pPUcXHAdPkSg^qS&e~TDS@PeJr~n<-8=w<#3sIBw6%3=Zrq@92 z9Zc_ly+E-^lO?b=X!FivMF&e6XmA)?RnJW zr+5me-{4r76F1MvA|b{%)voO83=vBazGK*xb?Ke8T@jz&c>5wnz;+;KT4Fd`5jhLD z0NGzklZXOIsA7?bpt)Gg6j)Fl!^kabT-HhB%bRJ?8i-X$AUcYjQ_TGG_U=U<1_+>g zZ$MG>T>aAa`VSE(T-^sIebLsTEwmY2wirWZLCle^khazydTd5|{lf9!CIff6WU4y< zu;lhSRC{9xcFUO!E<1LGr^9~m`di?_`~*Gd@fuq;C?mgiLslVze#BRq7mx}fXJBO1 zyLfWuY?0YQSJ2VdkFrRl*F1}8RK#B#gw^kZccDfXvy#*Ae08=@-vJf$j+7SLqAa#8 zZ?|p^B!XhIW>!Q}S-brFSj>@e%wu_qVD2ejnnNO`km&v(dGguIs`=&@vv&dW1bKyN&7FRux(!h6C8&YA?6W;G~mz;jwaWTs5)}%IX#9jYSER z6W89r&@e}ZWTxwzA`)Y`YF$ODW}uc_)UI3}C4Fu%i&QOrPRPYt1JrS!74>7lJ1l2(7wu2$oI?Zgc9V&olUy#xz2 zx))SLadur`IFL*?!7X#+M)S^{JIksm#~WpR=s0lUW%lhX&oRnGQT7G`-wBGlEQ0b7 z$e%v^EH2JfNK3>CeP*3y{KL&L@ibM*%=*#Q)sO{29dHFrA>KutLBbVw3Dl>k) zyMxyk$V9WKZQ)mc!X^(v18%i<4#=Lx)TAJ6EFcwZ zz4Rc&BP!`DfO(8_P_}E*s?{02#haIg0dI&S0WORl29@Jiyn%Q`Epl%gH73w=VihiP z^f}fwE)k8P1#%(Yk2hUOFT%DZ9iIUl451uyc*p#MJSNadU7^vC40c1ic^G$ER6D9R zL{2M=8`Mr#K|vgqr5}O*$Xe?>E`E|VVJ}~Lfi_kFfl(N6^Lbq zSRt^65WOK`Lv?f{!;|9{oND*eak;OC$E{tvcG0ixLzL=Kfr#R;(ry}aT1k;YNM=b$ z(61ebv=}}jGdp_{>P<^%)QC!Voh2I!KhMu*o=5F@Q(a0mUj|;kuE@FCtHcyQL%uk^fn}>18p7X6z5^)3)3WRE z0?onm%F`C+bajuWBgRYEwr9_tSf)`(ow2&9cOe|m6mH-}UE$~GX!8!IlR9^&fHqHAuNi)qY(7dY>BW{?~d~KZSZ{; z>En1lc;tu=xC8*G9ob#I=_WP(fY;Y7g4B_X<9tFW-56^3$eA-|p6+5Q@QcqK+P6P} zo~6{{(E%wus3fQFT0W>#T)%I*E6Qe`48&o`G#wu3v}gH=6nOv)i8SN>QK!A`pMRcx zsUfCa2E*Ak2_{M%zrPjwtE?Qf;pBx2{i~m6YnZ!*EXI?l@2hE_r{Ug|eF0c^>ELMh ziT}Ej+BD`JAT-@;;9!5Ysp-CPAjs25Yyyt*twJMMLwz4m6QF?cN&1^#7>7G6Tu9+*E-au*Y7c z5iS4(dWknQ;%D9p0cfMP>9de3QK>UH=ZEkHJ5%i8?rWCaR>Hra0M!%nOy|-PzC1+iIjBLZri$2H3 z=C{65;iyppt=;Ar1@xy+pHP%>J~d`5^yfsWtLK@%a|f9xZz0ZQ+h;Qb6#|pXdPLwG z*Ni13KxSf4y@Fa5-87EDm?ND>+(q6>kJJSgo=5X}Q#T-0+R*jXdb|(fe({sS(Z6Oa zfnM9j0gqK=!#r`=fQm&`>4oHo;f2zI0`95jd#;tn3Lk!`I~f55qpeSXWU_Abqj7o=7BP{}GD=-ztQLiTHs!L^+0@ud?b=P|nJ_O}6(o=TUaq)MKkZ`N zxO@9^4`6j=@D;Eu1qK@71%bneo_ip>6hITAe_v>~Dk9{*i*Mljzn`>oir*|L(pqul z{H#6%(Ysqqy>4ha(ZMK>SldP988G@RK5*D6yJ3f#+6i=Hej+vEh3jV|{vslW6Q)WT za7vd3q8|I}i7Ya(FFZ3V9}htkF!^^} zmG9lO#w}F9etHw(+=_I|&0kth>ZJGhGFDHOBe`?(8?Dgxkn9PvAQeApY(_obH?2(% zI8bh%M5~Asm9p#jmGf~4q4!LpmFklv-8Y^o%1#(HY?wRN*%Cxa zlnFwxu}szg?1Fc@xf!j|OdZoN9#t{Km;0*U;=wO3Kc#xy_t9nN7N<-~X5RXQ>wekM zXDMya+MgsBRHzAhSs(&ICeFCI?2of>3b?F2 z{&_)Dk_B~-xL(DU@$%(M%Z#}%l9F0O4uE7kzteZj-Cnw~DwvC3M12G1Z<~}+r&)4l z-lBHPuiuShya{L~TFVy=`!c+}-|7bS>q~WeBWRe)5%F^mwRx?8-3V_|x0#B1*(!v0 zkCE4U`(!{>v2BSdqGsm9pH{v=QX?cCkfIwT)XU53YG*^2i8!22F9>A^6AMjdUO$8T zxOMA#4@Vc@?{z-7uZyK?WHA3|eA8Fymfili>b{$QMxUO*hp#7=Wk6+6nTR=r{_)M{ zxaI25be7FR2m!^C(=b%e=VXWd+LtF+uch;)*LjTH0XN#r?Sqa@1QD$3IHXf~qe1+R z-E8{(W9m6lyukF~qM$IJ5JTR97M#h$JfUS6L%Moi< zukJ)6NzrD|h?kxS(d;tt*~ z1KR)vNUhWO_*Bnw2E;%soia0hIaQRPPdW>KXtT&Ift!+ie0>F?LGv?#K_aA?lUor^@2cYl`TR|C*%l=!O1q0Xf1Q71 z*l%rbo%XA=*l$$c)l=QfclI8dKfB+d9>zx|hxF*`qtWwviH3Fib{&;ESavj;J7K-* z?wcVRvnMQWe|)E6!#%zCHdIvYlsscptY7r_su3G~3>H>eXZ+c?$gyzX3hf*Zk33J` z&-U?tJ>1W1M$U3rWtc0FKTdl=wPRnsiUEd_(CbvQ6~#+DJ7ZNtMV|rvMvd~I|CNXg zM0WVYY8h*QiMI4}To^Q;Oen&kB;6x3m_#8-@N+tqHyL?0BI4}zBXME15?Be^hAxz0 zvHn91acYrYVi{#IX3PbSkVF?H;vk3sUDGhJ>LWiD8LO-=lNnm8sOa&bJ-GJ|Fe%#m zGQ)MA^3!k!U!0l#2}aqAsu`ZC>}lIMN}W2r;Kx?|{loTU5Y=qpKeV2?$dhfGMA2Od zFhv{~J#etctL3#7zT-=|t>uWI6`-3CY11K`fe3oDZSdPz{I&Tt%ENBTlzqRGq-T^N z6qS{M+P7W?Qv7SfdSWbmB?HswfgysV)qoL+)Co!kxqBt!561Aazs)L^+xCl8mVz z{%SH4VBD8qLN_YYZz<@gk!*JskUKak1=HO=w(r={ci;u9Tl3}CIX19BC<}3Wng)iv z&EI7EfK`|Sy zuien}+)b^|EftJQ_D*_10Tv7T#j~|W3LqC?T%uo;)`lVcPoC_-v`h3ff4MwV$8A>r zlttBth9asEJu*YsxwUH%_viBIv3fK*6!RE)%2{Rr@w`EUjH}ClO%k~*XAHp*AS0la z44%Y;)|ewb2v%U+@bfMBEif=phWfPU>yFqC_4&CXXVWi?!ktL)C=pkHd~$H~E~>@y zc|f`0C%$h_B1DVzm0HOPBnUZZ3z%m@i(qfyM%&$k?75~YW~pC!ripgjGx0HeQ@`bD zJWSjCWf1Aea4T+~_6baHH}9{S(NWW=UPl>7sq=RofnMZzAZj(mb+uZ2bWzMQ(VjFp zK@90T9JX#11*iaw6mA~ekOb~6j(li#*<^Ct1JBg==*8Rf`%^`*cT+vfHirk9+&uZt zHk@+Q0>Vas>PfA}K5fuy%;iscJoIufhIxfiK^HD*@3@}qIU1E8wYXQ6?a!*JK4ZsT zBywbg>6m&aUH=(gHXLqG=HcK~>!4-v@=tLzBa&QxC&=^yK+4&HMJ81n)RiO9?DMJe z1l^{LjIj+jV1EKlr>eN8*{Zw!T;LHmglYp-VF<@ia8vR5WvqR^dU!ziWcQ9G*9)Ec z=6y#0&g8>cOboyT4)HB^Vz9B)KM_{XTTVUNC6+sN7&mZ5C)dp5G4P2uvEsO=X9CEk z45q|ZVY1>1BdxNzmeuIICIrPpv;ZFL6-H2pewf970_!abNVP+QEnoz5qYu1V{$%Z) zfZ5YU5zPe>=XCyD=-I#jjb~#T(O*du1w45r?)u@6NkH&28H`a-4Aa0GjadvFeV4g` zNztM;h7&c550ov`OuVA+8<{`WG%X)Xni(*=2rmT%(HT+0(PSE4K^Il`OW)IMyStrh zm=n#&HuNxABBZbRRVr`?Z9^~*Ng>?wO|eU#F=NtqjJS9_KIeZBBaSmf;VVX6_~{=o zkDA=QZCh{szxRNwz`<@T&yCw!PB6xq?se4cM!H1?r~n>>V^1=B3?4i$@RMD{!cEZs zM9VOJE^&po2zs}X_tI!} z*Ffjxt5?R3w>9gnWuk>l{Gs+NMXzl*f4*R-@TfYbHy8Sa8eO|_lfoNM_`P$jHB$Fu z0OOC4XxFZ}pd+DbCF5|=yc3>up|``8F&GmWqgfDIU=?i(lt@I|omMwNSx>;f|LOza zDdz^b@bGEnyl}0-i;4FJQ1}Ik-!~IJ0=F^^O?{5%jnXa*JZWxeX$b(F%4Ha9@96ZY zA{`=}Fto6^d9)pSwAsAogLRS-mM#6y{ zscqBpfOp(z6d5Gg(F}YK(*6PDwx4#f6j$-5O=VtbMQd=!0-ZCcMFc29?a=Dbq{A|8 zPFto{D3Ubn^~k;#jhyCJYKy>&E-2>t^8?`L@?|JX}^x? zgHU@itUJ7=Uy5zGVE$AIOsWJQlu=s++w=8O%*2KFAI9k<>H~J2nNOjqnUW27KfL8J zxLH=;d_|tNwNnLQHyM2z2oqC`#M5t_`^EIrH0xm_tiQU1q?yl~m(=yu%$u`pD}@Mx znk3deM9_e3l2Ua&O7vkiTs0l3?q7X4KBp({KfzEuJj|^7 zWyQ^W$(=pSH^-rxNz@Q46jx3Bu}|4hbhFtvy=UHGEmFfTAGB+`?)Jz-A+vL03~e2+ zxE=8Sou%yFvFv(bm+!x4ue1ud|6*dLR>r*!R(^#l?zf}j4oyridVb>MIQNbR{hZPZ z^0thAXXcREE~hrV|7_b;A8$An#zmWcK2TPiIelULE**aDdkIE2|e&>)8JJSa7Iq>h1Y2Ullpzs5;dpj5hqcZSBur?j76u zZ=Yl9`1ZSANK4%w%#e&k;8*S0{%V$GqcsU}OKQbSGN-3qW=wWwOZ^4Q%= zDNTaxCOG3BozJdxR|!kYofM=Q?Ozxb^ zG$$F4pSsBSc=*M-#6mxF)8B85Q+KGpV;uUbWy|mUxx!T$pYx-?Z@Q;4_VxFBpWOqz zofC%GhYt1sekbjy{pgiJ+ZAim9i2k+{+`*oqNu_l>O<|?${&9(EHQOIX0IL)mSOwx zW0cmNZEu|tZWUK_{WEIime5s^W=_T**NxBH;Wt3*=9-W961;zJyq0P!rKW5O(6oZ& z546i(G|}_~RVylIoY*PU^-TkZ)8U^r#ZXjP;FHk9&+V%vQ~`dRi=Q((RYr!yEmBl{ z8Wg|u*7f*@CZ4-1e_p+RzY8IPQm%wF3J7^|UrFBE-7}cKqPW3yo=*4LHf=N0U%B1h z>@(+WVt(hcOS=B)`;@YxUl(p#{CDiHb?0i0HIIeE!mHNfwf8EudA;whW8XEdb*7rJ zO;n#oPfC03{7+m~{kTo1v&QeyZV{lp@~D#T^d^6!&!*&Ki#kWirPQ`{J)vQ@$ zzUyL!kb{*AYOQi)n6{I(rMu~$c^ n#snzkV_jrtTrLX4#za@z(X#oSoH16wtkk? zqwjp24abHVFMRESQPaO~(jn-)sk8j(G@wH>gub}h0uuhFZXQpNTOR7cKru#b2IgCu z-ZT27A906~Cxn4tx2p_4Mi_m*T{gBQWA*^h5_SguxI+wv@$+wH#WFOku$;^MFzH;# zMw!G)?lW(7VXWh6=C*_{`$f@n3LXZuI$&7^!ZfO5JFcXm{=YFWTPE%dp*0Zl0C?<0 z>?w8ehCmY=@7@DS30eXN#T1`-dVLvgM+fYwV#Gk!vrL5(_5`O~U*Q%odSoM~km`WC z=_C~o{Z4?JQgK9Hw{d?f47t1LDX)RsIu~x90g{Fp*Cg08s)HCfgnC_?2Vx^v{^las z^v05AygLeB?#h8~B1J(qRzlLjz!W3QD(@GNaPkdqGZKQx>16UCqxV*j49L}0*SbD* zv!WQ^4@PzT^yz1Ovj~R7fM$*PTai+*wEOV$N5FvPCAGnNMTH7k&F zo`HXl-14K7%xAoMbr9|8W{qbIa7AH<0H+N_v~gM}=E$M&W0@n4_axfnY$oFbW9R)V~SEu z?F;>tN~+d)*5@Agh&q!tb-#l(wzgxA!^SDATgA0K~o*51xaK zb-=H-79^#FaYLefrK$|{T*sJQuu9JEVlMo$87kld!ZC7?^tDuI^`x_4-Q>PjFp=xV zzoi={BJ-HVTS|+|6{EYit@cfs0gZ{YX9=HDt_%dHRQWlXf)zf2z|)V(akk<9@4{)r zq#w09Hdby63|P1kfJn@KoM12_AO??78~cF5I%3T< z7L8%!bQMc4edR27AHAi&$YXG@JY78;G=rH#n9dH5o&Y-X)qAS>N zwA_1?Ge|NNa2w1E#n{8Ocit(=#Itl}3d^Kglv~&TR8~~_)Lmz20NUkkGhW zaw`F)thRO=XXiSdVwaDFjAiT2z~Y#t^H!;2!9vGRhPylU%OYA(R1>}7@1t^2N%*h4 zb~p)x5gYZ^io|XTM2%8dAqs{Kxi6Kwv}{br&u|RfQcWk|CuvjW% zg9CoXndk)NaC0T&En}8m;nz{U5cFfX0@!D5@s`Nc#oxbwUtrxgEzqQB!^kcolix{{ zME+xF^+)vAr%oCAOucfuJbFWRBL#?Ywi36#H+V=QS~Zpn$)^ze>PcXR!@H4ut$6)N z%r-=OY{SfwaSHsyS%cccMlq5Jy3u;; zmWF=7a5`^DK6({M6EUT8D#&{2RqHiaZH6!Vreto30>wVQ;<|sSL$O z$0D1%r#}{&d~_5;8xd?(&0n@*U&c1wzh84L`>lJzD!qGs3*$$8k1fp4Z}O0ILz82~{qKC3i^i3yDQSxbF>J#8`&@1wxmNYK zPR;SWX7|S2S;B4hCIK;pTL|kKRUg^UbuUH9iMK@YV#hfa@qGW!{ZXI`(_S1@D#j_)4O3S*Nm7)4uASJ4)A` z8a^2XEB#l?bTiB+epSMfZ!-W zyokGN>zm?t+xba!+5=0>D+;2#qy`XM8XwUzaLtFfk=7(IG7JW5nP|Z|r8FMNL;MaQyW`2xYsw?j`Z}g*N>F@je!#LV%0D8W@0rU!<=hj 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 From f20f214379fd465eb0b534298a52a46a3bfd5afc Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Wed, 13 Sep 2017 15:39:36 +0200 Subject: [PATCH 09/46] Fix status unknown color and background --- .../themes/cura-dark/images/tab_status_unknown.svg | 13 +++++++++++++ .../themes/cura-light/icons/tab_status_unknown.svg | 4 +--- 2 files changed, 14 insertions(+), 3 deletions(-) create mode 100644 resources/themes/cura-dark/images/tab_status_unknown.svg diff --git a/resources/themes/cura-dark/images/tab_status_unknown.svg b/resources/themes/cura-dark/images/tab_status_unknown.svg new file mode 100644 index 0000000000..d20218bc00 --- /dev/null +++ b/resources/themes/cura-dark/images/tab_status_unknown.svg @@ -0,0 +1,13 @@ + + + + Unknown + Created with Sketch. + + + + + + + + \ No newline at end of file diff --git a/resources/themes/cura-light/icons/tab_status_unknown.svg b/resources/themes/cura-light/icons/tab_status_unknown.svg index f195ae238a..9f413baffc 100644 --- a/resources/themes/cura-light/icons/tab_status_unknown.svg +++ b/resources/themes/cura-light/icons/tab_status_unknown.svg @@ -5,9 +5,7 @@ Created with Sketch. - - - + From 7b32ba7a9b63d44ce3271f5e9600bd6ecc8cd774 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Wed, 13 Sep 2017 15:45:48 +0200 Subject: [PATCH 10/46] Subdue buildplate colors --- resources/themes/cura-dark/theme.json | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/resources/themes/cura-dark/theme.json b/resources/themes/cura-dark/theme.json index dbe19bd298..e5a192634f 100644 --- a/resources/themes/cura-dark/theme.json +++ b/resources/themes/cura-dark/theme.json @@ -3,8 +3,8 @@ "name": "Ultimaker Dark", "inherits": "cura-light" }, - "colors": { + "colors": { "sidebar": [39, 44, 48, 255], "lining": [64, 69, 72, 255], "viewport_overlay": [0, 6, 9, 222], @@ -169,10 +169,9 @@ "viewport_background": [31, 36, 39, 255], "volume_outline": [1, 168, 230, 255], - "buildplate": [252, 252, 252, 255], - "buildplate_alt": [204, 204, 204, 255], + "buildplate": [169, 169, 169, 255], "buildplate_grid": [129, 131, 134, 255], - "buildplate_grid_minor": [129, 131, 134, 31], + "buildplate_grid_minor": [154, 154, 155, 255], "convex_hull": [35, 35, 35, 127], "disallowed_area": [0, 0, 0, 52], From a29bdf1ebc5922aab70de1aa40cebd05377c4c9c Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Wed, 13 Sep 2017 15:47:38 +0200 Subject: [PATCH 11/46] Move status icon to correct folder --- .../themes/cura-dark/{images => icons}/tab_status_unknown.svg | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename resources/themes/cura-dark/{images => icons}/tab_status_unknown.svg (100%) diff --git a/resources/themes/cura-dark/images/tab_status_unknown.svg b/resources/themes/cura-dark/icons/tab_status_unknown.svg similarity index 100% rename from resources/themes/cura-dark/images/tab_status_unknown.svg rename to resources/themes/cura-dark/icons/tab_status_unknown.svg From b0c7ade93093bf2d83e1cc8d49543ce1472e2115 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Wed, 13 Sep 2017 15:50:30 +0200 Subject: [PATCH 12/46] Fix logo readability --- resources/themes/cura-dark/images/logo.svg | 72 ++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 resources/themes/cura-dark/images/logo.svg diff --git a/resources/themes/cura-dark/images/logo.svg b/resources/themes/cura-dark/images/logo.svg new file mode 100644 index 0000000000..65e306b10f --- /dev/null +++ b/resources/themes/cura-dark/images/logo.svg @@ -0,0 +1,72 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + From 72b85fe69ab097a30c5117b77257f04846919840 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Wed, 13 Sep 2017 15:58:39 +0200 Subject: [PATCH 13/46] Fix control hover/activefocus indication --- resources/themes/cura-dark/theme.json | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/resources/themes/cura-dark/theme.json b/resources/themes/cura-dark/theme.json index e5a192634f..61eefd5122 100644 --- a/resources/themes/cura-dark/theme.json +++ b/resources/themes/cura-dark/theme.json @@ -15,6 +15,9 @@ "border": [127, 127, 127, 255], "secondary": [241, 242, 242, 255], + "topbar_background_color": [0, 0, 0, 0], + "topbar_background_color_monitoring": [0, 0, 0, 255], + "text": [255, 255, 255, 204], "text_detail": [255, 255, 255, 172], "text_link": [255, 255, 255, 127], @@ -96,15 +99,15 @@ "setting_category_active_hover_text": [255, 255, 255, 204], "setting_category_border": [39, 44, 48, 0], "setting_category_disabled_border": [39, 44, 48, 0], - "setting_category_hover_border": [39, 44, 48, 0], + "setting_category_hover_border": [12, 169, 227, 255], "setting_category_active_border": [39, 44, 48, 0], - "setting_category_active_hover_border": [39, 44, 48, 0], + "setting_category_active_hover_border": [12, 169, 227, 255], "setting_control": [43, 48, 52, 255], "setting_control_selected": [34, 39, 42, 38], "setting_control_highlight": [255, 255, 255, 0], "setting_control_border": [255, 255, 255, 38], - "setting_control_border_highlight": [255, 255, 255, 38], + "setting_control_border_highlight": [12, 169, 227, 255], "setting_control_text": [255, 255, 255, 181], "setting_control_button": [255, 255, 255, 127], "setting_control_button_hover": [255, 255, 255, 204], From f2dbde0fe1c41a3a49088a52b40393e1d6699d80 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Wed, 13 Sep 2017 16:04:06 +0200 Subject: [PATCH 14/46] Fix readability of top bar buttons --- resources/themes/cura-dark/theme.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/resources/themes/cura-dark/theme.json b/resources/themes/cura-dark/theme.json index 61eefd5122..4d256e4ad9 100644 --- a/resources/themes/cura-dark/theme.json +++ b/resources/themes/cura-dark/theme.json @@ -18,6 +18,10 @@ "topbar_background_color": [0, 0, 0, 0], "topbar_background_color_monitoring": [0, 0, 0, 255], + "topbar_button_text_active": [255, 255, 255, 255], + "topbar_button_text_inactive": [128, 128, 128, 255], + "topbar_button_text_hovered": [255, 255, 255, 255], + "text": [255, 255, 255, 204], "text_detail": [255, 255, 255, 172], "text_link": [255, 255, 255, 127], From eed96473b1c11ae1517c29213b593d390153b52e Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Wed, 13 Sep 2017 16:07:50 +0200 Subject: [PATCH 15/46] Brighten z axis for readability on dark colors --- resources/themes/cura-dark/theme.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/themes/cura-dark/theme.json b/resources/themes/cura-dark/theme.json index 4d256e4ad9..bb7012396c 100644 --- a/resources/themes/cura-dark/theme.json +++ b/resources/themes/cura-dark/theme.json @@ -170,7 +170,7 @@ "disabled_axis": [127, 127, 127, 255], "x_axis": [255, 0, 0, 255], - "y_axis": [0, 0, 255, 255], + "y_axis": [96, 96, 255, 255], "z_axis": [0, 255, 0, 255], "all_axis": [255, 255, 255, 255], From 53d2b8ea978aca94e6fa8702772347a450f86e1c Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Wed, 13 Sep 2017 16:15:24 +0200 Subject: [PATCH 16/46] Remove solid white background behind simple mode controls --- resources/qml/SidebarSimple.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/SidebarSimple.qml b/resources/qml/SidebarSimple.qml index c2c1562fbb..342c30d56a 100644 --- a/resources/qml/SidebarSimple.qml +++ b/resources/qml/SidebarSimple.qml @@ -31,7 +31,7 @@ Item style: UM.Theme.styles.scrollview flickableItem.flickableDirection: Flickable.VerticalFlick - Rectangle + Item { width: childrenRect.width height: childrenRect.height From 764514bb904b3595fb3ad5c21950fe96fe091be0 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Wed, 13 Sep 2017 16:15:38 +0200 Subject: [PATCH 17/46] Subdue volume outline --- resources/themes/cura-dark/theme.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/themes/cura-dark/theme.json b/resources/themes/cura-dark/theme.json index bb7012396c..4874b2a100 100644 --- a/resources/themes/cura-dark/theme.json +++ b/resources/themes/cura-dark/theme.json @@ -175,7 +175,7 @@ "all_axis": [255, 255, 255, 255], "viewport_background": [31, 36, 39, 255], - "volume_outline": [1, 168, 230, 255], + "volume_outline": [12, 169, 227, 128], "buildplate": [169, 169, 169, 255], "buildplate_grid": [129, 131, 134, 255], "buildplate_grid_minor": [154, 154, 155, 255], From 84ad9c6ad1edd08216df0834298fd558c1268920 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Wed, 13 Sep 2017 12:48:48 +0200 Subject: [PATCH 18/46] Add "available" flag for quality profiles CURA-4182 Add "available" flag for quality profile model so the slider can use it to show available and unavailable profiles. --- cura/QualityManager.py | 13 ++++- cura/Settings/ProfilesModel.py | 80 +++++++++++++++++++++++++---- resources/qml/Menus/ProfileMenu.qml | 1 + 3 files changed, 84 insertions(+), 10 deletions(-) diff --git a/cura/QualityManager.py b/cura/QualityManager.py index e92829e546..813d23ea13 100644 --- a/cura/QualityManager.py +++ b/cura/QualityManager.py @@ -82,6 +82,17 @@ class QualityManager: return list(common_quality_types) + def findAllQualitiesForMachineAndMaterials(self, machine_definition: "DefinitionContainerInterface", material_containers: List[InstanceContainer]) -> List[InstanceContainer]: + # Determine the common set of quality types which can be + # applied to all of the materials for this machine. + quality_type_dict = self.__fetchQualityTypeDictForMaterial(machine_definition, material_containers[0]) + qualities = set(quality_type_dict.values()) + for material_container in material_containers[1:]: + next_quality_type_dict = self.__fetchQualityTypeDictForMaterial(machine_definition, material_container) + qualities.update(set(next_quality_type_dict.values())) + + return list(qualities) + ## Fetches a dict of quality types names to quality profiles for a combination of machine and material. # # \param machine_definition \type{DefinitionContainer} the machine definition. @@ -121,7 +132,7 @@ class QualityManager: # \param material_container \type{InstanceContainer} the material. # \return \type{List[InstanceContainer]} the list of suitable qualities. def findAllQualitiesForMachineMaterial(self, machine_definition: "DefinitionContainerInterface", material_container: InstanceContainer) -> List[InstanceContainer]: - criteria = {"type": "quality" } + criteria = {"type": "quality"} result = self._getFilteredContainersForStack(machine_definition, [material_container], **criteria) if not result: basic_materials = self._getBasicMaterials(material_container) diff --git a/cura/Settings/ProfilesModel.py b/cura/Settings/ProfilesModel.py index 545f44401a..2942577fc6 100644 --- a/cura/Settings/ProfilesModel.py +++ b/cura/Settings/ProfilesModel.py @@ -1,6 +1,8 @@ -# Copyright (c) 2016 Ultimaker B.V. +# Copyright (c) 2017 Ultimaker B.V. # Cura is released under the terms of the AGPLv3 or higher. +from collections import OrderedDict + from PyQt5.QtCore import Qt from UM.Application import Application @@ -10,14 +12,19 @@ from UM.Settings.Models.InstanceContainersModel import InstanceContainersModel from cura.QualityManager import QualityManager from cura.Settings.ExtruderManager import ExtruderManager + ## QML Model for listing the current list of valid quality profiles. # class ProfilesModel(InstanceContainersModel): LayerHeightRole = Qt.UserRole + 1001 + LayerHeightWithoutUnitRole = Qt.UserRole + 1002 + AvailableRole = Qt.UserRole + 1003 def __init__(self, parent = None): super().__init__(parent) self.addRoleName(self.LayerHeightRole, "layer_height") + self.addRoleName(self.LayerHeightWithoutUnitRole, "layer_height_without_unit") + self.addRoleName(self.AvailableRole, "available") Application.getInstance().globalContainerStackChanged.connect(self._update) @@ -47,8 +54,9 @@ class ProfilesModel(InstanceContainersModel): global_container_stack = Application.getInstance().getGlobalContainerStack() if global_container_stack is None: return [] + global_stack_definition = global_container_stack.getBottom() - # Get the list of extruders and place the selected extruder at the front of the list. + # Get the list of extruders and place the selected extruder at the front of the list. extruder_manager = ExtruderManager.getInstance() active_extruder = extruder_manager.getActiveExtruderStack() extruder_stacks = extruder_manager.getActiveExtruderStacks() @@ -56,10 +64,22 @@ class ProfilesModel(InstanceContainersModel): extruder_stacks.remove(active_extruder) extruder_stacks = [active_extruder] + extruder_stacks - # Fetch the list of useable qualities across all extruders. + if ExtruderManager.getInstance().getActiveExtruderStacks(): + # Multi-extruder machine detected. + materials = [extruder.material for extruder in extruder_stacks] + else: + # Machine with one extruder. + materials = [global_container_stack.material] + + # Fetch the list of usable qualities across all extruders. # The actual list of quality profiles come from the first extruder in the extruder list. - return QualityManager.getInstance().findAllUsableQualitiesForMachineAndExtruders(global_container_stack, - extruder_stacks) + result = QualityManager.getInstance().findAllQualitiesForMachineAndMaterials(global_stack_definition, + materials) + for quality in QualityManager.getInstance().findAllUsableQualitiesForMachineAndExtruders( + global_container_stack, extruder_stacks): + if quality not in result: + result.append(quality) + return result ## Re-computes the items in this model, and adds the layer height role. def _recomputeItems(self): @@ -67,6 +87,17 @@ class ProfilesModel(InstanceContainersModel): global_container_stack = Application.getInstance().getGlobalContainerStack() if global_container_stack is None: return + + # Get the list of extruders and place the selected extruder at the front of the list. + extruder_manager = ExtruderManager.getInstance() + active_extruder = extruder_manager.getActiveExtruderStack() + extruder_stacks = extruder_manager.getActiveExtruderStacks() + if active_extruder in extruder_stacks: + extruder_stacks.remove(active_extruder) + extruder_stacks = [active_extruder] + extruder_stacks + # Get a list of available qualities for this machine and material + qualities = QualityManager.getInstance().findAllUsableQualitiesForMachineAndExtruders(global_container_stack, + extruder_stacks) container_registry = ContainerRegistry.getInstance() machine_manager = Application.getInstance().getMachineManager() @@ -74,17 +105,44 @@ class ProfilesModel(InstanceContainersModel): if not unit: unit = "" + # group all quality items according to quality_types, so we know which profile suits the currently + # active machine and material, and later yield the right ones. + tmp_all_quality_items = OrderedDict() for item in super()._recomputeItems(): + profile = container_registry.findContainers(id = item["id"]) + quality_type = profile[0].getMetaDataEntry("quality_type") if profile else "" + + if quality_type not in tmp_all_quality_items: + tmp_all_quality_items[quality_type] = {"suitable_container": None, + "all_containers": []} + + tmp_all_quality_items[quality_type]["all_containers"].append(item) + if tmp_all_quality_items[quality_type]["suitable_container"] is None and profile[0] in qualities: + tmp_all_quality_items[quality_type]["suitable_container"] = item + + # reverse the ordering (finest first, coarsest last) + all_quality_items = OrderedDict() + for key in reversed(tmp_all_quality_items.keys()): + all_quality_items[key] = tmp_all_quality_items[key] + + for data_item in all_quality_items.values(): + item = data_item["suitable_container"] + if item is None: + item = data_item["all_containers"][0] + profile = container_registry.findContainers(id = item["id"]) if not profile: item["layer_height"] = "" #Can't update a profile that is unknown. + item["available"] = False yield item continue - #Easy case: This profile defines its own layer height. profile = profile[0] + item["available"] = profile in qualities + + #Easy case: This profile defines its own layer height. if profile.hasProperty("layer_height", "value"): - item["layer_height"] = str(profile.getProperty("layer_height", "value")) + unit + self._setItemLayerHeight(item, profile.getProperty("layer_height", "value"), unit) yield item continue @@ -102,7 +160,7 @@ class ProfilesModel(InstanceContainersModel): else: quality = None if quality and quality.hasProperty("layer_height", "value"): - item["layer_height"] = str(quality.getProperty("layer_height", "value")) + unit + self._setItemLayerHeight(item, quality.getProperty("layer_height", "value"), unit) yield item continue @@ -112,5 +170,9 @@ class ProfilesModel(InstanceContainersModel): skip_until_container = global_container_stack.variant if not skip_until_container or skip_until_container == ContainerRegistry.getInstance().getEmptyInstanceContainer(): #No variant in stack. skip_until_container = global_container_stack.getBottom() - item["layer_height"] = str(global_container_stack.getRawProperty("layer_height", "value", skip_until_container = skip_until_container.getId())) + unit #Fall through to the currently loaded material. + self._setItemLayerHeight(item, global_container_stack.getRawProperty("layer_height", "value", skip_until_container = skip_until_container.getId()), unit) # Fall through to the currently loaded material. yield item + + def _setItemLayerHeight(self, item, value, unit): + item["layer_height"] = str(value) + unit + item["layer_height_without_unit"] = str(value) diff --git a/resources/qml/Menus/ProfileMenu.qml b/resources/qml/Menus/ProfileMenu.qml index 4a2908277e..d6412c50be 100644 --- a/resources/qml/Menus/ProfileMenu.qml +++ b/resources/qml/Menus/ProfileMenu.qml @@ -22,6 +22,7 @@ Menu checked: Cura.MachineManager.activeQualityChangesId == "" && Cura.MachineManager.activeQualityType == model.metadata.quality_type exclusiveGroup: group onTriggered: Cura.MachineManager.setActiveQuality(model.id) + visible: model.available } onObjectAdded: menu.insertItem(index, object); From d82a1daacf588350c85045750d19ac915500153e Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Wed, 13 Sep 2017 15:18:43 +0200 Subject: [PATCH 19/46] Add new quality/resolution slider CURA-4182 --- resources/qml/SidebarSimple.qml | 379 ++++++++++++++++++++++++- resources/themes/cura-light/theme.json | 8 + 2 files changed, 385 insertions(+), 2 deletions(-) diff --git a/resources/qml/SidebarSimple.qml b/resources/qml/SidebarSimple.qml index c2c1562fbb..cd93a7c546 100644 --- a/resources/qml/SidebarSimple.qml +++ b/resources/qml/SidebarSimple.qml @@ -35,12 +35,386 @@ Item { width: childrenRect.width height: childrenRect.height + + // + // Quality profile + // + Text + { + id: resolutionLabel + anchors.top: resolutionSlider.top + anchors.topMargin: UM.Theme.getSize("default_margin").height / 4 + anchors.left: parent.left + anchors.leftMargin: UM.Theme.getSize("sidebar_margin").width + width: UM.Theme.getSize("sidebar").width * .45 - UM.Theme.getSize("sidebar_margin").width + + text: catalog.i18nc("@label", "Layer Height") + font: UM.Theme.getFont("default") + color: UM.Theme.getColor("text") + } + + Text + { + id: speedLabel + anchors.bottom: resolutionSlider.bottom + anchors.left: parent.left + anchors.leftMargin: UM.Theme.getSize("sidebar_margin").width + + text: catalog.i18nc("@label", "Print Speed") + font: UM.Theme.getFont("default") + color: UM.Theme.getColor("text") + } + + Text + { + id: speedLabelSlower + anchors.top: speedLabel.top + anchors.left: resolutionSlider.left + + text: catalog.i18nc("@label", "Slower") + font: UM.Theme.getFont("default") + color: UM.Theme.getColor("text") + horizontalAlignment: Text.AlignLeft + } + + Text + { + id: speedLabelFaster + anchors.top: speedLabel.top + anchors.right: resolutionSlider.right + + text: catalog.i18nc("@label", "Faster") + font: UM.Theme.getFont("default") + color: UM.Theme.getColor("text") + horizontalAlignment: Text.AlignRight + } + + Item + { + id: resolutionSlider + anchors.top: parent.top + anchors.topMargin: UM.Theme.getSize("default_margin").height / 2 + anchors.left: infillCellRight.left + anchors.right: infillCellRight.right + width: UM.Theme.getSize("sidebar").width * .55 + height: UM.Theme.getSize("quality_slider_bar").height * 30 + + property var model: Cura.ProfilesModel + + Connections + { + target: Cura.ProfilesModel + onItemsChanged: + { + resolutionSlider.updateCurrentQualityIndex(); + resolutionSlider.updateBar(); + } + } + + Connections + { + target: Cura.MachineManager + onActiveQualityChanged: + { + resolutionSlider.updateCurrentQualityIndex(); + resolutionSlider.updateBar(); + } + } + + Component.onCompleted: + { + updateCurrentQualityIndex(); + updateBar(); + } + + function updateCurrentQualityIndex() + { + for (var i = 0; i < resolutionSlider.model.rowCount(); ++i) + { + if (Cura.MachineManager.activeQualityId == resolutionSlider.model.getItem(i).id) + { + if (resolutionSlider.currentQualityIndex != i) + { + resolutionSlider.currentQualityIndex = i; + } + return; + } + } + resolutionSlider.currentQualityIndex = undefined; + } + + function updateBar() + { + fullRangeMax = Cura.ProfilesModel.rowCount(); + + // set avaiableMin + var foundAvaiableMin = false; + for (var i = 0; i < Cura.ProfilesModel.rowCount(); ++i) + { + if (Cura.ProfilesModel.getItem(i).available) + { + avaiableMin = i; + foundAvaiableMin = true; + break; + } + } + if (!foundAvaiableMin) + { + avaiableMin = undefined; + } + + var foundAvaiableMax = false; + for (var i = Cura.ProfilesModel.rowCount() - 1; i >= 0; --i) + { + if (Cura.ProfilesModel.getItem(i).available) + { + avaiableMax = i; + foundAvaiableMax = true; + break; + } + } + if (!foundAvaiableMax) + { + avaiableMax = undefined; + } + + currentHover = undefined; + backgroundBar.requestPaint(); + } + + property var fullRangeMin: 0 + property var fullRangeMax: model.rowCount() + + property var avaiableMin + property var avaiableMax + property var currentQualityIndex + property var currentHover + + //TODO: get from theme + property var barLeftRightMargin: 5 + property var tickLeftRightMargin: 2 + property var tickMargin: 15 + property var tickThickness: 1 + property var tickWidth: 1 + property var tickHeight: 5 + property var tickTextHeight: 8 + property var totalTickCount: fullRangeMax - fullRangeMin + property var selectedCircleDiameter: 10 + + property var showQualityText: false + + property var tickStepSize: (width - (barLeftRightMargin + tickLeftRightMargin) * 2) / (totalTickCount > 1 ? totalTickCount - 1 : 1) + property var tickAreaList: + { + var area_list = []; + if (avaiableMin != undefined && avaiableMax != undefined) + { + for (var i = avaiableMin; i <= avaiableMax; ++i) + { + var start_x = (barLeftRightMargin + tickLeftRightMargin) + tickStepSize * (i - fullRangeMin); + var diameter = tickStepSize * 0.9; + start_x = start_x + tickWidth / 2 - (diameter / 2); + var end_x = start_x + diameter; + var start_y = height / 2 - diameter / 2; + var end_y = start_y + diameter; + + var area = {"id": i, + "start_x": start_x, "end_x": end_x, + "start_y": start_y, "end_y": end_y, + }; + area_list.push(area); + } + } + return area_list; + } + + onCurrentHoverChanged: + { + backgroundBar.requestPaint(); + } + onCurrentQualityIndex: + { + backgroundBar.requestPaint(); + } + + // background bar + Canvas + { + id: backgroundBar + anchors.fill: parent + + Timer { + interval: 16 + running: true + repeat: true + onTriggered: backgroundBar.requestPaint() + } + + onPaint: + { + var ctx = getContext("2d"); + ctx.reset(); + ctx.fillStyle = UM.Theme.getColor("quality_slider_unavailable"); + + const bar_left_right_margin = resolutionSlider.barLeftRightMargin; + const tick_left_right_margin = resolutionSlider.tickLeftRightMargin; + const tick_margin = resolutionSlider.tickMargin; + const bar_thickness = resolutionSlider.tickThickness; + const tick_width = resolutionSlider.tickWidth; + const tick_height = resolutionSlider.tickHeight; + const tick_text_height = resolutionSlider.tickTextHeight; + const selected_circle_diameter = resolutionSlider.selectedCircleDiameter; + + // draw unavailable bar + const bar_top = parent.height / 2 - bar_thickness / 2; + ctx.fillRect(bar_left_right_margin, bar_top, width - bar_left_right_margin * 2, bar_thickness); + + // draw unavailable ticks + var total_tick_count = resolutionSlider.totalTickCount; + const step_size = resolutionSlider.tickStepSize; + var current_start_x = bar_left_right_margin + tick_left_right_margin; + + const tick_top = parent.height / 2 - tick_height / 2; + + for (var i = 0; i < total_tick_count; ++i) + { + ctx.fillRect(current_start_x, tick_top, tick_width, tick_height); + current_start_x += step_size; + } + + // draw available bar and ticks + if (resolutionSlider.avaiableMin != undefined && resolutionSlider.avaiableMax != undefined) + { + current_start_x = (bar_left_right_margin + tick_left_right_margin) + step_size * (resolutionSlider.avaiableMin - resolutionSlider.fullRangeMin); + ctx.fillStyle = UM.Theme.getColor("quality_slider_available"); + total_tick_count = resolutionSlider.avaiableMax - resolutionSlider.avaiableMin + 1; + + const available_bar_width = step_size * (total_tick_count - 1); + ctx.fillRect(current_start_x, bar_top, available_bar_width, bar_thickness); + + for (var i = 0; i < total_tick_count; ++i) + { + ctx.fillRect(current_start_x, tick_top, tick_width, tick_height); + current_start_x += step_size; + } + } + + // print the selected circle + if (resolutionSlider.currentQualityIndex != undefined) + { + var circle_start_x = (bar_left_right_margin + tick_left_right_margin) + step_size * (resolutionSlider.currentQualityIndex - resolutionSlider.fullRangeMin); + circle_start_x = circle_start_x + tick_width / 2 - selected_circle_diameter / 2; + var circle_start_y = height / 2 - selected_circle_diameter / 2; + ctx.fillStyle = UM.Theme.getColor("quality_slider_handle"); + ctx.beginPath(); + ctx.ellipse(circle_start_x, circle_start_y, selected_circle_diameter, selected_circle_diameter); + ctx.fill(); + ctx.closePath(); + } + + // print the hovered circle + if (resolutionSlider.currentHover != undefined && resolutionSlider.currentHover != resolutionSlider.currentQualityIndex) + { + var circle_start_x = (bar_left_right_margin + tick_left_right_margin) + step_size * (resolutionSlider.currentHover - resolutionSlider.fullRangeMin); + circle_start_x = circle_start_x + tick_width / 2 - selected_circle_diameter / 2; + var circle_start_y = height / 2 - selected_circle_diameter / 2; + ctx.fillStyle = UM.Theme.getColor("quality_slider_handle_hover"); + ctx.beginPath(); + ctx.ellipse(circle_start_x, circle_start_y, selected_circle_diameter, selected_circle_diameter); + ctx.fill(); + ctx.closePath(); + } + + // print layer height texts + total_tick_count = resolutionSlider.totalTickCount; + const step_size = resolutionSlider.tickStepSize; + current_start_x = bar_left_right_margin + tick_left_right_margin; + for (var i = 0; i < total_tick_count; ++i) + { + const text_top = parent.height / 2 - tick_height - tick_text_height; + ctx.fillStyle = UM.Theme.getColor("quality_slider_text"); + + ctx.font = "12px sans-serif"; + const string_length = resolutionSlider.model.getItem(i).layer_height_without_unit.length; + const offset = string_length / 2 * 4; + + var start_x = current_start_x - offset; + if (i == 0) + { + start_x = 0; + } + else if (i == total_tick_count - 1) + { + start_x = current_start_x - offset * 2; + } + + ctx.fillText(resolutionSlider.model.getItem(i).layer_height_without_unit, start_x, text_top); + current_start_x += step_size; + } + + // print currently selected quality text + if (resolutionSlider.showQualityText && resolutionSlider.currentQualityIndex != undefine) + { + const text_top = parent.height / 2 + tick_height + tick_text_height * 2; + total_tick_count = resolutionSlider.totalTickCount; + const step_size = resolutionSlider.tickStepSize; + current_start_x = (tick_left_right_margin) + step_size * (resolutionSlider.currentQualityIndex - resolutionSlider.fullRangeMin); + ctx.fillStyle = UM.Theme.getColor("quality_slider_text"); + ctx.fillText(resolutionSlider.model.getItem(resolutionSlider.currentQualityIndex).name, current_start_x - 6, text_top); + } + } + + MouseArea + { + anchors.fill: parent + hoverEnabled: true + + onClicked: + { + for (var i = 0; i < resolutionSlider.tickAreaList.length; ++i) + { + var area = resolutionSlider.tickAreaList[i]; + if (area.start_x <= mouseX && mouseX <= area.end_x && area.start_y <= mouseY && mouseY <= area.end_y) + { + resolutionSlider.currentHover = undefined; + resolutionSlider.currentQualityIndex = area.id; + + Cura.MachineManager.setActiveQuality(resolutionSlider.model.getItem(resolutionSlider.currentQualityIndex).id); + return; + } + } + resolutionSlider.currentHover = undefined; + } + onPositionChanged: + { + for (var i = 0; i < resolutionSlider.tickAreaList.length; ++i) + { + var area = resolutionSlider.tickAreaList[i]; + if (area.start_x <= mouseX && mouseX <= area.end_x && area.start_y <= mouseY && mouseY <= area.end_y) + { + resolutionSlider.currentHover = area.id; + return; + } + } + resolutionSlider.currentHover = undefined; + } + onExited: + { + resolutionSlider.currentHover = undefined; + } + } + } + } + + // + // Infill + // Item { id: infillCellLeft - anchors.top: parent.top + anchors.top: speedLabel.top + anchors.topMargin: UM.Theme.getSize("sidebar_margin").height * 1.2 anchors.left: parent.left - anchors.topMargin: UM.Theme.getSize("sidebar_margin").height * 0.8 width: UM.Theme.getSize("sidebar").width * .45 - UM.Theme.getSize("sidebar_margin").width height: childrenRect.height @@ -69,6 +443,7 @@ Item anchors.left: infillCellLeft.right anchors.top: infillCellLeft.top + anchors.topMargin: UM.Theme.getSize("sidebar_margin").height Repeater { diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 6fd8f43b3e..1271dfbe71 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -196,6 +196,12 @@ "slider_handle_border": [39, 44, 48, 255], "slider_text_background": [255, 255, 255, 255], + "quality_slider_unavailable": [179, 179, 179, 255], + "quality_slider_available": [0, 0, 0, 255], + "quality_slider_handle": [0, 0, 0, 255], + "quality_slider_handle_hover": [127, 127, 127, 255], + "quality_slider_text": [0, 0, 0, 255], + "checkbox": [255, 255, 255, 255], "checkbox_hover": [255, 255, 255, 255], "checkbox_border": [64, 69, 72, 255], @@ -338,6 +344,8 @@ "scrollbar": [0.75, 0.5], + "quality_slider_bar": [1, 0.2], + "slider_groove": [0.3, 0.3], "slider_handle": [1.0, 1.0], "slider_layerview_size": [1.0, 22.0], From 3d6648fc5909b56947b622ed471df58fa623c6b2 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Wed, 13 Sep 2017 17:12:51 +0200 Subject: [PATCH 20/46] Rearrange quality profile slider and dropdown box CURA-4182 - Remove the quality profile dropdown box from Recommended mode - Move the quality profile dropdown box to Custom mode --- resources/qml/Settings/SettingView.qml | 87 +++++++++++++++++++++++++- resources/qml/Sidebar.qml | 85 +------------------------ 2 files changed, 87 insertions(+), 85 deletions(-) diff --git a/resources/qml/Settings/SettingView.qml b/resources/qml/Settings/SettingView.qml index b6b79ed3d4..8dd8670f05 100644 --- a/resources/qml/Settings/SettingView.qml +++ b/resources/qml/Settings/SettingView.qml @@ -9,6 +9,8 @@ import QtQuick.Layouts 1.1 import UM 1.2 as UM import Cura 1.0 as Cura +import "../Menus" + Item { id: base; @@ -18,6 +20,88 @@ Item signal showTooltip(Item item, point location, string text); signal hideTooltip(); + Item + { + id: globalProfileRow + height: UM.Theme.getSize("sidebar_setup").height + visible: !sidebar.monitoringPrint && !sidebar.hideSettings + + anchors + { + top: parent.top + left: parent.left + leftMargin: UM.Theme.getSize("sidebar_margin").width + right: parent.right + rightMargin: UM.Theme.getSize("sidebar_margin").width + } + + Text + { + id: globalProfileLabel + text: catalog.i18nc("@label","Profile:"); + width: parent.width * 0.45 - UM.Theme.getSize("sidebar_margin").width - 2 + font: UM.Theme.getFont("default"); + color: UM.Theme.getColor("text"); + verticalAlignment: Text.AlignVCenter + anchors.top: parent.top + anchors.bottom: parent.bottom + } + + ToolButton + { + id: globalProfileSelection + + text: { + var result = Cura.MachineManager.activeQualityName; + if (Cura.MachineManager.activeQualityLayerHeight > 0) { + result += " "; + result += " - "; + result += Cura.MachineManager.activeQualityLayerHeight + "mm"; + result += ""; + } + return result; + } + enabled: !header.currentExtruderVisible || header.currentExtruderIndex > -1 + + width: parent.width * 0.55 + height: UM.Theme.getSize("setting_control").height + anchors.left: globalProfileLabel.right + anchors.right: parent.right + tooltip: Cura.MachineManager.activeQualityName + style: UM.Theme.styles.sidebar_header_button + activeFocusOnPress: true; + menu: ProfileMenu { } + + UM.SimpleButton + { + id: customisedSettings + + visible: Cura.MachineManager.hasUserSettings + height: parent.height * 0.6 + width: parent.height * 0.6 + + anchors.verticalCenter: parent.verticalCenter + anchors.right: parent.right + anchors.rightMargin: UM.Theme.getSize("setting_preferences_button_margin").width - UM.Theme.getSize("sidebar_margin").width + + color: hovered ? UM.Theme.getColor("setting_control_button_hover") : UM.Theme.getColor("setting_control_button"); + iconSource: UM.Theme.getIcon("star"); + + onClicked: + { + forceActiveFocus(); + Cura.Actions.manageProfiles.trigger() + } + onEntered: + { + var content = catalog.i18nc("@tooltip","Some setting/override values are different from the values stored in the profile.\n\nClick to open the profile manager.") + base.showTooltip(globalProfileRow, Qt.point(-UM.Theme.getSize("sidebar_margin").width, 0), content) + } + onExited: base.hideTooltip() + } + } + } + Rectangle { id: filterContainer @@ -40,7 +124,8 @@ Item anchors { - top: parent.top + top: globalProfileRow.bottom + topMargin: UM.Theme.getSize("sidebar_margin").height left: parent.left leftMargin: UM.Theme.getSize("sidebar_margin").width right: parent.right diff --git a/resources/qml/Sidebar.qml b/resources/qml/Sidebar.qml index ba357f40a5..4c6172c558 100755 --- a/resources/qml/Sidebar.qml +++ b/resources/qml/Sidebar.qml @@ -203,95 +203,12 @@ Rectangle } } - Item - { - id: globalProfileRow - height: UM.Theme.getSize("sidebar_setup").height - visible: !sidebar.monitoringPrint && !sidebar.hideSettings - - anchors - { - top: settingsModeSelection.bottom - topMargin: UM.Theme.getSize("sidebar_margin").height - left: parent.left - leftMargin: UM.Theme.getSize("sidebar_margin").width - right: parent.right - rightMargin: UM.Theme.getSize("sidebar_margin").width - } - - Text - { - id: globalProfileLabel - text: catalog.i18nc("@label","Profile:"); - width: parent.width * 0.45 - UM.Theme.getSize("sidebar_margin").width - 2 - font: UM.Theme.getFont("default"); - color: UM.Theme.getColor("text"); - verticalAlignment: Text.AlignVCenter - anchors.top: parent.top - anchors.bottom: parent.bottom - } - - ToolButton - { - id: globalProfileSelection - - text: { - var result = Cura.MachineManager.activeQualityName; - if (Cura.MachineManager.activeQualityLayerHeight > 0) { - result += " "; - result += " - "; - result += Cura.MachineManager.activeQualityLayerHeight + "mm"; - result += ""; - } - return result; - } - enabled: !header.currentExtruderVisible || header.currentExtruderIndex > -1 - - width: parent.width * 0.55 - height: UM.Theme.getSize("setting_control").height - anchors.left: globalProfileLabel.right - anchors.right: parent.right - tooltip: Cura.MachineManager.activeQualityName - style: UM.Theme.styles.sidebar_header_button - activeFocusOnPress: true; - menu: ProfileMenu { } - - UM.SimpleButton - { - id: customisedSettings - - visible: Cura.MachineManager.hasUserSettings - height: parent.height * 0.6 - width: parent.height * 0.6 - - anchors.verticalCenter: parent.verticalCenter - anchors.right: parent.right - anchors.rightMargin: UM.Theme.getSize("setting_preferences_button_margin").width - UM.Theme.getSize("sidebar_margin").width - - color: hovered ? UM.Theme.getColor("setting_control_button_hover") : UM.Theme.getColor("setting_control_button"); - iconSource: UM.Theme.getIcon("star"); - - onClicked: - { - forceActiveFocus(); - Cura.Actions.manageProfiles.trigger() - } - onEntered: - { - var content = catalog.i18nc("@tooltip","Some setting/override values are different from the values stored in the profile.\n\nClick to open the profile manager.") - base.showTooltip(globalProfileRow, Qt.point(-UM.Theme.getSize("sidebar_margin").width, 0), content) - } - onExited: base.hideTooltip() - } - } - } - StackView { id: sidebarContents anchors.bottom: footerSeparator.top - anchors.top: globalProfileRow.bottom + anchors.top: settingsModeSelection.bottom anchors.topMargin: UM.Theme.getSize("sidebar_margin").height anchors.left: base.left anchors.right: base.right From be57ccb127fe560fae3b7b5e66e1e6cb195d9b3f Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Wed, 13 Sep 2017 17:44:53 +0200 Subject: [PATCH 21/46] Minor fixes CURA-4224 - Fix code style - Fix typos --- .../FirmwareUpdateChecker/FirmwareUpdateChecker.py | 12 ++++++------ .../FirmwareUpdateCheckerJob.py | 10 +++++----- plugins/FirmwareUpdateChecker/__init__.py | 10 ++++++---- 3 files changed, 17 insertions(+), 15 deletions(-) diff --git a/plugins/FirmwareUpdateChecker/FirmwareUpdateChecker.py b/plugins/FirmwareUpdateChecker/FirmwareUpdateChecker.py index 994493a4e6..770aace3fe 100644 --- a/plugins/FirmwareUpdateChecker/FirmwareUpdateChecker.py +++ b/plugins/FirmwareUpdateChecker/FirmwareUpdateChecker.py @@ -1,6 +1,6 @@ -# Copyright (c) 2015 Ultimaker B.V. +# Copyright (c) 2017 Ultimaker B.V. # Cura is released under the terms of the AGPLv3 or higher. -from UM.Application import Application + from UM.Extension import Extension from UM.Preferences import Preferences from UM.Logger import Logger @@ -33,9 +33,9 @@ class FirmwareUpdateChecker(Extension): ContainerRegistry.getInstance().containerAdded.connect(self._onContainerAdded) def _onContainerAdded(self, container): - # Only take care when a new GlobaStack was added - if (isinstance(container, GlobalStack)): - Logger.log("i", "You have a '%s' in printer list. Let's check the firmware!" % container.getId()) + # Only take care when a new GlobalStack was added + if isinstance(container, GlobalStack): + Logger.log("i", "You have a '%s' in printer list. Let's check the firmware!", container.getId()) self.checkFirmwareVersion(container, True) ## Connect with software.ultimaker.com, load latest.version and check version info. @@ -46,4 +46,4 @@ class FirmwareUpdateChecker(Extension): # This is used when checking for a new firmware version at startup. def checkFirmwareVersion(self, container = None, silent = False): job = FirmwareUpdateCheckerJob(container = container, silent = silent, url = self.url) - job.start() \ No newline at end of file + job.start() diff --git a/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py b/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py index 9e0db57ed7..b95a2b1097 100644 --- a/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py +++ b/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py @@ -1,4 +1,4 @@ -# Copyright (c) 2015 Ultimaker B.V. +# Copyright (c) 2017 Ultimaker B.V. # Cura is released under the terms of the AGPLv3 or higher. from UM.Preferences import Preferences @@ -49,12 +49,12 @@ class FirmwareUpdateCheckerJob(Job): # If it is not None, then we compare between the checked_version and the current_version # Now we just do that if the active printer is Ultimaker 3 or Ultimaker 3 Extended or any # other Ultimaker 3 that will come in the future - if (machine_name[0:11] == "Ultimaker 3"): + if machine_name[0:11] == "Ultimaker 3": # Nothing to parse, just get the string # TODO: In the future may be done by parsing a JSON file with diferent version for each printer model current_version = reader(current_version_file).readline().rstrip() - Logger.log("i", "Reading firmware version of %s: %s" % (machine_name, current_version)) + Logger.log("i", "Reading firmware version of %s: %s", machine_name, current_version) # If it is the first time the version is checked, the checked_version is None checked_version = Preferences.getInstance().getValue("info/latest_checked_firmware") @@ -80,7 +80,7 @@ class FirmwareUpdateCheckerJob(Job): Preferences.getInstance().setValue("info/latest_checked_firmware", current_version) except Exception as e: - Logger.log("w", "Failed to check for new version: %s" % e) + Logger.log("w", "Failed to check for new version: %s", e) if not self.silent: Message(i18n_catalog.i18nc("@info", "Could not access update information.")).show() - return \ No newline at end of file + return diff --git a/plugins/FirmwareUpdateChecker/__init__.py b/plugins/FirmwareUpdateChecker/__init__.py index 5da6130772..b7343dc565 100644 --- a/plugins/FirmwareUpdateChecker/__init__.py +++ b/plugins/FirmwareUpdateChecker/__init__.py @@ -1,14 +1,16 @@ -# Copyright (c) 2015 Ultimaker B.V. +# Copyright (c) 2017 Ultimaker B.V. # Cura is released under the terms of the AGPLv3 or higher. from UM.i18n import i18nCatalog + from . import FirmwareUpdateChecker i18n_catalog = i18nCatalog("cura") + def getMetaData(): - return { - } + return {} + def register(app): - return { "extension": FirmwareUpdateChecker.FirmwareUpdateChecker()} + return {"extension": FirmwareUpdateChecker.FirmwareUpdateChecker()} From 9567a6921d3af0a27e5de7236b44ecbfc45c6d89 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Thu, 14 Sep 2017 08:23:26 +0200 Subject: [PATCH 22/46] Fix code style CURA-4224 --- plugins/FirmwareUpdateChecker/FirmwareUpdateChecker.py | 4 ++-- plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/plugins/FirmwareUpdateChecker/FirmwareUpdateChecker.py b/plugins/FirmwareUpdateChecker/FirmwareUpdateChecker.py index 770aace3fe..1c099705b1 100644 --- a/plugins/FirmwareUpdateChecker/FirmwareUpdateChecker.py +++ b/plugins/FirmwareUpdateChecker/FirmwareUpdateChecker.py @@ -17,7 +17,7 @@ i18n_catalog = i18nCatalog("cura") # The plugin is currently only usable for applications maintained by Ultimaker. But it should be relatively easy # to change it to work for other applications. class FirmwareUpdateChecker(Extension): - url = "http://software.ultimaker.com/jedi/releases/latest.version" + JEDI_VERSION_URL = "http://software.ultimaker.com/jedi/releases/latest.version" def __init__(self): super().__init__() @@ -45,5 +45,5 @@ class FirmwareUpdateChecker(Extension): # \param silent type(boolean) Suppresses messages other than "new version found" messages. # This is used when checking for a new firmware version at startup. def checkFirmwareVersion(self, container = None, silent = False): - job = FirmwareUpdateCheckerJob(container = container, silent = silent, url = self.url) + job = FirmwareUpdateCheckerJob(container = container, silent = silent, url = self.JEDI_VERSION_URL) job.start() diff --git a/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py b/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py index b95a2b1097..a13c856742 100644 --- a/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py +++ b/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py @@ -13,7 +13,6 @@ import codecs from PyQt5.QtCore import QUrl from PyQt5.QtGui import QDesktopServices - from UM.i18n import i18nCatalog i18n_catalog = i18nCatalog("cura") From a48507546fa9db2aac5ba2bc0c62e94f67bd678d Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Thu, 14 Sep 2017 08:34:01 +0200 Subject: [PATCH 23/46] More defensive machine name and version check CURA-4224 --- plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py b/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py index a13c856742..352d32c0fb 100644 --- a/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py +++ b/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py @@ -43,13 +43,14 @@ class FirmwareUpdateCheckerJob(Job): current_version_file = urllib.request.urlopen(request) reader = codecs.getreader("utf-8") - machine_name = self._container.getId() + # get machine name from the definition container + machine_name = self._container.definition.getName().lower() + machine_name_parts = machine_name.split(" ") # If it is not None, then we compare between the checked_version and the current_version # Now we just do that if the active printer is Ultimaker 3 or Ultimaker 3 Extended or any # other Ultimaker 3 that will come in the future - if machine_name[0:11] == "Ultimaker 3": - + if len(machine_name_parts) >= 2 and machine_name_parts[:2] == ["ultimaker", "3"]: # Nothing to parse, just get the string # TODO: In the future may be done by parsing a JSON file with diferent version for each printer model current_version = reader(current_version_file).readline().rstrip() From 5df5dfec029e6685789012ecacafb6815dabc179 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Thu, 14 Sep 2017 08:50:23 +0200 Subject: [PATCH 24/46] Auto-adjust mode tab position based on text length CURA-4322 --- resources/qml/Sidebar.qml | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/resources/qml/Sidebar.qml b/resources/qml/Sidebar.qml index ba357f40a5..c598af7d99 100755 --- a/resources/qml/Sidebar.qml +++ b/resources/qml/Sidebar.qml @@ -125,7 +125,6 @@ Rectangle font: UM.Theme.getFont("large") color: UM.Theme.getColor("text") visible: !monitoringPrint - elide: Text.ElideRight } Rectangle { @@ -135,7 +134,17 @@ Rectangle height: UM.Theme.getSize("sidebar_header_mode_toggle").height anchors.right: parent.right anchors.rightMargin: UM.Theme.getSize("sidebar_margin").width - anchors.top: headerSeparator.bottom + anchors.top: + { + if (settingsModeLabel.contentWidth >= parent.width - width - UM.Theme.getSize("sidebar_margin").width) + { + return settingsModeLabel.bottom; + } + else + { + return headerSeparator.bottom; + } + } anchors.topMargin: UM.Theme.getSize("sidebar_margin").height visible: !monitoringPrint && !hideSettings Component{ From c5c6ed8b2b5faa38b10d53c29205bada08f3e363 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Thu, 14 Sep 2017 09:59:13 +0200 Subject: [PATCH 25/46] CURA-4318 fix colors and layouts for dark design --- plugins/LayerView/LayerView.qml | 4 +- resources/qml/SidebarSimple.qml | 4 +- resources/themes/cura-dark/images/logo.svg | 72 ++++++++++++++++++++++ resources/themes/cura-dark/theme.json | 32 ++++------ 4 files changed, 90 insertions(+), 22 deletions(-) create mode 100644 resources/themes/cura-dark/images/logo.svg diff --git a/plugins/LayerView/LayerView.qml b/plugins/LayerView/LayerView.qml index 8927d59017..26087b8b65 100755 --- a/plugins/LayerView/LayerView.qml +++ b/plugins/LayerView/LayerView.qml @@ -519,8 +519,8 @@ Item anchors.horizontalCenter: parent.horizontalCenter radius: parent.handleRadius color: parent.lowerHandleColor - border.width: UM.Theme.getSize("default_lining").width - border.color: UM.Theme.getColor("slider_handle_border") +// border.width: UM.Theme.getSize("default_lining").width +// border.color: UM.Theme.getColor("slider_handle_border") visible: slider.layersVisible diff --git a/resources/qml/SidebarSimple.qml b/resources/qml/SidebarSimple.qml index c2c1562fbb..ffb5e1f00b 100644 --- a/resources/qml/SidebarSimple.qml +++ b/resources/qml/SidebarSimple.qml @@ -35,6 +35,8 @@ Item { width: childrenRect.width height: childrenRect.height + color: UM.Theme.getColor("sidebar") + Item { id: infillCellLeft @@ -479,7 +481,7 @@ Item anchors.top: parent.top wrapMode: Text.WordWrap //: Tips label - text: catalog.i18nc("@label", "Need help improving your prints?
Read the Ultimaker Troubleshooting Guides").arg("https://ultimaker.com/en/troubleshooting") + "".arg(UM.Theme.getIcon("play")) + text: catalog.i18nc("@label", "Need help improving your prints?
Read the Ultimaker Troubleshooting Guides").arg("https://ultimaker.com/en/troubleshooting") font: UM.Theme.getFont("default"); color: UM.Theme.getColor("text"); linkColor: UM.Theme.getColor("text_link") diff --git a/resources/themes/cura-dark/images/logo.svg b/resources/themes/cura-dark/images/logo.svg new file mode 100644 index 0000000000..236b413b66 --- /dev/null +++ b/resources/themes/cura-dark/images/logo.svg @@ -0,0 +1,72 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + diff --git a/resources/themes/cura-dark/theme.json b/resources/themes/cura-dark/theme.json index dbe19bd298..586db9761f 100644 --- a/resources/themes/cura-dark/theme.json +++ b/resources/themes/cura-dark/theme.json @@ -121,14 +121,13 @@ "progressbar_background": [255, 255, 255, 48], "progressbar_control": [255, 255, 255, 197], - "slider_groove": [39, 44, 48, 75], - "slider_groove_border": [39, 44, 48, 0], - "slider_groove_fill": [39, 44, 48, 182], + "slider_groove": [245, 245, 245, 255], + "slider_groove_border": [127, 127, 127, 255], + "slider_groove_fill": [127, 127, 127, 255], "slider_handle": [255, 255, 255, 255], + "slider_handle_hover": [77, 182, 226, 255], "slider_handle_border": [39, 44, 48, 255], - "slider_handle_hover": [255, 255, 255, 255], - "slider_handle_hover_border": [39, 44, 48, 255], - "slider_text_background": [39, 44, 48, 255], + "slider_text_background": [255, 255, 255, 255], "checkbox": [43, 48, 52, 255], "checkbox_hover": [43, 48, 52, 255], @@ -140,18 +139,6 @@ "tooltip": [39, 44, 48, 255], "tooltip_text": [255, 255, 255, 204], - "message_background": [255, 255, 255, 200], - "message_text": [0, 0, 0, 255], - "message_border": [191, 191, 191, 200], - "message_button": [255, 255, 255, 255], - "message_button_hover": [12, 169, 227, 255], - "message_button_active": [32, 166, 219, 255], - "message_button_text": [24, 41, 77, 255], - "message_button_text_hover": [255, 255, 255, 255], - "message_button_text_active": [255, 255, 255, 255], - "message_progressbar_background": [255, 255, 255, 255], - "message_progressbar_control": [12, 169, 227, 255], - "tool_panel_background": [39, 44, 48, 255], "status_offline": [0, 0, 0, 255], @@ -198,6 +185,13 @@ "layerview_support_infill": [0, 255, 255, 255], "layerview_move_combing": [0, 0, 255, 255], "layerview_move_retraction": [128, 128, 255, 255], - "layerview_support_interface": [64, 192, 255, 255] + "layerview_support_interface": [64, 192, 255, 255], + + "material_compatibility_warning": [255, 255, 255, 255], + + "topbar_button_text_inactive": [255, 255, 255, 255], + "topbar_button_text_active": [255, 255, 255, 255], + "topbar_button_text_hovered": [255, 255, 255, 255], + "topbar_background_color_monitoring": [39, 44, 48, 255] } } From 9ec1d5d54abf2997a950b135b0d9900077cb4f4a Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Thu, 14 Sep 2017 10:21:30 +0200 Subject: [PATCH 26/46] Add CuraEngine.exe to git ignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 9c9d57f175..03ae94a87f 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,7 @@ resources/i18n/en_7S resources/i18n/x-test resources/firmware resources/materials +CuraEngine.exe LC_MESSAGES .cache *.qmlc From 96c1e7ea8be341217376d8367d5b59b5ec07cd1c Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Thu, 14 Sep 2017 10:58:22 +0200 Subject: [PATCH 27/46] CURA-4182 dark design fixes for quality slider --- resources/themes/cura-dark/theme.json | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/resources/themes/cura-dark/theme.json b/resources/themes/cura-dark/theme.json index 586db9761f..906a5c280e 100644 --- a/resources/themes/cura-dark/theme.json +++ b/resources/themes/cura-dark/theme.json @@ -192,6 +192,12 @@ "topbar_button_text_inactive": [255, 255, 255, 255], "topbar_button_text_active": [255, 255, 255, 255], "topbar_button_text_hovered": [255, 255, 255, 255], - "topbar_background_color_monitoring": [39, 44, 48, 255] + "topbar_background_color_monitoring": [39, 44, 48, 255], + + "quality_slider_unavailable": [179, 179, 179, 255], + "quality_slider_available": [255, 255, 255, 255], + "quality_slider_handle": [255, 255, 255, 255], + "quality_slider_handle_hover": [127, 127, 127, 255], + "quality_slider_text": [255, 255, 255, 255] } } From 7144720d788b4d22608bac7920ad885d9b95abf6 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Thu, 14 Sep 2017 11:34:45 +0200 Subject: [PATCH 28/46] Redesign splash window CURA-4215 - Rectangle splash window - Fix for splash window crash - Enable antialias - Fix for longer loading text in some languages --- cura/CuraSplashScreen.py | 25 ++++++++++++++----------- resources/images/cura.png | Bin 52943 -> 56143 bytes resources/images/loading.png | Bin 3585 -> 0 bytes 3 files changed, 14 insertions(+), 11 deletions(-) delete mode 100644 resources/images/loading.png diff --git a/cura/CuraSplashScreen.py b/cura/CuraSplashScreen.py index dd4dd9b2cc..7e25855655 100644 --- a/cura/CuraSplashScreen.py +++ b/cura/CuraSplashScreen.py @@ -2,10 +2,9 @@ # Uranium is released under the terms of the AGPLv3 or higher. from threading import Thread, Event -import time -from PyQt5.QtCore import Qt, QCoreApplication -from PyQt5.QtGui import QPixmap, QColor, QFont, QFontMetrics, QImage, QPen +from PyQt5.QtCore import Qt +from PyQt5.QtGui import QPixmap, QColor, QFont, QPen, QPainter from PyQt5.QtWidgets import QSplashScreen from UM.Resources import Resources @@ -22,8 +21,6 @@ class CuraSplashScreen(QSplashScreen): self._current_message = "" - self._loading_image = QImage(Resources.getPath(Resources.Images, "loading.png")) - self._loading_image = self._loading_image.scaled(30, 30, Qt.KeepAspectRatio) self._loading_image_rotation_angle = 0 self._to_stop = False @@ -46,6 +43,8 @@ class CuraSplashScreen(QSplashScreen): painter.save() painter.setPen(QColor(255, 255, 255, 255)) + painter.setRenderHint(QPainter.Antialiasing) + painter.setRenderHint(QPainter.Antialiasing, True) version = Application.getInstance().getVersion().split("-") buildtype = Application.getInstance().getBuildType() @@ -56,25 +55,30 @@ class CuraSplashScreen(QSplashScreen): font = QFont() # Using system-default font here font.setPointSize(34) painter.setFont(font) - painter.drawText(275, 87, 330 * self._scale, 230 * self._scale, Qt.AlignLeft | Qt.AlignBottom, version[0]) + painter.drawText(300, 110, 330 * self._scale, 230 * self._scale, Qt.AlignLeft | Qt.AlignTop, version[0]) if len(version) > 1: font.setPointSize(12) painter.setFont(font) - painter.drawText(320, 82, 330 * self._scale, 255 * self._scale, Qt.AlignLeft | Qt.AlignBottom, version[1]) + painter.setPen(QColor(200, 200, 200, 255)) + painter.drawText(343, 160, 330 * self._scale, 255 * self._scale, Qt.AlignLeft | Qt.AlignTop, version[1]) + painter.setPen(QColor(255, 255, 255, 255)) # draw the loading image pen = QPen() - pen.setWidth(4 * self._scale) + pen.setWidth(6 * self._scale) pen.setColor(QColor(255, 255, 255, 255)) painter.setPen(pen) - painter.drawArc(130, 380, 32 * self._scale, 32 * self._scale, self._loading_image_rotation_angle * 16, 300 * 16) + #painter.drawArc(100, 350, 32 * self._scale, 32 * self._scale, self._loading_image_rotation_angle * 16, 300 * 16) + painter.drawArc(60, 350, 32 * self._scale, 32 * self._scale, self._loading_image_rotation_angle * 16, 300 * 16) # draw message text if self._current_message: font = QFont() # Using system-default font here font.setPointSize(16) painter.setFont(font) - painter.drawText(180, 243, 330 * self._scale, 230 * self._scale, Qt.AlignLeft | Qt.AlignBottom, + #painter.drawText(150, 328, 316, 64, + painter.drawText(100, 328, 260, 64, + Qt.AlignLeft | Qt.AlignVCenter | Qt.TextWordWrap, self._current_message) painter.restore() @@ -86,7 +90,6 @@ class CuraSplashScreen(QSplashScreen): self._current_message = message self.messageChanged.emit(message) - self.repaint() def close(self): # set stop flags diff --git a/resources/images/cura.png b/resources/images/cura.png index f3aacf32a768942f8243d620391c3a7a788de0b5..e3d069e8da73e01a561a5dbad46f5bdee9189763 100644 GIT binary patch literal 56143 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 diff --git a/resources/images/loading.png b/resources/images/loading.png deleted file mode 100644 index c9a0151b28da8e1846ff465b13f93ce092ec0457..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3585 zcmW+(2{=^k`<_ru){$+rU|M7}SwfaFKEo6vX(oKuEE8euW5}+IU8qF%CF?LF%ix=+ zkWn<0WhRj|CTm%<#sB>N=Q{6suXE0G&h^~yd7k^ePr~h6H-z|4@Pj}gA!8#$959pq zH^4`Lqc0z=1(^7VC}VRlu!Vu|#RKQZe2uJ$Kz#83#vv>tLEI{`#T7#r%FKgeCm8x9=NIv!g~EO*mBT^>5-csF89 zp1a;@w^@?+-bUf69Ej(I0M@;0<;BOGM* zGC`pI@OkWF5?xZUl&94E>wz=drlD&g@NNC~aXMRh{~GE81a%Hp;*v~H#~p$-7__F= zK4gE>Gt-Uds4yYD!Nuu`>9~hi_x56@tPvFxaXCzT2 zxbEMB)4}{O!&oP)7$>W<EAOx}74kb)!DM{m(D!cmEvT{TC zK%mc!UZd))>IKHcAYNM>?t&;yJ_fs-SPbm*gLs{pn=!d-CGOc-?Cg9u!RTmJOTSY! zW(v#h84hrl=3!6o@nf; z))~5v$*HcYvR-9ZOx3Cu7+RefKL-B+dp$kZqm|NgcGP<>i$a%ovEDCBXK0;uQ>doD zqELcI8jZ2yv>3)wfm&$!%3b^V12NxstFFQB>JMJ)Qli+yQ|Xyv%e2z5AH|3s@ew zggDx7JT*w=h{O=oAfspIyK18%6pw~Wkkc9uh(Q%Sy*5blz5^Y7T2zH)cc3g20kY>MV!dS0H~b zac3kKyQvLo#9fDXW|w6>o|KM;WN(MPhTEs6NM?kedj6=P26JM@f7@N*q787TpNP9{l2n0c6zrT$OsUUbz=RD~Cbr!;sbP6S>=#&6f z{5cvsY5-Pt{xAITSjgWD?sikrm>GwpZ(*Ss_hwlRJJR@Ao4Z}48JwbSDqDxJ74)ML z&j@yeAPXXal7rE@wEINpjejI92&PwZSaBV38yBrJ!c(WWJgK%0DohU`&M8@F)d=3R z8qE&z`87UPoZ+&a^NZbSBd~hyAVfI$8lD%X4rCGM^z-iwon2gq_>+G-G+|Jk+9T*mDkB8B+$--S2o*bu%oF4gCk0r#_+gbb!%i;nB{ozng|={&vi z%zz!VIn40K^s5_S(v5Dzw-4mVSNe!t2`bQs+9q34SZ!|Bf+^^0#I8IcC^GP40Ieoc z>D}tH3bsv2dZL|Al&Yl@R9Ny(i)0;wm=8w9e}%3+OVRsV>NWDdD^$E|rF(8|k)Wu}m{O=^&YkJ z19Wb z0w*Sla!aey!b>^jZk6W^KdhO9pgy>lF-Co-RP4gQVA#^NJ8j1V9*@qG>%}oQAK)<+Mt>rHcnNtLynW~17UPEjDhsabs0qs^sChB;V|W~g5<5b~@{N;f4Z9&K!+GE+FV_igUF1(ic6*~&ULXC|9zXY*pWoto{UFcp zpPy?9tG_iGijnfP8D80fj4c?2ASzsH{v+E}XGJaC>2mq$&S~5Yz4!lsNirs{{?(@@ zTq4=aj?w@H-3ffDH`=PldL;+WO)1kfRZEyR9#F4bK!h{8i#hv5hh)`zA&m??HO6#6 zi`D<;a&J#D3M_>GGzYe~uoz>B(Vnwhr$;ZOs4@!}!I7%Ic7)FWSvCmD-Wo4|w@nPa zRpVeN^r(=e8)U;FscN6ypjT*qmc7C99mWL zyz#2D^ccsGdJSj)JEV0VTsAu4kcK+~i1I8^2o)bjwc4zz|5(2E45v6+9y6p-lwQ2B z@vSm+1>dh8Zjt#fdV~6FtkG-J<{+JbBCr4*zA*k>AHpYrUmW`WF-P-5o#!O6oeGd7 zLCO;I5m2fN<9u6ht}<7t1)+D$$!QTwMJ*y6L^b5h3FlazS6=@z`i||ldW(1Y&1J9F zy#yYtL+IHJNavQh*A01)G|7eO{ek08H$%q}eZ-nFBFK~IV_Eh5&*gyS_3&FhRTReQ zsZ+|R51(A?TSGgRE-5mtcCX~|I@+p)07ha3S5Rlt_5XTb4#R(P&yLV5!S(3(Jn|X% z?=%x?moWp_h_y-G?L=+vTt`R8+pupG-Sa8a8%3qgBAZvs+!^MW!v=!6#C(9!5j}4l z{L#2laVlj#@MpR;rqXC&-SO>qon`|_yg&I|W;P3SymC&~km(sna-$|d&OF62F_piq z#+1ov`7GBzyshPvhKC(@ivX;zYx6Zz=hS3vQSowQBTS`E$$S|u(Susa&Q>h7Ql9#v zYk&1(&^wvsjzs=|YvSR7XZe z4(#g$e2o-Jm%@+-ghi!{mmCxdJXfr+@0~4Qv#>LpJym%X&|l-HL$x+xveb7Lr@CCk z(Io4PHGZsbU?Q5*AHvLXUZrP+X5t!D-1IPYD25@<$d*qAXzOg zoEx^8|GpDibN8_8)`z>iEk_Csw9J|1Si_}TZg`p{Qb`9S*{fud4W4GpFo;ZhxYIb;|{ zxU~4U`UvbEj0{jT1U2GM0mD)8XUGBE<`S9qgF`z~Uu?>LD5(R#YanCvEkhd0@zMVQ Dgh1n@ From 9683dcae729de449f5cde838d14dce53bbb1ec2d Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Thu, 14 Sep 2017 11:44:09 +0200 Subject: [PATCH 29/46] Remose useless code CURA-4215 --- cura/CuraSplashScreen.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/cura/CuraSplashScreen.py b/cura/CuraSplashScreen.py index 7e25855655..f6c004dc7a 100644 --- a/cura/CuraSplashScreen.py +++ b/cura/CuraSplashScreen.py @@ -68,7 +68,6 @@ class CuraSplashScreen(QSplashScreen): pen.setWidth(6 * self._scale) pen.setColor(QColor(255, 255, 255, 255)) painter.setPen(pen) - #painter.drawArc(100, 350, 32 * self._scale, 32 * self._scale, self._loading_image_rotation_angle * 16, 300 * 16) painter.drawArc(60, 350, 32 * self._scale, 32 * self._scale, self._loading_image_rotation_angle * 16, 300 * 16) # draw message text @@ -76,7 +75,6 @@ class CuraSplashScreen(QSplashScreen): font = QFont() # Using system-default font here font.setPointSize(16) painter.setFont(font) - #painter.drawText(150, 328, 316, 64, painter.drawText(100, 328, 260, 64, Qt.AlignLeft | Qt.AlignVCenter | Qt.TextWordWrap, self._current_message) From d14ac9e258690ea6d26ddb0c4e8967649477e5b6 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Thu, 14 Sep 2017 12:08:27 +0200 Subject: [PATCH 30/46] Fix text overlapping problem for adhesion in recommended mode CURA-4322 --- resources/qml/SidebarSimple.qml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/resources/qml/SidebarSimple.qml b/resources/qml/SidebarSimple.qml index 276eacef29..4e68dfcbc0 100644 --- a/resources/qml/SidebarSimple.qml +++ b/resources/qml/SidebarSimple.qml @@ -766,6 +766,8 @@ Item visible: adhesionCheckBox.visible anchors.left: parent.left anchors.leftMargin: UM.Theme.getSize("sidebar_margin").width + anchors.right: infillCellLeft.right + anchors.rightMargin: UM.Theme.getSize("sidebar_margin").width anchors.verticalCenter: adhesionCheckBox.verticalCenter text: catalog.i18nc("@label", "Build Plate Adhesion"); font: UM.Theme.getFont("default"); From 3073fcf6f7c8631d857e50a07120a0e52ed5e3f7 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Thu, 14 Sep 2017 12:43:07 +0200 Subject: [PATCH 31/46] CURA-4318 add white icon for unknown printer status in dark theme --- .../themes/cura-dark/icons/tab_status_unknown.svg | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 resources/themes/cura-dark/icons/tab_status_unknown.svg diff --git a/resources/themes/cura-dark/icons/tab_status_unknown.svg b/resources/themes/cura-dark/icons/tab_status_unknown.svg new file mode 100644 index 0000000000..249ae55554 --- /dev/null +++ b/resources/themes/cura-dark/icons/tab_status_unknown.svg @@ -0,0 +1,15 @@ + + + + Unknown + Created with Sketch. + + + + + + + + + + \ No newline at end of file From 3812a478cf43196c0d99c2e5dc327040067cc16f Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Thu, 14 Sep 2017 12:50:53 +0200 Subject: [PATCH 32/46] Only use lowercase for string comparison CURA-4224 --- plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py b/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py index 352d32c0fb..108cfa4c0d 100644 --- a/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py +++ b/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py @@ -44,8 +44,8 @@ class FirmwareUpdateCheckerJob(Job): reader = codecs.getreader("utf-8") # get machine name from the definition container - machine_name = self._container.definition.getName().lower() - machine_name_parts = machine_name.split(" ") + machine_name = self._container.definition.getName() + machine_name_parts = machine_name.lower().split(" ") # If it is not None, then we compare between the checked_version and the current_version # Now we just do that if the active printer is Ultimaker 3 or Ultimaker 3 Extended or any From 17986aa4adbfce1f356ffb54fa80dc038da17afe Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Thu, 14 Sep 2017 13:04:29 +0200 Subject: [PATCH 33/46] CURA-4318 add border to toolbar buttons in dark theme, outline fix for unknown printer status icon in dark theme --- resources/themes/cura-dark/icons/tab_status_unknown.svg | 2 +- resources/themes/cura-dark/theme.json | 2 ++ resources/themes/cura-light/icons/tab_status_unknown.svg | 2 +- resources/themes/cura-light/theme.json | 4 +++- 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/resources/themes/cura-dark/icons/tab_status_unknown.svg b/resources/themes/cura-dark/icons/tab_status_unknown.svg index 249ae55554..94dc47c018 100644 --- a/resources/themes/cura-dark/icons/tab_status_unknown.svg +++ b/resources/themes/cura-dark/icons/tab_status_unknown.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/resources/themes/cura-dark/theme.json b/resources/themes/cura-dark/theme.json index 906a5c280e..5c77f5144d 100644 --- a/resources/themes/cura-dark/theme.json +++ b/resources/themes/cura-dark/theme.json @@ -141,6 +141,8 @@ "tool_panel_background": [39, 44, 48, 255], + "tool_button_border": [255, 255, 255, 38], + "status_offline": [0, 0, 0, 255], "status_ready": [0, 205, 0, 255], "status_busy": [12, 169, 227, 255], diff --git a/resources/themes/cura-light/icons/tab_status_unknown.svg b/resources/themes/cura-light/icons/tab_status_unknown.svg index f195ae238a..a6aea3be84 100644 --- a/resources/themes/cura-light/icons/tab_status_unknown.svg +++ b/resources/themes/cura-light/icons/tab_status_unknown.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 1271dfbe71..fb6e43d0be 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -221,7 +221,7 @@ "tooltip": [68, 192, 255, 255], "tooltip_text": [255, 255, 255, 255], - "tool_button_border": [39, 44, 48, 255], + "tool_button_border": [255, 255, 255, 0], "message_background": [255, 255, 255, 255], "message_shadow": [0, 0, 0, 120], @@ -338,6 +338,8 @@ "button_tooltip": [1.0, 1.3], "button_tooltip_arrow": [0.25, 0.25], + "tool_button_border": [1.0, 0], + "progressbar": [26.0, 0.4], "progressbar_radius": [0, 0], "progressbar_control": [8.0, 0.4], From 159c79ab4bd909b65e5faec8fba7b2383a77e540 Mon Sep 17 00:00:00 2001 From: Mark Date: Thu, 14 Sep 2017 13:17:35 +0200 Subject: [PATCH 34/46] Tweaked the margins to align better CURA-4182 --- resources/qml/SidebarSimple.qml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/resources/qml/SidebarSimple.qml b/resources/qml/SidebarSimple.qml index 4e68dfcbc0..20d92885d7 100644 --- a/resources/qml/SidebarSimple.qml +++ b/resources/qml/SidebarSimple.qml @@ -44,7 +44,7 @@ Item { id: resolutionLabel anchors.top: resolutionSlider.top - anchors.topMargin: UM.Theme.getSize("default_margin").height / 4 + anchors.topMargin: UM.Theme.getSize("default_margin").height * 1.2 anchors.left: parent.left anchors.leftMargin: UM.Theme.getSize("sidebar_margin").width width: UM.Theme.getSize("sidebar").width * .45 - UM.Theme.getSize("sidebar_margin").width @@ -57,9 +57,10 @@ Item Text { id: speedLabel - anchors.bottom: resolutionSlider.bottom + anchors.top: resolutionLabel.bottom anchors.left: parent.left anchors.leftMargin: UM.Theme.getSize("sidebar_margin").width + anchors.topMargin: UM.Theme.getSize("default_margin").height * 1.5 text: catalog.i18nc("@label", "Print Speed") font: UM.Theme.getFont("default") @@ -94,7 +95,7 @@ Item { id: resolutionSlider anchors.top: parent.top - anchors.topMargin: UM.Theme.getSize("default_margin").height / 2 + anchors.left: infillCellRight.left anchors.right: infillCellRight.right width: UM.Theme.getSize("sidebar").width * .55 From 46cd712367a674fc05b6fda2ae7800a50fc9a9d7 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Thu, 14 Sep 2017 13:37:20 +0200 Subject: [PATCH 35/46] back to rectangle --- resources/qml/SidebarSimple.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/SidebarSimple.qml b/resources/qml/SidebarSimple.qml index cf54d645fd..20d92885d7 100644 --- a/resources/qml/SidebarSimple.qml +++ b/resources/qml/SidebarSimple.qml @@ -31,7 +31,7 @@ Item style: UM.Theme.styles.scrollview flickableItem.flickableDirection: Flickable.VerticalFlick - Item + Rectangle { width: childrenRect.width height: childrenRect.height From 027cd2c695b69c5eaf3539a3b52e996677b15a85 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Thu, 14 Sep 2017 13:54:52 +0200 Subject: [PATCH 36/46] CURA-4182 update settings weights for cartesio printer to get correct order in slider --- .../quality/cartesio/cartesio_global_Coarse_Quality.inst.cfg | 2 +- .../cartesio/cartesio_global_Extra_Coarse_Quality.inst.cfg | 2 +- .../quality/cartesio/cartesio_global_High_Quality.inst.cfg | 2 +- .../quality/cartesio/pla/cartesio_0.25_pla_normal.inst.cfg | 2 +- resources/quality/cartesio/pla/cartesio_0.4_pla_normal.inst.cfg | 2 +- resources/quality/cartesio/pla/cartesio_0.8_pla_coarse.inst.cfg | 2 +- .../quality/cartesio/pla/cartesio_0.8_pla_extra_coarse.inst.cfg | 2 +- resources/quality/cartesio/pla/cartesio_0.8_pla_normal.inst.cfg | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/resources/quality/cartesio/cartesio_global_Coarse_Quality.inst.cfg b/resources/quality/cartesio/cartesio_global_Coarse_Quality.inst.cfg index 30c03d26b5..29c99bda49 100644 --- a/resources/quality/cartesio/cartesio_global_Coarse_Quality.inst.cfg +++ b/resources/quality/cartesio/cartesio_global_Coarse_Quality.inst.cfg @@ -7,7 +7,7 @@ definition = cartesio type = quality quality_type = coarse global_quality = True -weight = 0 +weight = -3 setting_version = 3 [values] diff --git a/resources/quality/cartesio/cartesio_global_Extra_Coarse_Quality.inst.cfg b/resources/quality/cartesio/cartesio_global_Extra_Coarse_Quality.inst.cfg index 2decd9dad3..e5cb9712d2 100644 --- a/resources/quality/cartesio/cartesio_global_Extra_Coarse_Quality.inst.cfg +++ b/resources/quality/cartesio/cartesio_global_Extra_Coarse_Quality.inst.cfg @@ -7,7 +7,7 @@ definition = cartesio type = quality quality_type = extra coarse global_quality = True -weight = 0 +weight = -4 setting_version = 3 [values] diff --git a/resources/quality/cartesio/cartesio_global_High_Quality.inst.cfg b/resources/quality/cartesio/cartesio_global_High_Quality.inst.cfg index e05392c6fa..16570b97bf 100644 --- a/resources/quality/cartesio/cartesio_global_High_Quality.inst.cfg +++ b/resources/quality/cartesio/cartesio_global_High_Quality.inst.cfg @@ -7,7 +7,7 @@ definition = cartesio type = quality quality_type = high global_quality = True -weight = 0 +weight = 1 setting_version = 3 [values] diff --git a/resources/quality/cartesio/pla/cartesio_0.25_pla_normal.inst.cfg b/resources/quality/cartesio/pla/cartesio_0.25_pla_normal.inst.cfg index e87d956a87..359ca15f96 100644 --- a/resources/quality/cartesio/pla/cartesio_0.25_pla_normal.inst.cfg +++ b/resources/quality/cartesio/pla/cartesio_0.25_pla_normal.inst.cfg @@ -7,7 +7,7 @@ definition = cartesio type = quality quality_type = normal material = generic_pla_175_cartesio_0.25_mm -weight = 2 +weight = 0 setting_version = 3 [values] diff --git a/resources/quality/cartesio/pla/cartesio_0.4_pla_normal.inst.cfg b/resources/quality/cartesio/pla/cartesio_0.4_pla_normal.inst.cfg index b99d030c27..fef8bb53d3 100644 --- a/resources/quality/cartesio/pla/cartesio_0.4_pla_normal.inst.cfg +++ b/resources/quality/cartesio/pla/cartesio_0.4_pla_normal.inst.cfg @@ -7,7 +7,7 @@ definition = cartesio type = quality quality_type = normal material = generic_pla_175_cartesio_0.4_mm -weight = 2 +weight = 0 setting_version = 3 [values] diff --git a/resources/quality/cartesio/pla/cartesio_0.8_pla_coarse.inst.cfg b/resources/quality/cartesio/pla/cartesio_0.8_pla_coarse.inst.cfg index 6835150283..06cd974d26 100644 --- a/resources/quality/cartesio/pla/cartesio_0.8_pla_coarse.inst.cfg +++ b/resources/quality/cartesio/pla/cartesio_0.8_pla_coarse.inst.cfg @@ -7,7 +7,7 @@ definition = cartesio type = quality quality_type = coarse material = generic_pla_175_cartesio_0.8_mm -weight = 3 +weight = -3 setting_version = 3 [values] diff --git a/resources/quality/cartesio/pla/cartesio_0.8_pla_extra_coarse.inst.cfg b/resources/quality/cartesio/pla/cartesio_0.8_pla_extra_coarse.inst.cfg index 6b4a87d9ec..d161befcc1 100644 --- a/resources/quality/cartesio/pla/cartesio_0.8_pla_extra_coarse.inst.cfg +++ b/resources/quality/cartesio/pla/cartesio_0.8_pla_extra_coarse.inst.cfg @@ -7,7 +7,7 @@ definition = cartesio type = quality quality_type = extra coarse material = generic_pla_175_cartesio_0.8_mm -weight = 4 +weight = -4 setting_version = 3 [values] diff --git a/resources/quality/cartesio/pla/cartesio_0.8_pla_normal.inst.cfg b/resources/quality/cartesio/pla/cartesio_0.8_pla_normal.inst.cfg index 1e3b82dfb8..6075c2651f 100644 --- a/resources/quality/cartesio/pla/cartesio_0.8_pla_normal.inst.cfg +++ b/resources/quality/cartesio/pla/cartesio_0.8_pla_normal.inst.cfg @@ -7,7 +7,7 @@ definition = cartesio type = quality quality_type = normal material = generic_pla_175_cartesio_0.8_mm -weight = 2 +weight = 0 setting_version = 3 [values] From fe004a733ce57d15be5269c220c9b03e2b3bdb17 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Thu, 14 Sep 2017 13:56:54 +0200 Subject: [PATCH 37/46] CURA-4318 fix settings weights for abax printers --- resources/quality/abax_pri3/apri3_pla_fast.inst.cfg | 2 +- resources/quality/abax_pri5/apri5_pla_fast.inst.cfg | 2 +- resources/quality/abax_titan/atitan_pla_fast.inst.cfg | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/resources/quality/abax_pri3/apri3_pla_fast.inst.cfg b/resources/quality/abax_pri3/apri3_pla_fast.inst.cfg index d0c09692db..6be4578649 100644 --- a/resources/quality/abax_pri3/apri3_pla_fast.inst.cfg +++ b/resources/quality/abax_pri3/apri3_pla_fast.inst.cfg @@ -6,7 +6,7 @@ definition = abax_pri3 [metadata] type = quality material = generic_pla -weight = 0 +weight = -1 quality_type = normal setting_version = 3 diff --git a/resources/quality/abax_pri5/apri5_pla_fast.inst.cfg b/resources/quality/abax_pri5/apri5_pla_fast.inst.cfg index 1484dd33b0..140a59db3b 100644 --- a/resources/quality/abax_pri5/apri5_pla_fast.inst.cfg +++ b/resources/quality/abax_pri5/apri5_pla_fast.inst.cfg @@ -6,7 +6,7 @@ definition = abax_pri5 [metadata] type = quality material = generic_pla -weight = 0 +weight = -1 quality_type = normal setting_version = 3 diff --git a/resources/quality/abax_titan/atitan_pla_fast.inst.cfg b/resources/quality/abax_titan/atitan_pla_fast.inst.cfg index abd58cadb8..b8d8f019cd 100644 --- a/resources/quality/abax_titan/atitan_pla_fast.inst.cfg +++ b/resources/quality/abax_titan/atitan_pla_fast.inst.cfg @@ -6,7 +6,7 @@ definition = abax_titan [metadata] type = quality material = generic_pla -weight = 0 +weight = -1 quality_type = normal setting_version = 3 From b9b273b1aa53cd2315126212d8f045e402f5cdff Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Thu, 14 Sep 2017 14:51:12 +0200 Subject: [PATCH 38/46] Update splash window CURA-4215 --- cura/CuraSplashScreen.py | 17 ++++++++++------- resources/images/cura.png | Bin 56143 -> 29732 bytes 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/cura/CuraSplashScreen.py b/cura/CuraSplashScreen.py index f6c004dc7a..4e4b2ba3a3 100644 --- a/cura/CuraSplashScreen.py +++ b/cura/CuraSplashScreen.py @@ -53,29 +53,32 @@ class CuraSplashScreen(QSplashScreen): # draw version text font = QFont() # Using system-default font here - font.setPointSize(34) + font.setPointSize(28) painter.setFont(font) - painter.drawText(300, 110, 330 * self._scale, 230 * self._scale, Qt.AlignLeft | Qt.AlignTop, version[0]) + painter.drawText(220, 66, 330 * self._scale, 230 * self._scale, Qt.AlignLeft | Qt.AlignTop, version[0]) if len(version) > 1: font.setPointSize(12) painter.setFont(font) painter.setPen(QColor(200, 200, 200, 255)) - painter.drawText(343, 160, 330 * self._scale, 255 * self._scale, Qt.AlignLeft | Qt.AlignTop, version[1]) + painter.drawText(252, 105, 330 * self._scale, 255 * self._scale, Qt.AlignLeft | Qt.AlignTop, version[1]) painter.setPen(QColor(255, 255, 255, 255)) # draw the loading image pen = QPen() pen.setWidth(6 * self._scale) - pen.setColor(QColor(255, 255, 255, 255)) + pen.setColor(QColor(32, 166, 219, 255)) painter.setPen(pen) - painter.drawArc(60, 350, 32 * self._scale, 32 * self._scale, self._loading_image_rotation_angle * 16, 300 * 16) + painter.drawArc(60, 150, 32 * self._scale, 32 * self._scale, self._loading_image_rotation_angle * 16, 300 * 16) # draw message text if self._current_message: font = QFont() # Using system-default font here - font.setPointSize(16) + font.setPointSize(10) + pen = QPen() + pen.setColor(QColor(255, 255, 255, 255)) + painter.setPen(pen) painter.setFont(font) - painter.drawText(100, 328, 260, 64, + painter.drawText(100, 128, 170, 64, Qt.AlignLeft | Qt.AlignVCenter | Qt.TextWordWrap, self._current_message) diff --git a/resources/images/cura.png b/resources/images/cura.png index e3d069e8da73e01a561a5dbad46f5bdee9189763..9657cf61afc0a6adf3adad72d747f728526eeba9 100644 GIT binary patch literal 29732 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Ν}l#BCK>k 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
{OF>glPsHLr6Cgv>rLrHdn0nwlPl``=)t zv2{k*)Tp;jbY&+3<>X6UcJF?LoanyMFUdm5DCLiXUu=rMZW?9rC}a(xbme^L^~PJ7 zB$WBopda#7Q8;&G)VB6^7e+VhC_n6;NJapoLGjWB*6XGZGiDpD(d4t5*@n zazWWyYSA5ORsEho?oP!IYtY7!f>FTueEQO*#bHY?w?`da8_??t3zrm{9Zyfs0rOWI zZFo~vH7AHkGp}@=7F9lvoRA2A+3ITx{cJf#X;trQK7D#NNuyp-T3SycAnfzg{@xT- zC9O{;O2=)t0OY=!tc@E>bHDugxv5EsI3}a!YUdt*qz@lH{EC6D`=+*=rhAf7Dq^(O znajh6IR;g67W)s0SoLF%Esn(KnJ~tpbXuml&9F>%nNYMTzH#d;rmbmE4P#NDeEhfs zq*+=)VZKLL+vALk8ndKr_e>-TYOAie)cBjpfeW7^P2or+Yf(h{!-sAy6UxiVL;&f% z>LtV~+Wv$!7;CJ>Bb_pM-A~M!CPMx*>^rV8V_E$-b#<9E(_0cO4S7&_T6%uBe${BW zx0+WHl=lcy^ixZISmIk8ab_u>ANKyzf1K&{ne9JpRyMEh!@y$Q@iX8_{#J>Q=eA*} z8uzMfpyc?xIn%CM=2Cg_D~;;p!I(XI{P>s^-`%ySY}MyC1fA;Qfr!ST-B?k}{*U5c zcDrsm{dN2#!$=iej4d!%HNS8SxW|tBr7_lNK_&5<6(XXeGoo&$zA9SWsA<`LZyJiC zG&-}c3+XZ0C&66u>Vgcf5l96Ag2KuUit_0IQ$~$CbTcBtA-@Gn$SbnrMhm3+y2;prmoMvobudK7E)ATrIALew>TweB zH4~V;cc#npKq&yRFm;gTba^T?ya87owU%##v9~`J-?iE!jccg3+Q>-*D?%0PAK@RF$#-haoYfu-ycGVMpODwJ^~VpFDYP8~%4wE2i&sd5dQxHF zz-*$g4r-{Y_hNTm4@?AFJE|AN+`03@RpWJUNa_Gmy`(^2$20n}K1!iX z-PU{gmZ+nryBtYLH4J^oWn#sDS>yPzXIlOHO(3Q%LMVr^fL-;*biU41_x9w^ARSSX zwb+2;va%L*mjt=}bV%ZFixNUd)7%B9^A`5mG_vTOyqPPMbsXea&Qdh9V@8kO;hWeD zCs)n3?;ROAb{Yg^%QN@(+npt7U}pF~SbK%K?o1F`FUdKr4ZeFZ_?EF79kTc~e5h-+ z4Cus=#=`Kv_c!K`==QAHr7^zvj0C1GiyBii?`o58?L?QLaCYQ7VPS`XHN5^vU;Dtb zTQ3P3Ap7<@_xAY%`}fcI$&~{Bi{hY}Bhy7*r0Nl-^o{y|2u0gZ5)cxy+K|}Ww|@yp zQz3?Vd_VnLn~KJ+oIQI#NxfN%G*YffJRmxrSnX+?Y`1UUjK8~Ho-$_U%peN_W!Iyu zO{lHxAz^5aKQTo2tc^Jus|!N&)ylOiUA!_fCML`@${(GJx8!r4?x*YQFbhph&whrW zA4gWOISHJIup+<>GT7%ttP5^=Jp=<;DD6X8LaOH?uldk72=Yp)@q0hGbD$F*NC6OTO>+wDPSHZ~(E!m%t$#|BLB zY-_9Ni23~G%LqbRp5lm{inHU(ixo?=J6+*=(xCOi3#TUHL=I-p_PLqTa^c~G@+OOn zP4N?lOjZzhXamG@D>=K_P={|D8eEGr)m2rK-aG0BTAN6^&Gu07W}_2N4k-ur)mf)5 z0)tgik#%;VUo!pdy<9**WNFCEhK~ zUWw>|^l$?5fb%TM;+zb5xC@C|aB}j+X)&4L*_)^a!w4u{>=9N`TvX)G#Ib`(U3vQS zi=8|W$06tMlMoUzqVDfH*P#f6<=ehCq=S4MYfI~Bo7Ki)NkW^O#g!|SPbr0=h)qsj zlf3<{=ZdctJlUHK4SQV<2pF^5)%CZ1W;#1CQ(xq(9X<^`0UmaJ-RG0x>FwQ%N?Hg) zHxjYNwv=!3m*96U;qMnbmIO>ICn_@Xp7YSescH4c8j;_=M4BQsC9u!*XCp_A%CK6# zd^Ui@I_&{}tT#0D)cmFAlgfSg;6a^jYRl!`p4+u< zK-fwX-RCcUPdRUde+tkRpX{wJf&g#SE1cst=1>5GyW*TW(GM7|#&c2EgNNm6yC=d7 z0GJztp$=(GkquuH)X}lK%yjT92)QCE_XmdS+RS4EtCF4Gy?-CU9dVf#u2`4Q8&q{H^MXI=PmXB9gkIo24YposJCcAXHQh@X3NeKC6_lb7| z6%MQozL3MRwWK#$uK5+#Tjlvbxt@t^YhzV!p1(ezircz z_l)ZR)0&B`!AE>YGgDJtnCbix#)tfG_x`yu5sQ-2uW&?mbk$ zRoZy%`t=2>e%aHCS|VrM`_-rD{;qBIh`zCZHdg}|8ON+iD(EaMo$-!vJ3GK@3sAJp z3pJKugDVVQ+AKOy*@S>QuFdvsA_KlJV*^Dh+Ef`wwd3Vk?x`WHoF9BNQdK&r-xqg% zg9orf;`af(?dr>vJ&EPE6Y~Z4Ncu>o9fK($S7*C7tPxi!9q3e?F^QITZ~<@TjeM7I5Dcna!b-m zf~@wOGYZpPtp=F#fB?992Ehj0b4wWLT=`(ZMVlhX_CZz9bkqHJRPOsH&B?d3WOCxL zYG37+k>e0C32|g=HG|>&Wq1ZSl#?|TIEEb5)8X6uVmQF2+`miFPhF^MMWdY zmB>hMCY*(n0(0~HJ}@It(5y|v3%xkh$+`9iz#pXg^s$3Te7|L>iHV%w$&>%AWJ2J} z$f<>Rz4`e)mpKDf#E$T zKBELWg8sgM8-dVh6@c6uulpGuU^eSu>{pjfMNxk$6_im)AZ_pg@2njwB0gBjM z8uQHYQJuL@vtc#YYy0*-^PTfF`p?DJ$rb#DC8PaL0pPtl(r55v@m>UAS!%@=?xD+= z-s{tp>F!S`X9J(x2E9sl+rB~TuUaFJ&bM`SM{r!MM{#@5&K#5xH19=m@rs~2{$xHW zfP%vG(hruV6WY9soRY!tAjVo)7HdCBtXcfNww)G#DK+*&=W?F^cHHIN?;@6r`*&~J zZM=*IAl@Wl4#t)?2d=#&HQ?SO%ltKxfro=)-h%IfH|*zbj@4PvmTl+aPmi>L98 zj_>2gj}sC?8a$+q=JQ+RSfTVQsy1 z$Y0_8F8LH~a-4Z$2^BtTSo`N5n-WW7kq3r*K$yIZPJA8Wo3z@u>P=(gabA-kooRTB zCobDIgfFnSwI+a%zCWYDwoC+&*ieSDo<3D3i|cDrT~IpGDR`ne0Dczn?@fazSw5IC z&Lj88D@(8Ptw+kY1`I7&@@Q+~)o7QcUU?5}C&mKU0`7W;EKmt$l%zB(lNREJt4?eU z*RNk6j@0=Y&;Ah=Z{Q>FINHyTN*|4SCVqmt1P1)|Ly0W%T4(O8GFDY2th_+w-o4X6 zh0^+>^AYm=J52w8+xN}`*lL0I&zw1P$7L%vzB4tyNLVOZUNqiZMMs zuVzU{+_<4EL58T0WEXDELeRlrW?ZrDOj?zzCim^rCzO!k(QK?nC>K^Yrp?G{vrsqb z)KRf;(8kEkT!LIO=yy73wtljbpz7ASntv2}^qzs-r;#V7k08#lKWgfi>pJai2n~=E zPsxzpqyGfJ8`;4Z+~RxeM1>Y{xKbrp_@qettPEnPA`ppe~bj+{Zg^E8aVr|4ME znUrDLgRfod3IPlj7#k~toc1%hJN^6j2W|XP5igne#{tnAcsjAF&+*ah>~ClwiW~SJ zJR$LD=NTwvByh=(e>0#llyz$?C)`|rScVLen5)V zQg!*>FdZA7+G|BeMP2pPE)?V0pR>2$`Ca=$^Q>J{;S<%Asf|x(!$MZkwh(a{@VBIt z>R+emfG_<# zP8z8{LiUmjV@iYUyjW?J-ikpX`5Uh#8umW(<9CQ@lmTVZ!p<&KQG#OPD1Rc9FXeZg zMsk`C=5Kt2Z!9bK+adQ}HV$ULzV6=VbGHEd*idL4s{RA`qG4b(gXH86Qei;^`cWsY zxt>@qXCT-^?nv4KHM@XbZ^ZF|ofs+F1YO)tM19`AHYC$&6)zWh2Z^gKoC6}YYb9jd zCV=uW=o`)O7e9?d|47j9pka(2pQoSL_1ZOa;>PF0TfD{uodmb`f;w=J$^OY`qe@2y zSn$$8vooGPXK-`7KnYkHoM0td#OOgJ(jgQ}s|1)Q_7z7lJfVMU$~-Zw4%tjF`3Mjp z{e3^k9$qKHZ>}Sp9Zr_WZLxGseW;|Uw(6E%KC@vhU&9mi#b4k_ZCoW2$fuB8`*Z;W zP=#x;^x9)ah=gieE&-n#sm-RmH4**nf#k0Ri)txT+sSx6C1yI38EI=e~Oi|#ca9CEJ7_1$m z1Zs+2MM-RWfmqiRtXyU{h0ppOaZ1{=@5~>1tq*%^EaRVOMiXtbuQrM6M zu-(Kfr}7y(6iJgpLI%{SoB_mjmN1@L&a8ZA+^I~A$6OfU@V!3Rhxol;86`&Em;d@ zqb5OOG?7fX5^mFAo}0gV$oCNU7>G@sH%wJCDmws98q%7^3oK? zSB_l_zJDmO5hm|vacW*Hc^5R)2b-J?7qy7Y8)~c`kHrL(Ji>mc zrgn^>55ffk0W=1w%5&~h_%bW(fgJ7XolZw$Vq*64MwkHIIlCex9ljOGz!ir#QX<2S4Q4F%9l{2dz)$TDf%4DpdFvdOSUrn-} z?%+0*pKc;&z=#A|^>RysY5ML=={0f&brrf740jU zN_yysjPmj^NKalu?=fSKoqs`;;cP}`aHRQyrYEg9r0?|4B2yDx)ojJ@r^~m_cW_Wu zA3IjKO(~j~SIvfu`==V9MdLqUXit@lJ}BMXL;6Z%(HIrF8^o_xA1mi=t=#L%qHf!H zNm?Agx>BfeLwGfelqT+3a+s& zV&??S7rX4SqenMtHC~6zGKny`wyh#nO-M)M2X*!dIf^!U9X&Zt#IuVd&23md0g6|C z_EUzX^{gI)87h$0X!;I)BWCvMYTMI5BcyZrpz>AE%buX2L&8=G-ep(r05HQyTucjy zJAcOR$4z-A+VzysxI<1kmNpa56Zen{g%6dpur|v-We8fV7Znwk!G~5wn~F+O!P}$4 zZrm_({(2Z7A|2qdAn^8j<&Wwpm|e~r{d+DTAiQ7K{gQu3V$WiQK8jX97}v9~yJIk> zY(&^xhfDV;J+FF8Z4p3~e@;yZf%G*yTzkj1g;uq%j^D;Q+~Mc%pONU_>)T&+FFAs# zBeHUGWQXiO#U7MbC1z(tJ%Ze3{SMlpIA0i*-#brRZEn7h)o|ati12C})Ccr8o1-Hl zf>9=%%eB97`7)hzjx`OGXY9GSx-^Z6=-yA0J0u1(!=}jS=ukurRxG-VAiNewxbUYx zm%Hr@`Vo8Q&KWD-`*d;g=Ce=N#}21(-Q7{+eZBa-0~@s_iJz@Jms10CyJtQ;en0^C z$QTFDa+|&(esz)EC)1%Kp!`0%9Mv- zZ+xj`3@&&HqS zqQ6&w*`^A@_~;vC%JsURlIOG&1K@|~>LhLdtPns@i%tO=R9E#=f-MFM+leKgK6Z0`7XENy*+9Z{ z#H6&Ka+mwafE)*SkHzvnhhS>AE6$(lD_h!oYkSH_sViMQMkfaGX&vN-chc`^GPY>n zDeoWmn2e9$=`!4mhqf^g4xy!0weiVCMSD3mqR z=Om-3MUDSFsW08fpEq4qIPXNEY%eFj)&z5HXTo3Zb(Yg}*0i^9 zzGmuZPPumN8jqEojgy(_RdXJD$IH)0#ThA-gA~Qnr?lK&4FA05sXDj1aeOX(?$>bS z=jSu9NTVZvLI+1+z7__C6^Lg;fo7mVx#{~snNvE~y{409=c*p#o$5IhY2EXv;Z}$pV zB&QW0YHi6iSGN9mcbj?J;@{RZPc1F2ryLiV_x>3jJv;jSP5r>cA9v<=&Vw3idV2T8 zcCt+C>y>&Ji%_Vu41)_xOMUWfw*75Mk#!yZnj@dT&BSLpKXs`zJUo0S-qLKFSBY`4 z2ix5FH+DZQgO%j8W{c_MPW69@96WATnH>`oBluBkXzzx;y5~v9R_(pLy`MdQ{+;WZ zipdc>J3F?=+vL<~_U*g!$`$cwtey3v&ZokUJ|betXs9hC&1;v%`Q7Om8QXsS{{F_^ zetb<=ONwTZe#VLO9s;jbHYo;X`>c9D%qm$>5;84YSJ7SZQ2WfIeL2yCsZv1=<1kR;MA`RMruXwIR(;v1!^#qb7v==;h1({55Z0 zzh)D49*}-{(&1KGS?WiuP=(9rkAkuZ<+EoqBR4FyKRcUrn_0qxPVmatC;LPkS#6Tt z@5S=f@07`UshjD$o$}=Qb1vgT*8twtsdf_|?W4oSg2l!=u%f9BS5H_ry#MVzH$9y` zIiZ(*;U=4~@EaAysT$tW7A>8H)0BOmPF=hhdvNB!DQXrGw_c?I`?Y4;Ly6W~tGPHh zXs*xv)o#G{SAY5P=&k2G|I6UuJEo6lWb8S%PPa3Ba-cbI;BkTq(jUV>mRLmM%~+0x zLFXGETdnt;qIu7^H7p`8T2vu$T}0w3I=SB`Gb=v@nKJMR2pm?*GPASG{On+Ekgml^ zk9aVeT%GZd5O<$EU0$%2#zVq1x;-~h^|=NM3(JO2$u7fRpYq^w^7S+R4KyB}z*c#B zdzXAD6jg1`_MCUrE_5BSywROA_2<)LU3OMhhGM3|ckcoZ%lltA#?4)$HS!$Ctu8_+ z4j(4&HZJY|=uw+tp=(C*z)J)eAHaKc9|7MMd@WR0Sz}Ol-MDF)DQBc3YUXx)aSH>de7)M?~6z!)Na2HH!}) zKAhVYoUIpfr}+9@gl^mI?=>|KzrL~x`u5@W#+j-9`YdN^Q&hOBNU>`X$`Xq>tja4( zQ}xq3q?V!$@~yQi!rfI4Qm^fJZL5sb_RM`K<4vl>iPf(;W(&68Uk_%Plzu7w+_9OL zm)G(8Yuh7-_mNzN#|gi8_wH`31ZU+y*6Goo&%;HW5@ll47)FFmFJC^R62^DxIElZX zh1c$gIQ1p(+O;cSgP3CAg=4jAC>{AWXX+z_lvC6=-s^=?QB+<^8ihwi@l;k;me5A3 z?Ud1;Qkr!PO)K$Q)EQdi$Ep~&>)SN4luSp?u`Q1tJ=!2;kI&G$d{PICzYD3t(QEJB zn|RuACdNcz#~y{Y_VzdWe@fZTzDU-~w+`my;7IN;-A-x9Fc7wAPE@rpcw;B@COg}W z<dEOk{rG?*N^kOCMC72;~#g3-ss+Rg_f4qO?IlP z-S;3hpWFCv8RS6?&b>VPuN2NFo!uX|!$n6&=X9P$U2^H_N}-GdzhdC{hm8jqUi6&N zDE0PgYHJJOqvuOVh>xe98EW_8*%9vQ>RSH(CRI2ddcNS*dOWez>QY{KPT*=~0Fw&} z7XQ1*b*J9vn%8JmvKyd&lL z@9G`fLZ|*mG|0&pu;oh=pAPKS?kroKL&9)am>%R^@>)k7)4zqPIK-&P?dj^so6hOG zYnPi6l$QpZlT7pq6An@z+10J5r$>`mX2_4FsKCK~SiO3Es;@33Rm%o%bUV{J`4Ir2 z<;>q!&K)~;Od=62B`Amf!zr0Kdh{p>ZM727a8m}$rua?y7b`Xg#|*k&pBr5^TpP)% z_;0jutoB7@)^dx4u@4k>|?Nd^Ix9P=Lg^c0#|GjLcdor#_W{mhf|Qa_U*_vbL@~r>P~R7zXT< z&!Q9!epTMp-qX|b?5LNHj%cX=UIBR&_3d8TqA9&SJ@;krZO<4Vzu=G30uV9r(sS~G z$Io{z7QH@WBO}YTPH$<~tsz;bx`B#;@_ypar-FK^RYNoDMe18OzU5tJN@sg{-0bc< z&#=(h#j#SSFJHcNOfEi;mPXTmf$&7Dd}kCa_!>H; zXJ==93k$CYKVC*F@U^Mg{MLRX= z`ztH6@v4hJP}-ZdPtp8FJ3qcq}U^PZfYux#+aZSWbQPtw%6xx9kg~iA#NtS0cD~BHHBW= z<@(m*#%+{?l9DCy&Sz=XO^*E6~xZn{pSz2Ziaq>hq_s94VRR5YWc5UCHi&LmA_&`!^6+hmK(iu zj_I!rkK4L=bLbypBd~%iCqu=O@CoT_%~#`ZWe!9mK>686)jmBkgvx zu$p9PNAIEEJ4Ug!vojuHip^;cTT974##JNz`2KyqFqy%@K^a%q*KSjNsvo|-oj518 ztYww#w1;wI`e3%{#|^iOGZ$xuK81C3QYt=~0mNH0Ha2pa9nqlN*z>dMY;2=tIk&-U zh9AuMHr-S8Qo^EjspT!@;t4);Ls_MN10=TYogD9yHAP%T6cve+E|5}WVLQMWP&rVS zcIx(q){?5{sqZrCI&O5x1YWwsJQSF3)Bcy@cbUncz%juUKS!_hq4KUB2}eam#kG|8 z2&{nFj@hZHI3D97OTkyWc?^^J1)nNe_1C}b@B0#IFt~53zGii0PRbUL!FGTp7E9=i zGGL`CKtYBVuV)%|$Wr5oj*g~K{OIz7|=14%^i?**5BfDs1l8f4T8tPw& zeB2u$v?bcjA{*KN`MrDh1UAc6lnI}rQ9~7VY)#cpz4puf)1~F2AE`gEuePtK-GOvB z-wX;5KN{vS_qylP0iSf5CGq-?zlyJKV~%(DQ@J;t{&?F|Np9nY6DLlTqh6&6ZX3y? zk=vPgHZt{u>nQ5f!{f6To<>A){wTaw|GR{g#X5i6>+V}W-pJ1vVrgdyrjEHh)$wz$ zv*`X~=X1*~XV?`3`7VFiXMW{MdT)&Ey;}4?nfk9RpE_cTEF2shLVzy#gr@_y7F-9a z+$Q;cpO~w^!0e&N!Cbl#SFR~2DbXrDPT;Xc6SrZ{-@!qvt6yK_uv{D~T`ehVxFk%e zkR5j&{b4okH5}N#*Za<$JKbjvcwKrW;Z+rQgww#l;P#N{wNb;{_PkD5PGAA+Jrk3SLtpLQ8i0uAZWN8(JUl#lxo4<@ zC-gUb&njI>9c#}zp!w~3LS$s5qM7~YRR247)_48>E&aKxxMB01wfJu<^H7Gt8^#R% z$B!TPqZ45mQh0Oa8-LtQpSe+^4_|AYkRRe|N*AUcORfCg+8Xh-qk|UUC8;7+JM9%Y z8ZM%d1AqT2$)7&Wr|r&{_v#gERDVNe-sSqqdpi!aF-6!uW>pN6^m=!((tj`gY)t@@ zurI;PTUCz$6{A}?8XFs%s?{8=#&LhH)5qla_1P=)F4NM~tzT_)Wj1n*?i05A@irE@ zvnYE`yaS(3T2;5jkv9Qfm@lU5m*gHj6|h_)D%kb$Ox-{Ll-~teJFH`^vAPZ&v`}`;Ix@5I}{rYY{dakWso}4hRri+V=^e>*x&80O3 z`uxzzWOG@l2hErE%IJ$1`)=3#d~N$YGxy$Ophl)2rJ+1V{2ddj7t{CuZ1CPCx3lum z{8aUO>G^Nmv^eK^N)Oi8bDlQjATqCM(6gl#1o;Sh+m@);t_+S^&WBO1F=Qh@9t;(o#!m{&4Srw`I2K+ofyI zcoRAcoX-41+1WO`zyk{5V_DheNBhNe2D#*X{&j6Mx_WiInM*fwoI=4qrDb=nKXs!y z=^T?$TWgx`{NxTA(a7y*Uz}7Qba)F;d|}{U{d3{^9`C2tJS4cXug}?exs=UxeZ1F= zvKT*vw13LO<6V^$-MTexnMMYt%e#4v{adH0tLRwjehA^{m4z1b*ZY~Dw`_=BGuYpM zX8pQ#4FG+;KIZ`|EanC8;@~YoVCT7iYj#(+WitxA~EDUBKL)$73~n>Z7pR9 zywlQ~PVcl<>wtda+Z(oh&d%nmEGxTp(y4Fj9MG17c1qK$H*eV4R3qXoe-(+K)8bz7 zSzUbDrngbREaHT%(#**B(AT-ShfpFvk9C%s*bm=1M4@D6W?s5*;b3rNBzI*+g+rpG zfpMBnMl#5y;{fJmXv?-rE-^GGs~<*J5u&A}({R|h{S}Y<>jNw%F5kX zlZzG>iC5<*%_Xrje6L11gZ&1+zu_Gj8d6S3Ox!GXZL~#Kr(2hUj_<;IN+o(|rL$*u z&klc! zIs9Bxb8`jzxv2Y$0f`+)YygUYceE4~s54rvyGX7<@6{vZNyV~ms69(~BjuFNP0%mY z#a8jsJ{f602;;1^_5Xh!dLXoTtwIU7wg>OuOILSxzRbDBryKD5?;px$*FsN0*)p+n;^fGnKNAf9Bxto}SZg?(TcH zb^<=+uyx`MEu6z+_2T4ip+p`>Yx&w|b;Um;!#0>1-|32q_oG;j0hAP=tFdg9*z0ye zcHkP8ru28qB)eXSj_a@d^y%IUiR-TkxY}@gTy>Vb((KbC^SZh^8!cH=1+=p%$f{iU z{h{h*YL>0e)1K4A--4pVu4QV(sENOMA4nBqZu;egNHvPRK)q7|IN|ty(4hQUs*hr9=#Ep8*knS&!bzFY~L>% z$a>7UNH0N+BdY)6P8t52+M~&phYlUm19{0wU+3iLSRNnGx`MVMR^Mnu{nC@bz(ZP# zkBwuKlR4zHJ^m#nC2g6Qm{>v%mdnsFh*|WMk&#ifpK54Od&jx|_i1%s1Qa#+;9F;t z1QrU&2GQMF-m^1s%T{Nt!*p^V(A{xz-^2k3Ho-BPCFxc5-t}TTLN4Le;YF{}JNojL zE@{|Yxl+u6-4!e-MLHxTx-dxey4u=w=gTi8y*h5ia$Mm$rNGA5pdRpVeqJ4W#`f{| z?+>>Z>LnLd4pV1ocP)gw;3%EY76r$#M?Qd2`&ne9Q7`)oQJ23A`}gcnGvs_JRhWx_n*t=3XeskWIB&L-louLwn2TKY!S@-kT0 z0lwOu9(mY3M(l^cUVWw$R~j4)gKdJ$D_Y7$eO8x+edZ^7t?SF$V&%5P)wB%FWIOzk z{}a$l9V5JUgJ|kb&DIh93?2W653e6?esPdGs5zgU8F|fA(UT_`jQRj9{s9)3?%hvE zBO^~f=QzDSGT<%aRg1P2(oYK77P*QeE6Ll^B+g!Qbew$No_Uid6>3)NeWe6`Mm|8Y z`~uD_IwvQmpi*H$!3@sY+FJin`+WU?1Sek_JVbcXxtEOFo<@`$%1=~j-O%DpyZf%G ziqO#(%kcU`Qc|4*D@f2~F*w)zUf;C_<*fS(b%KEv$@~Z+;6Yhgnf_6czMdY2WoG2u zTjuBagg*GOB(l{WpYh_YMl0g)os`mbC137Ob5!F71n^qMA#MRbYbP%nk6osl_O~h^ zMK`({_{BzpUCE!#wzQ^ZPz-E<@?xFwFd^Yc<68%_IF@;S(P#gGb}h*}zeS(A z9qP(G6!9u)%k{Gwj*n)Jno056{G{;+Ld-H2T5pHWs2n4g zmhic)mCCx)0iCgOYwcO6i#fA3_oePsrvst6t>cJtNV1C8mk%FqhMlmDaIAiI^hr?A zVQ5i)7q|Ut%C)Ftj7-@Re&y#o?LE79S28@81=GbKV6l}6++2Bi`BlVV52BBgGgzst zxj6_j(BYB3J{>Dj+i$tO33Z=eTQ##8p{=U2d5!a-g^XDD3OqkrYw+#QhKImDt3^V0 zko`ducoaFo4D^p7*sso4R?SKeZ?h`iB9fYQrGO?U)8=daU-oyAi1uDy2v664las@; zlHr}DQz$C!kWr3y#<;^@geW@oFQw}9!Lv6F>BOkf5R{QuuNQKJLPXv0vITxEGe~SG zS*-;H1zD#R()II|o<~Kk$fQEt$p6P#Bw`2ZC8FInLRWM~J|MABj#_)i22l^Ty?gg| z6V56j&DA92#}7k??(zrLnr5$UWN6lf3EM}pv9NR{Y}5oVaS~0Ii|XYUX|`Gm+`p{H zLjQ&qGgB9D;%jIWD0G`RB;_$Z5W7cPH1knQi~t znPdr!vJg?iDo-bO(&aCm@TJdBWHciuj6+ZvHxnWf#J^MlYg+2+|t;^YS znGQOoo-u6BC+o#!^4E)1#PqZA@}4t9ci0COu$>h5ZQHje;>?>=%f{(v>;`uk|Lv_q zoa@(Y(<`9C_Oi1lDT(#;_V+)`$;tTB`#(6DLX@07^9Y}&dt-o}Ri z0ELnl#;uQEe{3%B{ckTozEqBc%;$rsnLiRxT|nDJ3=CNQhfE>RiinERzJC4MHzR}l zRN$q2S@y$+|FC=@DIhRa5URI}mi8ZX(Q%x*(o(73kr7qJ#dp&KHzw`P7r_dhG~9$dEkT&LWAO1 zURp{HE#}GE!o|gPk$^CwM)O`b@+S&@a4>z08i(<0YLO%8h)sCOEz_{jcg(jp?jUF^ z&e_4?X+?35xs!{_5kjK+`}=zqY<&If$rBn6@?LEj27i`k=;x}9e8DGYr+<0;@Zpxm z^z#Coun45+X8q!NBay|4>Px+2$7O&efNP%0+OXrY4om+W9s*Ieax{`Eil!~kYjM`g z-0o2;aV7*XOGL~}Or%^j_5m-D3czImxot7Q&Hydq;Q08}N~pMQQ8g~k&aCo}nd@8! zn|gyKq)gU9r#^&_w)*~hge&hS+BYpXx0B7$r>KfbOS+B2gXA6Y!I?{?M21bYVmuoq zUgco;%_Ob$ufBn>Rw033<>jX(xww?mt2zzNpZ`$)U>803ir+i-os9PRH8dBCOnaA6 z*zQGabhLDl!=Jlq3)fId_i*^#Dk>^s9C@xAnU=;S;?RA%;=wNVld^N`eAVQ#45NLZ z%+k{?K-%0bsJaVr)k?Q}clG3kyPW!O>>|-nxx7Qp%!Iu+?2F}~|*pPcvR@1eD zw{M?-pG!g=QeI2BWMSb4^!j6ds^9$-O|_@p`x|TgLqqo{HVek17X%eXIy9w{&(+m_ z13wA`egbziVVR??B0ksE(U1Ko_;^6n`92pXC+D{tU@)uO+e1a&Cs~u)hfF^|VM#A6 z6eHvush+F9KTw^DQG5U0zO=4nrp-X>)Tx^cOiVQgBt73MCA4hV#`px{tQn)ArF0vbm0{k%kf_mPI^}!p3Hc*JLcy}qw)uN>O7zy`LcD-h3|xg zF^nSHvK{z>t~Z5b!pmP?bj8zJcb0hVJ#*&FMNn%VaAN`H-*RzqU}r{S!=dt>!Y?mRONST-$pgWqjZ{Oa7-<^@r zPbZy?8~`MLivM4y7+8)<=nI;3)4lEcn}(b#>UpuP{z%H})eJLiO-)Zx=-L%*J4=lA z(9+5X!#M$pB3lx*;F6R+G(M^gTQ7jsJcY*N6s$4-`d|7uViAsNR--#*9|4s&`YrE_ zy^W3XQoq!y>5m^jK0|(-z_(o>4EM+(jtX@CL{%B;>N?c}G=%3!9WSO-^w$w-6a0l5 zs70(?IXaR7qNh?(URk&L1wJyuxvkk(h_2}a@KBNK2&0Mje*AQ`q}PJhF%za;jEqXx z-Q1oKbCIN&n87-VT8h@`)s5q00GIayJAedNWNf`v9n1?NGz~1 zh?E;QOu8^N_Nk?y#a+y4pcCUUfhf<;9^!MY9d zDX9c1!X=T>(a}p+uksne1yNR6c^6V+ZB^Ay@^ubKdB5QDIYvY>+#Yxep$;msW$S1#ABbDnyNtOKDB%IZu7PwD6kepx(1i~>|5g9 zZA^i1drYH|EP!1n)H4Sp?ZnH~rF&J?)wBS*$!~C?+_wEFa@YKaA63d+L%Feizi5N8 zu`&6uF9|qlD=RC{;9{cRv***#QXi8iAyR~*LCoj&)k11;~bw-Ni#ulK+g zlK}L-Lzr;CLp1BwkRycXE^zEs%9s|}vuDqLv^)vD9S0=o$hwoScjhrOdJRsrmEU2w3EvrN$_n2}#5S4hnEJD2sRM+O9&IPsOKm#Z|We0?~;`j@PY;yL@#-34;?<1-V9w1f=zE$Q5W zyRjTkUOW7Le{&cFeJlFMz6ek-1nRA)Tm{h&1BPDH_LpH{93-zoP)U+np4Oz7Q$O-4 z5$JpvG4&0^ofT|k>W;Mj2c)9*3t0HyI!FzxOA1G%L2u|L%6RAMif&BvAR#2Yv7XiF z+MiG;Fb6f|+kOv;60!-Qr9>wuD`=&)UI3G%Nw;41?pD)J{(Cj2rw28UBil{P%p_3! zp1%-<5=ljYe10Eiv3&;2%wSsvlNanzNFld3QpP7HSadTDtt?;ddE+=Ii)*R=-KaF{p z&sl&^>S*dW#L+B#(V`ik%}Z= z3)&_2A>34JDM;y0HKx8mgE|jyic-f8q9M!5$_}c>$2Linw<;K#I=hJ@oZ1il04j=A1MOMgbIng9!lq3H8#X@XB z39qM&gD;%Il6#_Fg%cVLCM(eV9>vDbnA4TEP*X?4aVNvh#XodY=;vF@se&J$Ae78@W^w9Mr%st?t_hH*YHMr5{|x@ap$piK+{P^BeGCn` zHjB|lB3=L*+<}g*NfzWAm_{ort1=MpawaAwsV1e~wNVn+r%k}3F=+=KDU` z4nv*^Fm?|K2`MKEAP(aFb+R^Gz!UZP$4KNgW2fS%$0{ZiJq5u_x$U3uq-7AcaA~5Xk#8e6ahLE2q1VQv3?Qq!~UU zP2&>J@Rx9V>2ub(UB4a#KJxf;kX4gQ^HX=^TTN+WMyQcQUr9#r=sPnLxvIwWbKN)_RAED zl*AzAEq)!=w^3w^1!8MK@Cu`q>mfq1;}kC^CoO3(x%IN8T_78G!R)G|YI|Mizh5+cR4(1Y9>#V4E(@du zJ$%P-fJan63)0p6 zK-^J8?{d#XT{mOIu67@()uL$q~##O54(^~zA)c?w| z@zx>5+)F;r2#*aMnL9Uc+7v^IGbBpG{_buWFyBtlo`_Bh^rj1SZ{BI9m#K9+sy&!pb@h=t9IeZBU|Y*Jp>TmKKJx zJSaDaYDSLyONr|tp)w5>6?Y7CF5cnf<9jmNl(2>S=O0!QkVb@W#$xMa=sX0ca|_r* z#HQ_7f_&UgQkYb)Tsij1Vc%Oc3y6N*bsIN^UaCOSf6HU^t|3D|KQ`VLmZ13UuL-2t zW8%3+gF8~I*%_1|Gvy#;rT?tBJUm|pgvJq4!6N5KqgZr(E;HNirzrd^nZ&j73(h%W zNZm|1$jO*^A_PMwEeFz&KDqx&w};)TFi(QB@G%tVPm$Nw4SR_OmY~>yUsS z#91*i3R$0COSi*eYI-{UwS8wMmsjl2jK{yfX<4ss9lQ~f)YJqfUEz+*nyRWQnL+CT zcv&1s5gPgaW{5(8T>Y_0aGO(K?a@t6lp6?;E+nCrM!{{QMz5ia{wn4g{#9(i3!mwP z<^UmdC=~cn>1E7_6&sjz$PcLS)~&S@fY@zoC_mo0JbWo=6$n6a{6CR<_rM6&=`|N= zhbkvZ;rP~%mvE(2_P8@6$ja)%j{gbw5RiurcjRZGZWhcu5acEZNo6I-m;+*yPBAdL zc~JV@hY9f=^Yinu(;pr7fw;SC&ai_IBMMMJZnLNt~26qw{Wtn>AE zM!&6;*Pm-TQs3k;H>wJY(JthuepDj8rt)W@q3k?{Z`Eq1#JBF{_e~hgtsg(&Ieyav zS>s(q#v$0?<26#!9qVTZE9f)dyQlcoi?}n79Z6f%EVvEGBX$ktm)D#T z;W=TrEJ&PoA&wHej#r9Y!GH7hxfQev_I(N#aRpt+16*%_?&#OAUq|{Kp}2>k>2|>K zT(q>btdb`XWG&_7wb6Z0Lh||$?g%{{VlkeO{e=_wic*npO`#A_WqakyebC-E@qD4P zgTxC+QOmUrM9hyu0oLsVh^J5>&_xj`T7q&TDd}?X*c+k~`EJ_PqLD{>$!wc;or!=BJxtn0HmV@$YeQ~%x>GkY_fm_dW9lG?}g2_VUMH#YuYyPo&(-XU|x-f_cw}*}G(A!6t(ahee1!O*bp#QLl|iSwi9^ zZ5iQ~KStIj&R4GnhMn+Y{?3s_|VT8C_t0VYRQ=MO~z0tif7sgbOPXXC5xTwsmggjCuXb__f zxd+a&=Uw)R*JOh zryr#tJm@Iz!TxX#|DK+9?!w~~;VpW5d*y;h3uAQBYKGa>=~z&dv-9%e_U+&Q0L4`+ z<>#BFfnAgv@Yy)7&hC$)5aG=VP!Ml?dfw(-hxd*hkCkM{hQH-`B6tQtbu@yQYH-Ix zlCl7Sj{PU1r5t%ifB-B49*d3gxaTXZmfe?$FFC^nRP8-%cB^U9shj5<2TfZ(e*9CgJ;}4RinC$c zQza1%AuOH18p^?ZvAvq_M6-&3w;fP~|r`N|D#jyGI|3s?;&tctHv z0vr}4|GKvX=ZvYR`1xpq4Int8cW_VRi6!x#Avz-8x8eK3jcO^%Bz;Ka@8Oq=P%y6Mgt~a9rQQsdW6D7`##&N# zIdzwB8U<_84USU8DtV$b=G+Tt)XsV93M?CAH@8cpe&(a2(F6B975?b)i_ek`HBzmL zk+&r0dv@igL={z*8BUTu=o~-;aB-wnW9<4?ba+aCi-7kI1<+Ze*XqW{ZVuo+lhsaj ziYEI~6|FXM?PqW|18rF*SwTu+Wcp1(;r^YRQXk{^Wk(2crex$xEKN~37+lCzB=_~C z>swk{;vf?-AU>SYnh&flkNI?fz%eG;9gDblQ8bXd3YzIwDC&VP;r_6OvzynPc8!$* z0C)u&xu8$-o23Uo44rQf+=ddZDFVMS$cYvxigN71`rwomQiPpU$HjTqGL+s_JR&4} zWN?q1hh>wcAn2EaeuoBTJO*HtIyFC}p%FZTIjh|yLxNuOJ4ihM`?c4~l6xk&YH^gh zP*h`ApxqU83vbb7Xo5pJqDph?Af{T8I(XipihX!!_--~~iWN`K2mSl^W?h%lwGV&8 z@^t#lnKXq!U*3{`GEUHt1DU&tkpoyg&ACZw@osFY^R`FloOxi2}{vu_|dfI8EGEszF-iv zREyCPJO8UjT$1wOXn4R90`nS>PsY4+}|B2Dda%Z7s%Xi^sd z`Wk^Y4^o%)tUCxyafxg$37B57lGc#gS{3!I_S@j-)wQ%(b$Tl!Ad{_pm)uIJ_;``D zorDLSLSY}G_}OgRen2ukRFuly!y^!NSYQjJyq};?o4mFdKbsUz1rEcg%NwOnY#=II z2AzrhMjv&m(r#G03q&>9Ou|iK^e4^pMVf}jSyfefDk`cED4Z9fm0Leob}X5!voZ<{ z3R-`P=HTJOvR9p)4s(M@Y+Bx}a{ToOxUXK~>|PQ}f6##jd_(lV4a~cCeViF=zGu~0 zA|co8tQbb2kU_BN>FISSqTTo`w#VkkVI)Rz*tOlgY&6jWXQ*-f=MTZ2wY=q42JS+P z(Brc7o_dcc$r(r>Yc2F7yi7wAJ>+rDEmJ zm;BYBS$F@zgGS7C9#g&_OO125?-UIUJ-vChhY7gAZA>Rv6Evvg)ag@u0s6JLrr2S# zBMyL>QTUHMx9NO{{W*H^}r?a?}3XoQH#Bw*~ud)fOU_07}K50WO1C zq$3f^4S=ZJURgdIV8?6M*x}W)f3>S~N?x6AdZ_*Jnt!WPG7%GXUuWLu9)tbrDP^_u zKsmbS-$I=E58!dUw;6Su#M(K6zgq>iQZ-$D(`42KGBk4|M-pOb|C(1KszfEeM`?lrFDzgwPAJnfq zk`CSL*n{t)j8uSfxJpdLfR(2R!4c}szC1RicX?2c_$0JNC80W$gFvT;?4YBSbh~?~ zCx9!)giI3Q+|OW6=YluDL>@8q#w*f5>{6MFl-rL70v|JWF>|P&>aB#F8^bCP9^>$oHLe#2XA1=mN(D5X7^8G)htA|QG?Xu zNcc^nELcUb5seV8e*K{YLR{Mta|kiiH3F7Rf^9VfwPy*Q@)bDHzs*TIrg}q7tWjht zK*>J`O`&iA!9mz_LS6W*OdaU!9BHSb5aWmol%y4yotoK?9N7eR8?59ALNxdQ%lIK! z^kI#?srJUs$Pv7vAFw?!i9p`lP)eFuLayTlfo4G=Av%3um;U{E{0>k5w`9JL>Az=0 zB2R={jd(E!fCou0-7D4~?g$GhseRM4vx$Vt!jbR7+-4)j0p96m8Ph+?JMu21=6`zu zT1Mf~{ld!5zJ-wFq?46R$ibuVpgIyFuykosxfLvy3;Ab4k$|+92H6io$KN}xE12qj zgr|&_l#nn=2eo}1FsKdYy#>H5Wwym{7}3r|IdaDIpc$5M37q)?df>(%KlTv{@!p*~ z$B`vlKs8zmKn5kK9fK?_WZ;Mh9mu3T5ZVfWnn@fM9i&zRboy^o2Dj^?B6?zCOpp8( zczKyY@AW=Q6C2x0eS9Rb?;ZH?Z)mWluZ{hphg51&7okq5S)#W-mRwNy&rSxieE_)B z1HFj_sG`;+U`crUfkKGRMyw3H5`FJZ7=ejfd?U-~gvIT`d?aWSiAH>m{NE)5ZPMVZ z-?*_E1kWY36%U{*-Gea<>ffQSD0oa;OEDbk1Z`zA6p?O7VCJ(Qz*^71{2jZ-?_Po8 zYSgo5 zAGk=xx$wCl413CB_8m}^S5xH}`lkd_wn`#W zpaG{L#4Ze4fuB5)Y)J#2VNz2{jT zjlg=i&e2dbD}VGM(@kK@`Fp?LC2}TyshOqkpKAwj*(IaW${LF@tzs#6+F)f?^M(9Rh43z})gj_}au>wvz-Q33z+y9~O8C0sz)(t1O9e{^#_r|!XUz5)@LR*e^ee{ss@q*~tp8}XR zo{JLSSu^(n8Z&EFtF_!6nNu(Dt$MC`6qoccGJuE|yY!i6cl29#v)=094p_~yt3QfE zFCkOO%Mfz7JU|@QzLYAhop4|Jm&4I2PNA#MTSLjdT+i$^-?-oLlp#vMMhXMW4UJz; z@jgeTRt#h%=ku;;+Ia(mUFe@qgU{3R_K+LAhSGX*zUdjtv8R`pB9I44x&q)04EE~1 zG1_1(1Pl7x?vhg{YP<%TZ;Tso<}pJ}_ti*YMWk^I%q#@fhZx&g5wJ&W z=_rD*ZkiAmtBHr7`i*WY&F6wvGUO|OMd$__$W^3JfyM|;#rj?#TXIaG0BG}sE8BV` zJWdM=+Vvs#*i-bg&&I|P6fzBhs?Vg(frq${%oXe(NoE2}-aVGqeiU#VT#3%|Vr7m@ z%Fz#?6X@i2!U(^OhcsT6&57I0q0SK<5E)WjPW?9^Z)&S`&XPzEba@Y81D1 z0X-ABQ2_YecQS7M-}bC?3kwSxN(r>&TY`b1YnTYs+!l))x!KUvq{nS^YN7@(*; z#kqC^P6Zc`h`D%@_;{tf3zj6_=3a3!}puk8q zNQ@SzCl;X~Sd;q%e3W6ScjOz;!#E?H!x$<0(ApZ@f_6tRHb!vJL$GD_Jt4cOsgtJ} zN$*SedBT?^GDnb%PZTXOE~}G9KL$AigEPVV4*13X2J5za^PO85f3Uxqvp79u4cfhr za^7jP6nWEl$mPTAppTnCz7ZmnH|;@>T;ST} zfON+*$)aeiACNl;2z(+=J7)|}5f}eRN3aD$-<{X0hkc`ru)tOrR|4Do%=~-7I;#CK zN(0WK3J|t#-?}vbeuzri!C)9uTmOJ#hJKa55oMVc?Q&=K#&}F*jKzMD57K9nY2Dr3 zFJ8KIiKQm@0&ZOaaK3c;^7AXrved<*@db0e+wr!XO@q$k_LpV1I{G$noe8-;M7(;! z+ct<|xPq06VE}iFJlT37`Y^7!;2*Da@iSxCKyU_bj`;5|)&20bKI`$)4M&Be*m9lr zIrF?P5?es_l#wm4&hJLD=Bz!b`<>i^qDCi295MOFxyMU8ktjChPqaz-8ov@|YfudI zB{CGT*55rE74i>tLFUpW)-U5Tx7L9SA)-W;i)&&knXsN36Dugdpo8^eU1HTJFwWWo zWo&a)yQmPHE=%1Hd9@Nu-Vv!q)qIT4tr05z%h3r@K1NQZS9K?QEMIF3>VM_ zQs*j+w47BxM9*kssji=3ZIiO%r}I$9Qhi3QRmWD{ASEG3Q&~Od-sxixuCN9w9NP44 zR8*jU?o91ST@(%D;G%n!WN=|^ZRGXKzw(OuU)ar`vr+gB+#m#dP&|Ap?&r*WTA^^? z{I|I11fkLljohZ1Tvk9XGTMI?g53v?za8LKa)CxU_&*giTKXci2XU;L&_S){-|~m4 zL%?}JP0rYu8M1~|KJ?_Y)=R|GK)C_=k)bAH<<0B)`gPM#&^Uj23~|e0e36cp_9FK7 zf{o1<;!u#n%vvid;}yeV50{K6Icj>?(%4jy{Jw^oc#D+2njcP+1(93;vDpEctqI8O zWjRl(uPK8b$mWiZA8&udFz7s*#aLVn@*p6kzI0iKo`&W<@TD;f(6d?GS2T8s z&;4+!MNrv(c`3z9YKh5&*k-U36_q#>xDW;T;2CDA(2O$C(Us$RjLm2(+G(;7#@rcx}hTeoFwsTSGdB&Gc8&B?vVJEVUAii1av#>C|!`9TGy#14s*qtVO6uV$K zTR!(XLVO6&G9F}H#N&M;hdyt~A{~PfzWO`V_7|{Lv1gs)MJjkXkM%kZ-2_ZUJVJ5so;~w0i(xjNsO^}Yiq%O|bag#Z zS6$7S!>?t&Q|3K+b%3_PHv_Hg}yAt#~+9a1}xvJjrqkTE#_03~)&VK6!F5xa}FHV$hn< zAl+W%4?id%(45RxkkvF+?VO#RQ~DqFyCewY~NPu9X_{%L;KtGdJ=1>ESY{>!DPXQyjPk3gs)|9Fa9#6Z47iIqn&Uv?(ZDLf zC7qjYQRr=-<7DId3ob?4fX9z{1@8IMtOcYcw`M7-s2p>WtBZ)1-{72~qfGcma~P@I z?j9ZPi+d&m)%`7q#kiu%4BYoXP@g#na1j}53SH)#LUKs}uy24zanuQ$Hvga5rnlvP zx$5bKMJ|n@mCQjc1jG(IZuSiJb@jD$Uz&@(7G0a4u*lK@{PJDtEcr=$6Y_ucl^<^# z`#?DEMtoecVnaHAbU@0E%kL1$|T$Wzo48}vxJmsoFpxDbt&?4CPX2Ko6|GUqxE z85-TgjBYa$v??Lt$jH?&nUn?tFSwQhBiKD4r@$tU>i|y97~#H4nCr5VZ}5gVnt06w zS3`f&lk$cG;T^6B`GdP_j=gk1dy$IXU>v@Q=4;?4uEQM0-6@MSCJ2jKvCDDNn#lOtXF8$%883^{n7qq)-5s<5w3;SDQft!49A! zWZUs9crNEsRp6n{dZdH&ed2D}GAYM8su}3%k9@&|D9EHE@XrSV{&!T@?>~9<{p1*# zGbu&SPDObSHsv3j&>Wbf=I%cxB%~byqIm*h$y(_y`x&IxR{;S5!LWj;^Lb2Lnu9>Q z%*XIMK=>EOf1@L?ANV1s4#C8Bj6(6m7bI=igd@*J>8>#`adAUJf}=;vsV&^ivJTFc zOg9jn^x(!q{#1Yd9F5c?jC!A0`}YgEmm{z}pIO8){$kJPr<*A^u*S{eW|dp1KJt+d zuMit6ifgbG46*%GUVb0_jxZ+3S|`0S^>So>rf9O;L9|*AVWJk7WYCeMlc*9N8>)Nt z*eJ})uP3i9fbG>c3F^kEoXcb<1no=UI8xy^ys9%sj}Fl)d(=P|B?y08jsDv>=HKPP zF*GEb(cqjwiPv7J{9fel}3Lq?->t2e{QW! zQhLIqyb0ckY?C~gF92Lt)rWbY{*4q!R52N=9sJ&C%7G<3W*qh1c{ULacEO-3kvo z?oBd;Md9h6lWrJ=qMMXB0)HIb2Sx{W?qq>kH4sT(FY`MH)UTgcf0g=_y0@jDzl&Z$<2?4|yd|my|TG5Yu*@&nBxQz3VE}SealW_}~_%M4HTr6Mi;<=GC z(;-=-KvW?bYvK2dRZ6%8V>U5%dm@L16MhJnpd5t}rcuys{6bW}doF~~nr*x|@BHB^ zuQ0~>BbZC~^!%aNXJwGMD_CUjN<+xd8@kb0c+H+UI@`VlPT9{#>>%#qo~pYTATfjr z_Dt!BItLxugFaNZLEO330`E!DY=_Mft|Ot_a66`asSK3LMcl1%>Eo0*Y_GY`Ph zcIvBFf+=n<`$))qsjEvcczxyg;EYEHT%%v=>mNr7Tz;ffLRmv80aK<8L(V)YGGJVV zE?>H&z|71HPqk05j|r|R>WcDNaUVsP3nroNVDtXqAXSq7T@zDM$02DqA#DcWq}AGF z6<3n!$5i+S9!xIu5~&%Jbr;>--iBd76xadg(LWHn2~@B$zCMz_Hm;GH7)*=6PSM^SU-ybqJBmU6+08R9m>JNfl+f&SbF{78U1uJ*cr ze*4>s_8Ma}PIa(U$3p-Jquacm6qPX;(;;4;yz`^IdP+Q zm>71w0@t?)p(t@DtJp9gB*4bjp{7-kJHnD1E$<_~+tYM;M~UOt8w0-^Zj_b%cTa}H z)vFhv=Go&m$H3@DO9g`KNQTDcBByzJa3{~{pQ+khv*1|zup?WZX^;v1#SWXS38ZBU zUZZ!c@Tzw11ElRNzOI{_soq(5ElY{}(7sO}ZmgklgT6M3142gZ(^}TOMRlGc*%yV| zTtY%(@4Pa@A<|#uZQXxvlD9N0mLXmkYLW6mT%9u*T2@YQ)4;!1_kP2K2;)wl+AwJPkAqC?pJ&&L_ z)(HNHw?Y%yrqmb19>9%`MBTcj-CyF;_#LKJ+FDw%Z@fm=-)Td1t52BYMm}o%xog zdbtbS>ZVskwg=Aq9@cP_%REazt1_@#m zfeL0(5yui;RC*AQYx!XiCN(GlPIGMOfpSL8@)zfW#EHP4V#=ohqX7`70`m@7C}J`LTy!)l}VCb^hiM=vEyI_P}i*>_Ep;Z@dong zXb98*#XlIRy$VDTp?Yfu0e_HQ)q%9gK<%QfuI_#3P9Y#ag7q4qjE>Mzw?^CFfOq$$ zfzgU5V)OwQkr&nBu4U)z<0Hb+1`~mgxbL&wm7TbO(Z9#;-jabTINt{22?7%}21qqe z(W1@32J3;{AVJTcdFkX^JQg|sVPI$wXRK$2Atwtk1Ur~OETPH&<05*~Svrc#^< zS&7V7Wuf-`YH3uEtT-lEHwlUf3Wkt-0jh=c#cFKF`tD~PRJ*3<>?Ov>_bzfd`I6u* z!pQv1dcp|{w+0W7ieW8d$c;PQ zpX*5sb1WtUB_`fdnov0#|Cs97ebkMdcH|M1LHbj)y$A?&NY;3KVr&ZU-@i}Czu*>$ z7I*c%0u4wVY6>ETIck1MbmH;!lni<`@jqn)9J4|e-eX%wp7#`}+YG zC9?0FLtP^ahYzF7W4xZEDDV~6RUd>@d=uu`_#(#fQrJwH`s~{m$e?rm0gcXlzZ)Jf z$qfg%PW*Jua+94wsuAA4-H03wXtU4vBZrd;h5V@zjW*{Jc=FwhiT%XR%e$2ZC9&d* zA`E*g6U?apiSN1XJ9nClzkayms0{ZQd>sSPnG|k)Jj1qi$3qxbMQNeV$z6R3V=PUC zzYfE>aPRi@p@M!_*2jLgg*BlqMPUduk7u_}S=#(J)Ww5xD`9SO&`ZmNxfaFnlKCBP zJOk!tXT^1?YpyXIkpZQkExH@eB8v*f$!(dlUbDyH@smRTW53HlCVG+TpIpFUg$pz( z?zi;+Xx{Sup5ToBXv+)XMmGp6jE9S|`2`_lD@<8Daz|k| zj`JQ0cLjF*-y)dXJmi^t%=(9EWYW4kwJ5sK&`>?Z0xnlqSAor&Yu&f`aIdb?QQx>{ z4==#gC4nqfCTq|Z)hRqXT_pU+`|5iJCF_fmZr?>mrMuATOifSQpq46o_;B^aAJYW9 zC7-qdr;qw}3Wc@pIar91CuoC*MhGZp(O;OFfops`Mwp0o;w+4wZli+ED_ov02Yi>7 z(uuuO+QBa%pbmUPlg#)a+KERTZafw;e{I{VV6NF-$h4dy$+{!etuq()H<~6-(%rD z)PZhPLw_u2`C75HKT*qxoYS2?MB;8aIcZg{I#Qp{5aab_628 z{VMNE;buu*2JYdnQA|M7qwpeQLqERKGg-$rKiG`i`HI{+p0~B5I9P!;CYQBkbQIMU z8%DZK@}3`uAJ-5vok8`E(-PTpN2CMS{m~;ZlDW{j&9P2nao0iehodlYnT~$@( zbGvB#lt)wLy&eh+J-oo(dK>C($kzRS23~b5X{f$}_ky63suCN6P5f ztd}hp3p`Wz?;Ztdk@dZmpZ7gp4BlN#_V)Jeq=O>W2ykQzVwdI4Yh{RvOp9)Qw6Ev` zARq`OIisH%d?@?bEb_%WM@%j19iH{3Mz=OhunHOplLxY#V%e}k0y7mF%|K;wZtXCs zob7Sd74vdIfq~aY_}%~?qXAm?+)P-S&H(li5 ziI-s`DJYgRF*zC-bm==~$F*8dNjz`dva0d6Z6=_pw1GzW)6_skyUD*P{D={NqE?mi&1@C5$PK@31!jhv^wW4G&DLhM|a_>X!A4 zv#*A;SrP!y&8LT-Y9*rYNVDhJRxA0HbinB7^S(+HIlmMs;c>J>4OIu(<#kPggWB2` z?$Gw5DSZy9^9;0CAMzfwN;3NZpHs)i1B`q)N))8umL8sXfTBY6g_q&e&;l|6$DyqQ z+oa79c^NRnLs9Rnxe5cOEKTy42U}Y~TFbOENgirykcgPeuo;qDiI91xctbq1j&XF7 zw0&4H8cH*af%M=)RSX}U866p^r~P$`=!>_gMOC3rD>}4a^otK1RBtRGrW?AiF3%;b z5*)YKsi3#^CSPE3M+8e9`R2R66YT8|YA9|LWz&#H9r<9C$&A4j8{Ze;rkg+sWqDt( zayf6h{CCqgYvaS78%E{~1_+CRK7a|lhaHmYIAlOXP&EMfiXF32r4dQDrtWl=37o}u zf@MP(Dlt()eqq>t9JD_viJ>d(Kdw_6gyhHy;oquv3sW(WF9 zRiH*l1Nr+pJQYgtuV2G~?>OXdU8ub?Afx(0QBa3+2&F@F$fM|ezbObshw2nkP#5B5 zQ^~1boDeM%-N;Pi`=OzI(NF2nj~;_@R;)wVwggQ{*jD~V^D2WhroR$-f)(`{bQgf+ z$iQ`0=AKE+63h@NjvQ%x#qEHIVqkL}3QSJll+D19l#OyAK3Q*JP3G6-`mNDl0%zc)^WfhaEO%5a&kSAu#+Une=dp8 z+qP|ULW9hSU@3q)!mQZtsqNMjw@*D%)|g{$MjtB-XsL#anLaT(dM_faak{`q0K^P{ zdT!&#ikgA95NTpM#9B|G?3n-gvv^fw*5Pqa&}X26`w1bn%4IN@$ZWvmbzf%6Gk@3( zDM~$1qG@usK}6}{i5o!pLcAHRIq4C?3*z}1-*~=XaUO;3FU+LX<3%4wh$Y8s+(W(s z)!k|(>*ehb^wR;QBI88c-G>G-v6jEpr6nxK6G*15X&UcA#4^WCn4*#XQ_Fa!#klPLmds z;AO<=r1`L=ui=Z5sBBxQOq6h305{K_CU^t-t85x3Q5Sr@4=4`6y5=`5J$(j(tb0`R z)|ZM}sEa#LV)5gxCYl43x=&kL0^lE^K`dvLZ(fbmV*;Yf0XK?F9Mbo=U6{V9LKS$2 z7|sv? z2YvT3lD8Tf1dvX+YT+Ga*g*h=FFzVE5epXLJPb5jMn=X!lJigbAq-$d3KFyDYjnzf zh{p_MfdRmK46nPtZ&=|*aCrbF>hu9L(5neGSEdpSo!mB9q zs18QMwtLLOAkT=r)oD6H2SM|Z(&Zb$y#Tdv25&?wJxsbtr)_tj7KlV?EO+70BTtZq z&fwHg|M`<}1E%>lejU)(JfUb#py5^Y$>WQVI(z!G{R#NZ-Q0OBLc>{HR&(ZqNG78W*Bcci=y#$gtD3S}kgi0cqxR2=W${tb6+g?kjI z(%?J_P7iMgHc~~FTcYRI_wrvCzJD(>{SwIP_QU9i9fjg%-n~;28SdFzkMTHe`-+h z>)Hua0oh{01TU0dx>*L-5E%iFJ`)q%xF#N?1OR;vfoMj#tD8~3K-_fc(j^u^an7i& zTp}0Bz|gxNR`c+<5Ar}32*;@*0vMy@x(=`0W4X;W3V_LnQHdDUH8yIHh(<)-c!>_; z+-yJAV`W-wrxuw^kG(={bIZ9PNCJ^SK&4l)|I~sXEsP3-0+UQZI|{>idJpfvHeMfS#GClzmSakv6_p7V)fr z4C;W5;_L*d)NjYq{SHTmtlr#9E^HnsWwv7ZlrGu9u$|(2iTq6#roHV3GEs^S?-OQ` zfpW^u+rtlN0*(zm_DF4lVncauyY_dyz&Cy192(EP?DQ zRUL8>KLS$+C2S-Vyc(vm5s0)=4QkIJP>ey%QcA8B5!<7dX7{bMdGpHhjc)(rkDqmz>_u0MD1 zM*A>E7}%D}eRG(LIE!HxFl8O+doMrBfw@pM;XeSbqPm4|BG6>Q5kgT-PWu>~4|Gw} z$Hel7-b7ych2y6wpx++*Rfc;77lv}c0-Wo{TMs9bHq?|1U=O#qxFm|ksuS;U4$_7q ztH8zN=+Kuhty2oxq?ANku$qw9-w``iGnQkdnixrv>rRGn@o8)8U4l@b{nTTPAQt!J zJBSX^;qm}7V~-Md3Z)*gs_Y>8h;(s{K6ow*02l_81PIk1nSBgq6tI3+yU)u+{p$Oa z3yXhzfX0h0R08@Un~_f0cXypZH*)dfMKS~W9(ADHRVcVNv;j32=I6iDwB5pUaOq_E z=uKNB7y-x?)yPeO>Y|3kyK503u6{m)TEP?4d)%nkL7-tEAzYt;r-+>03R1{Ch+nM` z_K$2WYselRYZ-29Xeb2yY78SWkNup40z||i5VQ06DyIaZL$P2>3*JMgB2S6miU%@& z;|mO7jzXtO$`z6mC?$$I#mAx|YZPv_8;!|4DXH-le4s%JkBEqeNT(Y5(U%jmGnn}8 zz(Th$f&gHoAy0}s+yi=q3Yav3X}a+mfzc7>RMmu>`$;|<`mE9+BFKTi{3XbRp4FZ{ zn}ys*QLL=2|7jFVpAc3U?{*hDS9>D;z|cV!N-k0>F@lRATZvG>k_jhZ_s;83x57=O zm#9n9k)}{?WnjAC=`G?GlK0?^9%vT*3m@Ay(xgc0o&X&>P9#H+sq0~0V|Z-rDe0UE zi9%3BA_<}>0LI1koWZ2N{fHVJ(4=tdH>l?%xx;4=wO*MNds7i_4NWEL~M-$a;=Xrwh0C<^+}pAZxi5m0;qq(T%VPwAphR(iYPo(>@VzKqd> z>slIthmlfHK$8c7!g;*--aTO@>kWi*oG0ZCAxI#L4qZYK15VXrCGzZOQ|GOSOL+>>i=LIMK8@}@{w866(h0bc4*?Z0$<`|-X)U_5%HaJ{1= zWCg(08I_qd(dZ#!tNPXW6VFq_g2&&v$x5Yq@cUvV`|#@@(C{6Glfo+>e7$x%=~yln zvc9MU+7MzH!$mM$==cJw2%$@ebYecg6TN}P_7dbH67At&S^$NkY@Yhf92-StXy3{|1|i(J;U?B^7~Bm9o&YwJP~~L#j#t<3 z&4F#5I`4}IUOLNiLHSDDuf)yD+Sp(qO>n1R=t7A!i2y;AAE}m5H1oqRH+Vfk?MbUn zR3MlK7=kcPgDxF!J{K8jk2YI!2t@~`-RM zs)Sb9T2&oek8h3L11{J#m_f)J&WvBT_M9Sx zw~_Z6t0o;PF;#;uZjf-qPpf$-K2g!jAkW(vsIM?z7iw0#&h&|h6R-mgue`)k3Ue2+ z!>7Kye_u+I|lrj(Fnk>?1*2Bs7Z4LYl;ci}AFAG*r?CLz_J{#qO!$E`ZjJz*dcyCucJ z&aMrD8ZKf*lz-%b#I_56d}?twL=-hO?{?}ww$R4mhiV_+Y6r%QIQFh^8BgkvcOAt9uRK6j0LJ$Z%H!zqBgiqR}j;h{lPXLU|EC+%TP>zG~a^(13uw3CiYg7T^1nB86{5 zkk~?)8x-V6Y|1PRn;Nkd<2GC4ZN02ZxSh5j6w%M~`_-HX2xAhD*d#6z}a)>7TBr-SZu}?^0FbXW5mpwXu+eJhvnt5-hZGV zIXrS4hLuRjoBoPBKe7dJ!R-OA0INTcMwpMG4Gi|1+S=P)zd>@94*YH@8R?*P!5f(4 z@reNX6s4ZTJqID`JFlA|i1K0X%l83!us2zA^W0?lrp7l=gm%kE7G{(7T~9p~U`aBJ z|07qx`bJ8uC9Y>4m&!pv*%h3U)ZJNChTjv;W(#TH^2m9H=tPzb*nR0MX<-K*4@^WC z>j5(mAI(rdlp(aP#n@dZ0dm&!@HFAv&APL_LJb^Fst^ED+Oj~5Zk!hQj-ZeQ*(yIF z1&WF;k`4oJ%LjCN^?*{7D2k*2R8DOJ1(tixLm!by{xy(Feia5Xb)bo3`vb-v^0>+7 zhI=eANH~MWIq}VfMc;ZNk{}}5|2o~!pY!vDD5jF})I0G4iA0>WfD={`+MiFb$4!S@ z$Y$Jg6*Qd~UD$#NWu1Bgk0S9WIYGYH01iq7v+S9=*Rk5WIPl%7Lk$^jTIMA#uz z^~E5RZ+2Ko>P+;0hX!K{Gq6_TRF+BPIMUqVZO|{~6Hv?HLp;VbRsX^R_}o*l=Zf|w z8oWb?Rvv$qzn)B3+!H&J)(flLNi!mo0(Z;6$e2|+xjK-=n;qJ%CF~A2$i#UC8NeZm z%X&NpC$ATF($&x_2O$V`5@#Bundk6Fygrh+fdT}(>={(8!*I|o#}A2;HJf9XThSbm zS(A~cDioyx5gR-pHknMJ2bLy0F?olH9ooTQQwIluk`3-g0Jig_-#k34%?&u(9R;0g z>5Zf$4K!wp2m7C3caIE|xUbPL8P-Qnl6kOtAfOaQzT_Cbtp`!Ufsu&mxnN>4jm?`@ z0Cj_jcBbh(=>c%!xE)~ell@5wh0S$IYyT6l0m&W;^#)Gb0RhU2?rop)0El&g4=P1` z`h;OogXyCSFqZRxvr?^XIL9Jx?Fuw?<3wWs1jT`d>B3e>sJ62&uHXyQ(bC_1H0<67 zbhDV^mvSy4_OyyY5Y&8PTmL8SNs zQRrg)5Fj!5>oEchH#>Yqb4+Fsj{rf26WFc}kou}B47f@*WfrBIMuzEntZ++1y}yR{ z{Lwu04VtL$Id6`tVK)P?p%S**0g9>Biy*gTOoQ~;P__6!wG(mMJ^a@1sh$7O-geKM z%SueOuI%3|Zt)E`-OdSMvZP4|XA_E#j{B}i_Sk@OLYn!NgtT;5>!xsi!?KxioAqr7 z-3uR0%m|RNV$-r2?s)bPECouCjj3@Ik3u73!p)m`F zXvbv7?IVBIqs>gv6hIh5X{MsC&cvY_N%l_o_$YADUA&ZbkdP-h0{8(i;CrDVA5gFy zl!CwsykET=4~+ZSZ`O_edhi#^G!Pd`zjo`ErL$lOh`ryKS4lzUw*MZw@Z$$ZK}J0H zeCn0%5dy;ELGEK$RS^yXdhY%8opR3;-(3fz?7S*@x;}sU#AFIXO9F zY8yH`1APg;xuL9Pk6r{Uh9SJYYE`$FOqR?h!`=E-2rFMHhiHykso)%xTvAO|6x-p zG$naq7fZ4|{Bg_2Qetpl!=y1c7`colcn# z=$GCIR@v+fu4`x@Qz)j(zHOSGo^FD$o(U#vslLFjT}c|++J_+%a@nv2+D4w8?sWLn<`rES z>qet5I$#9%QGCuO+Z)v-8FEYvH=dB!sd;4JH_ zEGGQ;&@)^UDd{}Q^Y;zj0`})rY{I74_j1`fLL!d`oUE*@(!X0OY6#PBVv+C-+N^A=<|!e&vJ8dsp;$MXW;-LvcW;0?ZSmcrT{FC%~M0L z5cPQt$*+h{I3Q;(DVu%e1?XLQ*?FapiVF*8nI7T$qxJX5azsW)*J9_c-ut~|YXyXI zjwn{$PMx|(r&40N0tg*F9Q>GxJ%#uK`rWX57z6y8ZQx`2#AoL>C^usJ?o7UazZZ~< z;p75Lidq{R8nSuq6S@=W|FR34np>>4f{wsZiT_E&uO8>7W_W zusVD4WC~fy3~I3(=2rOI=>KeB0;Cbb%%wsMsmVX^dEL9!;t>NvF9*HzjYEwYm=*I< z@YM=1Au%|tsij5qG}GZ;r~s@mypz70j3?Bf*c2HEA+7N5`V#$3n|otE0j|W_L*m z_QN&UTC5f05MLo2YnE?l)N(u*cVsQ~_lOni^>V#sVqy|og#YzsVtffi?lz^A`Z4=x z`uN+*Js8a6Fj=41qtWa$X}!@;npuDNEr`TAu;wf(Rj35>O-r)%YP;=_ViWSyY)MM9 zt456H42~=D=b|W>EyTwk9xlR_-nW;B()D7G=mV1x#{O}Y$g1bXVxM8oMCd(^ z6Sr7sf#yee#c&X5aJr?7t?g!@%ekp|mf4E1Pf)#a=P={{u7_-E=5XC~ zA){&U2j}H~a|jVDL;;K|moJ??d2{B1;?SPUL07Z?Rc?e?MB$4Fe6!@V?;pF<=;P_W=-pSPi$}#HAdZsPA1*AF5W;r z0@q?t*6M)dhVE^T`OA`Sq=d{y6(F1d`!a|G(UZv1b}NIFklvX$&0Grf?_T|3(iGfC zN}EO97(F2&AuCK;5XVZRf>(Qt&XIjC>6krXV>Oh4OAf_~gvZkh`r3J%bA`fB)D(Ogs{Jm_q)?QL|kj;%=_>eYFvo@xIqg9T)wPP!aQ=0&G~c#FH&F>_U!gT z8n1Pl?i7x+y-BkhkMYuPM}rakykNB^>a#wb9h0aAFlcDLd(t@Kze@-~{wRi9%y{D% zuPY2{e!pG(a{#DFCLaSI11<1r*~;j0W-NW-17S9UXfy+T;%&$sh3*~SBQCCmB|N5^ z1LU`t1Cqb655-H;wQDJ*78A)Vv?wC)0OSwBIo*rg^b}gekH}0Z_hsAP!f2ub>lmiR zx*J+BOQoFil8y2MLQ@6ibP&8qESNS^=ky);3xnV;^PO7q$ni;Cq;9u2K|#Wil|W{_ z|G;SoI=jc4E-nCw6$I#l0irzB()MC|4J=cUPt(h~*`d3*3zLgz*+ZQAOU1*lUX{?z z#DjxrVaKaihZkLWEKLfZqFi>~smyW^LK9OKI*pUlFysO)&K z{O-Yh7Znj1vjv-G5gBSssMsvP82bvgn*4xJ)FrY~Ur+DjGF~60Jb}|iZ(Or{$Lp6I zHQC#s?q!}{dRRxt%Ih88oGv?Q!!q9=Z(%?L4eO!gI^uDOiP>vgFgXY&WdHtVnfiuLl7uKQbo zbn3{KUs&879~YNVc>WXUuXsFZCTv04s{7C$@zJS+j!Mz%e1a{OT@{>qZ$_aFMi2)LI+%>|Y2?Yk-o1u- zlK8i0ihUWklHqP){us#e_1m}2kX~F(=MVg^586DJbmY}`Oy7?I$h8Kd+ySmZgDww) zcO8INP5$IRD|4UVf7qAy$p4Djwp$Q^+K=prep&})q3hD53yG5kEf~5HB}wvI@oE(- zAW~=|Rskx#H!ugA&W|uq_y|`6Wk{wO!8FHF*u7{tcpgAr_V1p>;|}-AYgE($S{=lB z6)Twm!@$kj=2EAOubI684Olrqy~u=T!KiuQ({m8f&*}X6-4t~Ns}D$a?UEWnZT4|YT!AKCil)Hde5gVt%U0j&+9sHOF**?0^{aOLAT`EKNZ%r$E2 z>UyTj6p@37U~d}6`RyR9jyT_f_E!9?rk8!x&`pn%;#c3xg}yHnOw_gLV^K&L7+$I4 z!ElRTjeqObFO~&-ixbQI&^CK3m^D6X^8Jmm`a9@fu<<^56OA|Uw>G#Y_5n6yySNL} zIZ^ysHB6RH`n5)aFpt7oxT@~%HJrhz;oP$R;MXBzT!Nw;c=e{MbgwlX4Z{Lg&(wtKRQ8UkrbkR7 zrE4##vtHX2rljIeqr$lH&NT})6Sj`C_a1ILb>Tu_?^}Uhc0Q%59}25hCH3}}cUI0N zpPSsN0T~MilWGVp?m%e2`uFJ+EF60eSn(dt!(KEMZCF9#ziVaNw!6tmXU;CB=c-GaFqluz&a420O9KiSKmI92}fQOY;CQYtKwWDXb~ zA5UB{#6(AX%*Ew0R`}2WU#NnL{$f}d)2GSFLj$5-VM}OfuTA=R09u3mWqqk&d`pr^ zrn&O*lr9ySX4aGm|(ac3NcROI8|hWTnMy`<3_G7q|Sv{ zb7D(C9mZ?&N=vM&X&=GGm~#Al16HI~8%jTi1g-Tz{eAN&<*VNWp-dn8!MLY(oEzyN zN92osO4&ZMxe}?Kt^yv{ACmk*sAfol1cH0U`PVNu{MqdM{QXdFETxpdSJY$f_at;@ zCl)uT@$?`R%`nNg6d$x4z`l!whMu15fB)Qun;{1*3ppD&jq=SxQ!a};`7K*@X)nV? zCBCY;O${`*%*?eZFP=G__3)qz_L`~i+EYYBr);%$ZTyMI)*JsW*zeq=Q$~9KZ(X-N zM!z02yL>_-;@h-|7AsI0UqAYabPbi5*lz4nPgd|^gKca{+ynT;^~09{k_|>=0s7E= zv`D=@9UW{3qq@%6NH!>S$~5C<;c0$ER4KcEpWVFdBu#uw49jtji|q%F+=vA#{tg(k zl7Rs`CZax;bl>9t_iQ)I$;rup?NIA-p51&a%4d&Fuv9SWPa8n8WN)z&gY5E6E?d){ zWM_w63JbICv4Ejur}N zFc(bQ<>k4dl6bJUsDgLxnWKlr;%)(Ik#L+W+|Lt(; zFS#RHo#waL#rgT^924ow%~tZO*+5_W3I1!>_(PX5b5fL+#1H6Zh9F^F;_mLA$hbpQ zS58QX0X-*`BAm2NEsE2YStK^Q^P(GSyf4$p(=dqJs-%D5(gWhG@9DXL7v6cE&e2mF zr`y(Z)*^NEpnjdfY`Bu19ve-YjP`3B8qQ#4G{gt+>W$(A%!3*PaqiL%Sd=7UdA z{16i^RmiJetIv4-yUxg#k%JQPd)($EcW5VPI1$~c-#Mc>{BX%F9Qr8)>Olws^K!qz z{*!?aSPZtz@S8k_@gh;F+3(-!vHig4^BE3cQOX#s-qyZ;$q@DLE_`5R3c>=8H!!7M zf@qF?Xq}qZAfYk|-yeYgN=-?ju%-8G+4BReBj+LdL9NxfU~X@pzWuC^mR7ih@(N~V zIz*?CHxZ@H&2MtHycMtK@%tC2xc&LQq6e;i`jpX5nhWRL2KJJl=Rgh#g{gp~v2t|m z8T))@JNKXS^JsXbY9+m2_f$kq{4DO;7zhnJ2Us;$WtMsCTt{U4#|x6+9z8MZJq5CJ z3MlqPZLwPNpKm>w`1FM~s^ap7q@Yk1^1$XQaWK#(svvs$^OfzK#^yB^R=SH&bo#?e zK~T`{*fHh-c`WaSH57wi#?)sFI>`1*s4(EPTq`P)qNRi+B=BZj1;ld^xTY?!Nl;iy zUS2z)G_(%i-+7`ABju;eQ4$Bmiyxs!=zOi-wDZ3k`y;+KU1w>VgWE*ZXZPNZlj&Zn z2+KVU4fN2VU6gE?x2Q1kfu&?JSU$c$KlCSRWW&emIoeScWfnQG?QphQqI>voh*RQz zPTPGfbRYg~m5^uvOmR?b4c^oxkfl?#l9{QgG>(bEc;5%w+WaINJ}O5PU;;c#@?7Wn zp-H{is{#L>MKajQdpP%((u6*J`BGr$8pU6P4e6klQig_Xd}coC5~U)*xssN^af=sc zJqpyhn_F8$&e_f|P`JMPz!JV!F8(e!qllxCZ&{gdKKf>nlX{09hfII8ndJXoL~l`s zeE4o~Fjf2hmz?WYcEjLw3Iz8>ezixa)D4V`x_h;DulaZQ8hRhN^1@@q9wzKoc~`>2i;TtgCwrELV557y@f7l3Fr;8rXrkPZ z&mB1FU%q@vGnZh^SywE^zGe-Ushne-hw|S~Di|Ifnw>K6i>Y=l`T1n-n?>Gtqsq?F z@+!{FxD9l))$hNoDEZ%cPX-HU4Uo*J1*Z&(I;=+t#2->JH(&qk#;&zz9p3!>%>b!h z&x;o;LjnVpApebeYWEH)8Ab>_AXzA?=kd86N~c&=u>&$ZTyDpXwXeFnRRH_ApFBxH zo?D8%j8cUbwvBU*2_JUfiQ1+HZE<;^#Eqfzbr_p5FgCsf0rXl@ z?ZJ|c+Prx)4=3j(Fq%PFI@pHxxuruUTtrkfH8Ydp6wPsD;OiMqxR3Jq1u~z18>i7B z4AV=2$Z_wGAnQOXh~F(aoe=bfn2L%C3$x8%}RD8Wn2;=X8*Q zJ}OH1^YMv^G4GO>uK~i}b!>gPnZ&iHcH@F$-e2ODEPxVLP?*zpb1TA|bkT?B`0I!x z6^c-dQF9%YXAZi%OMhtSm~H2Re zXj@&-{JQ49azx43SJ6aQx4l{Zf`P)Np!^6_j%k^hLPlqgAWbA_(t~5La&lrsrlt#I z!Bigu7HM(X`fT-L#_{tvlX#V+IH_E|L#+M7_c|LXXhhdaVy}5z<0c5c+AYt`N>%-< zMU-&iAKgkvF$FM?WB0wSe<(YhhGGa(DMd_gYHeM`&&Iftfq_pbtcGFZF(;=`w6`Hr z4Vn0Vg+Q##&dlt?j)7~}uU{(XD-Wsf>#L~!%*-Rl5)>RfR8}VUxdNv!&@^wqO6u3p zve*AIQgc>8f#5Fpl7|l;+9GD@2(kCsGi+31u*P}@kX?IWc%g$SA?PK(=(O$Iq#JLq z(fOGjQ!<-2ZlodQgQdW=VY;AAn7gV-{gkz2G=a}oqVUo5D10DIj(rB_!6;$NR z!gtZpnscx*(8&R8{tQ6)1?Hq6KxM_O z)Wk7V4>>~8*fApG)N$ufiHoD-d|h;whb%ax8@mM{nd4_?dMLnFu>9X~6+Vz>^k6~a zm7|Oh7VME1W%~Q~U`SGLLx6D=>k3~kJdC&S&Z^yxR&Qu%`kB+Eq@*KBjUH&Eu#V_> z-n+NEmOU4nK3DCp9e8xohD5Mm{U1NcoiQ=tGOh3scK7fIgj~5yYY+nNF9sr=g2EON zVc)L`3kohH6RUldQVrLVlKPMNMjovDdoWhD2DlX{INi<4$#L0X`OrWl2%MQm*^LWH zDcEcUBgnp1IQ<(#$atE4Bb`mr{M1s8`~RZY-QY<+@y)ux(FM?K|}w@^{(GZ98OS>?Q>>^K%Ao50J9&raLn;^Yw*LinyesN!v?N z@mnn&1hoK+lc=vNVmb>358Ttqt&r=Kpw1aEW2$RDG9zMfIx|D`Sk$bGM% z{4hUqq(AHIPYBLfsVabtUlpa6QGU21G=d**Jf*N?ak_2H5>U-oC~65uWaZ%SU8kSi zTZqY&@z2GmD7Ig?Vk_XQ3`|V4_&^D+4WuK+9Km+7pZ0kvCKqmdcStS$Uz3hTE)(N{ zO)tul%coOdxrh?&(!|6Bt^veXJGAsC!N-urLbcoRR1ZPxGgw?KjZW@t=@13H(*95wz2XD|(TzDL%z^q$aSN9y#<3V%F){CGPS##MMEq1m4& zrLXv|T?ildH3iP4O`f4F{x%Xf8TV~sb#Zkq5P|Ri+53~Y?fxj{Pa=7NuB;<;HdD_{$8zf{P*E*`e+k#b0?x3giLhK5Ej z{u-;`Rg`Z~R)4E<_Na_~S#~BTJNu-X8e@i&sb~#gkA{Z*u&}R^(R#o(2vn^UrL7cm zt=1kFm!GCbZtddH%g@Q#3&+;o*vT#kqZ~iS#QiXjs6wTdNBfq+zY0~z$`_U$)4{D$cZa|+!un=g0m>-qoe_mi8K43aw#*5hRa&93*RUq2w zrrnyd7gfvZr${YX%gN0x4R?kWK&aKxzl0y;_kQPo3nFwyq1fi_l~^ZRLv8|K+Z24u zJME4-N4GsVeG~|_EEukA!Ni%V*kCezgo~ZXz)il z1dzvnqj&(+S0on4ZrJ9)jEOOSY)^-h-T_Sn-mnOV5Z={@p$VE9aR>Qxfjx94uob^% z{O>jMoP?tQ)Z>k0taKplsLi|)ABz>*;o0an5z9sr${5IZP*@}weahpeZ(yT`01)gp zjQbu?^Dph_w?G+Fq$A|>PO0)J2_)~zF zs+gO<-o{$Dtm?lTq+ostb3eG@r4OM|IJY53RV#}B52){xnwresaO%1Q!O?0k8A?#( znvIknrTus56<4sdfo0+6&oiQtzgjQ+33%i4?YU808BnkB7YT1C*Z%vtn+$09pl$q$ ze0r(!=eQ^j7gs3b&>#D!O-&5MgsrE&UDx%%kW=QTZjP^T;wS%!SPxmD4`!fXoZlAq z8D?|X-O3dK4b0P#=|isQ8_gYu>OvhcM?+l9eX!p3n5!#UQt{5BJ>kN?;QCd;2(w>g z>xz|)O-Hjk$}%O$Dcekx4=_}tiDIOvB4cJu3kyk0v(Zq2!NJ9C;UZ0n&YtnR0CKI; zjvqo4!noZu`NQi!1xUg#c@U*hkhb?8ImEBM z07gv3*h?R4fNCAaU#~|UqkZS7dK5od?K41}d-M|>;hx(C{jw^4>(6JbGlpPd4dxIF z`Ulpn@<;46ee7M*)7ttaYxmUy^>8b+!a6)5;Bgof^nZ(ydg4vvrlL|~yF9LzbFaJm zbfxoo?+2@AFpMf9Akc7aVJ&1po|xeXKpxS!S*KwIDt8$E2oIm{oxo%taYyH4Vd!Ib zK}BhUAtBl#urc^w(8BBCr36k27vjj_+$() z63BtjG}aL>Bl}mrf_L9|QK>Ea#r*9wL?4ZaF{hON^|?xXN=Rys@HPs^YUXSk*hn`c zlV^#GiM4?+NXH)HkK4PaD_2Aw48-*G%xQis=w@{;F#3vfu@oBH6Al|8N9}=)rab72 zgbCHl^)?3P=Hc+tJ6%s0E2#!TI;lbLJbUvFrk_mH^{O$LafFdkElLu@3CftD$+-7< zbD$M;H$xbC7F;8^nw3>K&#ZhpYdWk@Y&lpm!?!SyIj0S^mGalzb7#XYUsjcsm5umi zAuJ~5)1~DIE7}_EOI|G-_(rP-dt1mL5;CgRxy2rn}nkdiE_l zBoMt3(v)d*qjJa~z}p!7DRiO5ckTq{<>#L`V+f1&ODG?ni9aYTR6@d=w?3m$78$8N4#yCExsPudWNclAu(eRk1Fqly#~G&L#+Bz>^|>17y57m z!$yn~oj7BTMPHHS+8YW(J5q%0^D51__eFEAOD56fdv?hu|&M>YkPngIz~nruXz!5QRdOU>gsw&Zu`JlvV0A& zzA$pq5KxM~bB71Mp-Yqduaaz6rfe4bb*R8==?Q!#``u63Wj>#?0AYin_=_TRTtyZxkrJ8D;GQ?5Z2VMsb5PydcoI!ACf?z-c>`|W% z-c|UuNthK{T_k(Ui3`52g~e5X)oI5jQrScIRh2J-YJJ*lCylBr7z1$qoNLz}SVAEh zu>n1Z1Lmba+o7?QF;;zxv8ibq)Ej4zZ-cF>LPt5~0Kl^7b3ja0_^`b+Rqm}5EEd0?lp6or|G@L?qX#Ma#ln)P|S zYu4;1o3vom_wnbl^8Lr9e1CcHvfhnKn%VvHcjIT zh~{TzR&m;5*lmk&7;t_D%w*~1o0aR4FNi32O(nGo{G$HJ^-+k0YDj82*47&*fMlQ< zgtdBail|M6CLGBMkM&Bo14E3(`$AD<#>XAM7ljwH8%Z0V)P{^415`+6vB9)9mK@Nb@7GPv9YO$!{o$kux2SY^$x<0wOBf*9upN+10S8$z{1H)TxNE5 z4N|{9YN{x_G0=mlH@=lZ){?=~0^2$EF}8J8|HkF4AaM&R z(wwGkCiye`ecwT`ay+x3pb;97$n!Aq%|@CrR3y(HwDkSCd^3qgj0PwA_dkJ2NFU7H zFQSr^mXVUBpEC|P)UBj63BoUWG&(*mR0?J0<@ z%#;vNAzk*RVl8JrMmBKP;+9D2}V zUjGR%2n@K%u|TI#!9pnsvDZL@Q3s2HE@J2&hPGVUk)u56=?($*D(;q`SwZTP!Fx zmV4tTD*HLcDSbg)vQq z_3Z5XP(RX9l2|JV$-qkRg^>g2tZ|nOz$PW#y!mFl&xgEdfL!HqPBA}h7LX4CHnv0` znI{u*z}pQgaqa0y9N5;Ia$@zVPFDAFv!>#RR+hZ1tg&gO*AQc-;WVXydQ5|PdKFHo zst+y;Q2J%cQJVhC94A+>GN#Yj5;JaP3%hE^rgX}zV6JtH{t3h*F&iNWKE|Y&adp)O zO0;%E|M6R{>6Y6yXXtQReF8yu)_Q;BIWfoqV(xmeW} zLMoQamoN8XV8W>%jqH_o=x4ZJG^2E=OXhgV1+c5L$!iJ5B*wtMmO@y|PgUWRXTW)9 zKPWC*KY;=jfP+~sT)Tx4l2yL+6z#1q7VGNn9{Tyy+XtJnpMyP=r6>d?&Xh54_saJ5 zAy}-;y>4C6lTSLhq|J-pZY>_fW}4{zFFJ!G=@G>j5Pj0~Lu&#e%80Km1 zv=^ze7nZOCdIyD^4qUIG^5Iv~Z(KlGwaVi>u&QOUqg>#@t!dsBX*Q0F02tzR8GR4P zgp=Y!-v{gasl`8Yd%h#oHlpCGM>wrf*&K&Zk!qvaU?%nXHz6rL9>j+j?a z(9d2z7`0FQLcy*#8Ov1|aTSUIUQyT3c=*f|rAb?u84^ko(lDZl?n&&wdXCr}2sY#yI@JD8 zk|!Sz#HH1#K0a$msqfwEVyltr_=+mI?!!6)g%fV5E z7vMy25DQ)cP21wqgzy)sQ4WZ4w4zMyrSmM3pL8-nLN3{m<9 zs_^Q5%+3~3fD?x@DvZ@ACFY?ylr^_jRZG{ib9N5%XuL|3__`86H$a~1)5iTZu=N4^ z4O9Ia4y{*DDC|225PN(7lgTN!*7oIFAMx37?tl0gM6 zNMy)NA$dQ~dEbBF{pnoiI%l`{TI*TQbKl?lI|y0mN9$Z1yj}wIwt%DYi8m75Y)lgr_&Ym?Z50(@DzatJ6LloF5ksQ|b==?Y- z_rA@c4?P)k@{L&J8LLGGvTb2R5Xiupq^Lk!^c9QtS!~!hMIciH^RkwkKAH}K5OmvNqkz`@jo?m=e?cRAho2~_QnB{3? zdNc)&+D;d?eDUIn_pv?!8Dr)ZBfAW|TU^XS`EWKBOQ30+^H$0Z`Zq<(w_z?Qtk0R> zv6FC7#;bmecvZeo6rCIU*^BOgj?9kN=!#^hL{ckBxor;Qd=+<^A`p-R(P@C)kI&ci zEYK0`g;gR!Ruvbmy*R1b7j^1n;0Hb6S|RALcC+!CDcz|$6;g*a(#+wrn{Z^TcdXdg z&OlSR>~Haoael4^vsi(bV0(eS0*pf*i%Ry=ZHv_dgua#nrAtC{wRB z-yPEIC@0NR*~WX{4sHfB_HAKdozV9OF?)CwSCSTrp*`<%J@ae5(dz7s=GzyZ%;{rT z8+NX+VE~?dz+W`JK+qHnq+^RYBlYCNq!~iZ z*dHDJZ>r%Xfa9C2T@6diVts#w|437hk_))TBkU%DQwNu7?_sy|)az?zVc{l`AoBNO z8R{AuM$2~&DM8@B2GEB8a5Qd|0Jrj{hKIq#(k_27gvpv7&WpydbqgS-}6q{ZVd}78a?Y^;s`ktm4g;X&Na-z zPwW$#n@{}OJhH9lM0MbyQ*;W7!mpeC7Ijrxq^_Zn2jI>uS))*CTWF|EUz(_uS3i{L z9m=V8ZWOp76G7%1$WsKG@tHa@L3oa*4HiQhA<2I$YC^s$p7Y)jj0h-%G#v9GMr9qw zZE4M1O#D@>KwTc2MiD3tkZW*W829QexFOL+6_*B9#Q8;%%C>2ne}Bh0C|+3De4*}& z0yK_FzkJ!46SF7n+muJTQh&&O>48P-PS`9>uQ<=pyvM)IBLe?wzl7^?!i?vrFfW%vh*G1TfAFc^jAHtseFp} zO#K@w@lNsq|f#6*n{@?KyAJ|?%kq0B5M zL}r&TkQTkgOnR%u|bl&s>%*qNR?G8rvR5XoM*s@k~ z>!nW?jph+Qiw8y@{_4VO?y?{K{VrkrAUH8rmX?bITtKhs3|=dL^372QbC!fwJ0i80 z|0+01Gm|V4+A$i+#ccB8{`t6L)q!T~5gH8DUYqV_{p8X%i3G+qL>&KQjL!1bH;0FZ zSHgWtXMsx_6vU1Y1tm~gXZ@8m>Q~Vie`VvCG)BAfcZi3Rt>(cqd}_tw#nZ5HHPrP` zl$B;y(1X46$CocA^cVu!L}bGBRD{(A^T+k8KQgJ_9UdNpjBhX%gP6hsi0T*^+=eR* zy4;>dSMcruFAzKm`uA2!m>Wu{K!K0;;(CYE^JOt*?n~ZZKXUpS#;qT}!9cP#v+)sr zIulEj>}S`rni>}e&rEO-FjHh?=a;+hTUf~fd zSN+_G)@d;Ohy503p%>Ouz?4Rh=?hx1aA#V@K%=r&VL`kf16OxWp4<)JHSewOMqJ5)f`SAVvKg6&CARkV z4^LJ17$hyu4UQ)mgkj)f+t9aNEL}UZr*u0U8019+@^h&Wi3Cezv+o3EX=!S@?dd-u zZk%iZmKlA6&8HeW^oY3S$&xQ;vs2PGdxwSKX(AyiCdvp9hE*S>{EP=IC;@r2RZ7}Q z_gRUg!Jnpnd~*G7+cEu7ql~dER$z`*B7jG!_U+BV*DzQRB3fR?;$f|<-cbJ4|P#sH`yqq?Yf)(TTTWgwiOk@QT zAdIS3_K9p)a$tBKc6f%QnAfgRub+2P3D@Zd6!_`u?**F-+DY^*wDld(PLCe@;;~@C z*6rQ+`X(LAAWK+p`S7iC$RH_kGq>&5DluS2nlChiwsyn zW%a_g0!5|x3+rihXWUYR>9j)-6s|qKPSb`8bEr4HSW`;+k4yZ!JDxQOypKO{bnCm% zOqxd_RlD&}tU7}ilPkYdvV8vhT3e7Vz3fw6-g`<_5oi3-r5tKg&AK$8>p4zN3o&}6 zO76_66#S~1ucf_N{UVBCZ%oWZ{~T`3@+C`Tq>YW-+y)af*&RKLiiSofx|_7?R~3H; zv#$?=<4n+Q2V?_KejhK*!Y8sn@XDnpy1d~bfq}*u$8*yO?P@PskQH-sa+lRXld#-2 zwKUk|j|!l_JX3+1R+I&SMiQcic3i169o*x;I-gOz8>*{rHj6$f+AM<#42HbDY3&Xy zzdr*Ci>4r)p$9I!9Uu%TAx7WGb`WcKSa=raDz=ILlOJ>C66z*tTw)zv9ZIcck&n&7+< z>MPD`Dk>@xk$CAzBM%2jZ`lxLAD5duz~AG(-|;1(@YZW|C-i%8WgEtx zncm(}9{Z4nKsfU9^ejNc?VK6x=4x$cw~xj!o@uY|#`@6zWhV#p`6X4( z3jrJwBtlv4-Mbf(9z@_wv{(BpeA z2$Kx5u(04Dtl$V+)l;Jg^(5%zLH-|GnJbtep}Q5{x;%THs~f z1j-aVhNg6bfVNg`MW0|fQExIT?I34T*U-?xqT%oDX1ATsk(_2GC(D6ttBf4^4<+Dp zp66^CI%6L4v#TKh|kx+qyz%>K|eBvA3&?=t|&cQ8k* zy{V1=E>+)?gZrXHKfpk6HW8IR562%$YN0u=*Y#7XfrsMK76 zEuH7gISE14mS{clh`loPayg+HzaNZ>DtvoiTM32k!I+qPYn-y^&CHOl2|_7uLQ~eJ^Gvbe`SQ57_4w?v;f9^ptI{pCt&f(^nB7|D~FL4KtX zGru{>Mn#=q*7TGH^Z~=(ccZH6sPIxMi#mzM#mun3%+a8HS5B2^od)T`c68=^|KN-*nj6v4?9?JR+u^vb}*JDV&N$ z$Q8rJ83!=MFr_E#Ny^!7N6mxlKnU^yx?a&XIxN+*J|~XuSQcspwxFE(`7A_F@&DlU zbn-I-;a)u4%fi@)e1c$_gr#+E?VoP^IMJIjke_cIb?DF)ref=w(jEts!R57y=JO`N z-%cnHfKOJ>DeIMCM8>IihGe9|R%cnyQJ!k^f*UU~iXHfZgmw~u%0Z9=h6$vews0_q z&%9L69zO*}!6bFb7>N-@uKE3jq*70v*%+&6m8qI*!ckEDHPwN;gQyBqfZ|H{f~k}-f-fjtqF^?xcf>;Ec9{?- z?G!?QNpGO_pA2Z9)G6c=}Sh60yf zE)d=Yr!Dig5-7h_6V-N(LOWhZYmTNM6bFclE^UyjDBk2^)}EfJ5JF}5* zsjBLTd1l=PGY-aByg}2P7HaA1N6o`?CVu|)Ee<#^)v~kF$Omw|lGpB;DW%1ffLF)n7o7D7z>xS|=LP15S$pggqF|35DHkAi2v`c~3m599 zrqGMM#Ls!;igyN3SjGYu^`Ud_#Rf@xc2i=m-S7d17tooFToPnh6x-o_J}89^X}A#(wEsE;DR(XVL# zP@$UL)o+|Uq>WBIuVHFxocJckViDqTdE)4VGMo>YoMXKk|A;;|_r$?n$dU(XYC@mq zy(&~XEy%x61)76uRQN8Jt)_cI{u&K+h2=;+U~$T}#i47g{{-XL;fMIWgN6?u&NN%v zJ|Xp97hr*W>=%+LtK3;ze`HJ(gN-}ZD}{w2vd|xA;E`)Q3&}KH%@~`MsKBnQO~VJGIR5-k#9cUPu#CXq>|#)`VG{efZmo&2qbJ*RD4a ziVMCA*sA{SurOm*_GQ2Rh+Uanz;18@*xJV>p@|Np_J9s?<4?yXQhdg84)}F#1M->9 zo|;E_CA+BAOlm9bFkzG?F3!$NZ@PJB*vJ=_Hc8i_jKqM{8D{`X@)aV{OgDY6eAFzilmq-xnOG}K36<3*>b{H-vdxMd%%Yh)Df&Qu2 zqZ@1fVW{|x?J@*{{!Q^fD=X(%L-fhPI$|HgSr&#d9zLT-3}4|*JeK2^Sq<`s%*SJ5b(J9kdJRmA>$+a5@XIRxyY zm66yKUtc{To+GXngOcg!yDOSh{5M!-G1Z}Tn?eDhJz|8A%9DW-J0b33ZAFf>?mr`5 zVwcpbbI2T3`OD+~CY!0cX@qakobal4Mu`DO7La`&rmZU(6^i`bL9eH+ir`idqW2^p zE{7~crfXn)Lk<;x=3tq+sBmYG!$*#Ijc`q>IRp0r{LQYO?fMDNzz>wBTyO+iK*7Ejc9ZBig+(vO=rHWApvPc(vsN>H zTf`s=>hi26c=N5iwt_o*p2JY$_I7rFo=UC%T^}3^UWS zW>?fdf76vYz{Yj!)M3Hggxs@XOe|XwrvcLsx7PeFBYhk17b;CbxT~$H`Ea+FqJn~; z==1jq$A5jE_5RdQS*c)?Q%Q4{b(pKJkg~$cW#jobenD86TSSlbHYrHaBDxS31CRcp zg7&Yhp=7wZvu}xw*AxWw9C2jKFc4)P5Xp{>^t#TL%|JQJflNheM+nE!tQ4&-=psDJ zTJ{V1J~F;j8pD7*>F#PXJxZYN+xWD&$ZSBsYn)G@L%a642&o! zMSx;Hg>@+v0BnPeE(s1VT3Xg^5Q8kmdFzbt?3#dc*|BdweyB0I|20)t1Dh#N$QFWu zE0G9}4%al)b!a0%$ej5TbI?qyf~@E3kLv@Q zVEcEM+vCj^H2+K;I+V`?`MCJ&wq4ptBVSyMS#KsP0 zG<6C*!@U210Z*S_oyg`7C24G)Xf)?eAIy_mFP<=b$A_zDR(<<#&Lzf6E1u=L-c9?> zSi(jeMPAh&N*$v{&QBsgDp8as2AS)>s$u0%sNH^1D3!ckb6cq(pzZ64!jaco?NdP8 zyh!04E!YC^7$~N1tUGrPTvnrac)aA|dD(d&L-Vm{r)B+cES8jV=*2GHAge zXs)K!8Gq+*^e=mu*}Je^Yqp+w=(KPpw?y^6H+QARCxj{IT{>A;wJY;$q-=ieuRb;B zWs~NbuP{!v)r#L0KF1|5C}?J6q|?|p7f09sOSI-r>%Z4$X>2ai{A>6+`gL@`q`0y- z&%Vg!=H&b_oIH8tvZIBxp2wLe5Kj4|s%p(_N5@Trq@UE(Z2JCb%>QaOBU7GSn4S2@ z_Ue@CQwQV=bdIxkwqme1OJ%4j4d>9zf6!*|A2J&Hh*?!Fe0w(8Nzup{iE4HO{U&4OX z9@XhXXed*iFa8QK$y*k4IC~9kb9wf5uOAy^;6km>nb+*{EMvv7`E%#CMp^L=nqOR$OIqh2upex`-&WzQ z)547VUPDp?;L%Tjm}j)%}M3`u6SHqgbcH z!vm$)>g>6w9zHO8n&;p3vc6mAV<8f(Kc-Rr{P_*^j(ZTzWTVD1nb$k6!>s0Kxw$h! zjnGj3ol42{ZBuAfy)0Iak``_0@e+xVtV&5cyxJv!-6aw^DOq2MWUHJJYFSCJL`p Date: Thu, 14 Sep 2017 14:56:43 +0200 Subject: [PATCH 39/46] Make the robot bigger CURA-4215 --- resources/images/cura.png | Bin 29732 -> 31650 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/resources/images/cura.png b/resources/images/cura.png index 9657cf61afc0a6adf3adad72d747f728526eeba9..5d3335d70f2ce22ab7c17bc7e5a3987cbcf8553d 100644 GIT binary patch literal 31650 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 literal 29732 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Ν}l#BCK>k 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
{OF>glPsHLr6Cgv>rLrHdn0nwlPl``=)t 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 Date: Thu, 14 Sep 2017 15:55:35 +0200 Subject: [PATCH 40/46] Make canvas use a one-time Timer to update CURA-4182 The canvas approach has a drawback on the UI update: when a printcore or a material is changed, calling requestPaint() to the canvas doesn't trigger an immediate update. The solution is to have a built-in Timer in the Canvas and to use that to update. Somehow this just works. The problem with this approach is that the Timer constantly updates the canvas which eats a lot of CPU power. To solve this, I changed the timer to be a one-time timer and it will be started when there is a material/print core update. --- resources/qml/SidebarSimple.qml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/resources/qml/SidebarSimple.qml b/resources/qml/SidebarSimple.qml index 20d92885d7..bbfd8a424a 100644 --- a/resources/qml/SidebarSimple.qml +++ b/resources/qml/SidebarSimple.qml @@ -143,6 +143,7 @@ Item } } resolutionSlider.currentQualityIndex = undefined; + backgroundBarUpdateTimer.start(); } function updateBar() @@ -246,9 +247,10 @@ Item anchors.fill: parent Timer { - interval: 16 - running: true - repeat: true + id: backgroundBarUpdateTimer + interval: 10 + running: false + repeat: false onTriggered: backgroundBar.requestPaint() } From 11ebdf730389eca66bafc37be7c6a741c5641f46 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Thu, 14 Sep 2017 16:06:51 +0200 Subject: [PATCH 41/46] CURA-4269 disable auto-drop for first time loaded models from project files --- cura/PlatformPhysics.py | 11 ++++++++++- plugins/3MFReader/ThreeMFReader.py | 6 +++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/cura/PlatformPhysics.py b/cura/PlatformPhysics.py index b00c5a632c..464e9682a6 100755 --- a/cura/PlatformPhysics.py +++ b/cura/PlatformPhysics.py @@ -9,6 +9,7 @@ from UM.Scene.Iterator.BreadthFirstIterator import BreadthFirstIterator from UM.Math.Vector import Vector from UM.Scene.Selection import Selection from UM.Preferences import Preferences +from UM.Logger import Logger from cura.ConvexHullDecorator import ConvexHullDecorator @@ -67,10 +68,18 @@ class PlatformPhysics: # Move it downwards if bottom is above platform move_vector = Vector() - if Preferences.getInstance().getValue("physics/automatic_drop_down") and not (node.getParent() and node.getParent().callDecoration("isGroup")) and node.isEnabled(): #If an object is grouped, don't move it down + + # Check if this is the first time a project file node was loaded (disable auto drop in that case), defaults to True + should_auto_drop = node.getSetting("auto_drop", True) + + # If a node is grouped or it's loaded from a project file (auto-drop disabled), don't move it down + if Preferences.getInstance().getValue("physics/automatic_drop_down") and not (node.getParent() and node.getParent().callDecoration("isGroup")) and node.isEnabled() and should_auto_drop: z_offset = node.callDecoration("getZOffset") if node.getDecorator(ZOffsetDecorator.ZOffsetDecorator) else 0 move_vector = move_vector.set(y=-bbox.bottom + z_offset) + # Enable auto-drop after processing the project file node for the first time + node.setSetting("auto_drop", False) + # If there is no convex hull for the node, start calculating it and continue. if not node.getDecorator(ConvexHullDecorator): node.addDecorator(ConvexHullDecorator()) diff --git a/plugins/3MFReader/ThreeMFReader.py b/plugins/3MFReader/ThreeMFReader.py index d473ecaa8b..66dfb6130e 100755 --- a/plugins/3MFReader/ThreeMFReader.py +++ b/plugins/3MFReader/ThreeMFReader.py @@ -73,11 +73,11 @@ class ThreeMFReader(MeshReader): return temp_mat - - ## Convenience function that converts a SceneNode object (as obtained from libSavitar) to a Uranium scenenode. - # \returns Uranium Scenen node. + ## Convenience function that converts a SceneNode object (as obtained from libSavitar) to a Uranium SceneNode. + # \returns Uranium SceneNode. def _convertSavitarNodeToUMNode(self, savitar_node): um_node = SceneNode() + um_node.setSetting("auto_drop", False) # Disable the auto-drop feature when loading a project file and processing the nodes for the first time transformation = self._createMatrixFromTransformationString(savitar_node.getTransformation()) um_node.setTransformation(transformation) mesh_builder = MeshBuilder() From 51e257eda67d80658a17f272356eb63ab6a19320 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Thu, 14 Sep 2017 16:15:14 +0200 Subject: [PATCH 42/46] remove unused Logger import --- cura/PlatformPhysics.py | 1 - 1 file changed, 1 deletion(-) diff --git a/cura/PlatformPhysics.py b/cura/PlatformPhysics.py index 464e9682a6..dc5594dc7b 100755 --- a/cura/PlatformPhysics.py +++ b/cura/PlatformPhysics.py @@ -9,7 +9,6 @@ from UM.Scene.Iterator.BreadthFirstIterator import BreadthFirstIterator from UM.Math.Vector import Vector from UM.Scene.Selection import Selection from UM.Preferences import Preferences -from UM.Logger import Logger from cura.ConvexHullDecorator import ConvexHullDecorator From fb4b797335b262ce7e8578fb7b6bf29b55592d37 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Thu, 14 Sep 2017 16:43:42 +0200 Subject: [PATCH 43/46] fix duplicate dark theme entries --- resources/themes/cura-dark/theme.json | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/resources/themes/cura-dark/theme.json b/resources/themes/cura-dark/theme.json index 6b7edb6429..a9fb587526 100644 --- a/resources/themes/cura-dark/theme.json +++ b/resources/themes/cura-dark/theme.json @@ -16,7 +16,7 @@ "secondary": [241, 242, 242, 255], "topbar_background_color": [0, 0, 0, 0], - "topbar_background_color_monitoring": [0, 0, 0, 255], + "topbar_background_color_monitoring": [39, 44, 48, 255], "topbar_button_text_active": [255, 255, 255, 255], "topbar_button_text_inactive": [128, 128, 128, 255], @@ -36,7 +36,7 @@ "error": [212, 31, 53, 255], "sidebar_header_bar": [39, 44, 48, 255], "sidebar_header_active": [39, 44, 48, 255], - "sidebar_header_hover": [39, 44, 48, 255], + "sidebar_header_hover": [68, 72, 75, 255], "sidebar_header_highlight": [68, 192, 255, 255], "sidebar_header_highlight_hover": [68, 192, 255, 255], "sidebar_header_text_active": [255, 255, 255, 255], @@ -128,9 +128,9 @@ "progressbar_background": [255, 255, 255, 48], "progressbar_control": [255, 255, 255, 197], - "slider_groove": [245, 245, 245, 255], + "slider_groove": [127, 127, 127, 255], "slider_groove_border": [127, 127, 127, 255], - "slider_groove_fill": [127, 127, 127, 255], + "slider_groove_fill": [245, 245, 245, 255], "slider_handle": [255, 255, 255, 255], "slider_handle_hover": [77, 182, 226, 255], "slider_handle_border": [39, 44, 48, 255], @@ -197,11 +197,6 @@ "material_compatibility_warning": [255, 255, 255, 255], - "topbar_button_text_inactive": [255, 255, 255, 255], - "topbar_button_text_active": [255, 255, 255, 255], - "topbar_button_text_hovered": [255, 255, 255, 255], - "topbar_background_color_monitoring": [39, 44, 48, 255], - "quality_slider_unavailable": [179, 179, 179, 255], "quality_slider_available": [255, 255, 255, 255], "quality_slider_handle": [255, 255, 255, 255], From 05170155e8c767c444c46c960600ebd9afabe1e5 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Thu, 14 Sep 2017 16:49:09 +0200 Subject: [PATCH 44/46] CURA-4318 small fixes for dark design --- resources/themes/cura-dark/theme.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/themes/cura-dark/theme.json b/resources/themes/cura-dark/theme.json index a9fb587526..187896aa28 100644 --- a/resources/themes/cura-dark/theme.json +++ b/resources/themes/cura-dark/theme.json @@ -109,7 +109,7 @@ "setting_control": [43, 48, 52, 255], "setting_control_selected": [34, 39, 42, 38], - "setting_control_highlight": [255, 255, 255, 0], + "setting_control_highlight": [43, 48, 52, 255], "setting_control_border": [255, 255, 255, 38], "setting_control_border_highlight": [12, 169, 227, 255], "setting_control_text": [255, 255, 255, 181], From 4aa8d38bd3f7b6582d6fac72d29d71e6a88aa8c6 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Thu, 14 Sep 2017 17:06:26 +0200 Subject: [PATCH 45/46] CURA-4321 make sidebar a tad smaller --- resources/themes/cura-light/theme.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index fb6e43d0be..9a6e6c19eb 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -295,7 +295,7 @@ "extruder_button_material_margin": [0.70, 0.9], "extruder_button_material": [0.75, 0.75], - "sidebar": [35.0, 10.0], + "sidebar": [32.0, 10.0], "sidebar_margin": [1.71, 1.43], "sidebar_margin_thin": [0.71, 0.71], "sidebar_header": [0.0, 4.0], From a4ebedee830ca40d68ee4c89e0b9074fc0c6fd44 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Thu, 14 Sep 2017 17:40:44 +0200 Subject: [PATCH 46/46] CURA-4321 make print button blue when available, slight color changes on hover and pressed --- resources/qml/SaveButton.qml | 18 +++++++++--------- resources/themes/cura-light/theme.json | 8 ++++++++ 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/resources/qml/SaveButton.qml b/resources/qml/SaveButton.qml index 616017ebf6..2b7930793f 100644 --- a/resources/qml/SaveButton.qml +++ b/resources/qml/SaveButton.qml @@ -238,22 +238,22 @@ Item { if(!control.enabled) return UM.Theme.getColor("action_button_disabled_border"); else if(control.pressed) - return UM.Theme.getColor("action_button_active_border"); + return UM.Theme.getColor("print_button_ready_pressed_border"); else if(control.hovered) - return UM.Theme.getColor("action_button_hovered_border"); + return UM.Theme.getColor("print_button_ready_hovered_border"); else - return UM.Theme.getColor("action_button_border"); + return UM.Theme.getColor("print_button_ready_border"); } color: { if(!control.enabled) return UM.Theme.getColor("action_button_disabled"); else if(control.pressed) - return UM.Theme.getColor("action_button_active"); + return UM.Theme.getColor("print_button_ready_pressed"); else if(control.hovered) - return UM.Theme.getColor("action_button_hovered"); + return UM.Theme.getColor("print_button_ready_hovered"); else - return UM.Theme.getColor("action_button"); + return UM.Theme.getColor("print_button_ready"); } Behavior on color { ColorAnimation { duration: 50; } } @@ -268,11 +268,11 @@ Item { if(!control.enabled) return UM.Theme.getColor("action_button_disabled_text"); else if(control.pressed) - return UM.Theme.getColor("action_button_active_text"); + return UM.Theme.getColor("print_button_ready_text"); else if(control.hovered) - return UM.Theme.getColor("action_button_hovered_text"); + return UM.Theme.getColor("print_button_ready_text"); else - return UM.Theme.getColor("action_button_text"); + return UM.Theme.getColor("print_button_ready_text"); } font: UM.Theme.getFont("action_button") text: control.text; diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 9a6e6c19eb..92d51ae7d2 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -143,6 +143,14 @@ "action_button_disabled_text": [127, 127, 127, 255], "action_button_disabled_border": [245, 245, 245, 255], + "print_button_ready": [12, 169, 227, 255], + "print_button_ready_border": [12, 169, 227, 255], + "print_button_ready_text": [255, 255, 255, 255], + "print_button_ready_hovered": [12, 169, 255, 255], + "print_button_ready_hovered_border": [12, 169, 227, 255], + "print_button_ready_pressed": [12, 169, 220, 255], + "print_button_ready_pressed_border": [12, 169, 227, 255], + "scrollbar_background": [255, 255, 255, 255], "scrollbar_handle": [24, 41, 77, 255], "scrollbar_handle_hover": [12, 159, 227, 255],