From 799d1a5b0cf0634cfa1bdccb3fcd830cec737c58 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 11 Oct 2017 21:02:27 +0200 Subject: [PATCH 001/124] Updated setting items & sidebar to qtQuick controls 2.0 --- resources/qml/Settings/SettingCategory.qml | 169 +++++++++++++++++- resources/qml/Settings/SettingCheckBox.qml | 3 +- resources/qml/Settings/SettingComboBox.qml | 93 ++++------ resources/qml/Settings/SettingExtruder.qml | 124 ++++++------- resources/qml/Settings/SettingItem.qml | 3 +- .../qml/Settings/SettingOptionalExtruder.qml | 126 +++++++------ resources/qml/Settings/SettingTextField.qml | 2 +- resources/qml/Settings/SettingUnknown.qml | 2 +- resources/qml/Sidebar.qml | 74 ++------ 9 files changed, 342 insertions(+), 254 deletions(-) diff --git a/resources/qml/Settings/SettingCategory.qml b/resources/qml/Settings/SettingCategory.qml index 53f8f89e15..650ffdc4c6 100644 --- a/resources/qml/Settings/SettingCategory.qml +++ b/resources/qml/Settings/SettingCategory.qml @@ -2,17 +2,57 @@ // Uranium is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 -import QtQuick.Controls 1.1 -import QtQuick.Controls.Styles 1.1 -import QtQuick.Layouts 1.1 +import QtQuick.Controls 2.0 import UM 1.1 as UM import Cura 1.0 as Cura -Button { +Button +{ id: base; - - style: UM.Theme.styles.sidebar_category; + anchors.left: parent.left + anchors.right: parent.right + anchors.leftMargin: UM.Theme.getSize("sidebar_margin").width + anchors.rightMargin: UM.Theme.getSize("sidebar_margin").width + background: Rectangle + { + implicitHeight: UM.Theme.getSize("section").height; + color: { + if(base.color) { + return base.color; + } else if(!base.enabled) { + return UM.Theme.getColor("setting_category_disabled"); + } else if(base.hovered && base.checkable && base.checked) { + return UM.Theme.getColor("setting_category_active_hover"); + } else if(base.pressed || (base.checkable && base.checked)) { + return UM.Theme.getColor("setting_category_active"); + } else if(base.hovered) { + return UM.Theme.getColor("setting_category_hover"); + } else { + return UM.Theme.getColor("setting_category"); + } + } + Behavior on color { ColorAnimation { duration: 50; } } + Rectangle + { + height: UM.Theme.getSize("default_lining").height + width: parent.width + anchors.bottom: parent.bottom + color: { + if(!base.enabled) { + return UM.Theme.getColor("setting_category_disabled_border"); + } else if((base.hovered || base.activeFocus) && base.checkable && base.checked) { + return UM.Theme.getColor("setting_category_active_hover_border"); + } else if(base.pressed || (base.checkable && base.checked)) { + return UM.Theme.getColor("setting_category_active_border"); + } else if(base.hovered || base.activeFocus) { + return UM.Theme.getColor("setting_category_hover_border"); + } else { + return UM.Theme.getColor("setting_category_border"); + } + } + } + } signal showTooltip(string text) signal hideTooltip() @@ -23,8 +63,121 @@ Button { property var focusItem: base - text: definition.label - iconSource: UM.Theme.getIcon(definition.icon) + //text: definition.label + + contentItem: Item { + anchors.fill: parent; + anchors.left: parent.left + + Label { + anchors + { + left: parent.left + leftMargin: 2 * UM.Theme.getSize("default_margin").width + UM.Theme.getSize("section_icon").width + right: parent.right; + verticalCenter: parent.verticalCenter; + } + text: definition.label + font: UM.Theme.getFont("setting_category"); + color: + { + if(!base.enabled) + { + return UM.Theme.getColor("setting_category_disabled_text"); + } + else if((base.hovered || base.activeFocus) && base.checkable && base.checked) + { + return UM.Theme.getColor("setting_category_active_hover_text"); + } + else if(base.pressed || (base.checkable && base.checked)) + { + return UM.Theme.getColor("setting_category_active_text"); + } + else if(base.hovered || base.activeFocus) + { + return UM.Theme.getColor("setting_category_hover_text"); + } + else + { + return UM.Theme.getColor("setting_category_text"); + } + } + fontSizeMode: Text.HorizontalFit; + minimumPointSize: 8 + } + UM.RecolorImage + { + id: category_arrow + anchors.verticalCenter: parent.verticalCenter + anchors.right: parent.right + anchors.rightMargin: UM.Theme.getSize("default_margin").width * 3 - width / 2 + width: UM.Theme.getSize("standard_arrow").width + height: UM.Theme.getSize("standard_arrow").height + sourceSize.width: width + sourceSize.height: width + color: + { + if(!base.enabled) + { + return UM.Theme.getColor("setting_category_disabled_text"); + } + else if((base.hovered || base.activeFocus) && base.checkable && base.checked) + { + return UM.Theme.getColor("setting_category_active_hover_text"); + } + else if(base.pressed || (base.checkable && base.checked)) + { + return UM.Theme.getColor("setting_category_active_text"); + } + else if(base.hovered || base.activeFocus) + { + return UM.Theme.getColor("setting_category_hover_text"); + } + else + { + return UM.Theme.getColor("setting_category_text"); + } + } + source: base.checked ? UM.Theme.getIcon("arrow_bottom") : UM.Theme.getIcon("arrow_left") + } + } + + UM.RecolorImage + { + id: icon + anchors.verticalCenter: parent.verticalCenter + anchors.left: parent.left + anchors.leftMargin: UM.Theme.getSize("default_margin").width + color: + { + if(!base.enabled) + { + return UM.Theme.getColor("setting_category_disabled_text"); + } + else if((base.hovered || base.activeFocus) && base.checkable && base.checked) + { + return UM.Theme.getColor("setting_category_active_hover_text"); + } + else if(base.pressed || (base.checkable && base.checked)) + { + return UM.Theme.getColor("setting_category_active_text"); + } + else if(base.hovered || base.activeFocus) + { + return UM.Theme.getColor("setting_category_hover_text"); + } + else + { + return UM.Theme.getColor("setting_category_text"); + } + } + source: UM.Theme.getIcon(definition.icon) + width: UM.Theme.getSize("section_icon").width; + height: UM.Theme.getSize("section_icon").height; + sourceSize.width: width + 15 * screenScaleFactor + sourceSize.height: width + 15 * screenScaleFactor + } + checkable: true checked: definition.expanded diff --git a/resources/qml/Settings/SettingCheckBox.qml b/resources/qml/Settings/SettingCheckBox.qml index 9029249249..651ee91366 100644 --- a/resources/qml/Settings/SettingCheckBox.qml +++ b/resources/qml/Settings/SettingCheckBox.qml @@ -3,8 +3,7 @@ import QtQuick 2.1 import QtQuick.Layouts 1.1 -import QtQuick.Controls 1.1 -import QtQuick.Controls.Styles 1.1 +import QtQuick.Controls 2.0 import UM 1.2 as UM diff --git a/resources/qml/Settings/SettingComboBox.qml b/resources/qml/Settings/SettingComboBox.qml index f2ec5fda65..eaa22e1a9f 100644 --- a/resources/qml/Settings/SettingComboBox.qml +++ b/resources/qml/Settings/SettingComboBox.qml @@ -2,8 +2,7 @@ // Uranium is released under the terms of the LGPLv3 or higher. import QtQuick 2.1 -import QtQuick.Controls 1.1 -import QtQuick.Controls.Styles 1.1 +import QtQuick.Controls 2.0 import UM 1.1 as UM @@ -28,73 +27,59 @@ SettingItem onWheel: wheel.accepted = true; } - style: ComboBoxStyle + background: Rectangle { - background: Rectangle + color: { - color: + if(!enabled) { - if(!enabled) - { - return UM.Theme.getColor("setting_control_disabled") - } - if(control.hovered || control.activeFocus) - { - return UM.Theme.getColor("setting_control_highlight") - } - return UM.Theme.getColor("setting_control") + return UM.Theme.getColor("setting_control_disabled") } - border.width: UM.Theme.getSize("default_lining").width - border.color: + if(control.hovered || control.activeFocus) { - if(!enabled) - { - return UM.Theme.getColor("setting_control_disabled_border") - } - if(control.hovered || control.activeFocus) - { - return UM.Theme.getColor("setting_control_border_highlight") - } - return UM.Theme.getColor("setting_control_border") + return UM.Theme.getColor("setting_control_highlight") } + return UM.Theme.getColor("setting_control") } - label: Item + border.width: UM.Theme.getSize("default_lining").width + border.color: { - Label + if(!enabled) { - anchors.left: parent.left; - anchors.leftMargin: UM.Theme.getSize("default_lining").width - anchors.right: downArrow.left; - anchors.rightMargin: UM.Theme.getSize("default_lining").width; - anchors.verticalCenter: parent.verticalCenter; - - text: control.currentText; - font: UM.Theme.getFont("default"); - color: !enabled ? UM.Theme.getColor("setting_control_disabled_text") : UM.Theme.getColor("setting_control_text"); - - elide: Text.ElideRight; - verticalAlignment: Text.AlignVCenter; + return UM.Theme.getColor("setting_control_disabled_border") } - - UM.RecolorImage + if(control.hovered || control.activeFocus) { - id: downArrow - anchors.right: parent.right; - anchors.rightMargin: UM.Theme.getSize("default_lining").width * 2; - anchors.verticalCenter: parent.verticalCenter; - - source: UM.Theme.getIcon("arrow_bottom") - width: UM.Theme.getSize("standard_arrow").width - height: UM.Theme.getSize("standard_arrow").height - sourceSize.width: width + 5 * screenScaleFactor - sourceSize.height: width + 5 * screenScaleFactor - - color: UM.Theme.getColor("setting_control_text"); - + return UM.Theme.getColor("setting_control_border_highlight") } + return UM.Theme.getColor("setting_control_border") } } + indicator: UM.RecolorImage + { + id: downArrow + x: control.width - width - control.rightPadding + y: control.topPadding + (control.availableHeight - height) / 2 + + source: UM.Theme.getIcon("arrow_bottom") + width: UM.Theme.getSize("standard_arrow").width + height: UM.Theme.getSize("standard_arrow").height + sourceSize.width: width + 5 * screenScaleFactor + sourceSize.height: width + 5 * screenScaleFactor + + color: UM.Theme.getColor("setting_control_text"); + } + + contentItem: Label + { + text: control.currentText; + font: UM.Theme.getFont("default"); + color: !enabled ? UM.Theme.getColor("setting_control_disabled_text") : UM.Theme.getColor("setting_control_text"); + elide: Text.ElideRight; + verticalAlignment: Text.AlignVCenter; + } + onActivated: { forceActiveFocus(); diff --git a/resources/qml/Settings/SettingExtruder.qml b/resources/qml/Settings/SettingExtruder.qml index ca99640f6d..0568343b8c 100644 --- a/resources/qml/Settings/SettingExtruder.qml +++ b/resources/qml/Settings/SettingExtruder.qml @@ -2,8 +2,7 @@ // Uranium is released under the terms of the LGPLv3 or higher. import QtQuick 2.1 -import QtQuick.Controls 1.1 -import QtQuick.Controls.Styles 1.1 +import QtQuick.Controls 2.0 import UM 1.1 as UM import Cura 1.0 as Cura @@ -65,83 +64,78 @@ SettingItem value: control.currentText != "" ? control.model.getItem(control.currentIndex).color : "" } - style: ComboBoxStyle + indicator: UM.RecolorImage { - background: Rectangle + id: downArrow + x: control.width - width - control.rightPadding + y: control.topPadding + (control.availableHeight - height) / 2 + + source: UM.Theme.getIcon("arrow_bottom") + width: UM.Theme.getSize("standard_arrow").width + height: UM.Theme.getSize("standard_arrow").height + sourceSize.width: width + 5 * screenScaleFactor + sourceSize.height: width + 5 * screenScaleFactor + + color: UM.Theme.getColor("setting_control_text"); + } + + background: Rectangle + { + color: { - color: + if(!enabled) { - if(!enabled) - { - return UM.Theme.getColor("setting_control_disabled"); - } - if(control.hovered || base.activeFocus) - { - return UM.Theme.getColor("setting_control_highlight"); - } - return UM.Theme.getColor("setting_control"); + return UM.Theme.getColor("setting_control_disabled"); } - border.width: UM.Theme.getSize("default_lining").width - border.color: + if(control.hovered || base.activeFocus) { - if(!enabled) - { - return UM.Theme.getColor("setting_control_disabled_border") - } - if(control.hovered || control.activeFocus) - { - return UM.Theme.getColor("setting_control_border_highlight") - } - return UM.Theme.getColor("setting_control_border") + return UM.Theme.getColor("setting_control_highlight"); } + return UM.Theme.getColor("setting_control"); } - label: Item + border.width: UM.Theme.getSize("default_lining").width + border.color: { - Label + if(!enabled) { - id: extruderText - anchors.verticalCenter: parent.verticalCenter - - text: control.currentText - font: UM.Theme.getFont("default") - color: enabled ? UM.Theme.getColor("setting_control_text") : UM.Theme.getColor("setting_control_disabled_text") - - elide: Text.ElideLeft - verticalAlignment: Text.AlignVCenter + return UM.Theme.getColor("setting_control_disabled_border") } - Rectangle + if(control.hovered || control.activeFocus) { - id: swatch - height: UM.Theme.getSize("setting_control").height / 2 - width: height - - anchors - { - right: arrow.left - verticalCenter: parent.verticalCenter - margins: UM.Theme.getSize("default_margin").width / 4 - } - - border.width: UM.Theme.getSize("default_lining").width * 2 - border.color: enabled ? UM.Theme.getColor("setting_control_border") : UM.Theme.getColor("setting_control_disabled_border") - radius: width / 2 - - color: control.color + return UM.Theme.getColor("setting_control_border_highlight") } - UM.RecolorImage - { - id: arrow - anchors.right: parent.right - anchors.verticalCenter: parent.verticalCenter + return UM.Theme.getColor("setting_control_border") + } + } + contentItem: Item + { + Label + { + id: extruderText + anchors.verticalCenter: parent.verticalCenter + anchors.left: parent.left + anchors.right: swatch.left + text: control.currentText + font: UM.Theme.getFont("default") + color: enabled ? UM.Theme.getColor("setting_control_text") : UM.Theme.getColor("setting_control_disabled_text") - source: UM.Theme.getIcon("arrow_bottom") - width: UM.Theme.getSize("standard_arrow").width - height: UM.Theme.getSize("standard_arrow").height - sourceSize.width: width + 5 * screenScaleFactor - sourceSize.height: width + 5 * screenScaleFactor + elide: Text.ElideLeft + verticalAlignment: Text.AlignVCenter + } + Rectangle + { + id: swatch + height: UM.Theme.getSize("setting_control").height / 2 + width: height - color: UM.Theme.getColor("setting_control_text") - } + anchors.right: parent.right + anchors.rightMargin: control.indicator.width + control.spacing + + border.width: UM.Theme.getSize("default_lining").width * 2 + border.color: enabled ? UM.Theme.getColor("setting_control_border") : UM.Theme.getColor("setting_control_disabled_border") + radius: width / 2 + + color: control.color } } } diff --git a/resources/qml/Settings/SettingItem.qml b/resources/qml/Settings/SettingItem.qml index 2bf2c17273..ff978e0d6f 100644 --- a/resources/qml/Settings/SettingItem.qml +++ b/resources/qml/Settings/SettingItem.qml @@ -3,8 +3,7 @@ import QtQuick 2.1 import QtQuick.Layouts 1.1 -import QtQuick.Controls 1.1 -import QtQuick.Controls.Styles 1.1 +import QtQuick.Controls 2.0 import UM 1.1 as UM import Cura 1.0 as Cura diff --git a/resources/qml/Settings/SettingOptionalExtruder.qml b/resources/qml/Settings/SettingOptionalExtruder.qml index 1c286fcd2d..43588edfce 100644 --- a/resources/qml/Settings/SettingOptionalExtruder.qml +++ b/resources/qml/Settings/SettingOptionalExtruder.qml @@ -2,8 +2,7 @@ // Uranium is released under the terms of the LGPLv3 or higher. import QtQuick 2.1 -import QtQuick.Controls 1.1 -import QtQuick.Controls.Styles 1.1 +import QtQuick.Controls 2.0 import UM 1.1 as UM import Cura 1.0 as Cura @@ -84,83 +83,80 @@ SettingItem value: control.currentText != "" ? control.model.getItem(control.currentIndex).color : "" } - style: ComboBoxStyle + indicator: UM.RecolorImage { - background: Rectangle + id: downArrow + x: control.width - width - control.rightPadding + y: control.topPadding + (control.availableHeight - height) / 2 + + source: UM.Theme.getIcon("arrow_bottom") + width: UM.Theme.getSize("standard_arrow").width + height: UM.Theme.getSize("standard_arrow").height + sourceSize.width: width + 5 * screenScaleFactor + sourceSize.height: width + 5 * screenScaleFactor + + color: UM.Theme.getColor("setting_control_text"); + } + + background: Rectangle + { + color: { - color: + if(!enabled) { - if(!enabled) - { - return UM.Theme.getColor("setting_control_disabled"); - } - if(control.hovered || control.activeFocus) - { - return UM.Theme.getColor("setting_control_highlight"); - } - return UM.Theme.getColor("setting_control"); + return UM.Theme.getColor("setting_control_disabled"); } - border.width: UM.Theme.getSize("default_lining").width - border.color: + if(control.hovered || control.activeFocus) { - if(!enabled) - { - return UM.Theme.getColor("setting_control_disabled_border") - } - if(control.hovered || control.activeFocus) - { - return UM.Theme.getColor("setting_control_border_highlight") - } - return UM.Theme.getColor("setting_control_border") + return UM.Theme.getColor("setting_control_highlight"); } + return UM.Theme.getColor("setting_control"); } - label: Item + border.width: UM.Theme.getSize("default_lining").width + border.color: { - Label + if(!enabled) { - anchors.verticalCenter: parent.verticalCenter - width: parent.width - swatch.width - arrow.width; - - text: control.currentText - font: UM.Theme.getFont("default") - color: enabled ? UM.Theme.getColor("setting_control_text") : UM.Theme.getColor("setting_control_disabled_text") - - elide: Text.ElideRight - verticalAlignment: Text.AlignVCenter + return UM.Theme.getColor("setting_control_disabled_border") } - Rectangle + if(control.hovered || control.activeFocus) { - id: swatch - height: UM.Theme.getSize("setting_control").height / 2 - width: height - - anchors - { - right: arrow.left; - verticalCenter: parent.verticalCenter - margins: UM.Theme.getSize("default_margin").width / 4 - } - - border.width: UM.Theme.getSize("default_lining").width * 2 - border.color: enabled ? UM.Theme.getColor("setting_control_border") : UM.Theme.getColor("setting_control_disabled_border") - radius: width / 2 - - color: control.color + return UM.Theme.getColor("setting_control_border_highlight") } - UM.RecolorImage - { - id: arrow - anchors.right: parent.right - anchors.verticalCenter: parent.verticalCenter + return UM.Theme.getColor("setting_control_border") + } + } - source: UM.Theme.getIcon("arrow_bottom") - width: UM.Theme.getSize("standard_arrow").width - height: UM.Theme.getSize("standard_arrow").height - sourceSize.width: width + 5 * screenScaleFactor - sourceSize.height: width + 5 * screenScaleFactor + contentItem: Item + { + Label + { + id: extruderText + anchors.verticalCenter: parent.verticalCenter + anchors.left: parent.left + anchors.right: swatch.left - color: UM.Theme.getColor("setting_control_text") - } + text: control.currentText + font: UM.Theme.getFont("default") + color: enabled ? UM.Theme.getColor("setting_control_text") : UM.Theme.getColor("setting_control_disabled_text") + + elide: Text.ElideRight + verticalAlignment: Text.AlignVCenter + } + Rectangle + { + id: swatch + height: UM.Theme.getSize("setting_control").height / 2 + width: height + + anchors.right: parent.right + anchors.rightMargin: control.indicator.width + control.spacing + + border.width: UM.Theme.getSize("default_lining").width * 2 + border.color: enabled ? UM.Theme.getColor("setting_control_border") : UM.Theme.getColor("setting_control_disabled_border") + radius: width / 2 + + color: control.color } } } diff --git a/resources/qml/Settings/SettingTextField.qml b/resources/qml/Settings/SettingTextField.qml index ffc169af1a..5259df5876 100644 --- a/resources/qml/Settings/SettingTextField.qml +++ b/resources/qml/Settings/SettingTextField.qml @@ -2,7 +2,7 @@ // Uranium is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 -import QtQuick.Controls 1.2 +import QtQuick.Controls 2.0 import UM 1.1 as UM diff --git a/resources/qml/Settings/SettingUnknown.qml b/resources/qml/Settings/SettingUnknown.qml index f4dadf8d75..bca786dc0d 100644 --- a/resources/qml/Settings/SettingUnknown.qml +++ b/resources/qml/Settings/SettingUnknown.qml @@ -2,7 +2,7 @@ // Uranium is released under the terms of the LGPLv3 or higher. import QtQuick 2.1 -import QtQuick.Controls 1.1 +import QtQuick.Controls 2.0 import UM 1.2 as UM diff --git a/resources/qml/Sidebar.qml b/resources/qml/Sidebar.qml index a82651defe..bc8c1834d8 100755 --- a/resources/qml/Sidebar.qml +++ b/resources/qml/Sidebar.qml @@ -2,8 +2,7 @@ // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 -import QtQuick.Controls 1.1 -import QtQuick.Controls.Styles 1.1 +import QtQuick.Controls 2.0 import QtQuick.Layouts 1.1 import UM 1.2 as UM @@ -110,7 +109,7 @@ Rectangle UM.Preferences.setValue("cura/active_mode", currentModeIndex); if(modesListModel.count > base.currentModeIndex) { - sidebarContents.push({ "item": modesListModel.get(base.currentModeIndex).item, "replace": true }); + sidebarContents.push(modesListModel.get(base.currentModeIndex).item, {"replace": true }); } } @@ -156,7 +155,7 @@ Rectangle anchors.verticalCenter: parent.verticalCenter width: Math.floor(0.5 * parent.width) text: model.text - exclusiveGroup: modeMenuGroup; + ButtonGroup.group: modeMenuGroup; checkable: true; checked: base.currentModeIndex == index onClicked: base.currentModeIndex = index @@ -175,36 +174,9 @@ Rectangle } } - style: ButtonStyle { - background: Rectangle { - border.width: control.checked ? UM.Theme.getSize("default_lining").width * 2 : UM.Theme.getSize("default_lining").width - border.color: (control.checked || control.pressed) ? UM.Theme.getColor("action_button_active_border") : - control.hovered ? UM.Theme.getColor("action_button_hovered_border") : - UM.Theme.getColor("action_button_border") - color: (control.checked || control.pressed) ? UM.Theme.getColor("action_button_active") : - control.hovered ? UM.Theme.getColor("action_button_hovered") : - UM.Theme.getColor("action_button") - Behavior on color { ColorAnimation { duration: 50; } } - Label { - anchors.left: parent.left - anchors.right: parent.right - anchors.verticalCenter: parent.verticalCenter - anchors.leftMargin: UM.Theme.getSize("default_lining").width * 2 - anchors.rightMargin: UM.Theme.getSize("default_lining").width * 2 - color: (control.checked || control.pressed) ? UM.Theme.getColor("action_button_active_text") : - control.hovered ? UM.Theme.getColor("action_button_hovered_text") : - UM.Theme.getColor("action_button_text") - font: UM.Theme.getFont("default") - text: control.text - horizontalAlignment: Text.AlignHCenter - elide: Text.ElideMiddle - } - } - label: Item { } - } } } - ExclusiveGroup { id: modeMenuGroup; } + ButtonGroup { id: modeMenuGroup; } ListView { @@ -229,31 +201,21 @@ Rectangle anchors.right: base.right visible: !monitoringPrint && !hideSettings - delegate: StackViewDelegate - { - function transitionFinished(properties) - { - properties.exitItem.opacity = 1 + pushEnter:Transition { + PropertyAnimation { + property: "opacity" + from: 0 + to:1 + duration: 100 } + } - pushTransition: StackViewTransition - { - PropertyAnimation - { - target: enterItem - property: "opacity" - from: 0 - to: 1 - duration: 100 - } - PropertyAnimation - { - target: exitItem - property: "opacity" - from: 1 - to: 0 - duration: 100 - } + pushExit: Transition { + PropertyAnimation { + property: "opacity" + from: 1 + to:0 + duration: 100 } } } @@ -488,7 +450,7 @@ Rectangle tooltipText: catalog.i18nc("@tooltip", "Custom Print Setup

Print with finegrained control over every last bit of the slicing process."), item: sidebarAdvanced }) - sidebarContents.push({ "item": modesListModel.get(base.currentModeIndex).item, "immediate": true }); + sidebarContents.push( modesListModel.get(base.currentModeIndex).item, {"immediate": true }); var index = Math.floor(UM.Preferences.getValue("cura/active_mode")) if(index) From 1491c37485c49750c0f13dade58343406b0e1d7c Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 3 Nov 2017 16:03:28 +0100 Subject: [PATCH 002/124] Don't crash if support density is 0 Found while working on CURA-4523. --- resources/definitions/fdmprinter.def.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index cffaa1df3d..459d1911b1 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -3495,7 +3495,7 @@ "minimum_value_warning": "support_line_width", "default_value": 2.66, "enabled": "support_enable", - "value": "(support_line_width * 100) / support_infill_rate * (2 if support_pattern == 'grid' else (3 if support_pattern == 'triangles' else 1))", + "value": "0 if support_infill_rate == 0 else (support_line_width * 100) / support_infill_rate * (2 if support_pattern == 'grid' else (3 if support_pattern == 'triangles' else 1))", "limit_to_extruder": "support_infill_extruder_nr", "settable_per_mesh": false, "settable_per_extruder": true @@ -5127,7 +5127,7 @@ "description": "Skip one in every N connection lines to make the support structure easier to break away.", "type": "int", "default_value": 5, - "value": "round(support_skip_zag_per_mm / support_line_distance)", + "value": "0 if support_line_distance == 0 else round(support_skip_zag_per_mm / support_line_distance)", "minimum_value": "1", "minimum_value_warning": "3", "enabled": "support_enable and (support_pattern == 'zigzag') and support_skip_some_zags", From f89c494274adf473fb699906f43b87411f7f4f0c Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 3 Nov 2017 09:24:46 +0100 Subject: [PATCH 003/124] Add settings for tree support These three to start with. I don't know if I can implement more. We'll see about that later. Contributes to issue CURA-4523. --- resources/definitions/fdmprinter.def.json | 38 +++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 459d1911b1..815fed7390 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -3655,6 +3655,44 @@ "limit_to_extruder": "support_infill_extruder_nr", "settable_per_mesh": false }, + "support_tree_enable": + { + "label": "Tree Support", + "description": "Generate a tree-like support with branches that support your print. This may reduce material usage and print time.", + "type": "bool", + "default_value": false, + "settable_per_mesh": true + }, + "support_tree_angle": + { + "label": "Tree Support Branch Angle", + "description": "The angle of the branches. Use a lower angle to make them more vertical and more stable. Use a higher angle to be able to have more reach.", + "unit": "°", + "type": "float", + "minimum_value": "0", + "maximum_value": "90", + "maximum_value_warning": "60", + "default_value": 40, + "limit_to_extruder": "support_infill_extruder_nr", + "enabled": "support_tree_enable", + "settable_per_mesh": false, + "settable_per_extruder": true + }, + "support_tree_wall_thickness": + { + "label": "Tree Support Wall Thickness", + "description": "The thickness of the walls of the tree support. Thicker walls take longer to print but are more stable.", + "unit": "mm", + "type": "float", + "minimum_value": "0", + "minimum_value_warning": "wall_line_width", + "default_value": 0.8, + "value": "wall_line_width * 2", + "limit_to_extruder": "support_infill_extruder_nr", + "enabled": "support_tree_enable", + "settable_per_mesh": false, + "settable_per_extruder": true + }, "gradual_support_infill_steps": { "label": "Gradual Support Infill Steps", From 72c32bac3a16182ed99a7a89cad7d90f1fdb2cb0 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 3 Nov 2017 10:55:23 +0100 Subject: [PATCH 004/124] Add tree support wall line count setting I knew I forgot one. Contributes to issue CURA-4523. --- resources/definitions/fdmprinter.def.json | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 815fed7390..c2a069aa6e 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -3681,7 +3681,7 @@ "support_tree_wall_thickness": { "label": "Tree Support Wall Thickness", - "description": "The thickness of the walls of the tree support. Thicker walls take longer to print but are more stable.", + "description": "The thickness of the walls of the branches of tree support. Thicker walls take longer to print but don't fall over as easily.", "unit": "mm", "type": "float", "minimum_value": "0", @@ -3691,7 +3691,24 @@ "limit_to_extruder": "support_infill_extruder_nr", "enabled": "support_tree_enable", "settable_per_mesh": false, - "settable_per_extruder": true + "settable_per_extruder": true, + "children": + { + "support_tree_wall_line_count": + { + "label": "Tree Support Wall Line Count", + "description": "The number of walls of the branches of tree support. Thicker walls take longer to print but don't fall over as easily.", + "type": "int", + "minimum_value": "0", + "minimum_value_warning": "1", + "default_value": 2, + "value": "round(support_tree_wall_thickness / support_line_width)", + "limit_to_extruder": "support_infill_extruder_nr", + "enabled": "support_tree_enable", + "settable_per_mesh": false, + "settable_per_extruder": true + } + } }, "gradual_support_infill_steps": { From 5b368fbfd5e8c588b6679c62fb81f20a47052489 Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Mon, 6 Nov 2017 09:25:42 +0100 Subject: [PATCH 005/124] CURA-4104 added first sucky build plate selection options --- cura/BuildPlateModel.py | 2 + cura/CuraActions.py | 43 +++++++++++++++++++ cura/CuraApplication.py | 36 +++++++++++++++- .../SetBuildPlateNumberOperation.py | 27 ++++++++++++ cura/Scene/BuildPlateDecorator.py | 34 +++++++++++++++ resources/qml/Menus/ContextMenu.qml | 20 +++++++++ resources/qml/Menus/ViewMenu.qml | 19 ++++++++ 7 files changed, 179 insertions(+), 2 deletions(-) create mode 100644 cura/BuildPlateModel.py create mode 100644 cura/Operations/SetBuildPlateNumberOperation.py create mode 100644 cura/Scene/BuildPlateDecorator.py diff --git a/cura/BuildPlateModel.py b/cura/BuildPlateModel.py new file mode 100644 index 0000000000..139597f9cb --- /dev/null +++ b/cura/BuildPlateModel.py @@ -0,0 +1,2 @@ + + diff --git a/cura/CuraActions.py b/cura/CuraActions.py index b51728f028..663da3ec09 100644 --- a/cura/CuraActions.py +++ b/cura/CuraActions.py @@ -19,6 +19,11 @@ from cura.MultiplyObjectsJob import MultiplyObjectsJob from cura.Settings.SetObjectExtruderOperation import SetObjectExtruderOperation from cura.Settings.ExtruderManager import ExtruderManager +from cura.Operations.SetBuildPlateNumberOperation import SetBuildPlateNumberOperation + +from UM.Logger import Logger + + class CuraActions(QObject): def __init__(self, parent = None): super().__init__(parent) @@ -124,5 +129,43 @@ class CuraActions(QObject): operation.addOperation(SetObjectExtruderOperation(node, extruder_id)) operation.push() + @pyqtSlot(int) + def setBuildPlateForSelection(self, build_plate_nr: int) -> None: + Logger.log("d", "Setting build plate number... %d" % build_plate_nr) + operation = GroupedOperation() + + nodes_to_change = [] + for node in Selection.getAllSelectedObjects(): + # Do not change any nodes that already have the right extruder set. + if node.callDecoration("getBuildPlateNumber") == build_plate_nr: + continue + + # If the node is a group, apply the active extruder to all children of the group. + if node.callDecoration("isGroup"): + for grouped_node in BreadthFirstIterator(node): + if grouped_node.callDecoration("getBuildPlateNumber") == build_plate_nr: + continue + + if grouped_node.callDecoration("isGroup"): + continue + + nodes_to_change.append(grouped_node) + continue + + nodes_to_change.append(node) + + if not nodes_to_change: + Logger.log("d", "Nothing to change.") + # If there are no changes to make, we still need to reset the selected extruders. + # This is a workaround for checked menu items being deselected while still being + # selected. + #ExtruderManager.getInstance().resetSelectedObjectExtruders() + return + + Logger.log("d", "Yes: %s", nodes_to_change) + for node in nodes_to_change: + operation.addOperation(SetBuildPlateNumberOperation(node, build_plate_nr)) + operation.push() + def _openUrl(self, url): QDesktopServices.openUrl(url) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index b09371ae0d..ff8dfd021a 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -1,4 +1,5 @@ # Copyright (c) 2017 Ultimaker B.V. +# Copyright (c) 2017 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. from PyQt5.QtNetwork import QLocalServer @@ -53,6 +54,9 @@ from cura.Settings.SettingInheritanceManager import SettingInheritanceManager from cura.Settings.UserProfilesModel import UserProfilesModel from cura.Settings.SimpleModeSettingsManager import SimpleModeSettingsManager +# research +from cura.Scene.BuildPlateDecorator import BuildPlateDecorator + from . import PlatformPhysics from . import BuildVolume from . import CameraAnimation @@ -376,6 +380,10 @@ class CuraApplication(QtApplication): self._plugin_registry.addSupportedPluginExtension("curaplugin", "Cura Plugin") + # research + self._num_build_plates = 1 # default + self._active_build_plate = 1 + def _onEngineCreated(self): self._engine.addImageProvider("camera", CameraImageProvider.CameraImageProvider()) @@ -855,6 +863,8 @@ class CuraApplication(QtApplication): activityChanged = pyqtSignal() sceneBoundingBoxChanged = pyqtSignal() preferredOutputMimetypeChanged = pyqtSignal() + numBuildPlatesChanged = pyqtSignal() + activeBuildPlateChanged = pyqtSignal() @pyqtProperty(bool, notify = activityChanged) def platformActivity(self): @@ -1025,7 +1035,7 @@ class CuraApplication(QtApplication): op.push() Selection.clear() - ## Reset all translation on nodes with mesh data. + ## Reset all translation on nodes with mesh data. @pyqtSlot() def resetAllTranslation(self): Logger.log("i", "Resetting all scene translations") @@ -1150,7 +1160,7 @@ class CuraApplication(QtApplication): job.start() else: Logger.log("w", "Unable to reload data because we don't have a filename.") - + ## Get logging data of the backend engine # \returns \type{string} Logging data @pyqtSlot(result = str) @@ -1373,6 +1383,7 @@ class CuraApplication(QtApplication): for node in nodes: node.setSelectable(True) node.setName(os.path.basename(filename)) + node.addDecorator(BuildPlateDecorator()) extension = os.path.splitext(filename)[1] if extension.lower() in self._non_sliceable_extensions: @@ -1445,3 +1456,24 @@ class CuraApplication(QtApplication): node = node.getParent() Selection.add(node) + + #### research - hacky place for these kind of thing + @pyqtSlot(int) + def setActiveBuildPlate(self, nr): + Logger.log("d", "Select build plate: %s" % nr) + self._active_build_plate = nr + self.activeBuildPlateChanged.emit() + + @pyqtSlot() + def newBuildPlate(self): + Logger.log("d", "New build plate") + self._num_build_plates += 1 + self.numBuildPlatesChanged.emit() + + @pyqtProperty(int, notify = numBuildPlatesChanged) + def numBuildPlates(self): + return self._num_build_plates + + @pyqtProperty(int, notify = activeBuildPlateChanged) + def activeBuildPlate(self): + return self._active_build_plate diff --git a/cura/Operations/SetBuildPlateNumberOperation.py b/cura/Operations/SetBuildPlateNumberOperation.py new file mode 100644 index 0000000000..bbef4caf84 --- /dev/null +++ b/cura/Operations/SetBuildPlateNumberOperation.py @@ -0,0 +1,27 @@ +# Copyright (c) 2017 Ultimaker B.V. +# Cura is released under the terms of the LGPLv3 or higher. + +from UM.Scene.SceneNode import SceneNode +from UM.Operations.Operation import Operation + +from cura.Settings.SettingOverrideDecorator import SettingOverrideDecorator + +## Simple operation to set the extruder a certain object should be printed with. +class SetBuildPlateNumberOperation(Operation): + def __init__(self, node: SceneNode, build_plate_nr: int) -> None: + self._node = node + self._build_plate_nr = build_plate_nr + self._previous_build_plate_nr = None + self._decorator_added = False + + def undo(self): + if self._previous_build_plate_nr: + self._node.callDecoration("setBuildPlateNumber", self._previous_build_plate_nr) + + def redo(self): + stack = self._node.callDecoration("getStack") #Don't try to get the active extruder since it may be None anyway. + if not stack: + self._node.addDecorator(SettingOverrideDecorator()) + + self._previous_build_plate_nr = self._node.callDecoration("getBuildPlateNumber") + self._node.callDecoration("setBuildPlateNumber", self._build_plate_nr) diff --git a/cura/Scene/BuildPlateDecorator.py b/cura/Scene/BuildPlateDecorator.py new file mode 100644 index 0000000000..8d91f9e90a --- /dev/null +++ b/cura/Scene/BuildPlateDecorator.py @@ -0,0 +1,34 @@ +from UM.Scene.SceneNodeDecorator import SceneNodeDecorator +from UM.Scene.Selection import Selection + + +class BuildPlateDecorator(SceneNodeDecorator): + def __init__(self): + super().__init__() + self._build_plate_number = -1 + + def setBuildPlateNumber(self, nr): + self._build_plate_number = nr + # self.getNode().childrenChanged.connect(self._onChildrenChanged) + + def getBuildPlateNumber(self): + return self._build_plate_number + + # def setNode(self, node): + # super().setNode(node) + # self.getNode().childrenChanged.connect(self._onChildrenChanged) + + # def _onChildrenChanged(self, node): + # if not self.getNode().hasChildren(): + # # A group that no longer has children may remove itself from the scene + # self._old_parent = self.getNode().getParent() + # self.getNode().setParent(None) + # Selection.remove(self.getNode()) + # else: + # # A group that has removed itself from the scene because it had no children may add itself back to the scene when a child is added to it + # if not self.getNode().getParent() and self._old_parent: + # self.getNode().setParent(self._old_parent) + # self._old_parent = None + + def __deepcopy__(self, memo): + return BuildPlateDecorator() diff --git a/resources/qml/Menus/ContextMenu.qml b/resources/qml/Menus/ContextMenu.qml index 39d497722f..175410773e 100644 --- a/resources/qml/Menus/ContextMenu.qml +++ b/resources/qml/Menus/ContextMenu.qml @@ -39,6 +39,26 @@ Menu onObjectRemoved: base.removeItem(object) } + MenuSeparator {} + MenuItem { + text: "build plate 0"; + onTriggered: CuraActions.setBuildPlateForSelection(0); + checkable: true + checked: false + } + MenuItem { + text: "build plate 1"; + onTriggered: CuraActions.setBuildPlateForSelection(1); + checkable: true + checked: false + } + MenuItem { + text: "build plate 2"; + onTriggered: CuraActions.setBuildPlateForSelection(2); + checkable: true + checked: false + } + // Global actions MenuSeparator {} MenuItem { action: Cura.Actions.selectAll; } diff --git a/resources/qml/Menus/ViewMenu.qml b/resources/qml/Menus/ViewMenu.qml index bb5999edb9..3c5485da32 100644 --- a/resources/qml/Menus/ViewMenu.qml +++ b/resources/qml/Menus/ViewMenu.qml @@ -28,6 +28,25 @@ Menu } ExclusiveGroup { id: group; } + MenuSeparator {} + MenuItem { + text: "build plate 0"; + onTriggered: CuraApplication.setActiveBuildPlate(0); + } + MenuItem { + text: "build plate 1"; + onTriggered: CuraApplication.setActiveBuildPlate(1); + } + MenuItem { + text: "build plate 2"; + onTriggered: CuraApplication.setActiveBuildPlate(2); + } + ExclusiveGroup { id: buildPlateGroup; } + + MenuItem { + text: "New build plate"; + onTriggered: CuraApplication.newBuildPlate(); + } MenuSeparator {} MenuItem { action: Cura.Actions.homeCamera; } } From 5050124699fa50501916fe7319417e480efd3a94 Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Mon, 6 Nov 2017 14:02:22 +0100 Subject: [PATCH 006/124] CURA-4525 wip objects menu --- cura/CuraApplication.py | 4 + plugins/CuraEngineBackend/StartSliceJob.py | 10 ++- plugins/SolidView/SolidView.py | 3 +- resources/qml/Cura.qml | 41 +++++++++- resources/qml/ObjectsList.qml | 88 ++++++++++++++++++++++ resources/themes/cura-light/theme.json | 4 +- 6 files changed, 144 insertions(+), 6 deletions(-) create mode 100644 resources/qml/ObjectsList.qml diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index ff8dfd021a..5111b9b52a 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -292,6 +292,8 @@ class CuraApplication(QtApplication): preferences.addPreference("metadata/setting_version", 0) preferences.setValue("metadata/setting_version", self.SettingVersion) #Don't make it equal to the default so that the setting version always gets written to the file. + preferences.addPreference("view/build_plate_number", 0) + preferences.addPreference("cura/active_mode", "simple") preferences.addPreference("cura/categories_expanded", "") @@ -1462,6 +1464,8 @@ class CuraApplication(QtApplication): def setActiveBuildPlate(self, nr): Logger.log("d", "Select build plate: %s" % nr) self._active_build_plate = nr + Preferences.setValue("view/build_plate_number", self._active_build_plate) + self.activeBuildPlateChanged.emit() @pyqtSlot() diff --git a/plugins/CuraEngineBackend/StartSliceJob.py b/plugins/CuraEngineBackend/StartSliceJob.py index a53daa4e63..607914f5c5 100644 --- a/plugins/CuraEngineBackend/StartSliceJob.py +++ b/plugins/CuraEngineBackend/StartSliceJob.py @@ -140,9 +140,13 @@ class StartSliceJob(Job): temp_list = [] for node in DepthFirstIterator(self._scene.getRoot()): if type(node) is SceneNode and node.getMeshData() and node.getMeshData().getVertices() is not None: - if not getattr(node, "_outside_buildarea", False)\ - or (node.callDecoration("getStack") and any(node.callDecoration("getStack").getProperty(setting, "value") for setting in self._not_printed_mesh_settings)): - temp_list.append(node) + + # temp hack to filter on build plate 0 + if (node.callDecoration("getBuildPlateNumber") == 0): + + if not getattr(node, "_outside_buildarea", False)\ + or (node.callDecoration("getStack") and any(node.callDecoration("getStack").getProperty(setting, "value") for setting in self._not_printed_mesh_settings)): + temp_list.append(node) Job.yieldThread() if temp_list: diff --git a/plugins/SolidView/SolidView.py b/plugins/SolidView/SolidView.py index 8f0c9a4dc1..625223a097 100644 --- a/plugins/SolidView/SolidView.py +++ b/plugins/SolidView/SolidView.py @@ -71,10 +71,11 @@ class SolidView(View): else: self._enabled_shader.setUniformValue("u_overhangAngle", math.cos(math.radians(0))) + activeBuildPlateNumber = Preferences.getInstance().getValue("view/build_plate_number") or 0 for node in DepthFirstIterator(scene.getRoot()): if not node.render(renderer): - if node.getMeshData() and node.isVisible(): + if node.getMeshData() and node.isVisible() and (node.callDecoration("getBuildPlateNumber") == activeBuildPlateNumber): uniforms = {} shade_factor = 1.0 diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index 2fd19a8a03..03d0ce9ecd 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -340,6 +340,22 @@ UM.MainWindow action: Cura.Actions.open; } + Button + { + id: objectsButton; + text: catalog.i18nc("@action:button","Objects"); + iconSource: UM.Theme.getIcon("load") + style: UM.Theme.styles.tool_button + tooltip: ''; + anchors + { + top: openFileButton.bottom; + topMargin: UM.Theme.getSize("default_margin").height; + left: parent.left; + } + action: triggerObjectsList; + } + Toolbar { id: toolbar; @@ -348,7 +364,7 @@ UM.MainWindow property int mouseY: base.mouseY anchors { - top: openFileButton.bottom; + top: objectsButton.bottom; topMargin: UM.Theme.getSize("window_margin").height; left: parent.left; } @@ -380,6 +396,29 @@ UM.MainWindow monitoringPrint: base.showPrintMonitor } + Action + { + id: triggerObjectsList; + text: catalog.i18nc("@action:inmenu menubar:file","&Open File(s)..."); + iconName: "document-open"; + shortcut: StandardKey.Open; + onTriggered: objectsList.visible = !objectsList.visible; + } + + ObjectsList + { + id: objectsList; + visible: false; + anchors + { + top: objectsButton.top; + left: objectsButton.right; + leftMargin: UM.Theme.getSize("default_margin").width; + rightMargin: UM.Theme.getSize("default_margin").width; + } + + } + Rectangle { id: viewportOverlay diff --git a/resources/qml/ObjectsList.qml b/resources/qml/ObjectsList.qml new file mode 100644 index 0000000000..105bdb957b --- /dev/null +++ b/resources/qml/ObjectsList.qml @@ -0,0 +1,88 @@ +// Copyright (c) 2017 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.2 +import QtQuick.Controls 1.1 +import QtQuick.Controls.Styles 1.1 +import QtQuick.Layouts 1.1 +import QtQuick.Dialogs 1.1 + +import UM 1.3 as UM +import Cura 1.0 as Cura + +import "Menus" + +Rectangle +{ + id: base; + + color: UM.Theme.getColor("tool_panel_background") + + width: UM.Theme.getSize("objects_menu_size").width + height: UM.Theme.getSize("objects_menu_size").height + + Button + { + id: openFileButton; + text: catalog.i18nc("@action:button","Open File"); + iconSource: UM.Theme.getIcon("load") + style: UM.Theme.styles.tool_button + tooltip: ''; + anchors + { + top: parent.top; + topMargin: UM.Theme.getSize("default_margin").height; + left: parent.left; + leftMargin: UM.Theme.getSize("default_margin").height; + } + action: Cura.Actions.open; + } + + ListModel + { + id: objectsListModel; + + ListElement { + name: "Apple" + cost: 2.45 + } + ListElement { + name: "Orange" + cost: 3.25 + } + ListElement { + name: "Banana" + cost: 1.95 + } + } + + Component { + id: objectDelegate + Rectangle { + height: 30 + + Text { + text: name + color: red + } + //Text { text: '$' + cost } + } + } + + ListView + { + model: objectsListModel; + anchors + { + top: openFileButton.bottom; + topMargin: UM.Theme.getSize("default_margin").height; + left: parent.left; + leftMargin: UM.Theme.getSize("default_margin").height; + } + width: parent.width - 2 * UM.Theme.getSize("default_margin").height + height: 100 + + delegate: objectDelegate + } + +} diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index b41ea96846..315b29bec0 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -374,6 +374,8 @@ "infill_button_margin": [0.5, 0.5], - "jobspecs_line": [2.0, 2.0] + "jobspecs_line": [2.0, 2.0], + + "objects_menu_size": [20, 30] } } From 79dee2619e8bc36d961781a42789af85d090cd53 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 6 Nov 2017 15:27:43 +0100 Subject: [PATCH 007/124] Also show some of the support settings for support trees Only the ones that are applicable to support trees as well (such as the overhang angle). I haven't decided on whether support interfaces should be implemented. Maybe later. Contributes to issue CURA-4523. --- resources/definitions/fdmprinter.def.json | 26 +++++++++++------------ 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index c2a069aa6e..f57273e280 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -3344,7 +3344,7 @@ "description": "The extruder train to use for printing the support. This is used in multi-extrusion.", "type": "extruder", "default_value": "0", - "enabled": "support_enable and machine_extruder_count > 1", + "enabled": "(support_enable or support_tree_enable) and machine_extruder_count > 1", "settable_per_mesh": false, "settable_per_extruder": false, "children": { @@ -3355,7 +3355,7 @@ "type": "extruder", "default_value": "0", "value": "support_extruder_nr", - "enabled": "support_enable and machine_extruder_count > 1", + "enabled": "(support_enable or support_tree_enable) and machine_extruder_count > 1", "settable_per_mesh": false, "settable_per_extruder": false }, @@ -3366,7 +3366,7 @@ "type": "extruder", "default_value": "0", "value": "support_extruder_nr", - "enabled": "support_enable and machine_extruder_count > 1", + "enabled": "(support_enable or support_tree_enable) and machine_extruder_count > 1", "settable_per_mesh": false, "settable_per_extruder": false }, @@ -3420,7 +3420,7 @@ }, "default_value": "everywhere", "resolve": "'everywhere' if 'everywhere' in extruderValues('support_type') else 'buildplate'", - "enabled": "support_enable", + "enabled": "support_enable or support_tree_enable", "settable_per_mesh": false, "settable_per_extruder": false }, @@ -3435,7 +3435,7 @@ "maximum_value_warning": "80", "default_value": 50, "limit_to_extruder": "support_roof_extruder_nr if support_roof_enable else support_infill_extruder_nr", - "enabled": "support_enable", + "enabled": "support_enable or support_tree_enable", "settable_per_mesh": true }, "support_pattern": @@ -3512,7 +3512,7 @@ "maximum_value_warning": "machine_nozzle_size", "default_value": 0.1, "limit_to_extruder": "support_interface_extruder_nr if support_interface_enable else support_infill_extruder_nr", - "enabled": "support_enable", + "enabled": "support_enable or support_tree_enable", "settable_per_mesh": true, "children": { @@ -3525,7 +3525,7 @@ "maximum_value_warning": "machine_nozzle_size", "default_value": 0.1, "type": "float", - "enabled": "support_enable", + "enabled": "support_enable or support_tree_enable", "value": "extruderValue(support_roof_extruder_nr if support_roof_enable else support_infill_extruder_nr, 'support_z_distance')", "limit_to_extruder": "support_roof_extruder_nr if support_roof_enable else support_infill_extruder_nr", "settable_per_mesh": true @@ -3541,7 +3541,7 @@ "value": "extruderValue(support_bottom_extruder_nr if support_bottom_enable else support_infill_extruder_nr, 'support_z_distance') if support_type == 'everywhere' else 0", "limit_to_extruder": "support_bottom_extruder_nr if support_bottom_enable else support_infill_extruder_nr", "type": "float", - "enabled": "support_enable and resolveOrValue('support_type') == 'everywhere'", + "enabled": "(support_enable or support_tree_enable) and resolveOrValue('support_type') == 'everywhere'", "settable_per_mesh": true } } @@ -3556,7 +3556,7 @@ "maximum_value_warning": "1.5 * machine_nozzle_tip_outer_diameter", "default_value": 0.7, "limit_to_extruder": "support_infill_extruder_nr", - "enabled": "support_enable", + "enabled": "support_enable or support_tree_enable", "settable_per_mesh": true }, "support_xy_overrides_z": @@ -3571,7 +3571,7 @@ }, "default_value": "z_overrides_xy", "limit_to_extruder": "support_infill_extruder_nr", - "enabled": "support_enable", + "enabled": "support_enable or support_tree_enable", "settable_per_mesh": true }, "support_xy_distance_overhang": @@ -3585,7 +3585,7 @@ "default_value": 0.2, "value": "machine_nozzle_size / 2", "limit_to_extruder": "support_infill_extruder_nr", - "enabled": "support_enable and support_xy_overrides_z == 'z_overrides_xy'", + "enabled": "(support_enable or support_tree_enable) and support_xy_overrides_z == 'z_overrides_xy'", "settable_per_mesh": true }, "support_bottom_stair_step_height": @@ -3651,7 +3651,7 @@ "maximum_value_warning": "0.75 * machine_nozzle_size", "maximum_value": "resolveOrValue('layer_height') * 8", "value": "resolveOrValue('layer_height')", - "enabled": "support_enable and support_infill_rate > 0", + "enabled": "(support_enable or support_tree_enable) and support_infill_rate > 0", "limit_to_extruder": "support_infill_extruder_nr", "settable_per_mesh": false }, @@ -4036,7 +4036,7 @@ "description": "Remove empty layers beneath the first printed layer if they are present. Disabling this setting can cause empty first layers if the Slicing Tolerance setting is set to Exclusive or Middle.", "type": "bool", "default_value": true, - "enabled": "not support_enable", + "enabled": "not support_enable and not support_tree_enable", "settable_per_mesh": false, "settable_per_extruder": false } From 2ce7c919119e91e5629eb751e277ab7572a2ec0a Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 6 Nov 2017 17:30:07 +0100 Subject: [PATCH 008/124] Add setting for contact point spread I'm not sure what will come of this later, but for now I need it. Contributes to issue CURA-4523. --- resources/definitions/fdmprinter.def.json | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index f57273e280..8c311a9f2f 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -3678,6 +3678,18 @@ "settable_per_mesh": false, "settable_per_extruder": true }, + "support_tree_branch_distance": + { + "label": "Tree Support Branch Distance", + "description": "How far apart the branches need to be when they touch the model. Making this distance small will cause the tree support to touch the model at more points, causing better overhang but making support harder to remove.", + "unit": "mm", + "type": "float", + "minimum_value": "0.001", + "default_value": 4, + "limit_to_extruder": "support_infill_extruder_nr", + "enabled": "support_tree_enable", + "settable_per_mesh": true + }, "support_tree_wall_thickness": { "label": "Tree Support Wall Thickness", From 38670171f5063a0aa525117955da39135bca2a20 Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Tue, 7 Nov 2017 14:52:22 +0100 Subject: [PATCH 009/124] CURA-4525 party working objects list and build plates --- cura/CuraActions.py | 5 - cura/CuraApplication.py | 17 ++- cura/ObjectManager.py | 68 ++++++++++ cura/Scene/BuildPlateDecorator.py | 17 --- plugins/SolidView/SolidView.py | 2 +- resources/qml/ObjectsList.qml | 201 +++++++++++++++++++++++++----- 6 files changed, 252 insertions(+), 58 deletions(-) create mode 100644 cura/ObjectManager.py diff --git a/cura/CuraActions.py b/cura/CuraActions.py index 663da3ec09..c313488cac 100644 --- a/cura/CuraActions.py +++ b/cura/CuraActions.py @@ -156,13 +156,8 @@ class CuraActions(QObject): if not nodes_to_change: Logger.log("d", "Nothing to change.") - # If there are no changes to make, we still need to reset the selected extruders. - # This is a workaround for checked menu items being deselected while still being - # selected. - #ExtruderManager.getInstance().resetSelectedObjectExtruders() return - Logger.log("d", "Yes: %s", nodes_to_change) for node in nodes_to_change: operation.addOperation(SetBuildPlateNumberOperation(node, build_plate_nr)) operation.push() diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 5111b9b52a..7a6994e83e 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -79,6 +79,8 @@ from cura.Settings.ContainerManager import ContainerManager from cura.Settings.GlobalStack import GlobalStack from cura.Settings.ExtruderStack import ExtruderStack +from cura.ObjectManager import ObjectManager + from PyQt5.QtCore import QUrl, pyqtSignal, pyqtProperty, QEvent, Q_ENUMS from UM.FlameProfiler import pyqtSlot from PyQt5.QtGui import QColor, QIcon @@ -205,6 +207,7 @@ class CuraApplication(QtApplication): self._machine_action_manager = MachineActionManager.MachineActionManager() self._machine_manager = None # This is initialized on demand. self._material_manager = None + self._object_manager = None self._setting_inheritance_manager = None self._simple_mode_settings_manager = None @@ -292,8 +295,6 @@ class CuraApplication(QtApplication): preferences.addPreference("metadata/setting_version", 0) preferences.setValue("metadata/setting_version", self.SettingVersion) #Don't make it equal to the default so that the setting version always gets written to the file. - preferences.addPreference("view/build_plate_number", 0) - preferences.addPreference("cura/active_mode", "simple") preferences.addPreference("cura/categories_expanded", "") @@ -384,7 +385,7 @@ class CuraApplication(QtApplication): # research self._num_build_plates = 1 # default - self._active_build_plate = 1 + self._active_build_plate = 0 def _onEngineCreated(self): self._engine.addImageProvider("camera", CameraImageProvider.CameraImageProvider()) @@ -717,6 +718,9 @@ class CuraApplication(QtApplication): qmlRegisterSingletonType(SimpleModeSettingsManager, "Cura", 1, 2, "SimpleModeSettingsManager", self.getSimpleModeSettingsManager) + Logger.log("d", " #### going to register object manager") + qmlRegisterSingletonType(ObjectManager, "Cura", 1, 2, "ObjectManager", self.getObjectManager) + qmlRegisterSingletonType(MachineActionManager.MachineActionManager, "Cura", 1, 0, "MachineActionManager", self.getMachineActionManager) self.setMainQml(Resources.getPath(self.ResourceTypes.QmlFiles, "Cura.qml")) self._qml_import_paths.append(Resources.getPath(self.ResourceTypes.QmlFiles)) @@ -744,6 +748,11 @@ class CuraApplication(QtApplication): self._material_manager = MaterialManager.createMaterialManager() return self._material_manager + def getObjectManager(self, *args): + if self._object_manager is None: + self._object_manager = ObjectManager.createObjectManager() + return self._object_manager + def getSettingInheritanceManager(self, *args): if self._setting_inheritance_manager is None: self._setting_inheritance_manager = SettingInheritanceManager.createSettingInheritanceManager() @@ -799,6 +808,7 @@ class CuraApplication(QtApplication): qmlRegisterType(QualitySettingsModel, "Cura", 1, 0, "QualitySettingsModel") qmlRegisterType(MachineNameValidator, "Cura", 1, 0, "MachineNameValidator") qmlRegisterType(UserChangesModel, "Cura", 1, 1, "UserChangesModel") + # qmlRegisterSingletonType(ObjectManager, "Cura", 1, 0, "ObjectManager", ObjectManager.createObjectManager) qmlRegisterSingletonType(ContainerManager, "Cura", 1, 0, "ContainerManager", ContainerManager.createContainerManager) @@ -1464,7 +1474,6 @@ class CuraApplication(QtApplication): def setActiveBuildPlate(self, nr): Logger.log("d", "Select build plate: %s" % nr) self._active_build_plate = nr - Preferences.setValue("view/build_plate_number", self._active_build_plate) self.activeBuildPlateChanged.emit() diff --git a/cura/ObjectManager.py b/cura/ObjectManager.py new file mode 100644 index 0000000000..fc6d343252 --- /dev/null +++ b/cura/ObjectManager.py @@ -0,0 +1,68 @@ +from UM.Logger import Logger +from PyQt5.QtCore import pyqtSignal, pyqtProperty, pyqtSlot +from UM.Application import Application +from UM.Qt.ListModel import ListModel +from UM.Scene.Iterator.DepthFirstIterator import DepthFirstIterator +from UM.Scene.SceneNode import SceneNode +from UM.Scene.Selection import Selection +from PyQt5.QtCore import Qt +from PyQt5.QtWidgets import QApplication + + +class ObjectManager(ListModel): + def __init__(self): + super().__init__() + self._last_selected_index = 0 + Application.getInstance().getController().getScene().sceneChanged.connect(self._update) + + def _update(self, *args): + nodes = [] + for node in DepthFirstIterator(Application.getInstance().getController().getScene().getRoot()): + if type(node) is not SceneNode or (not node.getMeshData() and not node.callDecoration("getLayerData")): + continue + nodes.append({ + "name": node.getName(), + "isSelected": Selection.isSelected(node), + "buildPlateNumber": node.callDecoration("getBuildPlateNumber"), + "node": node + }) + nodes = sorted(nodes, key=lambda n: n["name"]) + self.setItems(nodes) + + self.itemsChanged.emit() + + ## Either select or deselect an item + @pyqtSlot(int) + def changeSelection(self, index): + modifiers = QApplication.keyboardModifiers() + ctrl_is_active = modifiers & Qt.ControlModifier + shift_is_active = modifiers & Qt.ShiftModifier + + if ctrl_is_active: + item = self.getItem(index) + node = item["node"] + if Selection.isSelected(node): + Selection.remove(node) + else: + Selection.add(node) + elif shift_is_active: + polarity = 1 if index + 1 > self._last_selected_index else -1 + for i in range(self._last_selected_index, index + polarity, polarity): + item = self.getItem(i) + node = item["node"] + Selection.add(node) + else: + # Single select + item = self.getItem(index) + node = item["node"] + Selection.clear() + Selection.add(node) + build_plate_number = node.callDecoration("getBuildPlateNumber") + if build_plate_number is not None and build_plate_number != -1: + Application.getInstance().setActiveBuildPlate(build_plate_number) + + self._last_selected_index = index + + @staticmethod + def createObjectManager(): + return ObjectManager() diff --git a/cura/Scene/BuildPlateDecorator.py b/cura/Scene/BuildPlateDecorator.py index 8d91f9e90a..2125d731de 100644 --- a/cura/Scene/BuildPlateDecorator.py +++ b/cura/Scene/BuildPlateDecorator.py @@ -9,26 +9,9 @@ class BuildPlateDecorator(SceneNodeDecorator): def setBuildPlateNumber(self, nr): self._build_plate_number = nr - # self.getNode().childrenChanged.connect(self._onChildrenChanged) def getBuildPlateNumber(self): return self._build_plate_number - # def setNode(self, node): - # super().setNode(node) - # self.getNode().childrenChanged.connect(self._onChildrenChanged) - - # def _onChildrenChanged(self, node): - # if not self.getNode().hasChildren(): - # # A group that no longer has children may remove itself from the scene - # self._old_parent = self.getNode().getParent() - # self.getNode().setParent(None) - # Selection.remove(self.getNode()) - # else: - # # A group that has removed itself from the scene because it had no children may add itself back to the scene when a child is added to it - # if not self.getNode().getParent() and self._old_parent: - # self.getNode().setParent(self._old_parent) - # self._old_parent = None - def __deepcopy__(self, memo): return BuildPlateDecorator() diff --git a/plugins/SolidView/SolidView.py b/plugins/SolidView/SolidView.py index 625223a097..d37fbb7c9d 100644 --- a/plugins/SolidView/SolidView.py +++ b/plugins/SolidView/SolidView.py @@ -71,7 +71,7 @@ class SolidView(View): else: self._enabled_shader.setUniformValue("u_overhangAngle", math.cos(math.radians(0))) - activeBuildPlateNumber = Preferences.getInstance().getValue("view/build_plate_number") or 0 + activeBuildPlateNumber = Application.getInstance().activeBuildPlate for node in DepthFirstIterator(scene.getRoot()): if not node.render(renderer): diff --git a/resources/qml/ObjectsList.qml b/resources/qml/ObjectsList.qml index 105bdb957b..758fa59488 100644 --- a/resources/qml/ObjectsList.qml +++ b/resources/qml/ObjectsList.qml @@ -8,7 +8,7 @@ import QtQuick.Layouts 1.1 import QtQuick.Dialogs 1.1 import UM 1.3 as UM -import Cura 1.0 as Cura +import Cura 1.2 as Cura import "Menus" @@ -21,6 +21,8 @@ Rectangle width: UM.Theme.getSize("objects_menu_size").width height: UM.Theme.getSize("objects_menu_size").height + SystemPalette { id: palette } + Button { id: openFileButton; @@ -38,51 +40,188 @@ Rectangle action: Cura.Actions.open; } - ListModel - { - id: objectsListModel; - - ListElement { - name: "Apple" - cost: 2.45 - } - ListElement { - name: "Orange" - cost: 3.25 - } - ListElement { - name: "Banana" - cost: 1.95 - } - } - Component { id: objectDelegate - Rectangle { - height: 30 + Rectangle + { + height: childrenRect.height + color: Cura.ObjectManager.getItem(index).isSelected ? palette.highlight : index % 2 ? palette.base : palette.alternateBase + width: parent.width + Label + { + id: nodeNameLabel + anchors.left: parent.left + anchors.leftMargin: UM.Theme.getSize("default_margin").width + //anchors.right: parent.right + width: parent.width - 2 * UM.Theme.getSize("default_margin").width - 30 + text: Cura.ObjectManager.getItem(index).name; + color: Cura.ObjectManager.getItem(index).isSelected ? palette.highlightedText : palette.text + elide: Text.ElideRight + } - Text { - text: name - color: red + Label + { + id: buildPlateNumberLabel + width: 20 + anchors.left: nodeNameLabel.right + anchors.leftMargin: UM.Theme.getSize("default_margin").width + anchors.right: parent.right + text: Cura.ObjectManager.getItem(index).buildPlateNumber; + color: Cura.ObjectManager.getItem(index).isSelected ? palette.highlightedText : palette.text + elide: Text.ElideRight + } + + MouseArea + { + anchors.fill: parent; + onClicked: + { + Cura.ObjectManager.changeSelection(index); + } + } } - //Text { text: '$' + cost } - } } - ListView + // list all the scene nodes + ScrollView { - model: objectsListModel; + id: objectsList + frameVisible: true + width: parent.width - 2 * UM.Theme.getSize("default_margin").height + anchors { top: openFileButton.bottom; topMargin: UM.Theme.getSize("default_margin").height; left: parent.left; leftMargin: UM.Theme.getSize("default_margin").height; + bottom: buildPlateSelection.top; + bottomMargin: UM.Theme.getSize("default_margin").height; } - width: parent.width - 2 * UM.Theme.getSize("default_margin").height - height: 100 - delegate: objectDelegate + Rectangle + { + parent: viewport + anchors.fill: parent + color: palette.light + } + + ListView + { + id: listview + model: Cura.ObjectManager + //model: objectsListModel + + onModelChanged: + { + //currentIndex = -1; + } + width: parent.width + currentIndex: -1 + onCurrentIndexChanged: + { + //base.selectedPrinter = listview.model[currentIndex]; + // Only allow connecting if the printer has responded to API query since the last refresh + //base.completeProperties = base.selectedPrinter != null && base.selectedPrinter.getProperty("incomplete") != "true"; + } + //Component.onCompleted: manager.startDiscovery() + delegate: objectDelegate + } + } + + ListModel + { + id: buildPlatesModel + + ListElement + { + name: "build plate 0" + buildPlateNumber: 0 + } + ListElement + { + name: "build plate 1" + buildPlateNumber: 1 + } + ListElement + { + name: "build plate 2" + buildPlateNumber: 2 + } + } + + Component { + id: buildPlateDelegate + Rectangle + { + height: childrenRect.height + color: CuraApplication.activeBuildPlate == buildPlateNumber ? palette.highlight : index % 2 ? palette.base : palette.alternateBase + width: parent.width + Label + { + anchors.left: parent.left + anchors.leftMargin: UM.Theme.getSize("default_margin").width + anchors.right: parent.right + text: name //Cura.ObjectManager.getItem(index).name; + color: CuraApplication.activeBuildPlate == buildPlateNumber ? palette.highlightedText : palette.text + elide: Text.ElideRight + } + + MouseArea + { + anchors.fill: parent; + onClicked: + { + CuraApplication.setActiveBuildPlate(buildPlateNumber); + } + } + } + } + + ScrollView + { + id: buildPlateSelection + frameVisible: true + height: 100 + width: parent.width - 2 * UM.Theme.getSize("default_margin").height + + anchors + { + // top: objectsList.bottom; + topMargin: UM.Theme.getSize("default_margin").height; + left: parent.left; + leftMargin: UM.Theme.getSize("default_margin").height; + bottom: parent.bottom; + bottomMargin: UM.Theme.getSize("default_margin").height; + } + + Rectangle + { + parent: viewport + anchors.fill: parent + color: palette.light + } + + ListView + { + id: buildPlateListView + model: buildPlatesModel + + onModelChanged: + { + //currentIndex = -1; + } + width: parent.width + currentIndex: -1 + onCurrentIndexChanged: + { + //base.selectedPrinter = listview.model[currentIndex]; + // Only allow connecting if the printer has responded to API query since the last refresh + //base.completeProperties = base.selectedPrinter != null && base.selectedPrinter.getProperty("incomplete") != "true"; + } + //Component.onCompleted: manager.startDiscovery() + delegate: buildPlateDelegate + } } } From 41d5ec86a305d4fc0d5f85e159631d4936032b93 Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Wed, 8 Nov 2017 14:07:40 +0100 Subject: [PATCH 010/124] CURA-4525 updated scene node menu and added multi buildplate arrange --- cura/Arrange.py | 20 ++- cura/ArrangeObjectsAllBuildPlatesJob.py | 159 ++++++++++++++++++++++++ cura/CuraActions.py | 23 ++-- cura/CuraApplication.py | 28 ++++- cura/MultiplyObjectsJob.py | 5 + cura/Scene/BuildPlateDecorator.py | 12 +- resources/qml/Actions.qml | 9 ++ resources/qml/ObjectsList.qml | 58 ++++++--- resources/themes/cura-light/theme.json | 2 +- 9 files changed, 272 insertions(+), 44 deletions(-) create mode 100644 cura/ArrangeObjectsAllBuildPlatesJob.py diff --git a/cura/Arrange.py b/cura/Arrange.py index 0d1f2e0c06..305729d763 100755 --- a/cura/Arrange.py +++ b/cura/Arrange.py @@ -30,6 +30,7 @@ class Arrange: self._offset_x = offset_x self._offset_y = offset_y self._last_priority = 0 + self._is_empty = True ## Helper to create an Arranger instance # @@ -38,8 +39,8 @@ class Arrange: # \param scene_root Root for finding all scene nodes # \param fixed_nodes Scene nodes to be placed @classmethod - def create(cls, scene_root = None, fixed_nodes = None, scale = 0.5): - arranger = Arrange(220, 220, 110, 110, scale = scale) + def create(cls, scene_root = None, fixed_nodes = None, scale = 0.5, x = 220, y = 220): + arranger = Arrange(x, y, x / 2, y / 2, scale = scale) arranger.centerFirst() if fixed_nodes is None: @@ -62,7 +63,7 @@ class Arrange: for area in disallowed_areas: points = copy.deepcopy(area._points) shape_arr = ShapeArray.fromPolygon(points, scale = scale) - arranger.place(0, 0, shape_arr) + arranger.place(0, 0, shape_arr, update_empty = False) return arranger ## Find placement for a node (using offset shape) and place it (using hull shape) @@ -166,7 +167,7 @@ class Arrange: # \param x x-coordinate # \param y y-coordinate # \param shape_arr ShapeArray object - def place(self, x, y, shape_arr): + def place(self, x, y, shape_arr, update_empty = True): x = int(self._scale * x) y = int(self._scale * y) offset_x = x + self._offset_x + shape_arr.offset_x @@ -179,10 +180,17 @@ class Arrange: max_y = min(max(offset_y + shape_arr.arr.shape[0], 0), shape_y - 1) occupied_slice = self._occupied[min_y:max_y, min_x:max_x] # we use a slice of shape because it can be out of bounds - occupied_slice[numpy.where(shape_arr.arr[ - min_y - offset_y:max_y - offset_y, min_x - offset_x:max_x - offset_x] == 1)] = 1 + new_occupied = numpy.where(shape_arr.arr[ + min_y - offset_y:max_y - offset_y, min_x - offset_x:max_x - offset_x] == 1) + if update_empty and new_occupied: + self._is_empty = False + occupied_slice[new_occupied] = 1 # Set priority to low (= high number), so it won't get picked at trying out. prio_slice = self._priority[min_y:max_y, min_x:max_x] prio_slice[numpy.where(shape_arr.arr[ min_y - offset_y:max_y - offset_y, min_x - offset_x:max_x - offset_x] == 1)] = 999 + + @property + def isEmpty(self): + return self._is_empty diff --git a/cura/ArrangeObjectsAllBuildPlatesJob.py b/cura/ArrangeObjectsAllBuildPlatesJob.py new file mode 100644 index 0000000000..eacd18d5ad --- /dev/null +++ b/cura/ArrangeObjectsAllBuildPlatesJob.py @@ -0,0 +1,159 @@ +# Copyright (c) 2017 Ultimaker B.V. +# Cura is released under the terms of the LGPLv3 or higher. + +from UM.Job import Job +from UM.Scene.SceneNode import SceneNode +from UM.Math.Vector import Vector +from UM.Operations.SetTransformOperation import SetTransformOperation +from UM.Operations.TranslateOperation import TranslateOperation +from UM.Operations.GroupedOperation import GroupedOperation +from UM.Logger import Logger +from UM.Message import Message +from UM.i18n import i18nCatalog +i18n_catalog = i18nCatalog("cura") + +from cura.ZOffsetDecorator import ZOffsetDecorator +from cura.Arrange import Arrange +from cura.ShapeArray import ShapeArray + +from typing import List + + +class ArrangeArray: + def __init__(self, x, y, fixed_nodes): + self._x = x + self._y = y + self._fixed_nodes = fixed_nodes + self._count = 0 + self._first_empty = None + self._has_empty = False + self._arrange = [] + + def _update_first_empty(self): + for i, a in enumerate(self._arrange): + if a.isEmpty: + self._first_empty = i + self._has_empty = True + + Logger.log("d", "lala %s %s", self._first_empty, self._has_empty) + return + self._first_empty = None + self._has_empty = False + + def add(self): + new_arrange = Arrange.create(x = self._x, y = self._y, fixed_nodes = self._fixed_nodes) + self._arrange.append(new_arrange) + self._count += 1 + self._update_first_empty() + + def count(self): + return self._count + + def get(self, index): + return self._arrange[index] + + def getFirstEmpty(self): + if not self._is_empty: + self.add() + return self._arrange[self._first_empty] + + +class ArrangeObjectsAllBuildPlatesJob(Job): + def __init__(self, nodes: List[SceneNode], min_offset = 8): + super().__init__() + self._nodes = nodes + self._min_offset = min_offset + + def run(self): + status_message = Message(i18n_catalog.i18nc("@info:status", "Finding new location for objects"), + lifetime = 0, + dismissable=False, + progress = 0, + title = i18n_catalog.i18nc("@info:title", "Finding Location")) + status_message.show() + + + # Collect nodes to be placed + nodes_arr = [] # fill with (size, node, offset_shape_arr, hull_shape_arr) + for node in self._nodes: + offset_shape_arr, hull_shape_arr = ShapeArray.fromNode(node, min_offset = self._min_offset) + nodes_arr.append((offset_shape_arr.arr.shape[0] * offset_shape_arr.arr.shape[1], node, offset_shape_arr, hull_shape_arr)) + + # Sort the nodes with the biggest area first. + nodes_arr.sort(key=lambda item: item[0]) + nodes_arr.reverse() + + x, y = 200, 200 + + arrange_array = ArrangeArray(x = x, y = y, fixed_nodes = []) + arrange_array.add() + + # Place nodes one at a time + start_priority = 0 + grouped_operation = GroupedOperation() + found_solution_for_all = True + left_over_nodes = [] # nodes that do not fit on an empty build plate + + for idx, (size, node, offset_shape_arr, hull_shape_arr) in enumerate(nodes_arr): + # For performance reasons, we assume that when a location does not fit, + # it will also not fit for the next object (while what can be untrue). + # We also skip possibilities by slicing through the possibilities (step = 10) + + try_placement = True + + current_build_plate_number = 0 # always start with the first one + + # # Only for first build plate + # if last_size == size and last_build_plate_number == current_build_plate_number: + # # This optimization works if many of the objects have the same size + # # Continue with same build plate number + # start_priority = last_priority + # else: + # start_priority = 0 + + while try_placement: + Logger.log("d", "start_priority %s", start_priority) + # make sure that current_build_plate_number is not going crazy or you'll have a lot of arrange objects + while current_build_plate_number >= arrange_array.count(): + arrange_array.add() + arranger = arrange_array.get(current_build_plate_number) + + best_spot = arranger.bestSpot(offset_shape_arr, start_prio=start_priority, step=10) + x, y = best_spot.x, best_spot.y + node.removeDecorator(ZOffsetDecorator) + if node.getBoundingBox(): + center_y = node.getWorldPosition().y - node.getBoundingBox().bottom + else: + center_y = 0 + if x is not None: # We could find a place + arranger.place(x, y, hull_shape_arr) # place the object in the arranger + + node.callDecoration("setBuildPlateNumber", current_build_plate_number) + grouped_operation.addOperation(TranslateOperation(node, Vector(x, center_y, y), set_position = True)) + try_placement = False + else: + # very naive, because we skip to the next build plate if one model doesn't fit. + if arranger.isEmpty: + # apparently we can never place this object + left_over_nodes.append(node) + try_placement = False + else: + # try next build plate + current_build_plate_number += 1 + try_placement = True + + status_message.setProgress((idx + 1) / len(nodes_arr) * 100) + Job.yieldThread() + + for node in left_over_nodes: + node.callDecoration("setBuildPlateNumber", -1) # these are not on any build plate + found_solution_for_all = False + + grouped_operation.push() + + status_message.hide() + + if not found_solution_for_all: + no_full_solution_message = Message(i18n_catalog.i18nc("@info:status", "Unable to find a location within the build volume for all objects"), + title = i18n_catalog.i18nc("@info:title", "Can't Find Location")) + no_full_solution_message.show() diff --git a/cura/CuraActions.py b/cura/CuraActions.py index c313488cac..dbcd31f646 100644 --- a/cura/CuraActions.py +++ b/cura/CuraActions.py @@ -134,25 +134,16 @@ class CuraActions(QObject): Logger.log("d", "Setting build plate number... %d" % build_plate_nr) operation = GroupedOperation() + root = Application.getInstance().getController().getScene().getRoot() + nodes_to_change = [] for node in Selection.getAllSelectedObjects(): - # Do not change any nodes that already have the right extruder set. - if node.callDecoration("getBuildPlateNumber") == build_plate_nr: - continue + parent_node = node # Find the parent node to change instead + while parent_node.getParent() != root: + parent_node = parent_node.getParent() - # If the node is a group, apply the active extruder to all children of the group. - if node.callDecoration("isGroup"): - for grouped_node in BreadthFirstIterator(node): - if grouped_node.callDecoration("getBuildPlateNumber") == build_plate_nr: - continue - - if grouped_node.callDecoration("isGroup"): - continue - - nodes_to_change.append(grouped_node) - continue - - nodes_to_change.append(node) + for single_node in BreadthFirstIterator(parent_node): + nodes_to_change.append(single_node) if not nodes_to_change: Logger.log("d", "Nothing to change.") diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 7a6994e83e..39e4b38824 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -39,8 +39,11 @@ from cura.ConvexHullDecorator import ConvexHullDecorator from cura.SetParentOperation import SetParentOperation from cura.SliceableObjectDecorator import SliceableObjectDecorator from cura.BlockSlicingDecorator import BlockSlicingDecorator +# research +from cura.Scene.BuildPlateDecorator import BuildPlateDecorator from cura.ArrangeObjectsJob import ArrangeObjectsJob +from cura.ArrangeObjectsAllBuildPlatesJob import ArrangeObjectsAllBuildPlatesJob from cura.MultiplyObjectsJob import MultiplyObjectsJob from UM.Settings.SettingDefinition import SettingDefinition, DefinitionPropertyType @@ -54,8 +57,6 @@ from cura.Settings.SettingInheritanceManager import SettingInheritanceManager from cura.Settings.UserProfilesModel import UserProfilesModel from cura.Settings.SimpleModeSettingsManager import SimpleModeSettingsManager -# research -from cura.Scene.BuildPlateDecorator import BuildPlateDecorator from . import PlatformPhysics from . import BuildVolume @@ -1105,7 +1106,7 @@ class CuraApplication(QtApplication): ## Arrange all objects. @pyqtSlot() - def arrangeAll(self): + def arrangeObjectsToAllBuildPlates(self): nodes = [] for node in DepthFirstIterator(self.getController().getScene().getRoot()): if type(node) is not SceneNode: @@ -1119,6 +1120,26 @@ class CuraApplication(QtApplication): # Skip nodes that are too big if node.getBoundingBox().width < self._volume.getBoundingBox().width or node.getBoundingBox().depth < self._volume.getBoundingBox().depth: nodes.append(node) + job = ArrangeObjectsAllBuildPlatesJob(nodes) + job.start() + + # Single build plate + @pyqtSlot() + def arrangeAll(self): + nodes = [] + for node in DepthFirstIterator(self.getController().getScene().getRoot()): + if type(node) is not SceneNode: + continue + if not node.getMeshData() and not node.callDecoration("isGroup"): + continue # Node that doesnt have a mesh and is not a group. + if node.getParent() and node.getParent().callDecoration("isGroup"): + continue # Grouped nodes don't need resetting as their parent (the group) is resetted) + if not node.isSelectable(): + continue # i.e. node with layer data + if node.callDecoration("getBuildPlateNumber") == self._active_build_plate: + # Skip nodes that are too big + if node.getBoundingBox().width < self._volume.getBoundingBox().width or node.getBoundingBox().depth < self._volume.getBoundingBox().depth: + nodes.append(node) self.arrange(nodes, fixed_nodes = []) ## Arrange Selection @@ -1250,6 +1271,7 @@ class CuraApplication(QtApplication): group_decorator = GroupDecorator() group_node.addDecorator(group_decorator) group_node.addDecorator(ConvexHullDecorator()) + group_node.addDecorator(BuildPlateDecorator(self.activeBuildPlate)) group_node.setParent(self.getController().getScene().getRoot()) group_node.setSelectable(True) center = Selection.getSelectionCenter() diff --git a/cura/MultiplyObjectsJob.py b/cura/MultiplyObjectsJob.py index 721c0e4c07..63a38993a2 100644 --- a/cura/MultiplyObjectsJob.py +++ b/cura/MultiplyObjectsJob.py @@ -13,6 +13,7 @@ from UM.i18n import i18nCatalog i18n_catalog = i18nCatalog("cura") from cura.ZOffsetDecorator import ZOffsetDecorator +from cura.Scene.BuildPlateDecorator import BuildPlateDecorator from cura.Arrange import Arrange from cura.ShapeArray import ShapeArray @@ -65,6 +66,10 @@ class MultiplyObjectsJob(Job): new_location = new_location.set(z = 100 - i * 20) node.setPosition(new_location) + # Same build plate + build_plate_number = current_node.callDecoration("getBuildPlateNumber") + node.callDecoration("setBuildPlateNumber", build_plate_number) + nodes.append(node) current_progress += 1 status_message.setProgress((current_progress / total_progress) * 100) diff --git a/cura/Scene/BuildPlateDecorator.py b/cura/Scene/BuildPlateDecorator.py index 2125d731de..b0a14e41f4 100644 --- a/cura/Scene/BuildPlateDecorator.py +++ b/cura/Scene/BuildPlateDecorator.py @@ -1,14 +1,20 @@ from UM.Scene.SceneNodeDecorator import SceneNodeDecorator -from UM.Scene.Selection import Selection +from UM.Application import Application +from UM.Logger import Logger class BuildPlateDecorator(SceneNodeDecorator): - def __init__(self): + def __init__(self, build_plate_number = -1): super().__init__() - self._build_plate_number = -1 + self.setBuildPlateNumber(build_plate_number) def setBuildPlateNumber(self, nr): + # Make sure that groups are set correctly + # setBuildPlateForSelection in CuraActions makes sure that no single childs are set. self._build_plate_number = nr + if self._node and self._node.callDecoration("isGroup"): + for child in self._node.getChildren(): + child.callDecoration("setBuildPlateNumber", nr) def getBuildPlateNumber(self): return self._build_plate_number diff --git a/resources/qml/Actions.qml b/resources/qml/Actions.qml index cc27520a02..89ec2cf70d 100644 --- a/resources/qml/Actions.qml +++ b/resources/qml/Actions.qml @@ -35,6 +35,7 @@ Item property alias selectAll: selectAllAction; property alias deleteAll: deleteAllAction; property alias reloadAll: reloadAllAction; + property alias arrangeAllBuildPlates: arrangeAllBuildPlatesAction; property alias arrangeAll: arrangeAllAction; property alias arrangeSelection: arrangeSelectionAction; property alias resetAllTranslation: resetAllTranslationAction; @@ -300,6 +301,14 @@ Item onTriggered: CuraApplication.reloadAll(); } + Action + { + id: arrangeAllBuildPlatesAction; + text: ""; + iconName: "document-open"; + onTriggered: CuraApplication.arrangeObjectsToAllBuildPlates(); + } + Action { id: arrangeAllAction; diff --git a/resources/qml/ObjectsList.qml b/resources/qml/ObjectsList.qml index 758fa59488..4a7c84c41e 100644 --- a/resources/qml/ObjectsList.qml +++ b/resources/qml/ObjectsList.qml @@ -110,21 +110,7 @@ Rectangle { id: listview model: Cura.ObjectManager - //model: objectsListModel - - onModelChanged: - { - //currentIndex = -1; - } width: parent.width - currentIndex: -1 - onCurrentIndexChanged: - { - //base.selectedPrinter = listview.model[currentIndex]; - // Only allow connecting if the printer has responded to API query since the last refresh - //base.completeProperties = base.selectedPrinter != null && base.selectedPrinter.getProperty("incomplete") != "true"; - } - //Component.onCompleted: manager.startDiscovery() delegate: objectDelegate } } @@ -191,7 +177,7 @@ Rectangle topMargin: UM.Theme.getSize("default_margin").height; left: parent.left; leftMargin: UM.Theme.getSize("default_margin").height; - bottom: parent.bottom; + bottom: arrangeAllBuildPlatesButton.top; bottomMargin: UM.Theme.getSize("default_margin").height; } @@ -224,4 +210,46 @@ Rectangle } } + Button + { + id: arrangeAllBuildPlatesButton; + text: catalog.i18nc("@action:button","Arrange to all build plates"); + //iconSource: UM.Theme.getIcon("load") + //style: UM.Theme.styles.tool_button + height: 25 + tooltip: ''; + anchors + { + //top: buildPlateSelection.bottom; + topMargin: UM.Theme.getSize("default_margin").height; + left: parent.left; + leftMargin: UM.Theme.getSize("default_margin").height; + right: parent.right; + rightMargin: UM.Theme.getSize("default_margin").height; + bottom: arrangeBuildPlateButton.top; + bottomMargin: UM.Theme.getSize("default_margin").height; + } + action: Cura.Actions.arrangeAllBuildPlates; + } + + Button + { + id: arrangeBuildPlateButton; + text: catalog.i18nc("@action:button","Arrange current build plate"); + height: 25 + tooltip: ''; + anchors + { + topMargin: UM.Theme.getSize("default_margin").height; + left: parent.left; + leftMargin: UM.Theme.getSize("default_margin").height; + right: parent.right; + rightMargin: UM.Theme.getSize("default_margin").height; + bottom: parent.bottom; + bottomMargin: UM.Theme.getSize("default_margin").height; + } + action: Cura.Actions.arrangeAll; + } + + } diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 315b29bec0..e78cd27cee 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -376,6 +376,6 @@ "jobspecs_line": [2.0, 2.0], - "objects_menu_size": [20, 30] + "objects_menu_size": [20, 40] } } From 380b0ed2e7154fbd581296ef02cc3bdea2f02695 Mon Sep 17 00:00:00 2001 From: Ruben D Date: Wed, 8 Nov 2017 20:11:49 +0100 Subject: [PATCH 011/124] Add setting for branch diameter Contributes to issue CURA-4523. --- resources/definitions/fdmprinter.def.json | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 8c311a9f2f..176c41dce7 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -3690,6 +3690,20 @@ "enabled": "support_tree_enable", "settable_per_mesh": true }, + "support_tree_branch_diameter": + { + "label": "Tree Support Branch Diameter", + "description": "The diameter of the thinnest branches of tree support. Thicker branches are more sturdy. Branches towards the base will be thicker than this.", + "unit": "mm", + "type": "float", + "minimum_value": "0.001", + "minimum_value_warning": "support_line_width * 2", + "default_value": 2, + "limit_to_extruder": "support_infill_extruder_nr", + "enabled": "support_tree_enable", + "settable_per_mesh": false, + "settable_per_extruder": true + }, "support_tree_wall_thickness": { "label": "Tree Support Wall Thickness", From b660b2ca862f5084837834f771f0e99f1b8d5c91 Mon Sep 17 00:00:00 2001 From: Ruben D Date: Thu, 9 Nov 2017 00:47:20 +0100 Subject: [PATCH 012/124] Rename support_tree_wall_line_count to support_tree_wall_count Wall line is double. Just name it wall. Contributes to issue CURA-4523. --- 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 176c41dce7..14d7e7f39e 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -3720,7 +3720,7 @@ "settable_per_extruder": true, "children": { - "support_tree_wall_line_count": + "support_tree_wall_count": { "label": "Tree Support Wall Line Count", "description": "The number of walls of the branches of tree support. Thicker walls take longer to print but don't fall over as easily.", From e21acd1a07da8bd40031c0039dc5abc831f276ec Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Thu, 9 Nov 2017 17:03:20 +0100 Subject: [PATCH 013/124] CURA-4525 first multi slice + multi layer data, added filter on build plate, added option arrange on load, visuals like convex hull are now correct --- cura/Arrange.py | 2 +- cura/ArrangeObjectsAllBuildPlatesJob.py | 1 - cura/ConvexHullNode.py | 3 +- cura/CuraApplication.py | 105 +++--- cura/ObjectManager.py | 29 +- cura/Scene/BuildPlateDecorator.py | 7 + cura/Scene/CuraSceneNode.py | 40 +++ plugins/3MFReader/ThreeMFReader.py | 3 +- .../CuraEngineBackend/CuraEngineBackend.py | 140 +++++--- .../ProcessSlicedLayersJob.py | 27 +- plugins/CuraEngineBackend/StartSliceJob.py | 19 +- plugins/ImageReader/ImageReader.py | 4 +- plugins/LayerView/LayerPass.py | 3 +- plugins/SolidView/SolidView.py | 2 +- plugins/X3DReader/X3DReader.py | 303 +++++++++--------- resources/qml/Cura.qml | 1 + resources/qml/ObjectsList.qml | 23 +- resources/qml/Preferences/GeneralPage.qml | 16 +- 18 files changed, 468 insertions(+), 260 deletions(-) create mode 100644 cura/Scene/CuraSceneNode.py diff --git a/cura/Arrange.py b/cura/Arrange.py index 305729d763..2f77ec9a7f 100755 --- a/cura/Arrange.py +++ b/cura/Arrange.py @@ -40,7 +40,7 @@ class Arrange: # \param fixed_nodes Scene nodes to be placed @classmethod def create(cls, scene_root = None, fixed_nodes = None, scale = 0.5, x = 220, y = 220): - arranger = Arrange(x, y, x / 2, y / 2, scale = scale) + arranger = Arrange(x, y, x // 2, y // 2, scale = scale) arranger.centerFirst() if fixed_nodes is None: diff --git a/cura/ArrangeObjectsAllBuildPlatesJob.py b/cura/ArrangeObjectsAllBuildPlatesJob.py index eacd18d5ad..7991ac39f0 100644 --- a/cura/ArrangeObjectsAllBuildPlatesJob.py +++ b/cura/ArrangeObjectsAllBuildPlatesJob.py @@ -112,7 +112,6 @@ class ArrangeObjectsAllBuildPlatesJob(Job): # start_priority = 0 while try_placement: - Logger.log("d", "start_priority %s", start_priority) # make sure that current_build_plate_number is not going crazy or you'll have a lot of arrange objects while current_build_plate_number >= arrange_array.count(): arrange_array.add() diff --git a/cura/ConvexHullNode.py b/cura/ConvexHullNode.py index cc4720c197..c6ff80670d 100644 --- a/cura/ConvexHullNode.py +++ b/cura/ConvexHullNode.py @@ -6,7 +6,6 @@ from UM.Scene.SceneNode import SceneNode from UM.Resources import Resources from UM.Math.Color import Color from UM.Mesh.MeshBuilder import MeshBuilder # To create a mesh to display the convex hull with. - from UM.View.GL.OpenGL import OpenGL @@ -65,7 +64,7 @@ class ConvexHullNode(SceneNode): ConvexHullNode.shader.setUniformValue("u_diffuseColor", self._color) ConvexHullNode.shader.setUniformValue("u_opacity", 0.6) - if self.getParent(): + if self.getParent() and self.getParent().callDecoration("getBuildPlateNumber") == Application.getInstance().activeBuildPlate: if self.getMeshData(): renderer.queueNode(self, transparent = True, shader = ConvexHullNode.shader, backface_cull = True, sort = -8) if self._convex_hull_head_mesh: diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 39e4b38824..c1c894c735 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -33,6 +33,7 @@ from UM.Operations.AddSceneNodeOperation import AddSceneNodeOperation from UM.Operations.RemoveSceneNodeOperation import RemoveSceneNodeOperation from UM.Operations.GroupedOperation import GroupedOperation from UM.Operations.SetTransformOperation import SetTransformOperation + from cura.Arrange import Arrange from cura.ShapeArray import ShapeArray from cura.ConvexHullDecorator import ConvexHullDecorator @@ -41,6 +42,7 @@ from cura.SliceableObjectDecorator import SliceableObjectDecorator from cura.BlockSlicingDecorator import BlockSlicingDecorator # research from cura.Scene.BuildPlateDecorator import BuildPlateDecorator +from cura.Scene.CuraSceneNode import CuraSceneNode from cura.ArrangeObjectsJob import ArrangeObjectsJob from cura.ArrangeObjectsAllBuildPlatesJob import ArrangeObjectsAllBuildPlatesJob @@ -307,11 +309,13 @@ class CuraApplication(QtApplication): preferences.addPreference("cura/asked_dialog_on_project_save", False) preferences.addPreference("cura/choice_on_profile_override", "always_ask") preferences.addPreference("cura/choice_on_open_project", "always_ask") + preferences.addPreference("cura/arrange_objects_on_load", True) preferences.addPreference("cura/currency", "€") preferences.addPreference("cura/material_settings", "{}") preferences.addPreference("view/invert_zoom", False) + preferences.addPreference("view/filter_current_build_plate", False) self._need_to_show_user_agreement = not Preferences.getInstance().getValue("general/accepted_user_agreement") @@ -896,7 +900,7 @@ class CuraApplication(QtApplication): scene_bounding_box = None is_block_slicing_node = False for node in DepthFirstIterator(self.getController().getScene().getRoot()): - if type(node) is not SceneNode or (not node.getMeshData() and not node.callDecoration("getLayerData")): + if not issubclass(type(node), SceneNode) or (not node.getMeshData() and not node.callDecoration("getLayerData")): continue if node.callDecoration("isBlockSlicing"): is_block_slicing_node = True @@ -1013,7 +1017,7 @@ class CuraApplication(QtApplication): Selection.clear() for node in DepthFirstIterator(self.getController().getScene().getRoot()): - if type(node) is not SceneNode: + if not issubclass(type(node), SceneNode): continue if not node.getMeshData() and not node.callDecoration("isGroup"): continue # Node that doesnt have a mesh and is not a group. @@ -1021,6 +1025,9 @@ class CuraApplication(QtApplication): continue # Grouped nodes don't need resetting as their parent (the group) is resetted) if not node.isSelectable(): continue # i.e. node with layer data + if not node.callDecoration("isSliceable"): + continue # i.e. node with layer data + Selection.add(node) ## Delete all nodes containing mesh data in the scene. @@ -1032,7 +1039,7 @@ class CuraApplication(QtApplication): nodes = [] for node in DepthFirstIterator(self.getController().getScene().getRoot()): - if type(node) is not SceneNode: + if not issubclass(type(node), SceneNode): continue if (not node.getMeshData() and not node.callDecoration("getLayerData")) and not node.callDecoration("isGroup"): continue # Node that doesnt have a mesh and is not a group. @@ -1054,7 +1061,7 @@ class CuraApplication(QtApplication): Logger.log("i", "Resetting all scene translations") nodes = [] for node in DepthFirstIterator(self.getController().getScene().getRoot()): - if type(node) is not SceneNode: + if not issubclass(type(node), SceneNode): continue if not node.getMeshData() and not node.callDecoration("isGroup"): continue # Node that doesnt have a mesh and is not a group. @@ -1082,13 +1089,13 @@ class CuraApplication(QtApplication): Logger.log("i", "Resetting all scene transformations") nodes = [] for node in DepthFirstIterator(self.getController().getScene().getRoot()): - if type(node) is not SceneNode: + if not issubclass(type(node), SceneNode): continue if not node.getMeshData() and not node.callDecoration("isGroup"): continue # Node that doesnt have a mesh and is not a group. if node.getParent() and node.getParent().callDecoration("isGroup"): continue # Grouped nodes don't need resetting as their parent (the group) is resetted) - if not node.isSelectable(): + if not node.callDecoration("isSliceable"): continue # i.e. node with layer data nodes.append(node) @@ -1109,7 +1116,27 @@ class CuraApplication(QtApplication): def arrangeObjectsToAllBuildPlates(self): nodes = [] for node in DepthFirstIterator(self.getController().getScene().getRoot()): - if type(node) is not SceneNode: + if not issubclass(type(node), SceneNode): + continue + if not node.getMeshData() and not node.callDecoration("isGroup"): + continue # Node that doesnt have a mesh and is not a group. + if node.getParent() and node.getParent().callDecoration("isGroup"): + continue # Grouped nodes don't need resetting as their parent (the group) is resetted) + if not node.callDecoration("isSliceable"): + continue # i.e. node with layer data + # Skip nodes that are too big + if node.getBoundingBox().width < self._volume.getBoundingBox().width or node.getBoundingBox().depth < self._volume.getBoundingBox().depth: + nodes.append(node) + job = ArrangeObjectsAllBuildPlatesJob(nodes) + job.start() + self.setActiveBuildPlate(0) + + # Single build plate + @pyqtSlot() + def arrangeAll(self): + nodes = [] + for node in DepthFirstIterator(self.getController().getScene().getRoot()): + if not issubclass(type(node), SceneNode): continue if not node.getMeshData() and not node.callDecoration("isGroup"): continue # Node that doesnt have a mesh and is not a group. @@ -1117,24 +1144,7 @@ class CuraApplication(QtApplication): continue # Grouped nodes don't need resetting as their parent (the group) is resetted) if not node.isSelectable(): continue # i.e. node with layer data - # Skip nodes that are too big - if node.getBoundingBox().width < self._volume.getBoundingBox().width or node.getBoundingBox().depth < self._volume.getBoundingBox().depth: - nodes.append(node) - job = ArrangeObjectsAllBuildPlatesJob(nodes) - job.start() - - # Single build plate - @pyqtSlot() - def arrangeAll(self): - nodes = [] - for node in DepthFirstIterator(self.getController().getScene().getRoot()): - if type(node) is not SceneNode: - continue - if not node.getMeshData() and not node.callDecoration("isGroup"): - continue # Node that doesnt have a mesh and is not a group. - if node.getParent() and node.getParent().callDecoration("isGroup"): - continue # Grouped nodes don't need resetting as their parent (the group) is resetted) - if not node.isSelectable(): + if not node.callDecoration("isSliceable"): continue # i.e. node with layer data if node.callDecoration("getBuildPlateNumber") == self._active_build_plate: # Skip nodes that are too big @@ -1150,7 +1160,7 @@ class CuraApplication(QtApplication): # What nodes are on the build plate and are not being moved fixed_nodes = [] for node in DepthFirstIterator(self.getController().getScene().getRoot()): - if type(node) is not SceneNode: + if not issubclass(type(node), SceneNode): continue if not node.getMeshData() and not node.callDecoration("isGroup"): continue # Node that doesnt have a mesh and is not a group. @@ -1158,6 +1168,8 @@ class CuraApplication(QtApplication): continue # Grouped nodes don't need resetting as their parent (the group) is resetted) if not node.isSelectable(): continue # i.e. node with layer data + if not node.callDecoration("isSliceable"): + continue # i.e. node with layer data if node in nodes: # exclude selected node from fixed_nodes continue fixed_nodes.append(node) @@ -1176,7 +1188,7 @@ class CuraApplication(QtApplication): Logger.log("i", "Reloading all loaded mesh data.") nodes = [] for node in DepthFirstIterator(self.getController().getScene().getRoot()): - if type(node) is not SceneNode or not node.getMeshData(): + if not issubclass(type(node), SceneNode) or not node.getMeshData(): continue nodes.append(node) @@ -1267,7 +1279,7 @@ class CuraApplication(QtApplication): @pyqtSlot() def groupSelected(self): # Create a group-node - group_node = SceneNode() + group_node = CuraSceneNode() group_decorator = GroupDecorator() group_node.addDecorator(group_decorator) group_node.addDecorator(ConvexHullDecorator()) @@ -1413,11 +1425,15 @@ class CuraApplication(QtApplication): min_offset = 8 self.fileLoaded.emit(filename) + arrange_objects_on_load = Preferences.getInstance().getValue("cura/arrange_objects_on_load") + target_build_plate = self.activeBuildPlate if arrange_objects_on_load else -1 + + for original_node in nodes: + node = CuraSceneNode() # We want our own CuraSceneNode + node.setMeshData(original_node.getMeshData()) - for node in nodes: node.setSelectable(True) node.setName(os.path.basename(filename)) - node.addDecorator(BuildPlateDecorator()) extension = os.path.splitext(filename)[1] if extension.lower() in self._non_sliceable_extensions: @@ -1442,20 +1458,23 @@ class CuraApplication(QtApplication): if not child.getDecorator(ConvexHullDecorator): child.addDecorator(ConvexHullDecorator()) - if node.callDecoration("isSliceable"): - # Only check position if it's not already blatantly obvious that it won't fit. - if node.getBoundingBox().width < self._volume.getBoundingBox().width or node.getBoundingBox().depth < self._volume.getBoundingBox().depth: - # Find node location - offset_shape_arr, hull_shape_arr = ShapeArray.fromNode(node, min_offset = min_offset) + if arrange_objects_on_load: + if node.callDecoration("isSliceable"): + # Only check position if it's not already blatantly obvious that it won't fit. + if node.getBoundingBox().width < self._volume.getBoundingBox().width or node.getBoundingBox().depth < self._volume.getBoundingBox().depth: + # Find node location + offset_shape_arr, hull_shape_arr = ShapeArray.fromNode(node, min_offset = min_offset) - # If a model is to small then it will not contain any points - if offset_shape_arr is None and hull_shape_arr is None: - Message(self._i18n_catalog.i18nc("@info:status", "The selected model was too small to load."), - title=self._i18n_catalog.i18nc("@info:title", "Warning")).show() - return + # If a model is to small then it will not contain any points + if offset_shape_arr is None and hull_shape_arr is None: + Message(self._i18n_catalog.i18nc("@info:status", "The selected model was too small to load."), + title=self._i18n_catalog.i18nc("@info:title", "Warning")).show() + return - # Step is for skipping tests to make it a lot faster. it also makes the outcome somewhat rougher - node, _ = arranger.findNodePlacement(node, offset_shape_arr, hull_shape_arr, step = 10) + # Step is for skipping tests to make it a lot faster. it also makes the outcome somewhat rougher + node, _ = arranger.findNodePlacement(node, offset_shape_arr, hull_shape_arr, step = 10) + + node.addDecorator(BuildPlateDecorator(target_build_plate)) op = AddSceneNodeOperation(node, scene.getRoot()) op.push() @@ -1494,6 +1513,8 @@ class CuraApplication(QtApplication): #### research - hacky place for these kind of thing @pyqtSlot(int) def setActiveBuildPlate(self, nr): + if nr == self._active_build_plate: + return Logger.log("d", "Select build plate: %s" % nr) self._active_build_plate = nr diff --git a/cura/ObjectManager.py b/cura/ObjectManager.py index fc6d343252..a148c05f28 100644 --- a/cura/ObjectManager.py +++ b/cura/ObjectManager.py @@ -7,23 +7,35 @@ from UM.Scene.SceneNode import SceneNode from UM.Scene.Selection import Selection from PyQt5.QtCore import Qt from PyQt5.QtWidgets import QApplication +#from cura.Scene.CuraSceneNode import CuraSceneNode +from UM.Preferences import Preferences class ObjectManager(ListModel): def __init__(self): super().__init__() self._last_selected_index = 0 - Application.getInstance().getController().getScene().sceneChanged.connect(self._update) + Application.getInstance().getController().getScene().sceneChanged.connect(self._update_scene_changed) + Preferences.getInstance().preferenceChanged.connect(self._update) + Application.getInstance().activeBuildPlateChanged.connect(self._update) def _update(self, *args): nodes = [] + filter_current_build_plate = Preferences.getInstance().getValue("view/filter_current_build_plate") + active_build_plate_number = Application.getInstance().activeBuildPlate for node in DepthFirstIterator(Application.getInstance().getController().getScene().getRoot()): - if type(node) is not SceneNode or (not node.getMeshData() and not node.callDecoration("getLayerData")): + if not issubclass(type(node), SceneNode) or (not node.getMeshData() and not node.callDecoration("getLayerData")): + continue + if not node.callDecoration("isSliceable"): + continue + node_build_plate_number = node.callDecoration("getBuildPlateNumber") + if filter_current_build_plate and node_build_plate_number != active_build_plate_number: continue nodes.append({ "name": node.getName(), "isSelected": Selection.isSelected(node), - "buildPlateNumber": node.callDecoration("getBuildPlateNumber"), + "isOutsideBuildArea": node.isOutsideBuildArea(), + "buildPlateNumber": node_build_plate_number, "node": node }) nodes = sorted(nodes, key=lambda n: n["name"]) @@ -31,6 +43,12 @@ class ObjectManager(ListModel): self.itemsChanged.emit() + def _update_scene_changed(self, *args): + # if args and type(args[0]) is not CuraSceneNode: + # Logger.log("d", " ascdf %s", args) + # return + self._update(*args) + ## Either select or deselect an item @pyqtSlot(int) def changeSelection(self, index): @@ -63,6 +81,11 @@ class ObjectManager(ListModel): self._last_selected_index = index + # testing + for node in DepthFirstIterator(Application.getInstance().getController().getScene().getRoot()): + if node.callDecoration("getLayerData"): + Logger.log("d", " ##### NODE: %s", node) + @staticmethod def createObjectManager(): return ObjectManager() diff --git a/cura/Scene/BuildPlateDecorator.py b/cura/Scene/BuildPlateDecorator.py index b0a14e41f4..2c886c7444 100644 --- a/cura/Scene/BuildPlateDecorator.py +++ b/cura/Scene/BuildPlateDecorator.py @@ -6,11 +6,14 @@ from UM.Logger import Logger class BuildPlateDecorator(SceneNodeDecorator): def __init__(self, build_plate_number = -1): super().__init__() + self._build_plate_number = None + self._previous_build_plate_number = None self.setBuildPlateNumber(build_plate_number) def setBuildPlateNumber(self, nr): # Make sure that groups are set correctly # setBuildPlateForSelection in CuraActions makes sure that no single childs are set. + self._previous_build_plate_number = self._build_plate_number self._build_plate_number = nr if self._node and self._node.callDecoration("isGroup"): for child in self._node.getChildren(): @@ -19,5 +22,9 @@ class BuildPlateDecorator(SceneNodeDecorator): def getBuildPlateNumber(self): return self._build_plate_number + # Used to determine from what build plate the node moved. + def getPreviousBuildPlateNumber(self): + return self._previous_build_plate_number + def __deepcopy__(self, memo): return BuildPlateDecorator() diff --git a/cura/Scene/CuraSceneNode.py b/cura/Scene/CuraSceneNode.py new file mode 100644 index 0000000000..ccec76b53d --- /dev/null +++ b/cura/Scene/CuraSceneNode.py @@ -0,0 +1,40 @@ +from UM.Application import Application +from UM.Logger import Logger +from UM.Scene.SceneNode import SceneNode +from copy import deepcopy + + +## Scene nodes that are models are only seen when selecting the corresponding build plate +# Note that many other nodes can just be UM SceneNode objects. +class CuraSceneNode(SceneNode): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self._outside_buildarea = True + + def setOutsideBuildArea(self, new_value): + self._outside_buildarea = new_value + + def isOutsideBuildArea(self): + return self._outside_buildarea or self.callDecoration("getBuildPlateNumber") < 0 + + def isVisible(self): + return super().isVisible() and self.callDecoration("getBuildPlateNumber") == Application.getInstance().activeBuildPlate + + def isSelectable(self) -> bool: + return super().isSelectable() and self.callDecoration("getBuildPlateNumber") == Application.getInstance().activeBuildPlate + + ## Taken from SceneNode, but replaced SceneNode with CuraSceneNode + def __deepcopy__(self, memo): + copy = CuraSceneNode() + copy.setTransformation(self.getLocalTransformation()) + copy.setMeshData(self._mesh_data) + copy.setVisible(deepcopy(self._visible, memo)) + copy._selectable = deepcopy(self._selectable, memo) + copy._name = deepcopy(self._name, memo) + for decorator in self._decorators: + copy.addDecorator(deepcopy(decorator, memo)) + + for child in self._children: + copy.addChild(deepcopy(child, memo)) + self.calculateBoundingBoxMesh() + return copy diff --git a/plugins/3MFReader/ThreeMFReader.py b/plugins/3MFReader/ThreeMFReader.py index a34bf771d7..8c4ef9d1ae 100755 --- a/plugins/3MFReader/ThreeMFReader.py +++ b/plugins/3MFReader/ThreeMFReader.py @@ -15,7 +15,8 @@ from cura.Settings.SettingOverrideDecorator import SettingOverrideDecorator from UM.Application import Application from cura.Settings.ExtruderManager import ExtruderManager from cura.QualityManager import QualityManager -from UM.Scene.SceneNode import SceneNode +#from UM.Scene.SceneNode import SceneNode +from cura.Scene.CuraSceneNode import CuraSceneNode as SceneNode from cura.SliceableObjectDecorator import SliceableObjectDecorator from cura.ZOffsetDecorator import ZOffsetDecorator diff --git a/plugins/CuraEngineBackend/CuraEngineBackend.py b/plugins/CuraEngineBackend/CuraEngineBackend.py index 914aa1dee0..67d3fe8c42 100755 --- a/plugins/CuraEngineBackend/CuraEngineBackend.py +++ b/plugins/CuraEngineBackend/CuraEngineBackend.py @@ -69,9 +69,10 @@ class CuraEngineBackend(QObject, Backend): # Workaround to disable layer view processing if layer view is not active. self._layer_view_active = False Application.getInstance().getController().activeViewChanged.connect(self._onActiveViewChanged) + Application.getInstance().activeBuildPlateChanged.connect(self._onActiveViewChanged) self._onActiveViewChanged() self._stored_layer_data = [] - self._stored_optimized_layer_data = [] + self._stored_optimized_layer_data = {} # key is build plate number, then arrays are stored until they go to the ProcessSlicesLayersJob self._scene = Application.getInstance().getController().getScene() self._scene.sceneChanged.connect(self._onSceneChanged) @@ -104,12 +105,14 @@ class CuraEngineBackend(QObject, Backend): self._message_handlers["cura.proto.SlicingFinished"] = self._onSlicingFinishedMessage self._start_slice_job = None + self._start_slice_job_build_plate = None self._slicing = False # Are we currently slicing? self._restart = False # Back-end is currently restarting? self._tool_active = False # If a tool is active, some tasks do not have to do anything self._always_restart = True # Always restart the engine when starting a new slice. Don't keep the process running. TODO: Fix engine statelessness. self._process_layers_job = None # The currently active job to process layers, or None if it is not processing layers. - self._need_slicing = False + # self._need_slicing = False + self._build_plates_to_be_sliced = [] # what needs slicing? self._engine_is_fresh = True # Is the newly started engine used before or not? self._backend_log_max_lines = 20000 # Maximum number of lines to buffer @@ -189,8 +192,9 @@ class CuraEngineBackend(QObject, Backend): ## Perform a slice of the scene. def slice(self): + Logger.log("d", "starting to slice again!") self._slice_start_time = time() - if not self._need_slicing: + if not self._build_plates_to_be_sliced: self.processingProgress.emit(1.0) self.backendStateChange.emit(BackendState.Done) Logger.log("w", "Slice unnecessary, nothing has changed that needs reslicing.") @@ -199,7 +203,6 @@ class CuraEngineBackend(QObject, Backend): Application.getInstance().getPrintInformation().setToZeroPrintInformation() self._stored_layer_data = [] - self._stored_optimized_layer_data = [] if self._process is None: self._createSocket() @@ -215,6 +218,9 @@ class CuraEngineBackend(QObject, Backend): slice_message = self._socket.createMessage("cura.proto.Slice") self._start_slice_job = StartSliceJob.StartSliceJob(slice_message) + self._start_slice_job_build_plate = self._build_plates_to_be_sliced.pop(0) + self._stored_optimized_layer_data[self._start_slice_job_build_plate] = [] + self._start_slice_job.setBuildPlate(self._start_slice_job_build_plate) self._start_slice_job.start() self._start_slice_job.finished.connect(self._onStartSliceCompleted) @@ -223,7 +229,8 @@ class CuraEngineBackend(QObject, Backend): def _terminate(self): self._slicing = False self._stored_layer_data = [] - self._stored_optimized_layer_data = [] + if self._start_slice_job_build_plate in self._stored_optimized_layer_data: + del self._stored_optimized_layer_data[self._start_slice_job_build_plate] if self._start_slice_job is not None: self._start_slice_job.cancel() @@ -315,10 +322,13 @@ class CuraEngineBackend(QObject, Backend): self._error_message = Message(catalog.i18nc("@info:status", "Nothing to slice because none of the models fit the build volume. Please scale or rotate models to fit."), title = catalog.i18nc("@info:title", "Unable to slice")) self._error_message.show() - self.backendStateChange.emit(BackendState.Error) + #self.backendStateChange.emit(BackendState.Error) else: - self.backendStateChange.emit(BackendState.NotStarted) + #self.backendStateChange.emit(BackendState.NotStarted) + pass + self._invokeSlice() return + # Preparation completed, send it to the backend. self._socket.sendMessage(job.getSliceMessage()) @@ -360,27 +370,34 @@ class CuraEngineBackend(QObject, Backend): # # \param source The scene node that was changed. def _onSceneChanged(self, source): - if type(source) is not SceneNode: + Logger.log("d", " ##### scene changed: %s", source) + if not issubclass(type(source), SceneNode): return root_scene_nodes_changed = False + build_plates_changed = set() if source == self._scene.getRoot(): num_objects = 0 for node in DepthFirstIterator(self._scene.getRoot()): # Only count sliceable objects if node.callDecoration("isSliceable"): num_objects += 1 + build_plates_changed.add(node.callDecoration("getBuildPlateNumber")) + build_plates_changed.add(node.callDecoration("getPreviousBuildPlateNumber")) if num_objects != self._last_num_objects: self._last_num_objects = num_objects root_scene_nodes_changed = True - else: - return + # else: + # return # ?? + build_plates_changed.discard(None) + build_plates_changed.discard(-1) # object not on build plate + Logger.log("d", " #### build plates changed: %s", build_plates_changed) - if not source.callDecoration("isGroup") and not root_scene_nodes_changed: - if source.getMeshData() is None: - return - if source.getMeshData().getVertices() is None: - return + # if not source.callDecoration("isGroup") and not root_scene_nodes_changed: + # if source.getMeshData() is None: + # return + # if source.getMeshData().getVertices() is None: + # return if self._tool_active: # do it later, each source only has to be done once @@ -388,9 +405,24 @@ class CuraEngineBackend(QObject, Backend): self._postponed_scene_change_sources.append(source) return - self.needsSlicing() - self.stopSlicing() - self._onChanged() + if build_plates_changed: + Logger.log("d", " going to reslice") + self.stopSlicing() + for build_plate_number in build_plates_changed: + if build_plate_number not in self._build_plates_to_be_sliced: + self._build_plates_to_be_sliced.append(build_plate_number) + self.processingProgress.emit(0.0) + self.backendStateChange.emit(BackendState.NotStarted) + if not self._use_timer: + # With manually having to slice, we want to clear the old invalid layer data. + self._clearLayerData(build_plates_changed) + + self._invokeSlice() + + # #self.needsSlicing() + # self.stopSlicing() + # #self._onChanged() + # self._invokeSlice() ## Called when an error occurs in the socket connection towards the engine. # @@ -410,16 +442,24 @@ class CuraEngineBackend(QObject, Backend): Logger.log("w", "A socket error caused the connection to be reset") ## Remove old layer data (if any) - def _clearLayerData(self): + def _clearLayerData(self, build_plate_numbers = set()): for node in DepthFirstIterator(self._scene.getRoot()): if node.callDecoration("getLayerData"): - node.getParent().removeChild(node) - break + if node.callDecoration("getBuildPlateNumber") in build_plate_numbers or not build_plate_numbers: + node.getParent().removeChild(node) - ## Convenient function: set need_slicing, emit state and clear layer data + def markSliceAll(self): + if 0 not in self._build_plates_to_be_sliced: + self._build_plates_to_be_sliced.append(0) + if 1 not in self._build_plates_to_be_sliced: + self._build_plates_to_be_sliced.append(1) + if 2 not in self._build_plates_to_be_sliced: + self._build_plates_to_be_sliced.append(2) + + ## Convenient function: mark everything to slice, emit state and clear layer data def needsSlicing(self): self.stopSlicing() - self._need_slicing = True + self.markSliceAll() self.processingProgress.emit(0.0) self.backendStateChange.emit(BackendState.NotStarted) if not self._use_timer: @@ -441,7 +481,7 @@ class CuraEngineBackend(QObject, Backend): def _onStackErrorCheckFinished(self): self._is_error_check_scheduled = False - if not self._slicing and self._need_slicing: + if not self._slicing and self._build_plates_to_be_sliced: #self._need_slicing: self.needsSlicing() self._onChanged() @@ -455,7 +495,7 @@ class CuraEngineBackend(QObject, Backend): # # \param message The protobuf message containing sliced layer data. def _onOptimizedLayerMessage(self, message): - self._stored_optimized_layer_data.append(message) + self._stored_optimized_layer_data[self._start_slice_job_build_plate].append(message) ## Called when a progress message is received from the engine. # @@ -464,6 +504,16 @@ class CuraEngineBackend(QObject, Backend): self.processingProgress.emit(message.amount) self.backendStateChange.emit(BackendState.Processing) + # testing + def _invokeSlice(self): + if self._use_timer: + # if the error check is scheduled, wait for the error check finish signal to trigger auto-slice, + # otherwise business as usual + if self._is_error_check_scheduled: + self._change_timer.stop() + else: + self._change_timer.start() + ## Called when the engine sends a message that slicing is finished. # # \param message The protobuf message signalling that slicing is finished. @@ -481,13 +531,20 @@ class CuraEngineBackend(QObject, Backend): self._scene.gcode_list[self._scene.gcode_list.index(line)] = replaced self._slicing = False - self._need_slicing = False + #self._need_slicing = False Logger.log("d", "Slicing took %s seconds", time() - self._slice_start_time ) - if self._layer_view_active and (self._process_layers_job is None or not self._process_layers_job.isRunning()): - self._process_layers_job = ProcessSlicedLayersJob.ProcessSlicedLayersJob(self._stored_optimized_layer_data) - self._process_layers_job.finished.connect(self._onProcessLayersFinished) - self._process_layers_job.start() - self._stored_optimized_layer_data = [] + + # See if we need to process the sliced layers job. + active_build_plate = Application.getInstance().activeBuildPlate + if self._layer_view_active and (self._process_layers_job is None or not self._process_layers_job.isRunning()) and active_build_plate == self._start_slice_job_build_plate: + self._startProcessSlicedLayersJob(active_build_plate) + self._start_slice_job_build_plate = None + + Logger.log("d", "See if there is more to slice...") + # Somehow this results in an Arcus Error + # self.slice() + # Testing call slice again, allow backend to restart by using the timer + self._invokeSlice() ## Called when a g-code message is received from the engine. # @@ -584,19 +641,26 @@ class CuraEngineBackend(QObject, Backend): source = self._postponed_scene_change_sources.pop(0) self._onSceneChanged(source) + def _startProcessSlicedLayersJob(self, build_plate_number): + self._process_layers_job = ProcessSlicedLayersJob.ProcessSlicedLayersJob(self._stored_optimized_layer_data[build_plate_number]) + self._process_layers_job.setBuildPlate(build_plate_number) + self._process_layers_job.finished.connect(self._onProcessLayersFinished) + self._process_layers_job.start() + del self._stored_optimized_layer_data[build_plate_number] + ## Called when the user changes the active view mode. def _onActiveViewChanged(self): - if Application.getInstance().getController().getActiveView(): - view = Application.getInstance().getController().getActiveView() + application = Application.getInstance() + view = application.getController().getActiveView() + if view: + active_build_plate = application.activeBuildPlate if view.getPluginId() == "LayerView": # If switching to layer view, we should process the layers if that hasn't been done yet. self._layer_view_active = True # There is data and we're not slicing at the moment # if we are slicing, there is no need to re-calculate the data as it will be invalid in a moment. - if self._stored_optimized_layer_data and not self._slicing: - self._process_layers_job = ProcessSlicedLayersJob.ProcessSlicedLayersJob(self._stored_optimized_layer_data) - self._process_layers_job.finished.connect(self._onProcessLayersFinished) - self._process_layers_job.start() - self._stored_optimized_layer_data = [] + # TODO: what build plate I am slicing + if active_build_plate in self._stored_optimized_layer_data and not self._slicing: + self._startProcessSlicedLayersJob(active_build_plate) else: self._layer_view_active = False diff --git a/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py b/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py index a352564bc2..1e56f2dd35 100644 --- a/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py +++ b/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py @@ -17,10 +17,12 @@ from UM.Logger import Logger from UM.Math.Vector import Vector +from cura.Scene.BuildPlateDecorator import BuildPlateDecorator from cura.Settings.ExtruderManager import ExtruderManager from cura import LayerDataBuilder from cura import LayerDataDecorator from cura import LayerPolygon +# from cura.Scene.CuraSceneNode import CuraSceneNode import numpy from time import time @@ -49,6 +51,7 @@ class ProcessSlicedLayersJob(Job): self._scene = Application.getInstance().getController().getScene() self._progress_message = Message(catalog.i18nc("@info:status", "Processing Layers"), 0, False, -1) self._abort_requested = False + self._build_plate_number = None ## Aborts the processing of layers. # @@ -59,7 +62,11 @@ class ProcessSlicedLayersJob(Job): def abort(self): self._abort_requested = True + def setBuildPlate(self, new_value): + self._build_plate_number = new_value + def run(self): + Logger.log("d", "########## Processing new layer for [%s]..." % self._build_plate_number) start_time = time() if Application.getInstance().getController().getActiveView().getPluginId() == "LayerView": self._progress_message.show() @@ -72,16 +79,18 @@ class ProcessSlicedLayersJob(Job): Application.getInstance().getController().activeViewChanged.connect(self._onActiveViewChanged) new_node = SceneNode() + new_node.addDecorator(BuildPlateDecorator(self._build_plate_number)) - ## Remove old layer data (if any) - for node in DepthFirstIterator(self._scene.getRoot()): - if node.callDecoration("getLayerData"): - node.getParent().removeChild(node) - break - if self._abort_requested: - if self._progress_message: - self._progress_message.hide() - return + # ## Remove old layer data (if any) + # for node in DepthFirstIterator(self._scene.getRoot()): + # if node.callDecoration("getLayerData") and node.callDecoration("getBuildPlateNumber") == self._build_plate_number: + # Logger.log("d", " # Removing: %s", node) + # node.getParent().removeChild(node) + # #break + # if self._abort_requested: + # if self._progress_message: + # self._progress_message.hide() + # return # Force garbage collection. # For some reason, Python has a tendency to keep the layer data diff --git a/plugins/CuraEngineBackend/StartSliceJob.py b/plugins/CuraEngineBackend/StartSliceJob.py index 607914f5c5..f6abe94702 100644 --- a/plugins/CuraEngineBackend/StartSliceJob.py +++ b/plugins/CuraEngineBackend/StartSliceJob.py @@ -10,12 +10,13 @@ from UM.Job import Job from UM.Application import Application from UM.Logger import Logger -from UM.Scene.SceneNode import SceneNode +#from UM.Scene.SceneNode import SceneNode from UM.Scene.Iterator.DepthFirstIterator import DepthFirstIterator from UM.Settings.Validator import ValidatorState from UM.Settings.SettingRelation import RelationType +from cura.Scene.CuraSceneNode import CuraSceneNode as SceneNode from cura.OneAtATimeIterator import OneAtATimeIterator from cura.Settings.ExtruderManager import ExtruderManager @@ -58,10 +59,14 @@ class StartSliceJob(Job): self._scene = Application.getInstance().getController().getScene() self._slice_message = slice_message self._is_cancelled = False + self._build_plate_number = None def getSliceMessage(self): return self._slice_message + def setBuildPlate(self, build_plate_number): + self._build_plate_number = build_plate_number + ## Check if a stack has any errors. ## returns true if it has errors, false otherwise. def _checkStackForErrors(self, stack): @@ -78,6 +83,10 @@ class StartSliceJob(Job): ## Runs the job that initiates the slicing. def run(self): + if self._build_plate_number is None: + self.setResult(StartJobResult.Error) + return + stack = Application.getInstance().getGlobalContainerStack() if not stack: self.setResult(StartJobResult.Error) @@ -141,14 +150,12 @@ class StartSliceJob(Job): for node in DepthFirstIterator(self._scene.getRoot()): if type(node) is SceneNode and node.getMeshData() and node.getMeshData().getVertices() is not None: - # temp hack to filter on build plate 0 - if (node.callDecoration("getBuildPlateNumber") == 0): - - if not getattr(node, "_outside_buildarea", False)\ - or (node.callDecoration("getStack") and any(node.callDecoration("getStack").getProperty(setting, "value") for setting in self._not_printed_mesh_settings)): + if (node.callDecoration("getBuildPlateNumber") == self._build_plate_number): + if not getattr(node, "_outside_buildarea", False) or (node.callDecoration("getStack") and any(node.callDecoration("getStack").getProperty(setting, "value") for setting in self._not_printed_mesh_settings)): temp_list.append(node) Job.yieldThread() + Logger.log("d", " objects to be sliced: %s", temp_list) if temp_list: object_groups.append(temp_list) diff --git a/plugins/ImageReader/ImageReader.py b/plugins/ImageReader/ImageReader.py index b419c0b496..2529abf2d8 100644 --- a/plugins/ImageReader/ImageReader.py +++ b/plugins/ImageReader/ImageReader.py @@ -8,12 +8,14 @@ from PyQt5.QtCore import Qt from UM.Mesh.MeshReader import MeshReader from UM.Mesh.MeshBuilder import MeshBuilder -from UM.Scene.SceneNode import SceneNode +#from UM.Scene.SceneNode import SceneNode from UM.Math.Vector import Vector from UM.Job import Job from UM.Logger import Logger from .ImageReaderUI import ImageReaderUI +from cura.Scene.CuraSceneNode import CuraSceneNode as SceneNode + class ImageReader(MeshReader): def __init__(self): diff --git a/plugins/LayerView/LayerPass.py b/plugins/LayerView/LayerPass.py index 963c8c75c8..2b0e82d4b3 100755 --- a/plugins/LayerView/LayerPass.py +++ b/plugins/LayerView/LayerPass.py @@ -66,13 +66,14 @@ class LayerPass(RenderPass): self.bind() tool_handle_batch = RenderBatch(self._tool_handle_shader, type = RenderBatch.RenderType.Overlay) + active_build_plate = Application.getInstance().activeBuildPlate for node in DepthFirstIterator(self._scene.getRoot()): if isinstance(node, ToolHandle): tool_handle_batch.addItem(node.getWorldTransformation(), mesh = node.getSolidMesh()) - elif isinstance(node, SceneNode) and (node.getMeshData() or node.callDecoration("isBlockSlicing")) and node.isVisible(): + elif issubclass(type(node), SceneNode) and (node.getMeshData() or node.callDecoration("isBlockSlicing")) and node.isVisible() and node.callDecoration("getBuildPlateNumber") == active_build_plate: layer_data = node.callDecoration("getLayerData") if not layer_data: continue diff --git a/plugins/SolidView/SolidView.py b/plugins/SolidView/SolidView.py index d37fbb7c9d..699cec23f5 100644 --- a/plugins/SolidView/SolidView.py +++ b/plugins/SolidView/SolidView.py @@ -75,7 +75,7 @@ class SolidView(View): for node in DepthFirstIterator(scene.getRoot()): if not node.render(renderer): - if node.getMeshData() and node.isVisible() and (node.callDecoration("getBuildPlateNumber") == activeBuildPlateNumber): + if node.getMeshData() and node.isVisible(): # and (node.callDecoration("getBuildPlateNumber") == activeBuildPlateNumber): uniforms = {} shade_factor = 1.0 diff --git a/plugins/X3DReader/X3DReader.py b/plugins/X3DReader/X3DReader.py index e4a59dcdaa..a0d530c78c 100644 --- a/plugins/X3DReader/X3DReader.py +++ b/plugins/X3DReader/X3DReader.py @@ -11,7 +11,8 @@ from UM.Math.Matrix import Matrix from UM.Math.Vector import Vector from UM.Mesh.MeshBuilder import MeshBuilder from UM.Mesh.MeshReader import MeshReader -from UM.Scene.SceneNode import SceneNode +#from UM.Scene.SceneNode import SceneNode +from cura.Scene.CuraSceneNode import CuraSceneNode as SceneNode MYPY = False try: @@ -19,63 +20,63 @@ try: import xml.etree.cElementTree as ET except ImportError: import xml.etree.ElementTree as ET - + # TODO: preserve the structure of scenes that contain several objects -# Use CADPart, for example, to distinguish between separate objects - +# Use CADPart, for example, to distinguish between separate objects + DEFAULT_SUBDIV = 16 # Default subdivision factor for spheres, cones, and cylinders EPSILON = 0.000001 class Shape: - + # Expects verts in MeshBuilder-ready format, as a n by 3 mdarray # with vertices stored in rows def __init__(self, verts, faces, index_base, name): self.verts = verts self.faces = faces # Those are here for debugging purposes only - self.index_base = index_base + self.index_base = index_base self.name = name - + class X3DReader(MeshReader): def __init__(self): super().__init__() self._supported_extensions = [".x3d"] self._namespaces = {} - + # Main entry point # Reads the file, returns a SceneNode (possibly with nested ones), or None def read(self, file_name): try: self.defs = {} self.shapes = [] - + tree = ET.parse(file_name) xml_root = tree.getroot() - + if xml_root.tag != "X3D": return None - scale = 1000 # Default X3D unit it one meter, while Cura's is one millimeters + scale = 1000 # Default X3D unit it one meter, while Cura's is one millimeters if xml_root[0].tag == "head": for head_node in xml_root[0]: if head_node.tag == "unit" and head_node.attrib.get("category") == "length": scale *= float(head_node.attrib["conversionFactor"]) - break + break xml_scene = xml_root[1] else: xml_scene = xml_root[0] - + if xml_scene.tag != "Scene": return None - + self.transform = Matrix() self.transform.setByScaleFactor(scale) self.index_base = 0 - + # Traverse the scene tree, populate the shapes list self.processChildNodes(xml_scene) - + if self.shapes: builder = MeshBuilder() builder.setVertices(numpy.concatenate([shape.verts for shape in self.shapes])) @@ -95,20 +96,20 @@ class X3DReader(MeshReader): else: return None - + except Exception: Logger.logException("e", "Exception in X3D reader") return None return node - + # ------------------------- XML tree traversal - + def processNode(self, xml_node): xml_node = self.resolveDefUse(xml_node) if xml_node is None: return - + tag = xml_node.tag if tag in ("Group", "StaticGroup", "CADAssembly", "CADFace", "CADLayer", "Collision"): self.processChildNodes(xml_node) @@ -120,8 +121,8 @@ class X3DReader(MeshReader): self.processTransform(xml_node) elif tag == "Shape": self.processShape(xml_node) - - + + def processShape(self, xml_node): # Find the geometry and the appearance inside the Shape geometry = appearance = None @@ -130,21 +131,21 @@ class X3DReader(MeshReader): appearance = self.resolveDefUse(sub_node) elif sub_node.tag in self.geometry_importers and not geometry: geometry = self.resolveDefUse(sub_node) - - # TODO: appearance is completely ignored. At least apply the material color... + + # TODO: appearance is completely ignored. At least apply the material color... if not geometry is None: try: - self.verts = self.faces = [] # Safeguard + self.verts = self.faces = [] # Safeguard self.geometry_importers[geometry.tag](self, geometry) m = self.transform.getData() verts = m.dot(self.verts)[:3].transpose() - + self.shapes.append(Shape(verts, self.faces, self.index_base, geometry.tag)) self.index_base += len(verts) - + except Exception: Logger.logException("e", "Exception in X3D reader while reading %s", geometry.tag) - + # Returns the referenced node if the node has USE, the same node otherwise. # May return None is USE points at a nonexistent node # In X3DOM, when both DEF and USE are in the same node, DEF is ignored. @@ -155,34 +156,34 @@ class X3DReader(MeshReader): if USE: return self.defs.get(USE, None) - DEF = node.attrib.get("DEF") + DEF = node.attrib.get("DEF") if DEF: - self.defs[DEF] = node + self.defs[DEF] = node return node - + def processChildNodes(self, node): for c in node: self.processNode(c) Job.yieldThread() - + # Since this is a grouping node, will recurse down the tree. # According to the spec, the final transform matrix is: # T * C * R * SR * S * -SR * -C # Where SR corresponds to the rotation matrix to scaleOrientation - # C and SR are rather exotic. S, slightly less so. + # C and SR are rather exotic. S, slightly less so. def processTransform(self, node): rot = readRotation(node, "rotation", (0, 0, 1, 0)) # (angle, axisVactor) tuple trans = readVector(node, "translation", (0, 0, 0)) # Vector scale = readVector(node, "scale", (1, 1, 1)) # Vector center = readVector(node, "center", (0, 0, 0)) # Vector scale_orient = readRotation(node, "scaleOrientation", (0, 0, 1, 0)) # (angle, axisVactor) tuple - - # Store the previous transform; in Cura, the default matrix multiplication is in place + + # Store the previous transform; in Cura, the default matrix multiplication is in place prev = Matrix(self.transform.getData()) # It's deep copy, I've checked - + # The rest of transform manipulation will be applied in place got_center = (center.x != 0 or center.y != 0 or center.z != 0) - + T = self.transform if trans.x != 0 or trans.y != 0 or trans.z !=0: T.translate(trans) @@ -202,13 +203,13 @@ class X3DReader(MeshReader): T.rotateByAxis(-scale_orient[0], scale_orient[1]) if got_center: T.translate(-center) - + self.processChildNodes(node) self.transform = prev - + # ------------------------- Geometry importers # They are supposed to fill the self.verts and self.faces arrays, the caller will do the rest - + # Primitives def processGeometryBox(self, node): @@ -228,14 +229,14 @@ class X3DReader(MeshReader): self.addVertex(-dx, -dy, dz) self.addVertex(-dx, -dy, -dz) self.addVertex(dx, -dy, -dz) - + self.addQuad(0, 1, 2, 3) # +y self.addQuad(4, 0, 3, 7) # +x self.addQuad(7, 3, 2, 6) # -z self.addQuad(6, 2, 1, 5) # -x self.addQuad(5, 1, 0, 4) # +z self.addQuad(7, 6, 5, 4) # -y - + # The sphere is subdivided into nr rings and ns segments def processGeometrySphere(self, node): r = readFloat(node, "radius", 0.5) @@ -247,16 +248,16 @@ class X3DReader(MeshReader): (nr, ns) = subdiv else: nr = ns = DEFAULT_SUBDIV - + lau = pi / nr # Unit angle of latitude (rings) for the given tesselation lou = 2 * pi / ns # Unit angle of longitude (segments) - + self.reserveFaceAndVertexCount(ns*(nr*2 - 2), 2 + (nr - 1)*ns) - + # +y and -y poles self.addVertex(0, r, 0) self.addVertex(0, -r, 0) - + # The non-polar vertices go from x=0, negative z plane counterclockwise - # to -x, to +z, to +x, back to -z for ring in range(1, nr): @@ -264,12 +265,12 @@ class X3DReader(MeshReader): self.addVertex(-r*sin(lou * seg) * sin(lau * ring), r*cos(lau * ring), -r*cos(lou * seg) * sin(lau * ring)) - + vb = 2 + (nr - 2) * ns # First vertex index for the bottom cap - + # Faces go in order: top cap, sides, bottom cap. # Sides go by ring then by segment. - + # Caps # Top cap face vertices go in order: down right up # (starting from +y pole) @@ -277,7 +278,7 @@ class X3DReader(MeshReader): for seg in range(ns): self.addTri(0, seg + 2, (seg + 1) % ns + 2) self.addTri(1, vb + (seg + 1) % ns, vb + seg) - + # Sides # Side face vertices go in order: down right upleft, downright up left for ring in range(nr - 2): @@ -288,24 +289,24 @@ class X3DReader(MeshReader): for seg in range(ns): nseg = (seg + 1) % ns self.addQuad(tvb + seg, bvb + seg, bvb + nseg, tvb + nseg) - + def processGeometryCone(self, node): r = readFloat(node, "bottomRadius", 1) height = readFloat(node, "height", 2) bottom = readBoolean(node, "bottom", True) side = readBoolean(node, "side", True) n = readInt(node, "subdivision", DEFAULT_SUBDIV) - + d = height / 2 angle = 2 * pi / n - + self.reserveFaceAndVertexCount((n if side else 0) + (n-2 if bottom else 0), n+1) - + # Vertex 0 is the apex, vertices 1..n are the bottom self.addVertex(0, d, 0) for i in range(n): self.addVertex(-r * sin(angle * i), -d, -r * cos(angle * i)) - + # Side face vertices go: up down right if side: for i in range(n): @@ -313,7 +314,7 @@ class X3DReader(MeshReader): if bottom: for i in range(2, n): self.addTri(1, i, i+1) - + def processGeometryCylinder(self, node): r = readFloat(node, "radius", 1) height = readFloat(node, "height", 2) @@ -321,13 +322,13 @@ class X3DReader(MeshReader): side = readBoolean(node, "side", True) top = readBoolean(node, "top", True) n = readInt(node, "subdivision", DEFAULT_SUBDIV) - + nn = n * 2 angle = 2 * pi / n hh = height/2 - + self.reserveFaceAndVertexCount((nn if side else 0) + (n - 2 if top else 0) + (n - 2 if bottom else 0), nn) - + # The seam is at x=0, z=-r, vertices go ccw - # to pos x, to neg z, to neg x, back to neg z for i in range(n): @@ -335,18 +336,18 @@ class X3DReader(MeshReader): rc = -r * cos(angle * i) self.addVertex(rs, hh, rc) self.addVertex(rs, -hh, rc) - + if side: for i in range(n): ni = (i + 1) % n self.addQuad(ni * 2 + 1, ni * 2, i * 2, i * 2 + 1) - + for i in range(2, nn-3, 2): if top: self.addTri(0, i, i+2) if bottom: self.addTri(1, i+1, i+3) - + # Semi-primitives def processGeometryElevationGrid(self, node): @@ -356,21 +357,21 @@ class X3DReader(MeshReader): nz = readInt(node, "zDimension", 0) height = readFloatArray(node, "height", False) ccw = readBoolean(node, "ccw", True) - + if nx <= 0 or nz <= 0 or len(height) < nx*nz: return # That's weird, the wording of the standard suggests grids with zero quads are somehow valid - + self.reserveFaceAndVertexCount(2*(nx-1)*(nz-1), nx*nz) - + for z in range(nz): for x in range(nx): self.addVertex(x * dx, height[z*nx + x], z * dz) - + for z in range(1, nz): for x in range(1, nx): self.addTriFlip((z - 1)*nx + x - 1, z*nx + x, (z - 1)*nx + x, ccw) self.addTriFlip((z - 1)*nx + x - 1, z*nx + x - 1, z*nx + x, ccw) - + def processGeometryExtrusion(self, node): ccw = readBoolean(node, "ccw", True) begin_cap = readBoolean(node, "beginCap", True) @@ -384,23 +385,23 @@ class X3DReader(MeshReader): # This converts X3D's axis/angle rotation to a 3x3 numpy matrix def toRotationMatrix(rot): (x, y, z) = rot[:3] - a = rot[3] + a = rot[3] s = sin(a) c = cos(a) t = 1-c return numpy.array(( (x * x * t + c, x * y * t - z*s, x * z * t + y * s), (x * y * t + z*s, y * y * t + c, y * z * t - x * s), - (x * z * t - y * s, y * z * t + x * s, z * z * t + c))) - + (x * z * t - y * s, y * z * t + x * s, z * z * t + c))) + orient = [toRotationMatrix(orient[i:i+4]) if orient[i+3] != 0 else None for i in range(0, len(orient), 4)] - + scale = readFloatArray(node, "scale", None) if scale: scale = [numpy.array(((scale[i], 0, 0), (0, 1, 0), (0, 0, scale[i+1]))) if scale[i] != 1 or scale[i+1] != 1 else None for i in range(0, len(scale), 2)] - - + + # Special treatment for the closed spine and cross section. # Let's save some memory by not creating identical but distinct vertices; # later we'll introduce conditional logic to link the last vertex with @@ -413,14 +414,14 @@ class X3DReader(MeshReader): ncf = nc if crossClosed else nc - 1 # Face count along the cross; for closed cross, it's the same as the # respective vertex count - + spine_closed = spine[0] == spine[-1] if spine_closed: spine = spine[:-1] ns = len(spine) spine = [Vector(*s) for s in spine] nsf = ns if spine_closed else ns - 1 - + # This will be used for fallback, where the current spine point joins # two collinear spine segments. No need to recheck the case of the # closed spine/last-to-first point juncture; if there's an angle there, @@ -442,7 +443,7 @@ class X3DReader(MeshReader): if v.cross(orig_y).length() > EPSILON: # Spine at angle with global y - rotate the z accordingly a = v.cross(orig_y) # Axis of rotation to get to the Z - (x, y, z) = a.normalized().getData() + (x, y, z) = a.normalized().getData() s = a.length()/v.length() c = sqrt(1-s*s) t = 1-c @@ -452,7 +453,7 @@ class X3DReader(MeshReader): (x * z * t + y * s, y * z * t - x * s, z * z * t + c))) orig_z = Vector(*m.dot(orig_z.getData())) return orig_z - + self.reserveFaceAndVertexCount(2*nsf*ncf + (nc - 2 if begin_cap else 0) + (nc - 2 if end_cap else 0), ns*nc) z = None @@ -482,151 +483,151 @@ class X3DReader(MeshReader): y = spt - sprev # If there's more than one point in the spine, z is already set. # One point in the spline is an error anyway. - + z = z.normalized() y = y.normalized() x = y.cross(z) # Already normalized m = numpy.array(((x.x, y.x, z.x), (x.y, y.y, z.y), (x.z, y.z, z.z))) - + # Columns are the unit vectors for the xz plane for the cross-section if orient: mrot = orient[i] if len(orient) > 1 else orient[0] if not mrot is None: m = m.dot(mrot) # Tested against X3DOM, the result matches, still not sure :( - + if scale: mscale = scale[i] if len(scale) > 1 else scale[0] if not mscale is None: m = m.dot(mscale) - + # First the cross-section 2-vector is scaled, # then rotated (which may make it a 3-vector), # then applied to the xz plane unit vectors - + sptv3 = numpy.array(spt.getData()[:3]) for cpt in cross: v = sptv3 + m.dot(cpt) self.addVertex(*v) - + if begin_cap: self.addFace([x for x in range(nc - 1, -1, -1)], ccw) - + # Order of edges in the face: forward along cross, forward along spine, # backward along cross, backward along spine, flipped if now ccw. # This order is assumed later in the texture coordinate assignment; # please don't change without syncing. - + for s in range(ns - 1): for c in range(ncf): self.addQuadFlip(s * nc + c, s * nc + (c + 1) % nc, (s + 1) * nc + (c + 1) % nc, (s + 1) * nc + c, ccw) - + if spine_closed: # The faces between the last and the first spine points b = (ns - 1) * nc for c in range(ncf): self.addQuadFlip(b + c, b + (c + 1) % nc, (c + 1) % nc, c, ccw) - + if end_cap: self.addFace([(ns - 1) * nc + x for x in range(0, nc)], ccw) - + # Triangle meshes # Helper for numerous nodes with a Coordinate subnode holding vertices # That all triangle meshes and IndexedFaceSet - # num_faces can be a function, in case the face count is a function of vertex count + # num_faces can be a function, in case the face count is a function of vertex count def startCoordMesh(self, node, num_faces): ccw = readBoolean(node, "ccw", True) self.readVertices(node) # This will allocate and fill the vertex array if hasattr(num_faces, "__call__"): num_faces = num_faces(self.getVertexCount()) self.reserveFaceCount(num_faces) - + return ccw - + def processGeometryIndexedTriangleSet(self, node): index = readIntArray(node, "index", []) num_faces = len(index) // 3 ccw = int(self.startCoordMesh(node, num_faces)) - + for i in range(0, num_faces*3, 3): self.addTri(index[i + 1 - ccw], index[i + ccw], index[i+2]) - + def processGeometryIndexedTriangleStripSet(self, node): strips = readIndex(node, "index") ccw = int(self.startCoordMesh(node, sum([len(strip) - 2 for strip in strips]))) - + for strip in strips: sccw = ccw # Running CCW value, reset for each strip for i in range(len(strip) - 2): self.addTri(strip[i + 1 - sccw], strip[i + sccw], strip[i+2]) sccw = 1 - sccw - + def processGeometryIndexedTriangleFanSet(self, node): fans = readIndex(node, "index") ccw = int(self.startCoordMesh(node, sum([len(fan) - 2 for fan in fans]))) - + for fan in fans: for i in range(1, len(fan) - 1): self.addTri(fan[0], fan[i + 1 - ccw], fan[i + ccw]) - + def processGeometryTriangleSet(self, node): ccw = int(self.startCoordMesh(node, lambda num_vert: num_vert // 3)) for i in range(0, self.getVertexCount(), 3): self.addTri(i + 1 - ccw, i + ccw, i+2) - + def processGeometryTriangleStripSet(self, node): strips = readIntArray(node, "stripCount", []) ccw = int(self.startCoordMesh(node, sum([n-2 for n in strips]))) - + vb = 0 for n in strips: sccw = ccw - for i in range(n-2): + for i in range(n-2): self.addTri(vb + i + 1 - sccw, vb + i + sccw, vb + i + 2) sccw = 1 - sccw vb += n - + def processGeometryTriangleFanSet(self, node): fans = readIntArray(node, "fanCount", []) ccw = int(self.startCoordMesh(node, sum([n-2 for n in fans]))) - + vb = 0 for n in fans: - for i in range(1, n-1): + for i in range(1, n-1): self.addTri(vb, vb + i + 1 - ccw, vb + i + ccw) vb += n - + # Quad geometries from the CAD module, might be relevant for printing - + def processGeometryQuadSet(self, node): ccw = self.startCoordMesh(node, lambda num_vert: 2*(num_vert // 4)) for i in range(0, self.getVertexCount(), 4): self.addQuadFlip(i, i+1, i+2, i+3, ccw) - + def processGeometryIndexedQuadSet(self, node): index = readIntArray(node, "index", []) num_quads = len(index) // 4 ccw = self.startCoordMesh(node, num_quads*2) - + for i in range(0, num_quads*4, 4): self.addQuadFlip(index[i], index[i+1], index[i+2], index[i+3], ccw) - + # 2D polygon geometries # Won't work for now, since Cura expects every mesh to have a nontrivial convex hull # The only way around that is merging meshes. - + def processGeometryDisk2D(self, node): innerRadius = readFloat(node, "innerRadius", 0) outerRadius = readFloat(node, "outerRadius", 1) n = readInt(node, "subdivision", DEFAULT_SUBDIV) - + angle = 2 * pi / n - + self.reserveFaceAndVertexCount(n*4 if innerRadius else n-2, n*2 if innerRadius else n) - + for i in range(n): s = sin(angle * i) c = cos(angle * i) @@ -635,11 +636,11 @@ class X3DReader(MeshReader): self.addVertex(innerRadius*c, innerRadius*s, 0) ni = (i+1) % n self.addQuad(2*i, 2*ni, 2*ni+1, 2*i+1) - + if not innerRadius: for i in range(2, n): self.addTri(0, i-1, i) - + def processGeometryRectangle2D(self, node): (x, y) = readFloatArray(node, "size", (2, 2)) self.reserveFaceAndVertexCount(2, 4) @@ -648,7 +649,7 @@ class X3DReader(MeshReader): self.addVertex(x/2, y/2, 0) self.addVertex(-x/2, y/2, 0) self.addQuad(0, 1, 2, 3) - + def processGeometryTriangleSet2D(self, node): verts = readFloatArray(node, "vertices", ()) num_faces = len(verts) // 6; @@ -656,25 +657,25 @@ class X3DReader(MeshReader): self.reserveFaceAndVertexCount(num_faces, num_faces * 3) for vert in verts: self.addVertex(*vert) - + # The front face is on the +Z side, so CCW is a variable for i in range(0, num_faces*3, 3): a = Vector(*verts[i+2]) - Vector(*verts[i]) b = Vector(*verts[i+1]) - Vector(*verts[i]) self.addTriFlip(i, i+1, i+2, a.x*b.y > a.y*b.x) - + # General purpose polygon mesh def processGeometryIndexedFaceSet(self, node): faces = readIndex(node, "coordIndex") ccw = self.startCoordMesh(node, sum([len(face) - 2 for face in faces])) - + for face in faces: if len(face) == 3: self.addTriFlip(face[0], face[1], face[2], ccw) elif len(face) > 3: self.addFace(face, ccw) - + geometry_importers = { "IndexedFaceSet": processGeometryIndexedFaceSet, "IndexedTriangleSet": processGeometryIndexedTriangleSet, @@ -695,7 +696,7 @@ class X3DReader(MeshReader): "Cylinder": processGeometryCylinder, "Cone": processGeometryCone } - + # Parses the Coordinate.@point field, fills the verts array. def readVertices(self, node): for c in node: @@ -704,9 +705,9 @@ class X3DReader(MeshReader): if not c is None: pt = c.attrib.get("point") if pt: - # allow the list of float values in 'point' attribute to - # be separated by commas or whitespace as per spec of - # XML encoding of X3D + # allow the list of float values in 'point' attribute to + # be separated by commas or whitespace as per spec of + # XML encoding of X3D # Ref ISO/IEC 19776-1:2015 : Section 5.1.2 co = [float(x) for vec in pt.split(',') for x in vec.split()] num_verts = len(co) // 3 @@ -715,57 +716,57 @@ class X3DReader(MeshReader): # Group by three for i in range(num_verts): self.verts[:3,i] = co[3*i:3*i+3] - + # Mesh builder helpers - + def reserveFaceAndVertexCount(self, num_faces, num_verts): # Unlike the Cura MeshBuilder, we use 4-vectors stored as columns for easier transform self.verts = numpy.zeros((4, num_verts), dtype=numpy.float32) self.verts[3,:] = numpy.ones((num_verts), dtype=numpy.float32) self.num_verts = 0 self.reserveFaceCount(num_faces) - + def reserveFaceCount(self, num_faces): self.faces = numpy.zeros((num_faces, 3), dtype=numpy.int32) self.num_faces = 0 - + def getVertexCount(self): return self.verts.shape[1] - + def addVertex(self, x, y, z): self.verts[0, self.num_verts] = x self.verts[1, self.num_verts] = y self.verts[2, self.num_verts] = z self.num_verts += 1 - + # Indices are 0-based for this shape, but they won't be zero-based in the merged mesh def addTri(self, a, b, c): self.faces[self.num_faces, 0] = self.index_base + a self.faces[self.num_faces, 1] = self.index_base + b self.faces[self.num_faces, 2] = self.index_base + c self.num_faces += 1 - + def addTriFlip(self, a, b, c, ccw): if ccw: self.addTri(a, b, c) else: self.addTri(b, a, c) - + # Needs to be convex, but not necessaily planar # Assumed ccw, cut along the ac diagonal def addQuad(self, a, b, c, d): self.addTri(a, b, c) self.addTri(c, d, a) - + def addQuadFlip(self, a, b, c, d, ccw): if ccw: self.addTri(a, b, c) self.addTri(c, d, a) else: self.addTri(a, c, b) - self.addTri(c, a, d) - - + self.addTri(c, a, d) + + # Arbitrary polygon triangulation. # Doesn't assume convexity and doesn't check the "convex" flag in the file. # Works by the "cutting of ears" algorithm: @@ -776,13 +777,13 @@ class X3DReader(MeshReader): def addFace(self, indices, ccw): # Resolve indices to coordinates for faster math face = [Vector(data=self.verts[0:3, i]) for i in indices] - + # Need a normal to the plane so that we can know which vertices form inner angles normal = findOuterNormal(face) - + if not normal: # Couldn't find an outer edge, non-planar polygon maybe? return - + # Find the vertex with the smallest inner angle and no points inside, cut off. Repeat until done n = len(face) vi = [i for i in range(n)] # We'll be using this to kick vertices from the face @@ -807,17 +808,17 @@ class X3DReader(MeshReader): if pointInsideTriangle(vx, next, prev, nextXprev): no_points_inside = False break - + if no_points_inside: max_cos = cos i_min = i - + self.addTriFlip(indices[vi[(i_min + n - 1) % n]], indices[vi[i_min]], indices[vi[(i_min + 1) % n]], ccw) vi.pop(i_min) n -= 1 self.addTriFlip(indices[vi[0]], indices[vi[1]], indices[vi[2]], ccw) - + # ------------------------------------------------------------ # X3D field parsers # ------------------------------------------------------------ @@ -844,7 +845,7 @@ def readInt(node, attr, default): if not s: return default return int(s, 0) - + def readBoolean(node, attr, default): s = node.attrib.get(attr) if not s: @@ -873,8 +874,8 @@ def readIndex(node, attr): chunk.append(v[i]) if chunk: chunks.append(chunk) - return chunks - + return chunks + # Given a face as a sequence of vectors, returns a normal to the polygon place that forms a right triple # with a vector along the polygon sequence and a vector backwards def findOuterNormal(face): @@ -894,25 +895,25 @@ def findOuterNormal(face): if rejection.dot(prev_rejection) < -EPSILON: # points on both sides of the edge - not an outer one is_outer = False break - elif rejection.length() > prev_rejection.length(): # Pick a greater rejection for numeric stability + elif rejection.length() > prev_rejection.length(): # Pick a greater rejection for numeric stability prev_rejection = rejection - + if is_outer: # Found an outer edge, prev_rejection is the rejection inside the face. Generate a normal. return edge.cross(prev_rejection) return False -# Given two *collinear* vectors a and b, returns the coefficient that takes b to a. +# Given two *collinear* vectors a and b, returns the coefficient that takes b to a. # No error handling. -# For stability, taking the ration between the biggest coordinates would be better... +# For stability, taking the ration between the biggest coordinates would be better... def ratio(a, b): if b.x > EPSILON or b.x < -EPSILON: return a.x / b.x elif b.y > EPSILON or b.y < -EPSILON: return a.y / b.y else: - return a.z / b.z - + return a.z / b.z + def pointInsideTriangle(vx, next, prev, nextXprev): vxXprev = vx.cross(prev) r = ratio(vxXprev, nextXprev) @@ -921,4 +922,4 @@ def pointInsideTriangle(vx, next, prev, nextXprev): vxXnext = vx.cross(next); s = -ratio(vxXnext, nextXprev) return s > 0 and (s + r) < 1 - + diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index 03d0ce9ecd..29d8b439a8 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -409,6 +409,7 @@ UM.MainWindow { id: objectsList; visible: false; + //z: -10; anchors { top: objectsButton.top; diff --git a/resources/qml/ObjectsList.qml b/resources/qml/ObjectsList.qml index 4a7c84c41e..cde7f065fa 100644 --- a/resources/qml/ObjectsList.qml +++ b/resources/qml/ObjectsList.qml @@ -55,7 +55,7 @@ Rectangle //anchors.right: parent.right width: parent.width - 2 * UM.Theme.getSize("default_margin").width - 30 text: Cura.ObjectManager.getItem(index).name; - color: Cura.ObjectManager.getItem(index).isSelected ? palette.highlightedText : palette.text + color: Cura.ObjectManager.getItem(index).isSelected ? palette.highlightedText : (Cura.ObjectManager.getItem(index).isOutsideBuildArea ? palette.mid : palette.text) elide: Text.ElideRight } @@ -95,7 +95,7 @@ Rectangle topMargin: UM.Theme.getSize("default_margin").height; left: parent.left; leftMargin: UM.Theme.getSize("default_margin").height; - bottom: buildPlateSelection.top; + bottom: filterBuildPlateCheckbox.top; bottomMargin: UM.Theme.getSize("default_margin").height; } @@ -115,6 +115,25 @@ Rectangle } } + + CheckBox + { + id: filterBuildPlateCheckbox + checked: boolCheck(UM.Preferences.getValue("view/filter_current_build_plate")) + onClicked: UM.Preferences.setValue("view/filter_current_build_plate", checked) + + text: catalog.i18nc("@option:check","Filter active build plate"); + + anchors + { + left: parent.left; + topMargin: UM.Theme.getSize("default_margin").height; + bottomMargin: UM.Theme.getSize("default_margin").height; + leftMargin: UM.Theme.getSize("default_margin").height; + bottom: buildPlateSelection.top; + } + } + ListModel { id: buildPlatesModel diff --git a/resources/qml/Preferences/GeneralPage.qml b/resources/qml/Preferences/GeneralPage.qml index ad6c2ce050..c74fb5720d 100644 --- a/resources/qml/Preferences/GeneralPage.qml +++ b/resources/qml/Preferences/GeneralPage.qml @@ -304,7 +304,7 @@ UM.PreferencesPage text: catalog.i18nc("@option:check","Slice automatically"); } } - + Item { //: Spacer @@ -451,6 +451,20 @@ UM.PreferencesPage text: catalog.i18nc("@label","Opening and saving files") } + UM.TooltipArea { + width: childrenRect.width + height: childrenRect.height + text: catalog.i18nc("@info:tooltip","Should newly loaded models be arranged on the build palte?") + + CheckBox + { + id: arrangeOnLoadCheckbox + text: catalog.i18nc("@option:check","Arrange objects on load") + checked: boolCheck(UM.Preferences.getValue("cura/arrange_objects_on_load")) + onCheckedChanged: UM.Preferences.setValue("cura/arrange_objects_on_load", checked) + } + } + UM.TooltipArea { width: childrenRect.width height: childrenRect.height From cd6b1aca2956d40eb505780293bb22930b6a595f Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 10 Nov 2017 13:05:32 +0100 Subject: [PATCH 014/124] Add branch diameter angle setting It's a bit obscure. Could we devise a better setting name? Contributes to issue CURA-4523. --- resources/definitions/fdmprinter.def.json | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 14d7e7f39e..c9dae14bd4 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -3704,6 +3704,22 @@ "settable_per_mesh": false, "settable_per_extruder": true }, + "support_tree_branch_diameter_angle": + { + "label": "Tree Support Branch Diameter Angle", + "description": "The angle of the branches' diameter as they gradually become thicker towards the bottom. An angle of 0 will cause the branches to have uniform thickness over their length. A negative angle makes them thinner towards the bottom, so be careful as they might disappear. A small positive angle can increase stability of the tree support.", + "unit": "°", + "type": "float", + "minimum_value": "-89.9999", + "maximum_value": "89.9999", + "minimum_value_warning": "0", + "maximum_value_warning": "15", + "default_value": 5, + "limit_to_extruder": "support_infill_extruder_nr", + "enabled": "support_tree_enable", + "settable_per_mesh": false, + "settable_per_extruder": true + }, "support_tree_wall_thickness": { "label": "Tree Support Wall Thickness", From 4cc895b54b7c242aac4ea08f57dd1b4749ae7e36 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 10 Nov 2017 13:06:29 +0100 Subject: [PATCH 015/124] Use 1 wall for tree support by default Contributes to issue CURA-4523. --- resources/definitions/fdmprinter.def.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index c9dae14bd4..b127b614af 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -3729,7 +3729,7 @@ "minimum_value": "0", "minimum_value_warning": "wall_line_width", "default_value": 0.8, - "value": "wall_line_width * 2", + "value": "support_line_width", "limit_to_extruder": "support_infill_extruder_nr", "enabled": "support_tree_enable", "settable_per_mesh": false, @@ -3743,7 +3743,7 @@ "type": "int", "minimum_value": "0", "minimum_value_warning": "1", - "default_value": 2, + "default_value": 1, "value": "round(support_tree_wall_thickness / support_line_width)", "limit_to_extruder": "support_infill_extruder_nr", "enabled": "support_tree_enable", From c73247016912af860ce1a6a351ae33a64c09d06f Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Mon, 13 Nov 2017 13:01:58 +0100 Subject: [PATCH 016/124] CURA-4525 refined the condition when to reslice build plates; however from the layer view it (still) doesn't always show the layers --- cura/Scene/BuildPlateDecorator.py | 3 + .../CuraEngineBackend/CuraEngineBackend.py | 112 +++++++++++------- 2 files changed, 74 insertions(+), 41 deletions(-) diff --git a/cura/Scene/BuildPlateDecorator.py b/cura/Scene/BuildPlateDecorator.py index 2c886c7444..41921a120f 100644 --- a/cura/Scene/BuildPlateDecorator.py +++ b/cura/Scene/BuildPlateDecorator.py @@ -26,5 +26,8 @@ class BuildPlateDecorator(SceneNodeDecorator): def getPreviousBuildPlateNumber(self): return self._previous_build_plate_number + def removePreviousBuildPlateNumber(self): + self._previous_build_plate_number = None + def __deepcopy__(self, memo): return BuildPlateDecorator() diff --git a/plugins/CuraEngineBackend/CuraEngineBackend.py b/plugins/CuraEngineBackend/CuraEngineBackend.py index 67d3fe8c42..78e1f9f8d6 100755 --- a/plugins/CuraEngineBackend/CuraEngineBackend.py +++ b/plugins/CuraEngineBackend/CuraEngineBackend.py @@ -16,6 +16,7 @@ from UM.Scene.Iterator.DepthFirstIterator import DepthFirstIterator from UM.Qt.Duration import DurationFormat from PyQt5.QtCore import QObject, pyqtSlot +from collections import defaultdict from cura.Settings.ExtruderManager import ExtruderManager from . import ProcessSlicedLayersJob from . import StartSliceJob @@ -117,7 +118,7 @@ class CuraEngineBackend(QObject, Backend): self._backend_log_max_lines = 20000 # Maximum number of lines to buffer self._error_message = None # Pop-up message that shows errors. - self._last_num_objects = 0 # Count number of objects to see if there is something changed + self._last_num_objects = defaultdict(int) # Count number of objects to see if there is something changed self._postponed_scene_change_sources = [] # scene change is postponed (by a tool) self.backendQuit.connect(self._onBackendQuit) @@ -192,17 +193,26 @@ class CuraEngineBackend(QObject, Backend): ## Perform a slice of the scene. def slice(self): - Logger.log("d", "starting to slice again!") + Logger.log("d", "starting to slice!") self._slice_start_time = time() if not self._build_plates_to_be_sliced: self.processingProgress.emit(1.0) self.backendStateChange.emit(BackendState.Done) Logger.log("w", "Slice unnecessary, nothing has changed that needs reslicing.") return - if Application.getInstance().getPrintInformation(): - Application.getInstance().getPrintInformation().setToZeroPrintInformation() + + # see if we really have to slice + build_plate_to_be_sliced = self._build_plates_to_be_sliced.pop(0) + num_objects = self._numObjects() + if build_plate_to_be_sliced not in num_objects or num_objects[build_plate_to_be_sliced] == 0: + Logger.log("d", " ## Build plate %s has 0 objects to be sliced, skipping", build_plate_to_be_sliced) + self._invokeSlice() self._stored_layer_data = [] + self._stored_optimized_layer_data[build_plate_to_be_sliced] = [] + + if Application.getInstance().getPrintInformation(): + Application.getInstance().getPrintInformation().setToZeroPrintInformation() if self._process is None: self._createSocket() @@ -218,8 +228,7 @@ class CuraEngineBackend(QObject, Backend): slice_message = self._socket.createMessage("cura.proto.Slice") self._start_slice_job = StartSliceJob.StartSliceJob(slice_message) - self._start_slice_job_build_plate = self._build_plates_to_be_sliced.pop(0) - self._stored_optimized_layer_data[self._start_slice_job_build_plate] = [] + self._start_slice_job_build_plate = build_plate_to_be_sliced self._start_slice_job.setBuildPlate(self._start_slice_job_build_plate) self._start_slice_job.start() self._start_slice_job.finished.connect(self._onStartSliceCompleted) @@ -364,40 +373,62 @@ class CuraEngineBackend(QObject, Backend): self.disableTimer() return False + ## Return a dict with number of objects per build plate + def _numObjects(self): + num_objects = defaultdict(int) + for node in DepthFirstIterator(self._scene.getRoot()): + # Only count sliceable objects + if node.callDecoration("isSliceable"): + build_plate_number = node.callDecoration("getBuildPlateNumber") + num_objects[build_plate_number] += 1 + return num_objects + ## Listener for when the scene has changed. # # This should start a slice if the scene is now ready to slice. # # \param source The scene node that was changed. def _onSceneChanged(self, source): - Logger.log("d", " ##### scene changed: %s", source) if not issubclass(type(source), SceneNode): return - root_scene_nodes_changed = False - build_plates_changed = set() + build_plate_changed = set() + source_build_plate_number = source.callDecoration("getBuildPlateNumber") if source == self._scene.getRoot(): - num_objects = 0 + # we got the root node + num_objects = self._numObjects() + # num_objects = defaultdict(int) for node in DepthFirstIterator(self._scene.getRoot()): - # Only count sliceable objects - if node.callDecoration("isSliceable"): - num_objects += 1 - build_plates_changed.add(node.callDecoration("getBuildPlateNumber")) - build_plates_changed.add(node.callDecoration("getPreviousBuildPlateNumber")) - if num_objects != self._last_num_objects: - self._last_num_objects = num_objects - root_scene_nodes_changed = True - # else: - # return # ?? - build_plates_changed.discard(None) - build_plates_changed.discard(-1) # object not on build plate - Logger.log("d", " #### build plates changed: %s", build_plates_changed) + # # Only count sliceable objects + # if node.callDecoration("isSliceable"): + # build_plate_number = node.callDecoration("getBuildPlateNumber") + # num_objects[build_plate_number] += 1 + node.callDecoration("removePreviousBuildPlateNumber") # use the previous build plate number one time + for build_plate_number in list(self._last_num_objects.keys()) + list(num_objects.keys()): + if build_plate_number not in self._last_num_objects or num_objects[build_plate_number] != self._last_num_objects[build_plate_number]: + self._last_num_objects[build_plate_number] = num_objects[build_plate_number] + build_plate_changed.add(build_plate_number) + else: + # we got a single scenenode, how do we know if it's changed? + # build_plate_changed.add(source_build_plate_number) + # build_plate_changed.add(source.callDecoration("getPreviousBuildPlateNumber")) + # source.callDecoration("removePreviousBuildPlateNumber") # use the previous build plate number one time + if not source.callDecoration("isGroup"): + if source.getMeshData() is None: + return + if source.getMeshData().getVertices() is None: + return - # if not source.callDecoration("isGroup") and not root_scene_nodes_changed: - # if source.getMeshData() is None: - # return - # if source.getMeshData().getVertices() is None: - # return + # we got a single object and it passed all the tests of being changed + build_plate_changed.add(source_build_plate_number) + build_plate_changed.add(source.callDecoration("getPreviousBuildPlateNumber")) + source.callDecoration("removePreviousBuildPlateNumber") # use the previous build plate number one time + + build_plate_changed.discard(None) + build_plate_changed.discard(-1) # object not on build plate + if not build_plate_changed: + return + # Logger.log("d", " #### build plates changed: %s", build_plate_changed) if self._tool_active: # do it later, each source only has to be done once @@ -405,19 +436,18 @@ class CuraEngineBackend(QObject, Backend): self._postponed_scene_change_sources.append(source) return - if build_plates_changed: - Logger.log("d", " going to reslice") - self.stopSlicing() - for build_plate_number in build_plates_changed: - if build_plate_number not in self._build_plates_to_be_sliced: - self._build_plates_to_be_sliced.append(build_plate_number) - self.processingProgress.emit(0.0) - self.backendStateChange.emit(BackendState.NotStarted) - if not self._use_timer: - # With manually having to slice, we want to clear the old invalid layer data. - self._clearLayerData(build_plates_changed) + Logger.log("d", " going to reslice: %s", build_plate_changed) + self.stopSlicing() + for build_plate_number in build_plate_changed: + if build_plate_number not in self._build_plates_to_be_sliced: + self._build_plates_to_be_sliced.append(build_plate_number) + self.processingProgress.emit(0.0) + self.backendStateChange.emit(BackendState.NotStarted) + if not self._use_timer: + # With manually having to slice, we want to clear the old invalid layer data. + self._clearLayerData(build_plate_changed) - self._invokeSlice() + self._invokeSlice() # #self.needsSlicing() # self.stopSlicing() @@ -445,7 +475,7 @@ class CuraEngineBackend(QObject, Backend): def _clearLayerData(self, build_plate_numbers = set()): for node in DepthFirstIterator(self._scene.getRoot()): if node.callDecoration("getLayerData"): - if node.callDecoration("getBuildPlateNumber") in build_plate_numbers or not build_plate_numbers: + if not build_plate_numbers or node.callDecoration("getBuildPlateNumber") in build_plate_numbers: node.getParent().removeChild(node) def markSliceAll(self): From 040cc31079e904aa10a3519f44191d33a7ca5d5a Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Mon, 13 Nov 2017 14:25:22 +0100 Subject: [PATCH 017/124] CURA-4525 layer data viewing seems fixed, although after moving an object to a different build plate triggers the reslice only after deselecting --- cura/Scene/BuildPlateDecorator.py | 9 --- .../CuraEngineBackend/CuraEngineBackend.py | 58 +++++++++---------- .../ProcessSlicedLayersJob.py | 3 + plugins/CuraEngineBackend/StartSliceJob.py | 3 +- 4 files changed, 32 insertions(+), 41 deletions(-) diff --git a/cura/Scene/BuildPlateDecorator.py b/cura/Scene/BuildPlateDecorator.py index 41921a120f..6b4dcfc970 100644 --- a/cura/Scene/BuildPlateDecorator.py +++ b/cura/Scene/BuildPlateDecorator.py @@ -7,13 +7,11 @@ class BuildPlateDecorator(SceneNodeDecorator): def __init__(self, build_plate_number = -1): super().__init__() self._build_plate_number = None - self._previous_build_plate_number = None self.setBuildPlateNumber(build_plate_number) def setBuildPlateNumber(self, nr): # Make sure that groups are set correctly # setBuildPlateForSelection in CuraActions makes sure that no single childs are set. - self._previous_build_plate_number = self._build_plate_number self._build_plate_number = nr if self._node and self._node.callDecoration("isGroup"): for child in self._node.getChildren(): @@ -22,12 +20,5 @@ class BuildPlateDecorator(SceneNodeDecorator): def getBuildPlateNumber(self): return self._build_plate_number - # Used to determine from what build plate the node moved. - def getPreviousBuildPlateNumber(self): - return self._previous_build_plate_number - - def removePreviousBuildPlateNumber(self): - self._previous_build_plate_number = None - def __deepcopy__(self, memo): return BuildPlateDecorator() diff --git a/plugins/CuraEngineBackend/CuraEngineBackend.py b/plugins/CuraEngineBackend/CuraEngineBackend.py index 78e1f9f8d6..ebe4634786 100755 --- a/plugins/CuraEngineBackend/CuraEngineBackend.py +++ b/plugins/CuraEngineBackend/CuraEngineBackend.py @@ -177,6 +177,7 @@ class CuraEngineBackend(QObject, Backend): self._createSocket() if self._process_layers_job: # We were processing layers. Stop that, the layers are going to change soon. + Logger.log("d", "Aborting process layers job...") self._process_layers_job.abort() self._process_layers_job = None @@ -201,12 +202,19 @@ class CuraEngineBackend(QObject, Backend): Logger.log("w", "Slice unnecessary, nothing has changed that needs reslicing.") return + if self._process_layers_job: + Logger.log("d", " ## Process layers job still busy, trying later") + self._invokeSlice() + return + # see if we really have to slice build_plate_to_be_sliced = self._build_plates_to_be_sliced.pop(0) + Logger.log("d", "Going to slice build plate [%s]!" % build_plate_to_be_sliced) num_objects = self._numObjects() if build_plate_to_be_sliced not in num_objects or num_objects[build_plate_to_be_sliced] == 0: Logger.log("d", " ## Build plate %s has 0 objects to be sliced, skipping", build_plate_to_be_sliced) self._invokeSlice() + return self._stored_layer_data = [] self._stored_optimized_layer_data[build_plate_to_be_sliced] = [] @@ -326,17 +334,18 @@ class CuraEngineBackend(QObject, Backend): else: self.backendStateChange.emit(BackendState.NotStarted) - if job.getResult() == StartSliceJob.StartJobResult.NothingToSlice: - if Application.getInstance().platformActivity: - self._error_message = Message(catalog.i18nc("@info:status", "Nothing to slice because none of the models fit the build volume. Please scale or rotate models to fit."), - title = catalog.i18nc("@info:title", "Unable to slice")) - self._error_message.show() - #self.backendStateChange.emit(BackendState.Error) - else: - #self.backendStateChange.emit(BackendState.NotStarted) - pass - self._invokeSlice() - return + # Doesn't occur anymore, is handled in slice() + # if job.getResult() == StartSliceJob.StartJobResult.NothingToSlice: + # if Application.getInstance().platformActivity: + # self._error_message = Message(catalog.i18nc("@info:status", "Nothing to slice because none of the models fit the build volume. Please scale or rotate models to fit."), + # title = catalog.i18nc("@info:title", "Unable to slice")) + # self._error_message.show() + # #self.backendStateChange.emit(BackendState.Error) + # else: + # #self.backendStateChange.emit(BackendState.NotStarted) + # pass + # self._invokeSlice() + # return # Preparation completed, send it to the backend. self._socket.sendMessage(job.getSliceMessage()) @@ -397,38 +406,24 @@ class CuraEngineBackend(QObject, Backend): if source == self._scene.getRoot(): # we got the root node num_objects = self._numObjects() - # num_objects = defaultdict(int) - for node in DepthFirstIterator(self._scene.getRoot()): - # # Only count sliceable objects - # if node.callDecoration("isSliceable"): - # build_plate_number = node.callDecoration("getBuildPlateNumber") - # num_objects[build_plate_number] += 1 - node.callDecoration("removePreviousBuildPlateNumber") # use the previous build plate number one time for build_plate_number in list(self._last_num_objects.keys()) + list(num_objects.keys()): if build_plate_number not in self._last_num_objects or num_objects[build_plate_number] != self._last_num_objects[build_plate_number]: self._last_num_objects[build_plate_number] = num_objects[build_plate_number] build_plate_changed.add(build_plate_number) else: - # we got a single scenenode, how do we know if it's changed? - # build_plate_changed.add(source_build_plate_number) - # build_plate_changed.add(source.callDecoration("getPreviousBuildPlateNumber")) - # source.callDecoration("removePreviousBuildPlateNumber") # use the previous build plate number one time + # we got a single scenenode if not source.callDecoration("isGroup"): if source.getMeshData() is None: return if source.getMeshData().getVertices() is None: return - # we got a single object and it passed all the tests of being changed build_plate_changed.add(source_build_plate_number) - build_plate_changed.add(source.callDecoration("getPreviousBuildPlateNumber")) - source.callDecoration("removePreviousBuildPlateNumber") # use the previous build plate number one time build_plate_changed.discard(None) build_plate_changed.discard(-1) # object not on build plate if not build_plate_changed: return - # Logger.log("d", " #### build plates changed: %s", build_plate_changed) if self._tool_active: # do it later, each source only has to be done once @@ -443,9 +438,9 @@ class CuraEngineBackend(QObject, Backend): self._build_plates_to_be_sliced.append(build_plate_number) self.processingProgress.emit(0.0) self.backendStateChange.emit(BackendState.NotStarted) - if not self._use_timer: + # if not self._use_timer: # With manually having to slice, we want to clear the old invalid layer data. - self._clearLayerData(build_plate_changed) + self._clearLayerData(build_plate_changed) self._invokeSlice() @@ -568,6 +563,7 @@ class CuraEngineBackend(QObject, Backend): active_build_plate = Application.getInstance().activeBuildPlate if self._layer_view_active and (self._process_layers_job is None or not self._process_layers_job.isRunning()) and active_build_plate == self._start_slice_job_build_plate: self._startProcessSlicedLayersJob(active_build_plate) + # self._onActiveViewChanged() self._start_slice_job_build_plate = None Logger.log("d", "See if there is more to slice...") @@ -676,7 +672,6 @@ class CuraEngineBackend(QObject, Backend): self._process_layers_job.setBuildPlate(build_plate_number) self._process_layers_job.finished.connect(self._onProcessLayersFinished) self._process_layers_job.start() - del self._stored_optimized_layer_data[build_plate_number] ## Called when the user changes the active view mode. def _onActiveViewChanged(self): @@ -689,7 +684,7 @@ class CuraEngineBackend(QObject, Backend): # There is data and we're not slicing at the moment # if we are slicing, there is no need to re-calculate the data as it will be invalid in a moment. # TODO: what build plate I am slicing - if active_build_plate in self._stored_optimized_layer_data and not self._slicing: + if active_build_plate in self._stored_optimized_layer_data and not self._slicing and not self._process_layers_job: self._startProcessSlicedLayersJob(active_build_plate) else: self._layer_view_active = False @@ -726,7 +721,10 @@ class CuraEngineBackend(QObject, Backend): self._onChanged() def _onProcessLayersFinished(self, job): + del self._stored_optimized_layer_data[job.getBuildPlate()] self._process_layers_job = None + Logger.log("d", "See if there is more to slice(2)...") + self._invokeSlice() ## Connect slice function to timer. def enableTimer(self): diff --git a/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py b/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py index 1e56f2dd35..916cc4d914 100644 --- a/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py +++ b/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py @@ -65,6 +65,9 @@ class ProcessSlicedLayersJob(Job): def setBuildPlate(self, new_value): self._build_plate_number = new_value + def getBuildPlate(self): + return self._build_plate_number + def run(self): Logger.log("d", "########## Processing new layer for [%s]..." % self._build_plate_number) start_time = time() diff --git a/plugins/CuraEngineBackend/StartSliceJob.py b/plugins/CuraEngineBackend/StartSliceJob.py index f6abe94702..cf6043c6cb 100644 --- a/plugins/CuraEngineBackend/StartSliceJob.py +++ b/plugins/CuraEngineBackend/StartSliceJob.py @@ -120,7 +120,7 @@ class StartSliceJob(Job): with self._scene.getSceneLock(): # Remove old layer data. for node in DepthFirstIterator(self._scene.getRoot()): - if node.callDecoration("getLayerData"): + if node.callDecoration("getLayerData") and node.callDecoration("getBuildPlateNumber") == self._build_plate_number: node.getParent().removeChild(node) break @@ -155,7 +155,6 @@ class StartSliceJob(Job): temp_list.append(node) Job.yieldThread() - Logger.log("d", " objects to be sliced: %s", temp_list) if temp_list: object_groups.append(temp_list) From 8e5e555344bb1b7e59779390358ecbd3e4ae1501 Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Mon, 13 Nov 2017 16:27:15 +0100 Subject: [PATCH 018/124] CURA-4525 Send all build plate gcodes to printer at one press of the button :-) --- cura/CuraApplication.py | 19 +++++++++++- cura/GCodeListDecorator.py | 2 +- .../CuraEngineBackend/CuraEngineBackend.py | 16 ++++++---- .../NetworkClusterPrinterOutputDevice.py | 30 ++++++++++++++----- 4 files changed, 51 insertions(+), 16 deletions(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index c1c894c735..de78f808cd 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -258,6 +258,7 @@ class CuraApplication(QtApplication): self._i18n_catalog = i18nCatalog("cura") self.getController().getScene().sceneChanged.connect(self.updatePlatformActivity) + self.getController().getScene().sceneChanged.connect(self.updateMaxBuildPlate) # it may be a bit inefficient when changing a lot simultaneously self.getController().toolOperationStopped.connect(self._onToolOperationStopped) self.getController().contextMenuRequested.connect(self._onContextMenuRequested) @@ -1523,7 +1524,7 @@ class CuraApplication(QtApplication): @pyqtSlot() def newBuildPlate(self): Logger.log("d", "New build plate") - self._num_build_plates += 1 + #self._num_build_plates += 1 self.numBuildPlatesChanged.emit() @pyqtProperty(int, notify = numBuildPlatesChanged) @@ -1533,3 +1534,19 @@ class CuraApplication(QtApplication): @pyqtProperty(int, notify = activeBuildPlateChanged) def activeBuildPlate(self): return self._active_build_plate + + def updateMaxBuildPlate(self, source): + if not issubclass(type(source), SceneNode): + return + num_build_plates = self._calcMaxBuildPlate() + if num_build_plates != self._num_build_plates: + self._num_build_plates = num_build_plates + self.numBuildPlatesChanged.emit() + + def _calcMaxBuildPlate(self): + max_build_plate = 0 + for node in DepthFirstIterator(self.getController().getScene().getRoot()): + if node.callDecoration("isSliceable"): + build_plate_number = node.callDecoration("getBuildPlateNumber") + max_build_plate = max(build_plate_number, max_build_plate) + return max_build_plate diff --git a/cura/GCodeListDecorator.py b/cura/GCodeListDecorator.py index 5738d0a7f2..66ecf3beac 100644 --- a/cura/GCodeListDecorator.py +++ b/cura/GCodeListDecorator.py @@ -4,7 +4,7 @@ from UM.Scene.SceneNodeDecorator import SceneNodeDecorator class GCodeListDecorator(SceneNodeDecorator): def __init__(self): super().__init__() - self._gcode_list = [] + self._gcode_list = {} # [] def getGCodeList(self): return self._gcode_list diff --git a/plugins/CuraEngineBackend/CuraEngineBackend.py b/plugins/CuraEngineBackend/CuraEngineBackend.py index ebe4634786..f8b68e118a 100755 --- a/plugins/CuraEngineBackend/CuraEngineBackend.py +++ b/plugins/CuraEngineBackend/CuraEngineBackend.py @@ -230,7 +230,9 @@ class CuraEngineBackend(QObject, Backend): self.processingProgress.emit(0.0) self.backendStateChange.emit(BackendState.NotStarted) - self._scene.gcode_list = [] + if not hasattr(self._scene, "gcode_list"): + self._scene.gcode_list = {} + self._scene.gcode_list[build_plate_to_be_sliced] = [] #[] indexed by build plate number self._slicing = True self.slicingStarted.emit() @@ -370,7 +372,7 @@ class CuraEngineBackend(QObject, Backend): self.backendStateChange.emit(BackendState.Disabled) gcode_list = node.callDecoration("getGCodeList") if gcode_list is not None: - self._scene.gcode_list = gcode_list + self._scene.gcode_list[node.callDecoration("getBuildPlateNumber")] = gcode_list if self._use_timer == enable_timer: return self._use_timer @@ -546,14 +548,16 @@ class CuraEngineBackend(QObject, Backend): self.backendStateChange.emit(BackendState.Done) self.processingProgress.emit(1.0) - for line in self._scene.gcode_list: + gcode_list = self._scene.gcode_list[self._start_slice_job_build_plate] + for index, line in enumerate(gcode_list): replaced = line.replace("{print_time}", str(Application.getInstance().getPrintInformation().currentPrintTime.getDisplayString(DurationFormat.Format.ISO8601))) replaced = replaced.replace("{filament_amount}", str(Application.getInstance().getPrintInformation().materialLengths)) replaced = replaced.replace("{filament_weight}", str(Application.getInstance().getPrintInformation().materialWeights)) replaced = replaced.replace("{filament_cost}", str(Application.getInstance().getPrintInformation().materialCosts)) replaced = replaced.replace("{jobname}", str(Application.getInstance().getPrintInformation().jobName)) - self._scene.gcode_list[self._scene.gcode_list.index(line)] = replaced + #gcode_list[gcode_list.index(line)] = replaced + gcode_list[index] = replaced self._slicing = False #self._need_slicing = False @@ -576,14 +580,14 @@ class CuraEngineBackend(QObject, Backend): # # \param message The protobuf message containing g-code, encoded as UTF-8. def _onGCodeLayerMessage(self, message): - self._scene.gcode_list.append(message.data.decode("utf-8", "replace")) + self._scene.gcode_list[self._start_slice_job_build_plate].append(message.data.decode("utf-8", "replace")) ## Called when a g-code prefix message is received from the engine. # # \param message The protobuf message containing the g-code prefix, # encoded as UTF-8. def _onGCodePrefixMessage(self, message): - self._scene.gcode_list.insert(0, message.data.decode("utf-8", "replace")) + self._scene.gcode_list[self._start_slice_job_build_plate].insert(0, message.data.decode("utf-8", "replace")) ## Creates a new socket connection. def _createSocket(self): diff --git a/plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py b/plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py index b6e94121f8..14a60a6b22 100644 --- a/plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py +++ b/plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py @@ -254,6 +254,10 @@ class NetworkClusterPrinterOutputDevice(NetworkPrinterOutputDevice.NetworkPrinte self._selected_printer = self._automatic_printer # reset to default option self._request_job = [nodes, file_name, filter_by_machine, file_handler, kwargs] + # the build plates to be sent + self._job_list = list(getattr(Application.getInstance().getController().getScene(), "gcode_list").keys()) + Logger.log("d", "build plates to be sent to printer: %s", (self._job_list)) + if self._stage != OutputStage.ready: if self._error_message: self._error_message.hide() @@ -263,12 +267,14 @@ class NetworkClusterPrinterOutputDevice(NetworkPrinterOutputDevice.NetworkPrinte self._error_message.show() return + self._add_build_plate_number = len(self._job_list) > 1 if len(self._printers) > 1: self.spawnPrintView() # Ask user how to print it. elif len(self._printers) == 1: # If there is only one printer, don't bother asking. self.selectAutomaticPrinter() self.sendPrintJob() + else: # Cluster has no printers, warn the user of this. if self._error_message: @@ -283,28 +289,34 @@ class NetworkClusterPrinterOutputDevice(NetworkPrinterOutputDevice.NetworkPrinte @pyqtSlot() def sendPrintJob(self): nodes, file_name, filter_by_machine, file_handler, kwargs = self._request_job - require_printer_name = self._selected_printer["unique_name"] + output_build_plate_number = self._job_list.pop(0) + gcode = getattr(Application.getInstance().getController().getScene(), "gcode_list")[output_build_plate_number] self._send_gcode_start = time.time() - Logger.log("d", "Sending print job [%s] to host..." % file_name) + Logger.log("d", "Sending print job [%s] to host, build plate [%s]..." % (file_name, output_build_plate_number)) if self._stage != OutputStage.ready: Logger.log("d", "Unable to send print job as the state is %s", self._stage) raise OutputDeviceError.DeviceBusyError() self._stage = OutputStage.uploading - self._file_name = "%s.gcode.gz" % file_name + if self._add_build_plate_number: + self._file_name = "%s_%d.gcode.gz" % (file_name, output_build_plate_number) + else: + self._file_name = "%s.gcode.gz" % (file_name) self._showProgressMessage() - new_request = self._buildSendPrintJobHttpRequest(require_printer_name) + require_printer_name = self._selected_printer["unique_name"] + + new_request = self._buildSendPrintJobHttpRequest(require_printer_name, gcode) if new_request is None or self._stage != OutputStage.uploading: return self._request = new_request self._reply = self._manager.post(self._request, self._multipart) self._reply.uploadProgress.connect(self._onUploadProgress) - # See _finishedPostPrintJobRequest() + # See _finishedPrintJobPostRequest() - def _buildSendPrintJobHttpRequest(self, require_printer_name): + def _buildSendPrintJobHttpRequest(self, require_printer_name, gcode): api_url = QUrl(self._api_base_uri + "print_jobs/") request = QNetworkRequest(api_url) # Create multipart request and add the g-code. @@ -313,9 +325,8 @@ class NetworkClusterPrinterOutputDevice(NetworkPrinterOutputDevice.NetworkPrinte # Add gcode part = QHttpPart() part.setHeader(QNetworkRequest.ContentDispositionHeader, - 'form-data; name="file"; filename="%s"' % self._file_name) + 'form-data; name="file"; filename="%s"' % (self._file_name)) - gcode = getattr(Application.getInstance().getController().getScene(), "gcode_list") compressed_gcode = self._compressGcode(gcode) if compressed_gcode is None: return None # User aborted print, so stop trying. @@ -401,6 +412,9 @@ class NetworkClusterPrinterOutputDevice(NetworkPrinterOutputDevice.NetworkPrinte self._cleanupRequest() + if self._job_list: # start sending next job + self.sendPrintJob() + def _showRequestFailedMessage(self, reply): if reply is not None: Logger.log("w", "Unable to send print job to group {cluster_name}: {error_string} ({error})".format( From 57a2bf7c5f739c4e80bfe05487546ee3aeb940d3 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 13 Nov 2017 16:33:46 +0100 Subject: [PATCH 019/124] Move tree support to the top of the support category Because it's logical to have it before all of the settings that are enabled/disabled by it. Contributes to issue CURA-4523. --- resources/definitions/fdmprinter.def.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index b127b614af..81166a711e 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -3338,6 +3338,14 @@ "settable_per_mesh": true, "settable_per_extruder": false }, + "support_tree_enable": + { + "label": "Tree Support", + "description": "Generate a tree-like support with branches that support your print. This may reduce material usage and print time.", + "type": "bool", + "default_value": false, + "settable_per_mesh": true + }, "support_extruder_nr": { "label": "Support Extruder", @@ -3655,14 +3663,6 @@ "limit_to_extruder": "support_infill_extruder_nr", "settable_per_mesh": false }, - "support_tree_enable": - { - "label": "Tree Support", - "description": "Generate a tree-like support with branches that support your print. This may reduce material usage and print time.", - "type": "bool", - "default_value": false, - "settable_per_mesh": true - }, "support_tree_angle": { "label": "Tree Support Branch Angle", From 97f61366a83a24e0fa5c5664dc513e29b70bd5de Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Mon, 13 Nov 2017 16:51:07 +0100 Subject: [PATCH 020/124] CURA-4525 fix accidently remove all scenenodes when deleteAll --- cura/CuraApplication.py | 2 +- resources/qml/ObjectsList.qml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index de78f808cd..7667d6dad8 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -1040,7 +1040,7 @@ class CuraApplication(QtApplication): nodes = [] for node in DepthFirstIterator(self.getController().getScene().getRoot()): - if not issubclass(type(node), SceneNode): + if type(node) not in {SceneNode, CuraSceneNode}: continue if (not node.getMeshData() and not node.callDecoration("getLayerData")) and not node.callDecoration("isGroup"): continue # Node that doesnt have a mesh and is not a group. diff --git a/resources/qml/ObjectsList.qml b/resources/qml/ObjectsList.qml index cde7f065fa..4eeb0cd568 100644 --- a/resources/qml/ObjectsList.qml +++ b/resources/qml/ObjectsList.qml @@ -54,7 +54,7 @@ Rectangle anchors.leftMargin: UM.Theme.getSize("default_margin").width //anchors.right: parent.right width: parent.width - 2 * UM.Theme.getSize("default_margin").width - 30 - text: Cura.ObjectManager.getItem(index).name; + text: Cura.ObjectManager.getItem(index) ? Cura.ObjectManager.getItem(index).name : ""; color: Cura.ObjectManager.getItem(index).isSelected ? palette.highlightedText : (Cura.ObjectManager.getItem(index).isOutsideBuildArea ? palette.mid : palette.text) elide: Text.ElideRight } @@ -66,7 +66,7 @@ Rectangle anchors.left: nodeNameLabel.right anchors.leftMargin: UM.Theme.getSize("default_margin").width anchors.right: parent.right - text: Cura.ObjectManager.getItem(index).buildPlateNumber; + text: Cura.ObjectManager.getItem(index) ? Cura.ObjectManager.getItem(index).buildPlateNumber : 0; color: Cura.ObjectManager.getItem(index).isSelected ? palette.highlightedText : palette.text elide: Text.ElideRight } From bb4cb1eb7d11bc7368e3a8cf7b14379f70c644c2 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 13 Nov 2017 17:58:50 +0100 Subject: [PATCH 021/124] Make support infill related settings visible if support tree enabled Because the areas generated by support trees are also filled in as normal. Contributes to issue CURA-4523. --- resources/definitions/fdmprinter.def.json | 45 ++++++++++++----------- 1 file changed, 23 insertions(+), 22 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 81166a711e..ef107be412 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -3344,7 +3344,8 @@ "description": "Generate a tree-like support with branches that support your print. This may reduce material usage and print time.", "type": "bool", "default_value": false, - "settable_per_mesh": true + "settable_per_mesh": true, + "settable_per_extruder": false }, "support_extruder_nr": { @@ -3385,7 +3386,7 @@ "type": "extruder", "default_value": "0", "value": "support_extruder_nr", - "enabled": "support_enable and machine_extruder_count > 1", + "enabled": "(support_enable or support_tree_enable) and machine_extruder_count > 1", "settable_per_mesh": false, "settable_per_extruder": false, "children": @@ -3397,7 +3398,7 @@ "type": "extruder", "default_value": "0", "value": "support_interface_extruder_nr", - "enabled": "support_enable and machine_extruder_count > 1", + "enabled": "(support_enable or support_tree_enable) and machine_extruder_count > 1", "settable_per_mesh": false, "settable_per_extruder": false }, @@ -3462,7 +3463,7 @@ "cross": "Cross" }, "default_value": "zigzag", - "enabled": "support_enable", + "enabled": "support_enable or support_tree_enable", "limit_to_extruder": "support_infill_extruder_nr", "settable_per_mesh": false, "settable_per_extruder": true @@ -3473,7 +3474,7 @@ "description": "Connect the ZigZags. This will increase the strength of the zig zag support structure.", "type": "bool", "default_value": true, - "enabled": "support_enable and (support_pattern == 'zigzag')", + "enabled": "(support_enable or support_tree_enable) and support_pattern == 'zigzag'", "limit_to_extruder": "support_infill_extruder_nr", "settable_per_mesh": false, "settable_per_extruder": true @@ -3487,7 +3488,7 @@ "minimum_value": "0", "maximum_value_warning": "100", "default_value": 15, - "enabled": "support_enable", + "enabled": "support_enable or support_tree_enable", "limit_to_extruder": "support_infill_extruder_nr", "settable_per_mesh": false, "settable_per_extruder": true, @@ -3502,7 +3503,7 @@ "minimum_value": "0", "minimum_value_warning": "support_line_width", "default_value": 2.66, - "enabled": "support_enable", + "enabled": "support_enable or support_tree_enable", "value": "0 if support_infill_rate == 0 else (support_line_width * 100) / support_infill_rate * (2 if support_pattern == 'grid' else (3 if support_pattern == 'triangles' else 1))", "limit_to_extruder": "support_infill_extruder_nr", "settable_per_mesh": false, @@ -3579,7 +3580,7 @@ }, "default_value": "z_overrides_xy", "limit_to_extruder": "support_infill_extruder_nr", - "enabled": "support_enable or support_tree_enable", + "enabled": "support_enable", "settable_per_mesh": true }, "support_xy_distance_overhang": @@ -3593,7 +3594,7 @@ "default_value": 0.2, "value": "machine_nozzle_size / 2", "limit_to_extruder": "support_infill_extruder_nr", - "enabled": "(support_enable or support_tree_enable) and support_xy_overrides_z == 'z_overrides_xy'", + "enabled": "support_enable and support_xy_overrides_z == 'z_overrides_xy'", "settable_per_mesh": true }, "support_bottom_stair_step_height": @@ -3761,7 +3762,7 @@ "minimum_value": "0", "maximum_value_warning": "1 if (support_pattern == 'cross' or support_pattern == 'lines' or support_pattern == 'zigzag' or support_pattern == 'concentric' or support_pattern == 'concentric_3d') else 5", "maximum_value": "999999 if support_line_distance == 0 else (20 - math.log(support_line_distance) / math.log(2))", - "enabled": "support_enable and support_infill_rate > 0", + "enabled": "(support_enable or support_tree_enable) and support_infill_rate > 0", "limit_to_extruder": "support_infill_extruder_nr", "settable_per_mesh": false }, @@ -3774,7 +3775,7 @@ "default_value": 1, "minimum_value": "0.0001", "minimum_value_warning": "3 * resolveOrValue('layer_height')", - "enabled": "support_enable and support_infill_rate > 0 and gradual_support_infill_steps > 0", + "enabled": "(support_enable or support_tree_enable) and support_infill_rate > 0 and gradual_support_infill_steps > 0", "limit_to_extruder": "support_infill_extruder_nr", "settable_per_mesh": false }, @@ -3785,7 +3786,7 @@ "type": "bool", "default_value": false, "limit_to_extruder": "support_interface_extruder_nr", - "enabled": "support_enable", + "enabled": "support_enable or support_tree_enable", "settable_per_mesh": true, "children": { @@ -3797,7 +3798,7 @@ "default_value": false, "value": "extruderValue(support_roof_extruder_nr, 'support_interface_enable')", "limit_to_extruder": "support_roof_extruder_nr", - "enabled": "support_enable", + "enabled": "support_enable or support_tree_enable", "settable_per_mesh": true }, "support_bottom_enable": @@ -3824,7 +3825,7 @@ "minimum_value_warning": "0.2 + layer_height", "maximum_value_warning": "10", "limit_to_extruder": "support_interface_extruder_nr", - "enabled": "support_interface_enable and support_enable", + "enabled": "support_interface_enable and (support_enable or support_tree_enable)", "settable_per_mesh": true, "children": { @@ -3840,7 +3841,7 @@ "maximum_value_warning": "10", "value": "extruderValue(support_roof_extruder_nr, 'support_interface_height')", "limit_to_extruder": "support_roof_extruder_nr", - "enabled": "support_roof_enable and support_enable", + "enabled": "support_roof_enable and (support_enable or support_tree_enable)", "settable_per_mesh": true }, "support_bottom_height": @@ -3855,7 +3856,7 @@ "minimum_value_warning": "min(0.2 + layer_height, support_bottom_stair_step_height)", "maximum_value_warning": "10", "limit_to_extruder": "support_bottom_extruder_nr", - "enabled": "support_bottom_enable and support_enable", + "enabled": "support_bottom_enable and (support_enable or support_tree_enable)", "settable_per_mesh": true } } @@ -3882,7 +3883,7 @@ "minimum_value": "0", "maximum_value_warning": "100", "limit_to_extruder": "support_interface_extruder_nr", - "enabled": "support_interface_enable and support_enable", + "enabled": "support_interface_enable and (support_enable or support_tree_enable)", "settable_per_mesh": false, "settable_per_extruder": true, "children": @@ -3897,7 +3898,7 @@ "minimum_value": "0", "maximum_value": "100", "limit_to_extruder": "support_roof_extruder_nr", - "enabled": "support_roof_enable and support_enable", + "enabled": "support_roof_enable and (support_enable or support_tree_enable)", "value": "extruderValue(support_roof_extruder_nr, 'support_interface_density')", "settable_per_mesh": false, "settable_per_extruder": true, @@ -3914,7 +3915,7 @@ "minimum_value_warning": "support_roof_line_width - 0.0001", "value": "0 if support_roof_density == 0 else (support_roof_line_width * 100) / support_roof_density * (2 if support_roof_pattern == 'grid' else (3 if support_roof_pattern == 'triangles' else 1))", "limit_to_extruder": "support_roof_extruder_nr", - "enabled": "support_roof_enable and support_enable", + "enabled": "support_roof_enable and (support_enable or support_tree_enable)", "settable_per_mesh": false, "settable_per_extruder": true } @@ -3971,7 +3972,7 @@ }, "default_value": "concentric", "limit_to_extruder": "support_interface_extruder_nr", - "enabled": "support_interface_enable and support_enable", + "enabled": "support_interface_enable and (support_enable or support_tree_enable)", "settable_per_mesh": false, "settable_per_extruder": true, "children": @@ -3993,7 +3994,7 @@ "default_value": "concentric", "value": "extruderValue(support_roof_extruder_nr, 'support_interface_pattern')", "limit_to_extruder": "support_roof_extruder_nr", - "enabled": "support_roof_enable and support_enable", + "enabled": "support_roof_enable and (support_enable or support_tree_enable)", "settable_per_mesh": false, "settable_per_extruder": true }, @@ -4014,7 +4015,7 @@ "default_value": "concentric", "value": "extruderValue(support_bottom_extruder_nr, 'support_interface_pattern')", "limit_to_extruder": "support_bottom_extruder_nr", - "enabled": "support_bottom_enable and support_enable", + "enabled": "support_bottom_enable and (support_enable or support_tree_enable)", "settable_per_mesh": false, "settable_per_extruder": true } From bd8aa8d989bb53b968ef1d114776aece8ca4bf9f Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Tue, 14 Nov 2017 14:27:46 +0100 Subject: [PATCH 022/124] CURA-4525 automatic build plate menu items using BuildPlateModel --- cura/BuildPlateModel.py | 60 +++++++++++++++++ cura/ConvexHullNode.py | 2 +- cura/CuraApplication.py | 64 ++++--------------- cura/ObjectManager.py | 15 ++--- cura/Scene/CuraSceneNode.py | 4 +- .../CuraEngineBackend/CuraEngineBackend.py | 6 +- plugins/LayerView/LayerPass.py | 2 +- plugins/SolidView/SolidView.py | 4 +- resources/qml/Cura.qml | 7 +- resources/qml/Menus/ContextMenu.qml | 28 ++++---- resources/qml/Menus/ViewMenu.qml | 41 ++++++------ resources/qml/ObjectsList.qml | 50 +++------------ 12 files changed, 131 insertions(+), 152 deletions(-) diff --git a/cura/BuildPlateModel.py b/cura/BuildPlateModel.py index 139597f9cb..35a311dc5f 100644 --- a/cura/BuildPlateModel.py +++ b/cura/BuildPlateModel.py @@ -1,2 +1,62 @@ +from UM.Qt.ListModel import ListModel +from PyQt5.QtCore import pyqtSignal, pyqtProperty, pyqtSlot +from UM.Scene.Iterator.DepthFirstIterator import DepthFirstIterator +from UM.Scene.SceneNode import SceneNode +from UM.Logger import Logger +from UM.Application import Application +class BuildPlateModel(ListModel): + maxBuildPlateChanged = pyqtSignal() + activeBuildPlateChanged = pyqtSignal() + + def __init__(self): + super().__init__() + Application.getInstance().getController().getScene().sceneChanged.connect(self.updateMaxBuildPlate) # it may be a bit inefficient when changing a lot simultaneously + + self._max_build_plate = 1 # default + self._active_build_plate = 0 + + @pyqtSlot(int) + def setActiveBuildPlate(self, nr): + if nr == self._active_build_plate: + return + Logger.log("d", "Select build plate: %s" % nr) + self._active_build_plate = nr + + self.activeBuildPlateChanged.emit() + + @pyqtProperty(int, notify = activeBuildPlateChanged) + def activeBuildPlate(self): + return self._active_build_plate + + ## Return the highest build plate number + @pyqtProperty(int, notify = maxBuildPlateChanged) + def maxBuildPlate(self): + return self._max_build_plate + + def updateMaxBuildPlate(self, source): + if not issubclass(type(source), SceneNode): + return + max_build_plate = self._calcMaxBuildPlate() + changed = False + if max_build_plate != self._max_build_plate: + self._max_build_plate = max_build_plate + changed = True + if changed: + self.maxBuildPlateChanged.emit() + build_plates = [{"name": "Build Plate %d" % (i + 1), "buildPlateNumber": i} for i in range(self._max_build_plate + 1)] + self.setItems(build_plates) + self.itemsChanged.emit() + + def _calcMaxBuildPlate(self): + max_build_plate = 0 + for node in DepthFirstIterator(Application.getInstance().getController().getScene().getRoot()): + if node.callDecoration("isSliceable"): + build_plate_number = node.callDecoration("getBuildPlateNumber") + max_build_plate = max(build_plate_number, max_build_plate) + return max_build_plate + + @staticmethod + def createBuildPlateModel(): + return BuildPlateModel() diff --git a/cura/ConvexHullNode.py b/cura/ConvexHullNode.py index c6ff80670d..cec9d3d698 100644 --- a/cura/ConvexHullNode.py +++ b/cura/ConvexHullNode.py @@ -64,7 +64,7 @@ class ConvexHullNode(SceneNode): ConvexHullNode.shader.setUniformValue("u_diffuseColor", self._color) ConvexHullNode.shader.setUniformValue("u_opacity", 0.6) - if self.getParent() and self.getParent().callDecoration("getBuildPlateNumber") == Application.getInstance().activeBuildPlate: + if self.getParent() and self.getParent().callDecoration("getBuildPlateNumber") == Application.getInstance().getBuildPlateModel().activeBuildPlate: if self.getMeshData(): renderer.queueNode(self, transparent = True, shader = ConvexHullNode.shader, backface_cull = True, sort = -8) if self._convex_hull_head_mesh: diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 7667d6dad8..08b81d568c 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -40,7 +40,6 @@ from cura.ConvexHullDecorator import ConvexHullDecorator from cura.SetParentOperation import SetParentOperation from cura.SliceableObjectDecorator import SliceableObjectDecorator from cura.BlockSlicingDecorator import BlockSlicingDecorator -# research from cura.Scene.BuildPlateDecorator import BuildPlateDecorator from cura.Scene.CuraSceneNode import CuraSceneNode @@ -83,6 +82,7 @@ from cura.Settings.GlobalStack import GlobalStack from cura.Settings.ExtruderStack import ExtruderStack from cura.ObjectManager import ObjectManager +from cura.BuildPlateModel import BuildPlateModel from PyQt5.QtCore import QUrl, pyqtSignal, pyqtProperty, QEvent, Q_ENUMS from UM.FlameProfiler import pyqtSlot @@ -211,6 +211,7 @@ class CuraApplication(QtApplication): self._machine_manager = None # This is initialized on demand. self._material_manager = None self._object_manager = None + self._build_plate_model = None self._setting_inheritance_manager = None self._simple_mode_settings_manager = None @@ -258,7 +259,6 @@ class CuraApplication(QtApplication): self._i18n_catalog = i18nCatalog("cura") self.getController().getScene().sceneChanged.connect(self.updatePlatformActivity) - self.getController().getScene().sceneChanged.connect(self.updateMaxBuildPlate) # it may be a bit inefficient when changing a lot simultaneously self.getController().toolOperationStopped.connect(self._onToolOperationStopped) self.getController().contextMenuRequested.connect(self._onContextMenuRequested) @@ -389,10 +389,6 @@ class CuraApplication(QtApplication): self._plugin_registry.addSupportedPluginExtension("curaplugin", "Cura Plugin") - # research - self._num_build_plates = 1 # default - self._active_build_plate = 0 - def _onEngineCreated(self): self._engine.addImageProvider("camera", CameraImageProvider.CameraImageProvider()) @@ -724,8 +720,8 @@ class CuraApplication(QtApplication): qmlRegisterSingletonType(SimpleModeSettingsManager, "Cura", 1, 2, "SimpleModeSettingsManager", self.getSimpleModeSettingsManager) - Logger.log("d", " #### going to register object manager") qmlRegisterSingletonType(ObjectManager, "Cura", 1, 2, "ObjectManager", self.getObjectManager) + qmlRegisterSingletonType(BuildPlateModel, "Cura", 1, 2, "BuildPlateModel", self.getBuildPlateModel) qmlRegisterSingletonType(MachineActionManager.MachineActionManager, "Cura", 1, 0, "MachineActionManager", self.getMachineActionManager) self.setMainQml(Resources.getPath(self.ResourceTypes.QmlFiles, "Cura.qml")) @@ -759,6 +755,11 @@ class CuraApplication(QtApplication): self._object_manager = ObjectManager.createObjectManager() return self._object_manager + def getBuildPlateModel(self, *args): + if self._build_plate_model is None: + self._build_plate_model = BuildPlateModel.createBuildPlateModel() + return self._build_plate_model + def getSettingInheritanceManager(self, *args): if self._setting_inheritance_manager is None: self._setting_inheritance_manager = SettingInheritanceManager.createSettingInheritanceManager() @@ -881,8 +882,6 @@ class CuraApplication(QtApplication): activityChanged = pyqtSignal() sceneBoundingBoxChanged = pyqtSignal() preferredOutputMimetypeChanged = pyqtSignal() - numBuildPlatesChanged = pyqtSignal() - activeBuildPlateChanged = pyqtSignal() @pyqtProperty(bool, notify = activityChanged) def platformActivity(self): @@ -1130,12 +1129,13 @@ class CuraApplication(QtApplication): nodes.append(node) job = ArrangeObjectsAllBuildPlatesJob(nodes) job.start() - self.setActiveBuildPlate(0) + self.getBuildPlateModel().setActiveBuildPlate(0) # Single build plate @pyqtSlot() def arrangeAll(self): nodes = [] + active_build_plate = self.getBuildPlateModel().activeBuildPlate for node in DepthFirstIterator(self.getController().getScene().getRoot()): if not issubclass(type(node), SceneNode): continue @@ -1147,7 +1147,7 @@ class CuraApplication(QtApplication): continue # i.e. node with layer data if not node.callDecoration("isSliceable"): continue # i.e. node with layer data - if node.callDecoration("getBuildPlateNumber") == self._active_build_plate: + if node.callDecoration("getBuildPlateNumber") == active_build_plate: # Skip nodes that are too big if node.getBoundingBox().width < self._volume.getBoundingBox().width or node.getBoundingBox().depth < self._volume.getBoundingBox().depth: nodes.append(node) @@ -1284,7 +1284,7 @@ class CuraApplication(QtApplication): group_decorator = GroupDecorator() group_node.addDecorator(group_decorator) group_node.addDecorator(ConvexHullDecorator()) - group_node.addDecorator(BuildPlateDecorator(self.activeBuildPlate)) + group_node.addDecorator(BuildPlateDecorator(self.getBuildPlateModel().activeBuildPlate)) group_node.setParent(self.getController().getScene().getRoot()) group_node.setSelectable(True) center = Selection.getSelectionCenter() @@ -1510,43 +1510,3 @@ class CuraApplication(QtApplication): node = node.getParent() Selection.add(node) - - #### research - hacky place for these kind of thing - @pyqtSlot(int) - def setActiveBuildPlate(self, nr): - if nr == self._active_build_plate: - return - Logger.log("d", "Select build plate: %s" % nr) - self._active_build_plate = nr - - self.activeBuildPlateChanged.emit() - - @pyqtSlot() - def newBuildPlate(self): - Logger.log("d", "New build plate") - #self._num_build_plates += 1 - self.numBuildPlatesChanged.emit() - - @pyqtProperty(int, notify = numBuildPlatesChanged) - def numBuildPlates(self): - return self._num_build_plates - - @pyqtProperty(int, notify = activeBuildPlateChanged) - def activeBuildPlate(self): - return self._active_build_plate - - def updateMaxBuildPlate(self, source): - if not issubclass(type(source), SceneNode): - return - num_build_plates = self._calcMaxBuildPlate() - if num_build_plates != self._num_build_plates: - self._num_build_plates = num_build_plates - self.numBuildPlatesChanged.emit() - - def _calcMaxBuildPlate(self): - max_build_plate = 0 - for node in DepthFirstIterator(self.getController().getScene().getRoot()): - if node.callDecoration("isSliceable"): - build_plate_number = node.callDecoration("getBuildPlateNumber") - max_build_plate = max(build_plate_number, max_build_plate) - return max_build_plate diff --git a/cura/ObjectManager.py b/cura/ObjectManager.py index a148c05f28..8361e43d71 100644 --- a/cura/ObjectManager.py +++ b/cura/ObjectManager.py @@ -15,14 +15,15 @@ class ObjectManager(ListModel): def __init__(self): super().__init__() self._last_selected_index = 0 - Application.getInstance().getController().getScene().sceneChanged.connect(self._update_scene_changed) + self._build_plate_model = Application.getInstance().getBuildPlateModel() + Application.getInstance().getController().getScene().sceneChanged.connect(self._update) Preferences.getInstance().preferenceChanged.connect(self._update) - Application.getInstance().activeBuildPlateChanged.connect(self._update) + self._build_plate_model.activeBuildPlateChanged.connect(self._update) def _update(self, *args): nodes = [] filter_current_build_plate = Preferences.getInstance().getValue("view/filter_current_build_plate") - active_build_plate_number = Application.getInstance().activeBuildPlate + active_build_plate_number = self._build_plate_model.activeBuildPlate for node in DepthFirstIterator(Application.getInstance().getController().getScene().getRoot()): if not issubclass(type(node), SceneNode) or (not node.getMeshData() and not node.callDecoration("getLayerData")): continue @@ -43,12 +44,6 @@ class ObjectManager(ListModel): self.itemsChanged.emit() - def _update_scene_changed(self, *args): - # if args and type(args[0]) is not CuraSceneNode: - # Logger.log("d", " ascdf %s", args) - # return - self._update(*args) - ## Either select or deselect an item @pyqtSlot(int) def changeSelection(self, index): @@ -77,7 +72,7 @@ class ObjectManager(ListModel): Selection.add(node) build_plate_number = node.callDecoration("getBuildPlateNumber") if build_plate_number is not None and build_plate_number != -1: - Application.getInstance().setActiveBuildPlate(build_plate_number) + self._build_plate_model.setActiveBuildPlate(build_plate_number) self._last_selected_index = index diff --git a/cura/Scene/CuraSceneNode.py b/cura/Scene/CuraSceneNode.py index ccec76b53d..e68405daf6 100644 --- a/cura/Scene/CuraSceneNode.py +++ b/cura/Scene/CuraSceneNode.py @@ -18,10 +18,10 @@ class CuraSceneNode(SceneNode): return self._outside_buildarea or self.callDecoration("getBuildPlateNumber") < 0 def isVisible(self): - return super().isVisible() and self.callDecoration("getBuildPlateNumber") == Application.getInstance().activeBuildPlate + return super().isVisible() and self.callDecoration("getBuildPlateNumber") == Application.getInstance().getBuildPlateModel().activeBuildPlate def isSelectable(self) -> bool: - return super().isSelectable() and self.callDecoration("getBuildPlateNumber") == Application.getInstance().activeBuildPlate + return super().isSelectable() and self.callDecoration("getBuildPlateNumber") == Application.getInstance().getBuildPlateModel().activeBuildPlate ## Taken from SceneNode, but replaced SceneNode with CuraSceneNode def __deepcopy__(self, memo): diff --git a/plugins/CuraEngineBackend/CuraEngineBackend.py b/plugins/CuraEngineBackend/CuraEngineBackend.py index f8b68e118a..c250b9019c 100755 --- a/plugins/CuraEngineBackend/CuraEngineBackend.py +++ b/plugins/CuraEngineBackend/CuraEngineBackend.py @@ -70,7 +70,7 @@ class CuraEngineBackend(QObject, Backend): # Workaround to disable layer view processing if layer view is not active. self._layer_view_active = False Application.getInstance().getController().activeViewChanged.connect(self._onActiveViewChanged) - Application.getInstance().activeBuildPlateChanged.connect(self._onActiveViewChanged) + Application.getInstance().getBuildPlateModel().activeBuildPlateChanged.connect(self._onActiveViewChanged) self._onActiveViewChanged() self._stored_layer_data = [] self._stored_optimized_layer_data = {} # key is build plate number, then arrays are stored until they go to the ProcessSlicesLayersJob @@ -564,7 +564,7 @@ class CuraEngineBackend(QObject, Backend): Logger.log("d", "Slicing took %s seconds", time() - self._slice_start_time ) # See if we need to process the sliced layers job. - active_build_plate = Application.getInstance().activeBuildPlate + active_build_plate = Application.getInstance().getBuildPlateModel().activeBuildPlate if self._layer_view_active and (self._process_layers_job is None or not self._process_layers_job.isRunning()) and active_build_plate == self._start_slice_job_build_plate: self._startProcessSlicedLayersJob(active_build_plate) # self._onActiveViewChanged() @@ -682,7 +682,7 @@ class CuraEngineBackend(QObject, Backend): application = Application.getInstance() view = application.getController().getActiveView() if view: - active_build_plate = application.activeBuildPlate + active_build_plate = application.getBuildPlateModel().activeBuildPlate if view.getPluginId() == "LayerView": # If switching to layer view, we should process the layers if that hasn't been done yet. self._layer_view_active = True # There is data and we're not slicing at the moment diff --git a/plugins/LayerView/LayerPass.py b/plugins/LayerView/LayerPass.py index 2b0e82d4b3..e6f60df723 100755 --- a/plugins/LayerView/LayerPass.py +++ b/plugins/LayerView/LayerPass.py @@ -66,7 +66,7 @@ class LayerPass(RenderPass): self.bind() tool_handle_batch = RenderBatch(self._tool_handle_shader, type = RenderBatch.RenderType.Overlay) - active_build_plate = Application.getInstance().activeBuildPlate + active_build_plate = Application.getInstance().getBuildPlateModel().activeBuildPlate for node in DepthFirstIterator(self._scene.getRoot()): diff --git a/plugins/SolidView/SolidView.py b/plugins/SolidView/SolidView.py index 699cec23f5..973b513794 100644 --- a/plugins/SolidView/SolidView.py +++ b/plugins/SolidView/SolidView.py @@ -71,11 +71,9 @@ class SolidView(View): else: self._enabled_shader.setUniformValue("u_overhangAngle", math.cos(math.radians(0))) - activeBuildPlateNumber = Application.getInstance().activeBuildPlate - for node in DepthFirstIterator(scene.getRoot()): if not node.render(renderer): - if node.getMeshData() and node.isVisible(): # and (node.callDecoration("getBuildPlateNumber") == activeBuildPlateNumber): + if node.getMeshData() and node.isVisible(): uniforms = {} shade_factor = 1.0 diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index 29d8b439a8..1db6e2a511 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -324,6 +324,7 @@ UM.MainWindow } } + /* Button { id: openFileButton; @@ -339,17 +340,19 @@ UM.MainWindow } action: Cura.Actions.open; } + */ Button { id: objectsButton; text: catalog.i18nc("@action:button","Objects"); - iconSource: UM.Theme.getIcon("load") + iconSource: UM.Theme.getIcon("plus") style: UM.Theme.styles.tool_button tooltip: ''; anchors { - top: openFileButton.bottom; + top: topbar.bottom; + //top: openFileButton.bottom; topMargin: UM.Theme.getSize("default_margin").height; left: parent.left; } diff --git a/resources/qml/Menus/ContextMenu.qml b/resources/qml/Menus/ContextMenu.qml index 175410773e..2aa3bd6bdb 100644 --- a/resources/qml/Menus/ContextMenu.qml +++ b/resources/qml/Menus/ContextMenu.qml @@ -7,7 +7,7 @@ import QtQuick.Dialogs 1.2 import QtQuick.Window 2.1 import UM 1.2 as UM -import Cura 1.0 as Cura +import Cura 1.2 as Cura Menu { @@ -40,21 +40,21 @@ Menu } MenuSeparator {} - MenuItem { - text: "build plate 0"; - onTriggered: CuraActions.setBuildPlateForSelection(0); - checkable: true - checked: false + Instantiator + { + model: Cura.BuildPlateModel + MenuItem { + text: Cura.BuildPlateModel.getItem(index).name; + onTriggered: CuraActions.setBuildPlateForSelection(Cura.BuildPlateModel.getItem(index).buildPlateNumber); + checkable: true + checked: Cura.BuildPlateModel.getItem(index).buildPlateNumber == Cura.BuildPlateModel.activeBuildPlate + } + onObjectAdded: base.insertItem(index, object); + onObjectRemoved: base.removeItem(object) } MenuItem { - text: "build plate 1"; - onTriggered: CuraActions.setBuildPlateForSelection(1); - checkable: true - checked: false - } - MenuItem { - text: "build plate 2"; - onTriggered: CuraActions.setBuildPlateForSelection(2); + text: "New build plate"; + onTriggered: CuraActions.setBuildPlateForSelection(Cura.BuildPlateModel.maxBuildPlate + 1); checkable: true checked: false } diff --git a/resources/qml/Menus/ViewMenu.qml b/resources/qml/Menus/ViewMenu.qml index 3c5485da32..a78e465c85 100644 --- a/resources/qml/Menus/ViewMenu.qml +++ b/resources/qml/Menus/ViewMenu.qml @@ -5,12 +5,12 @@ import QtQuick 2.2 import QtQuick.Controls 1.1 import UM 1.2 as UM -import Cura 1.0 as Cura +import Cura 1.2 as Cura Menu { title: catalog.i18nc("@title:menu menubar:toplevel", "&View"); - id: menu + id: base enabled: !PrintInformation.preSliced Instantiator { @@ -23,30 +23,27 @@ Menu exclusiveGroup: group; onTriggered: UM.Controller.setActiveView(model.id); } - onObjectAdded: menu.insertItem(index, object) - onObjectRemoved: menu.removeItem(object) + onObjectAdded: base.insertItem(index, object) + onObjectRemoved: base.removeItem(object) } ExclusiveGroup { id: group; } MenuSeparator {} - MenuItem { - text: "build plate 0"; - onTriggered: CuraApplication.setActiveBuildPlate(0); - } - MenuItem { - text: "build plate 1"; - onTriggered: CuraApplication.setActiveBuildPlate(1); - } - MenuItem { - text: "build plate 2"; - onTriggered: CuraApplication.setActiveBuildPlate(2); + MenuItem { action: Cura.Actions.homeCamera; } + + MenuSeparator {} + Instantiator + { + model: Cura.BuildPlateModel + MenuItem { + text: Cura.BuildPlateModel.getItem(index).name; + onTriggered: Cura.BuildPlateModel.setActiveBuildPlate(Cura.BuildPlateModel.getItem(index).buildPlateNumber); + checkable: true; + checked: Cura.BuildPlateModel.getItem(index).buildPlateNumber == Cura.BuildPlateModel.activeBuildPlate; + exclusiveGroup: buildPlateGroup; + } + onObjectAdded: base.insertItem(index, object); + onObjectRemoved: base.removeItem(object) } ExclusiveGroup { id: buildPlateGroup; } - - MenuItem { - text: "New build plate"; - onTriggered: CuraApplication.newBuildPlate(); - } - MenuSeparator {} - MenuItem { action: Cura.Actions.homeCamera; } } diff --git a/resources/qml/ObjectsList.qml b/resources/qml/ObjectsList.qml index 4eeb0cd568..bf7d92c4d6 100644 --- a/resources/qml/ObjectsList.qml +++ b/resources/qml/ObjectsList.qml @@ -52,7 +52,6 @@ Rectangle id: nodeNameLabel anchors.left: parent.left anchors.leftMargin: UM.Theme.getSize("default_margin").width - //anchors.right: parent.right width: parent.width - 2 * UM.Theme.getSize("default_margin").width - 30 text: Cura.ObjectManager.getItem(index) ? Cura.ObjectManager.getItem(index).name : ""; color: Cura.ObjectManager.getItem(index).isSelected ? palette.highlightedText : (Cura.ObjectManager.getItem(index).isOutsideBuildArea ? palette.mid : palette.text) @@ -66,7 +65,7 @@ Rectangle anchors.left: nodeNameLabel.right anchors.leftMargin: UM.Theme.getSize("default_margin").width anchors.right: parent.right - text: Cura.ObjectManager.getItem(index) ? Cura.ObjectManager.getItem(index).buildPlateNumber : 0; + text: Cura.ObjectManager.getItem(index).buildPlateNumber != -1 ? Cura.ObjectManager.getItem(index).buildPlateNumber + 1 : ""; color: Cura.ObjectManager.getItem(index).isSelected ? palette.highlightedText : palette.text elide: Text.ElideRight } @@ -134,41 +133,22 @@ Rectangle } } - ListModel - { - id: buildPlatesModel - - ListElement - { - name: "build plate 0" - buildPlateNumber: 0 - } - ListElement - { - name: "build plate 1" - buildPlateNumber: 1 - } - ListElement - { - name: "build plate 2" - buildPlateNumber: 2 - } - } Component { id: buildPlateDelegate Rectangle { height: childrenRect.height - color: CuraApplication.activeBuildPlate == buildPlateNumber ? palette.highlight : index % 2 ? palette.base : palette.alternateBase + color: Cura.BuildPlateModel.getItem(index).buildPlateNumber == Cura.BuildPlateModel.activeBuildPlate ? palette.highlight : index % 2 ? palette.base : palette.alternateBase width: parent.width Label { + id: buildPlateNameLabel anchors.left: parent.left anchors.leftMargin: UM.Theme.getSize("default_margin").width - anchors.right: parent.right - text: name //Cura.ObjectManager.getItem(index).name; - color: CuraApplication.activeBuildPlate == buildPlateNumber ? palette.highlightedText : palette.text + width: parent.width - 2 * UM.Theme.getSize("default_margin").width - 30 + text: Cura.BuildPlateModel.getItem(index) ? Cura.BuildPlateModel.getItem(index).name : ""; + color: Cura.BuildPlateModel.activeBuildPlate == index ? palette.highlightedText : palette.text elide: Text.ElideRight } @@ -177,7 +157,7 @@ Rectangle anchors.fill: parent; onClicked: { - CuraApplication.setActiveBuildPlate(buildPlateNumber); + Cura.BuildPlateModel.setActiveBuildPlate(index); } } } @@ -192,7 +172,6 @@ Rectangle anchors { - // top: objectsList.bottom; topMargin: UM.Theme.getSize("default_margin").height; left: parent.left; leftMargin: UM.Theme.getSize("default_margin").height; @@ -210,21 +189,8 @@ Rectangle ListView { id: buildPlateListView - model: buildPlatesModel - - onModelChanged: - { - //currentIndex = -1; - } + model: Cura.BuildPlateModel width: parent.width - currentIndex: -1 - onCurrentIndexChanged: - { - //base.selectedPrinter = listview.model[currentIndex]; - // Only allow connecting if the printer has responded to API query since the last refresh - //base.completeProperties = base.selectedPrinter != null && base.selectedPrinter.getProperty("incomplete") != "true"; - } - //Component.onCompleted: manager.startDiscovery() delegate: buildPlateDelegate } } From f6c7ffac116c0541aff3d8d4d68e66055bc4c8ad Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Tue, 14 Nov 2017 14:48:51 +0100 Subject: [PATCH 023/124] CURA-4525 some cleanup and comments --- cura/CuraApplication.py | 1 - cura/GCodeListDecorator.py | 2 +- cura/ObjectManager.py | 1 + cura/Scene/BuildPlateDecorator.py | 1 + plugins/CuraEngineBackend/CuraEngineBackend.py | 15 +++------------ .../CuraEngineBackend/ProcessSlicedLayersJob.py | 11 ----------- 6 files changed, 6 insertions(+), 25 deletions(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 08b81d568c..4b71047dfc 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -815,7 +815,6 @@ class CuraApplication(QtApplication): qmlRegisterType(QualitySettingsModel, "Cura", 1, 0, "QualitySettingsModel") qmlRegisterType(MachineNameValidator, "Cura", 1, 0, "MachineNameValidator") qmlRegisterType(UserChangesModel, "Cura", 1, 1, "UserChangesModel") - # qmlRegisterSingletonType(ObjectManager, "Cura", 1, 0, "ObjectManager", ObjectManager.createObjectManager) qmlRegisterSingletonType(ContainerManager, "Cura", 1, 0, "ContainerManager", ContainerManager.createContainerManager) diff --git a/cura/GCodeListDecorator.py b/cura/GCodeListDecorator.py index 66ecf3beac..5738d0a7f2 100644 --- a/cura/GCodeListDecorator.py +++ b/cura/GCodeListDecorator.py @@ -4,7 +4,7 @@ from UM.Scene.SceneNodeDecorator import SceneNodeDecorator class GCodeListDecorator(SceneNodeDecorator): def __init__(self): super().__init__() - self._gcode_list = {} # [] + self._gcode_list = [] def getGCodeList(self): return self._gcode_list diff --git a/cura/ObjectManager.py b/cura/ObjectManager.py index 8361e43d71..413f43ed73 100644 --- a/cura/ObjectManager.py +++ b/cura/ObjectManager.py @@ -11,6 +11,7 @@ from PyQt5.QtWidgets import QApplication from UM.Preferences import Preferences +## Keep track of all objects in the project class ObjectManager(ListModel): def __init__(self): super().__init__() diff --git a/cura/Scene/BuildPlateDecorator.py b/cura/Scene/BuildPlateDecorator.py index 6b4dcfc970..cfbe792699 100644 --- a/cura/Scene/BuildPlateDecorator.py +++ b/cura/Scene/BuildPlateDecorator.py @@ -3,6 +3,7 @@ from UM.Application import Application from UM.Logger import Logger +## Make a SceneNode build plate aware CuraSceneNode objects all have this decorator. class BuildPlateDecorator(SceneNodeDecorator): def __init__(self, build_plate_number = -1): super().__init__() diff --git a/plugins/CuraEngineBackend/CuraEngineBackend.py b/plugins/CuraEngineBackend/CuraEngineBackend.py index c250b9019c..b0f44e931d 100755 --- a/plugins/CuraEngineBackend/CuraEngineBackend.py +++ b/plugins/CuraEngineBackend/CuraEngineBackend.py @@ -112,7 +112,6 @@ class CuraEngineBackend(QObject, Backend): self._tool_active = False # If a tool is active, some tasks do not have to do anything self._always_restart = True # Always restart the engine when starting a new slice. Don't keep the process running. TODO: Fix engine statelessness. self._process_layers_job = None # The currently active job to process layers, or None if it is not processing layers. - # self._need_slicing = False self._build_plates_to_be_sliced = [] # what needs slicing? self._engine_is_fresh = True # Is the newly started engine used before or not? @@ -446,11 +445,6 @@ class CuraEngineBackend(QObject, Backend): self._invokeSlice() - # #self.needsSlicing() - # self.stopSlicing() - # #self._onChanged() - # self._invokeSlice() - ## Called when an error occurs in the socket connection towards the engine. # # \param error The exception that occurred. @@ -476,12 +470,9 @@ class CuraEngineBackend(QObject, Backend): node.getParent().removeChild(node) def markSliceAll(self): - if 0 not in self._build_plates_to_be_sliced: - self._build_plates_to_be_sliced.append(0) - if 1 not in self._build_plates_to_be_sliced: - self._build_plates_to_be_sliced.append(1) - if 2 not in self._build_plates_to_be_sliced: - self._build_plates_to_be_sliced.append(2) + for build_plate_number in range(Application.getInstance().getBuildPlateModel().maxBuildPlate + 1): + if build_plate_number not in self._build_plates_to_be_sliced: + self._build_plates_to_be_sliced.append(build_plate_number) ## Convenient function: mark everything to slice, emit state and clear layer data def needsSlicing(self): diff --git a/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py b/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py index 916cc4d914..8da18a066d 100644 --- a/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py +++ b/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py @@ -84,17 +84,6 @@ class ProcessSlicedLayersJob(Job): new_node = SceneNode() new_node.addDecorator(BuildPlateDecorator(self._build_plate_number)) - # ## Remove old layer data (if any) - # for node in DepthFirstIterator(self._scene.getRoot()): - # if node.callDecoration("getLayerData") and node.callDecoration("getBuildPlateNumber") == self._build_plate_number: - # Logger.log("d", " # Removing: %s", node) - # node.getParent().removeChild(node) - # #break - # if self._abort_requested: - # if self._progress_message: - # self._progress_message.hide() - # return - # Force garbage collection. # For some reason, Python has a tendency to keep the layer data # in memory longer than needed. Forcing the GC to run here makes From 4a893c048e28259819aac59f72e0e54d628e76f7 Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Tue, 14 Nov 2017 16:35:37 +0100 Subject: [PATCH 024/124] CURA-4525 made PrintInformation multi buildplate-aware --- cura/BuildPlateModel.py | 2 +- cura/CuraApplication.py | 2 + cura/PrintInformation.py | 106 ++++++++++++------ .../CuraEngineBackend/CuraEngineBackend.py | 9 +- 4 files changed, 81 insertions(+), 38 deletions(-) diff --git a/cura/BuildPlateModel.py b/cura/BuildPlateModel.py index 35a311dc5f..a29dd65de4 100644 --- a/cura/BuildPlateModel.py +++ b/cura/BuildPlateModel.py @@ -15,7 +15,7 @@ class BuildPlateModel(ListModel): Application.getInstance().getController().getScene().sceneChanged.connect(self.updateMaxBuildPlate) # it may be a bit inefficient when changing a lot simultaneously self._max_build_plate = 1 # default - self._active_build_plate = 0 + self._active_build_plate = -1 @pyqtSlot(int) def setActiveBuildPlate(self, nr): diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 4b71047dfc..46d4270da7 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -758,6 +758,8 @@ class CuraApplication(QtApplication): def getBuildPlateModel(self, *args): if self._build_plate_model is None: self._build_plate_model = BuildPlateModel.createBuildPlateModel() + self._build_plate_model.setActiveBuildPlate(0) # default value + return self._build_plate_model def getSettingInheritanceManager(self, *args): diff --git a/cura/PrintInformation.py b/cura/PrintInformation.py index d3bcc10781..6bf35f49c7 100644 --- a/cura/PrintInformation.py +++ b/cura/PrintInformation.py @@ -53,10 +53,10 @@ class PrintInformation(QObject): self.initializeCuraMessagePrintTimeProperties() - self._material_lengths = [] - self._material_weights = [] - self._material_costs = [] - self._material_names = [] + self._material_lengths = {} # indexed by build plate number + self._material_weights = {} + self._material_costs = {} + self._material_names = {} self._pre_sliced = False @@ -68,10 +68,13 @@ class PrintInformation(QObject): self._abbr_machine = "" self._job_name = "" self._project_name = "" + self._active_build_plate = 0 + self._initVariablesWithBuildPlate(self._active_build_plate) Application.getInstance().globalContainerStackChanged.connect(self._updateJobName) Application.getInstance().fileLoaded.connect(self.setBaseName) Application.getInstance().projectFileLoaded.connect(self.setProjectName) + Application.getInstance().getBuildPlateModel().activeBuildPlateChanged.connect(self._onActiveBuildPlateChanged) Preferences.getInstance().preferenceChanged.connect(self._onPreferencesChanged) self._active_material_container = None @@ -83,7 +86,7 @@ class PrintInformation(QObject): # Crate cura message translations and using translation keys initialize empty time Duration object for total time # and time for each feature def initializeCuraMessagePrintTimeProperties(self): - self._current_print_time = Duration(None, self) + self._current_print_time = {} # Duration(None, self) self._print_time_message_translations = { "inset_0": catalog.i18nc("@tooltip", "Outer Wall"), @@ -101,10 +104,26 @@ class PrintInformation(QObject): self._print_time_message_values = {} - # Full fill message values using keys from _print_time_message_translations - for key in self._print_time_message_translations.keys(): - self._print_time_message_values[key] = Duration(None, self) + def _initPrintTimeMessageValues(self, build_plate_number): + # Full fill message values using keys from _print_time_message_translations + self._print_time_message_values[build_plate_number] = {} + for key in self._print_time_message_translations.keys(): + self._print_time_message_values[build_plate_number][key] = Duration(None, self) + + def _initVariablesWithBuildPlate(self, build_plate_number): + if build_plate_number not in self._print_time_message_values: + self._initPrintTimeMessageValues(build_plate_number) + if self._active_build_plate not in self._material_lengths: + self._material_lengths[self._active_build_plate] = [] + if self._active_build_plate not in self._material_weights: + self._material_weights[self._active_build_plate] = [] + if self._active_build_plate not in self._material_costs: + self._material_costs[self._active_build_plate] = [] + if self._active_build_plate not in self._material_names: + self._material_names[self._active_build_plate] = [] + if self._active_build_plate not in self._current_print_time: + self._current_print_time[self._active_build_plate] = Duration(None, self) currentPrintTimeChanged = pyqtSignal() @@ -120,53 +139,58 @@ class PrintInformation(QObject): @pyqtProperty(Duration, notify = currentPrintTimeChanged) def currentPrintTime(self): - return self._current_print_time + return self._current_print_time[self._active_build_plate] materialLengthsChanged = pyqtSignal() @pyqtProperty("QVariantList", notify = materialLengthsChanged) def materialLengths(self): - return self._material_lengths + return self._material_lengths[self._active_build_plate] materialWeightsChanged = pyqtSignal() @pyqtProperty("QVariantList", notify = materialWeightsChanged) def materialWeights(self): - return self._material_weights + return self._material_weights[self._active_build_plate] materialCostsChanged = pyqtSignal() @pyqtProperty("QVariantList", notify = materialCostsChanged) def materialCosts(self): - return self._material_costs + return self._material_costs[self._active_build_plate] materialNamesChanged = pyqtSignal() @pyqtProperty("QVariantList", notify = materialNamesChanged) def materialNames(self): - return self._material_names + return self._material_names[self._active_build_plate] - def _onPrintDurationMessage(self, print_time, material_amounts): - - self._updateTotalPrintTimePerFeature(print_time) + def _onPrintDurationMessage(self, build_plate_number, print_time, material_amounts): + Logger.log("d", " ### print duration message for build plate %s", build_plate_number) + self._updateTotalPrintTimePerFeature(build_plate_number, print_time) self.currentPrintTimeChanged.emit() self._material_amounts = material_amounts self._calculateInformation() - def _updateTotalPrintTimePerFeature(self, print_time): + def _updateTotalPrintTimePerFeature(self, build_plate_number, print_time): total_estimated_time = 0 + if build_plate_number not in self._print_time_message_values: + self._initPrintTimeMessageValues(build_plate_number) + for feature, time in print_time.items(): if time != time: # Check for NaN. Engine can sometimes give us weird values. - self._print_time_message_values.get(feature).setDuration(0) + self._print_time_message_values[build_plate_number].get(feature).setDuration(0) Logger.log("w", "Received NaN for print duration message") continue total_estimated_time += time - self._print_time_message_values.get(feature).setDuration(time) + self._print_time_message_values[build_plate_number].get(feature).setDuration(time) - self._current_print_time.setDuration(total_estimated_time) + if build_plate_number not in self._current_print_time: + self._current_print_time[build_plate_number] = Duration(None, self) + self._current_print_time[build_plate_number].setDuration(total_estimated_time) def _calculateInformation(self): if Application.getInstance().getGlobalContainerStack() is None: @@ -174,10 +198,10 @@ class PrintInformation(QObject): # Material amount is sent as an amount of mm^3, so calculate length from that radius = Application.getInstance().getGlobalContainerStack().getProperty("material_diameter", "value") / 2 - self._material_lengths = [] - self._material_weights = [] - self._material_costs = [] - self._material_names = [] + self._material_lengths[self._active_build_plate] = [] + self._material_weights[self._active_build_plate] = [] + self._material_costs[self._active_build_plate] = [] + self._material_names[self._active_build_plate] = [] material_preference_values = json.loads(Preferences.getInstance().getValue("cura/material_settings")) @@ -215,10 +239,10 @@ class PrintInformation(QObject): length = round((amount / (math.pi * radius ** 2)) / 1000, 2) else: length = 0 - self._material_weights.append(weight) - self._material_lengths.append(length) - self._material_costs.append(cost) - self._material_names.append(material_name) + self._material_weights[self._active_build_plate].append(weight) + self._material_lengths[self._active_build_plate].append(length) + self._material_costs[self._active_build_plate].append(cost) + self._material_names[self._active_build_plate].append(material_name) self.materialLengthsChanged.emit() self.materialWeightsChanged.emit() @@ -245,6 +269,20 @@ class PrintInformation(QObject): self._active_material_container = active_material_containers[0] self._active_material_container.metaDataChanged.connect(self._onMaterialMetaDataChanged) + def _onActiveBuildPlateChanged(self): + new_active_build_plate = Application.getInstance().getBuildPlateModel().activeBuildPlate + if new_active_build_plate != self._active_build_plate: + Logger.log("d", " ## active build plate changed: %s", self._active_build_plate) + self._active_build_plate = new_active_build_plate + + self._initVariablesWithBuildPlate(self._active_build_plate) + + self.materialLengthsChanged.emit() + self.materialWeightsChanged.emit() + self.materialCostsChanged.emit() + self.materialNamesChanged.emit() + self.currentPrintTimeChanged.emit() + def _onMaterialMetaDataChanged(self, *args, **kwargs): self._calculateInformation() @@ -341,7 +379,9 @@ class PrintInformation(QObject): @pyqtSlot(result = "QVariantMap") def getFeaturePrintTimes(self): result = {} - for feature, time in self._print_time_message_values.items(): + if self._active_build_plate not in self._print_time_message_values: + self._initPrintTimeMessageValues(self._active_build_plate) + for feature, time in self._print_time_message_values[self._active_build_plate].items(): if feature in self._print_time_message_translations: result[self._print_time_message_translations[feature]] = time else: @@ -349,10 +389,12 @@ class PrintInformation(QObject): return result # Simulate message with zero time duration - def setToZeroPrintInformation(self): + def setToZeroPrintInformation(self, build_plate_number): temp_message = {} - for key in self._print_time_message_values.keys(): + if build_plate_number not in self._print_time_message_values: + self._print_time_message_values[build_plate_number] = {} + for key in self._print_time_message_values[build_plate_number].keys(): temp_message[key] = 0 temp_material_amounts = [0] - self._onPrintDurationMessage(temp_message, temp_material_amounts) + self._onPrintDurationMessage(build_plate_number, temp_message, temp_material_amounts) diff --git a/plugins/CuraEngineBackend/CuraEngineBackend.py b/plugins/CuraEngineBackend/CuraEngineBackend.py index b0f44e931d..859578c3e9 100755 --- a/plugins/CuraEngineBackend/CuraEngineBackend.py +++ b/plugins/CuraEngineBackend/CuraEngineBackend.py @@ -207,6 +207,7 @@ class CuraEngineBackend(QObject, Backend): return # see if we really have to slice + active_build_plate = Application.getInstance().getBuildPlateModel().activeBuildPlate build_plate_to_be_sliced = self._build_plates_to_be_sliced.pop(0) Logger.log("d", "Going to slice build plate [%s]!" % build_plate_to_be_sliced) num_objects = self._numObjects() @@ -218,8 +219,8 @@ class CuraEngineBackend(QObject, Backend): self._stored_layer_data = [] self._stored_optimized_layer_data[build_plate_to_be_sliced] = [] - if Application.getInstance().getPrintInformation(): - Application.getInstance().getPrintInformation().setToZeroPrintInformation() + if Application.getInstance().getPrintInformation() and build_plate_to_be_sliced == active_build_plate: + Application.getInstance().getPrintInformation().setToZeroPrintInformation(build_plate_to_be_sliced) if self._process is None: self._createSocket() @@ -547,11 +548,9 @@ class CuraEngineBackend(QObject, Backend): replaced = replaced.replace("{filament_cost}", str(Application.getInstance().getPrintInformation().materialCosts)) replaced = replaced.replace("{jobname}", str(Application.getInstance().getPrintInformation().jobName)) - #gcode_list[gcode_list.index(line)] = replaced gcode_list[index] = replaced self._slicing = False - #self._need_slicing = False Logger.log("d", "Slicing took %s seconds", time() - self._slice_start_time ) # See if we need to process the sliced layers job. @@ -608,7 +607,7 @@ class CuraEngineBackend(QObject, Backend): material_amounts.append(message.getRepeatedMessage("materialEstimates", index).material_amount) times = self._parseMessagePrintTimes(message) - self.printDurationMessage.emit(times, material_amounts) + self.printDurationMessage.emit(self._start_slice_job_build_plate, times, material_amounts) ## Called for parsing message to retrieve estimated time per feature # From 7c85b222b2cff55deb93d42e4431bc264c08c58b Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 14 Nov 2017 17:45:45 +0100 Subject: [PATCH 025/124] Don't use support infill by default when printing tree support Only when using area support really. Contributes to issue CURA-4523. --- resources/definitions/fdmprinter.def.json | 1 + 1 file changed, 1 insertion(+) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index ef107be412..ee6996b2de 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -3488,6 +3488,7 @@ "minimum_value": "0", "maximum_value_warning": "100", "default_value": 15, + "value": "15 if support_enable else 0", "enabled": "support_enable or support_tree_enable", "limit_to_extruder": "support_infill_extruder_nr", "settable_per_mesh": false, From be6561b5754d8b13bf51b5cb990907724787797f Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Wed, 15 Nov 2017 10:28:34 +0100 Subject: [PATCH 026/124] CURA-4525 fixed material info per build plate, bugfix arrange on load --- cura/CuraApplication.py | 2 +- cura/PrintInformation.py | 29 +++++++++++-------- .../CuraEngineBackend/CuraEngineBackend.py | 1 - plugins/GCodeWriter/GCodeWriter.py | 3 +- plugins/SliceInfoPlugin/SliceInfo.py | 2 +- 5 files changed, 21 insertions(+), 16 deletions(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 46d4270da7..14b09c4902 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -1428,7 +1428,7 @@ class CuraApplication(QtApplication): self.fileLoaded.emit(filename) arrange_objects_on_load = Preferences.getInstance().getValue("cura/arrange_objects_on_load") - target_build_plate = self.activeBuildPlate if arrange_objects_on_load else -1 + target_build_plate = self.getBuildPlateModel().activeBuildPlate if arrange_objects_on_load else -1 for original_node in nodes: node = CuraSceneNode() # We want our own CuraSceneNode diff --git a/cura/PrintInformation.py b/cura/PrintInformation.py index 6bf35f49c7..bbc5cd4329 100644 --- a/cura/PrintInformation.py +++ b/cura/PrintInformation.py @@ -165,13 +165,16 @@ class PrintInformation(QObject): def materialNames(self): return self._material_names[self._active_build_plate] + def printTimes(self): + return self._print_time_message_values[self._active_build_plate] + def _onPrintDurationMessage(self, build_plate_number, print_time, material_amounts): Logger.log("d", " ### print duration message for build plate %s", build_plate_number) self._updateTotalPrintTimePerFeature(build_plate_number, print_time) self.currentPrintTimeChanged.emit() self._material_amounts = material_amounts - self._calculateInformation() + self._calculateInformation(build_plate_number) def _updateTotalPrintTimePerFeature(self, build_plate_number, print_time): total_estimated_time = 0 @@ -192,16 +195,16 @@ class PrintInformation(QObject): self._current_print_time[build_plate_number] = Duration(None, self) self._current_print_time[build_plate_number].setDuration(total_estimated_time) - def _calculateInformation(self): + def _calculateInformation(self, build_plate_number): if Application.getInstance().getGlobalContainerStack() is None: return # Material amount is sent as an amount of mm^3, so calculate length from that radius = Application.getInstance().getGlobalContainerStack().getProperty("material_diameter", "value") / 2 - self._material_lengths[self._active_build_plate] = [] - self._material_weights[self._active_build_plate] = [] - self._material_costs[self._active_build_plate] = [] - self._material_names[self._active_build_plate] = [] + self._material_lengths[build_plate_number] = [] + self._material_weights[build_plate_number] = [] + self._material_costs[build_plate_number] = [] + self._material_names[build_plate_number] = [] material_preference_values = json.loads(Preferences.getInstance().getValue("cura/material_settings")) @@ -239,10 +242,10 @@ class PrintInformation(QObject): length = round((amount / (math.pi * radius ** 2)) / 1000, 2) else: length = 0 - self._material_weights[self._active_build_plate].append(weight) - self._material_lengths[self._active_build_plate].append(length) - self._material_costs[self._active_build_plate].append(cost) - self._material_names[self._active_build_plate].append(material_name) + self._material_weights[build_plate_number].append(weight) + self._material_lengths[build_plate_number].append(length) + self._material_costs[build_plate_number].append(cost) + self._material_names[build_plate_number].append(material_name) self.materialLengthsChanged.emit() self.materialWeightsChanged.emit() @@ -253,7 +256,8 @@ class PrintInformation(QObject): if preference != "cura/material_settings": return - self._calculateInformation() + for build_plate_number in range(Application.getInstance().getBuildPlateModel().maxBuildPlate + 1): + self._calculateInformation(build_plate_number) def _onActiveMaterialChanged(self): if self._active_material_container: @@ -284,7 +288,8 @@ class PrintInformation(QObject): self.currentPrintTimeChanged.emit() def _onMaterialMetaDataChanged(self, *args, **kwargs): - self._calculateInformation() + for build_plate_number in range(Application.getInstance().getBuildPlateModel().maxBuildPlate + 1): + self._calculateInformation(build_plate_number) @pyqtSlot(str) def setJobName(self, name): diff --git a/plugins/CuraEngineBackend/CuraEngineBackend.py b/plugins/CuraEngineBackend/CuraEngineBackend.py index 859578c3e9..08c89c56a6 100755 --- a/plugins/CuraEngineBackend/CuraEngineBackend.py +++ b/plugins/CuraEngineBackend/CuraEngineBackend.py @@ -433,7 +433,6 @@ class CuraEngineBackend(QObject, Backend): self._postponed_scene_change_sources.append(source) return - Logger.log("d", " going to reslice: %s", build_plate_changed) self.stopSlicing() for build_plate_number in build_plate_changed: if build_plate_number not in self._build_plates_to_be_sliced: diff --git a/plugins/GCodeWriter/GCodeWriter.py b/plugins/GCodeWriter/GCodeWriter.py index 3860590ef7..192354d947 100644 --- a/plugins/GCodeWriter/GCodeWriter.py +++ b/plugins/GCodeWriter/GCodeWriter.py @@ -59,8 +59,9 @@ class GCodeWriter(MeshWriter): Logger.log("e", "GCode Writer does not support non-text mode.") return False + active_build_plate = Application.getInstance().getBuildPlateModel().activeBuildPlate scene = Application.getInstance().getController().getScene() - gcode_list = getattr(scene, "gcode_list") + gcode_list = getattr(scene, "gcode_list")[active_build_plate] if gcode_list: for gcode in gcode_list: stream.write(gcode) diff --git a/plugins/SliceInfoPlugin/SliceInfo.py b/plugins/SliceInfoPlugin/SliceInfo.py index 0514c4dacf..a72c056bc9 100755 --- a/plugins/SliceInfoPlugin/SliceInfo.py +++ b/plugins/SliceInfoPlugin/SliceInfo.py @@ -162,7 +162,7 @@ class SliceInfo(Extension): data["models"].append(model) - print_times = print_information._print_time_message_values + print_times = print_information.printTimes() data["print_times"] = {"travel": int(print_times["travel"].getDisplayString(DurationFormat.Format.Seconds)), "support": int(print_times["support"].getDisplayString(DurationFormat.Format.Seconds)), "infill": int(print_times["infill"].getDisplayString(DurationFormat.Format.Seconds)), From fc187d100a6aaf37e3ef3dd22ea30b84c694f9fe Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Wed, 15 Nov 2017 16:00:42 +0100 Subject: [PATCH 027/124] Add setting to tweak collision area sampling resolution Because this can make a lot of difference for the slice time and the stability of the support. Contributes to issue CURA-4523. --- resources/definitions/fdmprinter.def.json | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index ee6996b2de..db2ee3dc90 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -3722,6 +3722,22 @@ "settable_per_mesh": false, "settable_per_extruder": true }, + "support_tree_collision_resolution": + { + "label": "Tree Support Collision Resolution", + "description": "Resolution to compute collisions with to avoid hitting the model. Setting this lower will produce more accurate trees that fail less often, but increases slicing time dramatically.", + "unit": "mm", + "type": "float", + "minimum_value": "0.001", + "minimum_value_warning": "support_line_width / 4", + "maximum_value_warning": "support_line_width * 2", + "default_value": 0.4, + "value": "support_line_width", + "limit_to_extruder": "support_infill_extruder_nr", + "enabled": "support_tree_enable and support_tree_branch_diameter_angle > 0", + "settable_per_mesh": false, + "settable_per_extruder": true + }, "support_tree_wall_thickness": { "label": "Tree Support Wall Thickness", From 864f41772355e6eef4d0170dd9090b870b8d368a Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Wed, 15 Nov 2017 16:03:32 +0100 Subject: [PATCH 028/124] CURA-4525 Fix load and save projects. Not storing build plates or object names yet. --- cura/PrintInformation.py | 2 -- plugins/3MFReader/ThreeMFReader.py | 13 ++++++++++--- plugins/3MFWriter/ThreeMFWriter.py | 3 ++- resources/qml/Actions.qml | 4 ++-- 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/cura/PrintInformation.py b/cura/PrintInformation.py index bbc5cd4329..f2d28c9297 100644 --- a/cura/PrintInformation.py +++ b/cura/PrintInformation.py @@ -169,7 +169,6 @@ class PrintInformation(QObject): return self._print_time_message_values[self._active_build_plate] def _onPrintDurationMessage(self, build_plate_number, print_time, material_amounts): - Logger.log("d", " ### print duration message for build plate %s", build_plate_number) self._updateTotalPrintTimePerFeature(build_plate_number, print_time) self.currentPrintTimeChanged.emit() @@ -276,7 +275,6 @@ class PrintInformation(QObject): def _onActiveBuildPlateChanged(self): new_active_build_plate = Application.getInstance().getBuildPlateModel().activeBuildPlate if new_active_build_plate != self._active_build_plate: - Logger.log("d", " ## active build plate changed: %s", self._active_build_plate) self._active_build_plate = new_active_build_plate self._initVariablesWithBuildPlate(self._active_build_plate) diff --git a/plugins/3MFReader/ThreeMFReader.py b/plugins/3MFReader/ThreeMFReader.py index 8c4ef9d1ae..f75cf68312 100755 --- a/plugins/3MFReader/ThreeMFReader.py +++ b/plugins/3MFReader/ThreeMFReader.py @@ -15,8 +15,8 @@ from cura.Settings.SettingOverrideDecorator import SettingOverrideDecorator from UM.Application import Application from cura.Settings.ExtruderManager import ExtruderManager from cura.QualityManager import QualityManager -#from UM.Scene.SceneNode import SceneNode -from cura.Scene.CuraSceneNode import CuraSceneNode as SceneNode +from cura.Scene.CuraSceneNode import CuraSceneNode +from cura.Scene.BuildPlateDecorator import BuildPlateDecorator from cura.SliceableObjectDecorator import SliceableObjectDecorator from cura.ZOffsetDecorator import ZOffsetDecorator @@ -44,6 +44,7 @@ class ThreeMFReader(MeshReader): } self._base_name = "" self._unit = None + self._object_count = 0 # Used to name objects as there is no node name yet. def _createMatrixFromTransformationString(self, transformation): if transformation == "": @@ -78,7 +79,12 @@ class ThreeMFReader(MeshReader): ## Convenience function that converts a SceneNode object (as obtained from libSavitar) to a Uranium scene node. # \returns Uranium scene node. def _convertSavitarNodeToUMNode(self, savitar_node): - um_node = SceneNode() + self._object_count += 1 + node_name = "Object %s" % self._object_count + + um_node = CuraSceneNode() + um_node.addDecorator(BuildPlateDecorator(0)) + um_node.setName(node_name) transformation = self._createMatrixFromTransformationString(savitar_node.getTransformation()) um_node.setTransformation(transformation) mesh_builder = MeshBuilder() @@ -155,6 +161,7 @@ class ThreeMFReader(MeshReader): def read(self, file_name): result = [] + self._object_count = 0 # Used to name objects as there is no node name yet. # The base object of 3mf is a zipped archive. try: archive = zipfile.ZipFile(file_name, "r") diff --git a/plugins/3MFWriter/ThreeMFWriter.py b/plugins/3MFWriter/ThreeMFWriter.py index a764d30fac..8e005c47b1 100644 --- a/plugins/3MFWriter/ThreeMFWriter.py +++ b/plugins/3MFWriter/ThreeMFWriter.py @@ -7,6 +7,7 @@ from UM.Logger import Logger from UM.Math.Matrix import Matrix from UM.Application import Application import UM.Scene.SceneNode +from cura.Scene.CuraSceneNode import CuraSceneNode import Savitar @@ -63,7 +64,7 @@ class ThreeMFWriter(MeshWriter): ## Convenience function that converts an Uranium SceneNode object to a SavitarSceneNode # \returns Uranium Scenen node. def _convertUMNodeToSavitarNode(self, um_node, transformation = Matrix()): - if type(um_node) is not UM.Scene.SceneNode.SceneNode: + if type(um_node) not in [UM.Scene.SceneNode.SceneNode, CuraSceneNode]: return None savitar_node = Savitar.SceneNode() diff --git a/resources/qml/Actions.qml b/resources/qml/Actions.qml index 89ec2cf70d..c6b0a443bb 100644 --- a/resources/qml/Actions.qml +++ b/resources/qml/Actions.qml @@ -304,8 +304,8 @@ Item Action { id: arrangeAllBuildPlatesAction; - text: ""; - iconName: "document-open"; + text: catalog.i18nc("@action:inmenu menubar:edit","Arrange All Models To All Build Plates"); + //iconName: "document-open"; onTriggered: CuraApplication.arrangeObjectsToAllBuildPlates(); } From e2a663992cf9e8c5f6062114369ba63c7ab18fc9 Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Wed, 15 Nov 2017 17:00:19 +0100 Subject: [PATCH 029/124] CURA-4525 Added an option to turn on the UI elements of multi build plate --- cura/CuraApplication.py | 5 ++++- resources/qml/Cura.qml | 7 ++++--- resources/qml/Menus/ContextMenu.qml | 8 ++++++-- resources/qml/Menus/ViewMenu.qml | 5 ++++- resources/qml/Preferences/GeneralPage.qml | 18 ++++++++++++++++-- 5 files changed, 34 insertions(+), 9 deletions(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 14b09c4902..056b6eaeb2 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -311,6 +311,7 @@ class CuraApplication(QtApplication): preferences.addPreference("cura/choice_on_profile_override", "always_ask") preferences.addPreference("cura/choice_on_open_project", "always_ask") preferences.addPreference("cura/arrange_objects_on_load", True) + preferences.addPreference("cura/use_multi_build_plate", False) preferences.addPreference("cura/currency", "€") preferences.addPreference("cura/material_settings", "{}") @@ -1427,7 +1428,9 @@ class CuraApplication(QtApplication): min_offset = 8 self.fileLoaded.emit(filename) - arrange_objects_on_load = Preferences.getInstance().getValue("cura/arrange_objects_on_load") + arrange_objects_on_load = ( + not Preferences.getInstance().getValue("cura/use_multi_build_plate") or + Preferences.getInstance().getValue("cura/arrange_objects_on_load")) target_build_plate = self.getBuildPlateModel().activeBuildPlate if arrange_objects_on_load else -1 for original_node in nodes: diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index 1db6e2a511..254679ec53 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -324,10 +324,10 @@ UM.MainWindow } } - /* Button { id: openFileButton; + visible: !UM.Preferences.getValue("cura/use_multi_build_plate") text: catalog.i18nc("@action:button","Open File"); iconSource: UM.Theme.getIcon("load") style: UM.Theme.styles.tool_button @@ -340,12 +340,13 @@ UM.MainWindow } action: Cura.Actions.open; } - */ Button { id: objectsButton; - text: catalog.i18nc("@action:button","Objects"); + visible: UM.Preferences.getValue("cura/use_multi_build_plate") + + text: catalog.i18nc("@action:button","Objects list"); iconSource: UM.Theme.getIcon("plus") style: UM.Theme.styles.tool_button tooltip: ''; diff --git a/resources/qml/Menus/ContextMenu.qml b/resources/qml/Menus/ContextMenu.qml index 2aa3bd6bdb..a52a2d46a3 100644 --- a/resources/qml/Menus/ContextMenu.qml +++ b/resources/qml/Menus/ContextMenu.qml @@ -39,7 +39,9 @@ Menu onObjectRemoved: base.removeItem(object) } - MenuSeparator {} + MenuSeparator { + visible: UM.Preferences.getValue("cura/use_multi_build_plate") + } Instantiator { model: Cura.BuildPlateModel @@ -48,15 +50,17 @@ Menu onTriggered: CuraActions.setBuildPlateForSelection(Cura.BuildPlateModel.getItem(index).buildPlateNumber); checkable: true checked: Cura.BuildPlateModel.getItem(index).buildPlateNumber == Cura.BuildPlateModel.activeBuildPlate + visible: UM.Preferences.getValue("cura/use_multi_build_plate") } onObjectAdded: base.insertItem(index, object); - onObjectRemoved: base.removeItem(object) + onObjectRemoved: base.removeItem(object); } MenuItem { text: "New build plate"; onTriggered: CuraActions.setBuildPlateForSelection(Cura.BuildPlateModel.maxBuildPlate + 1); checkable: true checked: false + visible: UM.Preferences.getValue("cura/use_multi_build_plate") } // Global actions diff --git a/resources/qml/Menus/ViewMenu.qml b/resources/qml/Menus/ViewMenu.qml index a78e465c85..7c7060b1f0 100644 --- a/resources/qml/Menus/ViewMenu.qml +++ b/resources/qml/Menus/ViewMenu.qml @@ -31,7 +31,9 @@ Menu MenuSeparator {} MenuItem { action: Cura.Actions.homeCamera; } - MenuSeparator {} + MenuSeparator { + visible: UM.Preferences.getValue("cura/use_multi_build_plate") + } Instantiator { model: Cura.BuildPlateModel @@ -41,6 +43,7 @@ Menu checkable: true; checked: Cura.BuildPlateModel.getItem(index).buildPlateNumber == Cura.BuildPlateModel.activeBuildPlate; exclusiveGroup: buildPlateGroup; + visible: UM.Preferences.getValue("cura/use_multi_build_plate") } onObjectAdded: base.insertItem(index, object); onObjectRemoved: base.removeItem(object) diff --git a/resources/qml/Preferences/GeneralPage.qml b/resources/qml/Preferences/GeneralPage.qml index c74fb5720d..197e22fb53 100644 --- a/resources/qml/Preferences/GeneralPage.qml +++ b/resources/qml/Preferences/GeneralPage.qml @@ -454,12 +454,26 @@ UM.PreferencesPage UM.TooltipArea { width: childrenRect.width height: childrenRect.height - text: catalog.i18nc("@info:tooltip","Should newly loaded models be arranged on the build palte?") + text: catalog.i18nc("@info:tooltip","Use multi build plate functionality (EXPERIMENTAL)") + + CheckBox + { + id: useMultiBuildPlateCheckbox + text: catalog.i18nc("@option:check","Use multi build plate functionality (EXPERIMENTAL, restart)") + checked: boolCheck(UM.Preferences.getValue("cura/use_multi_build_plate")) + onCheckedChanged: UM.Preferences.setValue("cura/use_multi_build_plate", checked) + } + } + + UM.TooltipArea { + width: childrenRect.width + height: childrenRect.height + text: catalog.i18nc("@info:tooltip","Should newly loaded models be arranged on the build plate? Used in conjunction with multi build plate (EXPERIMENTAL)") CheckBox { id: arrangeOnLoadCheckbox - text: catalog.i18nc("@option:check","Arrange objects on load") + text: catalog.i18nc("@option:check","Arrange objects on load (EXPERIMENTAL)") checked: boolCheck(UM.Preferences.getValue("cura/arrange_objects_on_load")) onCheckedChanged: UM.Preferences.setValue("cura/arrange_objects_on_load", checked) } From 228039545bb4eab3134a1fd75507e2b010749ec3 Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Thu, 16 Nov 2017 09:58:53 +0100 Subject: [PATCH 030/124] CURA-4525 send active build plate to legacy UM3 with Print over network --- plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py | 3 ++- resources/qml/Actions.qml | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py b/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py index d8dd780ed5..8895d1c22d 100755 --- a/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py +++ b/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py @@ -675,7 +675,8 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice): Application.getInstance().showPrintMonitor.emit(True) self._print_finished = True self.writeStarted.emit(self) - self._gcode = getattr(Application.getInstance().getController().getScene(), "gcode_list") + active_build_plate = Application.getInstance().getBuildPlateModel().activeBuildPlate + self._gcode = getattr(Application.getInstance().getController().getScene(), "gcode_list")[active_build_plate] print_information = Application.getInstance().getPrintInformation() warnings = [] # There might be multiple things wrong. Keep a list of all the stuff we need to warn about. diff --git a/resources/qml/Actions.qml b/resources/qml/Actions.qml index c6b0a443bb..e2db0171b1 100644 --- a/resources/qml/Actions.qml +++ b/resources/qml/Actions.qml @@ -306,7 +306,7 @@ Item id: arrangeAllBuildPlatesAction; text: catalog.i18nc("@action:inmenu menubar:edit","Arrange All Models To All Build Plates"); //iconName: "document-open"; - onTriggered: CuraApplication.arrangeObjectsToAllBuildPlates(); + onTriggered: Printer.arrangeObjectsToAllBuildPlates(); } Action From 579f2b5ec6b6e57766bd6a5a3c083045601d421d Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Thu, 16 Nov 2017 16:34:12 +0100 Subject: [PATCH 031/124] CURA-4525 prepare for print all or single build plate question --- .../UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py b/plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py index 14a60a6b22..2f56561295 100644 --- a/plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py +++ b/plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py @@ -255,7 +255,8 @@ class NetworkClusterPrinterOutputDevice(NetworkPrinterOutputDevice.NetworkPrinte self._request_job = [nodes, file_name, filter_by_machine, file_handler, kwargs] # the build plates to be sent - self._job_list = list(getattr(Application.getInstance().getController().getScene(), "gcode_list").keys()) + gcodes = getattr(Application.getInstance().getController().getScene(), "gcode_list") + self._job_list = list(gcodes.keys()) Logger.log("d", "build plates to be sent to printer: %s", (self._job_list)) if self._stage != OutputStage.ready: @@ -268,7 +269,7 @@ class NetworkClusterPrinterOutputDevice(NetworkPrinterOutputDevice.NetworkPrinte return self._add_build_plate_number = len(self._job_list) > 1 - if len(self._printers) > 1: + if len(self._printers) > 1 or len(gcodes) > 1: self.spawnPrintView() # Ask user how to print it. elif len(self._printers) == 1: # If there is only one printer, don't bother asking. From 948301c531e776dc0fdf82659153ddaab64dd22c Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 12 Dec 2017 09:28:42 +0100 Subject: [PATCH 032/124] Remove duplicate setting definition I think this was a merge conflict. Contributes to issue CURA-4523. --- resources/definitions/fdmprinter.def.json | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 46991dd6e6..fcd73bdf00 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -4226,16 +4226,6 @@ "limit_to_extruder": "support_infill_extruder_nr", "enabled": "support_enable and support_use_towers", "settable_per_mesh": true - }, - "remove_empty_first_layers": - { - "label": "Remove Empty First Layers", - "description": "Remove empty layers beneath the first printed layer if they are present. Disabling this setting can cause empty first layers if the Slicing Tolerance setting is set to Exclusive or Middle.", - "type": "bool", - "default_value": true, - "enabled": "not support_enable and not support_tree_enable", - "settable_per_mesh": false, - "settable_per_extruder": false } } }, From 2451e903706f7ca92ed7b3048218cabec123a3e2 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 18 Dec 2017 09:57:03 +0100 Subject: [PATCH 033/124] Increase default resolution for tree support Otherwise you get lines falling completely next to the previous layer. Contributes to issue CURA-4523. --- 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 fcd73bdf00..8438bf1fa3 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -3869,7 +3869,7 @@ "minimum_value_warning": "support_line_width / 4", "maximum_value_warning": "support_line_width * 2", "default_value": 0.4, - "value": "support_line_width", + "value": "support_line_width / 2", "limit_to_extruder": "support_infill_extruder_nr", "enabled": "support_tree_enable and support_tree_branch_diameter_angle > 0", "settable_per_mesh": false, From f538c3a6863a6327d81d46645e30712024afc376 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 18 Dec 2017 14:53:24 +0100 Subject: [PATCH 034/124] Allow support bottom extruder to be set with tree support It is now implemented. Contributes to issue CURA-4523. --- resources/definitions/fdmprinter.def.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 8438bf1fa3..cfad51eeb5 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -3546,7 +3546,7 @@ "type": "extruder", "default_value": "0", "value": "support_interface_extruder_nr", - "enabled": "support_enable and machine_extruder_count > 1", + "enabled": "(support_enable or support_tree_enable) and machine_extruder_count > 1", "settable_per_mesh": false, "settable_per_extruder": false } @@ -3963,7 +3963,7 @@ "default_value": false, "value": "extruderValue(support_bottom_extruder_nr, 'support_interface_enable')", "limit_to_extruder": "support_bottom_extruder_nr", - "enabled": "support_enable", + "enabled": "support_enable or support_tree_enable", "settable_per_mesh": true } } @@ -4085,7 +4085,7 @@ "minimum_value": "0", "maximum_value": "100", "limit_to_extruder": "support_bottom_extruder_nr", - "enabled": "support_bottom_enable and support_enable", + "enabled": "support_bottom_enable and (support_enable or support_tree_enable)", "value": "extruderValue(support_bottom_extruder_nr, 'support_interface_density')", "settable_per_mesh": false, "settable_per_extruder": true, @@ -4102,7 +4102,7 @@ "minimum_value_warning": "support_bottom_line_width - 0.0001", "value": "0 if support_bottom_density == 0 else (support_bottom_line_width * 100) / support_bottom_density * (2 if support_bottom_pattern == 'grid' else (3 if support_bottom_pattern == 'triangles' else 1))", "limit_to_extruder": "support_bottom_extruder_nr", - "enabled": "support_bottom_enable and support_enable", + "enabled": "support_bottom_enable and (support_enable or support_tree_enable)", "settable_per_mesh": false, "settable_per_extruder": true } From 97b051907fb90ef991a5f9ed55cd28142c6fe35c Mon Sep 17 00:00:00 2001 From: Mark Burton Date: Mon, 18 Dec 2017 14:52:25 +0000 Subject: [PATCH 035/124] Added infill_enable_travel_optimization setting. Enabling this can greatly reduce the travel time during the printing of infill but it can be expensive to compute so now the user can decide whether to use it or not. --- resources/definitions/fdmprinter.def.json | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 24f7efe373..ae8b93c3bb 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -1853,6 +1853,14 @@ "settable_per_mesh": true } } + }, + "infill_enable_travel_optimization": + { + "label": "Enable Travel Optimization", + "description": "When enabled, the order in which the infill lines are printed is optimized to reduce the distance travelled. The reduction in travel time achieved very much depends on the model being sliced, infill pattern, density, etc. Note that, for some models that have many small areas of infill, the time to slice the model may be greatly increased.", + "type": "bool", + "default_value": false, + "settable_per_mesh": true } } }, From 57a9b709e72d9053fc5d883aff6fbd45e24f66c2 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Tue, 19 Dec 2017 12:14:58 +0100 Subject: [PATCH 036/124] Select text when gaining focus --- resources/qml/Settings/SettingTextField.qml | 1 + 1 file changed, 1 insertion(+) diff --git a/resources/qml/Settings/SettingTextField.qml b/resources/qml/Settings/SettingTextField.qml index 8a51f2baff..b87c8a05c8 100644 --- a/resources/qml/Settings/SettingTextField.qml +++ b/resources/qml/Settings/SettingTextField.qml @@ -17,6 +17,7 @@ SettingItem { textHasChanged = false; textBeforeEdit = focusItem.text; + focusItem.selectAll(); } contents: Rectangle From 312bd137c221194a7cfa97db4117495ff9d3a529 Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Thu, 21 Dec 2017 11:03:32 +0100 Subject: [PATCH 037/124] Fix merge error, a variable got renamed. CURA-4525 --- cura/PrintInformation.py | 1 - 1 file changed, 1 deletion(-) diff --git a/cura/PrintInformation.py b/cura/PrintInformation.py index 72613fb7ef..60d3c11a49 100644 --- a/cura/PrintInformation.py +++ b/cura/PrintInformation.py @@ -74,7 +74,6 @@ class PrintInformation(QObject): Application.getInstance().globalContainerStackChanged.connect(self._updateJobName) Application.getInstance().fileLoaded.connect(self.setBaseName) - Application.getInstance().projectFileLoaded.connect(self.setProjectName) Application.getInstance().getBuildPlateModel().activeBuildPlateChanged.connect(self._onActiveBuildPlateChanged) Application.getInstance().workspaceLoaded.connect(self.setProjectName) From a47107448ef1476f94ed9406568d4dae24473670 Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Thu, 21 Dec 2017 11:39:37 +0100 Subject: [PATCH 038/124] Moved objects menu to lower left and made it collapsible. CURA-4525 --- .../ProcessSlicedLayersJob.py | 2 +- resources/qml/Cura.qml | 40 ++------------ resources/qml/ObjectsList.qml | 55 +++++++++++++------ resources/themes/cura-light/theme.json | 4 +- 4 files changed, 47 insertions(+), 54 deletions(-) diff --git a/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py b/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py index 077e81f8dc..5f632768ec 100644 --- a/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py +++ b/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py @@ -69,7 +69,7 @@ class ProcessSlicedLayersJob(Job): return self._build_plate_number def run(self): - Logger.log("d", "########## Processing new layer for [%s]..." % self._build_plate_number) + Logger.log("d", "Processing new layer for build plate %s..." % self._build_plate_number) start_time = time() view = Application.getInstance().getController().getActiveView() if view.getPluginId() == "SimulationView": diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index 9f3ccb67c5..ec9773679a 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -348,7 +348,6 @@ UM.MainWindow Button { id: openFileButton; - visible: !UM.Preferences.getValue("cura/use_multi_build_plate") text: catalog.i18nc("@action:button","Open File"); iconSource: UM.Theme.getIcon("load") style: UM.Theme.styles.tool_button @@ -362,25 +361,6 @@ UM.MainWindow action: Cura.Actions.open; } - Button - { - id: objectsButton; - visible: UM.Preferences.getValue("cura/use_multi_build_plate") - - text: catalog.i18nc("@action:button","Objects list"); - iconSource: UM.Theme.getIcon("plus") - style: UM.Theme.styles.tool_button - tooltip: ''; - anchors - { - top: topbar.bottom; - //top: openFileButton.bottom; - topMargin: UM.Theme.getSize("default_margin").height; - left: parent.left; - } - action: triggerObjectsList; - } - Toolbar { id: toolbar; @@ -389,32 +369,24 @@ UM.MainWindow property int mouseY: base.mouseY anchors { - top: objectsButton.bottom; + top: openFileButton.bottom; topMargin: UM.Theme.getSize("window_margin").height; left: parent.left; } } - Action - { - id: triggerObjectsList; - text: catalog.i18nc("@action:inmenu menubar:file","&Open File(s)..."); - iconName: "document-open"; - shortcut: StandardKey.Open; - onTriggered: objectsList.visible = !objectsList.visible; - } - ObjectsList { id: objectsList; - visible: false; - //z: -10; + visible: UM.Preferences.getValue("cura/use_multi_build_plate"); anchors { - top: objectsButton.top; - left: objectsButton.right; + bottom: parent.bottom; + left: parent.left; leftMargin: UM.Theme.getSize("default_margin").width; rightMargin: UM.Theme.getSize("default_margin").width; + topMargin: UM.Theme.getSize("default_margin").height; + bottomMargin: UM.Theme.getSize("default_margin").height; } } diff --git a/resources/qml/ObjectsList.qml b/resources/qml/ObjectsList.qml index bf7d92c4d6..e0e7e08820 100644 --- a/resources/qml/ObjectsList.qml +++ b/resources/qml/ObjectsList.qml @@ -19,25 +19,43 @@ Rectangle color: UM.Theme.getColor("tool_panel_background") width: UM.Theme.getSize("objects_menu_size").width - height: UM.Theme.getSize("objects_menu_size").height + height: { + if (collapsed) { + return UM.Theme.getSize("objects_menu_size_collapsed").height; + } else { + return UM.Theme.getSize("objects_menu_size").height; + } + } + + property bool collapsed: false; SystemPalette { id: palette } - Button - { - id: openFileButton; - text: catalog.i18nc("@action:button","Open File"); - iconSource: UM.Theme.getIcon("load") - style: UM.Theme.styles.tool_button - tooltip: ''; - anchors + Button { + id: collapseButton + anchors.top: parent.top + anchors.topMargin: Math.floor(UM.Theme.getSize("default_margin").height + (UM.Theme.getSize("layerview_row").height - UM.Theme.getSize("default_margin").height) / 2) + anchors.right: parent.right + anchors.rightMargin: UM.Theme.getSize("default_margin").width + + width: UM.Theme.getSize("standard_arrow").width + height: UM.Theme.getSize("standard_arrow").height + + onClicked: collapsed = !collapsed + + style: ButtonStyle { - top: parent.top; - topMargin: UM.Theme.getSize("default_margin").height; - left: parent.left; - leftMargin: UM.Theme.getSize("default_margin").height; + background: UM.RecolorImage + { + width: control.width + height: control.height + sourceSize.width: width + sourceSize.height: width + color: UM.Theme.getColor("setting_control_text") + source: collapsed ? UM.Theme.getIcon("arrow_left") : UM.Theme.getIcon("arrow_bottom") + } + label: Label{ } } - action: Cura.Actions.open; } Component { @@ -86,11 +104,12 @@ Rectangle { id: objectsList frameVisible: true + visible: !collapsed width: parent.width - 2 * UM.Theme.getSize("default_margin").height anchors { - top: openFileButton.bottom; + top: collapseButton.bottom; topMargin: UM.Theme.getSize("default_margin").height; left: parent.left; leftMargin: UM.Theme.getSize("default_margin").height; @@ -118,10 +137,11 @@ Rectangle CheckBox { id: filterBuildPlateCheckbox + visible: !collapsed checked: boolCheck(UM.Preferences.getValue("view/filter_current_build_plate")) onClicked: UM.Preferences.setValue("view/filter_current_build_plate", checked) - text: catalog.i18nc("@option:check","Filter active build plate"); + text: catalog.i18nc("@option:check","See only current build plate"); anchors { @@ -133,7 +153,6 @@ Rectangle } } - Component { id: buildPlateDelegate Rectangle @@ -167,7 +186,7 @@ Rectangle { id: buildPlateSelection frameVisible: true - height: 100 + height: UM.Theme.getSize("build_plate_selection_size").height width: parent.width - 2 * UM.Theme.getSize("default_margin").height anchors diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index e7e1a377f5..714e578d97 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -393,6 +393,8 @@ "jobspecs_line": [2.0, 2.0], - "objects_menu_size": [20, 40] + "objects_menu_size": [17, 40], + "objects_menu_size_collapsed": [15, 15], + "build_plate_selection_size": [15, 5] } } From 1ca6fa0daa240f9bac2cf5a431bbb82d43473af7 Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Thu, 21 Dec 2017 11:40:59 +0100 Subject: [PATCH 039/124] Different arrow for collapsing. CURA-4525 --- resources/qml/ObjectsList.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/ObjectsList.qml b/resources/qml/ObjectsList.qml index e0e7e08820..95979961c0 100644 --- a/resources/qml/ObjectsList.qml +++ b/resources/qml/ObjectsList.qml @@ -52,7 +52,7 @@ Rectangle sourceSize.width: width sourceSize.height: width color: UM.Theme.getColor("setting_control_text") - source: collapsed ? UM.Theme.getIcon("arrow_left") : UM.Theme.getIcon("arrow_bottom") + source: collapsed ? UM.Theme.getIcon("arrow_top") : UM.Theme.getIcon("arrow_bottom") } label: Label{ } } From 4b5097f99831fb49d0c4db3201bcd211225684a2 Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Thu, 21 Dec 2017 12:41:06 +0100 Subject: [PATCH 040/124] Objects menu now collapses animated and it has a border. CURA-4525 --- resources/qml/ObjectsList.qml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/resources/qml/ObjectsList.qml b/resources/qml/ObjectsList.qml index 95979961c0..b67c0c0bec 100644 --- a/resources/qml/ObjectsList.qml +++ b/resources/qml/ObjectsList.qml @@ -26,6 +26,10 @@ Rectangle return UM.Theme.getSize("objects_menu_size").height; } } + Behavior on height { NumberAnimation { duration: 100 } } + + border.width: UM.Theme.getSize("default_lining").width + border.color: UM.Theme.getColor("lining") property bool collapsed: false; From c05e6b43fff33148ce75230441edacbd8b4d5895 Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Thu, 21 Dec 2017 13:11:32 +0100 Subject: [PATCH 041/124] Fixed platform physics. CURA-4525 --- cura/PlatformPhysics.py | 2 +- plugins/CuraEngineBackend/CuraEngineBackend.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cura/PlatformPhysics.py b/cura/PlatformPhysics.py index 23197dac24..cc2074cc3e 100755 --- a/cura/PlatformPhysics.py +++ b/cura/PlatformPhysics.py @@ -60,7 +60,7 @@ class PlatformPhysics: random.shuffle(nodes) for node in nodes: - if node is root or type(node) is not SceneNode or node.getBoundingBox() is None: + if node is root or not issubclass(type(node), SceneNode) or node.getBoundingBox() is None: continue bbox = node.getBoundingBox() diff --git a/plugins/CuraEngineBackend/CuraEngineBackend.py b/plugins/CuraEngineBackend/CuraEngineBackend.py index 9d7cb62a8e..473dbee31a 100755 --- a/plugins/CuraEngineBackend/CuraEngineBackend.py +++ b/plugins/CuraEngineBackend/CuraEngineBackend.py @@ -213,7 +213,7 @@ class CuraEngineBackend(QObject, Backend): Logger.log("d", "Going to slice build plate [%s]!" % build_plate_to_be_sliced) num_objects = self._numObjects() if build_plate_to_be_sliced not in num_objects or num_objects[build_plate_to_be_sliced] == 0: - Logger.log("d", " ## Build plate %s has 0 objects to be sliced, skipping", build_plate_to_be_sliced) + Logger.log("d", "Build plate %s has 0 objects to be sliced, skipping", build_plate_to_be_sliced) self._invokeSlice() return From 9f8eae006c77000f3d17c9cb3b4c5873ac6cec4d Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Thu, 21 Dec 2017 13:15:10 +0100 Subject: [PATCH 042/124] Fix push free. CURA-4525 --- cura/PlatformPhysics.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/PlatformPhysics.py b/cura/PlatformPhysics.py index cc2074cc3e..5a57912db6 100755 --- a/cura/PlatformPhysics.py +++ b/cura/PlatformPhysics.py @@ -80,7 +80,7 @@ class PlatformPhysics: # Check for collisions between convex hulls for other_node in BreadthFirstIterator(root): # Ignore root, ourselves and anything that is not a normal SceneNode. - if other_node is root or type(other_node) is not SceneNode or other_node is node: + if other_node is root or not issubclass(type(other_node), SceneNode) or other_node is node: continue # Ignore collisions of a group with it's own children From 08391250765dc1a01780421a1db86bf13294b85c Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Thu, 21 Dec 2017 13:31:19 +0100 Subject: [PATCH 043/124] Fix platform physics not working across different build plates. CURA-4525 --- cura/PlatformPhysics.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cura/PlatformPhysics.py b/cura/PlatformPhysics.py index 5a57912db6..43118c5d01 100755 --- a/cura/PlatformPhysics.py +++ b/cura/PlatformPhysics.py @@ -57,6 +57,7 @@ class PlatformPhysics: # Only check nodes inside build area. nodes = [node for node in nodes if (hasattr(node, "_outside_buildarea") and not node._outside_buildarea)] + active_build_plate = Application.getInstance().getBuildPlateModel().activeBuildPlate random.shuffle(nodes) for node in nodes: @@ -80,7 +81,7 @@ class PlatformPhysics: # Check for collisions between convex hulls for other_node in BreadthFirstIterator(root): # Ignore root, ourselves and anything that is not a normal SceneNode. - if other_node is root or not issubclass(type(other_node), SceneNode) or other_node is node: + if other_node is root or not issubclass(type(other_node), SceneNode) or other_node is node or other_node.callDecoration("getBuildPlateNumber") != node.callDecoration("getBuildPlateNumber"): continue # Ignore collisions of a group with it's own children From fda4badab154e4dcf74e7ec3eca26c5800f9205d Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Thu, 21 Dec 2017 15:08:46 +0100 Subject: [PATCH 044/124] Checked build plates in context menu now actually match the selected item's build plates; changed collapse arrow. CURA-4525 --- cura/BuildPlateModel.py | 16 ++++++++++++++++ resources/qml/Menus/ContextMenu.qml | 7 +++++-- resources/qml/ObjectsList.qml | 2 +- 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/cura/BuildPlateModel.py b/cura/BuildPlateModel.py index a29dd65de4..c832a7c522 100644 --- a/cura/BuildPlateModel.py +++ b/cura/BuildPlateModel.py @@ -2,6 +2,7 @@ from UM.Qt.ListModel import ListModel from PyQt5.QtCore import pyqtSignal, pyqtProperty, pyqtSlot from UM.Scene.Iterator.DepthFirstIterator import DepthFirstIterator from UM.Scene.SceneNode import SceneNode +from UM.Scene.Selection import Selection from UM.Logger import Logger from UM.Application import Application @@ -9,13 +10,17 @@ from UM.Application import Application class BuildPlateModel(ListModel): maxBuildPlateChanged = pyqtSignal() activeBuildPlateChanged = pyqtSignal() + selectionChanged = pyqtSignal() def __init__(self): super().__init__() Application.getInstance().getController().getScene().sceneChanged.connect(self.updateMaxBuildPlate) # it may be a bit inefficient when changing a lot simultaneously + Application.getInstance().getController().getScene().sceneChanged.connect(self._updateSelectedObjectBuildPlateNumbers) + Selection.selectionChanged.connect(self._updateSelectedObjectBuildPlateNumbers) self._max_build_plate = 1 # default self._active_build_plate = -1 + self._selection_build_plates = [] @pyqtSlot(int) def setActiveBuildPlate(self, nr): @@ -60,3 +65,14 @@ class BuildPlateModel(ListModel): @staticmethod def createBuildPlateModel(): return BuildPlateModel() + + def _updateSelectedObjectBuildPlateNumbers(self, *args): + result = set() + for node in Selection.getAllSelectedObjects(): + result.add(node.callDecoration("getBuildPlateNumber")) + self._selection_build_plates = list(result) + self.selectionChanged.emit() + + @pyqtProperty("QVariantList", notify = selectionChanged) + def selectionBuildPlates(self): + return self._selection_build_plates diff --git a/resources/qml/Menus/ContextMenu.qml b/resources/qml/Menus/ContextMenu.qml index a80de2d8a7..910f0a951a 100644 --- a/resources/qml/Menus/ContextMenu.qml +++ b/resources/qml/Menus/ContextMenu.qml @@ -49,7 +49,7 @@ Menu text: Cura.BuildPlateModel.getItem(index).name; onTriggered: CuraActions.setBuildPlateForSelection(Cura.BuildPlateModel.getItem(index).buildPlateNumber); checkable: true - checked: Cura.BuildPlateModel.getItem(index).buildPlateNumber == Cura.BuildPlateModel.activeBuildPlate + checked: Cura.BuildPlateModel.selectionBuildPlates.indexOf(Cura.BuildPlateModel.getItem(index).buildPlateNumber) != -1; visible: UM.Preferences.getValue("cura/use_multi_build_plate") } onObjectAdded: base.insertItem(index, object); @@ -57,7 +57,10 @@ Menu } MenuItem { text: "New build plate"; - onTriggered: CuraActions.setBuildPlateForSelection(Cura.BuildPlateModel.maxBuildPlate + 1); + onTriggered: { + CuraActions.setBuildPlateForSelection(Cura.BuildPlateModel.maxBuildPlate + 1); + checked = false; + } checkable: true checked: false visible: UM.Preferences.getValue("cura/use_multi_build_plate") diff --git a/resources/qml/ObjectsList.qml b/resources/qml/ObjectsList.qml index b67c0c0bec..ac99d6b0ef 100644 --- a/resources/qml/ObjectsList.qml +++ b/resources/qml/ObjectsList.qml @@ -56,7 +56,7 @@ Rectangle sourceSize.width: width sourceSize.height: width color: UM.Theme.getColor("setting_control_text") - source: collapsed ? UM.Theme.getIcon("arrow_top") : UM.Theme.getIcon("arrow_bottom") + source: collapsed ? UM.Theme.getIcon("arrow_left") : UM.Theme.getIcon("arrow_bottom") } label: Label{ } } From 24ad68aeb5b1c28f47ac81dd320939a75092c291 Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Thu, 21 Dec 2017 15:13:12 +0100 Subject: [PATCH 045/124] Fix initial state of 'See only current build plate'. CURA-4525 --- resources/qml/ObjectsList.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/ObjectsList.qml b/resources/qml/ObjectsList.qml index ac99d6b0ef..e688928570 100644 --- a/resources/qml/ObjectsList.qml +++ b/resources/qml/ObjectsList.qml @@ -142,7 +142,7 @@ Rectangle { id: filterBuildPlateCheckbox visible: !collapsed - checked: boolCheck(UM.Preferences.getValue("view/filter_current_build_plate")) + checked: UM.Preferences.getValue("view/filter_current_build_plate") onClicked: UM.Preferences.setValue("view/filter_current_build_plate", checked) text: catalog.i18nc("@option:check","See only current build plate"); From 9ff15bf72d49f24cd77613f5830f949aa0662e11 Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Thu, 21 Dec 2017 15:42:23 +0100 Subject: [PATCH 046/124] Fixed not always updating objects list when changing build plate number by adding signals. CURA-4525 --- cura/Scene/BuildPlateDecorator.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cura/Scene/BuildPlateDecorator.py b/cura/Scene/BuildPlateDecorator.py index cfbe792699..6a288b4bcd 100644 --- a/cura/Scene/BuildPlateDecorator.py +++ b/cura/Scene/BuildPlateDecorator.py @@ -14,9 +14,13 @@ class BuildPlateDecorator(SceneNodeDecorator): # Make sure that groups are set correctly # setBuildPlateForSelection in CuraActions makes sure that no single childs are set. self._build_plate_number = nr + if self._node is not None: + self._node.transformationChanged.emit() + #self._node.transformationChanged.emit() if self._node and self._node.callDecoration("isGroup"): for child in self._node.getChildren(): child.callDecoration("setBuildPlateNumber", nr) + child.transformationChanged.emit() def getBuildPlateNumber(self): return self._build_plate_number From 2c831ceb05fe46993ebcbd81ec28b7dc8e232faa Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Thu, 21 Dec 2017 15:47:40 +0100 Subject: [PATCH 047/124] For this version, send all build plates. No print view when multiple build plates. CURA-4525 --- plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py b/plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py index 1b029903b7..05069d1c0d 100644 --- a/plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py +++ b/plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py @@ -259,7 +259,7 @@ class NetworkClusterPrinterOutputDevice(NetworkPrinterOutputDevice.NetworkPrinte self._add_build_plate_number = len(self._job_list) > 1 self.writeStarted.emit(self) # Allow postprocessing before sending data to the printer - if len(self._printers) > 1 or len(gcodes) > 1: + if len(self._printers) > 1: self.spawnPrintView() # Ask user how to print it. elif len(self._printers) == 1: # If there is only one printer, don't bother asking. From 663ceab0699d1bae2aaab8895d81dbdc3cd0e813 Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Thu, 21 Dec 2017 16:53:43 +0100 Subject: [PATCH 048/124] Undo emit transformationChanges (caused a crash), themed objects in objects list. CURA-4525 --- cura/ArrangeObjectsAllBuildPlatesJob.py | 2 -- cura/BuildPlateModel.py | 6 +++++- cura/Scene/BuildPlateDecorator.py | 10 +++++----- resources/qml/Actions.qml | 1 - resources/qml/ObjectsList.qml | 10 ++++++---- resources/themes/cura-light/theme.json | 5 +++-- 6 files changed, 19 insertions(+), 15 deletions(-) diff --git a/cura/ArrangeObjectsAllBuildPlatesJob.py b/cura/ArrangeObjectsAllBuildPlatesJob.py index 7991ac39f0..f062c2b23b 100644 --- a/cura/ArrangeObjectsAllBuildPlatesJob.py +++ b/cura/ArrangeObjectsAllBuildPlatesJob.py @@ -34,8 +34,6 @@ class ArrangeArray: if a.isEmpty: self._first_empty = i self._has_empty = True - - Logger.log("d", "lala %s %s", self._first_empty, self._has_empty) return self._first_empty = None self._has_empty = False diff --git a/cura/BuildPlateModel.py b/cura/BuildPlateModel.py index c832a7c522..118a5ce271 100644 --- a/cura/BuildPlateModel.py +++ b/cura/BuildPlateModel.py @@ -40,7 +40,11 @@ class BuildPlateModel(ListModel): def maxBuildPlate(self): return self._max_build_plate - def updateMaxBuildPlate(self, source): + def updateMaxBuildPlate(self, *args): + if args: + source = args[0] + else: + source = None if not issubclass(type(source), SceneNode): return max_build_plate = self._calcMaxBuildPlate() diff --git a/cura/Scene/BuildPlateDecorator.py b/cura/Scene/BuildPlateDecorator.py index 6a288b4bcd..36b89c5e5d 100644 --- a/cura/Scene/BuildPlateDecorator.py +++ b/cura/Scene/BuildPlateDecorator.py @@ -1,6 +1,5 @@ from UM.Scene.SceneNodeDecorator import SceneNodeDecorator -from UM.Application import Application -from UM.Logger import Logger +from UM.Scene.SceneNode import SceneNode ## Make a SceneNode build plate aware CuraSceneNode objects all have this decorator. @@ -14,13 +13,14 @@ class BuildPlateDecorator(SceneNodeDecorator): # Make sure that groups are set correctly # setBuildPlateForSelection in CuraActions makes sure that no single childs are set. self._build_plate_number = nr - if self._node is not None: - self._node.transformationChanged.emit() + # if issubclass(type(self._node), SceneNode): # TODO: Crashes on ArrangeObjectsAllBuildPlatesJob + # self._node.transformationChanged.emit() #self._node.transformationChanged.emit() if self._node and self._node.callDecoration("isGroup"): for child in self._node.getChildren(): child.callDecoration("setBuildPlateNumber", nr) - child.transformationChanged.emit() + # if issubclass(type(child), SceneNode): + # child.transformationChanged.emit() def getBuildPlateNumber(self): return self._build_plate_number diff --git a/resources/qml/Actions.qml b/resources/qml/Actions.qml index 0727642d7e..93861c0963 100644 --- a/resources/qml/Actions.qml +++ b/resources/qml/Actions.qml @@ -316,7 +316,6 @@ Item { id: arrangeAllBuildPlatesAction; text: catalog.i18nc("@action:inmenu menubar:edit","Arrange All Models To All Build Plates"); - //iconName: "document-open"; onTriggered: Printer.arrangeObjectsToAllBuildPlates(); } diff --git a/resources/qml/ObjectsList.qml b/resources/qml/ObjectsList.qml index e688928570..761ff6d3f5 100644 --- a/resources/qml/ObjectsList.qml +++ b/resources/qml/ObjectsList.qml @@ -146,6 +146,7 @@ Rectangle onClicked: UM.Preferences.setValue("view/filter_current_build_plate", checked) text: catalog.i18nc("@option:check","See only current build plate"); + style: UM.Theme.styles.checkbox; anchors { @@ -192,6 +193,7 @@ Rectangle frameVisible: true height: UM.Theme.getSize("build_plate_selection_size").height width: parent.width - 2 * UM.Theme.getSize("default_margin").height + style: UM.Theme.styles.scrollview anchors { @@ -222,9 +224,8 @@ Rectangle { id: arrangeAllBuildPlatesButton; text: catalog.i18nc("@action:button","Arrange to all build plates"); - //iconSource: UM.Theme.getIcon("load") - //style: UM.Theme.styles.tool_button - height: 25 + style: UM.Theme.styles.sidebar_action_button + height: UM.Theme.getSize("objects_menu_button").height; tooltip: ''; anchors { @@ -244,7 +245,8 @@ Rectangle { id: arrangeBuildPlateButton; text: catalog.i18nc("@action:button","Arrange current build plate"); - height: 25 + style: UM.Theme.styles.sidebar_action_button + height: UM.Theme.getSize("objects_menu_button").height; tooltip: ''; anchors { diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 714e578d97..18f2650e77 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -393,8 +393,9 @@ "jobspecs_line": [2.0, 2.0], - "objects_menu_size": [17, 40], + "objects_menu_size": [20, 40], "objects_menu_size_collapsed": [15, 15], - "build_plate_selection_size": [15, 5] + "build_plate_selection_size": [15, 5], + "objects_menu_button": [0.3, 2.7] } } From ed8f73765ee6aa772c1fd8382af0c414aab22d73 Mon Sep 17 00:00:00 2001 From: TheAssassin Date: Fri, 22 Dec 2017 02:11:34 +0100 Subject: [PATCH 049/124] Reduce amount of movements after print At the moment, the base plate is moved to the end stops, which moves the head to the front of the base plate (at least for stock printers, but most likely for modified ones, too), making the object inaccessible. This has been fixed by moving the base plate to the back after this step. That eliminates the need for the X/Y homing, hence it got removed from the after print code. Also, before these changes, the "steppers off" command was pretty pointless, as the final move was performed after this step. This is not necessarily a problem, but can be annoying when trying to move the base plate or extruder after the print by hand. All in all some useful changes. --- resources/definitions/tevo_tarantula.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/tevo_tarantula.def.json b/resources/definitions/tevo_tarantula.def.json index 097281aaeb..09a9a4a0f4 100644 --- a/resources/definitions/tevo_tarantula.def.json +++ b/resources/definitions/tevo_tarantula.def.json @@ -66,7 +66,7 @@ "default_value": "G21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 X0 Y0 ;move X/Y to min endstops\nG28 Z0 ;move Z to min endstops\nG1 Z15.0 F9000 ;move the platform down 15mm\nG92 E0 ;zero the extruded length\nG1 F200 E3 ;extrude 3mm of feed stock\nG92 E0 ;zero the extruded length again\nG1 F9000\n;Put printing message on LCD screen\nM117 Printing..." }, "machine_end_gcode": { - "default_value": "M104 S0 ;extruder heater off\nM140 S0 ;heated bed heater off (if you have it)\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+0.5 E-5 X-20 Y-20 F9000 ;move Z up a bit and retract filament even more\nG28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\nM84 ;steppers off\nG90 ;absolute positioning\nG1 Y200 F3600 ;move baseplate to front for easier access to printed object" + "default_value": "M104 S0 ;extruder heater off\nM140 S0 ;heated bed heater off (if you have it)\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+0.5 E-5 X-20 Y-20 F9000 ;move Z up a bit and retract filament even more\nG90 ;absolute positioning\nG1 Y200 F3600 ;move extruder out of the way by moving the baseplate to the front for easier access to printed object\nM84 ;steppers off" } } } From a63ad41676bfafd30c227b91cdb344e667efe0e5 Mon Sep 17 00:00:00 2001 From: TheAssassin Date: Sun, 24 Dec 2017 22:14:45 +0100 Subject: [PATCH 050/124] Move extruder to X0 --- resources/definitions/tevo_tarantula.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/tevo_tarantula.def.json b/resources/definitions/tevo_tarantula.def.json index 09a9a4a0f4..a9f9cefff2 100644 --- a/resources/definitions/tevo_tarantula.def.json +++ b/resources/definitions/tevo_tarantula.def.json @@ -66,7 +66,7 @@ "default_value": "G21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 X0 Y0 ;move X/Y to min endstops\nG28 Z0 ;move Z to min endstops\nG1 Z15.0 F9000 ;move the platform down 15mm\nG92 E0 ;zero the extruded length\nG1 F200 E3 ;extrude 3mm of feed stock\nG92 E0 ;zero the extruded length again\nG1 F9000\n;Put printing message on LCD screen\nM117 Printing..." }, "machine_end_gcode": { - "default_value": "M104 S0 ;extruder heater off\nM140 S0 ;heated bed heater off (if you have it)\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+0.5 E-5 X-20 Y-20 F9000 ;move Z up a bit and retract filament even more\nG90 ;absolute positioning\nG1 Y200 F3600 ;move extruder out of the way by moving the baseplate to the front for easier access to printed object\nM84 ;steppers off" + "default_value": "M104 S0 ;extruder heater off\nM140 S0 ;heated bed heater off (if you have it)\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+0.5 E-5 X-20 Y-20 F9000 ;move Z up a bit and retract filament even more\nG90 ;absolute positioning\nG1 X0 Y200 F3600 ;move extruder out of the way by moving the baseplate to the front for easier access to printed object\nM84 ;steppers off" } } } From b733c587f433b4305d8b1bef80b5d0a785d48e76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torbj=C3=B8rn?= Date: Fri, 29 Dec 2017 01:33:12 +0100 Subject: [PATCH 051/124] Adding support Anycubic i3 Mega Definition for _Anycubic i3 Mega_ from the user manual. --- .../definitions/anycubic_i3_mega.def.json | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 resources/definitions/anycubic_i3_mega.def.json diff --git a/resources/definitions/anycubic_i3_mega.def.json b/resources/definitions/anycubic_i3_mega.def.json new file mode 100644 index 0000000000..2ae21b6d80 --- /dev/null +++ b/resources/definitions/anycubic_i3_mega.def.json @@ -0,0 +1,57 @@ +{ + "version":2, + "name":"Anycubic i3 Mega", + "inherits":"fdmprinter", + "metadata":{ + "visible":true, + "author":"TheTobby", + "manufacturer":"Anycubic", + "file_formats":"text/x-gcode", + "icon":"icon_ultimaker2", + "platform":"prusai3_platform.stl" + }, + "overrides":{ + "machine_name":{ + "default_value":"Anycubic i3 Mega" + }, + "machine_heated_bed":{ + "default_value":true + }, + "machine_width":{ + "default_value":210 + }, + "machine_height":{ + "default_value":205 + }, + "machine_depth":{ + "default_value":210 + }, + "machine_center_is_zero":{ + "default_value":false + }, + "machine_nozzle_size":{ + "default_value":0.4 + }, + "material_diameter":{ + "default_value":1.75 + }, + "speed_travel":{ + "default_value":60 + }, + "speed_print":{ + "default_value":50 + }, + "gantry_height":{ + "default_value":0 + }, + "machine_gcode_flavor":{ + "default_value":"RepRap (Marlin/Sprinter)" + }, + "machine_start_gcode":{ + "default_value":"G21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 X0 Y0 ;move X/Y to min endstops\nG28 Z0 ;move Z to min endstops\nG1 Z15.0 F{travel_speed} ;move the platform down 15mm\nG92 E0 ;zero the extruded length\nG1 F200 E3 ;extrude 3mm of feed stock\nG92 E0 ;zero the extruded length again\nG1 F{travel_speed}\nM117 Printing...\nG5" + }, + "machine_end_gcode":{ + "default_value":"M104 S0 ; turn off extruder\nM140 S0 ; turn off bed\nM84 ; disable motors\nM107\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle\nto release some of the pressure\nG1 Z+0.5 E-5 ;X-20 Y-20 F{travel_speed} ;move Z up a bit and retract filament even more\nG28 X0 ;Y0 ;move X/Y to min endstops\nso the head is out of the way\nG1 Y180 F2000\nM84 ;steppers off\nG90\nM300 P300 S4000" + } + } +} \ No newline at end of file From c1dea6e9d43e60d0b4a52ef9929da581e6bfdf60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torbj=C3=B8rn?= Date: Fri, 29 Dec 2017 01:56:46 +0100 Subject: [PATCH 052/124] Adding support Tevo Black Widow Definition for _Tevo Black Widow_ from the user manual. --- .../definitions/tevo_blackwidow.def.json | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 resources/definitions/tevo_blackwidow.def.json diff --git a/resources/definitions/tevo_blackwidow.def.json b/resources/definitions/tevo_blackwidow.def.json new file mode 100644 index 0000000000..f31bbcff23 --- /dev/null +++ b/resources/definitions/tevo_blackwidow.def.json @@ -0,0 +1,57 @@ +{ + "version": 2, + "name": "Tevo Black Widow", + "inherits": "fdmprinter", + "metadata": { + "visible": true, + "author": "TheTobby", + "manufacturer": "Tevo", + "file_formats": "text/x-gcode", + "icon": "icon_ultimaker2", + "platform": "prusai3_platform.stl" + }, + "overrides": { + "machine_name": { + "default_value": "Tevo Black Widow" + }, + "machine_heated_bed": { + "default_value": true + }, + "machine_width": { + "default_value": 350 + }, + "machine_height": { + "default_value": 250 + }, + "machine_depth": { + "default_value": 250 + }, + "machine_center_is_zero": { + "default_value": false + }, + "machine_nozzle_size": { + "default_value": 0.4 + }, + "material_diameter": { + "default_value": 1.75 + }, + "gantry_height": { + "default_value": 0 + }, + "machine_gcode_flavor": { + "default_value": "RepRap (Marlin/Sprinter)" + }, + "speed_travel": { + "default_value": 70 + }, + "speed_print": { + "default_value": 60 + }, + "machine_start_gcode": { + "default_value": "M280 P0 S160 ; release BLTouch alarm (OK to send for Non BLTouch)\M420 Z2 ; set fade leveling at 2mm for BLTouch (OK to send for Non BLTouch)\G28 ; home all\G29 ; probe bed\G92 E0 ;zero the extruded length\G1 X0.0 Y50.0 Z10.0 F3600\; perform wipe and prime\G1 Z0.0 F1000\G1 Z0.2 Y70.0 E9.0 F1000.0 ; prime\G1 Y100.0 E12.5 F1000.0 ; prime\G92 E0 ; zero extruder again\M117 Printing..." + }, + "machine_end_gcode": { + "default_value": "G92 E0 ; zero the extruded length again\G1 E-1.5 F500 ; retract the filament to release some of the pressure\M104 S0 ; turn off extruder\M140 S0 ; turn off bed\G28 X0 ; home X axis\G1 Y245 ; move Y axis to end position\M84 ; disable motors\M107 ; turn off fan" + } + } +} From 8a308ef0dbd4b2d787ba862efd7647e4c1d3089a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torbj=C3=B8rn?= Date: Fri, 29 Dec 2017 19:59:04 +0100 Subject: [PATCH 053/124] Added Quality profiles for Anycubic i3 Mega --- .../definitions/anycubic_i3_mega.def.json | 12 ++-- ...bic_i3_mega_global_Coarse_Quality.inst.cfg | 43 ++++++++++++++ ...cubic_i3_mega_global_High_Quality.inst.cfg | 43 ++++++++++++++ ...bic_i3_mega_global_Normal_Quality.inst.cfg | 43 ++++++++++++++ .../anycubic_i3_mega_petg_coarse.inst.cfg | 59 +++++++++++++++++++ .../petg/anycubic_i3_mega_petg_high.inst.cfg | 59 +++++++++++++++++++ .../anycubic_i3_mega_petg_normal.inst.cfg | 59 +++++++++++++++++++ .../pla/anycubic_i3_mega_pla_coarse.inst.cfg | 59 +++++++++++++++++++ .../pla/anycubic_i3_mega_pla_high.inst.cfg | 59 +++++++++++++++++++ .../pla/anycubic_i3_mega_pla_normal.inst.cfg | 59 +++++++++++++++++++ 10 files changed, 488 insertions(+), 7 deletions(-) create mode 100644 resources/quality/anycubic_i3_mega/anycubic_i3_mega_global_Coarse_Quality.inst.cfg create mode 100644 resources/quality/anycubic_i3_mega/anycubic_i3_mega_global_High_Quality.inst.cfg create mode 100644 resources/quality/anycubic_i3_mega/anycubic_i3_mega_global_Normal_Quality.inst.cfg create mode 100644 resources/quality/anycubic_i3_mega/petg/anycubic_i3_mega_petg_coarse.inst.cfg create mode 100644 resources/quality/anycubic_i3_mega/petg/anycubic_i3_mega_petg_high.inst.cfg create mode 100644 resources/quality/anycubic_i3_mega/petg/anycubic_i3_mega_petg_normal.inst.cfg create mode 100644 resources/quality/anycubic_i3_mega/pla/anycubic_i3_mega_pla_coarse.inst.cfg create mode 100644 resources/quality/anycubic_i3_mega/pla/anycubic_i3_mega_pla_high.inst.cfg create mode 100644 resources/quality/anycubic_i3_mega/pla/anycubic_i3_mega_pla_normal.inst.cfg diff --git a/resources/definitions/anycubic_i3_mega.def.json b/resources/definitions/anycubic_i3_mega.def.json index 2ae21b6d80..5e35ab1fdd 100644 --- a/resources/definitions/anycubic_i3_mega.def.json +++ b/resources/definitions/anycubic_i3_mega.def.json @@ -8,8 +8,12 @@ "manufacturer":"Anycubic", "file_formats":"text/x-gcode", "icon":"icon_ultimaker2", - "platform":"prusai3_platform.stl" + "platform":"prusai3_platform.stl", + "has_materials": true, + "has_machine_quality": true, + "preferred_quality": "*normal*" }, + "overrides":{ "machine_name":{ "default_value":"Anycubic i3 Mega" @@ -34,12 +38,6 @@ }, "material_diameter":{ "default_value":1.75 - }, - "speed_travel":{ - "default_value":60 - }, - "speed_print":{ - "default_value":50 }, "gantry_height":{ "default_value":0 diff --git a/resources/quality/anycubic_i3_mega/anycubic_i3_mega_global_Coarse_Quality.inst.cfg b/resources/quality/anycubic_i3_mega/anycubic_i3_mega_global_Coarse_Quality.inst.cfg new file mode 100644 index 0000000000..721aa4f25b --- /dev/null +++ b/resources/quality/anycubic_i3_mega/anycubic_i3_mega_global_Coarse_Quality.inst.cfg @@ -0,0 +1,43 @@ +[general] +version = 2 +name = Coarse +definition = anycubic_i3_mega + +[metadata] +type = quality +quality_type = coarse +global_quality = True +weight = -3 +setting_version = 4 + +[values] +layer_height = 0.4 +layer_height_0 = =layer_height + +skin_angles = [0,90] + +infill_before_walls = False +infill_angles = [0,90] + +speed_slowdown_layers = 1 +acceleration_print = 2000 +acceleration_travel = 3000 +jerk_print = 13 +jerk_travel = 13 + +retraction_combing = off + +support_z_distance = 0 +support_xy_distance = 0.7 +support_join_distance = 10 +support_interface_enable = True +support_interface_pattern = triangles + +adhesion_type = skirt +skirt_gap = 1 +speed_infill = 50 +speed_print = 50 +speed_support = 30 +speed_topbottom = 20 +speed_travel = 100 +speed_wall = 50 \ No newline at end of file diff --git a/resources/quality/anycubic_i3_mega/anycubic_i3_mega_global_High_Quality.inst.cfg b/resources/quality/anycubic_i3_mega/anycubic_i3_mega_global_High_Quality.inst.cfg new file mode 100644 index 0000000000..e69d70828d --- /dev/null +++ b/resources/quality/anycubic_i3_mega/anycubic_i3_mega_global_High_Quality.inst.cfg @@ -0,0 +1,43 @@ +[general] +version = 2 +name = High +definition = anycubic_i3_mega + +[metadata] +type = quality +quality_type = high +global_quality = True +weight = 1 +setting_version = 4 + +[values] +layer_height = 0.1 +layer_height_0 = =0.2 if min(extruderValues('machine_nozzle_size')) < 0.3 else 0.3 + +skin_angles = [0,90] + +infill_before_walls = False +infill_angles = [0,90] + +speed_slowdown_layers = 1 +acceleration_print = 2000 +acceleration_travel = 3000 +jerk_print = 13 +jerk_travel = 13 + +retraction_combing = off + +support_z_distance = 0 +support_xy_distance = 0.7 +support_join_distance = 10 +support_interface_enable = True +support_interface_pattern = triangles + +adhesion_type = skirt +skirt_gap = 1 +speed_infill = 50 +speed_print = 50 +speed_support = 30 +speed_topbottom = 20 +speed_travel = 50 +speed_wall = 50 \ No newline at end of file diff --git a/resources/quality/anycubic_i3_mega/anycubic_i3_mega_global_Normal_Quality.inst.cfg b/resources/quality/anycubic_i3_mega/anycubic_i3_mega_global_Normal_Quality.inst.cfg new file mode 100644 index 0000000000..bab515eae4 --- /dev/null +++ b/resources/quality/anycubic_i3_mega/anycubic_i3_mega_global_Normal_Quality.inst.cfg @@ -0,0 +1,43 @@ +[general] +version = 2 +name = Normal +definition = anycubic_i3_mega + +[metadata] +type = quality +quality_type = normal +global_quality = True +weight = 0 +setting_version = 4 + +[values] +layer_height = 0.2 +layer_height_0 = =0.2 if min(extruderValues('machine_nozzle_size')) < 0.3 else 0.3 + +skin_angles = [0,90] + +infill_before_walls = False +infill_angles = [0,90] + +speed_slowdown_layers = 1 +acceleration_print = 2000 +acceleration_travel = 3000 +jerk_print = 13 +jerk_travel = 13 + +retraction_combing = off + +support_z_distance = 0 +support_xy_distance = 0.7 +support_join_distance = 10 +support_interface_enable = True +support_interface_pattern = triangles + +adhesion_type = skirt +skirt_gap = 1 +speed_infill = 60 +speed_print = 60 +speed_support = 60 +speed_topbottom = 30 +speed_travel = 60 +speed_wall = 60 \ No newline at end of file diff --git a/resources/quality/anycubic_i3_mega/petg/anycubic_i3_mega_petg_coarse.inst.cfg b/resources/quality/anycubic_i3_mega/petg/anycubic_i3_mega_petg_coarse.inst.cfg new file mode 100644 index 0000000000..682e198f78 --- /dev/null +++ b/resources/quality/anycubic_i3_mega/petg/anycubic_i3_mega_petg_coarse.inst.cfg @@ -0,0 +1,59 @@ +[general] +version = 2 +name = Coarse +definition = anycubic_i3_mega + +[metadata] +type = quality +quality_type = coarse +material = generic_petg_175 +weight = 1 +setting_version = 4 + +[values] +acceleration_enabled = True +acceleration_print = 2000 +acceleration_travel = 3500 +adhesion_type = skirt +cool_fan_full_at_height = 0.5 +cool_fan_speed = 50 +cool_fan_speed_0 = 50 +infill_overlap = 15 +infill_sparse_density = 25 +initial_layer_line_width_factor = 140 +jerk_enabled = True +jerk_print = 13 +jerk_travel = 13 +layer_height_0 = 0.2 +material_bed_temperature = 80 +material_diameter = 1.7 +material_print_temperature = 230 +material_print_temperature_layer_0 = 0 +retract_at_layer_change = False +retraction_amount = 4.5 +retraction_hop = 0.075 +retraction_hop_enabled = True +retraction_hop_only_when_collides = True +retraction_min_travel = 1.5 +retraction_speed = 60 +skirt_brim_speed = 40 +skirt_gap = 5 +skirt_line_count = 3 +speed_infill = 60 +speed_print = 60 +speed_support = 30 +speed_topbottom = 30 +speed_travel = 100 +speed_wall = 60 +speed_wall_x = 60 +support_angle = 60 +support_enable = False +support_interface_enable = False +support_pattern = triangles +support_roof_enable = False +support_type = everywhere +support_xy_distance = 0.7 +top_bottom_thickness = 1.2 +wall_thickness = 1.2 +infill_pattern = zigzag +support_use_towers = False \ No newline at end of file diff --git a/resources/quality/anycubic_i3_mega/petg/anycubic_i3_mega_petg_high.inst.cfg b/resources/quality/anycubic_i3_mega/petg/anycubic_i3_mega_petg_high.inst.cfg new file mode 100644 index 0000000000..5a22a4c0b2 --- /dev/null +++ b/resources/quality/anycubic_i3_mega/petg/anycubic_i3_mega_petg_high.inst.cfg @@ -0,0 +1,59 @@ +[general] +version = 2 +name = High +definition = anycubic_i3_mega + +[metadata] +type = quality +quality_type = high +material = generic_petg_175 +weight = 3 +setting_version = 4 + +[values] +acceleration_enabled = True +acceleration_print = 2000 +acceleration_travel = 3500 +adhesion_type = skirt +cool_fan_full_at_height = 0.5 +cool_fan_speed = 50 +cool_fan_speed_0 = 50 +infill_overlap = 15 +infill_sparse_density = 25 +initial_layer_line_width_factor = 140 +jerk_enabled = True +jerk_print = 13 +jerk_travel = 13 +layer_height_0 = 0.2 +material_bed_temperature = 80 +material_diameter = 1.7 +material_print_temperature = 230 +material_print_temperature_layer_0 = 0 +retract_at_layer_change = False +retraction_amount = 4.5 +retraction_hop = 0.075 +retraction_hop_enabled = True +retraction_hop_only_when_collides = True +retraction_min_travel = 1.5 +retraction_speed = 60 +skirt_brim_speed = 40 +skirt_gap = 5 +skirt_line_count = 3 +speed_infill = 50 +speed_print = 50 +speed_support = 30 +speed_topbottom = 20 +speed_travel = 50 +speed_wall = 50 +speed_wall_x = 50 +support_angle = 60 +support_enable = False +support_interface_enable = False +support_pattern = triangles +support_roof_enable = False +support_type = everywhere +support_xy_distance = 0.7 +top_bottom_thickness = 1.2 +wall_thickness = 1.2 +infill_pattern = zigzag +support_use_towers = False \ No newline at end of file diff --git a/resources/quality/anycubic_i3_mega/petg/anycubic_i3_mega_petg_normal.inst.cfg b/resources/quality/anycubic_i3_mega/petg/anycubic_i3_mega_petg_normal.inst.cfg new file mode 100644 index 0000000000..dfe39f87f2 --- /dev/null +++ b/resources/quality/anycubic_i3_mega/petg/anycubic_i3_mega_petg_normal.inst.cfg @@ -0,0 +1,59 @@ +[general] +version = 2 +name = Normal +definition = anycubic_i3_mega + +[metadata] +type = quality +quality_type = normal +material = generic_petg_175 +weight = 2 +setting_version = 4 + +[values] +acceleration_enabled = True +acceleration_print = 2000 +acceleration_travel = 3500 +adhesion_type = skirt +cool_fan_full_at_height = 0.5 +cool_fan_speed = 50 +cool_fan_speed_0 = 50 +infill_overlap = 15 +infill_sparse_density = 25 +initial_layer_line_width_factor = 140 +jerk_enabled = True +jerk_print = 13 +jerk_travel = 13 +layer_height_0 = 0.2 +material_bed_temperature = 80 +material_diameter = 1.7 +material_print_temperature = 230 +material_print_temperature_layer_0 = 0 +retract_at_layer_change = False +retraction_amount = 4.5 +retraction_hop = 0.075 +retraction_hop_enabled = True +retraction_hop_only_when_collides = True +retraction_min_travel = 1.5 +retraction_speed = 60 +skirt_brim_speed = 40 +skirt_gap = 5 +skirt_line_count = 3 +speed_infill = 60 +speed_print = 60 +speed_support = 30 +speed_topbottom = 30 +speed_travel = 100 +speed_wall = 60 +speed_wall_x = 60 +support_angle = 60 +support_enable = False +support_interface_enable = False +support_pattern = triangles +support_roof_enable = False +support_type = everywhere +support_xy_distance = 0.7 +top_bottom_thickness = 1.2 +wall_thickness = 1.2 +infill_pattern = zigzag +support_use_towers = False \ No newline at end of file diff --git a/resources/quality/anycubic_i3_mega/pla/anycubic_i3_mega_pla_coarse.inst.cfg b/resources/quality/anycubic_i3_mega/pla/anycubic_i3_mega_pla_coarse.inst.cfg new file mode 100644 index 0000000000..c4f6f5ecae --- /dev/null +++ b/resources/quality/anycubic_i3_mega/pla/anycubic_i3_mega_pla_coarse.inst.cfg @@ -0,0 +1,59 @@ +[general] +version = 2 +name = Coarse +definition = anycubic_i3_mega + +[metadata] +type = quality +quality_type = coarse +material = generic_pla_175 +weight = 0 +setting_version = 4 + +[values] +acceleration_enabled = True +acceleration_print = 2000 +acceleration_travel = 3500 +adhesion_type = skirt +cool_fan_full_at_height = 0.5 +cool_fan_speed = 100 +cool_fan_speed_0 = 100 +infill_overlap = 15 +infill_sparse_density = 25 +initial_layer_line_width_factor = 140 +jerk_enabled = True +jerk_print = 13 +jerk_travel = 13 +layer_height_0 = 0.3 +material_bed_temperature = 60 +material_diameter = 1.7 +material_print_temperature = 200 +material_print_temperature_layer_0 = 0 +retract_at_layer_change = False +retraction_amount = 7 +retraction_hop = 0.075 +retraction_hop_enabled = True +retraction_hop_only_when_collides = True +retraction_min_travel = 1.5 +retraction_speed = 40 +skirt_brim_speed = 40 +skirt_gap = 5 +skirt_line_count = 3 +speed_infill = 60 +speed_print = 60 +speed_support = 60 +speed_topbottom = 30 +speed_travel = 100 +speed_wall = 60 +speed_wall_x = 60 +support_angle = 60 +support_enable = False +support_interface_enable = False +support_pattern = triangles +support_roof_enable = False +support_type = everywhere +support_xy_distance = 0.7 +top_bottom_thickness = 1.2 +wall_thickness = 1.2 +infill_pattern = zigzag +support_use_towers = False \ No newline at end of file diff --git a/resources/quality/anycubic_i3_mega/pla/anycubic_i3_mega_pla_high.inst.cfg b/resources/quality/anycubic_i3_mega/pla/anycubic_i3_mega_pla_high.inst.cfg new file mode 100644 index 0000000000..009bd89c16 --- /dev/null +++ b/resources/quality/anycubic_i3_mega/pla/anycubic_i3_mega_pla_high.inst.cfg @@ -0,0 +1,59 @@ +[general] +version = 2 +name = High +definition = anycubic_i3_mega + +[metadata] +type = quality +quality_type = high +material = generic_pla_175 +weight = 2 +setting_version = 4 + +[values] +acceleration_enabled = True +acceleration_print = 2000 +acceleration_travel = 3500 +adhesion_type = skirt +cool_fan_full_at_height = 0.5 +cool_fan_speed = 100 +cool_fan_speed_0 = 100 +infill_overlap = 15 +infill_sparse_density = 25 +initial_layer_line_width_factor = 140 +jerk_enabled = True +jerk_print = 13 +jerk_travel = 13 +layer_height_0 = 0.3 +material_bed_temperature = 60 +material_diameter = 1.7 +material_print_temperature = 200 +material_print_temperature_layer_0 = 0 +retract_at_layer_change = False +retraction_amount = 7 +retraction_hop = 0.075 +retraction_hop_enabled = True +retraction_hop_only_when_collides = True +retraction_min_travel = 1.5 +retraction_speed = 40 +skirt_brim_speed = 40 +skirt_gap = 5 +skirt_line_count = 3 +speed_infill = 50 +speed_print = 50 +speed_support = 30 +speed_topbottom = 20 +speed_travel = 50 +speed_wall = 50 +speed_wall_x = 50 +support_angle = 60 +support_enable = False +support_interface_enable = False +support_pattern = triangles +support_roof_enable = False +support_type = everywhere +support_xy_distance = 0.7 +top_bottom_thickness = 1.2 +wall_thickness = 1.2 +infill_pattern = zigzag +support_use_towers = False \ No newline at end of file diff --git a/resources/quality/anycubic_i3_mega/pla/anycubic_i3_mega_pla_normal.inst.cfg b/resources/quality/anycubic_i3_mega/pla/anycubic_i3_mega_pla_normal.inst.cfg new file mode 100644 index 0000000000..907b95fb71 --- /dev/null +++ b/resources/quality/anycubic_i3_mega/pla/anycubic_i3_mega_pla_normal.inst.cfg @@ -0,0 +1,59 @@ +[general] +version = 2 +name = Normal +definition = anycubic_i3_mega + +[metadata] +type = quality +quality_type = normal +material = generic_pla_175 +weight = 1 +setting_version = 4 + +[values] +acceleration_enabled = True +acceleration_print = 2000 +acceleration_travel = 3500 +adhesion_type = skirt +cool_fan_full_at_height = 0.5 +cool_fan_speed = 100 +cool_fan_speed_0 = 100 +infill_overlap = 15 +infill_sparse_density = 25 +initial_layer_line_width_factor = 140 +jerk_enabled = True +jerk_print = 13 +jerk_travel = 13 +layer_height_0 = 0.3 +material_bed_temperature = 60 +material_diameter = 1.7 +material_print_temperature = 200 +material_print_temperature_layer_0 = 0 +retract_at_layer_change = False +retraction_amount = 7 +retraction_hop = 0.075 +retraction_hop_enabled = True +retraction_hop_only_when_collides = True +retraction_min_travel = 1.5 +retraction_speed = 40 +skirt_brim_speed = 40 +skirt_gap = 5 +skirt_line_count = 3 +speed_infill = 50 +speed_print = 50 +speed_support = 30 +speed_topbottom = 20 +speed_travel = 100 +speed_wall = 50 +speed_wall_x = 50 +support_angle = 60 +support_enable = False +support_interface_enable = False +support_pattern = triangles +support_roof_enable = False +support_type = everywhere +support_xy_distance = 0.7 +top_bottom_thickness = 1.2 +wall_thickness = 1.2 +infill_pattern = zigzag +support_use_towers = False \ No newline at end of file From b782b532fcbc1ee07781a7c50d236b16759bb3da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torbj=C3=B8rn?= Date: Fri, 29 Dec 2017 23:27:39 +0100 Subject: [PATCH 054/124] Update to new machine_gcode_flavor definition --- resources/definitions/anycubic_i3_mega.def.json | 2 +- resources/definitions/tevo_blackwidow.def.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/definitions/anycubic_i3_mega.def.json b/resources/definitions/anycubic_i3_mega.def.json index 5e35ab1fdd..3c0925a2d5 100644 --- a/resources/definitions/anycubic_i3_mega.def.json +++ b/resources/definitions/anycubic_i3_mega.def.json @@ -43,7 +43,7 @@ "default_value":0 }, "machine_gcode_flavor":{ - "default_value":"RepRap (Marlin/Sprinter)" + "default_value":"Marlin" }, "machine_start_gcode":{ "default_value":"G21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 X0 Y0 ;move X/Y to min endstops\nG28 Z0 ;move Z to min endstops\nG1 Z15.0 F{travel_speed} ;move the platform down 15mm\nG92 E0 ;zero the extruded length\nG1 F200 E3 ;extrude 3mm of feed stock\nG92 E0 ;zero the extruded length again\nG1 F{travel_speed}\nM117 Printing...\nG5" diff --git a/resources/definitions/tevo_blackwidow.def.json b/resources/definitions/tevo_blackwidow.def.json index f31bbcff23..f37ed9f24e 100644 --- a/resources/definitions/tevo_blackwidow.def.json +++ b/resources/definitions/tevo_blackwidow.def.json @@ -39,7 +39,7 @@ "default_value": 0 }, "machine_gcode_flavor": { - "default_value": "RepRap (Marlin/Sprinter)" + "default_value": "Marlin" }, "speed_travel": { "default_value": 70 From 7aaedff8afe7c99713cf0b7764f6378c3dfaa8b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torbj=C3=B8rn?= Date: Sat, 30 Dec 2017 00:17:36 +0100 Subject: [PATCH 055/124] Reverted back to use of RepRap (Marlin/Sprinter) --- resources/definitions/anycubic_i3_mega.def.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/definitions/anycubic_i3_mega.def.json b/resources/definitions/anycubic_i3_mega.def.json index 3c0925a2d5..01abeb2079 100644 --- a/resources/definitions/anycubic_i3_mega.def.json +++ b/resources/definitions/anycubic_i3_mega.def.json @@ -43,7 +43,7 @@ "default_value":0 }, "machine_gcode_flavor":{ - "default_value":"Marlin" + "default_value":"RepRap (Marlin/Sprinter)" }, "machine_start_gcode":{ "default_value":"G21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 X0 Y0 ;move X/Y to min endstops\nG28 Z0 ;move Z to min endstops\nG1 Z15.0 F{travel_speed} ;move the platform down 15mm\nG92 E0 ;zero the extruded length\nG1 F200 E3 ;extrude 3mm of feed stock\nG92 E0 ;zero the extruded length again\nG1 F{travel_speed}\nM117 Printing...\nG5" @@ -52,4 +52,4 @@ "default_value":"M104 S0 ; turn off extruder\nM140 S0 ; turn off bed\nM84 ; disable motors\nM107\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle\nto release some of the pressure\nG1 Z+0.5 E-5 ;X-20 Y-20 F{travel_speed} ;move Z up a bit and retract filament even more\nG28 X0 ;Y0 ;move X/Y to min endstops\nso the head is out of the way\nG1 Y180 F2000\nM84 ;steppers off\nG90\nM300 P300 S4000" } } -} \ No newline at end of file +} From 04589596f04f2b6c094674dd7ccfe8f8260111fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torbj=C3=B8rn?= Date: Sat, 30 Dec 2017 00:18:15 +0100 Subject: [PATCH 056/124] Reverted back to use of RepRap (Marlin/Sprinter) --- resources/definitions/tevo_blackwidow.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/tevo_blackwidow.def.json b/resources/definitions/tevo_blackwidow.def.json index f37ed9f24e..f31bbcff23 100644 --- a/resources/definitions/tevo_blackwidow.def.json +++ b/resources/definitions/tevo_blackwidow.def.json @@ -39,7 +39,7 @@ "default_value": 0 }, "machine_gcode_flavor": { - "default_value": "Marlin" + "default_value": "RepRap (Marlin/Sprinter)" }, "speed_travel": { "default_value": 70 From 5690aef3d55c08e9165e5e46328c4e4555b162f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torbj=C3=B8rn?= Date: Sat, 30 Dec 2017 01:58:22 +0100 Subject: [PATCH 057/124] Added 3D Platform for Anycubic i3 Mega --- resources/definitions/anycubic_i3_mega.def.json | 2 +- resources/meshes/anycubic_i3_mega_platform.stl | Bin 0 -> 2284 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 resources/meshes/anycubic_i3_mega_platform.stl diff --git a/resources/definitions/anycubic_i3_mega.def.json b/resources/definitions/anycubic_i3_mega.def.json index 01abeb2079..cdf29ef4c1 100644 --- a/resources/definitions/anycubic_i3_mega.def.json +++ b/resources/definitions/anycubic_i3_mega.def.json @@ -8,7 +8,7 @@ "manufacturer":"Anycubic", "file_formats":"text/x-gcode", "icon":"icon_ultimaker2", - "platform":"prusai3_platform.stl", + "platform":"anycubic_i3_mega_platform.stl", "has_materials": true, "has_machine_quality": true, "preferred_quality": "*normal*" diff --git a/resources/meshes/anycubic_i3_mega_platform.stl b/resources/meshes/anycubic_i3_mega_platform.stl new file mode 100644 index 0000000000000000000000000000000000000000..cc3651b9f3acd67fa5ba55233ca0af407b90e003 GIT binary patch literal 2284 zcma)-Jx&8b4235W2iXHqgzzV&LL*8Fq=2X+lp+NbQRq{0oD}Ja_5@K5!Wpoi?OA8m zB%w01^NruLJ(JhP^mG38(M(>R-WK!aY|%`n%jSC6JkH*m(eUcN8D5QVZpWj$bk^Tx zwQI26<&^gAAU$t6{{7yyDXq4Hv`5VAhlqW-NDn`b*w{(Dew^TZMqBQffGSmTl4x1G z`aldHYxX1l!W`K-r%I4>sR-69LeEkqmSaN|K^!>ugxh6AP+g~<4T3DIF8qHSR%2 zXlFxJ*%L0N3P^8y&iPAL=S94GD|?V__wpXJWG-W*p|(eXX!T5%4Wa8%T0H>}k`bt^ia zDDh!nxIT72*oV3e BxSs$3 literal 0 HcmV?d00001 From 948497c9a88bb23491d449d0c2231c56037da8dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torbj=C3=B8rn?= Date: Sun, 31 Dec 2017 03:23:19 +0100 Subject: [PATCH 058/124] Major update of Quality profiles and definitions Removed has_materials, quality over quantity --- .../definitions/anycubic_i3_mega.def.json | 4 +- .../definitions/tevo_blackwidow.def.json | 13 ++-- ...st.cfg => anycubic_i3_mega_draft.inst.cfg} | 21 +++---- ...bic_i3_mega_global_Coarse_Quality.inst.cfg | 43 -------------- ...cubic_i3_mega_global_High_Quality.inst.cfg | 43 -------------- ...bic_i3_mega_global_Normal_Quality.inst.cfg | 43 -------------- ...nst.cfg => anycubic_i3_mega_high.inst.cfg} | 17 +++--- ...t.cfg => anycubic_i3_mega_normal.inst.cfg} | 17 +++--- .../anycubic_i3_mega_petg_coarse.inst.cfg | 59 ------------------- .../petg/anycubic_i3_mega_petg_high.inst.cfg | 59 ------------------- .../anycubic_i3_mega_petg_normal.inst.cfg | 59 ------------------- .../tevo_blackwidow_draft.inst.cfg | 33 +++++++++++ .../tevo_blackwidow_high.inst.cfg | 33 +++++++++++ .../tevo_blackwidow_normal.inst.cfg | 33 +++++++++++ 14 files changed, 135 insertions(+), 342 deletions(-) rename resources/quality/anycubic_i3_mega/{pla/anycubic_i3_mega_pla_coarse.inst.cfg => anycubic_i3_mega_draft.inst.cfg} (83%) delete mode 100644 resources/quality/anycubic_i3_mega/anycubic_i3_mega_global_Coarse_Quality.inst.cfg delete mode 100644 resources/quality/anycubic_i3_mega/anycubic_i3_mega_global_High_Quality.inst.cfg delete mode 100644 resources/quality/anycubic_i3_mega/anycubic_i3_mega_global_Normal_Quality.inst.cfg rename resources/quality/anycubic_i3_mega/{pla/anycubic_i3_mega_pla_high.inst.cfg => anycubic_i3_mega_high.inst.cfg} (85%) rename resources/quality/anycubic_i3_mega/{pla/anycubic_i3_mega_pla_normal.inst.cfg => anycubic_i3_mega_normal.inst.cfg} (85%) delete mode 100644 resources/quality/anycubic_i3_mega/petg/anycubic_i3_mega_petg_coarse.inst.cfg delete mode 100644 resources/quality/anycubic_i3_mega/petg/anycubic_i3_mega_petg_high.inst.cfg delete mode 100644 resources/quality/anycubic_i3_mega/petg/anycubic_i3_mega_petg_normal.inst.cfg create mode 100644 resources/quality/tevo_blackwidow/tevo_blackwidow_draft.inst.cfg create mode 100644 resources/quality/tevo_blackwidow/tevo_blackwidow_high.inst.cfg create mode 100644 resources/quality/tevo_blackwidow/tevo_blackwidow_normal.inst.cfg diff --git a/resources/definitions/anycubic_i3_mega.def.json b/resources/definitions/anycubic_i3_mega.def.json index cdf29ef4c1..a0bd0efb7c 100644 --- a/resources/definitions/anycubic_i3_mega.def.json +++ b/resources/definitions/anycubic_i3_mega.def.json @@ -9,7 +9,7 @@ "file_formats":"text/x-gcode", "icon":"icon_ultimaker2", "platform":"anycubic_i3_mega_platform.stl", - "has_materials": true, + "has_materials": false, "has_machine_quality": true, "preferred_quality": "*normal*" }, @@ -40,7 +40,7 @@ "default_value":1.75 }, "gantry_height":{ - "default_value":0 + "default_value":0 }, "machine_gcode_flavor":{ "default_value":"RepRap (Marlin/Sprinter)" diff --git a/resources/definitions/tevo_blackwidow.def.json b/resources/definitions/tevo_blackwidow.def.json index f31bbcff23..19ef2a45e2 100644 --- a/resources/definitions/tevo_blackwidow.def.json +++ b/resources/definitions/tevo_blackwidow.def.json @@ -8,7 +8,10 @@ "manufacturer": "Tevo", "file_formats": "text/x-gcode", "icon": "icon_ultimaker2", - "platform": "prusai3_platform.stl" + "has_materials": false, + "has_machine_quality": true, + "platform": "prusai3_platform.stl", + "preferred_quality": "*normal*" }, "overrides": { "machine_name": { @@ -33,7 +36,7 @@ "default_value": 0.4 }, "material_diameter": { - "default_value": 1.75 + "default_value": 1.75 }, "gantry_height": { "default_value": 0 @@ -41,12 +44,6 @@ "machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" }, - "speed_travel": { - "default_value": 70 - }, - "speed_print": { - "default_value": 60 - }, "machine_start_gcode": { "default_value": "M280 P0 S160 ; release BLTouch alarm (OK to send for Non BLTouch)\M420 Z2 ; set fade leveling at 2mm for BLTouch (OK to send for Non BLTouch)\G28 ; home all\G29 ; probe bed\G92 E0 ;zero the extruded length\G1 X0.0 Y50.0 Z10.0 F3600\; perform wipe and prime\G1 Z0.0 F1000\G1 Z0.2 Y70.0 E9.0 F1000.0 ; prime\G1 Y100.0 E12.5 F1000.0 ; prime\G92 E0 ; zero extruder again\M117 Printing..." }, diff --git a/resources/quality/anycubic_i3_mega/pla/anycubic_i3_mega_pla_coarse.inst.cfg b/resources/quality/anycubic_i3_mega/anycubic_i3_mega_draft.inst.cfg similarity index 83% rename from resources/quality/anycubic_i3_mega/pla/anycubic_i3_mega_pla_coarse.inst.cfg rename to resources/quality/anycubic_i3_mega/anycubic_i3_mega_draft.inst.cfg index c4f6f5ecae..e46fb38e57 100644 --- a/resources/quality/anycubic_i3_mega/pla/anycubic_i3_mega_pla_coarse.inst.cfg +++ b/resources/quality/anycubic_i3_mega/anycubic_i3_mega_draft.inst.cfg @@ -1,12 +1,11 @@ [general] version = 2 -name = Coarse +name = Draft definition = anycubic_i3_mega [metadata] type = quality -quality_type = coarse -material = generic_pla_175 +quality_type = draft weight = 0 setting_version = 4 @@ -15,16 +14,19 @@ acceleration_enabled = True acceleration_print = 2000 acceleration_travel = 3500 adhesion_type = skirt +brim_width = 4.0 cool_fan_full_at_height = 0.5 cool_fan_speed = 100 cool_fan_speed_0 = 100 infill_overlap = 15 +infill_pattern = zigzag infill_sparse_density = 25 initial_layer_line_width_factor = 140 jerk_enabled = True jerk_print = 13 jerk_travel = 13 -layer_height_0 = 0.3 +layer_height = 0.4 +layer_height_0 = 0.4 material_bed_temperature = 60 material_diameter = 1.7 material_print_temperature = 200 @@ -47,13 +49,12 @@ speed_travel = 100 speed_wall = 60 speed_wall_x = 60 support_angle = 60 -support_enable = False -support_interface_enable = False +support_enable = True +support_interface_enable = True support_pattern = triangles -support_roof_enable = False +support_roof_enable = True support_type = everywhere +support_use_towers = False support_xy_distance = 0.7 top_bottom_thickness = 1.2 -wall_thickness = 1.2 -infill_pattern = zigzag -support_use_towers = False \ No newline at end of file +wall_thickness = 1.2 \ No newline at end of file diff --git a/resources/quality/anycubic_i3_mega/anycubic_i3_mega_global_Coarse_Quality.inst.cfg b/resources/quality/anycubic_i3_mega/anycubic_i3_mega_global_Coarse_Quality.inst.cfg deleted file mode 100644 index 721aa4f25b..0000000000 --- a/resources/quality/anycubic_i3_mega/anycubic_i3_mega_global_Coarse_Quality.inst.cfg +++ /dev/null @@ -1,43 +0,0 @@ -[general] -version = 2 -name = Coarse -definition = anycubic_i3_mega - -[metadata] -type = quality -quality_type = coarse -global_quality = True -weight = -3 -setting_version = 4 - -[values] -layer_height = 0.4 -layer_height_0 = =layer_height - -skin_angles = [0,90] - -infill_before_walls = False -infill_angles = [0,90] - -speed_slowdown_layers = 1 -acceleration_print = 2000 -acceleration_travel = 3000 -jerk_print = 13 -jerk_travel = 13 - -retraction_combing = off - -support_z_distance = 0 -support_xy_distance = 0.7 -support_join_distance = 10 -support_interface_enable = True -support_interface_pattern = triangles - -adhesion_type = skirt -skirt_gap = 1 -speed_infill = 50 -speed_print = 50 -speed_support = 30 -speed_topbottom = 20 -speed_travel = 100 -speed_wall = 50 \ No newline at end of file diff --git a/resources/quality/anycubic_i3_mega/anycubic_i3_mega_global_High_Quality.inst.cfg b/resources/quality/anycubic_i3_mega/anycubic_i3_mega_global_High_Quality.inst.cfg deleted file mode 100644 index e69d70828d..0000000000 --- a/resources/quality/anycubic_i3_mega/anycubic_i3_mega_global_High_Quality.inst.cfg +++ /dev/null @@ -1,43 +0,0 @@ -[general] -version = 2 -name = High -definition = anycubic_i3_mega - -[metadata] -type = quality -quality_type = high -global_quality = True -weight = 1 -setting_version = 4 - -[values] -layer_height = 0.1 -layer_height_0 = =0.2 if min(extruderValues('machine_nozzle_size')) < 0.3 else 0.3 - -skin_angles = [0,90] - -infill_before_walls = False -infill_angles = [0,90] - -speed_slowdown_layers = 1 -acceleration_print = 2000 -acceleration_travel = 3000 -jerk_print = 13 -jerk_travel = 13 - -retraction_combing = off - -support_z_distance = 0 -support_xy_distance = 0.7 -support_join_distance = 10 -support_interface_enable = True -support_interface_pattern = triangles - -adhesion_type = skirt -skirt_gap = 1 -speed_infill = 50 -speed_print = 50 -speed_support = 30 -speed_topbottom = 20 -speed_travel = 50 -speed_wall = 50 \ No newline at end of file diff --git a/resources/quality/anycubic_i3_mega/anycubic_i3_mega_global_Normal_Quality.inst.cfg b/resources/quality/anycubic_i3_mega/anycubic_i3_mega_global_Normal_Quality.inst.cfg deleted file mode 100644 index bab515eae4..0000000000 --- a/resources/quality/anycubic_i3_mega/anycubic_i3_mega_global_Normal_Quality.inst.cfg +++ /dev/null @@ -1,43 +0,0 @@ -[general] -version = 2 -name = Normal -definition = anycubic_i3_mega - -[metadata] -type = quality -quality_type = normal -global_quality = True -weight = 0 -setting_version = 4 - -[values] -layer_height = 0.2 -layer_height_0 = =0.2 if min(extruderValues('machine_nozzle_size')) < 0.3 else 0.3 - -skin_angles = [0,90] - -infill_before_walls = False -infill_angles = [0,90] - -speed_slowdown_layers = 1 -acceleration_print = 2000 -acceleration_travel = 3000 -jerk_print = 13 -jerk_travel = 13 - -retraction_combing = off - -support_z_distance = 0 -support_xy_distance = 0.7 -support_join_distance = 10 -support_interface_enable = True -support_interface_pattern = triangles - -adhesion_type = skirt -skirt_gap = 1 -speed_infill = 60 -speed_print = 60 -speed_support = 60 -speed_topbottom = 30 -speed_travel = 60 -speed_wall = 60 \ No newline at end of file diff --git a/resources/quality/anycubic_i3_mega/pla/anycubic_i3_mega_pla_high.inst.cfg b/resources/quality/anycubic_i3_mega/anycubic_i3_mega_high.inst.cfg similarity index 85% rename from resources/quality/anycubic_i3_mega/pla/anycubic_i3_mega_pla_high.inst.cfg rename to resources/quality/anycubic_i3_mega/anycubic_i3_mega_high.inst.cfg index 009bd89c16..0dcedf664e 100644 --- a/resources/quality/anycubic_i3_mega/pla/anycubic_i3_mega_pla_high.inst.cfg +++ b/resources/quality/anycubic_i3_mega/anycubic_i3_mega_high.inst.cfg @@ -6,7 +6,6 @@ definition = anycubic_i3_mega [metadata] type = quality quality_type = high -material = generic_pla_175 weight = 2 setting_version = 4 @@ -15,16 +14,19 @@ acceleration_enabled = True acceleration_print = 2000 acceleration_travel = 3500 adhesion_type = skirt +brim_width = 4.0 cool_fan_full_at_height = 0.5 cool_fan_speed = 100 cool_fan_speed_0 = 100 infill_overlap = 15 +infill_pattern = zigzag infill_sparse_density = 25 initial_layer_line_width_factor = 140 jerk_enabled = True jerk_print = 13 jerk_travel = 13 -layer_height_0 = 0.3 +layer_height = 0.1 +layer_height_0 = 0.1 material_bed_temperature = 60 material_diameter = 1.7 material_print_temperature = 200 @@ -47,13 +49,12 @@ speed_travel = 50 speed_wall = 50 speed_wall_x = 50 support_angle = 60 -support_enable = False -support_interface_enable = False +support_enable = True +support_interface_enable = True support_pattern = triangles -support_roof_enable = False +support_roof_enable = True support_type = everywhere +support_use_towers = False support_xy_distance = 0.7 top_bottom_thickness = 1.2 -wall_thickness = 1.2 -infill_pattern = zigzag -support_use_towers = False \ No newline at end of file +wall_thickness = 1.2 \ No newline at end of file diff --git a/resources/quality/anycubic_i3_mega/pla/anycubic_i3_mega_pla_normal.inst.cfg b/resources/quality/anycubic_i3_mega/anycubic_i3_mega_normal.inst.cfg similarity index 85% rename from resources/quality/anycubic_i3_mega/pla/anycubic_i3_mega_pla_normal.inst.cfg rename to resources/quality/anycubic_i3_mega/anycubic_i3_mega_normal.inst.cfg index 907b95fb71..d528e5f86f 100644 --- a/resources/quality/anycubic_i3_mega/pla/anycubic_i3_mega_pla_normal.inst.cfg +++ b/resources/quality/anycubic_i3_mega/anycubic_i3_mega_normal.inst.cfg @@ -6,7 +6,6 @@ definition = anycubic_i3_mega [metadata] type = quality quality_type = normal -material = generic_pla_175 weight = 1 setting_version = 4 @@ -15,16 +14,19 @@ acceleration_enabled = True acceleration_print = 2000 acceleration_travel = 3500 adhesion_type = skirt +brim_width = 4.0 cool_fan_full_at_height = 0.5 cool_fan_speed = 100 cool_fan_speed_0 = 100 infill_overlap = 15 +infill_pattern = zigzag infill_sparse_density = 25 initial_layer_line_width_factor = 140 jerk_enabled = True jerk_print = 13 jerk_travel = 13 -layer_height_0 = 0.3 +layer_height = 0.2 +layer_height_0 = 0.2 material_bed_temperature = 60 material_diameter = 1.7 material_print_temperature = 200 @@ -47,13 +49,12 @@ speed_travel = 100 speed_wall = 50 speed_wall_x = 50 support_angle = 60 -support_enable = False -support_interface_enable = False +support_enable = True +support_interface_enable = True support_pattern = triangles -support_roof_enable = False +support_roof_enable = True support_type = everywhere +support_use_towers = False support_xy_distance = 0.7 top_bottom_thickness = 1.2 -wall_thickness = 1.2 -infill_pattern = zigzag -support_use_towers = False \ No newline at end of file +wall_thickness = 1.2 \ No newline at end of file diff --git a/resources/quality/anycubic_i3_mega/petg/anycubic_i3_mega_petg_coarse.inst.cfg b/resources/quality/anycubic_i3_mega/petg/anycubic_i3_mega_petg_coarse.inst.cfg deleted file mode 100644 index 682e198f78..0000000000 --- a/resources/quality/anycubic_i3_mega/petg/anycubic_i3_mega_petg_coarse.inst.cfg +++ /dev/null @@ -1,59 +0,0 @@ -[general] -version = 2 -name = Coarse -definition = anycubic_i3_mega - -[metadata] -type = quality -quality_type = coarse -material = generic_petg_175 -weight = 1 -setting_version = 4 - -[values] -acceleration_enabled = True -acceleration_print = 2000 -acceleration_travel = 3500 -adhesion_type = skirt -cool_fan_full_at_height = 0.5 -cool_fan_speed = 50 -cool_fan_speed_0 = 50 -infill_overlap = 15 -infill_sparse_density = 25 -initial_layer_line_width_factor = 140 -jerk_enabled = True -jerk_print = 13 -jerk_travel = 13 -layer_height_0 = 0.2 -material_bed_temperature = 80 -material_diameter = 1.7 -material_print_temperature = 230 -material_print_temperature_layer_0 = 0 -retract_at_layer_change = False -retraction_amount = 4.5 -retraction_hop = 0.075 -retraction_hop_enabled = True -retraction_hop_only_when_collides = True -retraction_min_travel = 1.5 -retraction_speed = 60 -skirt_brim_speed = 40 -skirt_gap = 5 -skirt_line_count = 3 -speed_infill = 60 -speed_print = 60 -speed_support = 30 -speed_topbottom = 30 -speed_travel = 100 -speed_wall = 60 -speed_wall_x = 60 -support_angle = 60 -support_enable = False -support_interface_enable = False -support_pattern = triangles -support_roof_enable = False -support_type = everywhere -support_xy_distance = 0.7 -top_bottom_thickness = 1.2 -wall_thickness = 1.2 -infill_pattern = zigzag -support_use_towers = False \ No newline at end of file diff --git a/resources/quality/anycubic_i3_mega/petg/anycubic_i3_mega_petg_high.inst.cfg b/resources/quality/anycubic_i3_mega/petg/anycubic_i3_mega_petg_high.inst.cfg deleted file mode 100644 index 5a22a4c0b2..0000000000 --- a/resources/quality/anycubic_i3_mega/petg/anycubic_i3_mega_petg_high.inst.cfg +++ /dev/null @@ -1,59 +0,0 @@ -[general] -version = 2 -name = High -definition = anycubic_i3_mega - -[metadata] -type = quality -quality_type = high -material = generic_petg_175 -weight = 3 -setting_version = 4 - -[values] -acceleration_enabled = True -acceleration_print = 2000 -acceleration_travel = 3500 -adhesion_type = skirt -cool_fan_full_at_height = 0.5 -cool_fan_speed = 50 -cool_fan_speed_0 = 50 -infill_overlap = 15 -infill_sparse_density = 25 -initial_layer_line_width_factor = 140 -jerk_enabled = True -jerk_print = 13 -jerk_travel = 13 -layer_height_0 = 0.2 -material_bed_temperature = 80 -material_diameter = 1.7 -material_print_temperature = 230 -material_print_temperature_layer_0 = 0 -retract_at_layer_change = False -retraction_amount = 4.5 -retraction_hop = 0.075 -retraction_hop_enabled = True -retraction_hop_only_when_collides = True -retraction_min_travel = 1.5 -retraction_speed = 60 -skirt_brim_speed = 40 -skirt_gap = 5 -skirt_line_count = 3 -speed_infill = 50 -speed_print = 50 -speed_support = 30 -speed_topbottom = 20 -speed_travel = 50 -speed_wall = 50 -speed_wall_x = 50 -support_angle = 60 -support_enable = False -support_interface_enable = False -support_pattern = triangles -support_roof_enable = False -support_type = everywhere -support_xy_distance = 0.7 -top_bottom_thickness = 1.2 -wall_thickness = 1.2 -infill_pattern = zigzag -support_use_towers = False \ No newline at end of file diff --git a/resources/quality/anycubic_i3_mega/petg/anycubic_i3_mega_petg_normal.inst.cfg b/resources/quality/anycubic_i3_mega/petg/anycubic_i3_mega_petg_normal.inst.cfg deleted file mode 100644 index dfe39f87f2..0000000000 --- a/resources/quality/anycubic_i3_mega/petg/anycubic_i3_mega_petg_normal.inst.cfg +++ /dev/null @@ -1,59 +0,0 @@ -[general] -version = 2 -name = Normal -definition = anycubic_i3_mega - -[metadata] -type = quality -quality_type = normal -material = generic_petg_175 -weight = 2 -setting_version = 4 - -[values] -acceleration_enabled = True -acceleration_print = 2000 -acceleration_travel = 3500 -adhesion_type = skirt -cool_fan_full_at_height = 0.5 -cool_fan_speed = 50 -cool_fan_speed_0 = 50 -infill_overlap = 15 -infill_sparse_density = 25 -initial_layer_line_width_factor = 140 -jerk_enabled = True -jerk_print = 13 -jerk_travel = 13 -layer_height_0 = 0.2 -material_bed_temperature = 80 -material_diameter = 1.7 -material_print_temperature = 230 -material_print_temperature_layer_0 = 0 -retract_at_layer_change = False -retraction_amount = 4.5 -retraction_hop = 0.075 -retraction_hop_enabled = True -retraction_hop_only_when_collides = True -retraction_min_travel = 1.5 -retraction_speed = 60 -skirt_brim_speed = 40 -skirt_gap = 5 -skirt_line_count = 3 -speed_infill = 60 -speed_print = 60 -speed_support = 30 -speed_topbottom = 30 -speed_travel = 100 -speed_wall = 60 -speed_wall_x = 60 -support_angle = 60 -support_enable = False -support_interface_enable = False -support_pattern = triangles -support_roof_enable = False -support_type = everywhere -support_xy_distance = 0.7 -top_bottom_thickness = 1.2 -wall_thickness = 1.2 -infill_pattern = zigzag -support_use_towers = False \ No newline at end of file diff --git a/resources/quality/tevo_blackwidow/tevo_blackwidow_draft.inst.cfg b/resources/quality/tevo_blackwidow/tevo_blackwidow_draft.inst.cfg new file mode 100644 index 0000000000..21169e428b --- /dev/null +++ b/resources/quality/tevo_blackwidow/tevo_blackwidow_draft.inst.cfg @@ -0,0 +1,33 @@ +[general] +version = 2 +name = Draft +definition = tevo_blackwidow + +[metadata] +type = quality +quality_type = draft +weight = -2 +setting_version = 4 + +[values] +brim_width = 4.0 +infill_pattern = zigzag +layer_height = 0.4 +material_diameter = 1.7 +speed_infill = 50 +speed_print = 50 +speed_support = 30 +speed_topbottom = 20 +speed_travel = 100 +speed_wall = 50 +speed_wall_x = 50 +support_angle = 60 +support_enable = True +support_interface_enable = True +support_pattern = triangles +support_roof_enable = True +support_type = everywhere +support_use_towers = False +support_xy_distance = 0.7 +top_bottom_thickness = 1.2 +wall_thickness = 1.2 \ No newline at end of file diff --git a/resources/quality/tevo_blackwidow/tevo_blackwidow_high.inst.cfg b/resources/quality/tevo_blackwidow/tevo_blackwidow_high.inst.cfg new file mode 100644 index 0000000000..60f51b6826 --- /dev/null +++ b/resources/quality/tevo_blackwidow/tevo_blackwidow_high.inst.cfg @@ -0,0 +1,33 @@ +[general] +version = 2 +name = High +definition = tevo_blackwidow + +[metadata] +type = quality +quality_type = high +weight = 1 +setting_version = 4 + +[values] +brim_width = 4.0 +infill_pattern = zigzag +layer_height = 0.1 +material_diameter = 1.7 +speed_infill = 50 +speed_print = 50 +speed_support = 30 +speed_topbottom = 15 +speed_travel = 100 +speed_wall = 50 +speed_wall_x = 50 +support_angle = 60 +support_enable = True +support_interface_enable = True +support_pattern = triangles +support_roof_enable = True +support_type = everywhere +support_use_towers = False +support_xy_distance = 0.7 +top_bottom_thickness = 1.2 +wall_thickness = 1.2 \ No newline at end of file diff --git a/resources/quality/tevo_blackwidow/tevo_blackwidow_normal.inst.cfg b/resources/quality/tevo_blackwidow/tevo_blackwidow_normal.inst.cfg new file mode 100644 index 0000000000..51f5894885 --- /dev/null +++ b/resources/quality/tevo_blackwidow/tevo_blackwidow_normal.inst.cfg @@ -0,0 +1,33 @@ +[general] +version = 2 +name = Normal +definition = tevo_blackwidow + +[metadata] +type = quality +quality_type = normal +weight = 0 +setting_version = 4 + +[values] +brim_width = 4.0 +infill_pattern = zigzag +layer_height = 0.2 +material_diameter = 1.7 +speed_infill = 60 +speed_print = 50 +speed_support = 30 +speed_topbottom = 20 +speed_travel = 100 +speed_wall = 50 +speed_wall_x = 50 +support_angle = 60 +support_enable = True +support_interface_enable = True +support_pattern = triangles +support_roof_enable = True +support_type = everywhere +support_use_towers = False +support_xy_distance = 0.7 +top_bottom_thickness = 1.2 +wall_thickness = 1.2 \ No newline at end of file From 7a0b49ca2ffc435218e767a788ab603baa093cf9 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Sun, 31 Dec 2017 10:53:53 +0100 Subject: [PATCH 059/124] Allow specifying the extruder stack to use for each replacement pattern The replacement pattern is (optionally) extended with an extruder_nr: {setting_key,extruder_nr}. The extruder_nr can either be a number (-1 for the global stack, 0 or higher for an extruder), or a setting keyword such as support_extruder_nr etc. Contributes to #1296 --- plugins/CuraEngineBackend/StartSliceJob.py | 55 ++++++++++++++++++---- 1 file changed, 45 insertions(+), 10 deletions(-) diff --git a/plugins/CuraEngineBackend/StartSliceJob.py b/plugins/CuraEngineBackend/StartSliceJob.py index 21b3973bc6..22a0fc5e18 100644 --- a/plugins/CuraEngineBackend/StartSliceJob.py +++ b/plugins/CuraEngineBackend/StartSliceJob.py @@ -36,9 +36,32 @@ class StartJobResult(IntEnum): ## Formatter class that handles token expansion in start/end gcod class GcodeStartEndFormatter(Formatter): def get_value(self, key, args, kwargs): # [CodeStyle: get_value is an overridden function from the Formatter class] + # The kwargs dictionary contains a dictionary for each stack (with a string of the extruder_nr as their key), + # and a default_extruder_nr to use when no extruder_nr is specified + if isinstance(key, str): try: - return kwargs[key] + extruder_nr = kwargs["default_extruder_nr"] + except ValueError: + extruder_nr = -1 + + key_fragments = [fragment.strip() for fragment in key.split(',')] + if len(key_fragments) == 2: + try: + extruder_nr = int(key_fragments[1]) + except ValueError: + try: + extruder_nr = int(kwargs["-1"][key_fragments[1]]) # get extruder_nr values from the global stack + except (KeyError, ValueError): + # either the key does not exist, or the value is not an int + Logger.log("w", "Unable to determine stack nr '%s' for key '%s' in start/end gcode, using global stack", key_fragments[1], key_fragments[0]) + elif len(key_fragments) != 1: + Logger.log("w", "Incorrectly formatted placeholder '%s' in start/end gcode", key) + return "{" + str(key) + "}" + + key = key_fragments[0] + try: + return kwargs[str(extruder_nr)][key] except KeyError: Logger.log("w", "Unable to replace '%s' placeholder in start/end gcode", key) return "{" + key + "}" @@ -56,6 +79,8 @@ class StartSliceJob(Job): self._slice_message = slice_message self._is_cancelled = False + self._all_extruders_settings = None # cache for all setting values from all stacks (global & extruder) for the current machine + def getSliceMessage(self): return self._slice_message @@ -237,12 +262,21 @@ class StartSliceJob(Job): ## Replace setting tokens in a piece of g-code. # \param value A piece of g-code to replace tokens in. - # \param settings A dictionary of tokens to replace and their respective - # replacement strings. - def _expandGcodeTokens(self, value: str, settings: dict): + # \param default_extruder_nr Stack nr to use when no stack nr is specified, defaults to the global stack + def _expandGcodeTokens(self, value: str, default_extruder_nr: int = -1): + if not self._all_extruders_settings: + global_stack = Application.getInstance().getGlobalContainerStack() + self._all_extruders_settings = {} + # keys must be strings for the string formatter + self._all_extruders_settings["-1"] = self._buildReplacementTokens(global_stack) + for extruder_stack in ExtruderManager.getInstance().getMachineExtruders(global_stack.getId()): + extruder_nr = extruder_stack.getProperty("extruder_nr", "value") + self._all_extruders_settings[str(extruder_nr)] = self._buildReplacementTokens(extruder_stack) try: # any setting can be used as a token fmt = GcodeStartEndFormatter() + settings = self._all_extruders_settings.copy() + settings["default_extruder_nr"] = default_extruder_nr return str(fmt.format(value, **settings)) except: Logger.logException("w", "Unable to do token replacement on start/end gcode") @@ -259,8 +293,9 @@ class StartSliceJob(Job): settings["material_guid"] = stack.material.getMetaDataEntry("GUID", "") # Replace the setting tokens in start and end g-code. - settings["machine_extruder_start_code"] = self._expandGcodeTokens(settings["machine_extruder_start_code"], settings) - settings["machine_extruder_end_code"] = self._expandGcodeTokens(settings["machine_extruder_end_code"], settings) + extruder_nr = stack.getProperty("extruder_nr", "value") + settings["machine_extruder_start_code"] = self._expandGcodeTokens(settings["machine_extruder_start_code"], extruder_nr) + settings["machine_extruder_end_code"] = self._expandGcodeTokens(settings["machine_extruder_end_code"], extruder_nr) for key, value in settings.items(): # Do not send settings that are not settable_per_extruder. @@ -286,12 +321,12 @@ class StartSliceJob(Job): settings["material_print_temp_prepend"] = all(("{" + setting + "}" not in start_gcode for setting in print_temperature_settings)) # Find the correct temperatures from the first used extruder - extruder_stack = Application.getInstance().getExtruderManager().getUsedExtruderStacks()[0] - extruder_0_settings = self._buildReplacementTokens(extruder_stack) + initial_extruder_stack = Application.getInstance().getExtruderManager().getUsedExtruderStacks()[0] + initial_extruder_nr = initial_extruder_stack.getProperty("extruder_nr", "value") # Replace the setting tokens in start and end g-code. - settings["machine_start_gcode"] = self._expandGcodeTokens(settings["machine_start_gcode"], extruder_0_settings) - settings["machine_end_gcode"] = self._expandGcodeTokens(settings["machine_end_gcode"], extruder_0_settings) + settings["machine_start_gcode"] = self._expandGcodeTokens(settings["machine_start_gcode"], initial_extruder_nr) + settings["machine_end_gcode"] = self._expandGcodeTokens(settings["machine_end_gcode"], initial_extruder_nr) # Add all sub-messages for each individual setting. for key, value in settings.items(): From 308d220bf3ca1acd3ede6ca275f5e4e71fb5b206 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Sun, 31 Dec 2017 12:30:00 +0100 Subject: [PATCH 060/124] Add an "initial_extruder_nr" pattern --- plugins/CuraEngineBackend/StartSliceJob.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/plugins/CuraEngineBackend/StartSliceJob.py b/plugins/CuraEngineBackend/StartSliceJob.py index 22a0fc5e18..c5182cc753 100644 --- a/plugins/CuraEngineBackend/StartSliceJob.py +++ b/plugins/CuraEngineBackend/StartSliceJob.py @@ -258,6 +258,10 @@ class StartSliceJob(Job): result["date"] = time.strftime("%d-%m-%Y") result["day"] = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"][int(time.strftime("%w"))] + initial_extruder_stack = Application.getInstance().getExtruderManager().getUsedExtruderStacks()[0] + initial_extruder_nr = initial_extruder_stack.getProperty("extruder_nr", "value") + result["initial_extruder_nr"] = initial_extruder_nr + return result ## Replace setting tokens in a piece of g-code. @@ -266,9 +270,11 @@ class StartSliceJob(Job): def _expandGcodeTokens(self, value: str, default_extruder_nr: int = -1): if not self._all_extruders_settings: global_stack = Application.getInstance().getGlobalContainerStack() + self._all_extruders_settings = {} - # keys must be strings for the string formatter + # NB: keys must be strings for the string formatter self._all_extruders_settings["-1"] = self._buildReplacementTokens(global_stack) + for extruder_stack in ExtruderManager.getInstance().getMachineExtruders(global_stack.getId()): extruder_nr = extruder_stack.getProperty("extruder_nr", "value") self._all_extruders_settings[str(extruder_nr)] = self._buildReplacementTokens(extruder_stack) @@ -320,11 +326,11 @@ class StartSliceJob(Job): print_temperature_settings = {"material_print_temperature", "material_print_temperature_layer_0", "default_material_print_temperature", "material_initial_print_temperature", "material_final_print_temperature", "material_standby_temperature"} settings["material_print_temp_prepend"] = all(("{" + setting + "}" not in start_gcode for setting in print_temperature_settings)) - # Find the correct temperatures from the first used extruder + # Replace the setting tokens in start and end g-code. + # Use values from the first used extruder by default so we get the expected temperatures initial_extruder_stack = Application.getInstance().getExtruderManager().getUsedExtruderStacks()[0] initial_extruder_nr = initial_extruder_stack.getProperty("extruder_nr", "value") - # Replace the setting tokens in start and end g-code. settings["machine_start_gcode"] = self._expandGcodeTokens(settings["machine_start_gcode"], initial_extruder_nr) settings["machine_end_gcode"] = self._expandGcodeTokens(settings["machine_end_gcode"], initial_extruder_nr) From 5104a48bcc9a1655b756ba8aea54754ecf25d4e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torbj=C3=B8rn?= Date: Sun, 31 Dec 2017 23:15:00 +0100 Subject: [PATCH 061/124] Added 3D model for Tevo Black Widow + small fix Roel Versteeg (Rovex) has kindly agreed to let us use his model of the printer, https://www.thingiverse.com/thing:1933864 Since the model is a bit to detailed for our use I have spoken with Jon MC (security0051) that had already modified for better fit in editor. https://www.thingiverse.com/thing:2592417. He has also agreed to let us use his version. --- resources/meshes/tevo_blackwidow.stl | Bin 0 -> 4330684 bytes .../anycubic_i3_mega_draft.inst.cfg | 2 +- .../anycubic_i3_mega_high.inst.cfg | 2 +- .../anycubic_i3_mega_normal.inst.cfg | 2 +- .../tevo_blackwidow_draft.inst.cfg | 2 +- .../tevo_blackwidow_high.inst.cfg | 2 +- .../tevo_blackwidow_normal.inst.cfg | 2 +- 7 files changed, 6 insertions(+), 6 deletions(-) create mode 100644 resources/meshes/tevo_blackwidow.stl diff --git a/resources/meshes/tevo_blackwidow.stl b/resources/meshes/tevo_blackwidow.stl new file mode 100644 index 0000000000000000000000000000000000000000..ef45dd1621cd2a0c949e16410456820f4138c252 GIT binary patch literal 4330684 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%0A|V2$?MmF1Xv9mk zltvmhJmRHeHGWsY=qHcdc^X9dSWUH*=2saXM@iJVgz*xtg|Dm}ZQmFon;dN;9iO!o zX(^q?to?iKOTiyOX&*d&N=@ZGW6XwqW!-9wm0dhh{Em9=Utg6-3R=h^X{7yqXe^wO z34AkU^uuD|>G#MUV&Uo6Nl27t^uxctO8;T&IgwxX8ORAnbbRMNx+8%RB;PqC+Ls^= z+WQarf>q*|Dzq~6EZK^J@K!XO)MQT=CpD>-()8!Oz0y_K{AyuuD*fhR-{sS<96fxa z7cHgvEyUlseCM>@0Qt3kBK@{$WhwpU>E%iZexrp%dl~Ilk|ea$cIPjIQ>~)AO~*B8 zspC68C7ex#l8BSDv==VY$gTGVQWD!)5)oBlImVX;mRuMuTz(C;k8!AA0^dN znqv`f8FYM}f8iODeILSG)3+Iq&-L9Zt^G>;m5j3~P;0d{&{iTQR7+{C|K)pyp){a= za33f0Mbeei?q%rrkD`{+NV_M)ugKgt3Z)tn_zBR0pAh>DB)D%>rj_pMXmq;spWBc( zn61^v7+LE|TtAdhEw0rE&9(YI+SV`b^epg|mHSkojp9mnZ?BY4Ev4y~lz*>Pf}Rsv zwb+J!uPtifxgjU`9cgb9!${a#IK;x~Cz_XRW3m zWr=I`y%m)xXSQn{N?ehK4KIlrt>xDjv_AZHgBFKhYrOSQLba4uuO|Nf!5t3}@zA_; zR|Joj==YDJ7V=ISX}@!co|hOUhi||byZMab0mkR0Mq26DaHG@MyL%b(HN3>H-tfF& z5A~4*a^-}cm#SJy^IN+6aB`AaiIHE6C#G|l&^l|YU5F=&mePzTdpt3k*C&3IdXws9 zMqlDes>N?s*>Yp69UbSV2{aqR3WcxFq z%~0PrZcDgp_K21+>+t7e%`1Y3-1WP$_Rh^K4!`65yH8Cb?99EOsD+Y2+RJY7yPCE# zY|qhtXsZ;BAlr*txGq{B_6*+o$gHrE)@LmlT4LhZt7<8&^*^jPc)-^#ef;sF1$CAF ztgJQb+O6!<9np>OgDU1BFuSI=~??e3dnxYoo0coVYo@=a+yZXUz<8FT# zw{cHEkI5*ZT1s7_wk3!XRwn5@Dw3YntLAl`;f0P zQLYftK~4}!V|2%(YC3~XwRnbtUDv z^{1!@Tp^DV&UN%&+I5bwYAMZCtzM&|(OtUV62^nvX~>>*y5Ew&4<%HKyS3P8GTm

yhkuAT>f-yqe4 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

(ko7(vw2M$zj@I@qRR_ai0|Hh_$w|S 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�H;7tL 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%0AmoLwkE=(!HcT{+serv03wizUkuVc2hx_Rh5|pG zl${BTL4;aB36DlshXQ-X$?gXtkcwX)g1wCDp+G_h*^|K-M5wih@EH5!+Q6r2vL}NG zq|#T-q^|C(TNnsGa;vwugfWQFT|D8@te`M(=o#6KLIhGxxgj^Qmqqr}^$P=4GjH{F zyf6k4x;rR5Mt)WpSUyJf$o{{VlVTAot_%h2|0TBJy$nPkm0EQ~d3@P6u?^3)`sx$c z38G^WEy@)HCN`2iOGF@*T8l(^^soDj$3tJ7VjhT&MRYv*QDDr0{89*{;(mO3+zq~d zH8N1ZeYXwkaQbE`^FV&Fh;fHL3_SSsPo)q@#p5w?qw?^_poicwSS^jMCh3-Go!sEX zSIT!R;v7kaaT5~)oGU~i70VU2LzcSw`-`Q4m&YaqxCL4Ibm%7OB03haYVP8|jp;Q@ zA&^QfgoH<-y(F;a&YE7XSSAjfAUu#?EaHo+76rb2|2U$%P)Pqya^ z4@AczhWs)&kh7?LDFjmK3BT~@;LZ*F>k5MBsNcR89>^~ivE+ug0&ic})#HH(q*BWP z;j!|Yw*sHm6$H<k_%o*WhU;*N=4 zzd{63sRfMi*t~5#>u_GKScl8r@yM_Nftr0Ldpr<^~iabiIG!1d0YQV66{iwoh= zWYxU^+Q0JZidPe}rw9+^7mF~^~i zF>*omz#H9`cc9dNjroG zqGJ(vFMGeu|C+BZg+MB`JQE)7w(K@NGFE%zoc91K?-3rzFBVa6-Lq{{^9sC@BLb<^ zB1w2${6%(~yXO~px#GQy0|$i%qGJ&q-?*gB!IZTgLM@s&Ekws6uKM!2HfNd%g7;+3 z9~K^nz?8iGE8bi3c<@e@5ioL|{tBjGKDNnodS|sI3Z@ z1JSXFw=eC#rdmR21n-w=nGj7c7Rp|ql*6}lVIGJ;-gGj$>av2OjI~k@K=8hwwoMG$ zRIz&%{5M@%P*2&J2O{*0p2O)CzPBe9RC!x^2_kr(Qu`R9jj26qe!*_P@2VXMr-cYi z$(S#%`>^1pw$j@X!TYT`RuD}mSQ&>33d}06L`e&H>9VH z3w_#tqQ^sRZkPumFePJlRem9K@_(ZHAcD{9RQEx&F?uk};)MAHuAOce|=6ov+L(h!UklOxl{XKn%?qE#5K6D>)+g{8V*cMAK<_ z-RYs0iCsMep9!-)CG$W8rbK=}?wcAq*RV8#&w*8kM>L)M(AoCpHSIkfYK_S}5P`g@ z98G42@~5@;+8hzydA7e6K{WZ*8a_XCUC*1my3+e~%mWdak}+40SsbdLd6SnbMDV%1 zuBi}BcCT~tL#t9`t;V(ny6!^+rbPE9IxY#V56D^#5o}+eYePiSsSMdn%+HoJC)-Tu z`V|qF5?R)`OGEu%Oz_4aBG^ts*SLr#tC!=eLiOL2wKLm(=sFw`m=e7U@ZX1_Kp;a(i?4zplyFG`e{&w=;!1=3VMa z%keke=N#TG*}9Z?AQhsqOf;*}YfuB}J`VfK5Np*WuN)$yq#Pm><(up*hZQ^Zu1&D7 zC*KK3g=n!`l$4C=N|v&h9;;}7OE+@GQdUZc>56Pu9&MHvIsM7D_I1h?QXv}o8FNo^ zXJ-xF4$GyIi>0ja5IsTKK=cxAkJ@RSoyQ3=h&&-66{5wCRNI5Bmfe$dhqn@W@sJz2 zHN3i#aaY4@XBp@6?cEG>{hMK)71Bo)BnHuPhgVXfn-)FtoK9p=AsWXD z`#|L17@PlwJP(M~X@_O(I`M5--SbWv4Oef7kV?FWmTbZ2n)g_P2&57(qS%6*s~-JlwMGO| zi5Jn5Ex79aGcgFH5-*}9Tku%Hq8J2Hi5F39LC)1X&n$_lE2P49BHQ!jneJC*jLWTZ zwkoY_?yBaEqF*j2o05LjywMf?=Jpu7D$`y4-v!Sr9o;)Q65n0#JIw7T+KL)pN$aEKfdcoO}+_w#;g;XCW)7{0I)%-CyY-Og~=VIet zby2+nL?G3a8?uAXUsBBgr4mQ|X)gObGQSH82*0|Mkm&Ncvs*COHV53i}`eShEhna3iT25V-b#V+2 zq`IpewM~9ie+)kMNv4~(u6k0g7Pnm)lPjb;c`w~J z8KvdeK)I?*x%!~ePTxo>lDifzI$#gqZ zGWP7W^J$1cDz3M-Z>vmPSCHwBId;M7Tee;sL?9Kn&GX|_CjM_(rhBrSu@|{p)*u3@ zxc$csP?>lWA+EU8*spZDJ%$HTaUW~&pvuH=KF)OAKQCBA-dGmH1F5(lH)^XgamCt9 z_v?cftcE*3i$NfjH&z)wMN@y*1CoHJWj5nJa!R}0P#rdv@(VVQt_D2 zJ73M03@53#kED`cTw!M#))i8*TxornB%G%Kq`R5!_#ZA<3Bg4%JdlcI*Dc#r!ae(5 zru$){v3LD7E`|qEv3wj}pi=a+HJR=ozg@6~ractH1F2XB&zh@}x*d)4(2)zC|8^_~ zQn8$W>}8o($eQZ?Ot1w#}m^5pOHTa)l9uJHW z-#FJm5$AfR%&p9vU&~V}5zYOFd;!$zB8ZJDZr`LxXJg~|u zhxnGLQmP!Wx%zF!Q+Bxyg3uV|j%fXsTuuG1q4UU;5nisuCtzidhxh@k?A4Wqmqx^+ z;=F6Pl*51Z&Ep~70;OMJf7Ni|frxlioUVoo5C6p}kB4}nl=cv>u!&wd^ji@At5zOD zW0*Ul^;>d9@3FXx=sh~_iM%Gi^&2S%ugSH|HM}$;9u?comqx^+;?iokl$_oearKQ6@jE8t zPJEL|+i1A(DC*tCz3T>fl_VY&r>o(@&OCvOfxg%P? zC0FzchO4iuh@Z1+UR@zt!v#SvZMgb^OFSyfq2y{SNw!Fwb( z_7>Tt;lcwE@u)am4Hq6f_T)Fle-WD3XA`_Pq$jM9Z?Qs?Z#pY#G`cYV zMo?pXKX(#?2(eG)bqVV}zx=e(D>?JPw2(?H#A^76{x2+v@W2>Eh`pC0-p{NO;ejzF z5ltp)t~UNOcD0rR5&W%GVlS)+tSdwyl~{;ruF{_UFv0_45FvKY@pvEtsl-A|dF**$ zQKaM;g9x$rO7d&B+f_v$YsoRDB%;!eL?7|xO*zr_@H`+&T8vgIvG-CQAIzTIT6thh zNkrLM%A-xIYLU7^1b-`)*wZTl+XE3uB^F|ut6|%>MM{n_h>&{$@pvEtsl-A|d2Bd! zI8t(qL4@3IP##4yntQd&vIG%GB^F}JW9NYvBjvytM94jjtNa$65UAtz66S#jq!J4; z|KAaQW zxl0k3y)rm5M_~*i`mD(bE~VW;nGLWU7=sA8^Hs7vc>X{HQuSL&9@-Wvk3SOcij)Im z5HV#*PH=IKA~aXb17i?z^xd3bnPKq|7=wuC-_8j>^=L^1w;;wK;?_5Ef)}+{#7!eZ z5m|yUh>$yY@#+c@NcHfmIl&#xl?Rp_V-T@!Bw5zgiif}$L}U%k2~Mq`h-2HPMq~-b zAVTgd#w!ORkm?h%@m%(|&Ya1a|3>CPj6sB)awq~zjxmUM=T73WTM=D*T^T6{#vnrO zcE&3QB9Ll8+nnIXTa^dq3S$uQLyMf?$j{>;Fa{B4lgY-@QG`3|#z;9Z1`%=(HeNXp zfmA!H(Jj-}$^*-RF^Cv{X-@Eym5S)_*)5UYjxmVflb_y={4Y{h7=sA82OTe0h(M|;KgY`zOP`n+?-sVCJO7((s4Fc8BVu9z zasMZ@FB)l&!ONO^waX=si2;P%GLKgdL?Bg*m1Nf$=~tL5j6uXbWO*9xyZ79l7-@5i zL4@3v*IcdXQWVie5rI^NQ?p@2wU~A^A{j6S5id{7hH;MNz!*fto|q*3_C=(ZU<@MI zl4JPYS`Ora2&C#Wm~s`7aEQPdM9l7)4RRL|7=wsjUC6>XBHKIu`e~#b7=ws4-fLI! z%7F-^+Im;^|1;xY3?dHRnhop_>}fmM{hp4xMI1H5n{9#vtO8YqLSWB8@Df`(O+r<|k!?4)>m2EwY-x z7(}qui)zc{F>7>G>q7)m4Wbj1sAl6>G(sE>iIdAY;BFuKTxJq+cNdsdxpj=MzP&|K)f@CL#i09HM&h!1*okIMt8cm>euc|}a= zS}jsnm@A}WeSXa(Mf`syM=I8@+fLBBnx4KP!UJOv!7G46?<$Y{&wq-P0})8YD}c4D z74dAhDRFrq73=fKn-ziOKpsfN`gOlNEypisH$-xUF^J$5K!sh(5TV z@ru6A>D%KXkc##B3V$h&N(DE?%@tCyew{E+%hBigcOpD61`)ghNJ!AVz60a>MS3D4 zkcw9T>6H{w_tB!b2&7_tesMKLV0$1Bq+*Ty{30#K`yHSBNXG}pAc9u__BG0*;>5*~ z83z$a#rpi;brpfRLIhH=uH89bb2a?SOCz<5F^Cv`Av^eKedY1Xst$1xNX2W0ZOMwr zed=7K4L+C3rRSMb?sG{A5y5MQXs&wCecdZZ zNd!{ynju=d)E<#uf;^ClR{+r#)b=RJ1F2YtkM{QTv)#RN@a&8+h~PCtv?o&Ejr0;k zAQi6wqP<;nRgwo%u|^)1C2P7o8R3C3h~PCtbPS$8ofPRMh(Ib{Geji=$&yH$BLb;H z5ldj)PvqJ~1X8g^9+mAQ2aSp33S$t#Ylf&yymsin5ltTvNX2W0sHA@M@hOpVAOfj) z1rVJLusslgRIHIl=kum5zloFsV-Ue>hUgsi?)=qWuDGrcfmFO^h|Zie*G9^L2&Cc_ zKy-G-av%b!SX)+2&6p%3{joosSWQ&dLkl_iq{NLy=2rqug2wpRJ>-0 z>ONQwN@Kdm<$+YZW{B$47k7)cAo4&eZ_NAeG)8 z5*~CO<@GDBD~v&e-mVb@oq0v(D2yqI2vpQ_wewGp_sYRM5W(L{#rJf2rYQp30})82 zH+v*kieMfXg9yEEB#0^dw?)cEmgmo z`O>^dU11C&_?A$QPRax83K2-9_ll$id#`;m!UJOv!MBpsiXh5?+XE3urT3VG2iY@3 zN{%sz;2T_JHfuS^W+Kuah(Id6^Cdi-=7F$NLh=~~Zmq9qyQzXvJxj#P5jQddR0 zDn`$1F$NLhv0HhJN=}JLYD6HF-XD~592wCoQgVzz1m7#XW~%bQav%b!^d_S4Ncwz7 zga^hTLOip_#;fzOGT~w$5s!*($245*$j*Mz z-7VkwlxGR3R)uIg##FI(WQfohrb4uS3y&wi*_e?=wtZXo?w%LCa-iKb zzc_aK4`~k#7eto{eXJ@zA|4gzM8hRle_nZydsl<19uIy6Do_tAeDX#kLSpCw_ zkvcpxGk6{oA=!Xxp%RnAW|a#@yOE%NQF~#{;=z{b;!GKtwz$PFKT)2g%*A z%3YNDcq>7}g~u*Jr229<9u=pn;lhLFs0^K>P$J{Jq~XGY=BNyvqvBC z4zh9QHpkw8V?x7)$A)I*-0+ivh)2cgYPj&YoZhHf`cH1gOu9|Zw&%Sr7T*avQ?m~c zo#*-6n4cP^xXVAu&3K8tEg%)5*~&Zn<7(c$5PFgAM2dU)qHy{!@=|~?I_q<~m=bvl zJ(}X4{5PE5i*DW{6{2Hp&(GA@Yn^YtHT>)<-n1)#(M7iCdld)iSL9fA@6J#%t8wQ~uU2KRHQ=u;8C$4!kqXgx5>Ic2o!;j({bNdaJ@t~=1v!yBm3WGb zXV7$y{<8hf)M|O*Bh(&9h3KIx>AW^_pR?+TgVwLD1{dB>wTt^=xT}WuE+dk`VadSb zTyL!62``=x(>w0&R;SvzbZ0q@L8L-7ONQueS#$V+lXFeWaF9ygg3ihHZYY)(&+CmD zaqfV#?NrO~cxrQ`LNwL_Sy@oO-E>!7=OES9nfW=9d$gE$JWDs`$IP8h$N6=gdx-~9 zAsWj>zFr=9s&L_%gVreOB|P7$-J5t@sN&t|M>{!VihBa+>8kZG_CEAKKwh9)?Xrd+NU(+w0;v#03eoFE<-kqv;=~o!fmV~9D%9q9R~yd_ z@Yc7ND@${QREWkC0lFbOah)^!_z)+D+GF=*lDqzmZnPXgy8~L2zrN0Su>4Txn%{f6 zNQLOv$*XJhHu-|4i>$V9&2(<0l4E}H#02lV(`m+yi>$nvGoAY>S4f3uEFWpbBoDj& zHzmWS8HdNYTBUOjS05QX3ZnMy&sN&+V9yOv+rC_ zS7e{eQFyL~{&I{N)G)(p=xlY?9PjC344&PgzZ_#OzAnQWJa4PhhUyBb5RLrkrg!UI zPSq>RSTk9+lRZqNx06kY%38FoC*N(Yb~)D^O|YKi-VRiV<`EqA;?bTM6{7L9m;4U?dBCc8SIdlzRC2V~`v1MEtSUNSZA?zdC`)4ysSu5pTr>u| z)V12&x6`Uk2(%ZKcCO-i)ew(Iq|bRiImQmDYt8Px)4GjHj#P-|z7Vz9CYhK%zEY8s zM*RxC4zV26vwx9^>Yt&C$h4Q<>TWB{I%SD8Y?+`}&Zxzvl#}E7cWJAsXi^dhzz; zLFbDWgA2#dh(gT*brG~YG^QVE;D1*x<6J|z;&OxeO zq(U@m9Mlu*3@+SEy}dE@_L6>_bbO%A4C!z~2NdoP&7d}e~PEhXfPq>>{QqGQ)lJ!@uIS?_JNQYlv`Wn{*YwINC+W9na& zVV#(`)yk%xh*XH?IVyUOCBNw+XYHJsUQa|F2ge=iM8KgLP#;UoBYNBE5*mMBEt+W!q1r_%L^F@5zokp(uCp4vHN?4@ zc%Ww+w3$F3IkaLKxz4IuZ>aMUwFgomnl;X-l|^yuMV2#Trd5#;ECI9}tovv=SV}~5 zMJ2bip z5^hjkC$;BJ>qhEVysp(d7_zRFc@Xa#(Kzp4*ZJ+ioz?&v=SYQUSqbaRIih~Z8qj}& zGlWJh);sFBsQXec352ZWk4|uoQ8|zb(b!JLG@Lur=~;J?mEq3@x@Uns1A7e3A1}{z z_BA7fKjUai@m!*4oY4L1gQ{> z`Xfo|s%69bc8|7sKT&jpM6!n=Kf>h2zVKLLFzbffBi|ezi$E$w>o=o~Ia7IsRoH&A zb%x4;J&xNzJ)>a{HRg}YS6B`2oopo%0;v$q?G(M$NIQ29?c8PX&K>HtsH>w6Z%ogc zd!1p;w`QbMT_F{sQ4c2nqA$<1GOk}_-A}TeXJ>6S9Cx^{MZKLy?9VqXvT9RrM=C_) zcr@mvVH2GCtwPoVlq=jrVo9yu*I2ekZ#5PUn&AAK6tapaS4f3u+?g`w^uV1?zdP$% z-H8Y8O`>+sGpeo`sAoK}(|P;7y4EI=yGVs-+{^T49E)Zgi)S3%Df<8Y!~Hj8f;FH{ z$f`x-1E~;=JB7x~tx?7*-)5I{3G>M3wZ3>|M@ml5j|cXdE}j z{E!xM)(@Cq9VQ;E`)H3tZ4$Li+F_|5a!C4EEPap)(X1_L&o}11gAX~*znh#}2!WnF z(E=NHKgo;vr(3NT52QQyQhT7EGqj*Xk7>rtdUdNcuuX<@f_e#3AsVgejHz_`pff&Y zaC&u;iKv&L-WIFL+?~J9>bqcwl}@$G(o*$yZ&vd)a+au3Eqvq9b=HGd47DndY)2|Y z^E?>U^hej&?94pzkkg$?j(cG|Qgyb(y)%02*KBr@{(Q)(OOgSp5RJPO#%#EBYsUV1 zd!4_C2lgLaHR5WL+WgR#j5!teI(4W8kqXh+-;CM1zh(Fb+KYRh`W5c6qLnx9$r_XY zSW5Wv;|H8usjiR;(WsXiGx7PB;qJ8$IxUXGB9JOp->uhlm-TA-GEN_^E2?+Z!spX| znQGzaC69KUX^*UOQGzpodI?e?8qZtEO61Tc>)WOeI}@m`u#cj?gL)A8fvmCF(l$pb zL}Q;erYJ8ZWAX0?tQJ%bUUTZrTUm3;nTM=WWp9yo4PI`UQGE7*)r!i2REXwPYV@A) z?_GCVKfF`d;nO9o6C6c2x;(jSk=%7y?jjYUu@1d?(9wAiwN#WJC|8WxU1^0=xASDn zp>iM6CNKr*6<7p&!$LGxUk8o`S(NC15~?6g=k!>8`G^< zJv*UDe4fd>5;Z){Lf(I1>n(k)LcU`W@u*m{&~VW*{`sYyeTQ$!A#WvA_jt(L43e&X z3!=kM?d)MsizSD~a83}d-=h26-}PH-5c#KKZAsoMk#fkpBEmz%1<{2N1AIh0D$a?9 zORiq%*~Q-4Ts)Y`TM1GQew*RM*VRQk^S=c#yI&XkWJ5t96{7W9a&`6khE`&p`0JB* zaHJgaUX7GP!v*o++J@FsJ|Z3!=S0ILSM$r&Jjy`-0f8U<|gVh6@iw#G~SLHC%X1ZC=ivNq*?K&E;(usVjMdMarS!!UGZU zs5o5>7amvM^Md{Qgg&0-nY_m!Z7%OLRP)+g!-YqMJ72Je6$m086{oA=!lU4h7wm&h zAB)SuF=J0u^~MLMyJme=kB5c}5BKgD>_4&u5s!+~)o|f4|FiCPdJnOn(;mk$@*aou zT@4o=#o_MuGtUVk9u=a6$Hz7AvG1rRHeNb9IR<;ah6@iw#G^vA@Hp|=D7*fljh>&o zTi?$LrcJ5l)m7)ES;0eLX%GD_jnEk8j%fXsTy?&&uidEAw_clT$vG`~S48Sc!v%2{ zA#U;!@u(0jxw`)Cr|j+R#gnHZIELR9shTD{G+cNb%6rQGrpGGhv0aa(#-mbnH9`xI zL%SMU)u)W`R*)lHh)2cgYPj&&QYpi^& zkyvYyuP)DUwtlqLIzT!#QXv|5cWAGVb|pdq@ijSRNtWm5in-$`(r?MtBZTN#wOq`o zH*ZzS~^Zw7(IN4sP?0J{AN@AEn~@(Qv7&F&F1$1js_@ z0_*Ld*UGv^Y>H41rq#rKc^Pxh?X&J8tq-XX&1;{iua|qzBsh72UDg>YIo1j8*5NK* z#1_Y5TO6c9G}a;Q4qm$7>T-5UxHTbgZxXGv(0YsBAN+HlRd{+zxH_$bkqXhc<7v#x zw@$WtR$Ji=qmtu!4c<6J@9$*Y)?up19jOq_tD>kEk5ku&tX@w~u$oY=aQ6(?8}t3lmf<6`j=G-u6^j@>U$JLiFZG>Zb*vk5noye~6{4}7jCu32{nmumc^QjnHb845?j>qD zfYwRI%=vqtwS{aAj?(%ZsSu6l!^TXiRW{>ifA3XgyC<(`_Q^adGpFvP$~dRp+KiIB zwLG2?t=}@v$>z>cn>*Y$#GPi`fu=pnfs>sb*RQbdI!cln_M;Jv`;5j6s9DBZkg?19 znq)iga;WUX^K97(5&1}`$Yf`bpSsH$NxcNA5RK>D#x%cdYew&D_gV=gOHj&Sx+s;5 z*?D?PM#FM@tqMHO*N7z$zZryRg3uV| zj%fXsT-D#VCA_`vUgt}yU6K0oJ_cGbqQ#~$4X)c7o_y6_XB_n_q(U@WH+t5%mRjSY zv_!iVl&<7SCu^&9ERbQnNc{?_5RLXMwA%XTA*;x2wzg8P&^i)NNn=k&M^@hJ7_vhi zPLdk!5b*?@Pcx!7i>uYy>+DR~8ZJk5g;a><{TbcSBi|wwM?1%QH*$Y1m+BS+C)cITIC6Wu>5 zq`KccmlOQ?dr3>)CYSn=x6rk&jvv_WWHm{2Z~ZUDMJhy3>Yo!Fa71&}poME)`cabG zluACMe|98B_ZB!OeV)$_KK!>LKCACq53WseXO~HJkqXhV`wUfoOt!bZmgl@nh;>l! zy3S-C=W5X%_g2cI&acV#d)@P#%!`SK_ll>iybz7;M5i*%J3HkAP2H!ccCk0eo8D4C z*n8-#=-SRsuw_%X?PaMhQX#s0|HF zJF_FMly74$pVz{!{Qa?v4(C%`q(ZbxIBD~0kAw>+{+8m-ppq{ne=Aj533r*1r5y71 zwzm1Ili|YPp%nLH>Lo~35?#5qmZSEG?bg7$iSFD>Qr$=B^j`ZFwi>o3oxbkeZjHJ= z(H%pzi&Til9adv{cgwT>+n4N)r+&3^0=-RLPPpqnC6{*4o7s`^Z_E_~^Q>17CA+WF zs6{G7$L?8fKl7)v+e~sgUi5$+wT{-;nRsRxE3b}|uVUx1QFJEUvgK$i^T|f;XJu1e zO3+@OtUh zI8xtma_GflZNU|Di=44%E4mi7IZ`1SN3by`_a4jGHl>BzgxY+*L$(;rq;`2te&C>_ zJN|1LQ7yI2D|~h=Bl+zX?gVN;C@4+c4dd`VBO_X4&6QF z7F>B>cBFj9JUzVF8d4|0?Ls_ar~s||qSD(pUGF;WRwcQ&Q#nvBP01#CK1FhZa*STi zy47`VS()T+As$GD=yi|ffV`T0TXTE(lw|9EDhKWx;z+G>In~u4RsGqZR>$Ucuy?XG zjCu)DAsR=pF~jO6+V>vcZtbKI#j^d=gH^nJDwgei`$@Vy8~jSIrSVKeHeNIvq<^>F zdY2GLg=n4)zM_}Rq^=ehZW+uJhx^hjCQ$S-7XD{5F?rBk7%}_}_`DjJ^5qd55Mye~MLNv~HWOFwp&v|W6 zvU`*e&)%C8kqkKN*Ls2M*8JQWlS7D+`;*e&QJ7uZzbY^REQp5gRHmwkw$lZw&Z368>G00i3g4~UJ0E)?2p0S zQ3+0GHx(vj%)Tzg{fT8eQo%^Yu}N#3;_5^D3RK*V3E16=+1E>|?EX(he!d*=2OoCNd8$Y1-LpKyz&_ zA&?5uC@YP*G{4B|cC4bipJxM*88~O)Tw=^^%Zsc9Bt<(?Igkp`C}T+9eJa`dn_93L zwIJpfr5Z{*8nw?QTaQsMxs6&7sSu6jqZ=aw8`$^7gy=&XL8n-6qr%QCi}-L+NTv_?>*G0wEeu?IIPT zaXiv(z+)-)9X~kfC#jd{>W;Yw%FwFVn~^)LTSMPB-=XE`c09#?d`~$2T|yugqID-# z$}#@aW8v#*R+~r&9GwqW&56u|IGX8o`7_7D_VgBRcalCxh3JLl$@gbu=Ip$rwq5Jx zd}|-|T^u>AvA#81+8IY0={|F7+dDqZw+2&PAr+!otG(lHZS%!-6WoSlik)$!Gpwh( zRw`eA`Z_0ggd`4^wlTfg@bH!LO|qm`g8S*q#m*hX1E~=G?4+E?tWCR|Z%=Vn_^;QY zCaiLh*UK6%Yv;cRvD`<*qvBj?xU>ha%fB;~T$?nq=$dovy6Anyk{a3Bx(RmAr;4ov zs$JF%wl0vFlV_Q?0#duIeN0c*5p`>w1iQhoVrwq7AW|WkXQCeKB_(5gJ<%$uCwkhl zuNy`!*T>TA{P!i3!tar!KFE?9dIM_S*n5mw^L=hOf$k$$qEU-fh(?W^=2~j+?$s0A zT{NF#OQCLvEo)4*amCIbgqTisg;a<}osn!m=(Y5v^*UQa34u}u^&ON-v|>qbYR{|R z*`gcLE>a;H^&n&XJsIz$8l|X8PVP$@9vVSU(#^tS6h>++Rc;1KLf5mbY|dm zHC%XnMTnL@A|4f|tKq_fdWog03G5lzccWHl+)IMwRi%x8S0Cqdox?dN8ZNn-^4Z3W zEM8hRlG|nv@=kcgGCmJrf zD!A{IHG%xraPCmERBe*e)o|evCd4=&5s!+~)o|f4=YdsLci+zha@W-sr>o(@V?H6e z`G|N_oUVoo4}UM*D@V-Q+1JiET@4o={$99;z_wK?PFKT)$F$E!xsPAI(c2gO;rd+f zWR%l7*f`hQ7iB8_79O{380CKYf*>@8sSvH-!h@_VT(z=zzfNw%vSLsJ;^A9d=(q47 zD+^bxEHsAGLbQGhk1gcYXmabaUO6;ZoYs^ZawDgt`Yk-ZCd5P^p)s5mqV-#N{6#$^ zq4O#46nRR8TyKWtv_3Y(!`E0fToC^f;;(xJ5swPdk}Eo+cj=7Y<1zi}Tu<}j7%Z)R zmqus|b4Rp(ORfgKIl}$>n4E2EOL1CQ(;6;_0fe~txFF(DAzE_f_Y&{inbT4W5w20S z9MN#$;rB!j5s!+~)o|fK7DBFC2yw|TzEZ3=IEQ*Ztl`3gEQDOO5Q;~o}JX3 zJRaH`I0kD$!=)Tedv&p|Y9@$yREQQHzFy+-U~QsiTd6D7MKYU6IrLk2_^(k0V>m5D>$mVAn^ae=Saog5Y2lhfzl8@PG=|ecw0;YZ2RC(h58oknmfq}~ zFY^b_;R7egnU01F;yyzB;UnTvd9~o9C0D+_>(v$OgZE!1ZO%F_pAU1o`Yi}w-}Mk0 z!&HdYZ^_jOk~}?00xOR^A>D?TMTgQt7ww@U6UK za>Z#OTEB&dZyoI+bY|hSaHQ(D@bImpJ%q+^T8P$f;qmZeUEKVD*oAA`a#{=j%<(MA znM%Kf$Ag6Uz(;5dQz2Tvg$G%fx@uvHxf)=~wzKJbIIN${#wdaz^fbBvoTL zEkvU(LA&QkRb5?k;;D?DM{v3tE<8x?y1M3!N5%X!T*^V#xUO2`YOXjf?D_gFJjfc? zRcl<0;j|E~-@=1t99J!uhaJfY{`I?zL9A&FFO7&t#W~S%$yK$1_1y7$<)#JhOkn+J zxFG0mhO2io;!$x1w#}pmFZ#Z4TT?)sqcQSHpz|jdMqDbHt+~ISHp$Ju*T)wfqne@2L9&H}_xbUHvtatNG>kz6-sU3Ps8yNv<^Nr9&R1HRhB1hUz2`NY>gvVg z7o1P#nF5SK1m1}yKVDSwk5652Ds5hrhB1i1du+7koSA9Ab-i)ziD%Ye3?gE0xRw1h z)4p%}1t&akRvN}20`KjUwc)%>yJH>W-t*1WH5h{kw2h=Qudg!gg2fk{Nw+_ghB1hU zwVM2!dV9_V>4_MFh}e7EqnBseUzL&GjxmUce)9`1v~%a^&K=4nJYCRm8MU-?=jhH| zJSrZk8ZM)@@tP#N<1Mc9vVYFG`W`uv=5+$!S7R!)tTHB{Fv+gj&~*mVSrJn4*^Q#T z^#|#w!eev86#KPTax>b|o<3UX;Hec__0TC(JR<$ulqA#o?4jy{e~Vcb!PFTOSM;uAm)yPD`l}t$P_#j+^sq+b2fkJBI9*(9Q}= zi?v`(0i9q~bn>0csT@d!Xx;-*9o{=*;oWoZjK!1f{<%t2KI$ou>|fJO3z55?W*MJK zC8{EPx$7aM$8k)obdL2W*OONog9w&< zQO|h3+_hNlVhkc;Z>;-r*LvWk8`fY9B3Ob)JxBU-*CM&Q24fHr>!Y#4(oDNT1!EV^ zJmbwD>dz7pJQKA(T+Oem|CVLiOUoL2LHAi}Fa{B^HmR?y$h6BO7<xmeH2-XbLmnPjm7rE>8c8ozp z^xJzmD=Eu+5rN;%9K0DgHmkMFdju zchr72iW%c#3?i=jFefta(!Ght21jZaV@e{_>WTc3{ZT2>uMolCN>z*WUA4c9=85YH z5lF?~YRgR;*{w$+xxyGk-2YAvSa}cLza#R_55|;4L@fcY9Qj#X1f!LTtvb{iB3ce^ z59EPVXa{0UUgo`#y22PluoXen$|A~z-bw+B6r@7C17lX+b(Pn5Iae4HgCKj@|E^F= z4&)Jo0IFDfhT5I$MR|a2EmLW_Y$?0@TovEWGKL2rkSf-;77-YO2(&ge=CzlDkr9P4 zB@uTX(_A@+ANZL0a8E=8e=8MRR`uAW2+S2CkP2toH;yXA|#e#Py92>wm>rKt3<9WPZKL+4 z-5qH`jNxxhmsc5!XO-l^?STlS;_v7!h{21T$f(5_M2sinV=%E2v&F^FIbV;zq=0!4}<0;$j@*_b0qsgYb^ z3?leuM^s+z`EaS%6FFCiKq|ZoLN{4Y&y0*gj6nq3=||;mv?OC7BYhWR5W%;EbiRs~f^&rkq>8;)L^Efkt}q4>Y!@DX zK1T#n#afbg|28QyJ}?FmY*nuMLu@$^fmCRRPF5&0%13x$ObjB%iZ#lGS`aMa(bg4j z-O!2qtw*Cg;6@E1&>q&9G_D%z7;gQ~s2&9VL>-%A$@y0pl3S$rvYqPE8;J%9pq>9}mqZLaeR~Ul` zwEm8AU>=A-D%@eCo8Gg&iHr}7K}76*gD96VF?)ST#oy8O;O_iuyj3dK6~-VU)<#%) zltdsEe@EA~?eE&`wFj3RV-SJX#>#>J$0Cr5zoYB(DZibJv^mBg0&jB}bGFKNk&+_< zsbX(h+}A)}0q2rq3?gE8gg+bjv$sCy9Tr3&72eYzFM{LKyj*d~F$NL1w@f#x>Zf`8 zKIe!BB9JO}57{JT1-Nc`rwC&Zf&0mH($F-;zBo5Gd?(#xMFid}LEgr6YLsI4FFPsR zhVC>V6{2zf+L%2lP3_ZkD>t8R17dry&6QdLV(&5L)r_Y0zy_V2Bg6x#5Y0ATY_}+T z;f;1A+aq7jv&z%0U$kPw-j1V-%5gN=o=dk`f4z|6jSs!sgXoiR7s!}Z--gpi9Z7K~ zkkvhEeXKKP9+k6A)E{XD`CK^tB)v`6i1zf63emAv#WlK}a)z%L3v4`>#gk(VmopZ! zbaK=JJ02C+kA_QKz16Kz`lz$iZxAd*WBLRe*MX0XA6}BsSu4flxW5| zS6j_z%#=6=@F?XB|aP}eVze5%68Y_yd%5-9aRESplD=9~Bx-s%>zhdVHLf{<5 zb}M?j2Ioh56RCcJUHPSAX9u-8QX!i8MepNunAyi6KNH?5GTwa@ zVe>eQN5y&9a484fHwf!}1GFi?Q+5p(9*BrX#p!Ce@ObUc=JxGR&~4d^Q|)@!P73av zCa>_-x@b~xmQ_8-FXU}*I4L;eP6;O&(y6&!I5OGlN^j~R6{5@jof|woPSD1DR6oTY z>*QuEE|+SXrjsHs{q?Lc$$PDrc@#FE1n>5JdVPxh?nk*9pHQxl3ektlP6~GWtD2WX zW15m=7=A-%Ys*Ec_Em|Kf}j5)`Nf=I4#`>|wWYqw8BO z?Bf@XWmF&p)_Y88p$_TXfbI_#|9dRsEaeKR5RL6b-dfI7v^UWW%{BD$;;?zS!N>X~ zdF5#Mc5d)}ljP-OZb5Ev=#3I?%s;p|k%xq!5OD%|0h@MKm{1fI0 zn!HWZE$p)gw_86@U15IrFUt*n{khcWjxD*tQKzJx=v1abqJ96b+pSr|1E~;=<)e2@ zsCLKwcPzZfuidV@t9p6o+O7RcRe5KU+T*_M{;H$Afu?siJV}C(OQlbJ@Txs`;zT`lq;k{^e1a`f@2@jF_<(g+4_+BRvPto9M6wG zPj3`W5GsD5`-Lsa;}Fd@sibK7Wg^GuyHnq4bz zz5a8Pgv;Bq&B)54^W1RZFT{gq7NtTo&nv0*b^fSNw|>_z%C~BfOvFBlqX zNQG$b(}9YTk}y5mBKapom`z6`^%kS+oW(ar8JC6^2Roj@pBy+cummBht;*BURA&(VB zW0~kRs3R%%m;V)}KSMlF$HAT$+jloo-<>!&oZgY@3aJnsqZ65Xf81_0PEK?iGY@Df zmOlEjIkv1ZzPxf-ULh5tSzfK%r|nVYmt=cXuRP}~;=wacna$E3*akdD&3a$kqX*4V z$-VQO>NKK|3eng$}@UW!$zv#yO5=df|v>o1{bAoexNgA{CBp)=Mhw&@p&^e?|BGbwySV zt<~7pS#Q7NDKgtSt7jTx-Z@jz-TZEm^)cOXM=C_)`7r5;jZ)k%-^~s8B?Q`j;4MSF zKPan-p4X?i+g{BLlg{8G6{69?gLXfNNA>x+89Qi2&j|G+j20=(gFOlgk7IRG+|w`R zW;7=2Hl#u{+L{;>AWu_c_9ojWsIK%z1*e6(=eS!>qjo@^wV7tlPLwO8LUim+i|1D4 zTd&NlZGS|285o1R=a>?Clv|u{wOd@<9!flr3ekA8hju?^w{UY?9naWKdop-u6ibV> zKt9j%TDW}=9LtzPD`BKUG}_G2N_a%EwSaV!J7_Nh?|;sXn~gwdP))>RF4ZO$nmWs>7HJ^0l;dO1{&Ca)nke zcy|TwY|xv<`L*3fqw<}`)Ju>G(P*hcFZZ6x4fnV%#eRZD6tCPP{=4B+m-hhF2Rcd7 z#7W`rNiL2cD^@(CjX}e?DtVzL-#*{h?QC5j>rcKDqrPdX&>XH7RD8dd{r5|I{FT+3pOd_1fQ5S9}veZ!)6I1mFMA+lO=>MTn(0B-#V01(6ET zXg@*klGSsqpFd2pZ|1$e+vPSO=NC_xaHP?_-Da+JjO>K(rZI?Ah>pEQx8jcGuGKHu z+C+U9>jXy;jxJ*+v~BMGxh>gp$?peJAsXwDX0@iB9rCwiv%e+YL(*GqXq~{;(R}kw z+T-sVJ3A{{Hnk^Fzd|ZRquqfqLr7n^`S5n}c&en^q>-dDIh;3em`$c5!H@_6oAVW^Zq3Pl+Nr{?bUv|sWF`}YCcQ}i={HA1g#{;#?FBfdYU)==g=n1H$?|M)o>TO5vK^xK;Cmi?TbA1#M=FkBdJB70 zo>P-n6g#Q6BNd|2dW+r-|F)r{uX*Tv$9vwqW3GKnzy1AoKxho-3eoy4(x>}>qns;g z$F>%g1LZ5`1aoN2T_;C5<;nZ-*K{idsSu6w*n68JtZ#GZjLiAPoancd)fJO6KA_t# z+)MbRO7#-7LPD!2I`cY|n{g#+GAu=r3eoHfDXPiz+jT5_XhsXWJ@LSjqjej$tT7M& zb1b}oc5Hv3F^E)%MxBT(;^iF2v%1%`xZZK*)Nj9E$vKXP&={_FMC-S-$6WGXdgmRk za}V`))b4P8MQxCL_LINmo9esHRMz2O7DhDAyT()*(8ztO)@W-u@!ZuU5Fx1ZI zZP_7>-1W;wS$9*LBNd|2Mx5SioLKA}ptZqL;=y++*=q!s5G5x{R622gzSyZth(h1z znc5r2puv_m;FCWBfB=ujDFUxwNRs=(p6Be46%w}6_OF}I%^WqsYdk$oSP9H|hEdk)k~4ko*Ep38Hlk!;7_fa^@`J>-G^r)2lG z*YljIR98raXk35N3GZ{^!uzS@Ur@=huFx7ccE-8CRk&~v?OPU7Igkp`v9;@aTkv|K z>gU`?aSf>7(szAt3m!saxW^${zojSoH}5@!&fA<8_Hg|c9{$aH51}!f7NYfAc#!87 zS3S4rh~l&`C;BZs_B1Q!E_+gZy=V-lg=qa29)Hd+a(a?R_C2*AmK<+EphP9x!FP+C zAIZ{U0m%}iLNuPjPd|r|ff7SGaG8E3eqK+K)$5 z+<7Z$hn^%HQXv}m8R_K{@++d=VRXjfI>DZy-%?kI&={^0MC-TIRR*0>FRznmpQIMV z9SGFbamRvgRQ<5sdXKz}|3IS_sSu4iyfIyy_jT2~nARxg7u!I;r5xm4%vJAV8pHWT zw0=uD$mf}>Uea_;#%ZCRpy8zv@u(0jx!U%9J9n7xp-DAXj=^*_TzF*dY3H{0Jv7Cm zLbUK8e`K!uBh!*|4C+++T^gY=%pKACExGbNw|LS=^>a=O^RD5g5%H)HExGbNYw*+kmdV4XC>~oEFLt4HpD^z+9)V34)(Y zr9!miicWZ4wSc(4Tvo(ZWq1{`HuG&J+FzFyv1g%^(ZVG67P7LSa~vC~5S{YJM6j}` zOKK+fX()Xa{YC0+2SA-qF=p+ ze6B~VkPiKIEPRUWqh=D1*XLwMY>I}B&5qa!;r^t?4y(GMs6|s{UFgGh= zC-Z1H3#?u`(HZBRbk_MC^IR( zT&r>@$?i)fM=C_~+3o8!w07zA)uq!{i%(y%$Kklc9!e`n-U}zhF5-byh{o|~%=*5K z+;7Qt@J=enOWP(!YzMI~UHs=numrq~5WOpmwpI`VsSu5QjBYRYO?LK?MJ~NDVq>q~ zOx_UH76(TG?O*jvcCIBmuTIqFNQLMh?#~A6o%^p&aF2{CwmQ)H`MSHaB6e0dwtwrF z6|u!4|338-++oibTklcrA{C->%p3E}`$blr;}z{!spM#9g;rW@!=kodbW%+=EN>pJ zXw!bXXZ51CT!==yEMu}i$hTU)TiaeoB}W@5>>1c&jA{06zV+RL+V(y|AQhs~W{UR0 z%TCIeOIGm*Y1F=7neOEK;~cFR(Yn!?-}dEZj3X~JL#SUN6{4@dA_pYHz-vZZt4X#m zqc+F!j8F~r^%c@k`=Lg)0u2T-uQJI&fmr$A|4f6h-kQ2i)^6PUD#jU zp;YU!G0T%(oUVookA63lb9eNX^A5d1_{>dz3g>KN>DP5D|}x)75a{aof}p?hgyam-l1KCwjK>oL1xf zi4j|O4KIy|M}=s~)mid;Uf%bVZta`s*$8tCYI^!z8lf@F9ntzNxw?#QC)AwQ$MadE z8Vjd|dDn13R3}9Hse*_{g=ooDT9;MM%4y;iJsjn#|&CHF>+TzzoUr0w+KRGxP*w- zZz*}5!@1$M^zz9&lq;6Vm42!0ac3>_mm3~gk52SyFC3{5&AR9- zze-Bv0kKwR=Mu6Q*+qM=JUZK!krMKngDpO}epve$ez)>?xpik}BI(s*X)gn*5Y27g zy{6XH`Xd$Hap5B8G$B}<=-MyQD+lXsY&FL`SoN&0;t?@eeg;S!=G(r+pG zJVGpeUl1C@{Rh$dE&XcnH3{z5BZ{3cm7L{ksD;!bwgKyjSM=5P7)5&G*8_{4p``L7 z6{4|i$dco_M0djX+ntYTuMb;_HFCDO|q#3i8ZlsKv+QL0TBMPYy%{u()KXeS<)HBZ-Me^z#)h_FUDzDUX znaiQpty1!qPvu#42vL#BfmDcATW3a-y$_xAof%o|{6#$YR)V%U-&W9Z$9EcZY?5S1 zPO!()8R2bQa-c#q-)V^Ul71t@g&)u!?*M8KlsGtwaCFh#rTui8L3_MQC|5{@Xx346 z1e5nYI_La=`fpF_B|Ou!tvuHW_SeJXvpm~+Df!r8#ZLVO3GNvx2T~y#`>`?BQ_0SE zcQ*e&!p=KBit79OBZS@|R1pv&y-Qt57P%M^5osbKHb6iGLqo=rv*~=snCpc+ODI&_y5sf#91jdT_riH)zm7-Cb>}lar+Sfg zT6j=}G{%Wq$PGLhZg+VP&!u9i=6*k~9_Q!cTVNP_X$Qnn8p9exp+XhX+(PD+>$)U{ zoXyHuR;84O*3f&xeQSXk3xwT7qTGM(TR3VLVqMi4jg@om!)E!8v%R5oz&EXLb z`7ZHDh@O<2`-tE^vXotXi}3BDks`XqHL_BWXEVhdRY;?6n$<5B z71o~C8}OP`?lsC+7;6KpB@Clb`KYj5G$X!^-da>4&3#U34H!mOTEUu0EsZxRtz>0C zr-`iW=h(_#0G(Eoi0DFl0Ui^9Dx_sEfKDseH{p?85d17mQA}yW`1WL0*q8LxQ517j zAuanRw2yMP3pq2FpU)^w1lE1Bnx9p&;$O#O8jWMjS$RI=G|i==3Tdn>4P#VJa%fDo zCZ3w~eqj59M-Ze9$KwpX7Fo%Y$)Sg9Ht{s$QUWTZvAsh3IcaZSH5yq$jnJ z$X*go6D%26VrU$W#`Ei>miLUJc%TYt*>9rLYALOfEkOIDN{|oP6U9DcM-8iF*Nx7P zlQi1ZW8KOOzSA33NXz~x?c;y9uZFIj)7bNv2rNHXt6^+{BudVRaT&_Pk0x7Hs2S ziegIBJ&KE0hQ-mIpKHuWI7$*i^aCNmlN!U|Gaa>*IZuq(KyY_*Eor<3; zziS^~pL@+ysK35<2}>M?P=43Me7a*~`{$alQ(-FTPz@YEAfsfb2s5p4q!Hh3`CSte z;|65B=q2n_91{6mhw2vH%kf<;J%28#$j`!2Jo#M{M?ZbfGuL}_mYoV|9ja5`jB!@| zySh0W?zivXyNl9P!H!DmI|G4jDx~Fa?SsZFoib+0-y%8J0NV-jw~j}teV;f#4c9lz ziG`nqwEV4oT<93#oH=K}Gx3lU3s~hJDkSVw91{86N?oUf+3XOb*N_03_#un zItT4kNNXST4m#x>{J{Q`CW&K#&?}E zzKiE#V9AibHL;_{XU=h->k(nGuy>^8ZyhSCshv_&%WKPqPs@T_Z;SzG3-KUA4u4#__^}C_7R%BJM<-QO9tnDu`J2&+6T3L zLZ$6vr{d?z@7f2It57LdSQ_xT^1Jpy-e^AGhnI4Hm>}x zebh)C5SHO3>{R?*`Ca><8D6K%31f-F`a^!#KE@8L>Rj@-o<+7(@pI*O?W2Fq&zx%p z{BC}0xfYePH@LRrb07G*^0y{h)cMS*dTBx|tU_A;)}ivY0G{!|Ur|2M18GfoTNx%{ zr{a*v?>bc8lIY>G%Oy_E_u%qsjf;DK*FKQ2Q}J`%6M7Cd9(tk(R%8sAwL?N%J_*e9y6U=Kpo3c^oIrRG~0 zg|v=`w-p}7`N28ZFPA>&j@!6=Mjt;{{(hDai|HL`d6Ev5w_KTJS1kN2ES2)RCcNd! zBrm0igi}T)q*cTgZh7+=g#29jUHgck{(sU;J(gjoLR$Nv^$bo~&mb{J6+c&= zqzPKj;FR?YVqq21^0y9^nGbYwEC1`e6)ifmZF}19ekE8{t|GTu>G?>l=ksJ&_0QMB zUKO2L@fA&fTgtrW$AnxS_vm6<(SrUm>uO?b0VLLE&uoDfB=T0)MC@}&uq(76v5V%m zIZpbHDjgFYbF?6FB1jYM?(u3WB+!CH?HoQcHCXMvD+H$%lW0MLzs^kL+!2CL(q-a8 zlD2RjxX0+fKWY#Se`Cy-d@-Rps*o-`Pt*SSv10g?El8khz)DT{=g0LcWm+JCs;XNx z;mZ$>`Qy!Pw<3Y6zBC5(Y<}#Dz3Ue$RCUbKgnxdl{JVx<%u)5^lqP)n!KpjMwaSk` z)&HFz7!OooZqf;{7eYKM>7=RecwIQHh?SG3c*TyiIM(M*uucS{n)-Bz=OhtMTIG!@ zqcQ%!WPVsoIS4alUW;lx;q1CwFvlw}dR8B+WwcNh54KuV6u!up&<3<-vi?$o1I9BCz^GPY98QH3;*4&J#VXKamr zlpH#$dJ|6#?|M<5?cr0>xc$kiP`Fm(_Abx-=o+r*x#ZA#FVUeHv}zJnGAhrs%>3}* zbdSmLtD#qEOrK^m%yT(;K9eo@TyDMcjH&i@s(+eZ;*Orl=3G9)bijfS4#M4$?3 z%p1dKO{c@0q&crNin*+lVILS04548p5z&oS_ZK4qRY>!grL-RnBR8$$$XT48M(azQ zbNA`hZR~^B5y^RtJN8e4Ga6^zXyOTelAiVnr4_1>_FvsLjn?73LhEsck`Jsic#Kre z2jo38auOrWR4=RS8AkJJ(NwNbg*4VNG#^E$s+4baExixbKCKT;vd(zL+5l?_!x%v4 zc(tB*HGLe#164@#Dl0k7j#gQe?~+lsWj)UwDpy;*tL8YZWW5LHv#bf>->HsPT{7;` zUKTo4#fd7UWrdh7B{a94;hozy_h!g>kFsWhRkF%L`=~}|+(l8o52rjwm8`g6m8`PR zKI$(?Py6O#6VGU>6Y+iKuK};7V-^3+>*2HyT634?U2|uy3l|mA`2N$`33q7cz>4!3 zo2eF+d0BoIk6Fo^D(!Y1s(0yx@fxeoXOu6b&qEd!(lX<&L-pZTAsL%!?MFEIz;x$v ze5nUz^^PXie-e`M5xs-alpm-<8uN+nu4&XI>=xxYo$q7r$C0x!@!jT89A15)8}%uL3Tu7L5By5dxgRUiTOFnqjiKZNRe`iG z2RG0Px}`MxI-l}fRswNIWIY^*T~^TPwA%6G%8Z5d9`2*mMHSMrT1dy-pc?c!TDR1h zN}{Y=;%8y$!%|7}&c2mSPE;W+E1k5DwXNzo*HrJ4v54MUJolJ;De^_;K7+I$45KpL zZ}89ST`~qx&44PT`BZRe8PHz+!ciIPXk`tbtuAXh&0O=Yb>)!Y8%*aK5V4tv4n*Ml zjI^x&)baRjP%Y;=YGtgZc%XL~pJ5e-miDpqtK~dJEt!K94^$zIr+WIW1T@bo=GA{3 z4<2deRe|gS-$%aFBFLGazO^eURH(xDPF5%BQj$>5lW~t$p1nsg$9f4%29_8)ZGnhe zv@YWam3CAijrEve45RZ)uhAOFt5n*tjADvnO8c$ycA^StEYq|Ln^tW7PV28iDCQVL z8S&t>!W5y?lk|z!9zM|;RY=Q;sK zd5$Wiu^yw-FPeG6f+=;Klvc8ag}w9GG_Q5#c*qzB|4pU6o+s?a*7BZ)M4$?3S$(17 zv2*;rj3$&;FHl-xTMge-e1qvG%n|o8{vx6d?N>t;(%816wSzC$^F+4ml5vG%j(q@Z zd1H&5)>G4YGQZX6l0hehn0rR8+5mbG*k>?|NLqW9=YDc}6C$vUgI|4Y4H(8!TBHB% z&&lZ1dj>tsB%{>oe@BP}l;vyk=?k3?c)O~S8vjq zxL8VER3R;^dbE!sv~%D;+B3>4w(waTTfVJ=Rh%Mx--Pz@BdyBpb#+`=C0ZMWDx}f3 zVXU~>#4~3}daD7na#>p5{4CBj8QJEX9sg4qua9Myns}ajl-{Z{`9KxY(r(xBpf8Tc z`^7OsC9@0i-myQ-SvnVING;F9yW`CDaHzt3mN!`Yp!IMbSr3P$8p{&C1@sP5n?%;! zp$cg%V{~V6(|VrG;axI5rILu=rC#B9U}y~^f!05st=T0b-djp|1cFsaOI@Pl;XOgX zJR@Gh%eAGvwOrTAd#-EIzvw+5OKa|KQ@x8Sq$N(erXEdwwPin~r_G>H;oFHhh;K8U zO+|gRl*e=eKb2inA?=^%IrN?{pc@O4=yYQ&qxcr#+hrIb^qyZDF(a%!r7o(F#xiXf z-fR^R%0MCxuGxm0=6F&g4D! zA3dl2=T7hba}TPJmYYPhkG^zn!onw4)1OkPc+8tewm7_gYpA_*MLHgJ=QnoFe|k0j z4XPPXg|yrrqJ3m_Xy`0K_d)RP0lA}wEp}t?+Q$b(q>Leg$`z`RmfL)^j|p_D{5%>b zD^0ZzuM4;8CGY$PKi6;0!Wc|@wl{4|4lPSQaGnEcjvwDXq?+2=o##Opj`^rh}D|3x7-zCD&mAQX@uK(%;Z~Mwg?JIK~ zGM}BmDsEp1&Fw2b2|>q$&a!ZN&$94fDq>l}R5y$R&FeY$zR@LYJJk%RLK@4MVN|6Y zbkSZG-UliDB@Pvq3@kC!H=r{OHb#VG)by4T9ehnPWh+(?b%P#(#8^jv#fGw0~7x9wGS>eaekbV zmez|(3969x+qq!mru-OQt4l^+Z|ZW(lEaI!#Z)kiqjalPCHmt0LoFFpNso?c>9^^$ zx1h?81FviijpWEr?ERH$8om`e=W)$CM!#F|r zQ?-3?HFP<>AE-ha>lJf^-sv5oH)~O8mtcxwO4Gg~>O1c&7?n|$VvZ`T4eT@B4k zC+Tz`f=7P&MlQC<+8FlXzapi1L}$3Kgo5<}rP~olEO{ zPp7KPp;J}%6M-tE{nrSW{3;|Ym2TqWFDH-Ci4V*JS?|OC3}fyGAz@9($2CeTR3VLd zL-$%z3u6hLs^TC5O9R$}Sb7X2ZpHbqFRvGJ4yRIrDx|S~G>kh-(_1a0da)nHoJR!t z1S3u>9x0Snda^c3$75Rm^j62|6pz;_RHzE1`D_uL=R<3D32R3u8|@<>SQ;>Wu=LP+ z!Dd~;9<`|F3?d(>LK@S}FwW4t#E)0#{1S>ehf2KT3PTL7VeI)VJuQdMFX3-gph{>S zvz8Pwj24wkIbXh;#rG(h`-=F+I*uW>4SC%O-(IKFY9f7~%AL;&J4B@fRk(`^+l+=W znoencht88JN@;~}C*}dZ&9o!;RC4IdI!&BIsoq5u(wH}NKPT<_oj>|sSSY=N*hi!}p-+a+QZ}gPMAdzEezq1?wn$61{_T8`Mv9ugoTHw|mz>a!8QIx{LbG zR|@eAE(`)*XdlfM)Y+?71FYEL6;KRAI0N7=Ds@| zv*4bdlqK#DN_nF*GielcI_>Stp^}Iyq;ZUc_D9h;Ty6SB9i*=TkEF>ribvSw8^z;r zzAsMauV`mKjq%Q=)I}B2vad+T<9f%2p5XUGGQOs?!XB^8rE#udKbrF6wT7N!V?#2g zQTqy2NXvYi_Hp4ta(WNiH=4ljx%cEaelEVj{%`H}f|Jwd(HnI%@I43Ge?QK!fip5D z(^>bE$On%CONryrVLp|KL&9Uod=8T?i4*9gke4ooIO#4r^K21OA4zr$($@nQ@!ialaCQDx`UgT>1>uF4=HCV<+`g`Cb{!Tl`w$ zSJW^L(oA^$8-<*&k`GiNjb*_w9?{50FxAwjD6M#&L%#I*wZyNeVf@>yOGYtjB|oK- zh$^IcUWCuN(`nU~=4)I3?`mi}y2pgaCZ!jLy?E^18^(Kd3&z1cS3^T7KTw4^XMtYI+RSaQNonm@d9)hLJwMv1irptLaDRtwj~m zIM!J4Z0VWN(8Eq#=6olK0bRj{pAIXohKk7!)+FaG(%816F_~JWJWe`;w*{4UtY5Kq##)=s?5|wP zGyQf}*uO-e3Tdp5X>?G}c{yp$%RDRgCRm!`OMb ziSxu$^TxtwdZ{wL>))@9C8FAtv{rvmTH#0v_Hl9Sgl=9emg=rOazx7;PovB=6LOEU z+!fAeqslv|$1Gcxbi03X98)u)vAo!eKEXL%UeXqTg1;oLf%2`<7U=2 z_n;q2nV~{LZmnk@NYifeZ@0Poe)L)kj)#nL^0Sb@C(${OyVKlF<6mpR@jznwss!_V zC-#9f-91n#jeTql^uf=S`%96gIr=@+sZyr#n0t?^w@_#F{ilOUAIlCR7op& zuDrn#C!y(vyr0tC`@S!gDmf@O8*}>b9exrIA2GNU*|C(ogY4;;FHbnUw5xGeIOz21onZnVO(pQ>i(+4Dw9AJ-)7JEov{yp z;+wzLySEKF{tO}G`0N8|`f{dka*zK)6R1i_OEB+RV;}y+|FYJ(yNnHTbLt`?a~|vi zX*%^ZVV!&XLQSCR)-QB|?g$+Zf8y}WrjZ$QR1H5u?+4x0$3Fat=nodT zdn^xshQK)wqz$7?jRkJk>Tok2sEYYJ!MqcPefSegs?Tph|9ZWFP*-lDp&Fncb=Pvd6R5Kn(;2IyK4db7+!`+_@n`-(%m7IvrKKzM^1wM55 zxHS720#}P5Z5XfL?(W{~B~T?N@UstpVoLAV+_SbVG~rKj(h2@H#UdsFK@N z*oQwcXwM(1u6!GxA#jx*($pd=axV4ClMN<;D!H+aefSeIZ*NRZc5E@@fdsCsL7Gkx ztUoI?U&AeC4x&nKxM3gu#Jbk~Qrpi>HGLp~YkZJ44AnC(b?MAhGajgt8+F)+Ke1p= z?$q+lw>?AP%1or`rr5nTQs=kYW`@eo;yrzhzc_NE4*R24_>A0JCq30Z@VPwpCMyj6 ziArlf+L}9Wni(pzAi;n04L;gO`?jyP$jqk+v><`28x4bev=ARipi1t?(LP>_DA_Wk ziH-+aknmp-|Ng!jEyEi;OQ1?_HPb$>&KTNq-8`LxXhFh%mG{nFi7j(eo^vY$2~^3g zP1?ta&I?3T`w*g%%`mMJwHF zx%za=5sx-JL!e4-SJ6H)f4|>y1Jxzm_CX60a!whSO1eFJPa(&|Lb@(N0#$Oei}s;5 zlz067p|0W3f`ptQq@TXf^Nt5rjGC{ z&l0GT+lRD|@k7ELUwZTx2Q5h8iaqLo{G=QkHa$zAN^U;VKAwN{zT8|Cz*U;G!gTp)$15Fl+Xo3$$*n8e$H>-`9GTy^%u<3DByiQNVe~qf z=y-MhvjnQ-798y(Vn~YP^|eFH_X90R;Ocl_V8=wUVIYUhQ=-+C-BgGx={+DV7 zBv2(c)My_c=U(FYokDpdK4t0FqB+!C{ z%pz+a#a~(Fh_Cl7fhxIuNc(v0k97{$lpxawT9A+#Z0+OzuWKCf(LrV@K>}5B^O5!u zb$q>J;9%VoMhgZQCYCes6CZ2~^2V+Sr&=;qTKq#X@ayrQN-BlNUSx&98W|7RkB*d=i~DiN0>h3#wqrJv_H}G z&L&6Lg_X|`sN!;bJGQKMf7BOEQytZFuQCa_vy^?HKYybC~sN#Bs*CFe)did&k z$HlQh4jx0!uIY-6YJqeWmt+{``r&^o>ei8U74`Dw*NeK0550;~2Oz+#%nn z>%VCq=+B?nQF)f*#X9esKKQF91gd1^fcEhw`PftXeFv8k{?_K))IN~*CsM{ub5vhH z#Pop#s$_;=`?&H;qNDduL(F(^o1sT>UI9U4Z{W|Lh|QSj=s3e=`al9zvT{KCNZ6O? zNT1^}^Vm}=Zr2UCgkKcFHzcTw70#&l2QTy<=sZE00 z)Y0R#5A^3xTptwfsF|_w83I+Z;zIkVyRox_#;?q@;@-r9>DmYS^C!H0oM#AB$%+f@ z19U14Bn4#icQLp9N2m13T#x5!AnD)^sGe3|(m8|5@K4$MP??~&m$_y3v)t01c zA4vNXV?y#cUMR8d83I+ZB1!u=w6l;SHSanz9^B{bw_E!_fBwX&)dyR?mwTfb4x{B1!wm^=o3ww-=|Hq2jTOf6i$iNc$6SOv~N!T$61k zAuF2rSxEa6&1g*Kg$A17QJg22v=1ckN#^(!k1d%#c%(>f$U@qm=(*;j79ZwGGh?pD zmb4Ef@JWUdJ2Usz_J;N$YgITNNc$7t=Kp+anV@G09xszPAx$?H(pX>P<~rswPtHD& zK;JYoy0LKT`Os}T9&jfkkNZj9_|ZnNvtR1t**XVhmYsbdfxhV$zHcX`27jwd2@*U` zDP;_4+L1eMaq0;nmWl40ztu^~04wJz;Q@OZ1dD@fA}R_KM)RAZwVb6J1E zK9ImC8Aed~-KkZI>UR(c9ygYE9%;j?9O>d*Ko3Sh!4?BGRpG0@VouBGnkv+tWITAd7Ds5k+4P*O@v)wP3(k*136Xx}l>;nmW63wMv zpY3i_MYqC{;CWzakt0oaPQJasy?<-C84p>F$v%+4CmF`#s|(!^XX@Sr66Soiw=aS; z?cf=+*!^7pMy3zhU&lU>z$Y0-#OM|74m}!~X@vyO%S)dMX*xk**-CeVR=TeyyYtuw z68I!K7pL_q_nVEMH{TB=czuEN4Uwi9_dnLTFH8wCL&a+*r2mQpK8e;RzW0;+o3C}B z6A4}?A$?q==~j}z*SnX^JZ_Ew$UZ@i2NL)s!zg-kqubG3_nnd8^&Zl9Mw;#`GPbzK z?^|j1ws8#<68I#;=sj$Ud+Ad>YJdc;heDe6xbGY1obdH7^Bl;{YiX`|YA&^O@jaD6 zD{GFqbE*BuduGbt{JTFP7FHoGfAjB#@y@(4&fTT-3FAWWv#M^Qv%Ah|AM&^Mk+X1& zv+}l=%#%FD5*QMBlJ+s_RFt#BnOtT(3R65f_Sf;ikjUTKN1M}8&e6l4^NTq@3u*aV z`?&vJgtNzA{ry74&pMMzHACUtW?ISL+6NQwdkL}dvm{QelE1Z&8|xj;KWpeynjaL7 zR_zuTW_~Pv;!?k-8Kw{UTl@HCnZtSKWle~MpM|vit$nOITHl%Pi9S18Ec~qSiqUFK zwDuvt`-r?=!cK*>4%MX4s!mtla3`O>Cj?tY)s0pm{k0GIUHeD?!cK*>_VLa7FPwGu zZZPxXhKFwVYnt0ktMI>++xq>5)YfR8apgFEKw?vn}ES2~?dRf7Rv+Azq%+*@NgE>H2Las-XFS zp$a5WRfXcQe@=KnJebIgnV=5su4h_mADW=;2s@LI+>5;(;op?;f0> zcCBv|;Dgf&El5lzBCJ}|0D?mm-)M^JcUgy|dhQf8eY1XUFZz48_jki+5 z;QzZkXhEW5NV1xBwU$k&(1OIY%E@YfrX7J6Bw}c{^rpFX1X_@&Su$Cu(_YeQwS}m+dX<&uXhEXNr%5WSoDi70Xh9;ObCSwm z(2hV060XoBb>wjko3|D%NK~qoq}tyVqG8`;D;{V;Vt8DQYWL?tT;E;Osu|FN#G79=)aOHhaY7UFfoSHqzNiE(EV)E~L!t5)sZU6v2DATjWd1od$ZAu#4> zL1N;*1odVII|408oXVt;kYRQNT9Am`mZ0X%u_MreL~rUx|M;^Vffgj@txHhDuhFmq`wfYhy85TyJ$foZXEZPq`f{hEZ+Erl#zP>%`l~>8w(xw`aO+ zvRad)`+!XvaBoR@zvtD4=?&uFIx5Tt@Ki}ckD6q zJdi-u`k%RvBZSY3%g+a@awt?)V;nZ^5)2ip22zh@PMG-kd%drZgBBz{rgdajf`!0P zp#_OYFD9#*S3_+=g%%`QzmTl?$WANO(W z2(%#4^D*~v0twD@v>?&xHurJt2(%zk_6(237WNsbZ z#|bQnnE%1Fu5W}@5}PM9vHCdZ1D|{1Sdw}tQ$lsS!yL08^@L)M79=Lq`4bsG2!Z7a zEl9NAmZVBgup`idM8#Fy$FU>OfX@wRfx=rLhju03Rv>U$topCpaqF> zbkfxF0)ZuwM1om;zf<(vCiK=tF5SY4XK_XY)M0NH1K!Q^jEl8}n$9ReQNc6tK zeH=RiElAWom7ub72Y%Jq2U?IQ_dEA->3Ot@i^h zNYtbmvw3rb!2Cc95=A%A8A(6e5okf89i2Zg{E8ic79@^S|6@lfyA~N*kl4LEK@APH zBhZ3GFcBTBS(!t{a$Dn~H+m+kH-a9w;W?p?>nE#k!}QE(LAo>U>jC<2UrKSFqYCLB zb(7V#U?I|Hb~4A?nLrB?cd1=6`|5KxElac@(Tv91f6KHZ(1JwGO37;TTss0SNbD~| zJ1xGlBhZ3GT{>a@-M0b>erwT!M5mx+)u(14!D)pSB*O0}so#R^2(%zkj&6`lKda|F z4WnbDeP%z3eV_%2M+Im^IJYhfh7nfC*G@zNRavK#)VrDD!&gpR9<(44e>h2bey}6Z zf<)`gBvp1oAi=4N79@h#C#i9R0tt>eT97FD9jyxOW=Eg}i4Iee)YVWSioEX|DMAYp zN5&+nklI4*`q|e`L<X9OjHLym$HkY zLIPFYiP&*ae5^?S!TNrn1&IO26V(^Cp+XB1?P$dNbS?>1lcBzLA`+-dp&Q4hT4`11 zXf12J1T9Dur*rO>J|{jf=18FG!n#CN?U@|pa)lNoTy+0nX{(e>s2ygd6ab+_JHNh^*yT99ysCaOVQ?R=mG ziBWYE)t=9VIC?~ng|iQ|AQ4_MQFVCH3lde&C#WO21HV!111(4tKTapb)CeRv=4e5p?jdT) zbg(1Pfq)-W5?YYR zqP20mN=f?)O9@(#*iI|bhK1S@XhFh%vcKjEw%Kjw;`ala3ZSTgbf`{!0v>;LCcD!1)%Z@+`5+B~8m~XQq(1L_$ zRMe*ukMM~8=KH}l16q(6`c|Ae+ee5O?u;^hFo6~%9=#r?l0Fdv(+Vv}ENBy_qCd1F z(1Jv-&^VRZ(~dw360KUqsqWna2~J(KAQAp@oN{&!Bsk`1L1Ik(I2HG%9f1}k&ee)j zbzc*rY^|aWPA{$*(1JwVOK~bRObAR}v>?&@#W>|@W=Eg}i5MzZ6B^5Ruux|-;W~qldZ1-s*t{M zV50io_N#`^LOO~39eP=OlpO3^?}I9Q?(8KKRj&*39h~vYOV(EnElA)O)t4JwN{~R6 ze_9E{B@tT|bstSq&8z5MBeoytgr-58th7QE(gzw$QZ?7y^Y*sI2Zsuuh4d+EmmGRo z+9gl-Hnw7pDtzwD4ii<{hdEv!2UZW;s{Ob;E=u>1xjNk&)8EHJ%bWR(`9vrDwQOhB zi5#l-)S5W7TdT%oaa-hhlW^1DcfG&+V!;HekPau}*Yz)W%at&ky10g6BCSZMkfPV8 z;YtP3>lqVNAw6$Dm&9rTJ~&kPETkRe@8HX_0%Ev#{FNG;Y0#ejp<4Ia@nl}L<Rd>RMpQtL8a`kV3UJLpz6$X6I8LMFL{Z&jZRvn9W6-od>XHQ&9?J_ z1gZ)@iC5YGiI0=7R<^#*Xh9ufr_;_{dd}~wA_lx<=K~2;ZM+(yfNNVsuNUD9u654bxw^t@QWE0n*BlT<4gh3hBJG z7vNfOAi+M+g2eaLc?PSrxAu8)Ni8dN(SpP|T1~Y-QwRwa`#=j4N1o>yEIR@%NJIwn z{tqF7#$T|?6F?YBffgk0{>L*|LSW3% zg2b*Xy#FKEo4Svke_G=VXhC9Sz9cm z3lhWn^KK410xd|K=*lad>yNMM<2_G7v>;ZkQiDgNxgYjh$F*%yE)K;#O^Xl z>Wk|_pbxYlaqBr+O?6p_lg0nB+U;mTqWX2-&0$w|kw8^0BFXlAhcF}?a_9hJjS2`hqs_AR! zgcU0XG3IDNqW)ao%^{&e0xd{XjprFGyOM|&Bqk2yl}>>K*9>SuV)#eA(kYPOv_cCK z4?6G+mK}i>B;KvHt*&T0#`br1&Q0`c{hg;lDZsov>>s(An)b~Bsk`1 zL899up1}$v*aupW$a|AlIt3E!11(4#I?FRyf!`?hffgh(jwYy2Y6KGO11(4#|BYv` z>9f1}kHg4hF9Cid+khrm)S2_t%GtM`Ig%%`SG#|CI zlwJD@El3QZ{U5_Z?Fh6Wv6b$adCMBVl9I^zffgi=xDwRDx1|4p1X_^5u@j%3eIS9V zu-_)CS2oD#N0ZDs)(8u#(1-t+Ox3}@u_b&K(p?tw$b?;+8VOWkU)?ZfR@8elxU{1M z2^`&_y%|N1g>n2FmL1@%n=eH@s;K9-{>z)9_FUGZb(`t$LwTj%t(55-xkDAwO$tv@ z6TMIJPhBKXRi)_^HNfl7pFj%|t14IAX<*qk z>qM|1(S294O850x;>ua21T9Exe3y6LOWFN*aF{i|ixwn;s8`fwnuKa<-+!&X0TQUX zP5bDdY!hN!>>;ynz%fSxRdLiSdi%T(zSQz3P?bTwqB2FxdRzKa&!ku}M<1wKO1+{Q z&4g&v+hZGZRJEpFQTGpos6Vxztq)Yqre4w4u|k}x+RfGnsy1@3Xt@wUS;4lci>mLb zS9D{a5LX*LXG@@JAoYswTo>a0H$PY{OH3dAka^4&~(qH#ExwIpJs=WuO-CkFSQ$PD=Gmt>lIO<1z`Gyc@?j5vBA`+etPeS~nmQ^87IBv93s`cXZ`2yyZ00;`lDfvQo|j~X&fh^oEPto%R%RZr+l&}vJC z_~w^7wmwjGg--bFvqgwhPoh;4(FdwJQa`E!od~8^Ky-YyY%|XH!2Cc}Tk1!(%o5_< z7eCmB3RS0SC#m&+332f4H_iMA^nt1-)Q=i{R*0V#ePNp)sOm-isH6)*VA;i(qpJP2 zMAf0Z)QPG4+gR~H3lc+!ID1iitUSKXOkIu#5~y+=O;i!Kp+W*xyACI+R@OVXZ01W= z%+Z3x%1qkRV5ODBoI`~Ks<8E87~c+GYn2kTAd!puQKPIJ%>VBVE3J?~)q*+HZa*w( z_4~5?W}XMOeNZ)Xe4^U6Q;4oTCz>TOkU-TFIur8W%|bl<^)EA29CHj6s&3E;kBgQF z(Q5n=+nA$j6!oM2oGOH*ZeXZTwce4aHjEacs&l#Zo@1y`wXRm83b$&X;eXb&Og{m;>N9D0<(YBlF+Y+d{{gC#C7ZD$Wf4gTJDpak$k)ZNfU!1Vq z$+oGBs&Ukhy0=%pQI)rLu`MO28pi#oWkTdWH`RJSFm+KioBC0MV}w|9KREQ1FZL$p&s*QL5wbAI{2 z+Q~|7(DT{T=sf)+)nq-jk8ycWh4d4muYG*!n;HpJE%+%(J?bMw9A+PF*BWwRbYNsf9T3uCGmv1gbjG?wV>#g}CqWwW*OnRV&(E z(`Sni2Y*R4-*e7EBv7^Joh0@AE+ICy(QWEL0#!3#O;V05A(B4#wW-kusv6Snnhk#m zakHatQwRD$ReU+x6@ONU)eCi-IxuxnwT4a*NWLHhmR$@LsutYfHnr4=`yXwx-gC4d zv7Lys7sbayXBR7Vkw8`UpNT5cHdIKUs$4d=sU=iFac8Yip#_OYJLoJVE3KLz)ooEu zDr!3bZQ8ZAh4qun(TRt`qp_O+>zK-H~pX*b7VNvlyCuUjokBv5r}0=KD! zxHNR76>}s|)rof3+}`s8AI| zyK6R%7Gk*awW%>wsLEBB_R(9l&$ujKn;HpJ9eF-ct!XDd&ed_5q2fG80#zx6xlJv^ zh}1QKT&FV2$OMQnYb>d-lEQ_DB1?r**}HTpo+ zu0Od=EkwwaAnQAb1gfqaXC_wb(&h=a|{)# z{Lih;b3DT~9;os^-5A@{=mS;$=Q{s#U$^17-bDgca;~$EM}ykFvnG*174D(&)w=8h zPp2$Lr(WK^UdR0E52byOU9FQB%-b0xd|ar_uAy)9eVeAmM)^>E;^wt#%@o1}r7}kMr1T zU2i+F=@u6G@NM6=LuOUpoOmhNnm0(b z-g6{Sb?aLmdle$MRQ48~C$#Pr-UC!sPe@XOrwI|!)z?l$0#&QOrqg{ocx;uUCL?lr4s1uL93UNN%*G@zNRkvI5*sBn)Wb6JQzvoDxDyb%qy$X@} z!a}RwMFLf4OYzvN5a*6nv`t-96{HhMlP(BBr}fz8AgXdMC#pBg%gK26ALw=>#{(@$ zRJ_6`l8TS>$Mo1M*NI4=sy^+h9%Y3J-&!P4HT+orHiEBzn+^q}{Bv zLLW$=3eWK~4Ekubdx9plV*PM73~<5RS>du~#HeRlR+pIyO}ZNnI`_ zNTBLtI+1k!Xdyzo`g#*cpz1?9ku=<@eLA-G?Sn)DRgLLH($($6M;RDwsCO{~#cBv93pP9)9eZ4J=zw_6{^P3iKKPT$=A6UjJ;y0P*s6OQjfZY z$R6$+dqo0OCFw-cnp1`NGDDBO@``vQP=)7?8b;&fBi6dtyT@Zyu2)_)zw}*}#i@dK z+nRqTB#c+vztw*m2CWvc2vi|mylbp#-@c8v%^>d}=O9{;SpRdZD%Usc|3jcEhkT41 z>-hf=s2W%!R^4qG=!0_*ElBi!DOQCS4=i6Fh(W3AjG>(ZdmUiT9D{;J4V$ogjm<$zWEMvX-5kZMQ_EZ zQTOFMvPan$Egxt>qUwbhRpyisxGo$mNaW2Oqt1?zl328n?yGUAu(V?t3$7Wf4)w7s zSLg$u+xwpw6?9ZWbu`}_=9&qr7kI7Xc(1OIwKVnq3%|aCW zOz-C4c%TJ|l)W*k+(IFGT>jAX@sJ3#Ad$8!MopO|L{P41t2cobB-(F_QA1;dz;cBa zB+hP*QO6?f2(%zkX%!Lug;-kQgc&M+2hoB=#icQ-*%im#{(@$REUXDVU2}&ZFOPG2U?Ig zGa^Qfdr1h4Ia-j&`$depR>_V)3lax<$Edo&fdt0`El6~KKSnhwYDb_2i573isNQ)3 z39hfuf<(ycG3rIbjz9|%^MOJ$vA=qZT5{9Q z2U?Jr_5$VkH6ebf@^q`tMVjXX3lddJ#;84)gjid?v{g#bg2c!9V^s77A+VI71&I!i zqt)VbLinHF>a!pbb17P7{Ur4+`oL$Qs^FbyHSZtsfdpER_>g?GvL(=hM8N~mYLE3b z7}YAj`JQvRLIPFGPe!ZhmXF(?7PV3rEl3RgJz7n*(hB2&79=|Dj#mAw{CMY;z2*tA z94fRRQEseD)wSY*K9E4w+>B`Ty;Vx8zNtqC`K?6@5|uVYtKwEkL?38D;?|02^|@_n zM+*`)7euQh>y1JmXh9-jMzlJYV^>Phf<*kJXm#kR9f1}k#zjY~+|SfLoK|Q-qRWVA zb+CxkK9LiyS~UY&kT^FuTDeOJfiXu55{o{GR*|+fHCm83&@);+2(j~l79`?3Mys?& zLS(IfXw^PwL84o`Xtl0|5FH{%SusZo5|vs-E7$8nJXjHAy@O~$BB5Ed+SO5rA3pM} z9YhNfk+q}Mj~@xq<#-Xx2U?Jbc_~^|wOSdNA80{hP5Ee5(`w07J6hhV8PI}6$I{Vi zb+m-)+ns%_)I|#thYCSuB3IsM6}~_Sj0akfxbeWH5;oZpXhCAl zJ(oJ1W=Eg}iHg@0xd}NzT#4~PYUtp3%Yj3`hEIifciwfY?4kvUbJ;GnsG{_7Fm=&_M7iHxDy^y=ffgj1?QyB4uiFu5K_Y3p zOYI(PN1z3XnyD`J-*h_yEl3pK;8OY1?Fh6W(SD6f9XKz9D_ZXo;#w3fNSs*dQk9F@ z^}Nu6#O~!TwZDZB=Vu-^^PGL41&LrHmiHC{bMVOJ6xFP$zTsr)r4+S4wx!uN%%Ev z-d@@C!RIre1&MYPsz;T?2gV!;RGqz$qB1s#kDM||W(~)wixwm<5m7$a&Ib~xa-C06 z-)$EkODe53bC7E|v>;KPh@l0<$Iz}l%$Re(770|P{ga~F?-L*DNtE@TqXmf|B8ohf z*$hl8Bv3W;?-aHA5Al)u&q}NIK?@RbXHt~$KRX{tpsM8Q6t(rV_;`A?j`jUO3lhsu zrl@zWijSNIxy-cU97FUfH(a8`U^S|Q=5`ZGn%yDdHn zkJIIfYia{5NZdV=qTc&6&;LC_Y_t6aG(z^iAbPo z@!=FTEw}V>_LSOaj=gfI(1Jwk&ME4`e!JVCkU-Vew^P*ZymqZuv>;J3SBg4d5p(Y! zwbm4&1&Midw``^rs>l6ZuvhSEHdxzXi zQLl$RH2ug)_|;$0$8h4lAC)c;;T$ycg4KafDxwHqmFMHlf=_{lp~ zU4j-Q1`ttesGScaP*sMAll{cUH*p`hIcyIo9%w=0+BM3LNFjVNae2^!#K%NT3$qOs zJPTDruBNDdlf}oYku$Bg7A;6jq%Y3=B7r`*>>`1x1w^ELCq6J9XhFh7->7CAg~)Dw z*a{U|khnl~d(6q(0qereuK_#@Rb_}!yTr$x@o!smsc1oB4As;l*4X(#0#zTMO;JmZ ziVul7rxjX|=u0(qyGue$PSs~Fb3D+3L`SN3SGWR0#XgWgRR|Fka>R#(ihZC3iSLi4 zsDk+(c~kenx-({eun)8#(USB>6ULW=UC~noeXhCAf!4$Qi zmiYK^)lMr^NT6!u?i7`72=O$}A=3xP0|`{Qwx_5QfBx$YRh|%ENkjrwSGJ_6>YIf4 zs8=7eTm||-Rpy!$^~*FNK41I2ZOlZhcr|2c#(n$|W`mvayaR8<(Cq8!zP2<`G!b6vLl2~@3&NKs!F6{6_eRn`{= zeW2>f;1sp~(JgO&luXTMn^veg_eqK>aYKl&-&|rFDpW0hhgunDh3MKyul@{-IjRa4 zNKuQdvOD~PpR7=!1&OwAq^OUNi;wd!FE#UnO9>LF%50UQ2K*sJaN2Y$KafCGlZGj3 z%kM&beEbdDP@$?F#p9db^*$ZLSaNNOH7AS~Bo_6Yta4|GkMai-ta60}s&F@tukPWP zqXh~3JwKcuXh9ZkqjVmd{_gTYj^V|Sc!5Wj**Oi6X|G~?)X@#ne)h4T9 z^@Q-1UjNiZRSznO?==Z*EpdL}{hYhb^ZH$Dg3lj6_w#{xI*b!(!!k`;Ht2eVF(1Jt- z+I?2Ks2zb8B+k&O5gpIljpCpMiH>yp>Ems71X_^zm{$CDnr26!1quJ#HVc+3W%doY zUyG#y^FNYq+w4%ZwRaA3&8#`r`+)?is_*6XyFz^7@vYxQ0#(P|yna`R<-fJE-Y6tc zwR9z~-xZ=>SKmG_Bv7?r4&4SdMu_5-eCv0SKvnjHBsFN75bZ~QZq+_WpsFX|wz*V@ z*H`)0?;?S!w!L}%t`Ns50YNCO)FF_a3rY~Swb9*@~!1WAEcnlzgGGndkh)K>}4NC6ZL+Ss`vV`Oa$lAc3l_k9hsA5Lh!HfvTk!6V>tZvMTJo z#QtV}aH!CN#9kuKTofOdc6YWyg#@Zj(1~)RY(s?vss{d+s2o-;`lzv9zssRQ3le$h zw#{x9M|un1&I&ow#`vi4&wS`GEwgiqdVH z>qiSQtBr4;7ZRu{Ot)>mX4O7HJAM1SkU-U`U|zo~K6?JA&rS#o6{_au;q|*h;QC$k zfvOJoc>S&rt^V=t^Fjhu`RTUJyx!J;VFcezvQ1r79XrYEcjY_SDBHJw7k!}WKo+mx z72@3AzV*9Epz7{!UcW2Ea5y^w2~>5XJCWM-65_`%eCv0SKvmAx1XZ}H5U%HZ`@E1q z)g?L!;lIK{Y$)Qfz6MC3sxIBOS^J!Pol6Yyot=OLs&>3l+sB+M0?0s(uF?LU0GgMrQB7v%{bo%F~Y6)0|`_uXiK*b^_SFbcIF>j0#)BT zks%|xnQ_Y47@!4PbZ9|2s@J4ZJ@Ngln z^zn`2pbu1K){RqP5kjo)Kf!#XxTZz|RRe3rsm0@j*wwtY^+q9qs@5TKYEGOG;eX$? z&2v<>uM(%qBnpu}d7l|7eh1M9s*)fxsns-m$!+J*{Mc(0Jp1D6uCAmM-e zkdL8zm%uxQsvq6R7STsSg#=oVxJ}>MmwU+#M@XOri6?90)DOMwe4qu1G2g|i6`u&v zui-tbT%iStUNz!WLNUAXL?lo(nS7L}V^^-$eIBL$ouW&1W^l z)(5J3<&RSFy@lA;=&)78VLVXP}4{x{Oxp6Y+uXAQGs$^y*l( z`EO~LAb}PnS}ho@y4ezFL1O#-(W>VYS&M@{(1OJ9T%%Ppi^%Lh#7ryx;-CeIUM)wf z;#OLnSenPm4cNRZHCz8 z2l_x&{-+VD+XGn}HFmk4gJd6Q@gt5#s)^P+81d;4tL!3?A5^qzO7*hZ472*ZXQox4 z4^+)t9;r54wa=-yez4LCeV}USv`95+y2Sj2{GZu|3RS^lBh{Yogs3^Ifh~cm#RDQ$ z|8+uq();NaUAA0)X@#mL??kF@+lBc3UL{)}s5;grQjIw*#GjLjS?w!~IjWX7id2XG z5n}6wN>+V^1gbW^7^zy^6XM~adS-s`_Z$gS6)qL2zAq$SoH~w%wxL4R_B@g5zbZmh zyfno&=BPS%KSEV(E(E@{7%Eity%(V>SZfErSzgx)61AXv2hy1&K$;BUG+TA=)MAkvsN*79^(s8KIt=85k-qiAbPo z)X@mlV~hAmZ+q8z2hrk3{1Kt{tq~t1OE}EchP)#eiBX{1njN8ruNEI6*)itaT@Ddw zL1IT%g!=S5A#UHUV!eZCLE;e+`+t>CVd^4*s(FValw+p&nE%;Qv$XSg30jZ{As<)H zh>tlVv&@y5OP=@>sOmsIVk5=JR5(>0cS!F#AEVy7tVd`o<%&^j-jEp+j0dWae)4aO zYWJ&*?+U@C1T9Du=N;=m2yr7M+j^tWg2dgtG|n(ih$mBh`{>bv#5~%0zpjT65-Ki< zXh9+u?e33mWJjO{i3)Urz|aDA1X_?dL#Gt1I3pve5-LtBv>?%uPD1FhC6M5FpaqGK z>9mE_$#w)$i1KaAnx!O=K-KbnqVW+PbqF09RUI6rgs+ApM)bO8$ zsByT6nYvs`kU-TUM~s^On-Ha6D`BQpVCtgELHnHx9~EL)rG>Vsi>j0oG3v-kAyzNE zX{K(V4^(Y^6s<1&Erh%uf$>1q(u>h*X|U8+crO52kl0H^tA7H0aHx<#Rn_03)l92S z%xcxxDkW$^;zU-o%C_RsaIWtRQzTH8m-g_kwbDvr&Y?mARgK5E)ctl6^Iju^tx%x_ zi4SQHZ`Kis`Mo zGrqZP^nt4Oy!UmH#N*c3BU^NOxjaaqD*N?l^|JNWrsbV(8!A*4rG2SIt(qZ3rQ7;I zRbkp?y68g*)y(>rY<-~WOmMWyZ`E*V^?j>YF&?Ozn~D-X+9nIGYLyR2|52scqj2foD@8fvUT^ zUFz4dLX_&@JDUm#RCU|#QVZS{V&72T+%^)Z%Gv5t0~!i(A&+lv8wpfhTJKU_@(a

3vuv{p4;X+5eZanr+tudNkaU%E|>K^ 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�Z(WJCA6duzx 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

X!~& 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

Y1f$><7eedn5h_zym|*cxoh?tWQZSl zm(4U}$@rvl72-!R6{FFsoMc?=bhc*Y;+`N+&D_bmxv1ajHBP)iGO-QLGJl1rFh5qW zbCu;nN?@(|iTNeG*Xp&6EEkePgsAXdtJgL{F&zAaMQ4y*vt#;=6N=%AsTd8}%`!(i zDe>>s?9ZkXz8?C)2;&sm@KlUO8;d13?$1|mjB&FZvT6Rh3OpEHhumGAK7bC&*S4%* zH|nK&BPU<>X_Oowl6bDH`!E%wk*{;~6^bro%yP4fyjoo=TDdQGZxc0_p4MX=SynEG z2vccJKztSH8o-N^0rP`rR>sxREAB6ADr;~qH%SnmBrD^$#Tzgcqj`MtHStTcq{*Wz zUf*Y0&wAGP zJVWtkw_7Mxq|JwK?QPuti6<;sQ0(n`2DWOuubz31?c5%}Td!GK^``~Jdw%r$Mp+I? zn{S_w&D{=vBL{69w_WX-*WqjbHL868|N5|M&Fy<${@uSh`z_o(|C>A4LQid$N@EfG z-H%JkJLAQzL_6c1wz~IWZA|Z_@VnlFB(hb0KTEYl@1w1IKK^~qlHzHuKCBm2xwAxB z(yoJZ{chV!mK1MwEs-kH*6;fI;8SZ)s_MX=VD+fscjbdbwu-d+-STeJaaoyn)f7`` zzxz~?$WoE^b-uA{S1yYi`e z&+WK)TX~;5``T7bu`Su}zFlp!#sT>|Hu1ZjW~oRw->%flSc}nptzCH^S?#J)MOvf2 z@-BjLeb{~F-FiE<-SB%n>gycu-Wn6xD$@EkDDR+L(hkbnHTkvcec#UBnZ0%{cY)h~ zcaUrGPq?;A73qUEa_1ZDV10Y}M4dQQI*;LtW4px9wssZ&(-d9%^LYHV`gRgjkq*}? ztDD^^N+&H|xwM_@ceP*eO^5jri%yT|x0N6JXt&^v>-}{uxAS8k7oY!e<OQn?9 z?><%KJ>p|RJG=k!xi5E)6T`K7pYk5@F%c|&UwEU#om9Hzb4+4FCy{)2&ARcofvMCp zglmmt%IBC=q)IB%;aV-Rd|pvZ=yZkW-M4{yGM!g5}LUC?>L0q5 zl@ImpmUi{+;aX*tl@F;b?V`iAQdQnnK28vx{@?_GcPfd5^oD(_q$6V_YGdp51-qkO(WOxP2pHfn_Wl5njW zET3;sk*ew*C)`PWNmf2YSPCos$wyW`DpjQAW4L?!x89;{=@~a#vUjRVk$sen22`7F z4+ytA{^1&lyEzk7k!IhO%k6aWlH!qWBz~*=8;cQY?MCQrX+HFOF1NlLM8X52{G(oUfi=tLIa@DxdBcw|3^xNT&{ewTwGQ?^^o9&Df%fw9YlXW@~?^9pIeWUT#UP)HYgZWz}<+QgK`NH;{k0zkg6gn&p<9GaBbyr@L);upj&IjU2Ak zx0la}i-}fp-$WTt%Gm7Y<+g^+wS`A+`ivBdBQAeqonQH zx7{A!EGYi$&L6nU{mqLlk>z7Os((k#{d__3DffkUksF0mMVjT7oE0DE+**n5#oUH# zl~wty_^Q%%>y^r_Pjt9eS^etjyi2KbX(#u6ZZ)X(YAMlkXQ|cix!j)a?_KR(o&V&% zQmG(lrlT+0WEU~%hqL5FMg?K`_OCoeyye9ovl z^Zcq${P>EsX4k&X=esi}e>~0;W>Kni&ZN?0 ze;Z`=CCZ`o5~`1It@_C7OR8&)^_0t%&$X;bmD0;mzg_!$l+U&FImZ`-I3`%9s zo#=3__s7XYzAN7H#8D+Z=k#tVR1Mm-Pu2Nu*ZRJ0&+xcsz}uO$UHevYr~CWkxvsx* zf5(Z>aliYsb>n!u&U!uM4nNYu?FRH{hRx7%TS+xDf2$M_RgStiySD7SX) z%j%mg+LsE)d%`T$C2Du_Wi_~0`}~n^K2BV^7=N(!g=@9ltoKLU5<%M&rQdV8Np7_C zy_f`Z$&L}?O z=I|;XNAzfjIz7`V9w+Jy`oI6uDIU++wJ)n}2hS+}=;rW>FpJ8Bv|anM8s_HDzvbo+ zifHW65PeqX$8d+~y!Gk29?=x8RaPW|WkeI{aILZ$d*F)=m{^D??wp#i8HTEO9#=D<5|}UWi)H_4(l2(yo0z&OhM0nj!Pb{AiC{UQiFCNunBiG> z?tokU68re}&O&tX4c-S;;aWaO1j`9cq{Fp*xU(i|G*4J%WvxW-D86OFwcb%Af@NUR z`b392#bY=(hit#{*Mz<4)vCW=R)|i2X1zF)YQOt8r#lCtM(05&Raq+1{`q*&og8s` zxu>?$t$qW9w}DbcB3KShYE5*wlinXB%%av{wCX%ut3F5sOJ&OlcT#<9GvK9~!dAXM z?1@qvW$UwR-*!ouMX4ff*Uh)x>fBnYe0^lKU3s@QCRMmrS#{X&rJB>q?P|q03encL z`f(y_)2@9D{a0Niap(4 z^dih66=}QnsbVi`y=8R^53OC#2Z>-AnDo1%!=2O;e_yYzxVqcz*3DbW(|flK-C3r; zc8X&F*4v48Gk({vD_-Qz&N#`<7NLrC<@@8aj&;RlZVkvwuHQ96?+hbUKIX%}Ie&LP zmb#U6AG$XuRiw>_FWu)iuPdJDQgx~uWt{XuA=>sh|E_(!XG64i2miL5zouL7e!l>#e9n(NRJiwmLnvNoZN|1ZUk_W8v*R)S|U}X*%orSq4mRRhPeF`^wh4~zYwi`s(+t9 zdQ2hOx89FS?ArHDEUcJjaZj0nzP9r+m;G$E)G?s-yd3tzWSFh zg=~sNp6ImJ0ny+=EL`i4bI0`)3+@>_`~)ksz{p;U%DH<*uCalx8J1d zqyOcFXpLQz!xNhhJ+u(*wUrAuzv|eAW;kt!|=;oJw9oU<}_a*!6I-vNt+b#VC zSA$fMW_!!!&br>M*!p#3+;+{PQY2y5zH~2f#BaZN!YoP^X}k7q_u|vL6}LQO>(Zax zU*c%7dRE$*S~s(1WVhnS2X9^4+YwZewzlAXyp|Sa=mO`c7%F4H^ zHERYGS94|cl&E?}l_Z>wQY0HQA zapE~m`#h@`Rc@`MRaTWbCy}ip9Y=9)xxA)xxwTvS zQ4Tqpv}>R9OWi3n`?%GtdK;KUIV5e@KIa3*bSwVb^(FmXUvl1%r~`* zK)IchHggmGbY+>Q?=0(o2)mGD*P_O zt(7S~SAJ@55LPtR=cWH zkya14(@*XCee3r5Rom_JUcKAb*MFbS$hp5%AK|~x?b<(4TY@l)e2}(l{hrIczWxex z-gf(|2OoY+wPuGx)cr{ReIBmW5>H!ag*oq)iC}SmAB2R&qe#tNG`h8Q*$LH%6 zqN6tQ-{-MveO(W13ct(8uS?tY`-(YFskDo^E0Oqjy+7{0ecqfq++Os`M@ZGcrpLD} zM28Ra`3TqYK_XaOoFU1%+r2lrRz9wKp?h(1d3B`)`8?^%e3ZQ#e$92Il4 zoXdUt)1o=&y1hC3xtvo)dip;K(F>Q_n0lIP?W>eq`zo$oZE>9McNy8VYv1pl{cQJ| zhs#ftS(J0qcCFuCYhU5QIeWR%-PPq|@tTF`&ujU7FeOZ(n>p~~1#`aYy?yCD7agRE z^u?WA)bKx+kL~Z9^XPwF3)#g*imaxrC8~{S+-|k0>s;>kk#io+yA-|W#thb$WT~cy zxpwT^?w60x>vx1Z3rjsi_~JdRqCXG6>p3sXo7ZpeGQnOys7NbSmo1pr?=NM--fAj$ zmZ)9(`dH$8>{TYrqH-r~*S!UHJEPBV?*bvmIBC0PIb#)?jZL^+e%XPi@wip}JQKcT#^9{?*5+ z`g+qI@pHH6+WN?@RU*Cr;(rhNT&_M(mGWeSa=u~bmRC%w)kYTxI`**P74XeUem;~Wp#NHR89J8UG&$-vV71&LNVktAs-~D z(%Gg9zn=783fa<(`9#`0V0!lT?wQO3}9B*+zW#?YBwJX(6G=-Cu?n;q%~AMGJ{I z`q|fr)4N17E$6h5(5%UOH!y-eNKmD}@NT$THKAva7807vd(RvGD?FDwW!J_eRV1j= zUzc<58ga{wt>e;Feb7QebM79y$%s=vKV(PCIV~hK5BahSjIf+5A0(*KOu%c0W)ZZI z(7GavKjd;_u4_ngPJ$}UlznggEFZLx&>E}|nK=I1;DZEJS|4T6$dGU4oE8#Vf4;O} z(T~30^pBs9YJw`Q+Vas)jY~HACe#NlB(x&?w=U+Rc=gcai6TLj)}<>d;@@f^C-r$+ zNNA1wZgab35VVlcYVs%VUmih~_T-p2)QG8_Lq2FBq5ZF(?{CEK!xks4galRb4m(RX zDd*$AU4|yDofZ<>UF_2NM(lrV@Iitq?bfr;rADxHX(6FqPbVI>Jc26i{dvbGSp+R4 zv={HL?`@n>gCwZZF1xw=vj|#9XjkAJk2Yf3QD-Erodi|de)_=9 zgLHMC_#i=*_E{f0*NBrkg?2>?37xtS&YYaH>g>b^397VzyPf+Sa-rv(77{wC$xf!t z`=z|1RVK@HRN0-W0;?GK`JddOD+>HH?JtOH$crU8d zLj74F)%l>Mf~YvVhWQ|&=fh68vAwa=bxsQj+oii@f-2j2I8D$(qHbF6>M_c9ol9f9y(g*KFmF+a;%c}aVX8VhhuzgrOar=nS zi}GGng&k$y92MMZd-iar!i%v=EgBB7N>njtbbrXUX5*E4h#4}y| z7rpX93kjPK=ZO_w3t#jksEXqc$=}t&Q|Lw+E>1P99JAP`X>1blU{u7-Xx!*%`mNBK9Z|$lN5>)N6&sfAV=1f{Q83E8jV#~kOBbLEbk)Uez zck7yoWssoi_2G5VXGtt$^xEN@lLS>AUaxH?mO%@Nt$rTcOe}*0Rcj2dMJ&T|uF|E2 z#Kd#QB9?K<4Xu;XB|+868;nIPIyR?wF?7-S)Vi_c;vKbJSK2*B2kgz!jm4s47f~w6Ijz%oQ@*y9z zkg)j--iM1VCG|mqs@*OejabGt(;AXGr-g*g!@s>jk%h-Fymsy=8T(dpl#qhU!bV`}G*W?E|}LDfa2QHW*G z2Q4IC>o>ZYSOy8Irky*gnOFubBxbEV8nKL1JBG3%LDiJQM>P}6poPRY?~g((gQIW~ zRNdKo6k-`HD_Th0HD^>au?!Mawdynqu?+g4g+%9RqY%qzj-YCG>rsehkf4Rc0T+&H zCYC{hs?QgnjabIep=Tt|IV~iHH;h6ogY`jzs%hVy9iKX$e$Htjaq`$v{{uml=x~m^ zYl+DdRqex6N^OXKROj3*yst{ZpE|DZsL5;Jk@O6_7gZ|trw+9UOLYyJg@kI;A{K5= zYUl7o@m^G^z3IH<%F8($`&;RQ782?ubV8!fIeQ-xRH;|exrCKvrF_srLcN_o^QrpVnFLkpU3Iow+6OHp z;$FKPu}~}{v|SQZ=`CTWV^o$EEhO~zv51B0BSaucP^Gt>&IL*5gBB8ci-xmOLb}|0 z5ci@=Z|xAvAVCWWjRq|K5cH}+5>#otVmm}v610%e7)5*CSLWPCOLi}+G;*?th5KvY z=Z7S%oj$12NG&^-K?@0u0JUGIPt~vA9g;k?B&gDeGwj|P^6p2kW+9=GtnHqqzhH$C zGVeu|M$U|7gm?)pBs3z|{%1ZP&PP&KB&gCiLx^Qme@&Q$guX1aV_Ibms+I6wRO#C% z?Dj?5`zzRs&Y%ygF4>X{L&; z?F>Fd&_Y5pV8V*rz|>a|RB6UdHbD!C%Gp%(L4qpH1F|*4L9aTeg#_niHBV5b8Bm({ zT3NdCK?@1hrp<25<=XW+%i3;9?MkzBG`r2BQMy*mYQB%ID^eBDRa3-E7Sd{Cnv0Vr zXdz*7CQp36X%e|B(L%!FL7u=|oC<;}i%faqr-qB|?*=7WNLXab6E4bWJwu5W5*BCj zL@2HL5-lVw=H!W|TX#(Ag9KF;XG;5^g@nbNJaPXI@5ese6ICKXl|`mJ;ob)JRaByd zgvFUWvDcT$+>a71BrN8X&IbvqEY6fBXdz)Sr06;+u5IlM*WIXd1B!A$sCpnf+~wMc>;f_j=w+rSpXxNNLb9t z6Yh&8c@OelR9R%o6VEP5=CH(HMYg*w35zp%g3kvnB=n`H_?0K_y#Mt0IoFt)1XUJi zO8cONguaSxKU;V1YwJl#&Ph;Zkty%PeF-PM4=p4tGL=phEhH??lqP5)VG$%xtnk{^ zar{an01{MLWUA7KN|zQA7MZFf5rgK?@1Z z*t5uFF6Y({CjAvHB;x149GMLLv}%w9Rklj7vaHlfNKj>K{ygE<4<>y(394)jo+mKp zEA?HUR2pC!Ae5;AVHO_`Ku(VeNd&@rdmH(NyrB+By7!JB_SUq zsIpaip6HP47>_LFgBB9DO3)K-{b2n5s3xegHGiIPql~0o(Faww&M%!0T1eQMzqAh$ zRM|Sev=3TH*qT32;IEeP8E#sOC<|4#&acvk%8C{ewo0&)Pz{oxN;B8Bez1~|4_Zjr zn!idyK1fhytM<|aEhKD}peMQ?pR9a|&z99%L|Le^Rf3+toVyBwDqH85P8BUAY|Wo1 zc35+ZWb8wNDy_QE`oXjhT1eQMzm^HAY@J`4poN6367&RSa+F9=W$XOXK4>9fYyLce z8A2rzRM|Sev=3TH*qXnV394+JUz(t$f^aLUw0^Kiqh_mI394*mVA=;QBy7!J%LG-n z&M!^SLc-SkSw50EcO?>3**d?p4_Zjrn!lC_s%)K~CtU0`dDqfH!d3~UeUPBaR_&z; zT1eO`!IlZCZ2h1oFy}5FEoqjXEL7P#ze*oA>eFnzYQon1dE(dalKF7)sLu$hY@J`) z2Q4IQ&7UVQAFkpAVybMNU)l#PBy7!J+6M`$Y@MGcFdwesj6)K(=Fbz=UlSJpq{>$9 zRp!IKiZmNf7815fu#!*>@?KQgn!ie-+6Ps(&aaY?4_Zjrn!idyK1fidFXRxj#GJc| z)4534Dnaj~{SC>Sy9$CTTP2uI6}?ksYyMg$sAAMmbMF3=e5KMtB91wfcN(jVOq?^L zKH6dArt!Yc+8NERMYR66|Gko+inR7yd-cRDf)*03&vUV*WpS9oCmZ94)7%}{l3CRe61XY*qR3AN)5avTUr-ek_>h;kmw;#54 zXfwV3uP@O;;`wLlqU+Z*;*9Hlj9Ys(LDkhS*G0elrv1sQeb7SU_c3+R;BS{lP_^HL zy6E^fvIts8Oxva|T4&z!2&zu5sf!lfmqpM*V(rhzM!#Hb#8D51vLZp%eoNeZ>hVT| z8mTYQLgL07$40$}FOQ(A&jVwlPYyI6wo8Jluvc}p4_Zh}yT3Nt{w%*U ze=hgLEuqdyQ1#tYwb6CMj9{J9LgL-}+Nfz;BlrxGpsL5D+UVSFM$iW>Bp&-`ZPfdV zjmuB%2B+x%Pko6N5(8cw6Aie>h)vqPn$!mgs{Z6sb^mQfFdwv#_;SveXoEpUJU_+Phn_(a zRIT{hn5gR^M$iW>BwF3;PQ++$#O)tWPU?dMRmVI%CK}z=2>PIf#I#%82^{xtST5a} zKekHBiUd_#J?`>xpAqyy3yD{68WXS1tn9D!9wb54$;IXfT1d!W+Z8QUlYefNv=S0j z$@hI7jHu3sSxBfv4w~6DlSxD#!e)J(DSRcF>Rq8P=Jw1z{g@k&d zr-m<&ph`X8-!{u4Xd$5<^~d#=M^NQ^@bxp=6)hz6W|%VHh#r$iCiOvrD!qyRHpvK< zE-fVVhFf)l5l`GQGI^p%P^CBOHUo^H4_Zj*O?}O-M$iWdsx&e6EUhsGPID;$fuoZ#aJfd3C#@g@nHJbSAU+v1aY8 zSw3y`B@$HWThyOGUhRVx68d7**}2}wChZR1!F-UQN?*u2Z8cpVw2;uZy3X3OvidRk zJ|{tyzT0)Wt0&eO9-;=ckWe&1XS1YJMGFbVHFWAC^`3kf?fppsBNXd$6Elg?&onV`zf9;hUgDq2V= zUZ(SAS|+GciRe_CG{G2|cEq=sl}^YD(I{6RN!z80G$Uc5HdI!;7isO;AL3Vmaidpw zr%LC|WXG>aP^A+9L;Q+9Xd$694%6`~)dvZxbXsDFU%3%kQdT6W(izzye#KY@EhKcN zcZgrPcuCSDtgt{E7rsAMe$G_!VoA z783K^9`V`nD-u*q9nsKC{E8M5FAZ&|h+ln^)CUQwZoHrY@hj$o782WyZz!Lss5j0_ zAB9l{394SavmrjcF#VjjuNl?}9nTGhZ#Iz4uNF4iELwtr`%LG*$ zeB6NeRY+HTi53z|-fTep$~_;+n3_a|>W>D*ujnHO3yDELG$4LOA0(){$nB>e;#c%R z3yHJcZlT%nD-u-Q-=h)nEBc^?#E$DXHWR-hLDfI|HX?pSAGDCD@7dT){E7rsNAA^# z_!WK7LSmPGjfh`8_s%!Tw;Bnmo;s)z@hdk%PFe{qB!;_GWyh~bP<8eZjfh_{AGDD8 zazJA<@hcKkoqU`-Lm`P@(FZLgiib5e6Tc!s)paMhGZd2emHE*7oE8#q40id*j9-zU zs_h8Z+6QMvifAFx$Cd8#393X}%*maxKL3y8YogkRsg&9f@v@w&Po#zSRVjq{)%9Oo zk@z4%l}bH3enkrj)n$g9KG-J=yUqT1co>hWOQU?}SkX399rIg!onU6J-_> zdb%u1<<5Zo;Kk&r<-MrV)0`c@qJ@Ndi4ecq`^|5XvLZp1dZq066)hyx+lBa*E33o@ z398h)X2-8+A>n&%i?DFiM}jK7B|`j)ZI>1jdi#X<)ow3^kqn6nm3u#i_!WKVJ!lpZ zdW(km)!bKu4-!=AtsUZ5^g#;=jRr#eD*tR~yCkU6cqKc2MGFayYO>>3B&gCTDm#8f z3ki+RLj3B@MWOAIph}~`5Wiws(LzF_Op8+Ga!oIU`XE7-Mzz`TD_Tfsw45EkB0-f# z=OKQ@e9%HdqyBXKO7AEVROu@tJAOqA34Og}$FE3GrLUzBzhXXUA)&9Z5Wkx6x~~uA zg9KIj>I?BJ#w=+ep|8p8_!SAN^z|CzSIh@3B=l9B9ls($mA>0U{E9wkAz^3EroSdg zP!-Mwtd87~po;OJkS5g!EhL&fO|XKXiczXcA7O@&JF_^6$=K=8n)On>{}olF!#tpt z2&zJ~rJA6HM2MYK6SR;BGlyCts0uTOS|X?l@tJCZ77}5uQA-3>AwE-0&_W_aTS%x~ z(Ly53P9mYPC<&^t22+@{mf))~Cc2Y|ORbl2( zO9WN^snskb5tBDPc9ws3E$ZwoBp#VlAMJR!5gW}rB-t^G781u?Qy<+N&yA9g^G_I= z#KLJI5oRZeXt(K4$yk&GRR@i(j~>~}QWg52`VuW9W(=&4#`QJg`kUTL@<9uUoBGyA zt8HdP=l!-z;-a*W*lWG|=*&MG!Bo*gBFvepu0ax1P57lQdj1E^LaHWcA#rlCF52hSl==`^d2|){q)%LH8o;%kFmK7}|!n`b{YM)&v z#_dYI4+*MvTdywK`-m(bw2%n%vgBiIzg3cakf3VN7h|I_+nA5xGm{f4O0dT1bSsU-Hp<>Dh6+(mRR- zRY$KfHrnH3&8DhO6)hyf+%FNMzFLs@AVJmKAKmPPTe5u6LL$ul^7;5BX}ct-I&fia zbjopAK4>A)WkGG!bJHw>77}5$m{R5b8lL2w1XbJ4t&LXyP*Jt&(xrt&m@Ov4&EAK7UQFX)u|#um0IYL2Uh#g+kh4lVMdyK zJUHU{0rAvY;y}LSmtq3FuwGvuL=#Bcz z;JN0*N>@H;ArWT1F&}zIk)TTBm2(a^A8tgJv@2RjXcX0E8zU@L@<9s;jm~_`QmNvo zj|5d34gS_4%LgqaG%ocq%j%qyph{!Zt3J`Juxf%95*j(To@>PQd)}JVAT1;`hWAlU z`PlK$^^(#hL6yey1Me^&o%een8DG&tLSGq=U1kL9gBB9{rt)!7rRurC48kBDd8(Xdw~eu+;=DBoq(u5#g2yszMyLnxKV5n1$F9K~;#ul2Cs|3yClbk%amZ z5>$maY&Ag(3B{RwM7Sk_st|`Ip?uInBFsW0p?r{_DnxFp30g>md5bL(RE5ZGH9-pr z#V`FF$d(AILadjB%8C{eVWwkC1XUr1OhTp0I8~TaG@^;Ivs~_^A3jccYN|-j$Q2O3 zV(&wOs#P{FAbvGu#K=q^RD~Hy%E#1Q&rH7PX(6$0{{rGy3nyQm_#i>mqsJ5wzhXW} zQ1#!&0^(QA5maqBc)XAizf!v*K~!_F ziWU-g{8m8x>XY49NotS;RiAcjK>X_8|Jf#a*OH(r%*9fwI_$oRTh%^jA@TKuhGybdB&fRX>ITHG9ywv>BgzxwupSwYs6<S!g;{9I$G10ywKBAj(6bWaSEv3F zBElr7(i0rwS34XRdN>kPg?Ve$rArG5^+Xn>a(xMUI1*Had27`^Xd&Ty)U4PN398hC zhxipoOSF*Cn;|=XMS`j@Z>>5Xw2;vIDjmO4D)A}9pYDS zRE+@4LPDc~bo@%G;=QN}Gu^6lP74W*Q9}Ic<9y|4$FRT`sa$FFE1p>b(;{E7rs8ZC$T)uKIaO~wo)sM2^o#IHsj z8~(ye3ki+kL;Q-*2MMb5Wsx1fB0*J{f2UUR=K~%{Mj5n_(DzPu{E7rs`lbr;E9Qd) zRr+qrj$e_WN?()N@hcKkF@og!#ECy8Z%$fBFiMrnHLiAFOz1fuUNbg2?&?kZ7l-&c zS1Zl(*BvI0jW%B3uXDMdm(@M2+`IqduWeJ2{@4BWQI{D;u&ihy@yhu6=%05OQCl3| z+f(%=T1ZSitUh|^8Y7-N<(9bZDj&3v_+_j5=!gkMFjcgWxZbVw{%VjB2aUZYZddX_ zf~s}exOmCGjCi`^3ds{i3yFR2uZ!mGX9QD43yGDltc`wg`$nmra=C#$&PjZbpz8J` z>!SZ|ZbZLtj!y_$NK9S5E;@f%x3UkWiWU-W_O6Xye$j|?7GE5fmHKuPR5d&~HrjE% z5hs1RYVuu63yF7I)ke>bGvdzAK27pLf~wobxZRVkF@pJ^g~Sm%j*T`uCX1kj#20RF zkv?vRCSM=)L4vBqi)*6~Hq9bvA#rM9O!TjJHYxjf_RaN^oRgsH-r2R$SsxiOu;)_= zK?{jj>T08{uQOu*+q)*Q3|dIc+-pqqe4`P}ISHz+-={V@_~0yp77{ z?vdn!1XcTXsf~78$q1&3781vQIXb%Psg28}+kLxGRwSre<@+&F&qs`)4_Zj{o$F2k zKgNh}OG|d}RDFpAReyeNOmzNmBfhwB=cGPpAyIpmJDYrMBbX{$NL+c_=;-A?Hp*zb zB&a&;vN6%eB_js>XOrZqrG>=x7mtosnQR18MS`jg>c&LZ3^U@#37aH2r-j7Hb)%z2 zy^Js)>ZwUkHU1P=gR4~&>aS=a(eaGY(ML~hm{C?FsCxAHG12ccvj|#9OgnXS{Ow%X zmna`3sCsUw-`S{=P(ElOA%9=~(6uTb@ziv=2s|~7JyIDx6<^TSO5$>r? z`YYaxDm`hN-E0I?MGFZ%!AlP|;->q*O?;4`Ny>kU?}GJ{cP$C3 zG=9A53nPyF{nLb?g@i`6yFX$C>w^{&8ZEzey%8LRlb}kY^LCdQvG3;>CaI!@guW9# zbbG+~I{()XcO~tL1XcQGSaF0AmvpWCnlK9qeaW1$uMx~SEhO|!b;5?rBdF5%)v4PW z@x}TF#QD%0hZYk0>RV?6BbX{$Na(xv?$6dOm(@XIyT_vp`5-}+zC~;QoaKWS68heq zv4RmNyf`o!$3Ov^b5T1a$RJobMesH!=r zE;{o3<@um${+cebok`F_;-n7>(YD8B`JjbF+u3#h13^{8s`b&ue_Ngps=mIb&hW8;$Ir9;*|mt?)BW$Et!var73nyI*DQ~qDlWrJf))}g=|1OY z`5-}++Cnx#3kkKiolnp5K?@1BvE>s~=}DVikJB{}E!O1=ow2;vA zVNu*%Zqpg-^i|6KaPL79RJC5E&`f-n1XWY|6cFEK&PhzN=J`pz5({4T$gd7(Y3wK@wE`I;63g_%1CZ z&WK!Jk{RD6LDj6pl z(n8|8PL0jPcS%rn#{G?m?=t7Kkl1VM#%AKXB&ho9yhg-#58Zx`_=!?0p@qco-5Z;U z?~TN&^ ziLK6YHJBOSB|+6kZN@bd-=&4bCFeCZ6W=94)zo(WjKg$Hh87YXCikCYJw`2dOE&qHE0$Rs!faHy8QsqN_a1-)OxbxyR?u{ ztF$O?>?3LIB&gC;5aPR`eBBB5u#nKxl^x$DL6x575Z@hter3;K782?uvg5nF7gg%V zLVWkuiQ%tHw2)BW72>QOBwo6EVsC??N2398hChxjf_mlhIwGi1ki zNl>LXQFeTn77}{HSrj*yPL;l|vg5n7kkB_(i0_U#>6YaAAVHPB^s?i-B&cHaGnf1E;^2c8 z68ioO@!eN18Xo6d^+AFvedC7s?&1&LO!7g3Dt$+%s%qt1kQ&$jF*)CUUf)*0C%atd-n);-Tck{H6uwB7DvC-X+ z$D{B#RfGKg=CV*_dsd}WMGFbrfyxtZPx2&Hw2-iU#698mfJjnBf-2jA$`jbtF;5E# z+eh3J&rk6_RD&d_vK^>A5o*0YPYVg#N8A(Z-x%^if-2jAD(!<761If9 zF(gk53EM|J?SlkWnj5Jz_0j|_By1mXPq_MsTZ!s}1XY@O8g(@v*poa@3klmtJe?{M zRB6s_;gd}=@<9s;+j%_gg9KH!#w<AK-J5l$o+tkMWhaY;=SfgytGUuXXdz+yh#m|kj~Ug`=Et{ z?IZ4q%ev%~`XE7-)--8Pa!)kAn4FfDr-g*=3Z70C394*uR+^xNgzXCMiSJjvBF=~U zT@qBuxArGb`=Et{N<@2-rwLj}*goQ(a3g@E21!t5E3MK#Xd$5%qdm!6CaAJ?Q)z-0 z61IK8VN$v@bEJ;vhJJY0n&_crYnMo70kg%P{D+!GmNKj?_%v2H<{m^N9vXJl* z7Rx!yN@vmSFw#d-bh4aXi)j7ttOyHLq;+!Mt0yjxph{=oWfQcJU<@eaLOCZvmCo?{ zG8J1AK?{lIqfsQNvYpw}^+AFvovD}|zoLbN?X#ZtL4qpVXT4>DDxE*6Gxa>N(ivTn zu@5aIY@hYC4-!<_9_XG}d*K7gb54RPoxG_t^*rHv(OJIc>+`gbuwBzV;Z9dce2}0@ zCy44yy>vckAz{0ww@gr_lTg>0m*s;N61E3=+6M`$bfW7oS7-U4g@pE4)0ukS$DDZ~ zo=Ac!olM(%xDnwgtk2UzLi^E$_!VQ8B&gB}yRF@dL!T;~)|{t>gm(K2@hhf^1XVgI zc*@UN(I{F-XrIIE_!SANbmH;O4`=zHg@oK|!QY;0M94{f zo)!|e=eAE3N5~|o(#hs4{Ugf-q94gy zjTRENgLc{n396>uIwn3-FHO)w!gkR11kO0jlc4I=oBTS+v=3TH*nZe86I9vm)}Cm$ z`K8GdRqexKR!XhT)JyxIh4;1Htv&JWdq*bqL4qoky3W+|g!{`+LeN6OcDMG#t?#X! z$3ESz|6Yku;_zO}# zNKmD(*ATx7PkMcx78178ab-T#GmxN4U;2z+g)d=RNZ3xtX&)r0vVDtNCa6-3z!Gzal{uqhFRLKc|QURf;qHx?goZR39X$Qp_ovpoN6uWmoT! z<%0xOine7Fw2)9KJl{XdN0|F@XnD?+zOWBX_Kw!I_KrR_iI?~i^(xY~E3_vTE&r5VS7BMQ$-7jFdIgxa%Z2}PHcG+ zRN1c3X&eW zsz^{}yFypyLwyM?By5joPpsMN;UrbGkO(tws#^&Os%(#E@8i@>lKrXkw2%lhZscQ! zKV6ojiUd`*D|9;Nw2-hpp3?*^B*Gk>>YS6H%Jz6p`=Et{{@U;7`&9cNL6z8 zw2%n%faK$h>ylF!T)*r0q1L^qvR$FmK4>9fdpvvM{0A#bSG!7A`v^0Ks&meJQDu8P zdmnqutZXIPRazDjYBAb7+7s?CKelIPp7)~4_IUOL#|*TP2y=~;k1tn0IO*X?P-VM9 zdmlLaEKdsw+v7Q%Dq2XWm+5_(f>hv>8q z-is>Ry26>s0y<>stH<1gcV9H5mbd)9n}OaB*LtY zYJwILVNDYWl`aXY!mJJwdd_Jf5!N)3kPi}6g%wI9s(nxu=7Cfbw2%n1I;sg;NQ5;_ zEfG|OSsm2`EhNG!sFnz-^sM;VA}tYAg?S*=1T7@Otd44emI}f}yoL?-QL0?-r?t0C zzCTDXmZh@~cRbvP%`QJP=|xFUr4t!%j@Mwdlq#yi%#mt>77{uq@{zqPRkfF`mE?m2 zRXU4uTwfzN-X%em&bwS~Gb6U#J2^=pPl76)!g=POjcCpXRbf6$bkk?p!0>NgGMKB0*J{GgF-^T1e=W z+P#l3ADdrvU*dxVRbkGId~~WwPV>mqLPBTf>g=<0>5`yIC;DEVGh$-TzDcS`P!(p` zROg%)5;~c9?z5WpB7!4i5>$m*HX=THuyqnOpoN6aOFm$d`Cw}&L6twn*$8*`*-RUS zlb|Zh%c;&eEhKarwaz|E*9Qrz!n~YnAGDCrsoHydtoc4I5mbeFIU*+fo}8kTr-g)0 z2iMtWX&)r03iEQRQ$-62omqa$aale{P^FX9dv0pPwX>t7?UJA>%;c#~6)hxmBD~H% z^Ev+G|1>5`x-%>AkMK}#i38}Hwq_Cez0Vo-_J*=L^U ze^37;=Om~KvxTZtMGFa)f<>v^31BE)5>$oRLiC|=A}u6Tn--;teI%`f1XXH1A%4Za zgccHNl{)(@UAiQw3bTcn4~<@FA)#kQXPh+nY=X(6FEgU&un zmlX-B!u+D@e9%Hd?<<{smi9q{D!oN5N|np;?M#9yy|uIBSG17OXux7lx!m>Zhrce7 zpeoErs?IqrBs4~`C{?HpwRRFzY2>7{&wN=;ZS*5DJ?A8-(nu}DuY#BQJS`+N0@T@O z>G~i+RhYx1oX^+Cb{quqeYuL-*sRr<1c>@p)*y7WPnzR0rUSG17O_m0j!t1K&(E(xmi zO{KHXS|+H{cbm>W^F;L*q@|ZCeNF1@vzC2O6=rX#mE1gSrDXI<3yJLbm2yskDt$-$ z^^w)jAPK6%+C>s-i6p2BGsH+JRkV-@YZqH0s0uU0stH<1DB9vzJGMkn6=sN46SR;B zYZqH0s0uU0stH<1gtdz#R39X$3Nyq=s6J>Rp(tMNOwB23iJ&UXDXS)EArV$PwnR`B z=9E>AQDSuO2VDw zd64v&32 zv2tCs^o`DOS#5Lu*yxd!ypQm^h*u7HsrcMhp2$`WYzn_CRec72SA6QpqhcSlFoofF z`5=+4VkyW+_*b8QcH!t~=4oBxd~AN@=;+mR{q@wQ(b3yC`Rkz9Ge{NbzOzP0yB(ZG z&_d$M?qi}^YZx(cR*&TUL4vBEmyV7m{@`0^WvXZ)G49kc(TTH`M^M#nA9se^6VS9d}rMME=6r!E$&L>G?;F zj#e6`z9df7w(av*mVMBYO~}XZxn89~ul0@l-R$S?@FqShl|--{-b6ZFD^-g+9#HzV z%i6II_EDivJiICVF5=y_4sc;3Ph_hGHih4nk0W32Tl#ES&s07_f5jBa2Z?Oez^3rK zd|Z3{VWnt`_OTCoXWfL~<%2}F%I$tq@y2mul9C%~#6IYq65q3&z`+#&N1zK=Wn{JF8a%;R{eK*rlD!rS9Q^GFSP1^+tv+Dt=v~?k8}NX zF1O&?ZSxmIi{`xBs&}3$(tU5Ji;j5G-zk^N_bk=C{7~o8Ms0iNU;es28t}&NyUNG> z58b@^+n4StA1k#kL?;aK*SXv`+m>oBe4uk_#}#|$sUrRF=j)>dn=g&;l*|2f&#m(_ z&+1m(Z-w6ZAKZ8NH@&=frhQUdNA$ORytmKR`Fk6?6*q0&J5Lp9<|&sejb2i7;6`mr z{oC};x4*PLI`Bj9{isXa**>%Xi1RV%j{4}mgZ*_bx8|57HD|8Zw)8Jox>S+g;mrEz z+ zykq=zE;sLkZu#$qT~U15`JjsQm*3Pyw_WG&l*>&&?uwd^-s@KS%9U=9?F!NP1HAW> zH*$N(tmn(;?Oh7df8Muz?0n)CHA5D5E8XN$MHT5&S93cLUt;;V@aC@ht8bcKeA*GW zb$0u$tmC~i?O(fi$w~bzAOGiwyKkOee9;k9k!GIU+u-);HRs*jwREw|Ilc3lU~1j@ zIMb)sbiAc&sf{D3BF$&T-nI25UG==tox=4_uKy9e3QdPT;IF%GIKC_OmDUTw;V9lf-333yIU(xp}>=44?VY2>H18v^)CHLSn@=Jn{1nMwky;NGx=F zl3P7h*2k<G zaQ?sFcptQoSlYi3-F8{){=Nopd3bRC_|KNr9QMi7J|w96%RX*r?mJue_cgfRorCkM z{wbILx=s6sNKm!nfI_tI6RrFE8rA`IUjKiZh6Px zeCt2w@|Qf{YZeKr)<2>UUH@I{{=No>xO^P<`LdcR)2^CLf~qr*EkxI}Z&Q8-hq-*b zyGky9Z~LAVKB#*9L{~TKx9RVn!KddB&QG1Ptft3JKUI_!RV$xXh_>I(d56<^qJ(u6o?TN&EQ1!;xLUiE~ZOUae%hh>TSLfFq zzy6LSs2b(o&g0H(Q?8HS9v_^~y|Aoi-nEZb5L6v9(Y+HdbUxyKxA)zH^GzLc`R#hX zRzXlT?y^GENKSg9shWn_$kQchCVPj|Fj$Y>G>c*Rrp=c zN8P=H^Ut=+#r>63!+*)e_wp+Lz6#eOYMqa%ZeW({(6O8kuOiJS&CM^FF*rZ?_hrRT zzQ3stEhLnu+tzGV&Uwd22j@@ua9Q!-y4!akL6ypF{FbfCrTePOM{k#p6|Qgf5DBVO zH~a3^s$7G2x_0$!$6V>WDFZ7~MV0D**TbEU_=)P`>b(7eWyK}$_1cj>s8Sod{?u0G zmbk)9SA#zRq?ZOZL9JVb(MQ+Cx5oA zxWO77D|}F;=W+W7%*WZ&2j}~&mMg7)?~4`rpi0mD)=yhL-gVE%WnV8V-hJDT6$Dl4 zS1x?d%If9E2IqfuWi@fqWfl3LN`2S3pR7I}xNC6!=9O}#zwY`$g%7IKKkl=t^`d{c z-skO=ecNSOQKde($7a@3pXHvxy*uPeYYc5);e#sm^T+Sv-z&M?)uqAtU0z!j$1>=H zs_?s>kN*3ASDZP|M^gWtr7zZK$9_|!Gs2{)&$(ErIR#x>dRx^{o(Jp8-jG3D56 zmP+4k_Pefgx$g(fDCVv_Ip2Q5H#>g%Z9{b4CEmwhpKFMQ-syel_w(KF-bbIqW)$yt zgnEW*RWoPOQq#m#>mSwYD1#BB}HxF&yJ-pPH}g2+;l_C7xOZDi^D%Px=K=aY6D z7cD%mO@+S~@KT#N?e@FRNAZ`Dr7fpNwS>&CxUHeqM=ps0`mjAk>Z}P$~-iN-) zt9_Dy77J_o=$V{Vi&RUOuX(@8#!jY#Tol^V~`7 z=YHhdvHk9Syyl3jdwL>ErTg0N-p7_#jLBc|c=uF36tg;YaqIY5v1?CscSNryPnbpC zEw@tHwNKTj(b)X&pU&&29`5n0>Y_=vw~q5c+J5)Mbx(}VpKzBavQ+Y6zx!0p|7B$U zmK%KUv*s&xNgrh;s{7itCl>rRGXL+(Jz*B9NZYkf)zfd+<%jRGLY$9XudIu|YjiKB z-G28(hj;4o`##;SBImN0inLEvd-vDG*Y|%Zt`Eg`)L+S>7|Em~eVyCy-Uo>+6>0B7 z_2B>2mtNm`Ty*hG`aT=qr0bnK`s>!)>QqF3oy+ajcHBcE^!-c~>BF}g7oD)kh_VCs zpZ8(+rApU|s>*jR*R+1u*oO#ONL;wtxahWR^gSqI$HncJ=%FsH|uqarKJhqQ{n+k6v%hOHxIGDqSlY>3#fm(jB(bREZW6pa0@cEOaqT zPdxF@wGtn+R1;U#v@H|!-YnQ(cuOR7ZK{nvZ;XzqHG=g)f+}4r0_jtA+Zo9|cO_a# z9Q0~q^!h_tK1fid>!00_())P#pj(ri(?a5^#~Y*VE?l;&C%UZhvCVEP(Nay!`k^{i zdIm}8+Ei`tXpA=6(0sJI`4ao9Wr>z*qV$(`<$SF7mySt&kkGZM?slWInL~_VeUP9^ z*ZPZq&-t`t)=yGJ3yBBLYK)G&D9Z;4s&uWtGXC0;%rbdLF(0&$*j2=+talVGBwqchA=>jwBM!Ty!^85U zRMA4>>_rXH=MNY$u5M1;w=3tgkl5<8hG>iVMr^;|rE$(h&_ZI#hYis;$-8#X@uwv3 z4_ZjP^=?D7j*AYa>zo!6AG%fXHymU2!O|r`)w{1ZMB_IyAGfZtUz`uUqi7+q;(~^# z%l{c+K9qA>NDOi3T|V~DYC=9}A+hN3hUnlEjree2$E0*=Au(&VJ6Wz^#P01cNm@HC zBo<68_m3)w(YP$;>qK?m-k8Xp1OL{n3NGy#1j$?%RP|j%~(Q%~n zvB-#XhOCzKCA5%O@vw&I&zD!{Lq14Q_1 zfB6}5ZFQ=u392S+*bu$5j`?7!Xd$8N`JId?9k^>!RBg0MU(m%KYi=Cbk#~|A<_Q7g=X3=394>+-JN)wv@52H77|Z9Q$X82 zX8$#lRMA4>vs(-38O|B_aUbuezC?nmt>?IWBu~^O7hORP{fj(99c$77~Y^SipPGy*cAihEhcfiEc+1@UFF-t8{50p&2P* z)YlwA)qRH*ni&DmLPCG12&0TMZ|R+kmS`cd%|7lgSjk9+siK9%_Pe{Yu#@rCx96Oa zjD2V!(P`%b#&ECp?U;NI(n3PBUTn1N_J^wrqdpQ;eei#dNJf?y^$sITT1ZUlQ^4r; z=G(&Pl@<~^?cn;7WQ5GJqJ_kBniG&Y3a5oc<==7U?(4tq)Do*l`kLLOF)qIua=Ej& z-0D%K?2zBETFFr7wU9n;7xTc}FDeiUd{q0{CjmA(LG)ERMm?!zP>B&gCCz-q@E(QDtMGJQ~`FMv_|8*$p4 z{W1xvG@k#{PDZe`GgVY+e66{IzO3H<$CF7uXd$65fcG{rAFY3UF?p+zph{l=9ab}9 z?{6BD$OH+hG@idUUZ+Qj+LGe`>weE~f3rTLh6>xoIuNl>*g z{x&dT)p_69-k%jdsM2`;;TMcJ;ht^c8mvwgRT^J6{@wD?Yn^qHu@5aI^ab#EWIl?Q zU7F;B1XcP1nDCGhC;n$doGQHsNl>Nne3$!-V11CFN+a?M^OldFzUi0vpoN6K0LD)@ zA9tL!agq-bROt)g*_(~9RH<}HP^Gc<$9*kTw>`3A;)50vUv28XKW;J~+cYF6xRgjx zrEi8GrWx_u$-mp)Z50Gnx>GJ8EFW=wAiY#+L>@}l`AAwKEhO|c5mI&F?lWh~kIIS! zRr+QKrR(Y=sX-D{=?fs#;MRk8NJ^IkRT{&iwVymL@j(j-eKUlX=-O`Lg9KIj0tl_0 zrAvY;jmSe^^75e8NxLFJmA(MN+ra8WEs+FO z8j*+hd5;gCO!`DxNa&j(yrb@!IV-6_5>)A%A-p-=yEZ8+5>)A%A-tU}AF2-$RB5zq zW4l~#o2KA{783eq2xEr9FFc#%g9KIjW(ebwo%&5k@jM0^q}!o4C;6a-guWTVShVwFGm})2pi18iVZ3{Ir*)IB zA`(>Tn<0#;PZ$(xkOWonH$yUR@A6Tr*oRs>392f;CZ4bRFnI<^P^I6)mzVqdNAi4- zpi1iyvi~YWf+}0N;Opb!cXEjjT1aRuQ26T->zo8twtC3>7~glpxCT{Lw2-jXHJ*6& z!_jf?qi2woY9jny?UiRfP4YoP*QU}so$SB%k)X;}_V`pW=d_Tp^+uj>e}hcwoR(@L z{GIcrcF7)eB@((e)yikrCx0akX;N8{pi0*jf3HnaMGJ{DkFHPt+8cbR21!t*>x#cS zCpAb5iHHAQkH3byzilVaISHzC{d4ly@M{`wNa~yx5?Upc{a1YwRN1;BUxUX#a%|#* z77|)-WU~lDS*boqP-QEWybm{@A;~!{B(ydw%(8HECT4q2^(7Ki={n4^=yB7e#0M=T z7Oh&3*&-n)^(7Ki>H7X;w#WxZKA5D677~-%);BZjg#=Z)4zpf<{l{^M4_ZiQU16BL zv-jLialAxrmjqR|64BSk!@s|r_@IS^)?lV*A;|{`s%+J!_ffNN+vFWZ3yFVyQkTq` z%H{TK+qSRjWU2E(f+}6x45(0lYKgRvSob48zs#rV&MqtTd&kW_6RU5I-e36HpWiMj zL^D72GfeGwKga9O8?Dgqtum3N(%doo-OnT2Xzo$@?gxDr&pf*gvkf_?%&xtU_D>v@ zf9^<6m__#@ZP(t%(g)_vnds*BDIcp0X-HTD@k;li z&8N;%k@i0BT+lbaw4I;vYuw3FC&X`xlPT3sQFR^e*Zh3;#=dmnD4MUAbr$WoE^ zKHN%+8m+X@GiaqNOT2oyyt=}E_deW8iyE!8h|d0I$1Ii6w(266b1M|`wnBk(%&o=f zzV^HK;Z`W*ZG}RXN`Eax0=eSw%Y9(1J(%#3Zn{J<9dC3KH@@~bt=9t^g z4fdwi{tWh>*L5!UrX%_;yI@Yytv{!VwC0HSUER;8&*kp@V*C8E8|OSa#O=>Oi@o)A zU*5^B4El2W{Jl%(Jo>QnK^1A6Rqpd~!)osp-=6nEzXKN!Epgoyzt0t=2At8k#EfVsjSt^7gOohnO!dNPydYb3+ zp|OOJ$zD`iHAI#sYrpsToaa3Ae(L$nKl8jk_q^}9`#tyEbIw)YXY)(#`d=S!$$=jP z1t^vJgR9@B-ZZFH5L*s8x1j&zpy@yJg3Z4VOuN9|tCFqg3b3HzqarmZm&Iom;*&%X{GbRbJzt28Qf&&bI)3>wp-I zE$Vrthp+N}su>tE6{Fb~-MQ@>MtB46UK+fNKIit4l3f3mwj0}iIpU}Q~Y+GR#_37s3%yexL;zw5kZ;K82oeAB=;8_vCl zQF3U#@4erC)p2E-ct*2_d{pzmYAzaDvkLkDeRw-z4p#l~N#aA4N@kSZ#mkH`pL3am zwcg~V2dxQ43|x`;8KZ=$7|l2F&Rtsnd#|%Ai!DVxnyxKP`Bd^PGT%WvSNX>}@5L+1 zVn1L;F%_dX%6)ChpYx!fHUyhb9A0n{>cM(3)~d1JrE@2hukb#qF7VC(Lgu-7tnv*n z-w!)?%7PW%eS62e`+m{2#5AUimX)E_TlVyA>%Dq&y2Q>vJ!Wsl=u7&Ba&7s(-nkck zTJHsqcZrP#f~gqItpMqM*caaW=eF`Tpj6j?h#R-0A1#-i@6w(7-}zs7d5;5unllxn zxlYaerI-XPaY{T8PwaJ?d0&T<()$cF4(*wsE7H%RE(D2f>!VT z{d=zpTCB4d#3M^qK5kiJHIo zB6fhJw>95w^IbaPU$vX>b-HS@cQaNvregGovr5U+`|IQ82bXu5?45+whkdpA-hjQn z5v`}*{NTsaCwrG-g<~p4^Nj%B1^C}m@5G%Wyf;vfb8+84DCyD7mIG{e;N0C$FZGI6 zkMQQ9b(xCMS+8POOL>!*o-ijke)4p0HR{3T~8XPwvj>axVqs5w(HT2=;IyPSKf(WSw> zpWgR6pmq74i|^GqUXF8@?-dK0J-@emVqHtF`D@y zZfW;b-q%4^Fa~3nE#jruY^`P6dU#Zww#pmSqh9b7Mj}%&T4r!<6pvRf{32L*a;xCH zo!D#1`io}~$LDaa?%*$i=ZCin{zeZn6{C4}K}T{(Sz;~L_v=s(j@H9>!f)>6Xg&S1 z%M!o*x6V5eJ;+py=G)$AO$@LmCS*;NdlefE|9@1KS2nK?K7FQ3LUw1SVl-QFIoI*( zRzW!6i{Mw(gY8ANpEat6Mm(~Z9FQ3T$P9tV3{1sn84I-*rqu(6RJfWAUUTr^s6(<2 z+TFjdi7vS&4!e9<#bGpL4&vn}e;8kei_9 zB9Yn6I{jCQ7CH1Ai=J@V@Y z@3*6e795J2vt+@t2wNUHcW}WfZ*3yWdjtsSTRW4nWWhFm&fSO=?!mL`c>_^%reZWp z9L{~Z_ppL5G1^bUXjhp*<8|@;V4E4|Dn<_}=<)3a?{2JcOtm{&qH?K}@kRA|@0uB1 z5?hk;m8~Vx3KkJ6YK4^b=gO_?y|bR^lIVceWh&m6cqf9M{m$`T&%C&I8dlN!AHq(S zj7`I*BDO+v?o{-5VQ$>}1>=gT7@dBO^8YIcX3bm?JOKo+GP>jF8HZOT=XSP;1@FGU zB6x7C?P^NJXxXD`{a8kIp5p}%P4||f&soOddB-x5bFX%s<29W--D`$ZDpN6<=Oa$S zC(QAFzHfTq&>w;@k0U`?j3wbw>+Mt*JeJRy9*jWiG8LnRM{T?%tUdu&A5T^vj%>p= z6C5MQxe50!4F)#6*;@x5OvPxCIBTseMx8h(IC0AKK-P9y0jwS(`&d0>m8dOMdCr_* z$&Bg20YESnqeWV(tvN~DnFp95NXy?TEU^u!!wDn{!`*mll(2gZX#M~(M70Kx6fGA_%$ zc%j>i2OkU{?{!3fFcqV@pPV~j(sb|8edh$L{?gsR{L*-2@QA_reCl+s<5hElk(eJ$ z#lCB@f7C|hO3DnL$P6qGvQ-#INp$X`!L5RU{l4%V`h%$$&GMsj*B(?qwr;h?1XS5T zJdR42{?Qutw5zjv+}Hl>)NlFj+@fRZ$G%A-n2OQ%ThPws=FAU zXgoqusz&pJ|D8TLn2nLhRE(B>s`YBTtoa&m>fjZLYVcsWmSuI8;jwcby2ksj(~87O z>;_E5XqJPWn?8Md@M5Pq!M^AZ)>HAkW4)GhuRJh4c%|!{;DV$CV6&6aJRhAq4WqDY zr+Cm72-YFVN^Q~CWNokYYHa?$@m{y~@n9-S#Z-)D%@iUu-SmZb!#S;j{;2t??`pkb zS-NMbACXmif8kv;wNuO>U2NwWQoGD{8G2K5P8a;DfB2gC!V=OvPx~2Wut$ zL3@ATb*g)*_b%$ex-glkwp+4>&AFVP-}lbn*2fzuG8|Dcnza%DG3u#T0jyjgSW+?9iKW3B6N z@G8*fOvPxHOP%X`L2m4b!!~$d{*aDfs&sj`Q}-*PZX()n{_BFVe+&o!GO;CcFn_6ODd1rS9uhT zg9fUl^04oU=y1WxAfCLb&O{|8vF}={Etg#uet3#TFx&hOUdcXUuc)ndG{DakLy=aeqB?~3^N ztJXnY5|N3D(ORmR^*V-brA8{`o_eceN#*KkS`YiKJpQUVKKyWvA~I1)zV=;twD>wd zY?*x7fm66Q?Yr_|L?$Z9*S;%{zjGUe>-y{cc|+`8t-ENS`&XA#o_40z!@etzC2bpo zV+JcC6P4s^-<3yr-ssTXuaWV7UR_*SxlsH3_^*m9A6P41ZKX@?yYg68I6Bg~_)nnNRPAN#F{Z!5=y8@4LKQiMCB?YEYyZ>PcG zqdhgwoz-0O8nCsv@~%PJR`y*H`?Ve%?ln>onWz}8r5g13u<*;XG?J$wB&9Cw=I1`B zJnXyjU_>S=Mk|l=m$VLsmE9T2xRRBj#ix3Ll=WlVmwJM<-^!zUdF$Y{M-^cyk{6@x zxAN$Z$f^&`)JTO^DoNovVc(SpBQjAjT6r`XIHaOv$A+M*$UaSL?;u%D&~vTbD0Xc$ ztYRP#2LiD>mEB;n{NUV{MavR*ygeprE33Jb_ppEAuarD(+i$H$kB^rnx+M{oBIRYY z{nmOs`pBK(K3iHx^IS&a_IWyXZO%)+_FZ`}A`_M5Yu}Z}$n2PR!P6^(={Os(wuUW7 z(yc|HPxMTm$W)AG?GAK(-xh_vOS7WLkqt2i2O-XtaOYWMzqM3-p_MqkX@dx1DN;j5 z+i$IT@>aiM_gj6w(@DR_x%1agVnv6p2|h)iv(1fKh}4bZcZ(HCZ8VYv^;g8UH(nEb z4jGQA7|k|1cvDY%FtS6Ic9$JMYRKz~eNXGb2$6}3(b`t~9#odt(eV3V15REn*Xp@O zZHib9#=A=gmnA${A-#!uFcqWa>{A=-<xh@hAy!L&Qbqhez3&`Tbr>Jnse>$&W&wvvLQH8?(W*F#fH53z-T?O+F5Po z!12Lnr^dZTXkBi1(G=PJSNfgT1l0PQi{jp;(7iGhqq(0jN-)yvefnskFZzS6jbxOV zw*yz%Mw4M=1j$C8CP~A8+oSagyU(C+b>}oqs?Kw0 zYZJR`Yh^w&+J5Ui_s*N_{R?esYxFtm4O!F78ff(3m6N?I4xS&Jh55l$jAlKfa|az( zFSxVUs-OrxC|V9%`}jUvH6gk_!cOL=tYB@+Rl!u8otcW!e9w)zC3ROMEaPiYL=Q3*qnRHx^c`c~^)IdP&Oy!jO&qq&W1SpM!n&(@a!bZk zjAn~H+<$0)c+wwyTg>-$dtoD`MwEOaBb|TvvS;?XPUb$QGM;Th^_JjoojJ_c8i|sTj@Hjm|ZFbwx1h z@>uX5bjZ9~vfT==uFjRtSrH65Ar_p6{$MIbvptJ*W9nZTyuJ1Pz+trOy}a7f@?C2B z&FGeCu$W)AOc13Arn-?@E z==w&r3qO8+j90I2Uby+BlFAG4YKQQ!Gl%r^iLsK(!(P_!&UG5xF7yvA@*b*}7cv#2 zP14st^AkPpiBk4e~;! zVziwTmB-N4Ro-zOn)z?-$_-D&-S3v4wT3GyOCueCP<{ScX-co<+~n<5Ui%}P`G05S zg-pfhIuDmtUizK2RlkBT82UzY|7^6?z7LnAQcSlXJid7fx~z{4@lbXctb4P$|0-r6 zQ!zSS&(LyhcGzcfnYRUP#qDnAOyMyMJKW64)>hYjlO4_|E%Vx;t(c0@+)vJ(bzGs> zx>t^W$t zsig9xHny8&|HE7DCV6M>b+KP-9bJ-q zK~Pq^lE{xm&Tzq%V=xC_&MFFS9NNym7X888+rLpwD`rjnm3!xfOvPxP z!Os1$9iwn^XTR4zdEp@&VTcLcumi(3|{jbN`FKG1`fW(Rt%B=Tqy|l|4FzEkDl= zK0tr4-jHYNJzdaNpV_QE>zq#E(r($oADHJ%#b}Am)dSavZD@G#kUaXt`Y9QJw$5!gx zUz&t}&fe&?1P`WSH1BrKO}nPd>xNfWpF^Mja9e3=W#C=^p&2-f;ATTd$w{~2z0|L> z{gJ3SQ!$#Q0q6d_Cfi$mdMAHfL#(^BhL1WQ`6fp=uldgP9+2&w)&~geA56vQogUWR z%+-TP7yzw9EC^Vh%DDqj_$^-Usg$-*9Re z+>9B;qv5`@N-CH3(6Pj04Auz?n}?h8!eAlxbEaZ+qzix2#??0`7Y4=MbNu1hKX~mE zsn~YT!C#cnKG?NaVQ@i*9DnP6c_C9Vn%7FS)y$2-zJE6HTc94iX7HZDdkHMbpWhg) z`KgJ2D@F-ZF`CyH=T;SG2XzZN`N08sA(xj|HD2wUo8K=xn0q1KU&gFuDn@htpeY*J zE*!gHOmHklyT~6G7HTVsoLGccBSq2^8Rd8&(h)4j=@kX7lPy0%_@`b6ij$p_W3#o)nIB5@d6qzt)3&>7Wn zcDeV!?3Vt$SmAiJ5=OZjqsv)(06;#xKhn?<(`^)XI z%S1c!8B05KfaLT)t4H6hx#11hhZP0rbEaanX;QTw>(^Ju`ePrw3;Q6?&gCb=wlaCU z$g|nGtk0`se?8mTzY%@TRE%!k39&y@JLk8vT87iG_WpxD=b0lCYln8)&pgwhVVT`B ztTVMdXpYr~sTeI%?daRB&wCx2JvVGUHGb1ulNlEOxmP+y- z==SyRheTF;<}69R4xC9MJ1;vcTsE>MSdOtPvcd1IR0AcuO#6x2x*|Vxc+O_jpq5$T zPyee49>=(1Dn`prG@!2Lgty{VP7HRJ6C*8GQZ}r$TrYu~7;K*yJNlShe>%<|JQ`T? z=F#Kad0CTU4r}}USlgM3(JYZW_Y?ZN-BDS70`=gYV%d;;78;gYYrL|fv-~U|n2OOX zGr|j^ASZmGO<~Xut;?$n%R9Vw!B-patB*OVFld93$W)AGImo$(psI8nb zmh8KZtC6=43O-LFGEvD`vhO;sRy02-?9^Q2Gw}Jtb_U7UzAKM6TOSlw@27}NRFbcK zS03IUe+1=qCwcST#XgUWT3_3erL|UQGD;Ray)5xw(pR7NbKAqEB=%iP)%cBNiLpsU zCMqe3eb-VYXH-}_qvY;C{ajOPr6;ArtPO0Qb1T}8EG4n;S}I0lqLPx>cP-UzH*61v zy`?XDvSew}q~vSgl}F;j?ZH??x{>;1qLO^=yYiTE@oPbUM2HatbGOr$i@ zqnlC5>(UFxMtV`9vfs)Bnp7XR`VqoXgo@GjTX`(*J=)(8sLjMty~d_2E7qM29!ZM} z`>i~dUp(4xbBrP^Me<^_{Z<~IAjZVxlj^6HO7d!0I5u@lYQL4oM?g$SA}mGnvN{Qs z{Z<}3F+#Emw@0_g4Ne#v?T|v%wheeBC06^ch~7*4`=?y5h)h(B)>7e)-p8$e#AEMM z@NO3*FG=Cr+V4FPmLl94ZNIftxJ&izHr#qj^5T}Z?|ULLQ88Lel^i88nIDpuS%^rB zn&pUnS02fc7$GuINxt@7c_c?kbi*q(7YiXPiQNy|cjb{Bi4j8Tu{#x`l}EBa_TV8c zD%K*Bul?Q=VJSjoB@rt7t))ud(MMyKB}kJj1!3QnN74=;LS&+neC@mPNZNRX(jP2; zm|P@Nxt@7c_eM4 zA|9C}R>?OVk+i>x5SAiTjJDres-(S7gkZ^n%WmKIL}a3pvfFp9N75E2;=vLN=WE}U z2O~03Nxt@7dCY8net0}&6Y29znj6WNPu|YGu6AS*!cv5a(egVB8YC@MQuc`uBC)i& zOz*rz-g#hz%DDDh5lPu6LRgBFm(liH>yfm3jSzCGE{k4@RO?vbw>vszTbouYp<=ZC zRvt-v(FkFqK~lIC?7P+@X_FcuGEp&Fc_ihM2qDr$`90cJku36r*28`)kEC1@AuL7m zVzm8M9!dM%aKG=rd7XQW=XQDz{)N|?d*66;#AA0V)AiYR<&m`hj1bm?QeG~J{nmOU ztv}OhE_pH9ek%{GKE7G8+SyX_;xmW+RvwJ76v>Ox_FH-M!tQ+5^=fAs?ar_&mb_#S z7t2hcvhRxc8xp|I3lx!wiqTrC?N2-!%>V0_sOBOMj##37E;6p%4@8%I@?y08Rvt+!?+9TdQSxFc`>i~ZR^Dl) zlDrsgzm-SQIyyqw&LVm7Ots(2BWWESAuL7mVzm8M9+>C8*@au*N?wPx7#mrV3zhv= z9y!-t<~L2go^2^Y#c2DjJg|TGW?^a)faLX3x3Q5Gt5Df*<-rI`5h_O8Z{>k?*S9k# z-^$p1gyd`Al?T>c-_D$ws3c$et~{`x``FJt**~mQk{6GB`>i~%pZnO)BZQ?$UW~Ti z$^&-DzF97B-fwK=p&)s2OWSuvEZz5f|H`%+&oUDgqqS7nKYa7FV9f-#kA2@0k%>x5 zV&An?zas+XkNwos!pbXo@rq-=mB*)F_VjPLRS}jVc`@34D-U=mc;=zNdPCFoNWS)6 zdB8)#GY^GKRFbcKS00$>o_TYyCe>~>BwzckJTT8a^XAAzCHdNS<$?XfH}3%+ai-Ii zeC@mP_zv@LZZck9CMwC-zAKNU53es{mo;8|UbgSbBk98%Au>@#Jm?he9M&t}yg7Ks z;jv`jl?T=<-@G|8Q3((GuJu^HpkH_ZjH;v_nRPwmchmd4xx8OE>xEs>9IVv{jZf2Z zvhN}+)L-rwe$rTZa0>HFkG3%Ug??dHQ|Es=?1iqJ!U*;s#`-a*U)by*=ePgprLLU9 z2(iVnI6R1+RM{_l_I<4fr!a#3ZlO=C=oe00uLw?IM7l@r?a%fLn;z->14`#E;uJ=( zHlJ8~wu4KX!R@njf=>Qy7u%;dUGPV<`GV#ucY9f<5w`yJvpCuwIt)hkiZfBu-%j z+eX62J<%_Gc+D>F`MdV($|;OUx0?JDqy2$h+Pa*=h;+a0qIvzo<@K~4oWh9O-{YZy zgtX+D=8o4TzFn~II%^>5a6U6U1Ll zsMxX!@qJ!z9**h~dJUl2W-3NU=Z~c48&2^@=Z5u~PD*UTEdX2T@U0bF^*Hz0vAN;A znG+Lha4W-9j84}YtlE|vez+A_IKg0$F}UIBTiD%SLgJ2GRbu}eCx-VT{(sM zrCYI1f3;tDbR8F!ic=WDHn7emu!?S7wkz0seTT)I!U&no7V8NX5SUR<*K^^!TVCnP zDU6U6-SB|Yj$Jv05wh~tM#lSf1@^%w zb_F@dz7nm8mcod1kM-ob8~!=6eOFFlgskATkt1ss_6y(GzAM=GgEn0`g%Rm78XLdT zFKpb{g>9Q1)0I;gAv=-9hr|t*uDjv1zE7USDU3+BN&OnT!SGLZ1rs(*S;#4jV2f5n zpn1JtIQp+$k#31o7$LiM+ctH2Jkd^?iy@rCh_*kLrtCnRJN?|VQZ;7;Q^{|$Pllake0J(38ct!v*PHNWL(0A+Z1O;= z=8Rw}`CV)4{L=PqsTW*0g%M9h(cdh;I_50?fYR)N)82@!?YS(t| zm)P)B>vGEO2(x-}uIF$2rd}msg#0$D2R|)M+27UHLtZ6e1XIaxv*k`la0(-qEh{A} z@6w7Hsd{kA?uc4Tz*%=yzM-6oLq^DNqY|qQvxZ176(g96?LeG6ELQv89j7ottOz=! ztSlxUKRwmDj9@CZJ8!`fHIIE4{nnc28OR%9Dj zTMJoB7{OHOww$#Xye>~3BaC31edq3Leo(6BoU%LOg#)Zq?;W}^HFg;xzl};PL2o$B z5cz$c%gBSN*ml&p4mZ|`c*yF*DU1*+v{PXLr5+<(b4D-~+pQs9$eFU36ZmbvcC*qCskL-0nQ2bs51_ z^1Idx;`Yabh0?-;;1ouP{cdeNHVv4Xnjef{s&tFr<@LSPdc`S>5bNK}{lN&PVtZlu z+Qk<~^^h6GDU1-i*UaOJ5loeCDSP{f+E)=dg%M&kTRT5&>`Lo0f~nZf7H7_DE=jd6 zr!Yb+jBP#|2l)>_}o=|M&?75jp~leJ<-YV2|fBhq~um|qpyERpj7RD?;BJRhCM8$&NbNw6OmBLhvPPZyP^s4RN9e4*+dXn#D`R3TZ>m3U$ zojkL^&O{}xVBhuL;MLPQh2MUj?Ttd~@@VH4<(9_%;MtwR^G?e4dZDeDiqY($NvqlBp#&30LcfY~}L>2_a-H_;7z@oFC3S8>F=vf(3lL1j=)O7QDzE!Q zONdCfSQ$!=Eey(lxVzi9%KtXGs2*GrE+O7TIw>doB&RTV5pM%B6{E8c8W+9qto68e zP`faveNj*f9?d(9t9*Wj@?a`PW3RobUD)~OF~Q+@Aoomaj03E=T&fz(4R43j+e=rrJxt}EFa+C1#X&Zyd4fFiX?~SeeDE{B6(&vx8 zH8y&|TuO4_+Od^0JMD_T!#`?UlknZ=HU>Q!co@I3m1sTj@mL+c`cKhkX`S$3~)cnTpZUAM!%Cw$&$Vvctb`EeoDS zTV2@#^WbtFS3EL!#5h-HU3Pe5|FYm;^aoQh`iDQqR-S~Yx5{H6=D9aE+nb4cFn5^~ z>+aKfaB1QD+N)Dod2zOP4aOByF(a!DO>IZl-#J5Z(apkH7*|Zi=ED0Dn@htoa;8UELgG{0Th7PjJvJ-3;&7Q>S=hEo_)BM zU16#-Dk?EmOW$23p($H zUaH^qP1g4CERH=|QP3XqgQ*xT`^rNzbv7d+(9D)$p9SSXY27@Z$0*Mto?WoTfz8Bm zGs}ZQl!~bs&12fRtr+b`v<-Y6Hyc%EK7<^sb z#D5!o&Qy$+F@1l9=7iTH4k-%q5hLZhz4Ck+4HM6*AMq&os5E+^TlzpojJ=VJS=*#2 zcy@a&$(`Wyg8*UtRUN4`h#Od${$-u|SkvUFJ2yKFCyz=Du<6 zP@Fk;#3scSV8u8hP4Rd z$y~I#%6k%{ov9cta>>HqY@YxAV-vsU>l=gS@bng2XY+pNTV%0yHh&XDJi#14b-~6U z3$|)Z#b~}C#tUFa=lc5$niT7elNVcyu$Q6v59(fiMrq+2#X`k7Ae9*A_^*x6H%&Z_fAZ#z*&u{7|pgO&b@zaS@7bf>`-DlnMZ}> z#oBY$)?*(;Y^rcecKALJOvUJ;afoY?^f5y83+x1+Jkv64j8bt5YtK0+*igSx9$XJg zy(3X`red`D{AkTTeY~?jw*8NZHxMa=eMY&q+zNPoXi8_l(e*zjEEYr-=POSnJGMZs)GMwI+D_xU8@@G%QTT=yZ>fCop!ei*NKQ(7J5TkjZ9W zYkuAjP5fa?HhRA&N4uTF8O>G;&TU4-x?gq#!6N8n#HYdHDzUXlK&HazB z41<3WX^N>B%~l<-vUnEpQ7X&564ZmOUf6eqeKruO5D`^A4a&XCpkZMuMzf^~G+y;4 z#a6Y-4QIkKQ%>#{zngDgMF(Ip(6P2RniM;^9poRBim4dQ_o|4b(>2F$eL-Q+1+6PS zF&3MKEuF-_R^s<-e;gRg@wc=s3=Y9aWGY6p4U=Vn0`TKelKVmScV}6{FdH!nt$v!{9ks{g$A0dFJr#63;YfqcpZ*D6tKhiqYv_ zbkKPD(0B!+@!~e&S;VsouWk13h||#HJD*l6keU zb%Iz&i|3p6$DLlGH|F@9a5S`POvPxnJ8L`-VqCGM6Z^-oFA(BcA~NNI zg;ictL+uETx3yRkC6W$PF`8{n z@P@QTlnW)I9OuO&gGUVPGFpe;=69QiZ7|Q7iqXs)FLZCs^$S-g3Z{Su+f(x1$MFuF zyYQ!6|L4~#3jV^3Vk$=Sp6J|q=&n9LB_~{ps9fx$$T!t|Gw$5TSYfcaeNNZ_@voSQ z(dMJ5t^3Yno&BSa`!V(|O2xY{`|b0tjkEI;o&C8t{TS{DT^J>^ zHU@+KY!cpub(ej>c@O8CapzXf*%<8jsY&=KMmtk6n)i0+&PRm5J0a~~g*8$9Jj7d8 z`kZGf&tUk@-&p2-{B3r)0rQ-x7|qsO;IX8&XYYU5ekVF_(U{vPvEQl-$NL|iz5ih; zQYuEov9ctv5;ydnP0xFj`e)F zbNDr6IIcNcw{g!xU-E5rZ0B>G!(LcRn2OOX6XEWM7M(jD)wEDb_ChzQM1`-h0%mK#a0=HbL>-glil0#R;z zY#S5I!Cou=z!s^Hr7)JxV3#qho&Vs8MZsUVgJdd3vyC`B4#(7ZuO6Kh%DtNSR7%tc zsUfeNyrLpj@hvspx}&nfKQW`2iqUM#i+Gk#JnETuzqPKkJI^Tlt^EP-e$Tx7Ek#Pj zX#1`GaY=rT|7&5P_X6s{D>D0o^9t@?Y?Y{ZYeQ~03_Rq<-Cn-nHA=qMT9}TwC{c0O zAGzTRSW9-NGBmGU&V6xIQE)tN{F-81vE;?N1(wthOK<<8V8V^O-{#zK5ymdJ6`vZ@ zcbr2{O%%-i74{z(yG+IC^wv#ATZl%Y$>%ag`3z{kb?hdiEkp=Qkul0>`>kU)>3JU^ zY~Pl=c!b+;<&pHfj}Vq3c`@34E03h-eT1+XC3$g4?6>krdfrC}OOd=7ZNHTVV&i&< zjT=gAT&_8yeBB5g{x^ z%FAf`t@T*6I@@nBq%3$1;r^^7Th=cwkk<4BwE$gtnqR!M*72w^GGCXBY< z+E#O+)4!^Dvv3XME7m};tj-z>=j#7Z6?BKbq&`}gsTj>NJYMcaY!SQ-7mxq z0r7qIKE6SOu<}Y?d`h+7%Hur55X#L~gr!JcjJDs(BN=hg6MHz*Sx8=dCb!?pgAtY@ zc`@34E01J6%e453k{7QZtldG(evO$KAu>@hT1zz*lKz#@Th7J3+OnMDl P{Nj|& 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%0A>0hOM)N{Hiq*Cs-aM9vLi}?f^JFe;Ob)sG z^v2i6RW(mY3j|L$%Es2G-4**Qh4|+}<~iG@ba+BqvSEJv$`kE9sorPs;}uW3$=^Nb zmQTbU&J)st4W3(*Pd#(N=CPJ|LRuhrZcR2OZ1n5c?|MR7Ab3_y#976+VqSSdS|E59 zOT^^)hcu=`S|Iq%1`(T_@ux;YS|IoZ1`!wEazkS}q*W5-7Z_CLqpq6NXoFu};4F;a zQxLIg$+TD#eafW;8(0srad7NyuWKw1X@TI^5oF`ehhN)BNDBnNjv(TkeZSEdD`|n? z*AYbAe&`8}HlziDUq=wJ{(rvLm{-yQ(R)qC=asZT@OPc}dE*<#HKs#aAfEls!ZuIu zz$4pZ;?<4mkd_FZ-a)_n*Uz38YYDV;ddCyf4sN%bPa%0iTCf3`r;uRdq`&-jNAz+& zM6ymH-MX&bZaz(=XMvEGWIIiD=bP`2j`PW24tQJL+*xi zWL6$kh_rMnZ2T5`w3D-Har{t76Jh7!PWrCR)jR=Nr`uk-WRG_9DLqd}3-%z}DZO{C zn-kNa5NYX@-r=v=vu&pheO`G&TA(4@X~U=H4#$)$L|Qs+c=U(&Y}={HMIW6Qy(Ldb z3v?;RQjKttx~Pt@JZ-?Kip4~0ler#}}yx@Wuj z6ssqs1sbxQVjWoWWNftxk(N%e{%!r9ZJg3YNu>J*o{$!3$UKdUlTJ(jdgp(F^&ygV z`ghI7dxe`8O*Zr_5YjSvMMJD`-vIM)XmPKIux?OmWL;#1seXm zy^{l_hd&+>6WA5TaNHXvKw-RQ*U^4uu5>$w^^adJzISutA9X}GH`XXCNm%GTSC2!sGQnOKoNK0?hq1WGZK9T#*SC^xK zv_M0)Hv;YT^f#gng-A6{`XWK;oVd*X^Ql6Q{qJ4o~1s2)*9RX@s<318*;|w+Q;Yl69{InP^al z_wVJz={Cm76L{Z&r96EvrxDVE4ZOX;ayNZ1rxDTu!BcOFRr+2|oULQ5Jc0KeSS?B4 z%V~tPU;}S2u$q{@m(vJof#8`t#cI_Q|6Weqif61mf%hF)iwf_?jUJhvh385OGTvU$ z>%E+2Ls}qs%UrQa-^+J)E!Yo{$y@-WgY{ z()V)W_B&(c3B2#X`dx2B&%$%11sQKbu)aNgFQ?g%76`lvq1SskjgS_I-fu$iv62=D z&JFd}?C=ikSmvIP76{J5MD$9zv_#mukcNltHaWBqA}zfOiE}F0$o(r%NDDM%dnftO zBdcRN6e2CX(}{Dcrgu|$LRz39+q@QCXxAU-O zwWyTOY(eJlkfDt~#j395X~@(!g3nsLx7i?JwsV3uyq2dSlNkTXS;e#e-Wo=H_gXfs zec2by1_`sB6SN^MPfI3o%!K`l1J4{Ez6WXF6GdLlUogGB&j^lw)ZUdz5Mid;y)g!$gN8y9ch?y%B^ef`wFEead@oi>c{TK0`p*w8me zW2}Z5EBoRlo@*($FJ$I~*YdRGTZ~m#>EPG1SGk2(ymoO3T}$jfICCSxmm}g|dC9jza6) z7pJw?PM|%>Bz|=0k;Tg8AW|()OD3_?^QQ+JOG+EN-!rYf;sLfnwIY;_-U`STAt?jQb9)oUy3bl;Cr%qE?SZ7>30&<*JuO5Hb^agPna~@AbuzD#PTKmUwr=b z&<1V31ls0NL&-d<)iT0sd75vn(`=&E3OxhbV3`iIyLo?MUMYXd@~D1itc+mmR62~d ze2eKARyu6XF*IUxoS|fnQ>LRLyq3*`kRzgLqpDZ^Wqd>JyM6#GcdYrx&Vf8swiU=Z zk!qnPik3`b?UJ*LMQ3&v;92>q3clfm-}OdG5{Cz3>fIphEtEN}Cz057&UW4NiapBm zK>u<5fvm6S8Sd>+*6%sNUWQuiuSm0B!S5tOUUk_97X|NbUhF^k)q1vh$t0$1baHpv zAX}|Mkh`9iOrrnJ&RxfZ)I+Nr`@%V0q}*yrHQH6@cUvtZyq2fgx1)yA#?_y@b9n8j zlgsvDGgGTeu&3Wiyk^Or!}CMx5n?rw?*YW@7v-eiNsQWMkM1q=w<~Sf95B$;9IzzZ ze6ZE}Kzonw71KeaTAr3n8~?lQVcoBXQO7?Ew4dEcCUN(a!@8GD2a#%7tjsovt;6_n z^K~zj?E}3f+XTIu4W4Gb!e{`Q#Il2qEGFFuBGvM=WD=hpI-@&uZxQ--n_D7=em*Ff z#7m3L= zo|a5v-IBArTP*6_g=eYn1MOG5B$GHX5cm8ih*Zndl1Ws(Pniyl6QC6npFR>*4_Btc zYk68SiQvg}<;f_%u%Vt)>9bxmcuQS*OJ2*Sk z-=}pL^*FvCqYWd5%3hRxR7&efB!)x#J2Uh^h_CVl&)xI+>CsP=oD->*rzKahn%^2e z^q*&SkwSUfuxGm&=ADz+VqRFmDG9ITX}`w;rs^3=8}f=^!`AfKuV^Q(?03=o1j1|C z%0FT&nz5={Z72`6XL;&ATF z($rd3nGTMxL#3xLpAnvZ zGLOP+qRcCW*>H39bPsR-TqjBDAQ2ZP3;~5i4oIhUA<` zwXmwn7HsRKBz|}LCyJ@Na5V7y*|r-#7f2(yWT z^N&=^(~?O{Sg=PieI93b^6n55J2?>i5_dYG)tVD#^DDxvKG*WJWZJmz8^;w_{p-Q9 zXYi*UR5Oqc$t1#fUW6G-Ang1Fv^*`D#Adlh9OtStiI($s^w|PB*Gl0t2qusDiQQj$ zu>byRjw=x2=T2JRgAM&o;+0n)?4MQ=L*e9!RtG(8>wY9q(;>lz=1X|4Mt%LB?Bi5K zT}yi*dJ=8?_vFKhD`#=lKy?%~Mm59N7!qNYT5z2q)$+7t62W^d13U_&yA z;2{_CkQD+gPfI2-Z+@#^eu;Vj5IR!=S-+DAeo4Rl64SE&12NR^B;K)Pe0PJb*zd}l zz;oprLe}p&;kC>cfeq0l!hTej`%%``@Lcqq+>c`WfSePl7J6#7T5Fpm!oES6J98Jn zp3Cu^`v$g(mlLU$rzMjJwSAbi-B!tw4r@`is!k%bsA0A!ujOg(vDi98@OQiPcWo?! z4OMHwQN+gv5T<^E07DcW{LeXt%dvbOZ}b`p;lvuuUzHiz8Yy;za&xZ#Fc%C z-z(5_ktY34qT1~X1b6lHTxp?a5KZC_r;YE9owQ#dSmW^J9MGt*<8P*nny4@8v|2`Z zEl;OkC5bEar47st@Kqbw!0IW!i33@`Gge`50&DtZI!w#H41?I}cM|=_wE9=Sd{$`# zty4D8w(*4<*wF7J{{7fi|Bp(7Jpi@Xwn?Yo$7!{yRfEz7RtNCSAUqeV21}TyxNufy%W$^r9t!zE*39=sCI8N1p*QZB#vV87r^lX~`t2m7Kd3TS z+>s{zo)cUzQQW14@(@kJT9n%0xn*9l4MJ8MJhw`R5o&|fVjCnanKr5&ET-I*fy&vJ zO-@*CK-_)Vh$gZ2^zp@4w`TjWFHTwhz=nP&@$e_c7oXn-gx8`U%@&n@qpH=a@3EX; z<`rjjI3uiiBF`bWTJ=2^YQf)GJAt%h#;U$ol$VD*9F>O=X?f7!X(~b6l~GUjsWKhh z$Dz!gPiI(+&^`{dJgt2k5%qOyrh`5eWzKPx4kP4wG49fWJ<&0*vbl5mT$C*5&az>% zZOxr&Lt3yQd$bXJ>ViHspLM}1l$uV6umrKfa{r~gH_>Vtk!rz)Xvws}|DCdZ_Yo|G4(6@okZx{ zht;>sI-aXB!^f6H=-Y?Yx0{y59qG{TB&yk6xy}F&l6yrw)2=lj%aUE@x`=6c8ZvFv_vp_n+Xr_MA#0DG@60TFQJfYD<)J-#YH@Xl zv}D?_Q%LLqj(^K%%IBh`u6TiM5IqBa&k3DdVyl&w+Bs+v)$Fc|5R}^dU1`Gz&ie2> ziE0KJ2%VY&;c1I4iTYZ2T55PwT7pJsEu3Y}^>5OWX(OCfTcERQWgi~i1dHdwo80mo$A*&?Lf1r$T3=d>N=$gFXG86KO9hE##Z%7_02eT^e`Tz<6b`vQv7M z-(JOCTCkC(ygE}0cJfT8%~)SC zk5WCxNNqLI2%S}<4QauiXvV5K0TFs?^R|&c>dzskUU+rNA`o87)7H<^MztDM_Pbc8 z(i*!wRy;{EiE72G>~|FcEl*1(QD2i`ZMR<3JOdK-H5s-E`3cA?(Io0?$m|ojZp@xY za!zOsnOfG1T3<<`J|EHe~%y8`bJZnGVykb_aX5UL=}2oy<;j$JrIJG2{g|lVX`}L%%DgfyD`(iy?h9!*&av_bC?eJ<>mo}hv+imn@ zB-4fwe3rDhB5W}{v!!&@&&ja&;qDu4NKW#qtceOi87L-72W*q5?+?-jSLJC#GKp#? zT-s0wY?wWk$MplUQQwbZ->#Jc(2{Ax2(9U{Z^t_222YcgOrpNl$G%o`S)@GeMUBu} zANyTtAy%SkqrS(&7KOND4ybe_^TBFYM(eoL;=T%L$+YpIckNMpWExNJ*h&#k9`U>n zPbWbpvFE})iYJ0sh8_p|PSWzUWD@nWgDhuxlgKN{BxNiExqw zC+GrUt7mB)v-L6()qHRmgvKJJgC)pxSWj()m2FPzNwiVlV_}(d2ZN<4IVZHoLM>~x z);3Ah_gH8{t93||1w`aLhR0WG8)Hkt_9kd}G_q+Bv%b?LM%x{q(Vf2fIr zBNxt}(Vp_-&z8@fe87zMvA?9O-*aMU#I!s;7=I_R|5wiJuD^ClsJkI#!p!zo58`dA zVPu#zvwi1(K^}}UiI*-tvwPj6AW|()OD6HbEmz&O=)NUoI$l3(di&%n822~sKfOI= zDP{dm;^u8v-E~k&42_u9;E1#kEB#L59ben>DvgYkC~ zuk7=i;ce%f5YjO;vh;Uh59&swV{qi!7pJ!``99MmnZz4*`_1sz-UcGo^0Z_U`+w@P z;Y-&Kmg%@@<@EO4YZ&*}emTseuBWWub7E-3v<63{1>5?a#3lRPI(+VxA1`ACtx4B0 z?urT0r{76T|G=%oKe!x3nsRBuhG-IBeRz-V@>8}g)3N!o8SOtF%(x$Q>x}k3dqW-^ zkxXLvPkVI#ejJFQ7y>O%OD6H$`xbZazvB2XMzMXo{S>y3siSAM#~s1;A(_Oq0~dEM zKMKUqh(dB2?E_CDvDX>D8J;`&gfbl{+uOg)bRf0szeZWVlQ{U4-wfY41qAboS}cFk z%q#p(VzWoi?(THQ>%tA5!I7cx4X5i?FdYYOJF`9JQl>+4P7IAGB&YQx64PIq-Tl?W z961j;X-50vhgf%Cd;W~}Woudfl1Y4Q)ST|92S9}SB2MS1}#mADI^WE6F5|cxFof4ka-- zq7c~dv}6)DESfUhzT(U-wC)}V?e0d_*Rof;g=H?eidARI@EIvJsT10!r#4`Uxz zBi7E~d`C2GEPdZI!+%_LRGC*dj-Sy!7dn7`=>JRm*O!=5s``QoR!FI0a)@_7()gS6r znY&)g(~@c9khvQbBgcH8B<8K@i$0vRU_-y>#L$Ro4Mr`LtbQl)(<8Snmi`5IEeA)A z|7Ks+?}m}#p1$ZO>i3-RTAmK$M@5skvU^nbgQq?-3>yQ#pV8iA2HV8z|2Ct2!JAok zCFex&ubh^rC6hS)XR&=CCc8~y`;eRyLuJaP%Vs$6;Md9xTBGvM=WZDRIw;SqiX~X)#LD!2~ zkD3#ymZv3?2%~=&UO<`J-~rrrH0zbTF#Il=#NGGr+@19X5JNE}r{PQBNhI!hWw87B zWtWw8_n8f6w%_y$%N*X>PEWGTCFcZvIB9uWGKtUzyKIB$%uC)2VkNIgx64S~7_+S6jfj+K}^PI7`vIE%lbdTx|j8 zYN?j_LFNOwNA8JOF7$z^4^IVVyrPfI3I?YI~4iuwKuuIXC|>WvjTd1i#whLqNs zWYv-njx6ckI_@Xob|&WrTF9Oqi=*oKxBSip13+ch|iNBGvM=WD?(;c|!N^2mhvDsa>^z zW0X7#r4Rl}PSC%iC&Sc=MlL`m@&1i}a@Ud&GdxRkOT30&< z{JfTOX(3jkNrW|-VXn#8$}gU)5gBq>cf)!ziLml9%rzOWovl&aZF4{$WZGF$Lq;dv;HCfuI)>PJPuJH+Z$x z?>R9zVp^UaiocVnuQTAioLZTHthJ1lI@qnMA!_ zQHynnv}6+Xb?WrFRzsCn^>u1Kmoqxjl4+y9A4LLV?a5bA=4!NT)c2$KTxp@kh^7te zebnRdx$LhfvnP@bBh+8fhO}TqG;P%9wIq~UrjH)$J6gQ!O@FaEN9ZJJvQRheV?n! zK1!_!wL~&))O{c35B(j|l1bF}wwb%C8K_tEeN=ai&>9JCNDHwNO&j&SR1)+uXiqYU z`d%uvFuv}8BWcMbsvfQ!)ojFJKd6;-{Z69lMaz*B{UEh$TtdqAJBhG8th-EKMXrO)t1_;I%wG z6loIJ>El|T_4;Lx6UKI~``IW#BCPclTO)%TtA64VN->Q#N;ndQvY z+NLtE&(&DNIah+qDh23`ht7( ztl`?1U;6UYa+e(`N4vrAB(ToMJ^Ik^MlDYV@4Wh*1om*?F`;$(HUSS%I|BMWC+H_? zmMSegNi>O2OA4+5(3{kZe%^$>au$ztz!y!{04gG^i$*O^hmolIoi;Ed;-0Xj5YJun z+|+7+*m8tK*b^?eC+xL69coEMlL&h(1@~Aig+A_()07)wDfIaRIZb&uw^Z=l60Pg3 z5=xC{m>669&RB(WO9js@F@^D@Q;54(zeJM=>!JnMMVVSX*Z09G5!OWuu8UfajJQh+ zvS``}Yh(r2$gD?3{-D&jUS>Tw3GBRbjm&F#nq>}}L|6kTxCUUg0X8rKXx|{MC1DMq z;2MC}@-*#%rj4q7bX98HALPiOy=~2wa>8rb+zC%YTLDcXj2#8`ix7A0XKKCOj|}>q zMDX;Ba3ZCQm1%j}#+4W=tnY?)uC*oh&fEcKuPr$zw6;Vot|yU}Od_1cDR>rVXyl}4 zrpEI(dp;R)@LHa(_Nn68k7^B|w4u2Sasjh=+0*Z|QLO<4 z!fW~Yj@ctojhv+oKOfLc2v5@QB&yN5v|(B{A3%=icM@TbrJs8&+;P{rCCxctLo$i5 z$I{O|7C+}mY3$MCNhIof^l2+XtkM=`gw}D{2F)Wgzl%1)I(5NyYHK;FSK9wbTa*#3 zSJd(}>y_=8;4}*NCfIYTKi7H^?5Uq;tc!RMM6uKim1iAI=5kLPL@4_P#A zg#Frr`?X<2j&pK98n9QgJxC)`El*3Pjc~57pXd6jUGM6Yo@zL9x7-;Izmpi%nbOa5 zeQBGJ7SbWQB5G^l%qy)%z((rn*Vn>X9@2sh(X>%N2S7sJeOVLBQ`Z)l`ist}G zOQwx*o}u7*2JX*8=W&g_aY~X{TkQoF;*>gL_`7mZv3? zsGk>2Qya^CsqzXQczRxxdBw9zq$Sfv{cKcD*oq#B`q?Nx7rpbStD9`p&)m_5&Ajq; z>iU^GJ{Kd|CEuqknz0J|&IR|Kt+zxuV+@xMkFni)(Xj7aaNpT$dD>!&Zv&wIw4`El*3PjrzVC`(4fAOMB(+tJVPO`)cfWxtB&-GHtwZ+0NaG{c}P( z@Fmr;<(E{k6Z6N#W6LkM;&;g;etY%K-7!0ZNVPmIxyc5<)=HXRhoudDDHcp>!?Y$; z-+BctnKq6H?-BmL1Mwc=@OIm6$F=cwP-v~2Fs}R>DSnqs;zNO$@qWH}SRpyBCz1G7 zc+3Au-{$+_UTAOLzWG+z2w#-nZu9oU%V|$?PNZ6%mP}$=xZ5}Bn|y!!&;GGljQf}0 zuzC6AR-{RCP7K5lXn9&Pi8oE$ulvz6@a|}Q*>-ICWn1Q`%HQe&iBE)gq#hmKm6~gL zS~7{}!#lh><@@vpM*i@N&D(R|!*7iIVZ+homyPix{hkvcBx-p&$kp#8PMEuF`10_U zSfsNZwLC4E#FvJP{$GdhLEu?S?i<}cXwEfd-JNyb=;}(Nh6uxsV zEl=b7=lq?-mEkKJ;cFXZUfI{0(Sp^w7LDllDjl=8>+ZQ52(J~sP3^u8Et*7HulU7e z&}ykjpJWngy;9F$-&oN1=CK|4a5=l1cpES9b1xdk+vO zHPgZfAX+jByTglqcW(Q$JJJSZ_QCv}Uuz~~Z*R@DJPn!pp-=3xPqeQ~BZii{R!%vQ zYT5UsF*4{o)nE<^Uv*$@9~gP~%FU~>&-y6X)9?w>m?^yi`_lc@44*g&3)Yp*<=<$)1SgyfvyXeljEOC~X9 z)I-BNg!eAPhI&h+$-XpieK3i?Z1m9Z>g9YZuxWWZ{pNirkEGw_m(gLve?46?Z5WYi zsilIJOd|CeR9~%TAbn{qNqq*^A81)UUKC~82tD;MduohPV`6{4+k3~veqO(m2&2I; zM}tKprse5@_&bSEuez*Pj4w-&F=30cwwV*D7E&u(GKt{(bm{xhXQ1zc935NvJ{%w6 z2jxVng^^RVWD?crT=rM@{c=p~2bDi4LH$mm@&L;I%Cu0gL|eX*c=JDs;n#&XnWNNp zd++S_OA|O|mmn<2a~RK;jEe zcJA7^B=8OqX<3`Vlk_`@P#y)#gT4XFgWj_GM|c29c@!*7HY)Gb!(8Kk!hchn~ zIgJtd_UWnbOCt25{p>}(mZv$MgC-HmykMCx8oBnPo5wL+GYHs|Od^zd!7?9+A<*)) zWD*CxW4rF^op9eE^%)-7V{CiUdX6Qj2k_M$w(I_H`0^W`Yg(R$&q$g!f}dD${=xVz zyA1g=P{wNi#mpE!Po(W!&!y+BUIJb?WZFpm z#5vK^lNQn;nMCR*Dpn|Sqa~9_`$UZy=9>@1Yw2}H(@}oJznSbR+ zH6v0jdEV$(B-2J(9@f`d%B^?J3CqQ@3}R1h`9>n0M`>M*ZSX6Kl{t#F9{HtM8^G@* zg7?}_?{!hRQba9Ja}5Z;lL+3@0(wj46(R0gPlB9!OTi;sK#$C8dD_;QXd_)OVg12# zwaSH*OC}N4WZZg*R@FEHuqIl4BT=mCo>as#Uc>a9xxw%KT`=Ry2wFnkC-$r8P^)TC>y}7wc=5)Z%Ic zY00!v_pkUKFZxuFYATJ)(%OQwyqFPT;L8A!*H`)0YmgujzW`x0p(e?+65 z^LG;I{Cu{XpU;l#8dwj)`Xz~Uel9Jp`*4+$b7!n_lSq9A^F{Prq$%|>QlCMwV!e`& zBAPZrc{o3DX7u!~{pif-UrQ#D`iZ9X@RdeOCXu$mnQ`9#vwwtlq#Vk5l;oU18#Jvi zzrkq93DJ){0l^U&GuD}IuZVI^q*|VqOrpMTz#5L)ck7Xq*=p53!b)nkZ@~5;E!1|= zv=MsI1?)ww#vx6<4^C@h=&2X5r}kQ&wmz6P>gzs?JJ)?EvjgzsChqRCm(X^4S z@2UjhamP%?>htTipJo|BeLB3)-tZHHGg zGtN>alStPYOiQf@c_o=dy8kgN_8%{`XT^R6J(2Yc>Hdeb*k5s%4E;QRr;YmhE_+U{ z=`yb*lc=xnQj6=mq$QKE*`3z(%*Ft8!3^_ zoiR(L4X#FzmP{Ld{pyb!&Wd}q$Wg6d>Gzz#C@ihewj<5*u=T6@dPy1+q$7=$5n3-{ zI=Eg!S~6o*pF2|vz0aiel+%&3K6j=KX(3jkW6H6c5j--DGJGQ`M;Xc-qx5dv`WOW* zPissRk^1ek<60>CLG2Htf5aLoW0m^t(qcczl~neRph?unbH*LL+Nf!1nn={gbEd;m zuJK&ysQZcRacnf;cs}u+>UWKhpU5^yZ?ck0KT$-w$6|3uPkqpwG)+uLy2m0di#y6j zG>LQ#IeewET+`<$YHP?GsY!%3=+=-mhGRBqv}6*tgT;2h{#?6ROnK^A8j)&g1i&aN znKr84C-@B7+hTcW1inN1U=_xcVz35OdCd|T3ktEtCdWm zs)^;?K%+2hpeEivooUkVB&yn8&J9e<#&D!uzmrJ!CQwVbE~a(|d#ojDQR&`EZ=V@g%rPR{dOKwj>3X|qVbr(vcFH8` z>(neY_0CASWD@mtYSs*!6>%1}{+Aj#>*c|=&GMj}w%U4mu)mU)m52JPdcVu(vfoYZ zF&*`Omo_X`>UU)$J@12_n$M-bliH(=^t=zeBHFN6$q$l^x_`yz(nCt^(MH|Bq793c z{43c=_gGj*k)xVHpnXWL@+#S5(ToMFct%Sm5j+5Q=1!g^R?^gqT929&sg^ue#85H` zzqSPL#nzT)+IoBSJBiOu-MF~953A=`Tap%iAI&-SJBccH%l^u|C9G0twryS%iK+z4 z{>rq>r$RdPJBj)@sQpvxyEwM1zp9Ue?4zUw8)*-h?g^_uXRm$VSnJy%Ggd~_wKy7B zpHCuPLssr$by%})%XJdz8nU#oz9$-M$o#z`lJ(v2U9$4*7;6T5IIQpb9?n*TQ!Ug) z(UNJSswHKaBPKcnX&y4uf!|3~HL)yn(_%VEn}1EhRtK$hqE@mVr)@qbyq2d`kJZjA z@3l;aMo8E&kIcs1Xd^rCL+{0C`o8A%)ziVc>)RvyF4bKlln&NiX`$|lW~|aPUNhYp zFDo0=l3R~dd8B8&q{X@fE!a@W(nh`RavWssqs&^V_EE39Y(>(74bilbp4rB!N%}il zRVhg7=%KiKZ91XV-TqUz%ZV`Z&YeV1xU zeNBc0M>57xGSg9ClcAPUi*!gPQ6Fn*gJUge$vL61HjN2vq_Il(Yvoz`7R7$v+F-h0 zYpoV>*KV(5#;QJ7V>-Bc${0!}QJ<@&sYN={l-JjHX@e_wq$Sga5n9trV*(p#tg4xC z7a>}KP`^8WbJj8aP8&vOm7G4Dw8|%yJN&AN_NAtQ@C~Oe+Vf7pcjCe=n2pD`uPeXw zI2eDY4I{jkr!mJNO~Sr2IuO1zJhpxORi7_y3?DPLyHTAmL1R{c)GzD7GZvfz?2?Ik-R?gQZ~o?~J}DLkJ8$qP z1SRNc$t0>T%a!B#&yE_`o_G=S>ZretYu~+yvVPBraMLqtg?b$6f%rQKdjtPKc*PK3MqQOnZ<@plsT1$%2bDCf>O6RLV_EiEU!mZt|I zO`^)(vQI=A%)c}3KVVP4lc-8C5G*P7J}d*$)~}GL@~R||@{3o)22;NEW3-37f}9hn zmZv3?sLuyk&YaOvPD`*pA56;`F%(T3_4&DtQF}j28=Rl3UZrOsF+Zmk=j5a%(?j#4vK+bxb^8V&kjY9c-i{rxAm$)!O)~T8U9R#%lPh z__`Ye% z>+96aE3Vv-mP{K}-3?_PT2!d7DmBzT)ho#)s=8a&5{2Zno9nM8fPgt^NV56WrXt*@7`45S4cqG`jv zGs;o_g1y|)oQceqV96e2CnYcWH{e3v$E zS#ou>;R$Jh)|{Hecdpqd+E9qJG>_Kog#`ZNPg-iJ(!%e4MxW-cLZqcR)gIw4A-)-i zC#Qr$a^j?C#+Gk3Yqi#dyn5uGQFka-3dxBz&y6kLLD*^`cMp61{C9{@NKR;`SC5q^ zqy>8E%VXo07t?eo1X`ZBeAKx3=E#&#NKX7>lX2yH^;)f$LOQPe>KQvL9SX^bdEv~y zzSEG}P)JU!oI0+04BbGh9{&2`i_gnmG6$P6AFQrCyxJS zm}NY~FA1b6S4d7Qy=Pqct+l!hh2+G%HRH;!!PUz{AvrPT)p6xFB1rsjbU-z5XQ!4~oo|wGr7UA8v^S+oVa7j7UfseNWAH%PsCcHkesl&8dAQ&|NShc+!N9Qy?*%?@!L*mnJWZZp7{RA z7UlOq>*-KPPOMzJMfIIg#OmC>dt&Y?Bqv}G-!)}<1R|zGAvy8-S>xlkOgqJ>;#0Af zC?qE|$F0iz&1ShDjE#FQ%}CtmyI@vh8~$M}Pm zLUQ7!mE&E#+F`{NajaEHPWah&TIQaR7U-qF8{eb0D+F4exc0^IRg21dQHA8hjpMg; z?VRam$`z6m7tY_Z>Pukbe@}Qv961$|6MoeoO}Qte1$y!UTlVPT6ap&qpP;; zF>)#dTAmpA{g&0}oYxYCJ1MlX)ey+P6Hm z-|cFH3dxD7qqnNOCHOvD@79UFk3w={@`SA_kL;O1%w2Xvw4sokSTkv>%1>Mqh~Qc7 zqF5;;Cl1_ptI8M6b5|ibv3R?!dicBELxz{Bx7OKu;-eu}>+Usw*K2tiez4wim)0wV zAXc7`uia{)Ji2}Fj(H{PAiOkI zTUvA4m9d?BLRui;)#`22o#N4P{c)`IgtS1wtHqb*8LQVn{YV^ZJs~X+@KN=(o8ILi zEf9WXyHjj1cjK6Hh4|+}hF7aEBBVAvAuSN_YW3FBPVuSfe~szzgtS1wtHsw!m~#Bb zA3{7KE&N`3wdMPe(fjQ9lXu44^@OxQz(>_PmwTr}S|HMOpFh0Y%0nUkxsc)2;_ESp zeW&RD@yJ*cJs~X+@M`ge8WOvmyl)(9Js~X+@M`sSl}_=(9{=@run6&lwD3E8RD7F- zHt-*RIUz0lUiziwjtO#iV4D>&cNOBF3mIN5-?upF21b!d7!QfR!@5dZ$nxj;Fn@YnJLGA{P__7T*&Zht%tjR z{cmGB^enFh8D6dRqO?%AAuSN_YOSZf|ERyk^6)mK1p;2JjUQpeX^fS$K)^?}F{)Rr zqy++gDR$za+bIq?bh}s{3h~c{46oKk&M)qEcI*>9AuSN_YB@T?#s}Z^#@k@cTlZR! z;nmUuKrOlCm?vV&y$xxBfLBW|14MD$7v9-qLs}r<)zXtetY$v^%SId00s*hqyd^vz ze+cohk`{i4S4)rV#Sp6rU%w#waGsDB2za&pj>+Ewar)GIqkrWIX@P)OOV9F&Kur3| zBaJqs1){gV>upF21b)}anohC*m>Xi<^@OxQ=zI}!D0qEGT-uns(h{M)qE2zkl7EY} z#P30QLZ`**t7@K*7Hs$(tWL4RU#^KZ6e2CH>HGb`wD<9Zv_M0)y@|^^KZ$vz5NT;| zLi>@-t6T2hCe~d~NDDM%+hh6df-x~23XzufShN#Q8~BeuY2jIrr6t++iWXh+)>wkj z($0@3{2qO$xT*i}*q3-hTCf3`dtPX@GnbzhQ?3wcY0t~=pQq*F32A|b%)L9<`0BHt zjy4n`EuA&cem&+#Ts_Qb+?B*ygYTyJz>c#Ya{f|0cz>wkP*Z`(P9jeI{+HPI8PmSW;#$XJDQ8O6sA!yCqJ?-yEr zzgBWiq*^+~2wF0UeZ%{&{(Ax5*lRn7(6W?U9+KE>`Od|37;N!cIpbR?>njnnd+=`SSdg_e;F5rQdVHd`>)9T98GP2FH(EFKgGir#ClSuDboc%w2=;wC^&%~#L;WL(a0aq}yVLnjazBIg^Jx8^ z6MlYf=Okc5Gzq&=#XEd@e}zu$ppTK96S{-NzJ&L#*b_-65xjsdBv^0iIgum!JtwSx zO=&*K`rZ0HmNX_vM;fd8Jr<@zJtyo*W~{36D3psjr;ReunSJCge$NT60Z_}%Y2!(v zNsJHg5q|dH@qTJcA@V05eJtfhcr8!cS$En9=Y5Lx3;BLgv@*DWTO) z8|0};)ABUWC)$V;&N>fIy9V!>@SeW!;nF#0s};^V58q!Bsg`*FHqJ90^*f5JiFT4) zcN8@`*Y7B@w(DFMYL95zsK4KbHgql+?E|;Oa9)^1{rx_)AuZStO(L8ZEhgQF?=wL*{`@}5x#=qPabisl~0Wk6>?6bT8atMA-N)w zcLL&WF!Rb%t~vzi&u12zO|)7@*jxtBHQLVK(MC1a zhQ7p3n1N6$!tauEBGs}}Xm)m(MAbgZJ`tn7?y>m!pnfM&wU4p{P0P+VBZm5&gq^O@-)uY@^{)u@0j$t zJ0?@(-L;<`#otM!cTA*(J0_yx@A7vNslPiT+Bm##M$D^q-{tQ)0e@FosJo)!@A7vN zevUJL!IUb0(5r19=h2c${OHglibehFix_J|ll&WTjZ(~?P~ zXSTO@XSTPGZ3XGDo;p3VZCbnEW3*)2@I8a#%idsSoZ~z+pE3#G`zQpp&(o4gr04W! z$1}oLerC2ir_bMW0=}rU;8Tf)uf^X<95Z3R?ty3Wy8x=yh*jsDS>@^wWc{8KUd!49 zazQi+^T;qWnd*GFDdovk*wF7e0Uu6Uo`w&{-$|tRKW4f6AL`+lj$}OV$^-EIAW};Y z!1_npuyf(+slQ&{V`1+D8J;tGqOVtV*9i4d)M9^5S~6{?$T+n_?A#g(d4CVNt5NM&@XD|{^aoqjj;??X$=`B&#?nr($0# zEj&rTlc@V}d@jAP)Ek-w^50?H5{|IQD7ogz~@)ve)_* zXIRJ|X+aiE8`k@%zhVipkD~7*IVaR#QA?!;89ahN@w_6i_Gj z>Dqz_v?$Hh(%hBr3>(st%(DitanL&UXP~zPf^~&w4Ll(&*kE6xQ%HNi z-tKcML|XFUyx-m_F1pk1b9zErpgESn24a=o=hRG?TKPPI<&oa!Gy-FWTCE>HIz@V) z)8^-%@GUAW4?PQUmzHFm97qXh>EwVX_I!G3kMr#c(R0-^;H&IoF2yPDH6gFk`v5YyAvv+{PQiAM`v1bZAvtmQ5q<8ijBm9H z$%&g!>vQ*U{;}Ndb1Eb!(6?)6G%a&aNDK5G7xneHC8Q8&dE)qQhM7#`O(ccn#L|2E zdfawWNKVXK)7SGpCqr^#%&UFwp4a*J`um&=$qD%=P4_vCkQV3(TTknGpOYcb^2Fp_ zr}enurjVQ%efTtY@6Oi}h2+E?OQyNIed&EphUA3&Ii@_l&uN6TK(Ajut>=AChCs^` z-yfOQ<5r_Wa$@D$X+7_AG9)KpkM}vtGmyvqEuNHBNKW|GkFDI_NjIVtR5HTI$k$%)sVKch!at&p79eAx^)e)zmnNKPDeYxtT^eCI%V zpOYau;b%o@Ug=pNqy_oWRWo{woC?W_f#1*Qd7qOZIq~|x&FJ9)C?qE?e0fIC`BM zckPBkdY{t>X@P*h+v`535z+zyf4A3tP9vlR0$y#e`pZsUDUZ$nxj;P2W!uUZ`+Ulk zLazn6^hJ*Ya7X-XotL^E1P9vlR0{*VGsPsOk z5z+zyuh!amxal45{3yO&3v%hB_PEb!Hlzgto@}rCoH}!5&jkUm)_S<~KBp1V0s*hq zdQo3@W!-B*hF5Dn^`(dU`W zCqw*mA;YV+ku$x|X@s;uz~Ak4pVJ6wfq+-r>prIu(gFd0x7U46Bcufa{%)`PoJL3s z1pHm|mVE9i7rho__`ALCbD9llfq=i;>prIu(gFd0*Y0!Pz1gGj_L+~Bv_SOscRe93 z5cs{@!c@@iL>u}bfA+J3Dk zbPj|B{^QR-3$nB%>jZYENbhsnSw2tbq#K?bZn7r#IgOAOZ1|Iaog%%@sgtsH&JKi5 z*3kz3gK0h#B>U?aWHsgq}ZC)Q4EHr?kmLgzPOBR$>bzXf5tR_U2C?KB~;S}h||El*1( z;ctNY+U{Ghe$NT(^|5~{Ey$ul{6E6ZJj|}5TKf$m8Vv!GP682vGGjYZ~Y?OVXu7&GLOEUJ)pu7XEdMuSOdQY(JsvPxLDhX-924ktR zaY%MHE+V6Kf-%ptt6XiLosDaRv|xkrPuZx)Qfb2zjCsli%8x&PEy&W6j2%$W%byRf z+|Y(6xQf&Cd?-cNede;WQXOTMnK@^V{$(>>Rs7)xy;lu{CmrGmg6tjAJWSH9$od7`dx7HfVsE@G)9qy>A7rNRb?{A^sr zQtJdGrcLEg3a;yIFk;$7D5WGAOBGR%rPgy5S6=p3$?LIH64HV_#!_X2ZG^2vDbVr+ zBc@G+Qc8lcR1m1${A^srQtP>by+=-WL^{PoDWwfYMwP3f>}*^_M(Z{hB~@Lu$NRH! zjgS`XF=8qkzOIx4El)6(3Ic66KN}aZROZSPjF>jrP)cco@lO%;SZdt{qohrJiLM13 z(t^y0sciU?E2ShDOKl>QQWA`qHW5lG3C2G~NB0QWA`qHW5lG3C2G)M%81f9G!j1xgO9|SGpE#NDDF}rn2Gd zN+~75SZWiYl#*b?6ht|mE2ShDOKl>QQWA`%f~cR3i&!e_%9ot6R1o#EaS=PSU;NOYjcbIoKrl+GIcI)0t`X7#!6>P0)MKeExwJqq zN-ClrOC=#K5R8(F@I8aSAJPKBNTcRz`)*XmQfb2zjFL9l(6w+~X+dU`R75?NN*mGw z!6>N+Uk-0WS|AuD1%dv`pN;DYX@OvrRK##Lqy>VJM%7h4mdbK?f>BbHqaI5oAuZTo zlvG4LmP$feAQ&YTQIDmPkQNBWQbqWZtAt()a`a38ijt#t^RsagwWJMQ7X+iEumK`J z8`lVFfnbzWxvIxfX+v5d7$p@^kEN23mdeq0wIfnwR3-FUkQo^j;p@s1(gFc5Q}0v{ zvUe zQW5#txJF0|1f!(#ee$z$jgS@y#!^N2+Ep!jEy#?Lf~cR3Yc`|>f>BZs^|Nt}kQN9= zNkQOj+?>akSX@C2izvQdwv zl8_c`FqWz(svb*ajKvd-rOJkHySf&xD=o>472%%OW2v;^3C28SF|@XHeI|b)_X4@iz7)^;jxxc!E(<*uWeoKN}aZR1(sH4aQQLD}RES zon`|qwixcYWGmrLKu>rrPuu&|ym!?*yz!(EMT=pBwZL6r`n@E)mYrFGSgL3e^|KS0 zcg|iY)1Oy4>SrfFOYgf<7EK$~SxE7G2KGL@E=Ow0`kh2|7E&NI((}5~f<4hBvht}T6*(VT0AMn&MBjf>O_Zdwurq!3<9Oq*;I^w=`HN))QCWM zEl=~D3B5nq)s=ti*UtLjbI$KcvtQ9UEJpa96?WDKax0qUsLp_h<=_hK(XoEGo=920 zmxNYNq2QrDwS$PK$ujNT0`P;Id&^!5T8H~}AmdspLC(wlFLy>i! zp2J8!pAX3;finT~_no;%Ba|tgo}|-y{0U8*e=t{^w^7#bv|)tiugtr&P;a71gqG;e zl+~$R>T%e1*%R>#N1#M_EjzmlHrQW@$j^@Ed*;yMeg@i*%v>3fYuU46&kc$EtT3MJ zj(cOLI--TziSJ!qMtChd-vv1oO&j%dakv)l$69#=P74SzaJlTU?vqu)z{ zW7Hj8%)7LFy^*M&Cqqw0b8^_w9Ihm6=8o%13$kbu^>e&fS17q3ssFf4qq7m(XNB=x z&xF+*eFj(wPwlPzrgxqzzvdvBxiUiMZ2w&BT)VVb3mmEGg_qw2$ma(1`nBK7 z5!ER-7%j)786;0>rVag`a^=p&!Aa1}m9&sU(Il!2p z-YcJTX~lA6J)E7;WVMLv@|{z z7{4FN)AF@cSM@WOS#qAU%zBed8%F5NWoq%9Wzv#K*se*xqfI*~NoyBcN#t6#yG>^v zYQ*uUg~Ah_a02Vcw=w-r8~#L6)6$u#Y`glMM7V?1xlx+2@QFgJ^mBE{C1KAqT8Yi0 zHOCQQC+XnH8C#v6qZ9wxuJk)?7~!=%t?vTJMt%mJ%~H!*v1Y>Y+Z@%Yz%~!ZGlA!W zb6lNg%K5qXWGn?G=NypbkUf?o_kFmY02|VRESf}pKFC=rXLOV`CYFTegB&xYrRN+c zhbE$xf75~^0Ka3wwkx?L;5)A#y&{y{MjRVgNciVN&l+;V?_22kz_%{c+TT2Di`Lh- z**NypUdz*xX`?z1ITD=L@cGa)fgI}hlJNT^G_T?FA)17F`tSh8rKpVBD{ScZlE5gV z*6wL*$0YJOC%%uua^PE?dgl4%6ZLTUoKspHMKykirVX1xYSzemz*!^Z+(R}(b53Y^ zn(cU{19b;&#$sM7>W8xw`X#ydYJ}JFwE1%=N51dXS|9x&_=d3OJ(--4=LIcKLzbUd zp0UN0lF(DYT;==1jgS^-$a)6LGq#u_EzCI}^Q!`^-Mk#Sme-Q39&VuZ{0M)>*6L~H zPS*wDN44ArziPxDM_M9gJ84`ARk8x|^`Mz)?qy^f0OXV3`@?Pz_ zApCQl*Ojj2wImO>FWh`;T^9tu*37vObg)^lje1DbaO4kA*Ey(yfH1-z7BoIN1F(xlmxyGz4b&8h^wJA_=A>GN&;Vpp1o?54W*O>z7D<83QdGk zN&;VpKHwGgSJz)?XKX2@B>43qj%xWm_k^@SP90xeJA>(D=aq=`^U zN#N_y``p_^D5WIg*P+9XP2?vphf+!cUx&tCZr;Hghx{2^OeqQY5}b3^_k|lFEztNn zGxuL(5~`*;Y=wB zd|}yINxm=K2x)--xto5lEBxY?VkImRw*TcuR~kA%J+pc zr6lm(zUFsKbS)6lf{d?2H@9}BlmxyG%_pjS&XrOU_&PM7^O8_XNyM*1r@kcL7e3zY z3ukFT^Ls^2y{N9`wIJgg(#<`bQc40}hi>jgl~NM;I&^bSt(20$*P(6v@U28CC4sL) z+ZdJa3uj76@Jmfib){>8kQQWo9lCksR7y$U8`2z|%X_YrlEBxY=>e4Exl&33Ux%ib zQ4&fi349%zo=kmTI8#ajUx%i*RNoiQl#;;Lq3My;_k}a1B=B`;`iaZwS#F8@4lSjW z1ilVUU$m@UrIZA}4&CI**t&7B7d+Nm{)aP2c$vfP3pXuK!$aQch9(&KeeFsM1boz|cM;+HD^ExZ1pHF$*kn0oPq%&HO7Yi)41ag&UQISUAuSN_Y6s_v z`0*4wW6KlL0s*h~x%nb|IXodP5Yek$2m<%R?+f>Yv_Qb$J@AD8pABh&(ApXDGtkQS zg=K6#ahd|$W` z(o#8w+ZS#GN((Iz@ORCIuPfDw*Mbbcbhv%tOeu-z)uxi?`@)To7HIgptX;Ikd|$W` z(gFdm*6w+}FWd-efq;){?JD0FZiKWz@H^Fvf0Soz1z#=g3+Ht~z^k>^p6?4cLRui; z)!Gx4?+Z6VS|H%n@;R@12DdNV2x)5EH zm9#*>leN{sd|x-t%nC}ZWLRui;)zSk%E6MkT8zC(a z@M`I0fXMfS8zC(a@OSCSAXoXma3iDz0{*UfOTKnhi(U&d{9Srv^?l)HLs}r<)xyhc z+81twv_QbCrDutK;S*1L+?}yygtR~m@9+9@NDGAKJ1BFxFWhWM3q;qIYq+)Wd|$W` z(h{L4ayV&f!AFvR1ucs;^SU7LZDGX+^HnuZNK1sR>F4{x*G#*-J%OEP3qIMj?!zw| zGpZ{s*x+6@^}G4L@HJCx!V}mJrzlx@#+DJ%f(`DV(^#AD3&-9%_EDa|m(%vSvZ)-p z7OpET$rdZh_l4sdZnWWv!*-gG_QMUd@_pe(NDDR~Gv+&n&agA!i|s?Y(Tc1XSO@qb|FB^d;Ri**^3zA zwLFbI!km|osPB8l{opQ5?T6#;R<@G#b;r1qTq($v&Z7b?nKtZ;Q?{cCMBD=x)>|QK z2UJOTEl=wkRf<$sG5QX!g~+78aI})s}EW%sX zRUWV97go8?LGfDHVQWM=EQ*ZXv8%_nq~CQOnJ4O6j8yY?YghH}ZS$V{)668ZwBk}>v+a`;%PqP;AK?QZj0 z+z*GhsE|X^B=Wr<_>!6Se&Brr%Gw)8BH#NVE!zVJ8+=W3NmZ!`8aP@C5b7xI?`d)L} z^;&kqAHTgW4L ze2U~hcsvKehRH-1$70w5~)O`F?8kaO^p?Q=0Eh zs82K^*Ro!e{jv3;VK-IrEo|O%+x=<#NSP}mY+oqKVfUZkoU~R_|AsX8-)KKA=zLGA z5j?|CeU!BD6o_W7jL7%$sUM^bzpu{-zthFj)<4ol{X6a~hwWUp9cd+DyP%PG+ug=} zo!Rrz!{@_1FXY{?(B~dm)l~#aCpw~oqEo3(ijy8>-&%s__(4a z(?&i6rHH`H*{)OyURQcI@mm03z4&v}6*K!?$H8Uczt7z7irl zpL>}$CXeWDpY{jZkX#b|LrOtTJS~|-@I~D_ah#K(el**XY`v%vUJH9fMN>9kw3dfz}*I$6*L8*Myx=4$Qh_TY7&x_hHTH93E}>ye}Uyy8X!byi6pn`~JX;cOuar zT86YN@35iYN$kJLd4s3V|3S2I($7Yxy1Mh;(e0b2(1v~|v3%3>2A`M*qJPM=dWWP1 z8~UAuz4-z!%+@TmdW!q6-%G;QSaDrxK^9FSpR3tQYPoW&o#gTT^J;d-)n%UhVb_HX z(X@1TVC)bKcF=D~tv99ps^nE<< z2T>#Xoi=uVabU&@kzilKUX;%rY3m?KxSy}jvbw5NMR;_vT! zr00+4g9v>|((-iZORC>Voc)RQTF-8|ZM1=2X5zc>8Tw=IbH;O&^*f08(K_I=*9MWR*V?PKuegrB z&w=Z$)}C-W%OSZWdWV!!(z+6f)803?_0R8PR@CnZdIL8cOdIeYAd~pdN^@JQ91bGa zGJ9s5#CpLaJ7l-6Xakwtshg=f57Rn)7GKoBHz+LIM=g}`oaRcpE2V;cSGT#t66ipjpj?>~ChxeR$ z?;X1MJF8W5oc<(}2y>hk=Qz2RO6zNZMDPFx=>hZ(ZT(-Plb>LtT7UYTMDQ{O>1Fh1 zW1rDBCXxux`Cxd?Td=MX68Glukz?8uKFzUKzmo{h`Cxd?1L3ti-J56G@+SU#mCCB>r^47M;;sfXKBxEty2{$U5}M%z92+Zb<~MuS2gd zx1qeF9Lgby;E~-*kIXzT*sxY&o*IeZ_1#LZ&ue+wS}2KX#uEDy^-IW!dIQ*#ToSpK zrzMl9Mx1!hF|w$=VqB7+sNYFcqguQlrp0lIG{-B@Bwku^ZtHu;VBN>&WGIJv9Q-bs z#82Kkx3$xuAaX6_T`LokN#twc+MR&4aNA`gnMA%8Zd#b1Yb9MWiKXG~<;B}zjVvEI z(OwNTEn1gt%SeM#N*eP78*3|%EZz^RUCzQZ-_h^1QF(pwerWcCdXpAp z{Z1l34?ue+%$rmnW1giExt9EB*pN&cp=W4?z9iI@c`PWoe32+;o{SM*%hTqg&_);s zI~)glhj#eqm}(^Jck5-gc2*L(mZv3?sM=M$AAUW_R&i_viA2?|0%3b@Pzy%e8W4%9 z3N0?^YnQ?xU)Yeyq517%DKT+VNHMP ze5~oy|KPJt&xwAi`KT<%=hxY>^~pXExt2Zi^jB~t5@8%{aU3)s2ehpku#ds|1BoyW zwm1&vTCkxNVaX(H9{|@A=~>dta`*y5}jHf%-MX5l5_wQNp~nifsMqR5;aCom(wop)pXRb?)9_L7JBct8zLhg!oADxt(t<3S zgze-okKWf0L6EAtrk%Z%qB=%y^#p>!4BtxjFNCZ*gv%Y zy4}@$us6vik!vBYB3d$uYUM8WKA2}{t;cf36+Qe;qFNn{J)CKA{z2NxL?X=3JDi_$ zOjSRq8bvKgE(wkwyazdrcoeQgqMA*_a=`P}S_bAES})P>CBb&A z>IXe~t&!-ucs}6in@1K_SUOx`;jBT|l@>}anl`GqT71r}z4pf_nbrgHJ7`3%L5w$CsM2M1g6eUv%v^*`DL>SLI9M2guWy$FQYMm)>iD5kNa6HeoRHMkD zWZI}^^lZDXz53@dZ;92aL3{>HE3~CV+w({pxBuYq)`QO-Ib+|C&l~#3yPs`u^7`Vq z?z4QvcI_pLA2sP4|m=WPawe=rt^kox57JdFY^4|obXzn=DU_W zCv~86;W`gjZ(7W&&O+gJJ+b_lF`?d03BAva|2e#K^PFvNR<3j{t%&&h6CX^^pwE@GK=2$E5yO>3S|DyX zacuj|lW;%Kc2~V~#Z(TZ`0GOEIV`d<_o)x2+VzCAK=8B`5x*b(y&Kg^JRvO*JZ&Wr zm)w%-$`jH8!E;zdymQ~j8_OXr5Ij3Y#JiL4X|y3N5MSD0Tzg=S+V1;q`$@VVO7Yi) z%+pq21GT%wEwfUtJRvO*JcmWOy8P~YQ?5KAEfAQ0JaW2-!?w7$F;~(8!E;!YE8j}I z4QYYc^A}-0I7%hIa{jvMo-4&)7cx&I?Gwhgr`*Qb#6YM2t8afwZC5G&x{!I=ifp{S z&Pgd(o{$y@p0*<5HxDgLCHI81K=8B`5ifu3rA8al0>QIWMEH_>8`1)C)xqQ2OTMF$ z@4Urv=?*HzUl%e@Tak^EM?9Fy;R$Jh;Atx&2H*4J)UG@sEf73yMZ{&#ZQ7VCX@R(A zaD4mC)lm*SgL{4cqsfL+{B21-74o2yfy~=o$XA{?RE{O7Yi)%(Gsa>dF(+l8q(nbGDuP)F6=J zuPb8it5|_VU7bGVqEzw;D|NR|eD35(cu&@R(Ft!J-Z|otuWqHD!E1S%XQwokLn+9K zCwPhrhgo&6Kbm?UrIf@jn{~I( z`0dGoC}%~UkQQj3u!3(|z=m&EN`aOqc)|+5f|1{IrIZ9uSP^l@T|Y|xu2M?kAK&k8 zkGrC&9G;LCXr9T^R1T#;%M(14MY-}NS4v6nOcoKp8+&>xhf+%7rE9v|^G<6jhbN>3 z8ouw+y;P3Z|7Ja$QlRAtp2?zI`En?wBzPu^h|3Q;B=x&WDT&?R=x(odL{m9DAuZ56 z#YHy$y!4pV`zQrkp5Q4iB9`yGLCTd08nN=fh(7ZLZa*_EDJrIf_WCyj0I{OzW4ctTpBd5Vi{Joi9<>P3|TEl=3!naH29uV=u0Xs$UIv{Hhiv>QW88{M#Ozfk4f!HDJ8)ZXhi(y z^21U&lu{CR?=gOu(ZCbZ0?iX>WW$$3DbVr+&z2GK*0i(IbFP$`Yv0T%Au5!*#EKd!}va)kQQj3Mk5=(97=(fCwLl7 z6QPun;Au1N+}7R zcmtyJ0F+V^Jn=@v(GSm0Jp<<-IQ@XLiNQSqzy9Dm$%ZGS1$$gc2l0QQc6a#o(zH(P32A}gdb@0VioY&ouD#2~lZXCqsw+=O z3k28RRgQ}uxGa^!6Vd{~wRaJ|C3-?yATYD|)Y&S>@oV0lo)4w?>q6#gy=)wRoKB9k zYk4imTzgl^FTC^2aj-xO6Ln?<-{B@h3lN-6%jkh#7u8=t#)%T!mM zkQNB8?~6F-?H@PVkQNB8?~Cx|@HV6c0yB%ZpHMkI{M)Beu9V`h3z-oC+4#)LA4yNG zC!_^}5djfCSDug-2+S;2`m1vF{5dD4Tq(t07cwIPvT?<}H#ZW}0>OxY2%jr&Ls}p( zv#?x!W7G#y$(7=-3z;zl*?8f#5ve75LRuggLl6Tz0TI3&o{$y@%q;Al zPrc)3$%az=bs;l`ARFPHr*e2gS|Auh5aDy>32A}A%)*|i56xMga-|f1UC4|&$VPZR z(mnTtv_LS1Aj0R$6Vd{Kxd?k7^oi|XZ=Q0c6n|aFj5^3h?+c$zx$=axKrrecBJ@|O zU3o%UAQ*KJanp;>HrkLD2+S;OG`L{)C5cdqzb<4(9b_Z)?WyFRkQN9=9Ypxr^@OxQ zU}j-s?XEAJk#eOJe_hCoQ^>|?U)&?rl_#VHf>8$$xPxJ=P4f>=NDBm`4jRvWIXodP z5SUq*?{nbg52SJ^#a|aP;}r4$CQQAvk&qS$Mje!^;QOTe;cZ9@1fveJ;mhF(X@S7Z z0$wfa>gL0rPS3eg{BK*HTMV3a;ykk-Lm+&)Ez%nsS9}fsmGDMifCj`0nphOc+{7 zkru8CdDJ;0+e;olzrltlq?L#ief_`+R*t9@Qj%75&< z>#b9h4QL@nTDUIcXEs>1z2pelK&kO3EfLZZVSA(Q`NV{jD`+7_TDUIcxqn)IDbm7qA!BF%lJ#K&tt8%z>V9}aT1KcG=kK^$ zsw--7FQ+H=`rYVZ%HauV!3Jb2$C6VoPtS)^q@{9TUuX0E@PxELYbR(|*Bznc-REqa zqR2{-7Oo3fJ3&!P1D(^~x;3>#rIdtLjY!~M{6R}8CBc}t#`Aw~IVs&irIZBr6tcCS z6v{F2jqj#%_*{8=*q?g)UD{#FJTX^FDRYSZsaw6;L@1>sus^kL0=x`Fe%|x+-D%`h zN=eu{Tsh+SlB=|!8SPhH`En=)TApCEUw(-vlu{Cm_BRnqDGA2zLA(}9e)J8Cl9!>B zl3?t zQWDq|YU8=DT~A00G~?<`Hk1M_PcW|DL@1>s7$t8alu{Cmk~a}bDGA2BMZ7zChovYz zw3Jd3*yGvkUwJ}Wpcy5X4PU!TftDv2^KK%PQWA`LHxWuH3C6rdeDAVtQpuH464>Ku z-m5Q%C!__MF>l$}_YbG0zFjHM@&sevAj+p!DJ8)Ob`znLl3)Z|xq4#nt5bial#;+6 z&*r&-C!__MF>l%Ee|I3wyp#ehPcVYrR1T$-1S8l@gi=a^@o44h^_4G49+^@~BJLxN zGcSzJ4=s2;-9b-C3p69xvf*2aQlRAt#-p1ErIZBY(ISpo_vz$cDWxQ^E3|o*>IrFq zW&~R{d^wZ?El)5W4dR_pSC_oIa$09lN=YytEgO5^^o{fkDy1Z_D-<(*dP}=M|4wRG zo{$!3MzEEutM6VVK)}E}KmnW|xJo1wvYor>{9Fe1k_jAbcxPN=e+X(WLO5pQil`N-2piY(6P`OGre% z!;~o{@sICM8fMpvt_4C`ke{42DSY9msT@iviLdWIDSUUSiBL*OTyfB(@NFlR!|yOv zN=dwQ&7@)W6nR2gpl?25(y%*BnF1|O?03ne@Kr12%HKhyl*C!LPYPeo5|QsPWlBlx z{>G%?_IOp-0wFEP)0a6a*_B-Y<*a`?WQa^-7RDJ8M`*C&UszKO_pm@=g#UOs8^FuM(PEfCUz zeDi|I;ahaFk?$~NN=dwXe)#=z5x@Ab-(kv>lDO)r$;0k2H9}gTuN|7)-tbD<@O7mW zXnEp>XC{Yl12z##DTz_jr??%a`(!&zc`Xpqf{d?{*bdWm|L%8~GNmNm|IsPK;#n?S?Ag{mERM%7c+Eq$P zeCdFxZZz0oW52_cDJAj83#JY;*6Layqy_msM@@BOl+Tq?N@BJ1rn-^S6G|zGJ+GTu zjn24((|+N1m@=g#_J3^ZFusqj1wvYopIA1v@)^ojqLh;8eRQhxWPCZ4QWEd~$JEMO z!ibaaFl9PjlXDzQdF$ zC2{>0(}vw)YJ{{vufOKBVSH+(K+6-$Cr+#U_OcvGDT$reoi@zeKq)0LZ@p=8F2cFm zHa$N}b7zji_@39i@XfHv?L)gRj55bs%%e&#!)ulFA3t|tApBo>UC_|d?@QJvG0?eW z?>*BDQr4xVTy1yW zC!__Mo`G_;_6ql<`=JzQd4l7-a`pQ3_oQ4Yr6hVzp3+`$y>fNr4f~`!=m}|orq3W7 zz8p${mM1vQi+;R&Tc%M&{R^j6QT_6% zRSL8`vHTc#GK%W|*K^mV9Vvrj-k!N+{Y#=}!5w1sGPu7?UWRX1Udz+m$#qdfU!oM` z$`jm|1){87rIZABS&8`IhkucJIHi;X_e?FWYJjnWs*6&|l~NKs zt*hyND5WH@Q{mFzG!aTE37*{4L@1>scp8z2|GH>=Du+@^f~WY1ICjsGsjie#58VvpN$_MEJ%hfLD5WHLqDvE@l#<}tDNVhPQc8j+p@2ZUx@C8JcS$Ktgw3OTIY1z# ziD-^_`8bzv?dXGly0h-b-hbOS-9b-C3-&O!Z@QI;?XMl1B5|IO76|xS`>hQEB|rSO z9aG=#32A}IBXPduO7Yi)%r`?Z)|OALQc8kvhJtwfg~K~*UVB?QsZc2;0dINnYfY`h z6Vd|BcS+>|_;M%(TAtv$q)p{eN=f8DNni!xnKe~c zGe5FI%9SUi1sdxbiyu($^VH9NlJ18mqy++NCyP#0?=$m#C#Pr76Vd{~STR~6_GNr$ z-CL6P>IrFqV5C~D{dYe-F7+jzkQNBWyhR*wrJaA}32A{~TwR23SDuho%+)c7*Tb_s zIh5nFfB8MBO!3!+{J%flXqbDhl#+P!+z{1IKDE!4QcB{!8#b!iE?VOMJ>~bLGNmN2 z*PwZB;O~LIgN)rb)s<3U!xN0eHxWuH2}a_Z=7UNp2}a_Z2&I$+Qc8kR@+LwlCBgVPh`aAQyz|SsADV%d0xhMKgjQAg46gRbuhTQ=32A|5 zT)in*N`aOq7;$eRlu{CmpM${tc#K*#S2;?n! zLMbJ&%~>BC#)eW#;_H((c3z*ip_Gz%lu{D&CVsr~WXk!uQc7arM;~{dj4!!TO5)fDK0b^mqm+`^ zYOU#RJoh$~QWA&lG~JEoo={3j9DLC9YCJDXu9T8E^XTa@LW8U4@AfIBi9m#=nNaM; zw_RT8$YF>-evWVImBgW4O~l2MU!KWR<*_F7^2{ZRe;nsKl$)L?ujOgT6L zW2c2G1ts^y8{d9;<`-sZe(vvwC!_@$@{0fYQDx)!32UZ4Q7O{Gbs?Ygz{@jFKC{V& zC!{6fmMdjr|8wp1R%jtbTDUIcrQd#KCQiz)-$74ED-nCkM(2*z(%c|wg_NXKoxp$l z`mfH!$^3O2o{$!3$RpR0jg`OrrPP-wMOr-Zf8NjuEBtHb^!=M`ctTpBAy0U6pvu)5 zYj2-=AEihO*M&U$oqx^T=X}}NXP-w?t~?!5TA;bst6cqh&a-JPTq(*)PBhu@gkMAEo6HNVmN@q__O7KTqy>9ejh?fahz+-Y zGtJdJAuSMbHTv-*s=7LClMNdQX@S6M^t#80IP`!ox^{*2cHR$Zf#5sCATWMRUv*)+ zA3j&o0)f@&dtOz)yVqZDz5y&!JRvRo&i8pmJhok;3BBkJpI@BrpeLjS8f)S9r6ykvPe=;{ zR=n+NP#cVTGxgM-kQNB6c=L->aUE_WJDI{0(gLA1*{-gg!pPbA`Kf6w+!N9Q!QFIv zYJEAB;;##td;FRRrIZ9#JeMwQB9u}RSYhS!fwk~=2G&aN(JQ4Su*!YnkI)ihT~!5% zT2)F(V3m9HDIj2DtIOU_Yh+3(3B6;6i{~?XrIf_-v=)x9j2-*sZPNY730oJ(ig)u@ z#ylY{*u#pqwJU!IJs~X+SPQqd>%TJQ32A|__wHT_<+$XGU!^w={T=l81}om(yQ^n7 zXz34A?Rr95uz?ltt#<%{cP)EfS*y{8v_N3Rd)W-x*m*}gwa(j+76`0(-|(~6A*H%{?-udQnUr1}=o{$y@tXbPi(JqgCI+a5y z{<@H{;{DS{bOOy<+n6uv32A}AiuXSEium38S4#K86Vd_^SG<3tl0UlluToukLRuiO z;{DjovhnkAc6zHPqy+*i-X~ux8;5RiSECJSfxwFQ?8{~2*;Ph0)|IqCV8wgl5)pHb zek6GrK3CELfwk}zF931JJBN3k8uPyN?yD!H1p>cg4N!do|5pm`tz@kfg5XzT@O=F6 z%g-$Z11;~1%5TH(SXH0?clmH%yz9tR4o^snR|@Oxe+2;>o#!@6eu*dI+I!FffmL<0 z@%s;7*hokV1Xk5=dri6e^Iacl^hKow0;}p1R*}!}%C^61EQho}U{(E@sUmK9^cRh} zk`@T8s$aUZh_^<3v(bjMKwwqb1o;l#hjU|^B2&}4`&+zLj*K4#P zEf81>xBlwQYroQ14rzg4d(+xdSdD6&b4m-u%U8{8H?Mg4wks_W*{WJ9Ikb=>Ev z-lg4cUhDIOv_M1VS|9Gms4G5_`YWYKOKW}Cz0z*mn&pk#n5XXvX@Q1pYnER>XI{D= zN|Bb;^Uw+s6?p@D6o^s_0X@Q1pYvKR>xl>XvsuXEyEj<55?uDCnrE$;` z(gF?H*7UDkJSy2xinO$*ukZ7smU8da6Vd`5C zIj<{ENDDM%#=J0_Soq=v$pcV|v=n30H<|1A!xPd1OCSa;4z9p5U%05w9J*eYzh?DT(+t*IDv?d^tQJEzsPHbyW0Z20H(J zgY{QRftDxm{@2_yWMjr>c24ce6Vd{Wx4G=Ap*~lhkQNBcsb}q~T%EJ!{;6Fl#a|aP z-v45*(00Eu|NPWSJRvO*@olbDSLeTYMWYRAf#9w{fEnhplA6 zhexG5=m}|oz}sB(MbVc$cFP5gHlziDyBn3OH~zF^Du+`1bs^*ZFY}Nuo3vsYaXcX{ z5P1K~yzo`lKCRJ)v_Rl(E_(W9pXhB!3k3I$svM7>{L@r&rTFVY#`|A3|G4Ku>)Smc zEfDejuQq5r+UtIk_U$Vo@`_ohF32A}A`(IpPL9RCW(^ic(qy+-+e{mHDYcl6e z>Q3u$-iEY5;QcRKx%)nWNDBns|KiFWNBPe=l)`b^zELI7HG(uZl$`qrad~9Ln+e2`>v3= z5+WOOANqN!D^EyEgpD|Je*Dd316oLt7T#Ef%(WBQ@O9-0X^B|;n#S{^CLEW%3}_)m zT6iBEGFMwmR1Qx_OT@9uWMf2Yqx5`03n|jVyYrB_J|i2~obkIgPe@Ay{arkR6JE40pFj&K(!zNOkhung{R|+y4Npi* z#4~HE9G^ITZmL~qAw^m^DFQNAjksrGp!2I)(^C)U32BK~{D5XGPaXKlWCL1Akrqz8 zfXsEKrgC^fS|T`)Ldjo0^}cimp@kG_;T#UgT$#GC;TiOVv_x=y7dEbR-@9WRN8h^( zXTqiL-RYf%$HMpSe!A<2(;6~PK$MoJ84J@J3iQYEi2QqZMo0?;<3=FLmgq|^Ef6>v(Z2bTfA5Yd{<@GEX_Afndv``i3j`xg zDo6gkJ0qk8f{`W>{)tk4y%uDgjA-BB$-j5Ul#*a;b2x)=lT9%0Xdv``i3k27)MC9MQGeTM*a5AEe2Ko2ynBuPsnX6y2 zk$>;b2x)=f>X!&#yRz=JAme028*Bad?vzpzT>X-b-DlbN?mQta&|Liz5ysl&>3c$2 zAh`O4(Yf?}JRvO*I2qA=pZt4wO!3!+%=I$a$iH`IgtS0#y-Yqs{=GXRqy>WOWwPP# zhw|&SAmg0F;l6jrl#<|jnR1nX@6HHmf#!Odi2QqZMo0?;*ULosawxxE3$jil>guY0 z?~W%Jl>}GVV59!MJ0qk8nk#I|RsOv@Bcug_D{LU}y}M8S!GG`02x)=PIZQ0`25%mD z>v=yoytVJgd*joUO=8Z$ zTeo(+Yf>aE*4!K8z>4rHK3o#HmZv3?IN{vIJzuWM;rAE#eE|ABm7_=HFsN@?dNuBO+7g0jf>P_$3d3&^R z*v;GZ%&gk3-&3M{fGg>D65m+5UC;iJ;I0te18KpAXcGVY&eJ_#J)8H#?jTlyxqAaP z^gD_DdY|sO{Y(&E%kDF5h$a!9^BH>1n|9O0E4g!{y1G_+{m2;?#-71S7_VDtK~|Y) zBRn4+J|DhD`R*g1kKXtmB;=CFwfxbySh=^kj=b?xm{{H}LYNxTw>D-QyZYk68SiOs*=+d1;&#nFbY1=`-P z?M-q?Lt3MjZ5MN8dogaCm2@5l78Hu8cr0fj6WV$I(YJiQ5D5;B!X? zBG>Y?WD<{VHmY^hW9+Z=Y?WD=nlZLt@%65_fV$$Y() zgxB(PZ=y-OJ%8)YcE6p}K`oZ=J7ZrLe%Cw7C1Gzum$a@#;{7v5b;dkAC)&Wcgne(w zJ4Ob*$*kW?!fSC{BF*tiyW6_Dp1F6so*CVTL>uV!_0}(XPVGF@@3isW`?u>E7YX*e z)Z&;yn*A=EySj|XwKM{NmP{Krhnd9t|8eB4D6RI;LQAFf zwNMhdmZv3?2+v1L&xg;ujcR2%jIdqldCBRc*mxew(P25zTiOXd8Ua8{X0G}Jam2`@ zV#$>PEl*1(5ysjM$6D)`P(SisKua!(T+8|{>+ML4{LO;arN=Id9-Prj0Lc^1jZ{-n+)9Hm(~l#J4&6(mDMo6IP%P zJb~wtg?={?xt6CT)5fZgAKuyg=J&>2X=Mx7wH2?vB$q_4 z39sepJW}1&g?oV-#Pq zoH0|~LBvvVpJ7ijiEz(*c+dM%3bYVQ6)l-WXuB=8U7iZ6=g#(i*ppTged$zC*wAwa zSu}~WAKSKd{(_a;x7- z+;-0vt&e^HL|=BksI*WH(IifpJht`MRc5!4q8~en( zY}h`cK*x9Ic|Y`fNq8+!`<+f;K5@#St=(VRFxs$PS~iBGO!}QRjyv_x)-_8(c&$(i z@!SWF=Nj8dj1T?Q`!0WPY**@KK&vf5*6$_ZwXBaqjff_3@{ZT_9C7CN;vMuSlB(wf zq2EbN+4Z`f>rV%f_qEbOu0)eKv$JPsx9`6c+HPNrfNGSn@4xiLIH$ElBNzcy3)g4~ z+mdNx_Kz10p7L&AEC+TAY;qBwbL$!M?=E$98Nr zRL`U2lE}5Jw1FOgeLH;=(eO(kmqf1RX~`tQc;4Z7-WPWvXmrNT z0gdgFNrdsd!||NE5Tu3O38E#Fxc#lZ)?XJb3eN|3d2aqZ`zY+p9Q77u?CZquCD9jm zc~Z;M-2I8)N&L2ZcI&lu#rbargCG0MlPSkRBg`v8>odBq@Rq_eID^k%{?uB}Q1&HQ^Wihtm%b+&%i*5+ z{5cOk+#r3p&_=`iz?%J+y?DdeuGD@&U~iP> zIFd=ce#)VpB~O6JwLC4EL}e}&*zSgQ2FY18} zd%J=;?B3nR_N{kNIgIdHp3dL@=<0fPhxx60&e$*7uy;Oe&Vk(Oca~%F&huNR?+L#ay%|%E&fAaTQzwEs(-a+q+Xr75H>30&LO|{UrkYZZqi@=6{CsBC-v36DO(9(Jm zWc^N}@-pHbG%flGx|{l)#7<{_ul44(*TuT>b3lJ@^gD^8PWxVK-tHh+Lfk3kec24k zqDjm??a&sV51YBGrqzz~8GU#@T6{jNRl|m~Am^<;_$7n%OY+qZjo~09GgrYc8Kht0 z$MBra*Gqy=-JwsNd*QbF!9Bv6PhAmV{75S-o(}WDY=tGXs}9>$SV>89C+;fcsAl6M z%YnX%?JC#uv}6)tO{T*&ncyL%K8h>QTA#t1HDnTDO{T*&nOw`$l1T)=q(#5PR!niv zZRO5ZSV;uGq(#5PYk8XfwXF_@HGmG+0JyHsyxXo)*vnVXjmWiBTC@_$%vH4l8J{Su z+^8Sad;m7|JBezQGd{JZW&I#*=ywvqb8W$cMals$jS26vvme~{pJT$8lPK$V61G~~ zH)L9#o|k?nk-UoITJwgag<2O)B3~ox4ktJ89w1lj;h0~f`#87WPMJi$-fmj&|ESTDN#x^TcjcF09PAEfmN3SGJBSgE zL_Q8mi}&BgLH|OkC{!Sv_Ghxr2v`|-~ zN#rr%@o^ssw2UZi$((*LcWcYhU zWOFr*IGBZviE9feQ$FJ4b2VvUt|l6DHU3T;`FdjL4bpm|T6-X>mR}MfC+V5MdYRFZ zNxU`d{+@L=-aqzN@OMtWmVFewm)Vz7*6$=j^r{CQELwwUVJ%!VVt1rTiSCL_T*8-d&nIi>6O)s~>qRbxb%*t9m9v?dthJ?c#UZ$YZI};yobEdjpz;t>Un+ zm4^fmS@WITzcQjP`q9+#H2rJ*P8+t$$zGq427d=RN@V-5s+Cl)<>_iHN$aB3zNHTC zp!Y?r_c8B-xiSK?QR}0Ow!Vu*9%C^N86%m>B>$R39%GRf+ZA{3SeZy1Ja@mIZ|^ie zwp~2WD_+3%DsK|y)9)m(c7-)8q?i_;bJB>h(5oep$2mh^62}bRGtkCxaZc-fa9z=o zX(M0X9h>F`(X*)hImsmQ_1)lkS6c91w3A0N30obsCkK5LW~sKG$S18Nyq2dq#|2Fy z-?yYujV)hsoP1O>!fV;shx?@YCvD_=Kf1%|jkxFDTdJOd;CGcou7&{Z1lZd$oI@KFZ%468YMzdN{iWupyd6zV>SC z7q)6(D;6a3wO3nP(E0^zh$fN8IjtqCg@ef3ZXV~fXF^&ixoFy`;+*lRm46N`n|Xzv zx|)TNsN$TlXHW`q;%Uhw!n}5n^V(`ARLy1K>2Z!*&7;EaB*MIQkn>u4lbQ*~c~qq7 zC*pS!Va9@8FELjdA(1P17894`<1UG6XH6`*Y1#OSTF~z#LZ3LuJ~7V~W?SkXC6fq! z;voA(`nb}vl9%PE`u3PB%}kIJ^8m2VlHLGqRDF9axl&MaPfI2do{tV=6QQ*6Y)p*j zb_M|K<+F)Uh7MyBxt6CT(?*yN-pcu)&D>$b?jX)#@iY1`AH0?GL9gX$Ydy44jhwNr zFmldbm41n>MsY;N?H37eu1ZPlK(633fToT5nk7%JXCFnGqaDvA@9L_rSwc%A zCuPyJQTKh0i3GhD%JhBs-KDOsy6*!m`973I(?%ZW#O#;XWhXaBEa^XN;CcOC}NK=N-njv8E>iyG_TZIF4izVSe6WY&+NT zv}6+1x=-wPvDTw?2CUp@T~xo5sMdV~fj5q%#g!t`c;AS>lc@WNWowt8=$;Skhl{z= zlLLG74M|I;jr#g7wB*T9=E|*X7~!=v7oiRMJ|b-AGWI%;uVMw*hrLyJQK7ci1?3P5n4}dB0xeKjb?=+ybLne{?qWA)-d{I47_H>cR zeNofmcScD|CK2MC9q!o<-ekDXiiYB@Dds7;B(RU&v^*`DM0G!6Ye((MLqd&e{Yr94 z%o|b)>dMoSN#uJ!#;4eX^>Enx!QV^5dP~@l7G%*R!m3(FyQwT!_-?}Zv=>WqN#t6d zmP{h7iw<&KG>j}EqQtdO-}`W#8a)vS?CR&bXs+dH$t3dqC2Lf%O{~hVkz$^bN#y%W zObcJ5)%!n^Nrc`9?{n6A(KyOfu_?(VQH@2Fmik)U56L8Kw+Lbr%9Xxy%Q1@IvXv(j ze1;C!OL8qwOQwx5H|TKhIriy}ujWzgB{WaSTOxMiVg((&vr>?EPfMnadVDY+0sP27 zq8=aQ2oTpY!q;bDPcn)6dOHcO2TM8v9TV$+VHjyuw$2<9?qohNoOv4oT!O zFXf%BQZ(9?`PB8f0dqy~o-)0DmBR?l4Ont%p&X)_D~kez8D!jlL4xxd%KE(|H2Yyr zq=l9!ngsUG+q*L3(;gq|MazCS#Dv|uGS*Y0=hT}vl4+y9_R74=-$AYE+Lab^B|4SEz2iRKz2h$5*Zkm;pzp)C0ok|f4SDqKkV#bIU?;VoDwc|o zOz|kmCBgAdTCrVKv}6)tKU|0JjABo!=1%m;wO1|o$c)IfJS~|vs;4%NYUYLGy&3sF z=HZa2dWJycTAr3nB7av#UO3)@(Y>*nCXv4@V_Fz@`RO{#HufGqo`;S_4Qrm-FhFb@2bBtLhHM< zp}eCUqG_YPPR)MTdQlrCNYvM<+3#x1z#SA#qQ1A5Hn?k+ay}Xu5yslMx0W`f1snRE zHuCrGH0pDvr+6)9MUYD(*OH$A8`6pf9R-8sLj&@8h_4$(VwBpr;5nB-2K? zgM(VrS8NMfdM0A7s`yt)cr73QvS)=veGd!o0V1RLHXL%8*KU0e3-5=tkSo!&QIFB{ zx{T51_DVuAdfL!+VM8>Du=eWS!BXwgr?z*nIGZGqzk{WDCZcjiOD0j@Bg`jCGa=+k zGKu;gVLr9;6HvR7Nz~)#tRJib<2!mF@{-r%=d3GfAy=YlqrRtz*X25XZjVHLPZ4eC zy09UdMDWPq`@}xcR&hAiDpr`!QjN&9JS~|v>hDc3?^?%4U1?pMME$)9mP1-7hiDS@ zJ=?TlEA-kwAzw5%tTRJwby>fMkGUq$TR{fO`T3dpa)|M!Xrj7bK z9CN}NWtk+Ggx2AxMNf~kWD@m$mw9Jj%Unq=3H7_wVqZ&IG6~yB&RN5;A0h$oe&kfj z7#Z+;Noe;MuPZIwbI~NK*+j>upms5mz5VIjUP*W@yDqLIIuXV5!5ZZ=!J3v_5_&$U zrMm_jl1bFpmS}^kMx-T^sIM*MIf0ElSM@!@tRHv)vpz>TFL`~BFz<)7U_&%>RgdGa z9GpQghmuLu<2ck}?1r>t67{|3%oY5(rF&6^M>aTD?W(@_oTZf(T8wDgsITvGG(Zc- zcX2^TE(y(ksKqs1(vnHk;|9z-y>P3AQE#cgs>cniMi+jNG-?+zZPee*pcW#oPhLft z@p=*UcQc@+cQYu9rj2?Whb8BXjwP2|5{lzciz_UoC6lPnotYEPmst+UC84=9wK!iU zEty1p4+{zIPNB>_EUK&e9u{6#TBtYCv{8?Lu!XB-fRJ1gihr?P-|qG;~1eeGL|FWgYd;{alHTDQZobv2ERtdTg85l~&zG{T)S?7EyqkPGv1fX0Gb*C{m02 zi%3f*QD65Vfsst(xnvUcbst_A&jd#`t^4Q>*5AjW4ZcxBnQw-PsK1Xx8`45uiDs_q z`(F7(Vdll2TKisI-|o&FkQV1>7y)oMMbk$8-3;bRtq+9clF+*uEG^&1AT60heg759 zff>u@&r{BKz0~(#G4Iksu0+#DwWlcha2i=qqt=UZ&qUwVx*ye^qCn(Yo|a4-_4fx^ za=U|iw@)^V2;+HtPmuM)HvlQ?ciO1G?@TRu7RW7D>!035HjFU;1N9><$f9YZ8b4ym zF;3uG(6ZLf$T(VlN#t6dmQ13)X30CqbxPiI$t3D)mek@pC27ed!kT5v&I+@(#9iK` z^HySnJvqKDK^9FLh=lW;J9~0)4{SEU^%C=zjPP2XwwVlV*lsHA5a9igXMtShvpXZI zUVkB5iL{VI(X>&ItC7$=6E-B1sK?cqE6vYfLo$ha{5-#FAo4p{kDv3dp=E4!18K>$ zQIDlki?LMFl1bEKsb*vJDP{vQiF(|bTJl~{4#_0yapycIsNFnQ^><}>KjM1Qm8@yW zv{8RohFbCskt@k0>T8x(jx`=;4p9!sB=YmGn1btaoszU<5*GPUtcY4#DF7|GBor%R zPBf!KT}dWU-(Nx-Y8kL0nM8em32opWaF?c53RUuYJc^!-=4Z&2WZJ05qv#=NmV#VK zCQiaBNSDO98p5&6yK1ynEP_OrpN0 zsPy`@r$~NceNPeVim@Bgl4+wJD=G=Cc*{mTR>bRa^}NYOwf7^|u6$0E7P~hNJb_P_ zerK+#y&v%onwH+};}fjkNmLQ{NNAM<_rOMH##pkkwmLQ2YuOqJawwWM>hB3N@7#4y zIiKSgp&k6pyR?u)(X>&2KZ@7YObEHk`>XozK*+elGsz;)#nL)Pyl;k7(n?K=tM zd@6@K=MHbIGgszWmcD59e8gONEj)LkCDVrO#?`(B))o45t;0$#3B|CPE38v;wO0Ea zRE{bN5ObwD8S2LfvrQXD zTuUtjHYC%=CLdd`^UbYsR&oE(mo^yJ9+-pg=moF%#Ifx+Pok{fOTue;xhCC03w;!KA?Y1OjcRNC>)_Tymn?|q4vySqWc$t4FAC-8AL`y^M-!; z;`pi@{Yfr~T+7pvNpy7$v>>4^Jv(w_`^h<|pZ+M%ef5G^SNI)rNz}DG4VlE)w+`z( z_tma&KPL%+G}ljek=!S z^qyCL9?Kz_#Cy)$qVxKzk2(O ziInv_iBTsF%(yiY^M*{z)BWl9MBGZEe`v4Yjjml6HLc%Mu5M+nu(G9GdD`re(AVEl z4z$rF>$CrW%;$r@+w)-r+pgF0G-TR1d-L;pwwd>Xc+cnlY1Q^=yYW6hecWp8Wm{3! z?pfQ*LA59-pG`K(3z6AeTfxpV~^x z(~?P4eS5qg>N9X%J$I1xdr5dL->=y7NaD?R9`2cZ(Z2Edz+GGVBA-G3JnHw7u%{Du zOa9P?B*JLW38O(EaxG6w zCJ~;&!SD=58?##>o?YD!mO$4!I??-TtAg4j$iLQnf^l z$oO4yNz6+rC9Nxw2>mX4xE8e7!?FLs{kU!lW&KVf^tLl#Zq zkd^1Qjy?F6*i)lU=4{6PT%HB$N^(h5brL-p)~IM*iA4Rp43;CVEyTB-LeCe^%TPJ$ z=VgGi3fHS~m8f#fT*s=BO561-?<_|(k-XwmPOya5!?bwbMU9lJC z{UB}Q6^UxZiEUT&4CDl(4E++0U725kQ7sU;mZv4tM)0XS!KaSp@bhIn!Sa3edr9y) zr zxt6CTlc@T{SXU|`+LDcGRwE_hwXA+nSE5OT**502@eZ12$q`Py55_^rC6Q}+S~7{y zCwAB;a!loQt6He$ZE@rba!KS`$_Z*gGKuh=_o8`(pwUV$B;<`rDJ4cO>cqPoV z$Mz3|Q|rQPYvCI0+wVFh&YhMY6Xv*!A>)hSlu3L$5V!vtL@0;T^0Z_UUk}7aw+)1M zu_PBv>}ys-mQZ^4_C;Rr#7jTUB$Z*3c4aEPm@* zYd`C(d(QQH|47zn@8>yd&wK5)hr8oNGM3Ehz2hXg-Mf$FnFKj+O^5hi3rMJ2`ahAv($7@-oT`jEiYt14$r#CIkbETDAX)mHW!SDTcU2kIu54Co zXSdIsX|*k-Yi-wNwf32TvxMnLD|)RD##GtuGpDqx+}hRb-j^2j_3`7~pUNv)sn1h3 z9k+jLPX72K))E34~WY|6&?)3E*X^T)1L zK*x|ia#sG3#oF)I`fK0jgAK^Ddnu<>jo3ezUMq}Q9#duWOUBq{$MN|eF2*lm&gy;n zgnrF!e`4R=XS;sQeb)*&*k%92HB%81+7Qy4Hd9LCEZbr>Fi=GS~-8)YE&HY{;hLpBK+-{aE&- zp#9zj1Dey1GGFMj2jp#;6HR7#l_BGJ)B_!Ch1GQ4_b&oW~ku%ZM$;7~}IP z`Lgj~%nB{Bz5e+nV;uPDDfw4N+9-i^!&I45^O>>to2L<+buu2WWk)8-`aI)^-gg<>qW_y9hVN zUw-jsBbWUmlrGvR_fo&|PQT_Rr&^seyvmr}TcRR+mWLZ-!OxD!&-gg(lG(iv-q_de z9p*Ncp)tfR$;~dYvBb)!oy{+`rAk`~QZ?~T>x1lf(82I3qwJk11)^9Y=*?}Z(s7q# zA5ciii9<{uWn-kA>$uAp=GI2ha;!9lSe7|0%cs7F-;659cC$sxnZX!hz2>xDIZr@G zWK%YV*rK`EqMDB~RkOleQqC*J5L+}CTU7JGc>+2jo3b&|9*fooY#ff~*l*!D&+sb4 z_UH{|`zpq^{T759L&lQA#*&CK3y|{_tR=|CXzntl*mSIoK8!&PG9}0pWn-is4zIHYZV$ zP1zXreYMkc{xEL@WbUh-mQq#US2Gl5oa5dwHf7UMx8Y7z9cIHprvKs8q@!fehBK7e zZN{c-I{w*xTkGOJ$LV;*nFY1>74d6uykfX9ZaL$&*2y0OBcjTAN&9?a8>4O~T1w0U zT&Ve=Y>c{{XehG{jZN7YC(q0pzkc@=%|{&1VP))oxQ)9EH^!I0mNkB-3^^m{sB%0< zJ{WF{hfck%@$pnvC zR~go>3}tmdnQUY1e8ros9rry%b>N&8?OpUi&bth+GOQ08%FbUITiRG+8)Lh91ByO_ z%%+ZW2EU6^V0e`w_dGmR<(z>MVYo4phegL-csV$SbL0ervN4huN5@^p02SGkjZydS z+Q`XK4PzqZDue!A8xzf^Yi!EKsQX1R`fy!qviU_9raCVf5kWYG6&X(tM)YR|c>?pn6GD`#PRmwf^< z=XOg~|A}(GE3F4hRAiTZ#Ta#ed;1K4RJG3rb$`3nc{y{I^P}lVvzqon_8g?0wg_Z~ z8zaq}!icD{-=Q6oZH)T9v(-mgy7We~K1xPeQ^>7(w%hB*bo}F61M;89jvus_BehxN zT#GQ=7>|ErK>mZxz=){GF4rQ)sQalcALgev**wt9N6Da{+R{!G@c!%R~_^Sfej0Z>jZ{Z84*?blaMO1jZxn#vic}{RM|qSjIwve z_6nJ7V>D)Dtrf`@rR9Zu(ANW*;l>c_wPn_8M3r_M@*;gD2~#qhyrY z@m)Km*RIcWBr9Co61*39QDs{~eK6b@^|OPPk1|y}JIH*Lj53GF zhn+CAe2{HA>gQxkM>)ckHCtuyoQ!>!^$dMv8>7BQ-)X&IZcF_L8|Es-}kzN4vv7545~CS&c~z4v$8ZBcEzB`UJb zh6CGl)Xx;*yF4v)hL^&q+s{ah`k5j_p+qOHXKc!*Bkhvu%xUNMz~HG;vtF@F_T%NW zUQ0$hDzYh?j{5n;_LQ*BkwRnC&nH@m+L=USQ#MBZ-h}M}*vTX7E0n7Y-kT^vShCAJnT|AbYCbThzPq8N1hXZ^L9i)T8N3H&sK};ljQTlCYvFbx!A2s= z#z?mZ8qm%dv~Z4U2&e3f$~`X|&*9792uImdRk`QYo?GZ^&v~+5wLa_=o3*R5CGyl8 z+f~UZTQ$;NvdeaiRM~wvNI-q&qLIy;Z?^N)!+$t3-T(P!FXXw|rP|Ni84*=wuh{*g z7>KFr1AFn0$vAiQH9i$ng_tU1m*0D=xdG6N4zQAuszgbxeMFxa(jH zQTQ(8Q{Nid{MvZx!1wV-6uuQvl>adp=a9vBm0!K?_S=(zZy|;#d>8Vhu2IcCuiA-} z_R@_EqR80e0P6VZUsmy)1BDo(@LkA_vqv@O{RTRaD$PX7M`RF1#{K6&2U^MQYyRpc zNHK;oz6*J`|BhspGoK_HZ3QA%-Y?7xHsYj&A;AG<6_F_#=u8qR5!}3A_K%UV}g( zhA4a&@;`usWRSdj%i+`_wJDM!QWWqZI>}s#^pzkX-+$t zIyU;#SzhOisWJ|GX-xC>H|_LidwoO(QD8rQ{+Qz_%?Y0+ zLz_ryC5)*uo?U%xbI7O27`W4Sz0Mg^Wt?*I*yhB4b;?I%5C!(z&9Tkjj-rm=J}}Kk zIK}`K8Dmcy+x*<-WE{Kozr3F_rpkC~t#QpOp6isV$RG;rd3TO&zC9Q^Q0D_L-NQ?l zF+fEIQOs*GJO821rn6&XZr+xgNxysQ`lRAij>qj90E zo_}DP=Yug-#+?t0OZ9=A|KeXi@X}>Wm2uEk<3FP9Mg~z}Ke6uk(5_-jWDHPkj49(o z+x_Mhlf87GNHJB$>%SHqKKiV&^TA$LkwFyL&z?L!^r*jHQT8at02LX7uN)ux`7YmB z9EuyMyo7LWv z*1qf;(|3TL_$|nhjhU#=ew+upZ@k=l6tycmp&(->y761g$DM!P-djmz5CsNiq9Nyz zao$aRI_e+_49rB=$lDo6eRuxs)qirEA?hFs49qJZJV1uDM4zJ~gD5aCmn@pj(mj2> z>s<$9;&&lqCR+MW>ey|kn>#Xy0s}MArXP@TdgI`Z45GlmyfSG6T1&`3{ty#WMHIp@ zmuzwf^Re1>SNK@MnD|}Dn28o|N*(`Mu&UQ!WDo@g=9N`Pl3{7GR7D0+VCY;jgQ?o- zz6U*3jEUccjG1Wf@znABefN1;MFvsSapKm2u|3NwG9Uv52IiGg$3dI-bkso<7?^#^ z(tTymt-Y)m6Tb@?Gf`PqQo7#SBZDX~Ft1pBV2+BV8yQ4_fw`n?yRR(0(8pcI#P34J zOjNe3b(#lzSw#j>%8;3;Y`Za4ZH$Bh19M3^UR`o^*#{XDzY7^NQQ4zjd}b>ztH>Y< zjKMNTmHk{s2G2)i5CsP2m2xbJ`G^dnz`$Hmt|qR&w$#Cx_+7}DiOLb~@*Bz#E;5J$ z12a)MiZ1(GIf_OGQD9&uvXL5N;+bzh?rk?RhynvMQRf*aGKc~L;pNI}+D2D-yNV2= zz{swh5Y~fte&rmmkH{d3jB-7A?YvKVK7iutE;43sx^-CB#u|(aqM!qExvt&jUzfQK z#t_AIZTEt$)B3zRpGO8!U_&m~=jV0b?PbLnqPRZ){-3uFeuiuB-^|C7$RG-A$mVB2 zsvhau$n(J%qUdMXX_JW`;V+2{qQHi1{u1c;=GmKj4Kju(`b$pPYhv*G9Frg9y*4t4 z0vodVeK5j}x%ec{Ib(>T-{)H=O;k@9YP)>}85u-@4cYux(D9R%r@Icu5JeB$`QMqC zylVdw#xEZK%x|HMD0;kzLO5jeszJxE7_m-+G+`Wgg*nM%>Nl&M&-l z(k(2j$RG+jR2ILu={REb@4E%S7)L#Es?N@FpR+w5kwFyL_Wl5M40?2R&j(|O8u~rc zQSQE?1}_|Xp7*H8APVfbqu8DQ`^sHi2V;oZWJlA%9c9Zo{>2|r+^HlA;oM^bPR902 zrutaI7^3cfW1*H6cFgv^X<;f|@bE_zcHAHnMVY&=-TBqmz3uf;?!L7%cpAdI1~06C zzL!;G5Ct9F(=o=O|9!`GFovirPPKf*a~bV*9vMV|P2W56+s_*AW>+fql&prf{k)ng#sC!=OV-{%R;gfM^x134NMEZl zrpoyG78}S)m}ALzroZNWkTF%po6QYmecmZmjHxm%KY9c40d!(8rpkEy{0+pIxbW2%hu><9YbnMYpcBV1$<1@<%dZ6N*<=l}y{jK3HIxs9>~k(3#Z+DYwRe1kiwvT`-ud$zeMG7l15{+3^`nhKS;c%X zrpmbUfsI0aNa=b$7*l1$vz+ZCLu3#I_7m&&{fJh=7@*o1Q~IWsSncOeq?jt>*^~Q* z{t1WJnX^Owgn3)##9;QNx*9Vhzz2@zUzU$X=DIn^N-)|eULFgMaG`5 z_D!P?7?)2iM<2#i86(${SFUt~tEP%ERmSV`yD6PVQN~mmM-J_m#`dZX#&lwQcQR&! zDkIJx80Uck8>6-$*XR(ykSJprJR@NZDh3`f-W{E!gF;$POb-0i1kwFyL zm?duf78(0Z_?OpUWDo@gW{Dx^fdO0e+UHAOUt|yk24;zC(%Go){KySn^^qYmhyvqs znLj>wfT?=()1UJZE;5J$17rTue}Yl%QISCu7(An6HCX)dG|xF>;&&lq{@C;b>iFTB z+j{9n22sk8Sz^)#uq;vMLzhkUvAvCvP+(w|SiC81(RXhDnU_^$5CsOt{8dMi@$HSr zdRavVQDE3OZ)Xj<^HEFZd#V@{zY7_&#NOknW8i|5JXMiF6m^`qbzpd^A_Fo|U|`HI zb^QLEaUFFK1x7qs)1BWt<76M(856$?8M8!LR#Lj2s>mP;42=0@eV}#WFKUk{$UJ2O zTz9_9b-AaCF;xa;iL#Z9`+B+lhzz2@#w<~`#G6*T(eu&9NGLEcOIZIvOOzhvr5hPU zfq^mK`e3z3MFvq|@U)QSd}Z@qPZeY0cOhezC`X1j*Dm{DWDo@gW{Gn2dFH8d^ob0j zz`!g~j&Nrj^?~O+GKc~LvxJSJ?@L*oa?xsTQ%43-U|^Q8*`QihkwFv~2*=98%4)%q zm%Nok22o(}rcHgui43C1!1+64JoClebI!AML~$L3^LL%sgONcL*gUak`S|oTQ;7#T!?4cX4tqJK1B z+R4j`F+_2F&ih!FbNq`xqPRXM3gPjTUU$C9m%r?F&KRQTXNb1}+si64hyuGjJBWNd zd(ShT55_nu`Ag!7`0o7uzrXEe6&XZ<9Z%_X=Re)d$JBC;o`CJMQIe zN5d{Zp}XgOxs{6>6`09z(g6%xy_n2!V|1U?-SdVrA}X?HIolW;zmvCC)AvQo80fI| zPP;y1oc?;=nwnlDEm4s@%h|^Gue{XLEpM10AGTt#@7h`<$-2g|lN?!AGHfow37U4c zd`VX_WSl>0i{gOh6w{GnkPlnEwCl4}?Jd6^vD?mIL{#}*=p)-0^|zzV@-BU(d^_4~ zxGbx`9c`ySqsNo7>5x;!cz?G*s>(63JWq?$pA4@uA}X@mXU;6EzqxE@Yhz!bY&uGY z-D9Eewd}#=*FDm`Jd|B6g09jTtqEEM-O@Feds`4JPS$d_fm+v8) zov1la4Aa3=#nE$1*>u$3nzXaErPa^3CV95DWR$0FQJc|PCfjt>-?_8%)Nu@^Y>fIl zcb4;VF5x?OoSo~t0M;k0?Ov+mitPfRM|Iu>FqGASv90Z1nyifaEyHCduv_n`xf`YwPmh=LCD^)E|hRo?}$6Q+@2{{2p;^!P1&mnh13-Q4P< zz6)SFBE$Uqopji~fiZ}J4)feoM|~Hd&M^NzbfB#2y8y-@3OdYl4;^6CcLC}Q_)hrh zX}h(=Z{fQ{QO0}ER#x~Ie=&wKUs*NJJ$qDr7r=T{)Pb>tZ=bq=U7tT1*kL3*WW2sjH#yTa@_^!#9&O7VV-+3>bn5- zRAJP%cWco~>bn5OAPV|y7XUiIuo|~IXADqn4DrvDCw|))DW=LWUqAB^8H}ki%yUmh zeHWmf5A&n2*VcCdj6oFinXjKZVyYMeRAfZ!RZh^=b^+=-%v;Y?)pr4mK@{}ST1I-> z`v+ryiVRw{bp~Uq4D;MG=k;BHdaB^#=-g}hE$AQ$GA-wNsu)va1Pi%6=d_)xjA-w+ zGZ<54nCG53ukQj_&SO5z=fE07Zt#ci@>`IJf^5Ei=zv{v$okb?0Mii}=IaLoeXza@ zP-mF0pA1WrrHV1tRGF`zIgbp+R2k;$=hz+@jOoO%vr*Nt#QgX+N12D-W(JJG_S*wh zMnqNFb{eYfH8;y!~FX! z-TE$oF^B>KvxJ?}Lq6)e0LCB+4D;_(N321XdqhDttN-#;R`p!~)4}h8Vg7yUc%!xp zU<{&^q5geZuRpBq0whL4fnolAGU~ek#vlp|^Y4>U-vuxRQDE3OkDO!Nt?vTV8Rp-o zj`}WuF^Hm$@@%az+_yyS5e3=&`_xh21uz{%fnlC|=A$^gx(iTeV3sJ)*4B3cj6oE1 z*e(E5726fHM-*i9kuz17)OG<(2fqu3`S+>gq}nckF^E!z`uEuq>$?Dnkx*b@mavnu zsYkizj_Hjk$mZXtj+pbvAPNlgM$@LQ?*iDE7#Zf@r;hqAfH8=I4)gDmG5_i6E`TwJ z0>k|KWNdq6br--GM1f)ceK0!j0vLlRFwDPC9kHxfCJ_ahb0Vs_oK79c7T>xVc1s&#}VLq1Eb^+=P_ZCm`S+=#z6)RsqM*Zk{icIuYnCNrh^qc7ruABKfU>*ur>R9| zcj`}fd2V)knrkB?qN?l_yMGh|F;#tb^PY_Q&HFmT?$n=_QdPfsZw#WK&+gY#NB!n~ zonbfcsUzl`-@DsKKLzsmnh2jpTiRn^_%ymBQosfJ@Zk&d2bA&pu=va8+OFNaw|*WOcE7$8gE3VdcE7$8gE3Wx-LEI(|7KNh z-q%xQx8=#G-@LCg?1ucp4n2zBLaK;@Z1?M_W2f59d(#ma&*;s2GGZ%XOjU>7mM7!U z+RgjA4%{o8_^(d+;J2WID9Codo;nVHuzK^}bVP>TmM5cr^S;i|dxg(+N)^9_ln@2k z?$<*HT6_KGz3GSy$mRLn`px?~1GfY_mleN-ln@2k?$Dz-cl8H;Fe%H`qXdU z8-pn5v-|bb@k;1Xi~%Y#a9^=Jb-!{}_2zwDhuxN^j{42}I>T=5bs9zaEu@Ml$acS; zI%4TErpmDU^_>`usWR+-eJ2KEstmhdPfI4IiZPuSolpG6Im&Lu+w5a^#yibw5mjZ| ziC^5jf90a;&3l^%BinA?a~`bUyf+3>$dlcvXU^+4?~Oqe7dC0zyf+3>VAxG|mTvv#eVt)<>ZzlC^WGRlK?i1{@|@)zUDccS#vlp| zyHihVDYh%7H=-b8F4^P|=HupHS8v{%4t^I5yHigccPy;lyf+3>VA!2{GGeNzJ)$7% zTrz{Hs^7df9sDjBcBh^?>NoF=K@@eAXM}~}-Y9C1D9CoFo;vC`?@b3$VA$Pv=A(Y| zzRs{a_0%Dy>*vV$Eqs?K$abe5jOyATGKc~LGsB|kNEH~zo?pFrZ>fq5yHn3peQ%fQ z&3j`I1s!`py&RQreByf+3>&|$absiS`LzRs{a^~^^sD}D>#C5m#nKCj=rHyx2-cj~F5 ze)HZKL_vq$mS;ZdH}C5VyHnrElHs@TU7{$PzXWw&zj<#uBE#;~Q^&6w)tmRmAPPF{ zwme!QYOsFu-t3*ousikC5$l8B!gq!j{3JB>Tb&qe^nQxA}NGQx5oCw{x^#BW4Jc6pZ97)MUHsCAzFVj51X#?uM$6amAH z@zkV?T2Iaf!}gu<4qQ8XmhMOKeYh-3zc{65Qp@x0Dsj&Ga(=mO^HHw3eIzV+icJRRF%JWUf)Ex&lpIc-)TviGhn!|vK zY|5r%&!Zo1-M{6Ls^d!o1~yke-E>TPbwKkFDL3T9Wu=e-9Udd7$fj&MFlIrr(%n$& z!|Gte=Ee6cPW55o?TmiR|RJk7_k5A|;@pJDm9{pbCgzyF%$!)2vR zdF8IIKM4amJVx>n*_5;F-68$+FAtig`S|Jv3wxitf0JgPK0j)1`QHV-kN;fcPcJQH z3D2^wPxjBB>T8UMifosKon>o&{^b0Zx6EuHc~9KGu=mt$Hq-C!^2dd}yR6()^?A7J zc;gEv=imK~F*>5;yB@AOq%MjZ-d{&=T3G4!_ddbgGQ5wJq0R<{m2s9KrivV`1u{r>e>Jd##l;9#0pZ?94 zk3&A71OMU=D8^J7KOWn^nVm$&wDbR?cdCJ6OqFr)>iw;+$d|i|r>^>m-dzHUF;&L) zPxsTFRxe$~R2frm?Pq;nbs!J;Q&ftnGHyPvpN<&7br*kpbcUA|W2%g6PU_bjaRqbU zb^5+uAB?Fo_S~nRjdrR7n(zk{W2%gvZRNM6Wvm3QyZG^ftJ7}b`@m>T0f8y~Z5fu!o&ADg!$^HF7R6kX-&zRe$x?4*M+)IrA1^4o`7b#-De zrpg#}R^R5ty*e=%Q)MiXbCydF@5EqCmC@VXx4HAT!H|<@#SJ%ZtZyL!#h5DN%DH`; zgMI{toa89ZId(0*&j}P`s*I^~qz0E!$M#3Rtv&!nrI;!MUs`!{r+hG`%0O!W?>;i5 zNBOwRm?{G$GV56~P~Z3iiZN9NO8wC{J24njWuRuCUE5~P_A!w$RR&tmw>Ry?U`&;P z7P@HbP7KCW8QO0?O~#Q|+nbp{F{a8u-@JbxGQN1Ky-fuaW2y}F{}o>&BaS7EsWLFe ztoki7;&{cFDg)!#=guHw*|neb@rp532FA(@7n2dkUB*-y7>}R3gbZsV)=C&tWnj!7 za19xw4t!hhr2@s6Dg!glh+Dv@j){z^GB9`b>7|Yf$L{6xAY-Zw%#T+k8?L=2GN#Iy z`dHDdlnht~oBowK|JUWcJ~A+-%79(+ zn`rTY;?!6A_|P>x(5cU@85slykmV31%|I)HRn71c2Gwh zM1c|4wcW+qvrp`(gD5b*DZe3KT73)FZ*|l`6c}s1H85Cx3(wf0qYk3LI97fq(yTtT z-G#T_+_46U0^)NNK*S@st z2X6a72ko}VID3yl$?8M9dV7nje1wY(qM&2?0fUm&2gcQxJlT;!6d2z=d{D6Zh7Y{b z$Hb_EC@|hXZcwuNpyR3YZtTb)3XBI%8kDR)*l>fJYq|{=br1!{izg3CRv*Upn;y$L zmK9N8Or0Y&=vLpWf4#e7&WWOq(&{_wALTkKrV2WMVm?Z%Z-dkK?U-}q11K<13TE}8 ztfv3?vu&-Nbxsr*DCyGbYhK%IYwctZ1qN!fwEEWm;i8T@hynvGrnA)-b50Z(XqBba zcif8YJEn>#Fto3@)pz2Y?{`cUQDC4ymR8@W@3r@H=A0-n(C165Z@mrL#}YD#0t4ep zY4x?f-acNDK@=DmyUglC4LRx7Q(yRU1X2bn6Oz`&f?+3Jfrh|*NG zS$!YtKQ;8)(r$|k%+zM}As@g0;{KrzmJFhx1J;09ePH~2$blVo5Cz6?u{cVr@A7q8 zH_3!(KADu>h=L5OrnLI*xNon}+RIcCrEIazN~^E`zyYC0l?>QdK!H(OeMrp?7cOpH z{_ctD7md~nZ6Ek|T?WA!_?E{ADzYgnArnt(4?L;()`~qxsdZ;*AElNh!iNt}vQorb z+XHWH6&2Z(vuwtDC+7Q|w^;q6(VO|5o`tfy;R znq|9+kN3$z(+Z@D>nNn1D_5mu{30lr7%YH+ zs{60NkUf@$?6GL+qK#q|7uhCTIPh8a$X?4^gU>%+8SJSjY4&r-98_Gyamfd;e0mbfHt)Vr@m@3=9q>R9~^x!4k}y5t8z?C{XFdnmwQm{Z1aS;4(vOpF)@xGW5d`UM~1ZTT$px4S*qf= zV&SGElh*#<1DCf@CeiYy-HvdVmGbX%k1zHbhvxtJf-yRxBHR1N>0dh_KYi>P+OCf88qr); zd`M{R7xy30>~osQ47Z#gb=U#^sqvz77u;by4mtR;}W%Vv-=T02b?z?Xy zd$>}_h^WYh>}+M6u-j{`4emKqa~^%6?r#+xE-T}e&%f4M|L#MzbUg;CN@r$N2hYza zL;88ae$G)8D0*0sT9=g}{k&j5_ZUG%Hf1Gb$-dIo&fN@rm-`fuJzOctzA7RLsUixp zv$G3!d$_Ur1Uc&?e_P(Vp!e@H%=UqWw9{0xeO%VIdzvtYC5FdH8;xw2z3pE4^O>!F z(xZ?nt{{;TpYt?o=NUyD;BAc@I!Is!?+M^yivD^BcXn$%+xAjL!yN9z6 zI-?^hvOOQOzj{D%^u#qZRc>ud+S#L!KM&V@kbxMYkSC%bGh7MTb$^(bKeq2(Jz&IL zWbO|m+-0S#C+p^?#@yY5Z+T3G%`cgb_Vu~#zGz9Ooge7n4vjI|*XOoB1QabjuqkKR zFTe6y)J6QrFe$PBlfr}f+lW)<|2b()T2zOa2$B*h?eCFfR zw6%Loh0QOS4q2tk!{Ub6wMo^LMviA?M;d0t=92t;8 zo*Y3wTt;FtGODP^rkrKlA33zR=GiGa?(VeSe7C9B+;x8MHCvkPi z1p58ql-~7wH`n_3>?5c2?$zg$S|2W}4moF8$T>@8c#M22vRzgk__oXjIp+_aBSRf{ zpAgx@L2yPyp>BwR>}+MU`v6AkX*{5w>mF^px}w8nWwiSMO4O$>DcO{jkZtnk9f~i? zd1tJ=o*Fr}Ic-Nde<9zUdC=JA{hOI@iLx<%`llU=$AnQuMYhXIN&Q?$AM{#1BPcq! zV!@X@Tp6jK>j*~_a!wRvhFhwVKT#QzULB=pHi268?oqb)FFIUSO7bUasys$ekxkj> zL2Zec)!241lMR|>{lmkxU8Q+Y868p5mOR|s)m9r$D^?rcU+ZIsGsiZsTGi@<-k~=weSsT2#S%0mMh>C2Nv(d6H?~(O6sD5%;(i>-Fmo*=e;W3il$aY!tan)aTD1MQR zR~=t`VqWj$EycGWF{fWUuXoe^&ClTBs$*AKn_nbrbfl^yDza4vkcWyNZZGk}q5Z(} z!pm%IJuaw0pSbLp&1& zJrgJs^~1${(8X1M9#&Lv`S|D)W&up1lsp zF_PoP2-;{oPt6goJ|@bolpMEGki&?IY|2@-_K#+^PLmr1C^f8?=nJ2)cX#jDO>I5s zvgYF#-EF5E zwEQOVejw-W*^+YO%!#t{a1gTZtTQctMm#KtAu6&VGh7LocqR(^GNNtB^CkF_hbx5) z#1Mt=5(SyzrsFm)gWxxZF+`UWDi%$@Af)5zhb7`0SPF4mng{2Rz~u- zx4>vSzsobb63$b)ma61$Z)w^CDzYgXWBs#^&rhAZT=U_cc=;|@MbypH>RBd!>RkNP znh&C&k8H>cHyz@|X^0o6&{XlXs_5WpQ|RDXRbz;!s3D#roehYJY{(2(Uw9$DaP8;b zYo(1Y-C>@LE7s3l*0w9Y@Irjy%J3Lzqmk{hx7}ogYgu_sN!np~>nV7VJzO(F269Lg z(oPg)hFi{$nX`J=FR=zenTU@ScYA>1Z61WXtQ0b;sK};lI@v|1Oa zOK&)(ciPQz2TSVqh+m`J>^_#uTIXPVE-^et>Nc`n_Bv1fT>Btu4X3}567*U<*CnZS zS@V(lx%NSi5maPTRzjBgpz1)+!RasP@SZAcmz9$Gpz81#K}9xY(~fiMiCk%L1 z^gf2j9O79%^&Vw?^ApK1r3!nh`RpsK})e#vUlXQ^nUs4@N|9{>amk)Y;2d$5rKenaU2U_KC*R`>PGVob8oOtAJG`seDX!h2g8w;Ec=---n?{i18s?@$cF6U%6Mwrk;NvTvlA&xw;0!4`bYcj z+&<%)yIyWG!+xwu)nvYZE1nUJj!76_qBk7H7mpvax|KZT$hhMgx29_dHr6;S> z`4WcX%kn#Mi4jrAxuZlT+ZfMWHnXv(kGmtoxVu#tcTG0NmoAvu_?wTrCF=V_O18_{ z-w!>Y_^+IJ0r%a5=Jg)-d-IXm%EEkP9;AByTvi>)->wXg5maQmtU7MG_pY8Uv8|8~^k?pWU?-Mm?p#(Kk>N4&t;lv+ zb;wRb&b{yve{l1P@mo=|u-+bVSK_ zJzRC5jGpMeB+;XckY+;qs;o?|w^cZq^NM~Up=O8MUSBlC$< zA8wH`tJ{3jVBC4BofoBSI`$uPWIlC2@hPV75{2)Q?XpttkrmOh#_GEAy8V>l&Hd-u zJUDgEaJ>@+-3&J!eV>@0zkcItU5FtH`Wz*)hbv|K&p+I_L~;+t@w;x-eDX(T!~Nm? zEt|*u%xpNyrsIt%4>xwh858*yW2$Wb65ExIC1@oa6VWnW{DF;$9v<73GCHDC8&kHn zD_PO!;sfYG`hN14g}u8r#D|ONVBy(Ty=mUJ^*EOL`AmhNUJ;TAAYJ(zJ)cQ z`bY)kvg(Koj}cU4yR15-M-|eeH0M~EFo$u@@NkxuGdiN=yB@AOP)0+iom|X0%{-7J z4j=3^|Be#b!;wlBlm z@}c!X6!bYtWDi%0SWCIsSDFtWmjtCJaMSsA%BJJ_-yNF&Zl?G~E2zkJSt%RJI_LVw zWSt|76|=|rcy-(fen5W2INPb)uvNB};XmS3y@9oh#XP|VqSUy_k66m08r7QDC zi}MF#fQoFFc`jVX#OPIn1$e|e<^yn9%PO4W8!S_$^+5snt4 zd-s}=)UMPbV@#FJwvc7wXUOSih!*7ZM;5xz!NWBl+n+l(A9kgACOV=d?H;cAkhNMv z)@s^HwmWEn`+eda91m9=kmd-6XI*7ME4W{l^}V-~UNt zc#M22vRzgkDBe}3pPWybVRIBmGL-HyXASrHis9C-R+D|sFP~v^6j5l2juP3!l_FMn zAy&Bd4|=1(`23tP%|U-K+lR90`1|1g#jwG4N{=x}Rb;!Ylr-+@*sdc$TFYYOq@RJ| zrX!8JI<^yqR5?my4_C^4TOV1B&&{%&`l&H`qZ?k;v-cQd_rZnXvNBE+@5gfKxm8qT zQ_ixqy3;!M)3{Po(bwbQTIZ3`5f#~9=j~@d#)PvUW5k~0*^eY^KFB~melWa59lL(X zrfj9l5e~KX{&)L@F|nVISI6&avM~-iVtHdN9}`PdWV@Vw>C~BxZN$C;H{KG6{m#R+ zti<=)kUjeLUMn$JWRoT$i#?BPn8BtC#a58TxQ238Q)-7T+H32NBs!<&=-WAiy>(?LcR71=H;Me@;N zJ}~Ng+IJk|d1AQdqs4qoO(^Jd6iS5QO5x5ZPu2kP!Bbi&L(0aGeVjt}akK^*15{+Ytds*UoY}fohIzOFwQ15{+YtdvL3nVVnx%m~%t)OIv@ucI`;tqo-^-$bb&U zRN4L|r98aN8pTq%X$llAGO#fNO!&3gaFk8Q2EynoC%vnv$aYyN;<+o}xq}Wb6VZX4 zA9(H%PT6#j0UeB~vi(a+c~LBkTMx6-RPV0X(EXIh+`OUt0~l^PlAoc0?-B)ljuP3! zm6H5Enh*9UFyO^u|DbF-lHW)BAY-5}vRzh6YqQmR{+8+-BQ?%qXi4k5o9ZLUrbFty z2d$)vifosaGN|{it^>u_0LDu*M*6&j7Q^|9;ie=$KifqUpu9P&NYpO6i^DG8t zWS-Grxammqxwb^2@LflV?BPn0`pD^r`~IaHmcE{|HVkVV3pX9@YaByC2icI1No-?? zN4S7T7%@}ljB~#+{V=Fah8sh?&IP>Ah#@MnA$zz|lAl5A173qMH`{y;PXXVuV7Tc> zR=Cy&QTVQ-MD}o{r1hY-U5?aXV0Fj&gR<#JWuC2;9TZ_D--je`qUzzlPz)kT+`@e6xlqeAiJTd$>|$x37WS zK71ErIM4NQmmT4hO$QnHE@P@}|B_PDI!bk5^@B54U~?A{Y|5r1t)sNg83R;gyR4LS z)8$)xur8qrh|-#f)27FlWmN&!`p)x?&N|^ zuL@*_8zb!^*St86k}r{MjI>9uWyO^{zDwT%WQH3f?a^yl5rq^wN@NdLN@`a+pVP7g z1FeLWHjLx)!7;ZYqh$y7WQ6iIVjC8(4$1A1^3|JOCXGz%@>3m6EMMbvDN@;(; zWQ@JDD>`sySAUy9WO!2f{%-aC5<_8JAqujyRmaJ4YM`&29zd!FtlZH3-(0bvL>O-Q zAOkT(MK)v)S4#2$s18_n+}o!A0$*ad=}0~R9j}POcO50Nhbu+iLMr$c5>J@nySS;z zcaa!wIzA*CEa~h26G4oS4C|lqKtI+RZ~S2@N{P9&E5_ zAwy=kF_JH%h$!fAl*nWoBi#+x`rv95Y+A*T8E%YpH(cw3DClsM$R4hg+vV)3)g~8f^_iT5d&8shJ7IDjYW9Bo&9L~YBkwMKVfD$y zxgSf6rTAsBgo^AWpZ%(MCbKR6IVC^mFuQNyr*~vmCZ1?>S@&_SlvB98q2MvHcN5tz z>z-FSFRD8~e)~+mg%dkGbLX<^NasbB;W6^9$aYzE>~h6s#h#a4)jCb6dFj4d53 z@RI}bt@x{7E~}2n@EG}4WV@_7PF-hF*C&QgD!#bdO$00tMe3IO5my{S6_ULgDYLxvV-O!(-%Ik?peTNO$}6l%C(zlW*Zh z1kd=ntUA)&K4o}}>cCpIelyTUpJXTMxC^U@z6@A;+*f6|F_N9A<1SGc6CEY8hx51S zwAbQQ1wG>DJzVpVev3{S9Z`|3Wp(GrCKq>p>^F@q?%X7|F>%8%Cfci)8ZLK9 zUtC+(yV;I?CKsPw<2Q}-?huBKi2*eyviZtp8WXjD_{mJsj!}(oKzO+3BaMm5=!lAJ z%?HXiok`XD;EptA19}G`Gu-MUok`XDAPV*2D3LupyGY9Fg*ATD+Vl^bw7val1ztp6$)M&Xv;L{1bhOXHI;p^~*IU7k(>V%4EQ1@?OR# z%&@a>^>nMEThjCckJ%{*$jFAXjyncKx(buVcorFPPgzZyMO;- zt(l*hkiW9#z?%&<}*tapNEz(h2 z-xt=hY7L#<`fbg)C(hA+l!ZC+DU*0R&t)yEbbnA89wTKE*)Dro z$=Ht3r^84+#K!rQa~s=J>9(YF(`=AXOEE^Jab9Kqe$?EN(;FkU8=K#>#^j=GiHr2) z5$}AJZ5ORwdTm2`ZH`{+?NxFZ+1_?F=c!%k?HaTa-h+!Tskp3+)UK4_F{v$)?O)Qe zk{Jj0gmuQj_^R`g#Kd#+9A}E(t zN3h%T(h3ijzMv{EQV+m+p9mGM<#;;lB9YYdN(`iN|owa(K! zMLIIXRZ$#kJzRC9cZ!tJ5hdUCaMi(=lTglD&&eLNI#26p)T~%CHkQ;FTx~1LtVv_r z7=tgDzkOEw?wl}Q$(L-k-HGAjc^hL$V&GSMpb3A}5g9JKMOM?1Vwm=l!TF=cn6rMf z&vT2cf5dY8=(38a$WHb(Qr}%{yZA5qJ3p3^G)HOg3i`mFfnHnBd4(Y;ehGOp9rzc2 zF~(&3uF8^HvtDaCPcb#doCzsamXH1P7j+CJF)S-NcTmopkzr|Kswyb5|39T`ZM3e> z%B@pbnRa7DeP;C|J=M0`&L~?6E&cy5BepRw-B0wH-`f4_Ba7wPbO&0Xznx3UR&shifq+Up9jqZZ^L)OWM_`V#7sLWS9CvovTHLn$q|4QJh4twFPpv4cfx8F>GFgElMNP?1fWI(Q8dBfXNP zJt~YoKEl=Q_Jq<@#W%L>&BLsNFC(p;R7ZQO{3u^WLRaM2E9_6+9)Qenq&~~ieKqwh5e2){Q6hV|GSY85sZYkw^$3b5M4*GR60-E$ zPP+fW7@#8CY{3N+i`D+~Qr9lB!xY!yksa6Vma6tQYliq) z&Jm3vetvh&y)E1r_rH5$G2thCv&K-!hoeL$JIk)RWV2$-wO2K6k$hl9cl0x|OCtG* zyChiM?er51&$35S!F2Rou7TkB)-`4fxFA9$(jK`AS5iSn(o zB`ykW7vt`6KbcrO@ybhG2g~>yQIYL!S5x)Di{cZ#=eFChyY#~Ab9-0pA#W!vLr+aR zCX$lRy*5|oLH3U?zC5WoaMjjrmr4JKsK{>jW$by&;NtGBi`Ft}iO~bmaR*a#{>aUP zi}lA8tsjZC6j71Ab4%W6#p|?^+ARCV#GZy&Ed zH>zmO`t9K23Ypm=DzeeuzB!0KFEbA1sN*)A*P3^_Nr zFr61&^YH=UJ(&T1SLWwunQS`JSv8$&8H0R8w#(UPZ@8*8N5-qwr6rc5Pk3WVYONfv z&=Rk_^s3g*zt}AQpV*>4MhPmieZ0~-53_Uf*2eP;!De(jvA%Z~Q1s8J&BzlF$h*8d z*y6i`vxX1!^FGXNTPbK^$(hs^-@l5e$aYy7(e_z#>_ER?OB8faRzh~K{1WCJ@*8Vt z8H@ocvRzinsBC<(8Gb8H7>}(S6wY!E_BR?CZaUVM_tnS$bq8(jn2Y#}2#%63dAL$u zli##x$ZuO9C3E`>(K}Jlw{(jk;m(iArh|+sDzaV9(kfMb$nh3GW(M8cmY(Y2+H2EF zSQ#Br(w012+ZEC^`(IOvm4}EwT++_j3wh$~44L7UkM?^kX{HZse2Hvh&|8advDX5% zV)hU{i-mB?#`u|dglGTCenp8fRknXAJ8;CL;)xY!_S`8mPMl>rdeSxL2MObix6bUD zE{uqZY|M|VU0}1FrHZeSFztMA2`S;7NTe3w#`w16WBpt1(z`N5MK)v)S4wKTGIQe0 zmDyB4p(Wz|OoUT59jWbV4Kk+6_Ah1oKfR){+OWPw13QZ0tij`ZEbJX{JLbV~?m)|G zS7H2ei@wDVgb`7ZeVV+sVY4VkIQ+H$UTT^rBp)lE9vprz)nsF||6Xc|;#`7Ka5?K8 zF)82vyfeFoNUGe6BkBFdcBl5<{!6n(&fMlyx98=zafVOIH(z&A*Y~8(BPz1p?$VsU z^wOl_p?hz;?I4+J-I9^MR<@Ew&Ck2-gSqzUS0)u(uF|?~kl0rd71?h4_*|RjK|Pbo z)_@wsOvdx647ajM^PrwdC9170Nm+TgQrg$G1O4preQyu+JM~*Ew{X+3&*vU)JuL4) zASFaWhoeOH@GQMerRzbr$Rvl@G1Iqrr9@rUoJWSo2r9B&*82F3)Zm><&+OVlY`C%p z7q$8N$~s4VY$A;9q|W6uRpIq4+9TWRTvN4?SbVpMt=L+1a^cz~rnD>nks{G|hNw4qYNlIMSe8?|);7tT1xf4UeeE_I))? z)dAyWeIx6SA4(0DtBH1xhp#_0RXvl6)&OZ+>&mLg*BlZP+2#6!^^x9=*80Fp(EQzS zy#8F?E3$B_kMwr5_H&|8A7n%JaQ>dKdTaf)9?4Yf)4D&6huK zeM;|yh4N03)VY62bv$w8$l}0t=C?MK(I=uJ8*Sm2_ZmCn?{gN&2RzN(uZh1I<>9I$ z{XVBMI-(@)9Om6_YOI6rrM(L4)L8ku7o(3;I0(#StfU13waAk@5)3}WV@`4 zWG8AXfpy1s&$*(54$4Z%+TSm+6(mrR?Q(YbGb5VOA zbVNnA=i}S^zt+g_JXA&>oTu#TDVcg}-*ETUWUKS`yRRiGvRzinYI{7~I6&S?g${pL zNpee6n{Jj>L+lbQtB8thm$Q@PEcN5EHn>_^iCg+oCeb=;x5#k%`oMS2>=Apn&4!EY za&3Tig+FDL2kK%M7YaJk(Z`gcxehKwi2MY z`b9Wp(;@fhTYRsNF;%vIDf{r5Va0!sUeb6`EaWGB?z3}5Jf~mIgP3vtCX5q=v87ny zKKDuciEN(-wOw@`J+gRf?fI<-MMpV`hF{JSl#jd0SS%y;@$1fSeL-~iSSvA+4ShE5 zB2|M%7p;M}4$l8B^SSq0sq@lWS`_Rn)Zm$7k^T8MgLBLV5f#~PUuln$-38UuOj#e^d zPC|+7;YvyEN^J(T628fRmccuU3^yIAU8xSD*b>2p?BPmje@kzWzeE3d`L$KvwWMr1 zo*vl0SUiMp>6IwhiMZ7W9WEvN6Q> zn#5T~&(@HAwax$iQqRp| z@0O#b?W^hA>e9k}MAg6F6rmkk02_tu@m>be@357nm;rjm<{+o9A*Hv zU4~meWUj^hq4^*R`EZoT9DrHk|qZh=LABiR|G@X}=r3q1d?gM&IqHZ0LTt zsdDlR;ijYgZn&YK!%-rWZH)H2uj0i??^(ig!#y_j0ZF(q+V8#^3OXDmGTFvRZz1Vi zix-UeRv2#j^1UU>#*n#IUunj78G{myY?qai>RiVX)D(ZahHp}XP1$s$I?thlF+fGO z%Sz#Eh(LKMBDd+40)$gG9pV?w=@(^8mF-_rO7gdB|6uO~gX1}5hMSJ$Z`Za<6!PRK zkv&`~?Qgf4y#oeU5YR!{bfmp)U4JkJDB3|_yR4M<_e=WwJ5D%%(CEZIk9SH>;j)D$`tB#+`&BhUj z**n|xg@QrPKT=Cs3H%)sEi1+V71=H;rTq=;jeI{FGXVP_W(mAmWjfOQp{<=Lq{>ku zd$>~MMY$flD2J4Amkf+cb{pVtw^247WK>a+?XptZ?`_*&0oYUJ#4pD#%BJH#@;22y z@7gcFGX^Q-9s<}dE2VYr;>NfA&6<90`_TIVHePR4t40|ooV~d5$^V_Gbxst%>nM>u zTp8{6w#&8zd&ln*wzU$m;R@PtL}|{65*;3{I@<4457PA+7+f_XAC#5AwyWb6V}L?? z#mh$2r?OJgoBf(|ytGdr0B1F@DVvV;X1|U;i~%aLT~Io_=$l*nWoqy6^>%im_; z$N+uqzq+u_zoz7~59RLnM@QHXX7vnsYCevolh~+(HNCc19Hy*)A)EuL$B> zJ}!w4odIU>-9h}0s1{)^;nF)!%9eKy%lG^$M_kyC= z5hI?`D+9eo%BRAjrXl=k0(u)d9aaJ2Lu|NQ&L^r}!Wf|N)+9a9 zE-NLy=BOy&c>q0*KQ)j^c% zNNmU+t`vE7sNg$A@X+!7M9v1#!En<-24aZ9cO50NhbtxdGPEUfL8*R!K~!Wz_Hd=NzXMs?JKXJqj&@5X`F&Ie zQTVQ-MD}pi!IyM^;!YL5%W)7g!z~|ayiy%RMK)v)S4#5lYP-V9gulVV8iWppn~wIk z+pLw~yN(i>Y-1#QH@(GL+PFMZ0v)t!jgjnKoj-_z4o8XX;YvySwK=}U(;{HdlZJ50 zrX%gw>R7^Wu=j{cUygy`ijVu_7OofzPsJ`)IFa3{bFlc!JVp zWu*0omK9bF zrQFK(p!oW7zH>+K02s_UWQLoL=`#+<*OUE;h(f9yB{JDrHg1(gJ^O7rDc@1{ar}m~ z^yhuQ*WG*W6uS%XpX<7N@9r`=%l7*4%${X(=I0IBMUJS*_Ol;4GTguSu*UQ~CKS`f zPaS_z1#cPH>mb!%SGo15VU2yhFrnC5Zf8bRWPkAs3wl>yX16xw4%XQ{JI#D~Qhv3h zN?!y?>Gj*)k`l<{cVs^PylQKwr(c?s50w3=h>C1~he`7>{iSt^oo;!)wXvKQx!~nf zdM|j&PQLpaGBT>gQ&w4a%D>ksw*UF_t%D`!5f$0xJ2Ti*(Zkg&0lK7-nVC3c$OXTEn_?- z{Uf3x8*eX7-qKEAWLbXI^R2U_R~;a!!nZCs)6UcSZ}myq@uku4OW)LdoOaFgtw}Gh zQ>+k1L`C+1`{wz{+$>vDa(>!hRy4*+s{AdjR908+XLq}h^S1}^o|l~V&2j1%Cw@^@ zL`Alr3DH!YICEsa>d5)6yQI$1GI$=!Z|6!q$6p|q7ygbOng8;?^IC_bcE!_Fk&TvE zo{f@wcX_&ZSHv@$(K_2`?5XMA9a_8GUCMcPDWW2~-Rk?v^5kJ@Jfb4ItPiB>h`+69oj<&9A@|ktGN%347M-o7E9aJ4>D*Et zPy9u8JmZ&Tn{GP4v77Yuk#Z)ryw|*_?Uqn{RVT|9PnzG@`|y$Zby6RGe@Jo|*?#v~ zbH4NZw;JmY?2|8AYjS}R+4{$#wwDSoI#Sw|_7CLzfs@~A{C=}O`9?DO_#1}ut;qJ@ zQB)m|9=)XXmnVni56UYA@lH&9eG#|J?QJUb+8-Rdq;>Yw!}8~)bR#OV+s|KJAt(FC zzI|pF-v7iIAD#urUbDUjAa#HpW#045ctWU4P6+8;0HPurCxrO2fLJne>P$xJ21aVk zsr;Q{obt8awWx_%)cPRG3McMUA1op&vT(3aaeqNeBD6 z&L2!w+2dKj<9`&$69<+;iJdxplZw+HORd9b_oT zU%i$0?%v;TSnIpHO(-6bwu=+L7rtPq^7R9G$Bi!}XsXhyb%nfIr| zp>*Y4&Ytuxr`n=SFRToEmvfPxFg{}?^N}o>LM$1zMTv^Jjro(7_{2*+`=2{eUmbFb zMbcZopSLJjHAvMzAAYH4zn@La*ObzYsL1v+(3r!rs05$mv)~ z2}W=|;i0Men!L_*&hf)qS4n+DRAjF;OlE^^g)Jv@prrYc!WEwPsJh>GlTj>71(%$r& zBMXNTqBH#itKnVIm`ChxKIAd{I^=$itXd83CTyfnh38c zYn{X5gXIUSFQOv5Tz?=R-@JUY{6x8-`4y>;b>Cg+Zy-k-xBYy3&n0qO{no2mxIGY2 zksWPcc}eGMOIo>{oV-l(ftl>xE?X(aH+?XxU3->{C7O?yg)!vmVZ}8vb4FBTm+!M6 zAAkMwlEy**8dhM%f)`IrhrI)-=g_6a_(^i@gLfRZq_IR&HBrX)cq%=zVL#YwL}*tx z%FC3`e0qATOXga)2PM6+WyBUE=Ou)(WRvNw?Ij-(71^gr?)l~+oxnK zD*Lvi-F0X_4whF6f3xZImW*(Pe^+86yVQYvEFZY2=RA4I^LlCR<#=vuP95hZPZ;@h zY}fkO_`hfN9KGeF;tSHQd_0$!$S%ir)W=)$w$FqS(_1@8yYlm`k}C8Gj%t2GLG!VJ zym-3Cr>3`lC!=UYMRs`x7WwGO<;6wOvz_F_#|%joY(sk|wfbw#x9&W>@da58|3zA2 zL`8Nvt{@*%2F-8$^6-(xUuFJ)Wy$xb%9gQI-x}pzhb%jA4Y6L29a-!kWff789d*lE z?Ui+k=Wcwy1$);$6H+FnXJS$5%h0k~7g|=I zlM(L7r-tPxNLjh1FZn1f{YCmtRrzl1Du*p;-7YWPV!Vo|$o92?wvzj{8(XZ{W_n{^ z%pdN>3GdcQN=m;E@^So*V~c}FPjAeXoV%|_P?7EPmFDA0d6VO`mtN`_E%o82SVenz zigi(W?p0IuMLG9+shoRVPZ$vu+2y&{|3}!Fz-?7k`~OK1a7a^l8LS+Td6E<-^nH%k zN4;Tbh+;WjaY%5$G*eNAR~#};3I#YROd`-sf0oV&#P0GBRhfD^8F}O6q_8 z);_$$tQ8p(@zx^j0huF~^Z?#^y_D| zr8@uL4?ldNyyGm99VoE_^1bEe#eL46jHhGY2laSZp5a+Pz^m%Vb4Jq*k7$T&q3%KX=q0zhT>Kv7EsNd(N>q zPUwHWc0%|rIY#Bf`53zRj{1AIY@7W|o`c@X)A+jPyo&-YV;S3a%deDka+w?}Jn7H+ za~Q|9(Fi%Bal``Wqlmy?mk9isxAHXl4~!5Uj@2^x)^hNa@a5!rCys19|G`yytUjJL zvT^3CvTj~xuuN9u(F3RF@83D4iDP9NvGO$K;Nukex^4S|o@*kn+MPoh=WR1zeH_p^ zq%rqPVI85#iVToQo3|eIocb_LLNlk}L(X6(=R8NLI(Hq~`06Dg--9L%ZCpP;$d<0i z@f+-zZT83T6$Gt34Vme|$GOKJo}aQ)j|`g22aS~X{&0M_0~qRO>57nmhE|@2%=F;n z9*O3;;;;}YWYG-Sn`22hA4@xiG=BSJ@Mp3jn@hydmqtF(iM&iB{ya@N_;~Wb>Dk$L zPN{?FH*ZK|r-MVj3%)y~vGBwoTe>2@I(T|^+mtCfi%cs|LuR_{0N%N({ei1?%0Jjt z-UmN_fxTzMxA=u|JV0B9q3c$)zalNeFFqZcc`HxHeF$*1A3HR!uWk0vCdm6BzKRVo z2N0_`-bMcIs?{cr%IgP9l!9laP4rft#`kKvn~S!Iiic8NyvwI6ow^}P7-PcI*{ z#6Rt7wRO@bxvp>LUb{;#!&`aU$1;&UEw+2B^JhPnZ@pwR%APoKrs5MPL`~G+JoRf69$ukM#`F?E2pCAMpz9Nn{D7}4nYY4pH_3Ne2d%xUKcD2jB7O!@RTWilQ+)=v?&+AJN#Y3(uZ{=ybKlH9evDU~J z3TxgEUnsmeUG_yT+N<%hN3wo*C8af4>#nN#qw-`mSN|99yueSQoYG`w-xYvGx( z{Gj2DFTWCGOIPIU>y~x?ObC>UR;UxLATvGqm^h?Ie$2^-YduyRGorEP+E9=2dyZ(l zJ~y0mlNBMM$I4lGnsV^5QdWi?uq^Bp%clWoyHlmKCM!ZBwemFO;NzfEo~u7KBz&=c zO!r}pV`UEo(7V4pw9)o74oGOWTpon z@^sGebO!PCcShS+S>HW+TFqR~!*`(XG{o z8$-^#m8bnXbvRZ}eramHWA>b$^D7S++4$kGaL#!KaSSb8k&EQJ*Tn~h9ad?D<3=mU zObDl6}i*9K1vZ`8gM+LCu}9Nu_qTJT}AA|y}}(beo7svK zxnARnlrYB@V@EF#V)T2f+6PIW!CQIS*05;HAai$lF?Xl)YMejyBZ7XUP~zgq_}IWR z2R09u(GPFsXBYf@f~<79{f_$SvJdD{at~V1QoP5WC1SbDyU&@NkJ?(^=)WL+(X*u$ z^;VvaeNowOIS@d;fSyn$Ep`*XFvK(_jX(j zcvI~6gQDG)y&>6$vvfsB;JO-LSa}*U(}Ry`zn+{u{LR%`55CdEs^_!fW8ZM?nyknb zLhLISPAH@V$H)07FPnx ztc=X#oN-8VuW!lwV4RhiTZ%~@=W%d!vA)>CxoB@< zWo@Do2S_V=hOB4!tBh=0J181Y$2L(*C1ccIp0=R*iHv?&FGFhRBfMF^L~H(I>6a`% zc|r4Zxk|j1r(?f_@3mi($i~lKGhh2~Xk~`B$FT*DGg-RcgZl_EWZ`@rTjHn_?pj(w zW_q~K_wGF*yMMbjeR5iFTkhIHZwzVdwI=i#EM1ZBZaN`*Wn_qsPb=h0E67X_K8i6* ztp{2ezJH)aWxv$Y6)DCnwH~xWzO;hObeR*DJL>1MXX^jR)gJGt@_Jg|JFnGN%v{?X zEBBzRLellSTy^W|cn{*7U%2Fs`q?s0{S6t@$CFIQrsXQ}@BML{8pI%ptNyg~_MZ?R z-pbQ{JRlsayMH31!3Ry(z7Kn3s4aRK!%q(9!(>IqESl2XOo-IV)0Bgc;+*TV7H8_I zNuh1W8C?F&@cb}Yk>Z@|v(_}lRYICM1t0QM%lRBkM<(Jku^87-gan?0c#DG->O>kc z(}NH8$etlU5OIM_Eh>Xr#A1+vV8uB|g7PJ!5L#|7oT5FCT52?{ZCrl*`=j+Lp%wC_6=bFd zA2+|>t^HhycmmC7&knOO8SK^9?e$P6OIL)1_Dc#YPeV3ZiM8)`>pZXUVHznrM{#^k zR;o^v3L0AZd?7PE5XG3j_OCFKviEtRO|(9h70&JA6T+rD zkeMEQ$S7ydanX;b^|Sepr@zzB=G9DAgaq<3jg-XGl!Ff$HK@x7iP;`yOI9=W~Ej@4<;wpstd(iJJ5AL@fv z$d^`-nI3#Bx_wH$chTRSHfxynabblX62~k}R%DMGr_?Vj`n#r)+IpID@KKB>YCY@; zDFl0DI98UfNHLzM^`I3>MJvcm4?cLcL&FhaHhR-T4zv=YUPiI$4J za9G(Wm-sWeM5I=prfl`dc%Lu1rgtp+L%r=9vvk%&iEzaQEBK=o?{>*E{;! zakF$qdTrg7f2MypRExA!0AC63z+R?6mkWS&@53 zw`F^5G9g1=rV%SoQw~1lX;8=000deY&Ksb&%(-n#SLD;RgX?c!8J-`s@-$?o2Opf_ z#W6Xidz+gR?(OD;3t15o$ZPkPqm`#An-9$0X+6fi*T>#Dj_A|Z-bE~(K9oSIXa#?? zg3R>bqgV;3KCniRYsc_r$~9${t_TVEpcV3^6=bFdAH@uo`rxb#Xv|viUER_ZA>pl% zFRdUOtwiyDuB{Kf!wPTPn5RHaCM!|ApKGa1lhlbhg?jL98~NH3Qiu>2rFh5Tb5{`( z@J=gFLuPvLAw5g1XV7~P>lSzq@=X{yS-K)5prIA=r4?kR2Oq`y60JFACwb1S5`M$Xrn_b4A)-(F*y}3Nq7!kMbBmZ@cesr^YdWB3%&@@J=h_i+dg;2#}c` ze3aMX^s#=M^>HPqL4%5PMapY&LJt}F(h9QCO32EZjB9cD<^?NjImL&`B_g%*H04ka ze-Hj|-dEcX(DsHcK1^0b-h^|^D5h4PrW|~9KYl>I^o{+LuqUMCyYEeX?K-w}MIJw9 zK)&~?5M`5A@JB1iOb6_FltQ)b-t9;6lWr4?kR2Os6N&i&k4=P(|C(w5)o%WIvZ)p;jInsV?_ zybm^!7w#g?*W#(qb(SV8QoIi~QC`y|G;<0*%Io2z_iF3mdb{;-g{(+pPLA z9DJ0oD_Ngb^mqAGL;YUwDAE-vUsvJDi8|2=ve8PE*RaHAIN!G6qx^I(uVD#q^vIW1 zkd0O!+rDkd0O!#kHHEyy#hQJ=_LQ^wD)7NH57nm4_YB#(vX=hUmS+rRqC?4itdAT%C|!V zqxc=1#5J(JU@&WWi|m8-@6XPz%la$b2P=Fy}JMGW?jCj`lk5U zZfwWWo4ypj+K90}<~H_j>sY$ve8#`}Lf_fV?@t?+-6rb*yp^Z@cYd|n{jvkt_wSZj zQTciA{_8xGwNxj`xY8an^9sT=GTY~AlXVsumj2zqM$hC(bMym8-O>TnWHhRd(I{wW zg>yhF$V|6As&ro&>^{RaH}*Zal-<&`9zPGeS}D=eO3H5OR*&+0RJ@k(wB%Z~c$J_Y z#j{rLC|dbz2{O}RU#oEh5*pk&TytgbPI5#nT?tvSRmX}g94lIR8Zy%rsFmjp!Z<#x zPTQiNjRBafNO|5MT5)_IH09u<{Lb0iy>o`A0ZLnb8kFBTqZP(W_{K^(`1r-y-8=7+ zbw$VvvtgXa(K$Am(?Pn)iky0W_s*XSf%2Lrp_xxNpm`1ETO*!}|zvIL)5}ao~+smUL<#(K5g|gEMveCgwc>mCP;H`n*d0Fp8 zN@%hY#rucW!!%mkNHZt-{$u;L{H0zpRw6&YdllkQ>3*Qn8knqY$wxA-bY#Ckm-zLvjaJB)R*;!qtL-G;KrX^Jkn(F8%}8qNze}#2EUrW=7m8VTsA9AL(4ycDl?_4)V_8XY1`xTAfa|?~0qv;Px zx<=Be5Z=nu>o(V%kaOxIXi|SYUl`u#b9#uUUnZzYi8BX{2oZ2AKB!5Ft4|wYv2n{j zs7Z+(7LTx<7s~`SDe>gLMufc&E2W|)CC2YL(&D6+eNdAU2g>(98Yj8pgPN3>zhq?C z2dzR-lM*Y|j12o2RS0TQ;-z7u8V_zJPoD}wO-f8TdQ@Ytp{)pNQexZ{qiiRd^0A^O zB?dk)s)2oMYPC;4ot+)Me8W9ZK3Gwc5^G)_r8`lDdR%htCJ&IHCM9Nc8yzC~ieX3g z_XB#F4{B0k;SQrU5`6H1zxct5nv@t^AFXl3Wu2weW6$5-X{DkjC3+q@y7AuTvKmHy z9oa>P-mn{eP?HklaR*<7wQBHjNXJv=V|;NxgYfs`?em5=bk7F$vDrrlS#pQEesfUyu#NZQ0>wW>j2ma#cH6h~+(&g}TJ9bIZt0>>)s^^5ysL7tlrYElA6UH5FLT#3}A1g=oscTMVB zK33GE1nvUt&W0n@k9~3oB|;0xjQD+lGC~I<-jiAp)T9KS64)iE>Vuk;z>^63RaK8JH7S9oo$fzcsRuPFfhQ{VaIBV!nv}p( z8#_H#32IUTJp=CNRX)1Zqy%~&*cG$tgPN2;i;Dd~s{}PEffg0J`2^y%AH@5Env_6` z8uq)x)qc|B+gQs$O-h6noAd!s_ysGh5e@rV@|h9R!~S}(!xLwl`y&y1ecT@<5Rz_B z9C@l)>r=5R`lZ-ChWoLU&j&S@Z$V&hC+xZsN+nNct2s3(;Un;OWYPn$Qc;ri zsuI+sgx^c3?1P$=;0^;-AJn9T?P5@=2Q?{yogH-d^a?>uN?^Ae?#f=S2Q?|d9XP7> zpe7~!-W+8g)T9J=)T;WRCMB?UP3*%-TVmHPH7Viuo9M{){?#^ie^8SWI`7=F4@XUv zV6SgCxuY)J_{Kd^BeN=cdcKvgeV%In7GlijceOs8_C*VVR>&#tWAd>O2mNx3ajksN z3WVRsq$9g?%H#HQ_C9E(r9D6Hk=v1tI^epN1ov&DkI?JGJveLe)pkBoAFyIQLaz_R z$q&!9^Wh2916Ck#6hf~L#1EEV*wP2BK;TG+ULS}(KK^=3AGA^*+-+A5YDf0TlpD%V z1D=n<3Pjw653T6&2VT|kSkVdu+T+;ko3z&}*24Lk(+Y&P$JXn+_Luv$EETOlpgoSg zz8ikmZtqdv2dzN(U3)sRsi)3sSr1x);Ql|j{yMU=R!?hL4_blX4w-?tW$SJ&eb5R7 z+T+;kd-mYbE$cxm5Vjkbma6vHsFprx1p@7H==Gr-+u0ZCV~HT7f`& z9D98y{d2>X$BI@U{4Qf1*>x}1Th@bCAp9<49ocq&xVNPbT7f`&%w3K zD-dCYQ0rb_JXW*{1V;^U&T(Y%3mQ+vx9#ydo``XV^%8}Z=A`3{fdCbLUZb)n5UKK( zRz6nWJAuri*NEaj9o}d*7zhhzfd{E=_g?#Vt2X`?R?g?6fz)rDUjh+XM z&lmFWYX`fxJJcUPpO?3Sj9qHO`(WB$QIitim^!!^Z(kolE70Sv=-=fCebB(l6Q{Qi zE=K6ntAu%hpcUkS5A^SXpe7}5Y#UsR>8JJZ1g${F9lBG38d!Ov&zeDQ79gCBa6UXi zE6{!y*Yb5m4Xixz(egoVEW`Wo1g${(T|>)0sDYIyPF*sn7-30k?g?6fwp~i4KxH4) zz{(Ss{dACS7ka6SUHLoVaxt#Na}s^(gX%Jn-T{ z#k@hK=8m8hh-qhR-3397&lmC|GY54s)8GkOf$+Pymd^(@K3~Y=&mUCGO{Dek1g!!Q z_MFAJEBoMnvOZt>3-7h*b>#`vgYUKQ9p8lgRYHx=7c!1?d=u`9pcM!l!$72^qQ>V7 z8COhvclJI!K`RirdRi0I_V1 z2BK1`LgVv=jCLi?+$R|Ks<zvKcJz!xOXujowFVf*M$P0zIeJb6%dH6=?LYS`*a3$`j}T#_F3G`%J&#QTYR-n;GZB0-ED^H+D-g+j^6SM-2zIGhN@inIgR-V9{MeDgcPtXc9 z-WggG)TmXFFJ!#$w4Uwr1g${e-KRA{jn5Y{-rHKw4|;-DAn*>?nxMw#3mNa9acs#S zT~E*o1l~nk6V&*8A>%zdjz)POo}d*7yi>O(sPXwi#&|&MSxZmQ3IxUmS`*axd?908 zBhGXBdU%3XATY+!nxMw#3mGFiag5CS@C2^xwYKYyoPklSxB__shLsZ8( zQV-d|XJ3q}jeTcqcFV-(!~ZRjZoQSK5g%^(0g{uB!>t_9Ejw3s4t-wM>0^Jju+ZQ?Oeyqf~^H!e5YRb4<^IvYB-<9tM1KCe2}InxaA&!egtl}&R_}jp zdVcA51JTk-j)JA@v6}Po73~KP9Ge{=R|(=ha<_Neqe$|N`xv1fvI}^7u?u+atvrp0 zlACqojv<{}&947OcGdlbTcUgO1w)}zOtmbGvFsKh+SRq|1>%c*F5Y)ebmV|D-Um$kPSL`y4As}JN|L=n`L zznaK9acwUt+UDiYDE-5T}f^lvGO!!1!|00gM2N1fe`#wA3iKy5faeQ%F~dU z9(+rDkc|#bN?-lyof;EMmM4^Nnt(45n$5~dL=Pw*Ro^%G_# zG-rXTglS;KuM$M&R|V@Q%t{E(0#ymq_#^>j|?Gg0nzXAExp7ip(z;)=!v~ z5S#_75~lI_ip*~v)=!v~5S#_7*4#8cUy=EBMAe5U%u0wjSLEMVaP6AL=PNS5r>Oey zgjor}Ih`tD8lSJo`~qYBgjor}S)eLm8lSJop{3^cAK>)oH3{LrgDkhyrb!5X7g9Zg zo-iw+EmmM@?K#eeX+-vfk0Mwum1z>f$N25YzW9%S>B<`TFik=rx`Tf2E{CY>!!!vI zck{q?wbx7k)|EBzVVZ=n9Um$_Op_4&h6d-YTq;kPmC%0oh>mReyH{DwO(RyG@caC9 zWZTy+z7O6|57Q(BA}=5|1kB2%GEGA8%bq~oKVTzW?*kv6Fe^z%LRDC~ z(}K!Z-GIs}k^`nuOr@U+X8#N@yGr-Q!YA_0nm7wsUS8vGN4J7z;k$ zySHK2t|!b&Xq+eA*HnFg)1TLf>BZlQ;WtxQGS82$(BYXRX{j46IFe{<$+xLnO z(})OBUYa9QM1d0X%d28@P$&1o%{_el_$(fXp5Mq^#G?o zuMyc3K9*j&RHjJ?ekF*UyC%#^XdiE>BO89w{nlQYMyx!+XiZfgrb!4N@3mYi(gjoq~(P=9+H;q_%0{t$HPhaW1nkFH9tgv!DOp_4&qOw{KPnea^j7=7Zez!kv z?UiZ7$`g$6SoL9=gg{?gBYaklm1zI`4Z){h)X%YhO47x*R#fNDUBFr15 z-=(5Q=HH4ePQRpc-CFgH#anqgzDMEySlIlHu04kj%S&WWBR+>lP1kx{{N~0j39}L! z(Ry@G6D8(+>1TEZy$`bz!pGR^$Tsf&p&eaMn3WJdj#v3g^n_Unff&z-IwplmS_V&; zl@KwieEPQS39}M{Yy86b_|qR3SBTW+epI5r$(W?>KhOP2=+w+3#4`k$vr)v#cJTFe@Rr4?*>Oc*3lN@Vgb1YwiiN z5`t?LgO43feBI86X?(sSBWkwBTdN!^PneYuamSGKD)EF_!AHwgleh;>JF9kFIHaz9QqCw|>X*gjosUXGXjBVOB!mnvUy5e|hs` zb_Px3^A*`oDV$6ft&JXX~Bd_}hXG^)qS5oRSs+z}xym3jA8 zBICJIUB!xHWtxPD`!u9JJYiNs;|Zrx)3qKyJ}Zvmc*3lNz*D=r?iHmnjn7wP#@r59 z3I6IYAD>C|}y538V)z5Bu-0oUWn3WJdW@fn_o-ivR zV$96-mCCGyU?jfkUF&_Al@LB&U)QBFDTZwFMdX?+Sm&&Y!U`(Fs8T5o% z3Bh&GRl+nrUy&KbXZ?g(3Bh&GRl+nrUy&L2XZ?g(3Bh&GRl+nrUy&IpX#Ip)3Bh&G zRl+nrUy&JGX#Ip)3Bh&GRl+nrUy&J&X#Ip)3Bh&GRl+nrUy&KVX#Ip)foQp&8ZDe@ ze7+(x;!)LyC(KF+u9U74rt$fT%os`4``i;|B?MPWSACeq=PNR!Dy^R|D}MDVq|@3mX^TJu9s8l{H>{ zww+b19mZO<*WTGQAN9b>`cbuAGH>N+?0Eg=<&u-owc4)t_s^dlmDkUawYB5s&s@6K zkAe^En0?%@gBAA0Ui9^lF6&+&?4R$kV_xqjE6==@rx%W!CH0_>uibM;^YTU8=Euoe zXN#vTYc`KKc=pn>`wi4}w&lp&3x0V=^VyrW&3}v7>dwm3mtHe_=|}B>uGKaeJT}{H zv$>t8%C6IKrS;r~tqT@^wi;X4iyk^?Y^TdHFw_1({Y6{R?5D7?M~U#t5$Wc z79U3?E0`yRv!qs!g-M$iB$fWBFfGWbL4w zb01T<&y%y3&e%1i*J}NLwzB!++nZ)}IfLHH)8%NohuycbzRMe%W@BYt_zhF%6h7uQ zj{n@85Zzen@xlRf3Lhv{uV1XJ4_UowHcD1BdMi(lA3kU4NgsxljkqBjG(Sa3g_2x% z#SVHcp@er05n1YiQgPS$T5X2ZW6c|z=EHi1deF+#sCl19LQb{X$z$^R|1IgCe_hV` zMUvOI-U%A)O|22;#mA6;Ua<7OgMz zoVW7ygTIi~_}E*)>aj**x377BqfT8HEZ=i=yG3S;rR;vZ#70}R9;=18O$cx0X~;$^ zQ5-8JP(zHQzzQ|zn2gCv6vs+SWt!sXl4ed4;s3@vny1{cZ9YfV(8m_8yx)MeiCXjh z|L2ZohqQ^O$+5C_P&A&7Z6b~?e&t;e!`@D)#}~HlZM$=sTq05{?iq!2$_muVJ6q#R zov?16dm?F1ZC#PBi0sbgcD4@tDoWOQxOSH@&doIbEVL)sGi`b27umXj-& z;}a9GD_E^8V(4+g%$ph1E)n4YpS|ue_jmA}?$VdFX^vr@;u*kcJr^YgUgoUBkso%+ID_76IcAB=Ht50ZhqzTVcD6V z*(I|z|56f9+YT;z?S3pJdTp;!Sx+H+UiS5XSjF!R;G;8}*z6_W8|)@+iMR5!_g$+k zYIHt)^8by^a_KWHe!fHQRQYy6u7-E-=~((id-#q4={xSpZyH{>uJhs3-;?j+~THG*3@oTmSX8-SVxZ=GHfmeDST_&R@r~UA~);Z}5(OdO-2Sx#H5b_3yWJ%V+f1 zCG%FEj{OIe>ZTW$*Kd_8aZmAKSEBfcSK`7(ymmnxxng?qIpvV+%J|cR}FSd9h8z{UP6fWX1O%xwV6G20d+UqTc6M{dHir*YpKVd~t}U z^Ur^et9ot&Pv%pO-7q`Uz5!*ngO-rQ(iCwc3@puB^W${ls(R zDzUzy97TWD{MoG4iXL(<+=c^c;_^b>JDrmwxC{RsK)?hrYH_7$D@i0!%bgK8HP z_X>z9{pPmMkav*Z%hm3!JZ){hp7UvEudTl#*X{s0R`E)lTk7N5wHwah1#9bf_34&x zvhgmt)lf8^j`hP;GEv?I50)pwvr;PSy^8nPdzH4G{ar29vpePW>pT1B_sbVm-pbRl zzl)l0bscjUJ}`l_yV_L@+V zNZ6_lC1!rBx2_z36*Vbgt2&gBKl+0eH7Q}MI>fRgpK$HFx(*pu)TD&1>QLgPJHiS& zSW%M_wyFa&Sfyh{O-k4r4fUawkUwfA`?X^qq?E8V8cIC={0Vlfs7VQ1qoG9m#fRDX zpe7}3#f1{`M}M%QCM9geg;;jvKb*VNd{C1Tw&FsG_8v{E2Q?{S>nD`ZBFP_EQIit3 zexh0E9 zKZ?l1r7N*a1S`-s&#i6AaXHYEr`Hxhn)U zDPi;66@r?Sh_m77W$ZMj-Fh<6u;0e74+A}_i#}Z0D$?ph`-!-&mTouO?!ocvLSD$% z)AsG6)??t^SJ?gG30i@+Zx{7^te)Asr4L$xux}SD$IAPl6$txwQHj3a-BnizLE{Np zA>F=RRN`xQ|EMKFD-iZ2V)c%4$BI_!dr#TlS^9S3LXIx};+K|+-zy^BzC;wej{J$6 zL)`O}pcT^XyFw-2d2PFv=Yv)t?7KoGE??ZQ<@ul$2>Y&3iQjdc)zSy8K-gD;N?fo- zv!xGOfv~Rxm6&tMxRyR>1;W1h3&cZ9TAo2#fv|7>l(_$qCDy|EtAth{>DAH;8Wtxn_g^5&f@zr?rTZV3WR-+r+v8ojh@zr^FC+=!oIH4w*CGUwU)<< zRv_%_Iwjuw^Ajy=PAmEdYf^DX&HGz?kMgDBH+ZavtuW0$cky8@YtHZEK*Vq2&{9wQ z;a5smJI^_-K-hO|dOjL=H%eDK30i@$@7R>s3fWf zYdQ02%Xe>CDt^@l!oD$+ygTx<&cCc>sb~elzA;l``1i{9IcrWU5cb8G5}SXn+?J4_ z6^PQeWch#0DYsW7Xa&N)7}Kl$TlbaQL=v}xJ1o|$}ZOM+G)>}xJ13ch`>Z^O3n?yimfHc!~sT-X+fYV?y_Fwh$9So(XVCG)|J!X;cFeXD>kr6?utmlb zO&nui=wj(%%xMzvI)Fe@Rr zzhc#gX?(sSbFYi44^Nnt5Zv{#N|?syD>C=GSU+J_LU1q2Dq$L*ugGCXrPlG5u#1vt z5(2AU7IU1T^fWL{LU2Eg>e2OtSqZ)TpgzU7$kGch`7n)Gd1BDHecZRmsK5Ti$}|aq z$hvP$<9EX4cuR#QArODJt9VO=CLzYY*QfXv8TBZ~TPidOaYUcKjqVq-RICQhfoT$g zJBh%y{N(h6SqVLU&%SXiBZ;?EXvE4BD~{>gSaU5)RgSk*XcFS}j=o*STPidO!QDzi zJ<9QxB4JiS?|W0f_uTNpD-(-$IEU7x*k@L@)^A zf^zD^G?K3;xTj4hRXN^Lh|G+0ZdM|rt$b<{zrxm9BPAFA5 z-cpg55N0JZo|tgy5R}YCZg0(P_`Nh4&hvbwBBg(7#IGKfINv<9ifJRgSl`RoKf=^7Zs1 zx3{@?OABA{@s=WCR-k9Kxp$mT_Vn?VB4JiS+%l=nz2lVQEk(ktg!tj8wl3ar?3j2f zk&o%#)@8h<=)*b7q4D{OJpQ5H#XAmsl;bT$ z!mNZ?a!qgdj)QAOf8M*d68Wz0^zPyv$I9!iM8;m|3m<2{y&P|;&?Lk`lX|;%oN~OS zNSKw-oxAq#;vL7ldn=LgbxrGc98Z{)5U0v6@Gri}dX(cW6&jzf$oL+ot9VP1Fe@Pj zz0s?9$4Rde^X{$SL-xFXZ*%mPQo=L|(c{@(vPQgB|H>0)CG_~tUSYQixj4!_8Bds% z5U0-D(!JwsxgbVWF^$hxsM%XYyi`|yNW39Zm%xhaXevGLOe2a%NBcQqJL!?pRdSEJ9;(tKCjgo^n_Un zv1mrG@Li#v!E(H%!n?N;dHnfXcKOCqXexwUSNP_ya+O$Knr~rM&|z*H*KRr9QrQRJ zUQoa4Zks$-s`2@XjH6();iXYE%gbAdjPq38pA$YzlMpzYt>1AxVOB!px@!H7;|a48 z0@rkW$0^5KDl|S{k#XgRcbv3ku)MsL$hf=WJ5D*?QuJX~Lg4-n@s?V(42*^33A7UN z9j6>`smM$6H7k*|CF&yHQY6eu2(*=P573`q>*FmI8lSJoXm?w`<5*taO62&hW##D7 zySEY<&y}v?Eft!Ch+lxFJ}fUG%t~ZD2je?VIo?wAVOB!msohn)r9$KL6&cUn_>P0S zU4K3=ZzVGN4B;Iot%rH{RwAQc()u086J{lZ_M*CowXnejRqaW1z9mn$WRwAQ! z7T$5vtKAc3B?Nkat>1AxVOBz*f8ABQr9$KL6&bzPuHr34!mNZq-*=low|cuX@7_ve z^smD^PI?ACVOBz*48Xe8{^<>zJ}7AG8u;{qHz2-ctPb+1}gak}dZ#ybrSy zAKVWX*Lc^2SqXuet?K@@xcW@v^A(xNO`HIZ_ zV5>enVOBz5rAl=-TKF)H&sSvb2V3>w39}LcD{iX0(ZYvme7+)cKiH}dPneYuSUFVP zjTSyk4;P77}xyS;QR3e2krrb7zN`1F}l% zH=mtd#2mmHFNrzOEMg91-pbQHCXYotX(Hl@eIYIR#xJB7#&4>1Rao(bbW^^N))*<_ zE9`~wD{Qff-&CVi$4aE0GjCkk{7?B#cvrdjhH;!d=X#B<2&IV;^UQ{tZY6cr7}WF5(z0GeP}(#y|Zc7 z>%o=Ht0iiLxAJuKfqHx@@dmEy)A=ys6vbV2=a%9)**?7bz4NNK$7VYm(tP-X4R*DlJ9>mmt&>zuRsiWuzxmfU|v5% zj;^=zw0)PXrMl>@mCdnlZJI5Yuj1`$5KWBGG`A7282FfW_sZsBa!wXW^b2q0X^ZKk zKK?p+V10qaFZs3{U5f}J$2~?PDerM9=lrOF^_s*lK@13Q+1=5epj@b3#fI<4oWx zY1^vv;R__r#C=k8Z{=x=GokgkP~vM{`{2s@MG|`lSD)^fEE-&ujIrh;P}OQH-`zBO z=jN65iE_1jD^KHUk8#x`21K)n0g+qFAT{*oIkqJ@R<13{y_Ki^`Ikr`;f|`y9i{hq zDEr)ol}h}@dcemiYc|b>{d8sh9l5T&RjiXlUSK`+e0)J76da9E-hiC7@ADVRh|riux7X)3?p-MI zI*}hOvE7QP=B>_!Y{K?+S;se$j%h3%QR}$8#M7-#Ug;K+k zm7|OL+0jMKi=!)6tcP0hNK4JN9w-strK}#J2|KaNIgmP;Yy{t0Op_cR%SqDVL49cL z0}+mUunHxybnionmR9DEXE1od-;ONgh1fL3Su2i@rrWXl#iZZu5~z+$eRwNGyb=1a z?{yTrYNHK_DQkiyv7r;-Q|@CPpF62cp|pPo`4Up@kD%TgIKlwE_%*Ec#S7!PMWp!zkY&f zR;drK@kD&qf>?On&-9xKEtNfmd8dZs6Q98#)|`I3mC9?pj~FW~EtS`JBE}F)39s?Q zebZ(xJ>?a~7sa^+5~m^a8c)3Oj~PoJ`8kQ`r6cniPpDixC89k_ zRUrziudbdU&)rr&yvFB?oR%N3U5jhiYdnGaZFF5L!fQN%WB9$lw<5g86Fw?ix#nKu z30w;?c3Wh^RYHv?aJ})3EZXx*q{b7trbGOz^#1S~PvE{e>`1)BrG(db0{7;dc+;y8 zUgHVe|KU9`_2D(1KO?trp;fWLCx)$wjaYt3-at1Cu)j|~GGJ)q~jD{G!geNC8zEpSy zuQ-qK6FuQIp1^bdAM;3@{ku=>Y2Y=UKwqN!EhM}Tuki%>EC0Ty72!3W(0 zi5dMaTzcGD;Ym~`yv7qTN}ewje0Yr~e7v=?53lh=90^H%c#S9G2un(MjVIz8Yf5;H zC*qrMN_dSY5GAkLBf}Z=8c+CdNz2E|Ydlf@E;TY8r8tnDC`XR;gx7ci(f48xnFQ+L zHJ(6>R^JOJ)1lE@sqqA&xBluH_QGk8>&k09G30uQ$#Z@y!fQO?N2#I*`0yG}#5lR> zIrkb*_(+UpA70~$a#Tk$IJ#criSpas=QsTijdymx5NcJlOTHzFWmFEVgyR%32#*%lezN49_j-}*Aw0f?O5!Q{bktCwD+3&@K$KY7-hFs zd*DCsv^N&-!&{*pW50{X7XOz^<*ockdad^7ADn1!klu&4DvzG8KJB{Qf~T?%Z-sU& z_Q>wL=5c#+dLP~j?O5!Qy|i&Zt$BK^ycOE9*dyEd3*B0t4{wEbEcVE5I;VTfQhBQw z2Nc)Urr#gmvQ*v*?O5!Qee;d)hkbsN^Wm+^aZ(@ZIiRHvZ{?$i)@tuOIi+Piyj3~A z=sADAvgJAVRz3=Kt#-#JpVLyM*Oj*_$ESX@$IC6R5^sfeEcVEb`qN1*>*1}?j>R6? zlm&BJmdab99g97(u_Hg%(ucP~I~IFnEAH*xvL4<_+cE2r{p*NbTb9aO{eOC7MGNPx ze1EQ18-DpcJcGI3QQ8Ze>mumRb+Z5%dyT)2Jhr>V$Yw#u7Ca@q#`}v;iIngfPsArt zN_dSY;?piAyv7spi3(z~S8LibNL!M7jVI#s-1`9GHJ*q)0}y-m+(_GYxj%BR@kH!> zfOzN3o@}pl-weiS_eAXb_)@`#*LWiKqCA0mc#S7wPt6nX;WeI!y}^|58c)O?XG(aD zCt|NQCA`KHvF8lp%{QLZql<{1UgL?_J5POhjVIz8KuUOxC*oU1N_dSY;+u>oa0b1` z6Y*^c#37w$Xiw%}LU@fQ;u{%=zkK-L8eeO*5MJYn*w^xyv7r;ca{=f zMC_e;0_VePJP~_mp1}F=8c)RD83^CDdyOYz?+nB}J;L(?rSck2#NL@N z6$r2KMC_e`m|HvtQ4g>2MC_e;A0WKO6R~%e5?^*9qY@-d~)1NlWE5o`^F)Dd9Dqh;v9O;WeIk$@Vev1kQ)ocp}b)foKj2(Rx96 zjVI!K8;GSNceWmx*LWh%>G@LOoO_KY^!yj+CicNmDo=Q;IMbN=@ET9Vc}`Ejhu3%_ z&X{@v_3#=`#97&t@ET9VnO_id{%f8+KfJ~hadsKRmv24K&WG1{BF zSG@9{Rw}RYM4X9FeRz#0;%t9Pc#S9Gih`8z8c)Pk3n}3>o`@?WQo?II5m#KKgx7ci zEnnQ>Xz!s%X?yjNT#0&56fK!=yAHIuRQUMv-+pfA!xP>r&X|HY>b@=1$G=D$baKIB?=ZEfwA-JmIb4j46muR&1!(ZtBBZ#ko`vXMX+L z95pEU@K$K~xW`bfw&U>!s1Mw=zEs{S&X~f-tv63@d33#1oG}IQlm7}aQqy{Pt2ko{ z;?-qaYCTfITg4eu5WU`g)5bDR&mA@ z!~>(hrz3Z%4{sG`OhHWg`X5@>+*`#NQxJ!ad%tC=yj7e_1+nYMAGSPJ-YU+ef_Qc5 zC0eSq=H4pKrGnW1!Ed!JmA8sBrXXhT9HNn?KDkHAU-wrqUwF~`67qi3PO62199o6pEf@dqH5*oxFbTXcKilA=9~R- zT-JPaPJ^-AkS}AxA)RvYangsQ^K)Jtr=_AMrI}M8CJyP5A9M2I>VpyRwCqLvJkUOt zUafYC5Sb9Em8U5O9|xWCT=S_RQ`HCK^?_#OK=`0sCQ>U;Qx1f*3cBJq9NjJTd}s;R zZK+Z0DRa*-P=TNZk)S)Pr&$_IrC-`~M1&T6vms zt@hE@ZP}6iCTKmD+&inG5tL>9_n0?lHFUSleHTVq*M)n+TY1`Kp=-6C2Tsp^{=k$v z%J=B5GaKA{_22u=Y;eayOIIK7e{Fhp>30Ls(n|8RboGH2dgq0cv=u-G#Cq(L3?BUn+B5~VmSrDH`+N?3%IN~x$x35%CfA*e}-7*)mZ`UWd% zQewP(Cu}iNO7);7C6H6x|3iwVKl*?sB}x%bNB6tYT4{A~Z-y&CceS=k*2v$h9 zXd4wD)C3=qD8=L`)ts7?uxJ|w$u;hc9ltAw+#N@#FSpC2fyU(dfi5Qau zL}Tw6`sEg_*l%MD^pM`a*!2w~UF#lPVs~xXD)t%G2cxmeu5X{}8@JC3vZpPAx*n@p z8y;_0;`nvJI|y1S?PIIw|2|@Vd~!O1an?bUVyowee(~6r1g$`nVylAU6tB;?4 z|1upXO9@&b-6D@GA-le{EETOZCy67Bz8%Wak#pC#)Cc2}Gd=YB{x0|6g7aR~(QU8s z`9ikH<29^f_|b~vtPh8pBQI|S*&>hEFlxT!l091bpcM#f^d=rndA!D-aeHT=#Ih=-&@po9KPeN`3q2-+A{#!cMVi zsTc{IK4PzryS}9aBY`8m6w6z7efwkSD&hH{6$p#JU3r`E^`I39i@&W$_speRwLDg| z0%6g#m5@LBgU0)y71Av>wpe!Lzc{^oN3kBX(wr=6Hd?sTmhay3d@!~)2#bxaK7Mq| zlG5{oK4=A^6azaS{=L?vq7?{>bge#Q*SD7EgH|9cZnYBfM}N@xV?`^ZqwNaO-deTo ztOuj9T)Yz7xsNHE=n2pkw9M5z{=B<19AUb%Q~Mg#$LHwZz%h4jc5%T`_ggOo?7ke z>y~x?tQdQx23DS?T&r#V=~>zKv*+u$s2|Nd_3)XE0l$=QyJRfX(sf*PD16_WL4*6;)0B~Jgx*zw2t9yc75mp{$4cYvO0=?y{z6W{hs?2LGRKk! z!jI#}t8#oXz8?sgW2ws=iymFR#d$i&feyqU4qn{sf9>f?@J_{%=6w#C>48}K^~KGP zt~p)L2d!`vXa$++t?J>=LD*B#AN5xC2v(u&{@jH0K#X~Gaz6Oj)pgCQ=ntao>?cBI z4=@n#K0Y}gIB|8|TX`BX=|G%()%@nVb!TbK&m1&DqoG|k@508_r;X6)Ymk{9h%>I7 z-`xJ+XXV}s{%8f6bRgvD*5&AGTjIyUIm!)!avsN^`T=tG zz`pnA*^SkYN-Qn8J9q!l?8agLEwbF(mag~t;)#pv?<@>NODj+7eLn5?gX<5>pP~2Q zqEQ`<4>p&05|Y<_2X!n5^TnXEoMVH&aWw8`oN<=^V$!}F(QHV#L3-~*#Hjwour z=H*c`=PCQ8N;+lO*J{(J9-jYtXb(Mu)TA_X3Pktg2jolN*iX-gf7{}_8vIcX#N)>d z$oF2gpPmnDVC8AbfjIJt!Ocn6%upZx4V&-hpeYC9g)0X)`wM|HR?~y+7PYI@1GDv{zaxv_2U9VC#c+P-$te zVw+gBSH+xgoV6;`At&>JdFP@{^zBF3tvmSeEkiNyoCi&?3Z?Sx3U>ilFLHnU^Qgs5 z924L3X1^WjltZcBx%%|{(4!YO;e(o#W=^seXX)hZ;1gEsv-Y0v&ukpGt2|%js{Znw zGv(b2T6x;;k9STyJexkchhA5ww-0V?AY(|l+HY(dth-e}W_qZ{ z#os(UyLeQO%v+%zw1P}pqSk#nIy?XQaoU!=HG5WL#K#irLA-bS+N{RWPlu>}mag^i zL`y4ATRrw!cUCrJ;e0(Ge!QI{=_nQDP!AF~AJo9g)06{o&8z!mhfN)z*DmM0KyWq- zGSdU`j1XH0;jQ40R**>tV&(i9`2ouYYdyHTIIOrgIdY<0CQ>U;Qw~J2E~B_Vd_N(M zQm|(bi1Pj6doqCz_lobA47+DaeSyrQqr4b<9e#4Sw>jI3bjrcUqT8p`dml7ik1jPS z&736eV0eD$b%m$FC2PVn3QvIR-w4krOZU$YC0bg^wPfjbU43`c3Hd7{+q6_1fkLS` zex)UJyYSU&TlAiguiLIoYfdYi8`6-O9%{bBRfFq&i?-d*xU;tYCYn> z@-*c@ta@Q~_M^{qZ-;lz#35hKu|Z~fnebMghD!S`C(40% z`@q%BEuNUHN0%D)SFEg2A8waQc{h;074LJlqOjr!3uwy02Z_|m)06{I^sjOdoXtSK zoTq@y^gtB-tK3_88Zzlx?RyiRtG_sEs`h=x95cJ|+6kfWgPzk~<3r!aWW9FJ65{oO zFpXTJo;KO8-7$-%G&hqw3Z>#3Buc`kKGG?NdfasPl;)4+u1&2xO(LYUOFlfhfP9hn;Ofb5;gECd-|hRjLX)2 zJX%{gKjY51bmT-i_*nGDxa{h8M{6re4Xiv(IS_JP<+!e3<;U?k3!tTS^9B+ZPzYRC zTHZpF(#%OBZ2V)Rc3g?@w)wZ@nenm2bdmeuvUwQM5m~NqllA`aglWXe(cS$!aHc^YJVesCQb&H?WU z$V`WQB)k>Q4Xq%P4n%njV1(|~2CLUQM(Eyf$cb_w%3}c0YTuh8O*s%N{yZ+9^vP%) z%Xn$nDBXzy`A#`{lRn3>tUOIQ5XF72tq<{#ozhqFGo{w=?jM5!WP%4fN;Yd>s z^>|j^4c^?gP0t54u<|tJTCM-iJ+jT^+68MXm!-V^iEOgg!xN^F@_O22t;ZdI8khg9 zwxjx(zwUy@E<nO!a3I- z*}n7jSxXuAkw~pPP1)LZJ%gd84(%0M=YAiCb8hKckD_f?qNSCT-O{xlGBS~KECa_x z$1g16`mX$60@g3RNWIZ3(jhLEWbwnUcBgfs-CfoUtFGezaF@l==_0(+P zkWM+&T)s-l@Kp+GNKHyJr&?{3A53XpBwrAK#rqP+!Z+`8L1WZ5;eF6#t;Z1;PHFBu zArPjK@_O22tw(X!>eY_Bmb+`%^(s~-s}E0@Myxz-vid;zW%MJ%=m%=fkuB7mPfo~8 zhkdOkBPPy+8QY z02=+ag(sHZMFO$x;OW`mDO0phO)KO}8Zy%ZQH;0iSYK)VuJqfnAE4Hwkc(1<@%E;c z-C22>av-*tcY1c=jKx|Hj>IEhz7;`cdLU$+I+Jl~tp}~(k5-VG9tau5smmx%uB9s0 zq#|FgHr0B#o#kpZ87ZpENRd7bXys|hOxLmST*kunKDWD8uF*ALmGitV+~+3iwJT%c zxr~J?VH&wcJ#DgGyG1Wtj}^}p%8s5l_7;WA^iXpW-U?->6=c$ZIQ9JQ?LU`y5IrU` z|AB9NV8w5KkWM)e0}CRx!U!#C%7G})v4rpILW^3S=Z@`ed5*=dMFhMZ-qM13Nq{*JE;I74Pq$n-rP>k{1A$SMem@BHV0s{m@vC-kg;LQ9 zGU-74;_U97cNNzz$Eje&s}DI*4uo90ow(XlD^F7n#Lt&4>pbAmSvtFP`@G?eHB;v4 zIk;*6;f=jdoG0h}!Up9)EO}yC=l(*#J2kNKG-ZjO_@{9h`@3VepB4JJay4M4N&CKX zEm^u=SDt8Tfpw)`vsZlp&o1hwqLfv2?Mm| zv_hR|1)1r!+S}5uzj4muI#|Dgrso+m8>f6bti`c(t;asnuD^b4AX-{U*)84bA#+~2 z%z0@`efA3@8XKGwuHBw%M>LjyGu-o(Lp@~9E0;MhZ5gOR**#6URvY=3{qkeZ9H9M@ z<`B7Fi=DoF&%$J_$D&vE%cq|l2-8S;J#DhpL*9flyb0sVz!80F+XZ@E-TV8&`W}sR z%Ap?eww>W^8)c^^rI}M8K7YfM`cGxN9ah*`uFvV=+Qm+Gx1AHNUCM#j_Qomoi;EF@ zYEqgxSwAtnu}I(W#OK31jvr%3Z&1_qSQY(5C0bg^@v(F}R%7Jou6$)bt;dQrBO4#A z3H6x2WMpHrzl3^F4)u6ei2o7-$BG)%!_$;)eMtt^W;3L`SW|M-mqLHnWUWWBzC;Pr zNO?VNveu)o%u96sWw7=DhF>A;JvzeJk{=y1S$%vsZ$`f57DJRUjpXHNlhwzJM`z^^ zFIlF~C}?i{PIyN7r;N$!<2R4Z%DYVnglP&Nq%9})fn&6Z%%SfnS0j$-k`0I0`M_2A z;AWvMp$z+4?K&ZDe?GjiP?OTkN!IwhwNd8>(x(R5^WNfpS-kuAWlPt3$h&hV#$G|R zwDPpo1M8w>eU$brdmcKv@!sZFX?s4nKDzPZo1q>|N6xj{?>{^%Uv|^{I?7HfTw}C? z%=AEfZl|ev_j*{7vT%pdjfIbgd}nkU-Pq^WATvD>7ml8q|IdNXsSjEqUs^$Cy2Qni zR`gfLF4n6At);$mN)6H0erwtsDDSbKw%@@}*11$Gabto8WI&GVZxKMaIvq`aOs z+3NAWthqb*=rGg3qlmKW%BqXX=O)zSl*cCL-#>D-o)232a{!s?fjHv2DfPctyF1La zyF*>O8{|N|a`Tk>LDud@tIM{IH04_D*^>^>r;X^L$7-KF=QMP;MX6zUvj}T(EM1S) z%R(Gh5G}1dt;ebuZ&x1}CD(ai$qQrbIzKE{CaaHPyj=;?h?S>JRv-8OepzR`^ptQ6 za6fbY12eH)b7!*p@Puh3FHf7SK4hjLFNW==(YZB*}(o`RWa@y?3j#ecfa$8=+4HFnGX9} zZR{7@vS0U^puG%Q;d-SNWTpqAXxl5j4BWxk1sXos`v^qQwyO_XAzxZSX1c@|l~@_O zY~7ZFz2}3O*1uZx^vuSXv0*Ki$$G4A+iF7g?tnm;MvjT6O}1n8`=ZF`?JgRDLOX!#&(=b0V|Y1=cl?X-eF zT0v%dAXe@;HM{mdpKGEd(45&3`nVu|^V6_ilyV@xF>-1){_D@_+Z{D2&71=9TX`dT zB$CD39b^hiMTR!Z&A6HEZtvMO0={p zuCcf?>D6+aZoQ>@C(8HbK{Ffs)TIw6R=sz?8pzPsvUK$^Ux@D&L`y4A>$O|F-Rb?| zR~zCTP{&Bc%4GH73Dby`r%hHLau4Qm4{FWvX2Kf!XNIM#4^OnTl6);)ec%{vG+}yv ze$4}Lmd@4?G{I;gSr9^oE5b;+Q{$fLtONI4MFPt2sB zsP`Z>@aJjDf%vSfpZ}$---Q(kl!SLG(kTbxAR!JoGOYNeCZ(BEsUF(jg@%1xl!Sd> zrkCoWeIHt(RJ4N3^gu}eDwF<|)`P7NtaJr#vA&&hAXffra`vk!tMyn>gL-(Hav-*p z_ncp@Sf=gO@^eR9do}Hh(TzWTBV1!lFB8a@Rwxy%ATvD>GBcXV%&1;h9OVGbRmG5* z9tfFz&1Cj9v~b1BW#mgM$fN@y-vVU(7JxOURnOPMbp--)Amm$sjNbxKgOYffvc{&$ zB{r3|C4M!$k`OU{Ku6HgtU2FdFr9&H6 z&k1ciTW39PMVlY$G4F)M^?5>QZ3_*oJWV+e@9+0qbN?~n`SIkxM(8sG^bU(h=(7Yg z&{YUOFlwk}-TL_eyA9^gqIhA{w>^;pSVDpry!VH!Cmo;KNzRdHSAdQ6IQ zixT20xnqOSzoH!KQCwGfYQ^)9bjr1wj5A~$XYf79=SR%6F$YW6dTcGk^~K0UODie6 zrE5Lp&8seNUV2^il<`)M`}l8gEM0wgqNSDOYw7AEKke{r<@P<)hxPg-uka;7m}4A?XK2?Rwxy%ATvD>fBVwZd}%%OEXVILQs)FQl78g@BOB*!6P}5b196Is zWo&=Yb2@K84f6Fg;(8 z1v%7%1ZqnS>T%i@k)|AoZ+&xdeK%_pd%HHVx3yQN?-S%el-tB;_3@>VrmSPHb(y0N z_s6KX*4f{8_Vs`sD;ayO%N)HDEv;~@+}#{Xb?d>a>su}hGo#}l8q!#Cb!el|Bfnu$ zkeMEcuN<?PGSdUGql^JO^31YM5O{;Q=ZP>sH1Ogh zHXC}{v%~CrXUc&n&!t8yL?n%KsX-2e%;V%TkE5mH3Oba8tF%yB%7Ku1oLuH{^!Y&z ztUOIQ5P!XCO7oP1rYnIr-uIsm=b2xCf@XRkj=FwI^I;*Np%qF+E67X_L@}?XJ}^u6 z+gF1Rym|L~DacF@L@}?XK4^t}X$6_-fq3D7jXDpISy*WFh`wIV7o}x-AkNr-qt34i z0gca>R^DGAK3zMw`Sz7Fban|}rXzL}tOlMtyz$~+gUs|m?7U`hbHr6Mv{bZ0yFx3- zOb9=R>x8ts5U!9`{pqXAKprMr>-GYY9^gtA2`uhHXk$AkH!3uAUcyB{almk(W z>FfIkHL&tDrFWSnzG@sL$1GOG5OVswyJp5{3R9ef=5*s}IR<(#0ltM6{p z`E2-DbwZoYb0eK{AWr(tvi1o=q*nirurGnvYr5J$2#Mi~k~vg}o8cys1_?p#d&-Nt z+WJTh)jc5_~&a?MA z=e#%n_xH=q`tAKZdp>*KYk4+hW90koT2_3$3^w-Oxqn6382Ns?)(3r%63?b=j0r94 zwLK#{EkIe%Y3q-7Z)*)_^puUU)z-#9O6XH&GbCf|`i0)viSjlTD9*^h#>gdxs-#hCkw`I#H&!%h)+3U-=*TMJlWZlc zFNFKi(oMoX<*|!53Ht$bH%7kCpz}ncJR36IjgjyBXr1$m0t&l0{5~ib8D*4bQ#OXw zc{l4EJvHuPfX!O-wP}o7w^*{RBMLIzjggP%nktOWyo-SmnRhhkZj5|9*Oo{W!X*ka-HpK&3w+MMc9Xc* zbI~SljbrY{_(0Y;yPn21j-fmo^07JF7@Nwd*>~}}x+l{^*<_?S2NA7M6*+b5_ zhfEa0B^xr`jgjv&XnkOBVVlJ^o@1xrl!r{FyD{=Pwblnw2$v|xbT>x69@MtWo*F2u z?l^u>Hb!2$+F#KJx%F(y#>mf7H6J_~0fVP9km+uW{47=TK@?I&6lA&^qqr{`&*d>v zvt98d-Wd7)5^YyRAzY#$)7=>Po@L&b#4``>4k91enZ%j5F^YYO?LZ=2q9BuPjC}2^ zWrf~y)f}s5tbTd^MR#N5YiBJhq7W`okm+s=IrGYRp8>B=u!js3Z-^itl#L;0UK#H* z&<7~brfiIS9i^qq(+tFcwNn^Ba@iR9I!b#6kMeBF#%McwQRDVYY#)w$VTc3TTCgXF z6jCz1u!TZ7N$rh(lJoXWbZ-GD zjAWdbP&UR{!ua7*&f6oZ<=n`oY>d1w(fUBoz%z5cYC}HgZj8Jy(fS|?sUiw8-Hjpr zZYF0%T2{Pmgm8I7NXsq1!(23@e&r=!CyWzu=T!hPA707fq z#-C+wwV<|MWfzAighaM6@-uoZE3VuTE_V$e)7=>P8NHSjQ3#hP$aFVG-mY{!=bRHL zv?cB>Q8q^2u5>)74^raUl#L-X{S-5OEt9+tM;y3W!TnvzMMfFLeje_Wjgj~5T2|D) zh4|1ra~?!@W8{6imK9M5mng_|H%5NHMDxM)0)?3c?^#kdMt;8}Eu%b}vN4MKOSY*` zS!H7_ZstyY*<|db!rd4}{UwINT9zotWEa#jUl>_GU`I&4Ksv` zmzvazM0aC|E~JdQkcdLKL}?s3+ZcIYqTdHskU(+A1MyKdM&6g`_dy?^Je#sH^6^~T z6~-ctgBYDTFQIIVd_327MIXfB*_4fuzkO8(a}EYqMUd%kjQs7Zriv(EK9K2djC_rw zJsegh+^6P>1#wU|M!v?$d(q;mh-`*rjC@|A-#JHNgv%8qWV#z8pO@%&P88Bk6lA&^ zBj3x=IJmQoa5+QPd=z%J^Sum>gD8YcHe|Y69QoUDtq-n75iV!Nkm+uW{B5|_2T=%@ zD9Cg-hRmt4r>_j|y#U2iUBp4z82O&QriwnyEoR|hGbFhezRsj<#(I-daQkm9cEaR7 z)ENiSW|-INNWGlHdrit76iaE!P|IRD%CmF%;&-qQcaz*w=j(xRdq>V|{EfCC>p6~R z1RpuO@$4Y$nOA;aR8M}w>oW-pH+FdEF31{3eqU4>!AHXK>>z6#H(xU>+ws1Ijb&11 z!AHV+^|$g4c7WXLThLW_?Up3<1;etX*Dq{bx89`8qda@~)pP0xe$&|D-CYf(Ybd+x zikEZLM;BzxNB-_k8Nnyy!`LAt&4=ikY>2K&t-)}sSi3OiA!!^)e?CvteiySM?qy)6$8%M>10NaMN98E=QABBfmAeO9 zbo$jotAgI~k=XtH=HRaR$ZgRnqbbU>H6Pc>_kC}#J8SFyVe{1b#7$hEnCs6(4=1ld z-`LEX_oK5^8#ch;VJP#D@LI@Ao$rk2gThtoO_H!~%6^lH=r5!^K&p3xNL*_scO zZhj|K>w_oKC~58vLZ&OFO1EL_4og{BbSv|P!osAjp9U}lW3z!Ch zymT8*&K>;BZzZLM$FcBz!^xz1jFemjlJc9RhYK75z<-~G?7KYJE>wJzV8wb{UsmCuM~j8`Q}#;TIkC#WSpY_J6%2lwp$mWAfD6{*%Y0Gh}Y!QJ(GJu_ehF z$Ih$$=%tplZ|_OjKgd`6hjs3(ZH;d*@2_B4s=(H7a6tYIR_BSuUM*@0VGmcGCtB=` zLuZ*TwMp`Cc@4PT#-ns5gV%s+160byzs?J?mX+M=%j904GJ=nkiDw5{%PP-#Lvr4v zrygqke4cab+w;|H_~dPg>=2TcRsK#`$0+o# zIxdNizc(M;H4Yi0@J?76O;Mh$apbQvi?a*~3$>~5M+FsRjU#^ns*Kt`X!Cm9X^%N- zM$O8}kM$)L23OmPve~4ut&c&-(b`QV+!?OFl8|h*-Hf5_O52!c49ywdY7gV^j37%s zY(`dzBllt2BZK2dg)w7eISuQw@57f{p{(|P|7Ep6tl@f;XXo?lW@VL+QJQlXAK26I z)gtEuH+@Jg16kTj3_;Nyd1@X<$ZZ}jQ`=KnS(#Y4mJ*Z2n!To~T2|u2vXc7+apd$2 zDJ!)(X<9i;PfiJ+~_#hi_xj z7OZrC@jo4nFHCREPU<}=opRRM^(POpl{itKUm-X6-*TI`rR(I|zEASBK-w|nUBq4F62qe^Em7D~(n%uyRVsSbwD<8E zLAA>a+4>h}>JynLW0gy61m$XJ_F+d@;6XKNhQ zanNQ(R&LhgP)0j$HV)<}lv{48$3|4@x|f-LLuUFJX8OLS!iq&w;%hcZem!MsRcJYM^K&}WUY^tN6o7ZUDlG`D&I#~v4~GxvB+#W ztZ}rp3nP^^j_g^c9_86#jiYfO{keUETg?3ZA+41AL0_6-WNa6@@E z=hW4Cd#)u*zbMz+g&wXtZ_iPhDz9V9bRIU_%gEPG8b`5J_OzGbQH~w@t9{pv>GOl0wSlk~(E14>cpOK*{DWN=j8fs8<8{*xB&6c=!miB|U5~}A=YAwjx zuJU&i$_PG!@@tVGi@Vie{$5S@mUzmFnI&HjK&HDf^7m?b#zGWkuS7wnyD@UxPP!+< zdp$t$h6v)IY>eEtlkUmT2Pn^`+-&V^^C+tuZ;8fEIhw7V-JVrG3)3DhjB5FAt&So7 zWg&KGsT()AYkhb|Qk!iV;O#HuoVP3>)7{D{*CC|!K@>`tD9ChAlE2R1 zF8kHvE7~rWo?+U`IrX{UlK0>X+-h4=^2YKx_4WIjyQ~dpQ zrPd+g4L98_A01EaoPB;>d$&!LXG5lYl3ahw!p7L^how79?+~<+Nc*|?cW2i(f6?}= z&bsRCu&fi`f11_3EWKNkt^nyOsqfHIn*JX`BycWJwCJhq~3YuULA zEm6XXEwRhBUG%#*O52_B_KLQxWF_oTo*mk*rs_-onwagnPh-gyGS=?>j;zV|7TpO8 z@TKM_CX$l*@8+_&CrRzCiP_&j-@W7mX;&WQ*~Pt#^Y0y!{i`Kwd?qs)zXQ?q1XFW< z#@$1*&K1b;-un~ZvK{kc zf3@Q_S!3m$L$Z&hbUn(m(cVrQ%su4%wXBXferL;%GC|hT^^D*nIrQuxYtHA(SG(Eu z3u{M8s=`+*Va2bus~*2|)cNz*4$EfAcm6}EbC2@u@SSU_&}Q@2uDvK)HQqS0weyWT zT7G=vPDUB!*_083XzZ1pPTuPqdE`*N%Ln%HCk=IXyi7KR-0RDDug{}Ao3b&A`eX(= zeKG^XTbUa#GT9jK{cU7p|NOoveeliqc|Ni!i{(@4eV$z~EPYX0V(fjKjwPwJ*k7R~ z-XLe^&j_Pcdg{KGZ%V{XYM-*g?QTy(~yUt&g7t+_u3u&Ze zX0M_8CJLzeTMu<_eoVGF-W8h`HL-0`MtL^nB*|B)x+Cmg@ndArvu*iOgS&pU`AS$B zO;OU8g1fdWq^tOjC60X@!;!x@s)4cLzxK$^IL!2m5`{bw1)1)^%RYeY)^2&5y%XkF z3)IpxhU#4`#6j5@#r@rg@@&dUa=M(tjb1vp``0pl_)(_mPP*p&kE14LoBU^P_y5Tl z* zY)%CfS|apkA|%SjD86ZkD9)+CrY!5h=a<(0F}h#2ujD-3DUdRGur|9s@P3Sg?%six z)q4M2T6?XfU)EdpmORR{PZ4b!Hi~i`RkW9C;{;N&YS|EHFV$qrN6}ttL~)b>o3fm9 zj+~gD^T)Yuk4vh;E{>#k{*g25_up)D^=Ze=4D=_I-JvjNc#Ge+j3-9ysfuZ1~vew#{A zp6%~Ui9TGj?WA*2=n8uEafw6n0qY^uixXtcxn~3)iNmvlEbi7yitF>i;cXX3PPCp& z7Mr^4XF7Dnj;UrE{5@gMXSoDN#KxG6UL3wtNH6MTaXG?a0 z+=943>fFzS_kCba{k2xnfi3&re&(Dc_dnl~%{pUVZ8PZ^Jj%1fxtgZxmC;h?vi>+e zu{vjO8CDaLlCb{JRNW+P>cT}svcqMb=uvSkVy(p1AFPjDceL)8Koj(|C+yuFv_Hpp zMdohxA#*tBj+P$Iv`xo%MTSCskR9v^>uzn()+0IeJG4R8oagq0i#x)SL(dMf=6ssG zAv;KBeMn!h&Lv^_ll&lS9QUq1B|GjmV+0=w%d>;5aePP4SNd(#(Kt$K5H&@cFZ(|! zcWdWtrF9-c(m2|WZOyv>J-cz0^gbTt*=P$lKWgk?pHurp>@@Sd#@mbv?ixpKpHmr4 zQIhuHuK7S272jmf)=v@JS-?gfn?3Y;OVbl^0OhTcVac%El<_FBuZ_ zo^wS9Hf3Yv^F(cl^Z^QULuyT@oFxBzZfR|EnV0M+y=a_ebg9KD>OAu|9h2mm7njzq zmwCx9QXgS1BBkirabALc_vY`s+xVL3xkLKG%1ao&M-8&phi3#IDR<8fa;Oh#Fhg!J zLPAd_>I35|^k>4IvXvDXWt3-APLf>5mgd909NE*8*u9?2;I8?|b!;i4Dax}$K8kN& z`-Ob8-`CH*eKpzg@zjCu)^7hpZn@W?9{M!0DI24u{i)hq(UpoapH zl9o}PO*u(Um9@e1vNpIyT1lAcOPToDS#d^o^~j0YPd=L4E%V*N9L}@j+5qheKhe*S ziGGIsJ&vvWkV5RxQr9G9W5}E8jCvsHgWPfj2{vV8h;FI|byKnZ0L9fW*p!VS@8}!U z*GC_qJe#uI*m|WUdtS!Du`=SsQO)iV@t%Gh2QlJ2|6)rv{PcOXGi2oz#y)93o*l+P zZC6*wX=1MpIvTTt5qnX)g+d+Zq2E=;&%W21-TcAq#-Wm`(ASEOXUBdQsd{o;*4W|h zA?fKdo`O9Vty4?HSKaly=UNUd@D9;Y_EB&H!3whd8dy9U)CkpNrMpKmJ zDY$FSQHP_q?VavA?O^Ri_n6Vo-97K;?w*^w)j4mgqn`1l;)Xg}3E7b8Zj8KLX&h)J z)X9LB!8eL@H%8vBbk0B&TO!zy>28cyHye=sb`W*x4Gwzfzbe*N`PP!MF^anMA`0_F zylO-ol#Nk*2PyVyL`NS`|848%-a(pdjN&`Uh(cMBP1zX5x32?(ZV~K$aejqeL+HXX zM!uh@WknQHMHFPZ8>6Uea#P)71?uZZZ|ZbSnrsZ&drjpuLu=5ZPH2m4%Erj|`jo-g z(PFT}#yKP1jgjy5X+DVZX@^XAnUnl{yX?fbS9C9u?>zRFcCMzn)un}p9#vcW@XNQ$ z4u4`rcbhP99zm36<0S6KulqfjeEiUSV4R?SIE(;nyL7jF$XJWaUlFm?e^R*To^7xotEZj8lieIdQ&?>lQ8L?K+FAk*C#`5aF70Jw5T96arV zOm}1Cb2!}tAPV6U1)1)~D83EfMCQ1rqwoG%n}mJ1cDZ>5cVoOQZ^Qrm(YpEDa6=(n zq9BuPjN;o@*~Q8AS@M(&`OrNeaW_Ws?W>){AzY#$lWmM#7m|*(&|pMeVR-3FeM^*$ zQPjB{QJziN7S|9m-yS80^onWv(hfH^iBj0b=wo4SkB?>a#jgg;iYkhDg0~A*fh=Z~*^0RGS zf6xag&!%jQqW+QrL5~ye-#`Ni*wA1G{Z2&&e27A-h=NRaW908rwXC?arR-e>hq0FK z#t>aE4eHEn&rt}MD2*d`H^v09D7fMX)3eRJP@uT;kN7AXqo`NSP8xvnY|6$c>cHMK zoM&SM;5j!&3FxdcMm~OMYbOe+A__9yjUhVdx~YSXr({4~v**B|yN$9jiuTna%CjjO zqxf#yP5}@{yWA0G-$mINqRS$KE{igXrweeWY>cALn*L$#V-$7P#61$C z5C_@D;45rRm1|3w?}WF6g;qia>X|6dhD>*hqxhzJu&&R5;;IoLQ8q^2cD28v4^U{w z@lCbK#wgl8+cd1=IjVt8*%-Obe*L280~GZ1a}R*BG4gh$474BWYvXJQY`Pnxs9)4( zUdTC7kjXYi{tfC_i*Jp3mO0`e4!RqoXiLaOHH1qPWU`G>)Th5mI3K)vz^38+gK~%? z6?;Y6C(;Kgfi4SZTtpm{^L&_XCoL<^CcwaampZoSZjA2f!_xt;?4f--Q3#hP$aFWx z8UNZNU3Dn!4@TPz>=_VW(dt6c{-E_T2$v|xWLq3^mYVV`mE$&0%&jj4W5`)*%Cl6D z@@&e+DC!-w-Uo5$2r$j|WGEX$bWN(J!ZM1z8r&%x<1Lvjz4o!`(!+=x?XeW+TJe0a zXphBE2$yV)yD%fmb$@D|L&qm|?s8N^S<&56mFxc0IwuO@5(Sy=#whC8GM%D8(Sji2 zplpneCq~wOn%|kA4^u)7U5F2|F{phHDC%y~I7H83)YoUSF>>98`h7qfB2k`A*%JRf#fO-q+PKzTN0V-#&c*td;1xY`1nvN3KEZKVGkZx-z70~Eh` zuqhj(Xv57`sX%cy2{vV8mE*%-MVFYR|xQ#{+m9G5zU>23@;=Y$?FUE>g?smj@q>0Zc(#o=_L7W8N4?uC44 z97Hkau(ZN_z|x8_L{CvhJw@1|i?#vdSVDJWh@PU1dW!s*K@{SkyD^G3!(xBVT^y8j zv8OKD46_{}gi91;vMr8W*S)rOu6PkHXEKoKZj7Q{PMZ}WT%sV8ZH#>1N8{j(1>y3v z4>H}2QPcxzCx-}^D9B_Rqo{i)o^!E>Lmcr03!J>a(w>1Rgi91;x?3Fi{;swwtW0Qw zhc$>e=x&UBe^=WTQ3#hP$aFVGKHqJF59hTAmv>4a)7=>Pe7DV`JR36E#>mfWQ!sds z1SsyL!JV=(^7C5lOXyQ(GbCf=vsaA+wZ@$^&Md*ETx4k4^Z6%Go=rK}N~wVxPW5FE z3HDL=zB;(;-s@25NBE|?Dax~THwt0rb02Lbn6dB6^>27fp^`1*v$@~*2%))4!oU$>Bde0+@ zGgi$Lc0wd1W8~)s`VI2D4k+$sqpTm?(Xbwra)WFP+3QQG=Z?DrU@+&9 z>28d>4?j3vAX*na3aKIrGTEZFW!TrX9py4AE9nlC+-O zQXBi_3E5J)@#|5Z{l?JF`g#lO)n<}hb#eEU=_@Cuw@9i~BS@a!@VZ-40{IKOFdu(k zyD??iiiznUIkogC&klN+G#_vMYeUh>y}a?d+$mc1{WjR>8$y()Zjd+^InpVSc6grv@S_ajp0HweR{JUi66 z_U-G*JIl7-Q)}OpeBi8c_;1b5{j%rfbm4xx?}O9D!%s0eNnYA{TsFKuwbm|o=sn7_ zald5ORTff`e11f~^o^I7HeQvs`_31{mZiQ#=!*K`qwQN78HQlwPqc%h0_`!8ELwfz2+Mi@I!yTq1*;p9A=-W~Ixy0d7o({wQ4C9~(OZk)VDue7hk0WC@2`K8^t^Ecg2 z8$PH0;dFCPl7mk-#!K>jc$8;D_tK=?mA_ivXn%Xd?7xx^kMitA>&W<#-^@*tJ|p|3KlsPe+Biv7(4{3|p%iX9 z$li7#=N}H_JFmQSYbafh^6YRYL{s(X^w#t)xf}JKoS&m*@IF*{oh$Y1Es!V4#YeZM z5SXkFR% zvFN|@D9Eh`S#i<=L@5kg9v0 zU)tDjSifx826AfYYRcc`3v4Z2xwq8F?=7Vs<=Os@pXi4h)=@k8yRGRtQXlbMb64S& zkk_gsZ?LxNs0}^7HQh$aD!d<(9C~(m`>Z+NY3AzMoXvWr2T6UPN4D>ytDvdyi)+o! zzYpYGzKue79Jk=E|t#CYwCcx7(7sqocaaNNAc z#q!d7xts}mlxG+3U)>l` zoZh%3S?lPQ#>}ry$Og)I?oqfeOg6OE*&Gfz7rmU_xn544i!!~KWtd*hF1=x_dO0=c zqL;Hf*UPDMQKEcqeg2YU!QWSO?|bET=|?hK3Nsc7E9%edD$IT57UOd(x;MUTyL1E5 zBIr?`9qvGDs=l18?7l;K(j{_}JTlzvX!$<;%qdCMzh_1F3lhf%GD8mG3d*xX9NNQ; z+-pMm&`(<$1EpP|54Rf|UG-1)m{s4em)wq(l%NOK8y=dfKEjxCLQ7*KX;&WQ*~k7w zMuQ!Mt=dSAl9|jM>vuHnlAa-qI1+mtapuP{N>i23mKri!NtBt zG22@5;WhdBmgqJANm=dLJ>_;`$bGnc-fk_i%#LmMw8L6z|K4jtwnDy-xSHrvT?TB4 zco|BahcdG~wWT&d)*nmc`v_|eDMinY>kqWu8>MuA+SSsyN&3W4x>6>wbZzg1H*S(- zPho6yd`n}Q%rZR6vtxarto|l>NPpB)`@4*sekL5>&Ue-Q%sELKvg*3}pqAP_l5>yp zZ2vA-J{Z+*yGUA( z=41CG=QR#`wIyrC$mulycy`p!f_$uX_`KTv632Fu4`@8GI7|cihk_iW4`OdAo})$votrN7^JYU4afRhSP-dVS0AEhb6kiUz^Www&6S z07m$pi(jh$Hs$SLZCtuu->HpDq^FLIuJ~Z9vOSNR{|_c8ml0 zm_E3xd#2nIepFHw`*T}!YCkV|LeCdx~x96 zaj1N?;eM;63f}~KweUhg^YLY2Jltn$qmT6M9_88b4lMG~or=aqS=;W2K9PNfqzZFG z)00}Z);vrY8|^YK`yO5cI+SO}eg*lM-MgbU{KVGm0(r-RnI-j6#g-v@c-&iuBpKDG zqqgL`t=WOHD)K1L_Hif4(3KlzS1elI__vf**qM+ri8~Xblbr9$w5)o+vtjnog5{0( zLnjWaUaBhmSllv|v`A?I!mmxg(ppgcRw;lw>j4jbH2n|4BL zcE9Kxh&i`;J9X8DveJAUIhE3G7~Ccp@5 zkuH6~b?Yb_iIPO#b2jq#oS8>?c3giTj@#dynEvs??kUrx7Y(oFB!{0IK2zp%_SQ1K zs6);#cw=I^`nARstWrJ7vxD{vEvp67<~44VwZTdmKf+93@)2kHU8<)l>aCR?t|2{K ziXP6RJUgrnv~*|57xndZr`Co@ON?WY(_1SkiTggt$6fL@y}bL>TAO_5VXsF}o*l+3 z&ByUqY?r<8=8En^r0s@VtP*>?#VWccsRvY3^)O#*HPGEKT-2>>XISplVW`M z4T&S{;)qWi$=nMrW#C04UN+)Yqepo*)*?|Shs=E%`P@f!M{~b5%)*f>&f7JPJCAH> zY%lZnxzb;GRGh=xyfp5;z9l;oi?{BmJuht+Gd=1m#t2~hd-LmYj|^qi_Py40^#&ca zCnO&p<=J76OjC92r%RShk~Pk{GDG&gewZf;%8wGF33`+6CI6K*&Q6jlk1Dfmo`_U! zFm`I~uhJS58P$9b5PE89OTNdD5og@g+O5*J_m`IFQJx+9cC;&b$(qVb)|$Lz)jHSJ zsH7dWNxeaFHHlP-=9W}6x747y#iPPHQ`q4pl9tss51rQ#ZPOXFO^2C`q&?1Ly7YCG z&VBUzcv5x^9+HCiBt9rK~*4 zv%`LgmerQhD|{k4evXh{6ss+^YCjk8UqO;w{rZaT=cGTu?uSQtwx6Tesmyo(Gd?^0 z#hvx!=kM9rdgFIyCvNv^#@3I&!%nj(7a7oPM<1Nscs6C#ky6Wbq-1>_m>u*uVgC8b zG<%mEweq1pHu=@U+J9~umfj^RVUO}`yskOx2gXhkndxUT)30HskCFbAXKWug>_$k5 z#vKdPN3MatCK~utkMeBHAE+VPa{lmsXJ#X(+snzbj@+jH^uK>rM=5-I{5JKI|7jW> zC>!Ikub!EmcFXie8RglOjqwAy54Y&6rYR)3WmNsFEiTbG_U;~4@7mUG0#Y`{`l3T| z({DeeanJ|#;n|dpA$6WgovWSd?j1(gzw$#1cb@}B*MD(|$#gfy5u){LBYD$+aEU^m zh=NRaW1Mls!P)n=>#h0|FBq|ntoyBeXaNi%(Y?rk4^ar0D9Cg-#_gj2^VtI*)*HV! z%@o@li>*E$=p0r5(_MA+t0$C zcit$`Bw#Y#jUlZhl~$s+MTqij$aGJV?=N1_cI;)_Wz(f41{(v?UgIj>bQ|h^fc6ac zy}zQZmwe|}$#?Eio*nHFptb*Ud{%o-`u96!mVsBXrgH$gisM)0zpf;iw_{cteaDb= zf9a_`%CqraO|7|TpD3q&nVk03aM~BXDDjD3RG0e(@twyw!(uZTuG>VD)nArOxnCGR;@l^Kt;R&h;ClPnpe-l4S7>3u_}54$Io4tWfUMBIeiR#rK0}FI-p~Big?@F$0jE zlOv>O`?Y$KTqZM&KTmB;`HGC3e)Nj^+PVs3Vv>Au<;3i*!QE3nkXg7#dA8SOB6}HQ zS9Z^rw);LaTu&-P4{QTkrFvjZt(r#uLKWSQs9K8YBub*>W48d{Lpb%eNL= zyUgLj*o80Zgh^R#|3yR6*JX6}D9;Yxhkmt4*SqpU;fD9kKIa=}ie2QqziJm7$#~O% z)Ka#5tP;j5VIaNq0m`!}8{-#;3{R)6*h6!E>#3vbBX6+r9KAEgbIQip_K4x>)vxWL zrAr^g;n|dparerHyPtkwwvHboMvSQ+_==4gOZOR5-|J28dJK7P3SSHeKJL?KT^ zL8iMgrjF{J9dgXUnvZ7>8CzfVbIV8jE@SJjc3GWMHpUNykqSf0%Aq`)vN4v+&9J>6 zHcPP_4Z!A?iqujrGRi2=rfiITzV}q^@li)>J`P#0wSK7BPyl=KveEVR&b53{E;7m} z&!%jQ2@f8YjXd;S9i!TJ+NM5pptU8AoX7{=jq&y$56fDnzN=#tQHYNy$aFV`e1j>! z!Oe$`4&UARpN$GOK_j^RMDg~Oe)F=Pgi zVFpk}c{b%FS$nfy*{T_<8;{An9V3p}TAE+Si1Y2g*tvYzHPWv(pIPc2vPXF~W|n4m z2|dHFWDogr*+bq#;s`s!5?0(1cG|72XNY^qsYiLXUsGGo|8Lu)vj=KVX`NrZ_crwl zTl4h@jZF>y45~rVb#|&Q7A*Y8$;S|gKhU41IKE61#03uW3(NkJ}4I%Wt3-A zPLf++YRO(cT~2wW-}SHfp-n(_hfDeRSO2mPCu_m6hs|p|BICJ7c{a2ZnDs)`2Yx5* z`EKKLe?Cn6E5zRG0qdjCe~i4xWV##U&9A=O*!Ypdw7((>c_K>7DrXxbpHu61&R!HK z%#g9BLRnEZMn0$3{)#?8c{XKZ?EH&M8rREReW2EUWK2Cd)%udRt{zigdA!9zxyV3D z=u>7hBxB@drE#!-WzN}O#To=BFDuOleGrFdQ?@uBIA~GrBeB;A)P>_(Lq6E6!JV=( z{<`0y+K`{0pmETr%w|Z&_CO^?b1GShvi!N&clrqeCJN@98S-o?&!&vZ8Y|xCxly zrc=1TCvn74zbnok#9i*moVmL3?_s^Ntt1~F<=Oszncf%8^82EC9>rbqkSh7^LO%2x ztV=%jlsk|()%U2Fb34J}O<*~dk#n45FY2E1BPpwRD$`ZaNgmH}P`baDJIE(5Z%h%p zGFdpgksNw z3STYRkm+uWjr;GLe!S%X9XUDM27AP7qv}&u*_?sy#yD@oebbk>G41$7AzY#$)7=>P zo~7mky$shM=utT@rMofmJxg7G5QT7wf=qWgca|^e=Fj)a?vxQHeo@8yw0?G;B+trC z^@;Kg4v{(!-<`Au&yL?9>U@LWF07p|bN6#(bjC=gd(*=3>;AY;4aVnwF5}?BVd>w5 z;ZdIL_X8~FJBilpbM`q?=RTZ~A-9-ij5)^YgR(Jhx^a4=zc9)u&!%jQyv}v3MNK_^ zfc5RD!KFvp_(9nid7bN6OCPopvKf*wWE{*m4wiQ&;+Sar8bt=e#VQUcx*YttJ^n8O*$vmw8AwYeKZ=F~NrQ)|vKgWTXLE1v}iw1zn7 zUSuF2L?K+FAk*C#GLy+=4N&=bg#%O(I=j@30$7?Gg3gHq3neN88?)_eE zXS~p%`8e*$*03i7TYbG=wLHZ?2 zOm|~E{L#a0H_M3z7^t;H(`-F>|BbEn-ydat31wsK@#e#Ae-j46qEDI4kc{EyqV3)N zbUp}n?A{_MrFC6y~xqq=(C7 zRI}FZP@YZM82KKu#&O#7gTnfw&+0*;Po!*&d=FXUpbt{w*_4e@>`Ml?zGQ&wOU%8< zK)4GIFcflr;W$GV!_ZVcHM&A2c6>G6ZZ z`Nv;Q9URWpC>I$Bi#|w+XHzzY>>AW$hecDx{ZFvl?;9QWcXQbovNKVWT^!B1M|n17 zW2~G%vhm!dGc^v5sfYtR&HO$n8{_$lM>d9BHdEuE5AxyJl#P*>mCk*TbM{xrEzbw( zUSzO*fMU6U4Vi3X$f#Dss0JUl2C$EtJs^yUbT@{KoHg!c5arpB>28dVC-=^d{LaA| zNBb^=!oJwEhYYF@yw$!zx)&Kp2~h}_D9Cg-hRj|w&UbO@&9l_02X7PRzH~1#5C>5R zmng_|H^%gpBOB9yHdFJlbf1CoJi^T%=x&VdSB-3p6$awqYy#mD1)1)~I806%_LI{F zFt`p^R6f_zkaF1=M<0K1x^&Clnkvqt%4~*YjQsns`jGE{`;;6Fz{XbqcVpz=ho*`s zq>3oWbT>vmerO!`-#8$Y)p1V_2=fQJ8zUb-G!CK=E>V!_Zj1>xO|NZ~&v%cX-Kuk3 zpfE$?o+V{t-1f`qwe$1&E`5+&&!%jQd_Ph1!4VP+&d4Cs-5B|PqUM7rq>3oWbT>xv z`-uC-I8ln-UrCZjAhlMN`FDI2hdJLP(U2k)N?>&glb`XHyQTO8K2H zzN~*t`+faG8>4%XfpFV%6jDW$<|%hK#%@Cgq%Vq12>9US@YQRq|5$w4=nx;>jd9=> z1JYFk_SKvd<=GaWv5n!sLC!yb8u41cFlV4#WRy{!P1zXvd6dpYxiUd1;6#c2Jl&0P zyPZerT$CupM-*hb8{>yt49K34oWqB`CE|Fsb5JNZx*MaPSlU=?h?Nylo(-Aq#wgzR z>F@6Q^mq4t%-tBp`#y$3xZOJ#3i3V&n7c9ZyHPq0;tmwYKK9he6WxuG-;L5e0HP2s zQIP3wj1$HTNWb(y`=$sBt%PU7Je`I+Wn-K(en9$-4fahD7JbTWhGYyG4Qdz-z(6m< za|6tldA3b=V|=!HWbMt1ZTuk0vmw*n7{xQ;0q#t=zdI8)xyV3Rlb1!*A?rmp<-ow% zo#tcWI|IX-;~N79g|!IXiwu+xQHYNy$aFVGes@sgz)e8j9mC3$cgpBqWFQWr5H3-W z>28et%uD0osSMaSwc=Wx?nQ=2AzY#$lWmNAeXhL^V+RVWZJbjeB+ACf*XNol`jqp; zkc?4WpU3glG@e)-#gVhPK8IG7d{vZ>&PXBI7Ds-cLBB!VTi`dyl`v9B_aXy6L?K+F zAk*C#`TY{jIZh{8=j_iB65WlF-!IY9B?{pZ1)1)~DDGcbe-707pY;oCHOj^)?q5X| zM*y%X8$-^DGC3>Kvf>O9Y3FG;WV#ze&WbWQE7JaoD1=KCWV#!pxChWbe0TU#;~s#y z7a541D1?h|9y28eTU7Ueo-p1K0LK-o`+>KGZi(@lngi91;vW+2kaZ=vJ;mQjr z_MC`=vN7Z?PRhGD^a0AVDI3FogMZ5gY5##ZxWWdTvN2>OoZ&>VjPh*C##rx&;n@SP z?V${gkO+78YX*gOOm}1a@sQ!!7gy||ZI>v-M-*hb8$)i^q_|lFAMOYt4(@D2rhAd$ zQJxK%Y-7mmwIQeBnh*A5VB;s+=uJ$?!%dE zjN*N`h`ROE$fj(JV!M+2Y59DYqZ(59YNxpyqu8!&0J54ZLs1N9yV z+$kF)Z@VeNqEDI4kc^SKGZ_i8AFi~Y;VFWc@g*f+K9S7pA667Qw zYxRpF3TY<_GTklb+<}A-z8v1U;@Sx%LU&`xjjbAPY{7>p&xTBQV-(K~Y#$$}<2D`~ z_5dgwqj+u*QQY4Lo3b&AYtH^|&1s_nQd=Aiifhh@!hQ)?tduQ|-<-By_pNfT2w~wg zjORFd#wKSvaHnjHmKp1H-z*HImp)}SLo$Y}=rg?F0fRFZFgQbkOm|~&b>~r@4Vi3X z6!-LPm8vO}-Jx)2JC}`7+|!RJu5rPpY>fQgtIiqPcN!edqb}Ziu)dW-YAG8dzxUce zSo8tPvnd;+xWs}9WLq5h`a|=9RRiC7arS}~QZ`1u{?L5T z$8sCl3`z7x$u7}12k)y^-|)JdFLj`gO6`G4ZxCedOWL*?kiFE;7{Leqhhqmh^d-eT z)6L4Spyf~@tisW8^b z8No+To*iV3BS|_n4=4lG-udwau{Y4A_EFk**;uvbsQZ25u9|cz43F~ckNav!2)P`G z`IO`9^Zc0lz!OYcXpupmGUMbCW7X<>H4gfe8J8Y6R`ujo8T2VLwq7(=tuR&@^eHnQ z`*5t%-IW0NGGeb!NE?er-#RxKN+ntZEeMV~TbX0P$8$+ya&Pnj`) z>+z}yzRI9anK809UiFAq8T2VL`s_cxPCfL+`k+sl(T*?p2R3`{On-XNcK0AQL&dMw ze~&j_G$z<-=uGE#|M%`@45ARyHG7Uxy~UP~%eUMp)L?twXLyvwEjN;KUB&;Od`Q~C z7K4k_%y8RKm%UMhneaZ}^cH-M$AdZtep9wWcpE3hwMO(kcIOtPmp!L9> zMm6X3DKpSQVRx;{pih~BuK?EBjM4Sgemg+|iauoqzBE|Asm4K{GDE-S2f--!4D=~8 z&|~zGUG-`l^eHpYD?t-{l|i2}13lm4!^n8+?Y9bjB7DjW^scZnSdD`|Wd?fi{s)k; z`?0TwZ;(D^21W^339>l0U-Vi?6@AJKj6|?kRV`imlo=QYVSm)(cwyBWArAVK85mJv z!?Buk`jiO8T2VL zXkoxoB{SrZbNZASv|>=r2Yt#6SayKz^(uotWd`inz(RYKL7y^%b~>sI`ji>oHb=3n z=u>9UqE4T|--2#W?6wW_WuOMFxG!3_W*lI)|fAmBCrxl`@lA_&dvw zvY}`AWW-;a#z7mojHCIiuN((Z%txH{UHbZ;o2Cl+016D0LY(!D`NNIji}G<01qMnw z&idZIY^~5=c?MA$M{aG`N_WNv25Bb@jA(@qWwq0s&6}1LQDC4yZa(YtsUivt z?T^E(@2E%DX_^nBz(9W-XMM9bo>g4q>s(>RC%Bii6WE4gdm?VGkMqQIcVG0VqKcAV2RRYZZ|?UHq- zk51j9X&gj>f&Mto`i8!45Gk5e@rXK zooO~>c+=7)3JmR!#YVEF3V-o4ADgRrl*xYA!0^o&akbs9`-$9V=#i15G!ETo!S}+9vJii$}_fna&!-Subx2^*sutG!|BatOY{NCGd}&% z=pJ@!J%cE)VQCz8(9k}LWknyLJmZAjM)xp>^9-WE-g?oX9vJii$}=ANbW{&BOV1z* zY+6{Z=7T;!c}Dwvqud^{|2{l}D6peVy>i>7kD~H$A@3o&2%7IYdj?TpL@Rvd`k;>w z7xI7GM)j~y?HNRYK`VpRvZ9X<7xLnDM)k0>?HNRY;Vl*x+ZBC$xRCF7bYu^E;hsSh z7_b!E)9$(X_;4YQ`T0n*8wE!oPX_z9?m8_gD9~3>_4;z27Q3?jAJhv(ZeZ#XAq_NIC5wYjFGvI<|7Xm za?80RdN?=m45Gj|{-mKjFzDmMg?#_45j~tVcm`2mcq^{OI;W2h7jpZI5&79f`5W{M zqKq-L2L`Rq`fwSat!vBe$}^A;u4@r@^OZ1te7KNN(zX(AmJfzY6c{K&W0X@xA0IAc zw3xVd_TQjq5CsO>LURUve7KO&j%~GFPL*d61qRx5a|V5UxEh~)=gm)LJOf`XP+;KO zG)5&=xsMMQGWwNxj^oRUVR;l}^fApD^eHpYKQ`Y3@C>5BMqk;SK_8$zL;HE%H7K_$ z&manH?eoJvgU>mAfbtBCS8<=ACk9bqW9(|qpbt=V9Y|QPN zGw1`9XJ959&((Y!oml&<7~bz>K{4Nt|a81vci|aTmv@iatPj238jF?5-yU zQD9@u(40XZMdjf_#(JmuX`g2h1qRkW%^CFZ;X=l`EuIhhe0T;?U|+oen9h6OV1z*4D1awXVAxo z3mN+w&CfYKgD5bt$I+ZYA0IAc?9aqKGGA7nK@=F#(s;Q~q>m35GEYnqdT~bP8AKT) zo~0&9@l|8gW`y?*@l|6g{NvaEp=Jj3Copv{Q=iw%WfMOGI~@TJ71bwx!y6 ziMrdM)p3^OLoE30j$O5V-kO+RdtvvIKZ@=)kAmhmvY{Vt>E05O?!zq~-YY#rEMYti zo2+6H+N>^g)q@=ixy2Z5UEuYASY3b(H&|Uzi_mI4S5Te}8`5fZLGM7GGI?Cud&{Y{ zQSuf5HoRz|IoMzkRJ7BAIF4=`mp;&UYVBsxbLUZ>joXybTJt%gRrPWyS=1%o7|^O! zus$Pk1b0o2Ko97;ms^QK_vflk ztEVJ+LbQe6fAxy)xuWUTqdePN=aa;n9^o2n(Ls;!_g;n-VA1e*3+h>9Nqe-@g0kB6 zhGFSG*Db7_DGZPDY}mUydVY*d*^H~ZAsz??pju!(G(@6 z5Ztw_#0q#@ZUsDpzDHVn4>pP<+-S!L`4B7MZMhZj%%eOT8YMUCMT;Sq_wT5!605pm zb5bpt>8li^L~PvA0xfLi*sBzLA5X8{Q9JR3*7S0*o#|1qyF)hYc};1TI5Z!3Kl*T6 z+k>;UT?I>#;^TE&26rth&uEJBY>fl;kn050o8+`T!28X3QOBFokb#ekGRm_l8>6V@ zCTc(6TYbb))N4Qne27APL_wyz#ZlB~Jve9%#NB*q6vX{~XcRO?QKPk?5H3-W$u>rQ z>t1h?Pd#{W&^ki~QcHJZ6kq*X>ar6XG0h3 zzx%T7_T6@BW1956A4|`Go^0F}_T~7OTCltI%V~VIB{r%WVxuZeL<6QrdA5JSl_dSe z2I$7;wbX9THF;7~a_B!KPu|v=Sg0_4$TiW2teQOewhNj($u9OKeso5O^0q2up5s8) zk-Bo9p^Wlu-ho98#u-4FK@{A1rc-6m2Pn_r&D=FJhyt5uI#mXJfbtC9tzR>PD6n~^ zQ)SQxD9_++{53O(0-I+#RR(>4@(kYJUo(R!uz99aywT`=AbSRH{8!^(SYQwZnP)mx z27Stm;_CtM@bh6oCQ4;lQ%(3y`IOB2lo@dr%#!|cOlgp^bDfFrmjF^obuuNdeh1KK=ur;MX;DE`ji=7$8Tr)`S(85+af^G zr_6wM2fTN;(j9!`m-G$`Q1mG?qBRe+t0^yiau>Kj(WlIy#fNGQ(x=Se8yaIwe{{6o zVFAiBh=RMf9?_XDefwu2=kx)}GrXOj&UC9}-H;FZlo`;x0NoJPe9))N;LDyhGl&8k z8XaJRsmh=aP@VxDLU@r~WzeV0poZWogFa;j-y5x&K@`}uqE%(k2Pn_*cKeF0ojzp- z-!xeq{m%G$XuF<46xiNgQ85nsXxj5vRFJ*3n<9fgWk&HO(vPqE-`EnxRsvTkM1k!! z0u|$+4^WdmX{1|3kIK@{A%HZ;aNcRUbEmp(vw2KDM01Ap-YiaupVe6>}c`*;RXU{gOiLN4Z< zK8CW_V2m5K-Kq@40iQC1@4t-k{vR$5Irj{rz($F{#-%Y{I_{akpbt=r8zs@eHEC=G%8;;4gmO z2eN0xSMlWK@`}uh+>SNFD~{BT=#oMw3Sj$6@3t{XYh5M z#eu*00p%G)!JQhkfh)FM`T*q_UTb!dL7y^%FZil)cm`2mQ)6D0K_8$z!|T#3riwmg z244wU9NQl}EwpyeAPQ`+Z>ck#`{PsY1lRjO_6%xks^)_}Wro-HTFeK1$_&0;tj6IP zM1f8Hvc{0vQWy>B1C(cA-UaP)HhX>QlF^~8=u>8RU17z1(5KA696p|H`&pl75Ct}M zlT~w0AD}#g8Xk@D+b^6MzFPW}8JKHB!>2Je+_E*~oIYg+X8Op{+w}~hz=&Gq%d2hAAPNlL@w58)$KP)XsiKb$7jo2wh&Ud9 z?PsCRJ%cDPs8_L?56>V93~In#GlM8Fc#qH+cMm@|R4+B4?iE4 zM?sFdcgo)&WA`Y?ymN_=i#exHnc?kV^~@j&Y-+t-a~wp0!CRWf_`>xMh0>*u4;Ql6 zrdv#vXAlL3w_VdSgD5a~ud|vD`uK2-VRi}E%%GJ*vTco1?i0&#aJ|Eupccn|H^=n{ zeSEl(Q3`R5^X;Rb315_F5CsNrf?6DZaw|ys_;4YkHscxxJp6oE9tGK-j27#|$3YYr zygQ1Jiwyesa3SOS;CXG&45GlmHwYbKYmS2`FnHUv`qk3MhYK0K1noh}s;KdoP#>N_ z6d2kQ?T%FCy-!mHQDE?XYLk5AH&=bQkZDh2%?zTzh!zpbZI`io6l9D<)myCIr_7)= zhHB|DEHH?Ij1dl6(=8uYp3)x5$}@-p1LJ(W_d4^0X*+`JeSEl(sdKwpRt(FdAV2FI6c{>-s@%r)K0aK?UQcTA`(Rie1=(9Z>6t+k7_+oycGAnERJ6-h&%M2K@=EXXJ%)5#s8ccT8U>61xD1F ziB$b)>(-DD&mam6YT~Q5UC$s246m=RSh}7;6d1)d4)Tv5d_03FxO1fkT+eY31qOBU zteHU+7`*pfWzffm3%RJ@2R!_ISRMtL_nv_(=7TUZuLM1jGZ($zTV>^5@!>+I9;P)jhysH*rK=43_;4XpbJLm`M1jGZ(p3h1e7KOQ>uJplqQKxy=_-Rh zK3vGu4z*?mQDE?X2}#&u>-Wwf*>01w+6!`zZ1~l4 z>Qk<;IAAgR@ZTE>cCl|d$lR0U)Fnf*Cx>UXH-zC)p1tZT$Oq#Xy=YE?y!dx#*H0VVqW5fznz^_C^}@z8*AB}@$bC4E^6ay&I=lW+o3WGR z^br%&(M#uc|618m(;tRL2^}gu&BPXWsKQg!b4$-adQJx*|4&$cmSL9al zXCqd2e_d`zd!KNtSiL)*Z`hr>)p9eNJ-z#kFSV zadg!e-!a>?8%sVOtj*5jK&q}-w7fQS<%a3MCFdUH*(*C{*T4H8yXlxDCvVX!ojqrD zt*_j(40qb4#l_p|^WFV+w8XVH>y@sWvAXt{+$#1c&kpz7we5a(+w$72(&8uP`M7+p zv@5x@jTGKG%GwxGHTKit+TN1nvRjtd`mES6J5X-Kdld3PHgZ1jehWz$Q?gq7q9Ivd zslihutP|fdAK0c=4f9e~6W*9D_mV9>sq^t!?YX;$WOoX~qdXfHui5gG zi=dByZvF#*En!Ix{k{3%u5H&dnxZ^g%L-u^EwT+(8`9`;Xkiob8)uq3@JUj%$Y%CA zaT}K?$YdwUIm=qo#%c3v8%fU)ZoW(GKgnj+Uu%_H@C)S5ez;qYI=}Gcmh=zbnpZnf z?$&ygXZJa2R$Xl?gnYa!y4!Dff8B1q7cB3&dM$`nj=5jL-4@HoDq*Y=26BkK9-urM zGTn`lmz6S*L+qpgg`6`E%ErjcN>fE2mM+;0DM>~wSlIZ>4a2fWq^x2OSF|?}`b5q7 z^4k_Rek6V3BQhFv!ZM^8EUQLpp4n*U}vwjaBaWb2*AWk>BX zwITJ9;;#JqJ8Y$~!*)ZMACEoZ)&KGao(b!gA*L*?Z2zUM^C7vBDxM=Cl+HGp%cRP+t z_e0MRtijkTDs6p&ith~&M|V24(NEqR>?n-z#z0V>?c+|8cXsYxvcsD)W0H1t{zdpw zRctMiuQ4&hdX9Y7yhtw8Sts zkeuVK-S!7zY@e@h@V@;QnKOuclAL?)>e^>RdS!b^93JJ_asB|t3(^vgk+z#j9HAvj zSg|F}ugA6v#(RHXTKi3Fzx3PE5{(y=Om8*IelJD-u7u6HczlP_;N1J8IX_D zUTR6VI%HmLzy=lvQE~pzrKzGlrX-nm^YU8#?G3Z<%QqNieNu|P)_iRy$%(&NUfcVP z4YNa~20hBNQBO8cL=EoxpSf*U%8CMWpYV!K;)wnEeE04SjOl~B+GfhC&5|8rim_L;6%$>5@ z?K0mzPg;AJy-MtH_9}fl=ewG!jfK&1*N|*8$%jXIcAW1b=LcLnEPds+g|*cZM|e3Y zVa0l$@7`L1@!a*p(q-2!tgR4+M|rlNGh$xSnQcG+0KG|WGmF;x6Z>DJb2#4WpnES` zM9>*HxbP{X$Zr35MEw}vfLH^=PzZ^)IxJQAi=X$gltcz^bpY2{h=V?5M&a&9wpQOm zb)On2`ji>G)nRd5vFjAQp9mCv$_(D>sHTcOWd?6`=pI=iAM`0Rct^wHIBouixeGpih~> z`xDjrpih~>+YnU-eaZ~phOkskt$h+|kUnJwzNoAJoS)+qT1lA!6xi|3MEU!m591&s z-kJE|vySZa6E9JF6F||Y%;4RIYU$Fa%;4RIDuX^{25%}<8T2VLcvB%sK9zj@?6~zq zKIl_s_?2+6FQHGF;a9>%27Ss5-Xdt853YV$&tMmB4ixH~KIJ%gC&1!(=Z<>l+v!tg z@PxmbD*BWeJmIf0=u>9!yxzW#O}Z!V1TIkYDKmIpZ*d%b%VNEy2NZqE44%GMQ$?RL zBc9QhzYqG989Ym`#zCJlgJMV~T*=iC;@4nNvb?+61$pE85z+|_*0r_8`9z|QaGnuiOiDl!ZOHqW`M zanQ%&hzy={R~hsvGkDHjWzeV0;5m1dL7y^%=iK&1y?f8%@SW4A%-}h0)y`g*UTUa48AKg#@QP;n${puVBlRyxLcde`Qg1y%Zey4_~y^z zxb`RKhY`o;gD5cg=Fb>+-@mwNs)z!EZ~lz&<#cA#R1u{N`3h{-_qu$8^UiwlUU0pS z4;M1u{3XeMgmJ~QhljZj^1+!NQDE=|Uy^(xjKx3Psc9TUfx#Di)^?xUVp-@Jd>ll9 z!S{HU^JSOqP$*rdiYPGn9?#;q{Ia8)#z7Pqd|juO%(5SRvLy70K2=14!Pj+`s`b8h zZ=t_ps)%A7IN319MgKRgX+HR(j`;{TOta6O`}aaCVH|u>2S$7oR~c(v4H5+g-?3S$ zPJUq1re#GG7=;&Zg^|;j6;WXDRhq@|n-hv(6!Sq881cOt@^ReK$xZ8nC@}cO%;LCW z!Q!U%K@=E#V`hvoKW?5XqQKybF=O=oT(K`K@=E#&1H;r{`Usg zc4Hhwfx*{Y#yI!$M>mawC@}b%%i7hud(Lv-d5nW7FygH52e&S-O_bXSOJ#S^?~-F@ zllLe5u6mN(@~h>w$!~3#J}L~4@@(vv>U{>?<-AT#OH$FLw_0|DgJwMOiF@qxoi07> zSw6DMxb!2@r8iOH@F>p?`|uivwDuGwh9AyMX$1o^ZApc*)E@LL4Nz+yWj1YHAmm~k zK3t-}rnRdogFZlc25nuenL!lTw82$n&<7~bpskBFGl&A4mcgnF`T*q_v~{s&22o(s zUYWMtLJiUfD9@m+i)tL6K@`}uqE?NAK0tW}ZCzC3@C>5Brfs(>gFZlc26W9f*Pi4V zM1f6Fn^1Td=&L9nNOMVje&#e>z&I~p&s!AiauoqEr|fvnfjOaoOXgE%yxKXaM}14?Q)WQ>f3*9G+~5Zk!-7l{g_mJRAb-x7VwjMJVU)Wch3`ji>8h=SA?XEL5a6xe-M4~qLGg)fReKzYV-8xO8e zS;hK5O!xsspE83sRDkPDi~5!4j&Z~G zjH9S;DQbl!3T$d}MOun+&<7~bpeENUgFa;j?X(!9sBbCilqCx6vyL2G-)=wV13dh^ z4`k2y^!UN``A0Tm(5K9xWfz3pS9U z77TF3`tS^*z-||71-K7eWzfe^X0L{Ehkc*I_u+4``Z#EB#^NaITZ*@1i9#Il-YfD^ z)VE}JYk~3%T92_fiu#r!gD9|3Pw_2sQQwmJ0Oc8IS5N=DSy|Di%s|VJwrh&|mMknV zh=Po-p!r*5`ji>?(we_Trcaqc3pG|&MSV*a78pc9MvoESA{X^7MGeZH5j7~6TOxhR zanPnswIzB6QDCEYef$8v=L8Qw?*rL0(1R~Msu_bmWd^O_Amri~4;H}LV^eHoF%?BYDOV=}q0vofXk@ql;qP`{b0m?Hl@9Ih4lKGSwm?tje z{gOftN1rl-_J1rNe%9w1M1dWxN0f6;AD}#gwkIr(qQ0eQ)50?_*KV$Fi9Y2xFw^fz z-;(*18S&OV@=?^cWcT#T4Bpwdd=&L9ZCYPj)-qrm_v8Rw*FaW#(m%lb3iI}&zNLur zYbvgmERLeSrA^hAVL6WbZyezCEzN)4>syKpqLe**Ko4sirq`n&FF0U;TjLbP_M1cV-@Grj6Z2dtWA1-9P z#|dY`g*x{PqQDsOTEBdagBmRATe8?aO5+fl_wV$@Yzd4vPxbni%%{xg{bWD6Bi?L& zb$%We7(_vC@9w91V9`E0(?0ileM>P8qQE%zqD|Zy$G0o`_;4YwbxXfs1*14dc?MBn zeDTVDJ?ND645GkjId_vLb}hY+4;S*_i~9Aj#$i|<1$o|i{d!pAcm`2m+&^m*XFIc~ zZ^?XoxR4*{>{tKdSQIL_^Xl=8oZ^?Yh43t$k4Nr^umLh{Fuu)IZK4($ilKBAT8K}*; z#_^@gu)rV+GTK%1HI8Qx1qRx5T;upS=;OnMjFxX}oO0=U22o((>uSEn@eHECK#yS- zJF@wI}L9-%?}{1qOQ8str)@+oJSeVld_EYKM?uEy z%+@&N*6tZZfq@xdT;mk=EyYw31qSBVJ?UFAA0IAc%u9RHw-gyffq}X27SC{XCu+8cauwnrUjN%%n zCk9bqaNP!MahBoZAPNlHgIzO&C@^rcRkdI1eSEl(X%Ds<2gC9x$T)9%ykfuB`;-~9 z2V0GUVSzyuWSkpTtn0x4u%B=QIK)+TeU{( zeaZ}4kgdkSu)rV+GR~u`)@Z#?nL&H7)i@Xy7(}UjU%w{SXuVIFL3^;(IB=>D%eG(; z1sV4Ps@7<|Pnkh`u+?);h6M&uka5qUYK_+Wlo_-KTg?Z<0)r^XxUW&QM(cgb4BCUO z#=)?_APO>Ws#LAfdY>|b_F$`VFf1^Lf{YtCRco}~r_7)|*lHXM3k;$lwU@$>$UOHLUax^a-9RI*Rk{8U!QF{2jrI4w_Z6r*ExVY zUiZJUw6X25e(6|wtM5^s?RD}5jVBFgJP9wPCEWNzdVYLUt+&GR7t#$_KlLcjj&G`w zD%@<78*UA`-Incj$gKM1FWGBrXwNz2Dv{-F@a_MeRln&Nlapji(KvMMZOa>b$SZ7* z@@(kj+2Zr2{U%9Xd~?Heh{REo`*49F>5Yu}F%Heg`I4&BZe8B!E$@Uq%Cln}$j2Db zH}KZ~HI`f`sft#0#U?AQ>PkL>9bSF!ysp^c-Rh$5C7%<9M|rl_@1*)NQtHd__FZrK zi&$=j{woRhoi9jPss1axkREmKko0)bmvIvGemIn8hj+=Es`GDN-Z=H04bw9vRiQPA zPt?%VRgWzOaeVOG<&C{Wr_+h@(%YjvJLq)MIIfu9QoB{Ok^DnSH)sTra*x_biZ(8j zWUs?pYX4}Tkgh8==uw^>^p|K2UMc#>?z?_@ZChzqLA#j59<_@}K7u|nUE_XRS%CqrBMZIdG1EP`ZfXG76 zAUX8)9QzWKmFr6~kMe9^|4EX6Q8oFZ^gFk-chy6xB)*sr#35P`QfNaEO$hp((^hoM zlW1OGKD0hg6%7T?i(a)`BO{n*JwX5F$I*~sX`N3SiPh`~^;TSbVsgGFYCgTUN(4B`g z&Bf6`Jc`<7V+o5Wkp*S!zH*)b#(Ppm@=teDLs&jlf(r3T3QLS;DFM5XD$%-^VQgDp zO4oc`N|>ht<3-Ov90inP=lKhzi=5}BD=6keQ7mc6x#j~Y;;O~x&@8b_9Z1fDTww&C zQu&0Cv~=@0H221^au0PN;RbgfhccR?LVT=2i^K9_VL>-dUTb;zsCy`@*ADozz8ysF zH4cx0#v5V3zKmA2(MnEvVz{npvG()~kMccHl1zPR7rj4Uj>DshJ)F;n57*~uOrNuZ z{o*8f_px@pKmY#k<`tojg$ODn9Cx*X=}YsVLc;NwgnUpT;aywAue0uM)|?87{`qTqmc5(0I;K&{ z2Ne?DYvtp{cXo!qvIwJUcH#6%jn~I}u!yCrKWs)tg+AOXteiO&67C^Z5>!Z>{#}3#%^yTsF2V#9Qe77phALO**qrAoC*ou3+~-!Cf+4UA))&% z_Qfjib}A%vPsjdOB|(LRJ~xXW)iWFk#VaZ#^w~VCC%rC$3JHDw<8vZ?=vq-Bq39Ez z2TOtq3B|G0W6jrA^PoaPu`>2$EqzcSp?K`BT=o(pby7$u=EttCr4K43*m2Vybgih6 z=ra z664-a1bt8;p?u}P!8U>liI4{kwGmWEC|i1Le;dJ!OwS@Ia)zIG#YEkST~>7ls3#Uj zYR;Sr{kgARd0$Z>!M_r;2aSpfiFG?(?pg7C+=)!+PNYJ@UGmCNQ6a&8Yq<|9BzzK5 z`k+F>CoCmFg@m72OM(gsKM9uv6%y)_*PW4RJ*bf2-;(CniVBJR?^4b5XMG?^=02#9`26YA0hK;ykMR@?W>4jm9j9zE1zG=$L_Cx4^MZ> z6G_mDCoi4OnZBz+=L?OB1g-KjnOPGj1RuJ(Bxt2L=8SCH4Ld{jTKb@s;#lgkTTQul zcX(nc30f(RrMxR&4~~jfJR|RPCT(2VJVBD6RepLtvTFO>=&6`_)3-Esr*uZPcjJ+; zbC&Z^v`bcsW6sEaxq4cdd3kkdr8wq{Y|e}^t?NN6#W81O@4Yat+0Qw1TDcFX?yE`b z?`vHTS}Be>BYR?aedv8v&VyEYpVa*mZfW&FD|QjBdM+P*s&yW;QXGr@^fiy^CpWjQ zIjz`*x;ifzb!`|`IS*Rp{i&yo`o8rpp_Ss8GqT0sKG`}CS}Be>BYSPzhSpKhN^#5? z*`-@2xB8%!;+QkCg+o(X=RvCw$C`}n!XvT6O?jKf?c;k@~cg zaPCu%iV6v5Q6w~TDkPk#k!Yy<17g(B%IZf&^)M+aON!H?C{aB=IUNY zg@m(n`q0d&knj^gNl+o-rwkIB2Ne>2k|Ci{Q6b@{B@t7PKN~U`bpWG6!cSx(&Ry6O z`h<;C1Qil~>MKV@g+%y1#IY+9wUx88lAyxh>+GzY2Ne>|&P1F#5wF#Sdgk%GEw80H zJ1a*;g+82}kr(dgw~u231?>|L4|~KI1&7OP$A*$OvIQk=QRg3HL5PFns!}8KGrUHFvRwY6+tCr zlQrSmOF1ekBwYC^2`VI9Ln;X>BwVK|2`VI93llLs`_mAwlmSp7;d)yjZkrQw2CX?2 z60Yf$qoP70tbcu_ol)y9Awerw8cQEkNVv{PLi3rz>i1WMq!g^>_R7kjjU5<(h30KKQtU9x>85I>0uEf)at}Yc4uJ)7AJgAWH z8wDjng@oT)CMaxGQF%){3NA04r=^YUn2I=Y@6tf%Q%fJTa>Z1{>^ld- z$z4g%%C%GxlOO)7bp>hVim8a+d(OAcgI2DXiumUCH(Re2tz1hLG5p!9t)rrqYpEjk z?0cqlRJ3x%RK)SQ*SGqhl`EzqE=@d=PSvvYpp`48B36z*6J}nn2d!K&6|rUS9j)`A zl`EzqrY{_99TlyZ+r|A{??CEbh=UjL_Fss0>HVVk^PKRVh&LtI)!)~2M#QteI*JBb z{?eO(_0MyHR$+v-RWsV=-NE!eXCOkxl13HZ7mUA&?+zv+{w`RNuD@?arFTZ-nqRDl b%6p*e49UK=9{Q?%WT%|XND^KDrcUR7;Z8EB literal 0 HcmV?d00001 diff --git a/resources/quality/anycubic_i3_mega/anycubic_i3_mega_draft.inst.cfg b/resources/quality/anycubic_i3_mega/anycubic_i3_mega_draft.inst.cfg index e46fb38e57..ee77117a6b 100644 --- a/resources/quality/anycubic_i3_mega/anycubic_i3_mega_draft.inst.cfg +++ b/resources/quality/anycubic_i3_mega/anycubic_i3_mega_draft.inst.cfg @@ -28,7 +28,7 @@ jerk_travel = 13 layer_height = 0.4 layer_height_0 = 0.4 material_bed_temperature = 60 -material_diameter = 1.7 +material_diameter = 1.75 material_print_temperature = 200 material_print_temperature_layer_0 = 0 retract_at_layer_change = False diff --git a/resources/quality/anycubic_i3_mega/anycubic_i3_mega_high.inst.cfg b/resources/quality/anycubic_i3_mega/anycubic_i3_mega_high.inst.cfg index 0dcedf664e..884ed5b3f9 100644 --- a/resources/quality/anycubic_i3_mega/anycubic_i3_mega_high.inst.cfg +++ b/resources/quality/anycubic_i3_mega/anycubic_i3_mega_high.inst.cfg @@ -28,7 +28,7 @@ jerk_travel = 13 layer_height = 0.1 layer_height_0 = 0.1 material_bed_temperature = 60 -material_diameter = 1.7 +material_diameter = 1.75 material_print_temperature = 200 material_print_temperature_layer_0 = 0 retract_at_layer_change = False diff --git a/resources/quality/anycubic_i3_mega/anycubic_i3_mega_normal.inst.cfg b/resources/quality/anycubic_i3_mega/anycubic_i3_mega_normal.inst.cfg index d528e5f86f..1ecfe49c71 100644 --- a/resources/quality/anycubic_i3_mega/anycubic_i3_mega_normal.inst.cfg +++ b/resources/quality/anycubic_i3_mega/anycubic_i3_mega_normal.inst.cfg @@ -28,7 +28,7 @@ jerk_travel = 13 layer_height = 0.2 layer_height_0 = 0.2 material_bed_temperature = 60 -material_diameter = 1.7 +material_diameter = 1.75 material_print_temperature = 200 material_print_temperature_layer_0 = 0 retract_at_layer_change = False diff --git a/resources/quality/tevo_blackwidow/tevo_blackwidow_draft.inst.cfg b/resources/quality/tevo_blackwidow/tevo_blackwidow_draft.inst.cfg index 21169e428b..88805021eb 100644 --- a/resources/quality/tevo_blackwidow/tevo_blackwidow_draft.inst.cfg +++ b/resources/quality/tevo_blackwidow/tevo_blackwidow_draft.inst.cfg @@ -13,7 +13,7 @@ setting_version = 4 brim_width = 4.0 infill_pattern = zigzag layer_height = 0.4 -material_diameter = 1.7 +material_diameter = 1.75 speed_infill = 50 speed_print = 50 speed_support = 30 diff --git a/resources/quality/tevo_blackwidow/tevo_blackwidow_high.inst.cfg b/resources/quality/tevo_blackwidow/tevo_blackwidow_high.inst.cfg index 60f51b6826..79d020463f 100644 --- a/resources/quality/tevo_blackwidow/tevo_blackwidow_high.inst.cfg +++ b/resources/quality/tevo_blackwidow/tevo_blackwidow_high.inst.cfg @@ -13,7 +13,7 @@ setting_version = 4 brim_width = 4.0 infill_pattern = zigzag layer_height = 0.1 -material_diameter = 1.7 +material_diameter = 1.75 speed_infill = 50 speed_print = 50 speed_support = 30 diff --git a/resources/quality/tevo_blackwidow/tevo_blackwidow_normal.inst.cfg b/resources/quality/tevo_blackwidow/tevo_blackwidow_normal.inst.cfg index 51f5894885..2982c44d3d 100644 --- a/resources/quality/tevo_blackwidow/tevo_blackwidow_normal.inst.cfg +++ b/resources/quality/tevo_blackwidow/tevo_blackwidow_normal.inst.cfg @@ -13,7 +13,7 @@ setting_version = 4 brim_width = 4.0 infill_pattern = zigzag layer_height = 0.2 -material_diameter = 1.7 +material_diameter = 1.75 speed_infill = 60 speed_print = 50 speed_support = 30 From 192db52d4860c495601fc71ca40f4f89b84f5227 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 2 Jan 2018 16:27:13 +0100 Subject: [PATCH 062/124] Spelling We hold American English, at least for user-visible parts. --- plugins/SliceInfoPlugin/SliceInfo.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/SliceInfoPlugin/SliceInfo.py b/plugins/SliceInfoPlugin/SliceInfo.py index 508d174cf2..45402c9c40 100755 --- a/plugins/SliceInfoPlugin/SliceInfo.py +++ b/plugins/SliceInfoPlugin/SliceInfo.py @@ -40,7 +40,7 @@ class SliceInfo(Extension): Preferences.getInstance().addPreference("info/asked_send_slice_info", False) if not Preferences.getInstance().getValue("info/asked_send_slice_info") and Preferences.getInstance().getValue("info/send_slice_info"): - self.send_slice_info_message = Message(catalog.i18nc("@info", "Cura collects anonymised slicing statistics. You can disable this in the preferences."), + self.send_slice_info_message = Message(catalog.i18nc("@info", "Cura collects anonymized slicing statistics. You can disable this in the preferences."), lifetime = 0, dismissable = False, title = catalog.i18nc("@info:title", "Collecting Data")) From 77c8ac3950c2cc50131c0011b9d4078c9f60b787 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Wed, 3 Jan 2018 11:46:20 +0100 Subject: [PATCH 063/124] Layout fixes for controls 2.0 --- resources/qml/Settings/SettingComboBox.qml | 49 +++++++++++-------- resources/qml/Settings/SettingExtruder.qml | 11 ++++- .../qml/Settings/SettingOptionalExtruder.qml | 9 +++- 3 files changed, 44 insertions(+), 25 deletions(-) diff --git a/resources/qml/Settings/SettingComboBox.qml b/resources/qml/Settings/SettingComboBox.qml index eaa22e1a9f..63ed5d2030 100644 --- a/resources/qml/Settings/SettingComboBox.qml +++ b/resources/qml/Settings/SettingComboBox.qml @@ -16,42 +16,43 @@ SettingItem id: control model: definition.options - textRole: "value"; + textRole: "value" anchors.fill: parent MouseArea { - anchors.fill: parent; - acceptedButtons: Qt.NoButton; - onWheel: wheel.accepted = true; + anchors.fill: parent + acceptedButtons: Qt.NoButton + onWheel: wheel.accepted = true } background: Rectangle { color: { - if(!enabled) - { + if (!enabled) { return UM.Theme.getColor("setting_control_disabled") } - if(control.hovered || control.activeFocus) - { + + if (control.hovered || control.activeFocus) { return UM.Theme.getColor("setting_control_highlight") } + return UM.Theme.getColor("setting_control") } + border.width: UM.Theme.getSize("default_lining").width border.color: { - if(!enabled) - { + if (!enabled) { return UM.Theme.getColor("setting_control_disabled_border") } - if(control.hovered || control.activeFocus) - { + + if (control.hovered || control.activeFocus) { return UM.Theme.getColor("setting_control_border_highlight") } + return UM.Theme.getColor("setting_control_border") } } @@ -68,29 +69,34 @@ SettingItem sourceSize.width: width + 5 * screenScaleFactor sourceSize.height: width + 5 * screenScaleFactor - color: UM.Theme.getColor("setting_control_text"); + color: UM.Theme.getColor("setting_control_text") } contentItem: Label { - text: control.currentText; - font: UM.Theme.getFont("default"); - color: !enabled ? UM.Theme.getColor("setting_control_disabled_text") : UM.Theme.getColor("setting_control_text"); - elide: Text.ElideRight; - verticalAlignment: Text.AlignVCenter; + anchors.left: parent.left + anchors.leftMargin: UM.Theme.getSize("setting_unit_margin").width + anchors.verticalCenter: parent.verticalCenter + anchors.right: parent.left + + text: control.currentText + font: UM.Theme.getFont("default") + color: !enabled ? UM.Theme.getColor("setting_control_disabled_text") : UM.Theme.getColor("setting_control_text") + elide: Text.ElideRight + verticalAlignment: Text.AlignVCenter } onActivated: { - forceActiveFocus(); - propertyProvider.setPropertyValue("value", definition.options[index].key); + forceActiveFocus() + propertyProvider.setPropertyValue("value", definition.options[index].key) } onActiveFocusChanged: { if(activeFocus) { - base.focusReceived(); + base.focusReceived() } } @@ -98,6 +104,7 @@ SettingItem { base.setActiveFocusToNextSetting(true) } + Keys.onBacktabPressed: { base.setActiveFocusToNextSetting(false) diff --git a/resources/qml/Settings/SettingExtruder.qml b/resources/qml/Settings/SettingExtruder.qml index 0568343b8c..94e565551a 100644 --- a/resources/qml/Settings/SettingExtruder.qml +++ b/resources/qml/Settings/SettingExtruder.qml @@ -107,14 +107,18 @@ SettingItem return UM.Theme.getColor("setting_control_border") } } + contentItem: Item { Label { id: extruderText + anchors.verticalCenter: parent.verticalCenter anchors.left: parent.left + anchors.leftMargin: UM.Theme.getSize("setting_unit_margin").width anchors.right: swatch.left + text: control.currentText font: UM.Theme.getFont("default") color: enabled ? UM.Theme.getColor("setting_control_text") : UM.Theme.getColor("setting_control_disabled_text") @@ -122,6 +126,7 @@ SettingItem elide: Text.ElideLeft verticalAlignment: Text.AlignVCenter } + Rectangle { id: swatch @@ -129,9 +134,11 @@ SettingItem width: height anchors.right: parent.right - anchors.rightMargin: control.indicator.width + control.spacing + anchors.rightMargin: control.indicator.width + UM.Theme.getSize("setting_unit_margin").width + anchors.verticalCenter: parent.verticalCenter + anchors.margins: UM.Theme.getSize("default_margin").width / 4 - border.width: UM.Theme.getSize("default_lining").width * 2 + border.width: UM.Theme.getSize("default_lining").width border.color: enabled ? UM.Theme.getColor("setting_control_border") : UM.Theme.getColor("setting_control_disabled_border") radius: width / 2 diff --git a/resources/qml/Settings/SettingOptionalExtruder.qml b/resources/qml/Settings/SettingOptionalExtruder.qml index 43588edfce..e336ad4101 100644 --- a/resources/qml/Settings/SettingOptionalExtruder.qml +++ b/resources/qml/Settings/SettingOptionalExtruder.qml @@ -132,8 +132,10 @@ SettingItem Label { id: extruderText + anchors.verticalCenter: parent.verticalCenter anchors.left: parent.left + anchors.leftMargin: UM.Theme.getSize("setting_unit_margin").width anchors.right: swatch.left text: control.currentText @@ -143,6 +145,7 @@ SettingItem elide: Text.ElideRight verticalAlignment: Text.AlignVCenter } + Rectangle { id: swatch @@ -150,9 +153,11 @@ SettingItem width: height anchors.right: parent.right - anchors.rightMargin: control.indicator.width + control.spacing + anchors.rightMargin: control.indicator.width + UM.Theme.getSize("setting_unit_margin").width + anchors.verticalCenter: parent.verticalCenter + anchors.margins: UM.Theme.getSize("default_margin").width / 4 - border.width: UM.Theme.getSize("default_lining").width * 2 + border.width: UM.Theme.getSize("default_lining").width border.color: enabled ? UM.Theme.getColor("setting_control_border") : UM.Theme.getColor("setting_control_disabled_border") radius: width / 2 From 1fe653b231cd00d72bcbc92521e4434824e83912 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Wed, 3 Jan 2018 12:47:08 +0100 Subject: [PATCH 064/124] Fix combobox dropdown item height --- resources/qml/Settings/SettingComboBox.qml | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/resources/qml/Settings/SettingComboBox.qml b/resources/qml/Settings/SettingComboBox.qml index 63ed5d2030..52d0976e76 100644 --- a/resources/qml/Settings/SettingComboBox.qml +++ b/resources/qml/Settings/SettingComboBox.qml @@ -86,6 +86,22 @@ SettingItem verticalAlignment: Text.AlignVCenter } + delegate: ItemDelegate + { + width: control.width + height: control.height + highlighted: control.highlightedIndex == index + + contentItem: Text + { + text: modelData.value + color: control.contentItem.color + font: control.font + elide: Text.ElideRight + verticalAlignment: Text.AlignVCenter + } + } + onActivated: { forceActiveFocus() @@ -118,16 +134,14 @@ SettingItem { // FIXME this needs to go away once 'resolve' is combined with 'value' in our data model. var value = undefined; - if ((base.resolve != "None") && (base.stackLevel != 0) && (base.stackLevel != 1)) - { + if ((base.resolve != "None") && (base.stackLevel != 0) && (base.stackLevel != 1)) { // We have a resolve function. Indicates that the setting is not settable per extruder and that // we have to choose between the resolved value (default) and the global value // (if user has explicitly set this). value = base.resolve; } - if (value == undefined) - { + if (value == undefined) { value = propertyProvider.properties.value; } From c8243a0dddd1fdc07edea8240c0de990a979fb26 Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Wed, 3 Jan 2018 12:47:09 +0100 Subject: [PATCH 065/124] CURA-4525 fix convex hull, changed size of object list --- cura/ConvexHullNode.py | 4 ++-- resources/themes/cura-light/theme.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/cura/ConvexHullNode.py b/cura/ConvexHullNode.py index cec9d3d698..02d8ed833c 100644 --- a/cura/ConvexHullNode.py +++ b/cura/ConvexHullNode.py @@ -64,8 +64,8 @@ class ConvexHullNode(SceneNode): ConvexHullNode.shader.setUniformValue("u_diffuseColor", self._color) ConvexHullNode.shader.setUniformValue("u_opacity", 0.6) - if self.getParent() and self.getParent().callDecoration("getBuildPlateNumber") == Application.getInstance().getBuildPlateModel().activeBuildPlate: - if self.getMeshData(): + if self.getParent(): + if self.getMeshData() and issubclass(type(self._node), SceneNode) and self._node.callDecoration("getBuildPlateNumber") == Application.getInstance().getBuildPlateModel().activeBuildPlate: renderer.queueNode(self, transparent = True, shader = ConvexHullNode.shader, backface_cull = True, sort = -8) if self._convex_hull_head_mesh: renderer.queueNode(self, shader = ConvexHullNode.shader, transparent = True, mesh = self._convex_hull_head_mesh, backface_cull = True, sort = -8) diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 18f2650e77..5b3e2f019a 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -394,7 +394,7 @@ "jobspecs_line": [2.0, 2.0], "objects_menu_size": [20, 40], - "objects_menu_size_collapsed": [15, 15], + "objects_menu_size_collapsed": [15, 17], "build_plate_selection_size": [15, 5], "objects_menu_button": [0.3, 2.7] } From 3a2b2d33338d37bad61fdf17d3a046e9614d5f8c Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Wed, 3 Jan 2018 12:48:33 +0100 Subject: [PATCH 066/124] Also fix combobox list item heights for extruder dropdowns --- resources/qml/Settings/SettingExtruder.qml | 16 ++++++++++++++++ .../qml/Settings/SettingOptionalExtruder.qml | 16 ++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/resources/qml/Settings/SettingExtruder.qml b/resources/qml/Settings/SettingExtruder.qml index 94e565551a..dae6171bbf 100644 --- a/resources/qml/Settings/SettingExtruder.qml +++ b/resources/qml/Settings/SettingExtruder.qml @@ -145,5 +145,21 @@ SettingItem color: control.color } } + + delegate: ItemDelegate + { + width: control.width + height: control.height + highlighted: control.highlightedIndex == index + + contentItem: Text + { + text: modelData.value + color: control.contentItem.color + font: control.font + elide: Text.ElideRight + verticalAlignment: Text.AlignVCenter + } + } } } diff --git a/resources/qml/Settings/SettingOptionalExtruder.qml b/resources/qml/Settings/SettingOptionalExtruder.qml index e336ad4101..02ecfb8a2b 100644 --- a/resources/qml/Settings/SettingOptionalExtruder.qml +++ b/resources/qml/Settings/SettingOptionalExtruder.qml @@ -164,5 +164,21 @@ SettingItem color: control.color } } + + delegate: ItemDelegate + { + width: control.width + height: control.height + highlighted: control.highlightedIndex == index + + contentItem: Text + { + text: modelData.value + color: control.contentItem.color + font: control.font + elide: Text.ElideRight + verticalAlignment: Text.AlignVCenter + } + } } } From cb1484ee63f9cba6f2210bdc3232b7af5e31f9bd Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Wed, 3 Jan 2018 12:52:32 +0100 Subject: [PATCH 067/124] CURA-4525 update size and margins of objects list --- resources/qml/Cura.qml | 4 ---- resources/themes/cura-light/theme.json | 2 +- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index ec9773679a..39834b88b3 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -383,10 +383,6 @@ UM.MainWindow { bottom: parent.bottom; left: parent.left; - leftMargin: UM.Theme.getSize("default_margin").width; - rightMargin: UM.Theme.getSize("default_margin").width; - topMargin: UM.Theme.getSize("default_margin").height; - bottomMargin: UM.Theme.getSize("default_margin").height; } } diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 5b3e2f019a..53bef1e7d9 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -394,7 +394,7 @@ "jobspecs_line": [2.0, 2.0], "objects_menu_size": [20, 40], - "objects_menu_size_collapsed": [15, 17], + "objects_menu_size_collapsed": [20, 17], "build_plate_selection_size": [15, 5], "objects_menu_button": [0.3, 2.7] } From 1fa303148605cea938d03ffdbb9820ce53222d0f Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Wed, 3 Jan 2018 12:52:40 +0100 Subject: [PATCH 068/124] Fix text color for extruder comboboxes --- resources/qml/Settings/SettingExtruder.qml | 2 +- resources/qml/Settings/SettingOptionalExtruder.qml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/qml/Settings/SettingExtruder.qml b/resources/qml/Settings/SettingExtruder.qml index dae6171bbf..8047231c12 100644 --- a/resources/qml/Settings/SettingExtruder.qml +++ b/resources/qml/Settings/SettingExtruder.qml @@ -155,7 +155,7 @@ SettingItem contentItem: Text { text: modelData.value - color: control.contentItem.color + color: extruderText.color font: control.font elide: Text.ElideRight verticalAlignment: Text.AlignVCenter diff --git a/resources/qml/Settings/SettingOptionalExtruder.qml b/resources/qml/Settings/SettingOptionalExtruder.qml index 02ecfb8a2b..85e8c2fac7 100644 --- a/resources/qml/Settings/SettingOptionalExtruder.qml +++ b/resources/qml/Settings/SettingOptionalExtruder.qml @@ -174,7 +174,7 @@ SettingItem contentItem: Text { text: modelData.value - color: control.contentItem.color + color: extruderText.color font: control.font elide: Text.ElideRight verticalAlignment: Text.AlignVCenter From b7aadbe3c363deed0340e5f20cc762be7efd20e1 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Wed, 3 Jan 2018 13:08:20 +0100 Subject: [PATCH 069/124] Fix extruder dropdown text model --- resources/qml/Settings/SettingComboBox.qml | 2 +- resources/qml/Settings/SettingExtruder.qml | 4 ++-- resources/qml/Settings/SettingOptionalExtruder.qml | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/resources/qml/Settings/SettingComboBox.qml b/resources/qml/Settings/SettingComboBox.qml index 52d0976e76..2f3a13206c 100644 --- a/resources/qml/Settings/SettingComboBox.qml +++ b/resources/qml/Settings/SettingComboBox.qml @@ -77,7 +77,7 @@ SettingItem anchors.left: parent.left anchors.leftMargin: UM.Theme.getSize("setting_unit_margin").width anchors.verticalCenter: parent.verticalCenter - anchors.right: parent.left + anchors.right: indicator.left text: control.currentText font: UM.Theme.getFont("default") diff --git a/resources/qml/Settings/SettingExtruder.qml b/resources/qml/Settings/SettingExtruder.qml index 8047231c12..f7b0be69f6 100644 --- a/resources/qml/Settings/SettingExtruder.qml +++ b/resources/qml/Settings/SettingExtruder.qml @@ -154,8 +154,8 @@ SettingItem contentItem: Text { - text: modelData.value - color: extruderText.color + text: model.name + color: UM.Theme.getColor("setting_control_text") font: control.font elide: Text.ElideRight verticalAlignment: Text.AlignVCenter diff --git a/resources/qml/Settings/SettingOptionalExtruder.qml b/resources/qml/Settings/SettingOptionalExtruder.qml index 85e8c2fac7..b1b11f3b20 100644 --- a/resources/qml/Settings/SettingOptionalExtruder.qml +++ b/resources/qml/Settings/SettingOptionalExtruder.qml @@ -173,8 +173,8 @@ SettingItem contentItem: Text { - text: modelData.value - color: extruderText.color + text: model.name + color: UM.Theme.getColor("setting_control_text") font: control.font elide: Text.ElideRight verticalAlignment: Text.AlignVCenter From dd989a1a51be0854a47515500d016c13bda39ae6 Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Wed, 3 Jan 2018 13:43:09 +0100 Subject: [PATCH 070/124] CURA-4525 refresh objects list of all items after changing build plate --- cura/Scene/BuildPlateDecorator.py | 9 +++------ cura/Scene/CuraSceneNode.py | 3 +++ 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/cura/Scene/BuildPlateDecorator.py b/cura/Scene/BuildPlateDecorator.py index 36b89c5e5d..44372976f0 100644 --- a/cura/Scene/BuildPlateDecorator.py +++ b/cura/Scene/BuildPlateDecorator.py @@ -1,5 +1,5 @@ from UM.Scene.SceneNodeDecorator import SceneNodeDecorator -from UM.Scene.SceneNode import SceneNode +from cura.Scene.CuraSceneNode import CuraSceneNode ## Make a SceneNode build plate aware CuraSceneNode objects all have this decorator. @@ -13,14 +13,11 @@ class BuildPlateDecorator(SceneNodeDecorator): # Make sure that groups are set correctly # setBuildPlateForSelection in CuraActions makes sure that no single childs are set. self._build_plate_number = nr - # if issubclass(type(self._node), SceneNode): # TODO: Crashes on ArrangeObjectsAllBuildPlatesJob - # self._node.transformationChanged.emit() - #self._node.transformationChanged.emit() + if issubclass(type(self._node), CuraSceneNode): + self._node.transformChanged() # trigger refresh node without introducing a new signal if self._node and self._node.callDecoration("isGroup"): for child in self._node.getChildren(): child.callDecoration("setBuildPlateNumber", nr) - # if issubclass(type(child), SceneNode): - # child.transformationChanged.emit() def getBuildPlateNumber(self): return self._build_plate_number diff --git a/cura/Scene/CuraSceneNode.py b/cura/Scene/CuraSceneNode.py index e68405daf6..9df2931f0b 100644 --- a/cura/Scene/CuraSceneNode.py +++ b/cura/Scene/CuraSceneNode.py @@ -38,3 +38,6 @@ class CuraSceneNode(SceneNode): copy.addChild(deepcopy(child, memo)) self.calculateBoundingBoxMesh() return copy + + def transformChanged(self) -> None: + self._transformChanged() From 1476e95adcc890add7a06700b5830449961f9c18 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Wed, 3 Jan 2018 13:45:18 +0100 Subject: [PATCH 071/124] Fix mode switching buttons functionality --- resources/qml/Sidebar.qml | 69 +++++++++++++++++++++++++++++---------- 1 file changed, 52 insertions(+), 17 deletions(-) diff --git a/resources/qml/Sidebar.qml b/resources/qml/Sidebar.qml index 62b7e3bfe1..03f5c5858e 100644 --- a/resources/qml/Sidebar.qml +++ b/resources/qml/Sidebar.qml @@ -118,11 +118,12 @@ Rectangle UM.Preferences.setValue("cura/active_mode", currentModeIndex); if(modesListModel.count > base.currentModeIndex) { - sidebarContents.push(modesListModel.get(base.currentModeIndex).item, {"replace": true }); + sidebarContents.replace(modesListModel.get(base.currentModeIndex).item, { "replace": true }) } } - Label { + Label + { id: settingsModeLabel text: !hideSettings ? catalog.i18nc("@label:listbox", "Print Setup") : catalog.i18nc("@label:listbox","Print Setup disabled\nG-code files cannot be modified"); anchors.left: parent.left @@ -135,13 +136,18 @@ Rectangle visible: !monitoringPrint && !hideView } - Rectangle { + // Settings mode selection toggle + Rectangle + { id: settingsModeSelection color: "transparent" + width: Math.floor(parent.width * 0.55) height: UM.Theme.getSize("sidebar_header_mode_toggle").height + anchors.right: parent.right anchors.rightMargin: UM.Theme.getSize("sidebar_margin").width + anchors.topMargin: UM.Theme.getSize("sidebar_margin").height anchors.top: { if (settingsModeLabel.contentWidth >= parent.width - width - UM.Theme.getSize("sidebar_margin").width * 2) @@ -153,39 +159,68 @@ Rectangle return headerSeparator.bottom; } } - anchors.topMargin: UM.Theme.getSize("sidebar_margin").height + visible: !monitoringPrint && !hideSettings && !hideView - Component{ + + Component + { id: wizardDelegate - Button { + + Button + { height: settingsModeSelection.height + width: Math.floor(0.5 * parent.width) + anchors.left: parent.left anchors.leftMargin: model.index * Math.floor(settingsModeSelection.width / 2) anchors.verticalCenter: parent.verticalCenter - width: Math.floor(0.5 * parent.width) + text: model.text - ButtonGroup.group: modeMenuGroup; - checkable: true; + + ButtonGroup.group: modeMenuGroup + + checkable: true checked: base.currentModeIndex == index + onClicked: base.currentModeIndex = index - onHoveredChanged: { + onHoveredChanged: + { if (hovered) { tooltipDelayTimer.item = settingsModeSelection tooltipDelayTimer.text = model.tooltipText - tooltipDelayTimer.start(); + tooltipDelayTimer.start() } else { - tooltipDelayTimer.stop(); - base.hideTooltip(); + tooltipDelayTimer.stop() + base.hideTooltip() } } + contentItem: Text + { + text: control.text + color: (control.checked || control.pressed) ? UM.Theme.getColor("action_button_active") : control.hovered ? UM.Theme.getColor("action_button_hovered") : UM.Theme.getColor("action_button") + font: control.font + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter + elide: Text.ElideRight + } + + background: Rectangle + { + border.width: control.checked ? UM.Theme.getSize("default_lining").width * 2 : UM.Theme.getSize("default_lining").width + border.color: (control.checked || control.pressed) ? UM.Theme.getColor("action_button_active_border") : control.hovered ? UM.Theme.getColor("action_button_hovered_border"): UM.Theme.getColor("action_button_border") + } } } - ButtonGroup { id: modeMenuGroup; } + + ButtonGroup + { + id: modeMenuGroup + } ListView { @@ -210,7 +245,7 @@ Rectangle anchors.right: base.right visible: !monitoringPrint && !hideSettings - pushEnter:Transition { + replaceEnter: Transition { PropertyAnimation { property: "opacity" from: 0 @@ -219,7 +254,7 @@ Rectangle } } - pushExit: Transition { + replaceExit: Transition { PropertyAnimation { property: "opacity" from: 1 @@ -560,7 +595,7 @@ Rectangle tooltipText: catalog.i18nc("@tooltip", "Custom Print Setup

Print with finegrained control over every last bit of the slicing process."), item: sidebarAdvanced }) - sidebarContents.push( modesListModel.get(base.currentModeIndex).item, {"immediate": true }); + sidebarContents.replace( modesListModel.get(base.currentModeIndex).item, { "immediate": true }) var index = Math.floor(UM.Preferences.getValue("cura/active_mode")) if(index) From 4f77b2ea6d4c6e4221abe0758ee70e19040f7d6c Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Wed, 3 Jan 2018 13:50:06 +0100 Subject: [PATCH 072/124] More layout and font fixes --- resources/qml/Settings/SettingComboBox.qml | 2 +- resources/qml/Settings/SettingExtruder.qml | 2 +- resources/qml/Settings/SettingOptionalExtruder.qml | 2 +- resources/qml/Sidebar.qml | 5 +---- 4 files changed, 4 insertions(+), 7 deletions(-) diff --git a/resources/qml/Settings/SettingComboBox.qml b/resources/qml/Settings/SettingComboBox.qml index 2f3a13206c..6168668157 100644 --- a/resources/qml/Settings/SettingComboBox.qml +++ b/resources/qml/Settings/SettingComboBox.qml @@ -96,7 +96,7 @@ SettingItem { text: modelData.value color: control.contentItem.color - font: control.font + font: UM.Theme.getFont("default") elide: Text.ElideRight verticalAlignment: Text.AlignVCenter } diff --git a/resources/qml/Settings/SettingExtruder.qml b/resources/qml/Settings/SettingExtruder.qml index f7b0be69f6..3f7f20b2b5 100644 --- a/resources/qml/Settings/SettingExtruder.qml +++ b/resources/qml/Settings/SettingExtruder.qml @@ -156,7 +156,7 @@ SettingItem { text: model.name color: UM.Theme.getColor("setting_control_text") - font: control.font + font: UM.Theme.getFont("default") elide: Text.ElideRight verticalAlignment: Text.AlignVCenter } diff --git a/resources/qml/Settings/SettingOptionalExtruder.qml b/resources/qml/Settings/SettingOptionalExtruder.qml index b1b11f3b20..4fa7ac9c6c 100644 --- a/resources/qml/Settings/SettingOptionalExtruder.qml +++ b/resources/qml/Settings/SettingOptionalExtruder.qml @@ -175,7 +175,7 @@ SettingItem { text: model.name color: UM.Theme.getColor("setting_control_text") - font: control.font + font: UM.Theme.getFont("default") elide: Text.ElideRight verticalAlignment: Text.AlignVCenter } diff --git a/resources/qml/Sidebar.qml b/resources/qml/Sidebar.qml index 03f5c5858e..60469e6238 100644 --- a/resources/qml/Sidebar.qml +++ b/resources/qml/Sidebar.qml @@ -175,13 +175,10 @@ Rectangle anchors.leftMargin: model.index * Math.floor(settingsModeSelection.width / 2) anchors.verticalCenter: parent.verticalCenter - text: model.text - ButtonGroup.group: modeMenuGroup checkable: true checked: base.currentModeIndex == index - onClicked: base.currentModeIndex = index onHoveredChanged: @@ -201,7 +198,7 @@ Rectangle contentItem: Text { - text: control.text + text: model.text color: (control.checked || control.pressed) ? UM.Theme.getColor("action_button_active") : control.hovered ? UM.Theme.getColor("action_button_hovered") : UM.Theme.getColor("action_button") font: control.font horizontalAlignment: Text.AlignHCenter From 1686f951c9ea64dcaf6cc0927fa052ee88e62754 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Wed, 3 Jan 2018 14:02:35 +0100 Subject: [PATCH 073/124] Finish styling mode switch buttons --- resources/qml/Sidebar.qml | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/resources/qml/Sidebar.qml b/resources/qml/Sidebar.qml index 60469e6238..59d59798bb 100644 --- a/resources/qml/Sidebar.qml +++ b/resources/qml/Sidebar.qml @@ -168,6 +168,8 @@ Rectangle Button { + id: control + height: settingsModeSelection.height width: Math.floor(0.5 * parent.width) @@ -196,20 +198,22 @@ Rectangle } } - contentItem: Text - { - text: model.text - color: (control.checked || control.pressed) ? UM.Theme.getColor("action_button_active") : control.hovered ? UM.Theme.getColor("action_button_hovered") : UM.Theme.getColor("action_button") - font: control.font - horizontalAlignment: Text.AlignHCenter - verticalAlignment: Text.AlignVCenter - elide: Text.ElideRight - } - background: Rectangle { border.width: control.checked ? UM.Theme.getSize("default_lining").width * 2 : UM.Theme.getSize("default_lining").width border.color: (control.checked || control.pressed) ? UM.Theme.getColor("action_button_active_border") : control.hovered ? UM.Theme.getColor("action_button_hovered_border"): UM.Theme.getColor("action_button_border") + + // for some reason, QtQuick decided to use the color of the background property as text color for the contentItem, so here it is + color: (control.checked || control.pressed) ? UM.Theme.getColor("action_button_active") : control.hovered ? UM.Theme.getColor("action_button_hovered") : UM.Theme.getColor("action_button") + } + + contentItem: Text + { + text: model.text + font: UM.Theme.getFont("default") + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter + elide: Text.ElideRight } } } From 2f965cc05338625cfbd4326d2bfb5978e9d3e3db Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Wed, 3 Jan 2018 14:18:40 +0100 Subject: [PATCH 074/124] CURA-4525 switch locations of build plates and objects list --- resources/qml/ObjectsList.qml | 128 +++++++++++++++++----------------- 1 file changed, 65 insertions(+), 63 deletions(-) diff --git a/resources/qml/ObjectsList.qml b/resources/qml/ObjectsList.qml index 761ff6d3f5..a924959581 100644 --- a/resources/qml/ObjectsList.qml +++ b/resources/qml/ObjectsList.qml @@ -62,6 +62,70 @@ Rectangle } } + Component { + id: buildPlateDelegate + Rectangle + { + height: childrenRect.height + color: Cura.BuildPlateModel.getItem(index).buildPlateNumber == Cura.BuildPlateModel.activeBuildPlate ? palette.highlight : index % 2 ? palette.base : palette.alternateBase + width: parent.width + Label + { + id: buildPlateNameLabel + anchors.left: parent.left + anchors.leftMargin: UM.Theme.getSize("default_margin").width + width: parent.width - 2 * UM.Theme.getSize("default_margin").width - 30 + text: Cura.BuildPlateModel.getItem(index) ? Cura.BuildPlateModel.getItem(index).name : ""; + color: Cura.BuildPlateModel.activeBuildPlate == index ? palette.highlightedText : palette.text + elide: Text.ElideRight + } + + MouseArea + { + anchors.fill: parent; + onClicked: + { + Cura.BuildPlateModel.setActiveBuildPlate(index); + } + } + } + } + + ScrollView + { + id: buildPlateSelection + frameVisible: true + height: UM.Theme.getSize("build_plate_selection_size").height + width: parent.width - 2 * UM.Theme.getSize("default_margin").height + style: UM.Theme.styles.scrollview + + anchors + { + top: collapseButton.bottom; + topMargin: UM.Theme.getSize("default_margin").height; + left: parent.left; + leftMargin: UM.Theme.getSize("default_margin").height; + //bottom: objectsList.top; + bottomMargin: UM.Theme.getSize("default_margin").height; + } + + Rectangle + { + parent: viewport + anchors.fill: parent + color: palette.light + } + + ListView + { + id: buildPlateListView + model: Cura.BuildPlateModel + width: parent.width + delegate: buildPlateDelegate + } + } + + Component { id: objectDelegate Rectangle @@ -113,7 +177,7 @@ Rectangle anchors { - top: collapseButton.bottom; + top: buildPlateSelection.bottom; topMargin: UM.Theme.getSize("default_margin").height; left: parent.left; leftMargin: UM.Theme.getSize("default_margin").height; @@ -154,69 +218,7 @@ Rectangle topMargin: UM.Theme.getSize("default_margin").height; bottomMargin: UM.Theme.getSize("default_margin").height; leftMargin: UM.Theme.getSize("default_margin").height; - bottom: buildPlateSelection.top; - } - } - - Component { - id: buildPlateDelegate - Rectangle - { - height: childrenRect.height - color: Cura.BuildPlateModel.getItem(index).buildPlateNumber == Cura.BuildPlateModel.activeBuildPlate ? palette.highlight : index % 2 ? palette.base : palette.alternateBase - width: parent.width - Label - { - id: buildPlateNameLabel - anchors.left: parent.left - anchors.leftMargin: UM.Theme.getSize("default_margin").width - width: parent.width - 2 * UM.Theme.getSize("default_margin").width - 30 - text: Cura.BuildPlateModel.getItem(index) ? Cura.BuildPlateModel.getItem(index).name : ""; - color: Cura.BuildPlateModel.activeBuildPlate == index ? palette.highlightedText : palette.text - elide: Text.ElideRight - } - - MouseArea - { - anchors.fill: parent; - onClicked: - { - Cura.BuildPlateModel.setActiveBuildPlate(index); - } - } - } - } - - ScrollView - { - id: buildPlateSelection - frameVisible: true - height: UM.Theme.getSize("build_plate_selection_size").height - width: parent.width - 2 * UM.Theme.getSize("default_margin").height - style: UM.Theme.styles.scrollview - - anchors - { - topMargin: UM.Theme.getSize("default_margin").height; - left: parent.left; - leftMargin: UM.Theme.getSize("default_margin").height; bottom: arrangeAllBuildPlatesButton.top; - bottomMargin: UM.Theme.getSize("default_margin").height; - } - - Rectangle - { - parent: viewport - anchors.fill: parent - color: palette.light - } - - ListView - { - id: buildPlateListView - model: Cura.BuildPlateModel - width: parent.width - delegate: buildPlateDelegate } } From a5630e5c54ef65e5dcd47d9a99cd1bb92da1acc6 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Wed, 3 Jan 2018 15:05:06 +0100 Subject: [PATCH 075/124] Move all arranging related code into a subfolder --- cura/{ => Arranging}/Arrange.py | 0 .../ArrangeObjectsAllBuildPlatesJob.py | 4 +--- cura/{ => Arranging}/ArrangeObjectsJob.py | 3 +-- cura/Arranging/__init__.py | 0 cura/CuraApplication.py | 10 +++------- cura/MultiplyObjectsJob.py | 12 +----------- tests/TestArrange.py | 4 +--- 7 files changed, 7 insertions(+), 26 deletions(-) rename cura/{ => Arranging}/Arrange.py (100%) mode change 100755 => 100644 rename cura/{ => Arranging}/ArrangeObjectsAllBuildPlatesJob.py (97%) rename cura/{ => Arranging}/ArrangeObjectsJob.py (97%) mode change 100755 => 100644 create mode 100644 cura/Arranging/__init__.py diff --git a/cura/Arrange.py b/cura/Arranging/Arrange.py old mode 100755 new mode 100644 similarity index 100% rename from cura/Arrange.py rename to cura/Arranging/Arrange.py diff --git a/cura/ArrangeObjectsAllBuildPlatesJob.py b/cura/Arranging/ArrangeObjectsAllBuildPlatesJob.py similarity index 97% rename from cura/ArrangeObjectsAllBuildPlatesJob.py rename to cura/Arranging/ArrangeObjectsAllBuildPlatesJob.py index f062c2b23b..6409146ca8 100644 --- a/cura/ArrangeObjectsAllBuildPlatesJob.py +++ b/cura/Arranging/ArrangeObjectsAllBuildPlatesJob.py @@ -4,16 +4,14 @@ from UM.Job import Job from UM.Scene.SceneNode import SceneNode from UM.Math.Vector import Vector -from UM.Operations.SetTransformOperation import SetTransformOperation from UM.Operations.TranslateOperation import TranslateOperation from UM.Operations.GroupedOperation import GroupedOperation -from UM.Logger import Logger from UM.Message import Message from UM.i18n import i18nCatalog i18n_catalog = i18nCatalog("cura") from cura.ZOffsetDecorator import ZOffsetDecorator -from cura.Arrange import Arrange +from cura.Arranging.Arrange import Arrange from cura.ShapeArray import ShapeArray from typing import List diff --git a/cura/ArrangeObjectsJob.py b/cura/Arranging/ArrangeObjectsJob.py old mode 100755 new mode 100644 similarity index 97% rename from cura/ArrangeObjectsJob.py rename to cura/Arranging/ArrangeObjectsJob.py index d650fd7f57..24db529fc1 --- a/cura/ArrangeObjectsJob.py +++ b/cura/Arranging/ArrangeObjectsJob.py @@ -4,7 +4,6 @@ from UM.Job import Job from UM.Scene.SceneNode import SceneNode from UM.Math.Vector import Vector -from UM.Operations.SetTransformOperation import SetTransformOperation from UM.Operations.TranslateOperation import TranslateOperation from UM.Operations.GroupedOperation import GroupedOperation from UM.Logger import Logger @@ -13,7 +12,7 @@ from UM.i18n import i18nCatalog i18n_catalog = i18nCatalog("cura") from cura.ZOffsetDecorator import ZOffsetDecorator -from cura.Arrange import Arrange +from cura.Arranging.Arrange import Arrange from cura.ShapeArray import ShapeArray from typing import List diff --git a/cura/Arranging/__init__.py b/cura/Arranging/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 68213cfdca..51ec131b4a 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -17,7 +17,6 @@ from UM.Scene.Iterator.DepthFirstIterator import DepthFirstIterator from UM.Mesh.ReadMeshJob import ReadMeshJob from UM.Logger import Logger from UM.Preferences import Preferences -from UM.SaveFile import SaveFile from UM.Scene.Selection import Selection from UM.Scene.GroupDecorator import GroupDecorator from UM.Settings.ContainerStack import ContainerStack @@ -33,7 +32,7 @@ from UM.Operations.RemoveSceneNodeOperation import RemoveSceneNodeOperation from UM.Operations.GroupedOperation import GroupedOperation from UM.Operations.SetTransformOperation import SetTransformOperation -from cura.Arrange import Arrange +from cura.Arranging.Arrange import Arrange from cura.ShapeArray import ShapeArray from cura.ConvexHullDecorator import ConvexHullDecorator from cura.SetParentOperation import SetParentOperation @@ -42,8 +41,8 @@ from cura.BlockSlicingDecorator import BlockSlicingDecorator from cura.Scene.BuildPlateDecorator import BuildPlateDecorator from cura.Scene.CuraSceneNode import CuraSceneNode -from cura.ArrangeObjectsJob import ArrangeObjectsJob -from cura.ArrangeObjectsAllBuildPlatesJob import ArrangeObjectsAllBuildPlatesJob +from cura.Arranging.ArrangeObjectsJob import ArrangeObjectsJob +from cura.Arranging.ArrangeObjectsAllBuildPlatesJob import ArrangeObjectsAllBuildPlatesJob from cura.MultiplyObjectsJob import MultiplyObjectsJob from UM.Settings.SettingDefinition import SettingDefinition, DefinitionPropertyType @@ -77,8 +76,6 @@ from cura.Settings.ContainerSettingsModel import ContainerSettingsModel from cura.Settings.MaterialSettingsVisibilityHandler import MaterialSettingsVisibilityHandler from cura.Settings.QualitySettingsModel import QualitySettingsModel from cura.Settings.ContainerManager import ContainerManager -from cura.Settings.GlobalStack import GlobalStack -from cura.Settings.ExtruderStack import ExtruderStack from cura.ObjectManager import ObjectManager from cura.BuildPlateModel import BuildPlateModel @@ -93,7 +90,6 @@ import sys import os.path import numpy import copy -import urllib.parse import os import argparse import json diff --git a/cura/MultiplyObjectsJob.py b/cura/MultiplyObjectsJob.py index 63a38993a2..f724c90c62 100644 --- a/cura/MultiplyObjectsJob.py +++ b/cura/MultiplyObjectsJob.py @@ -2,25 +2,15 @@ # Cura is released under the terms of the LGPLv3 or higher. from UM.Job import Job -from UM.Scene.SceneNode import SceneNode -from UM.Math.Vector import Vector -from UM.Operations.SetTransformOperation import SetTransformOperation -from UM.Operations.TranslateOperation import TranslateOperation from UM.Operations.GroupedOperation import GroupedOperation -from UM.Logger import Logger from UM.Message import Message from UM.i18n import i18nCatalog i18n_catalog = i18nCatalog("cura") -from cura.ZOffsetDecorator import ZOffsetDecorator -from cura.Scene.BuildPlateDecorator import BuildPlateDecorator -from cura.Arrange import Arrange +from cura.Arranging.Arrange import Arrange from cura.ShapeArray import ShapeArray -from typing import List - from UM.Application import Application -from UM.Scene.Selection import Selection from UM.Operations.AddSceneNodeOperation import AddSceneNodeOperation diff --git a/tests/TestArrange.py b/tests/TestArrange.py index f3612c1ac7..1da8ff7ba8 100755 --- a/tests/TestArrange.py +++ b/tests/TestArrange.py @@ -1,8 +1,6 @@ -import pytest import numpy -import time -from cura.Arrange import Arrange +from cura.Arranging.Arrange import Arrange from cura.ShapeArray import ShapeArray From 62b06b063b8e0228d4b2ce28fe7823400c1bd101 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Wed, 3 Jan 2018 15:06:20 +0100 Subject: [PATCH 076/124] Also move other operations into operations subfolder --- cura/CuraActions.py | 2 +- cura/CuraApplication.py | 2 +- cura/{ => Operations}/PlatformPhysicsOperation.py | 0 cura/{ => Operations}/SetParentOperation.py | 0 cura/Operations/__init__.py | 0 cura/PlatformPhysics.py | 2 +- 6 files changed, 3 insertions(+), 3 deletions(-) rename cura/{ => Operations}/PlatformPhysicsOperation.py (100%) rename cura/{ => Operations}/SetParentOperation.py (100%) create mode 100644 cura/Operations/__init__.py diff --git a/cura/CuraActions.py b/cura/CuraActions.py index dbcd31f646..28e13e96b7 100644 --- a/cura/CuraActions.py +++ b/cura/CuraActions.py @@ -14,7 +14,7 @@ from UM.Operations.GroupedOperation import GroupedOperation from UM.Operations.RemoveSceneNodeOperation import RemoveSceneNodeOperation from UM.Operations.SetTransformOperation import SetTransformOperation -from cura.SetParentOperation import SetParentOperation +from cura.Operations.SetParentOperation import SetParentOperation from cura.MultiplyObjectsJob import MultiplyObjectsJob from cura.Settings.SetObjectExtruderOperation import SetObjectExtruderOperation from cura.Settings.ExtruderManager import ExtruderManager diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 51ec131b4a..4790f655f7 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -35,7 +35,7 @@ from UM.Operations.SetTransformOperation import SetTransformOperation from cura.Arranging.Arrange import Arrange from cura.ShapeArray import ShapeArray from cura.ConvexHullDecorator import ConvexHullDecorator -from cura.SetParentOperation import SetParentOperation +from cura.Operations.SetParentOperation import SetParentOperation from cura.SliceableObjectDecorator import SliceableObjectDecorator from cura.BlockSlicingDecorator import BlockSlicingDecorator from cura.Scene.BuildPlateDecorator import BuildPlateDecorator diff --git a/cura/PlatformPhysicsOperation.py b/cura/Operations/PlatformPhysicsOperation.py similarity index 100% rename from cura/PlatformPhysicsOperation.py rename to cura/Operations/PlatformPhysicsOperation.py diff --git a/cura/SetParentOperation.py b/cura/Operations/SetParentOperation.py similarity index 100% rename from cura/SetParentOperation.py rename to cura/Operations/SetParentOperation.py diff --git a/cura/Operations/__init__.py b/cura/Operations/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/cura/PlatformPhysics.py b/cura/PlatformPhysics.py index 7aec519e6f..933d7c8608 100755 --- a/cura/PlatformPhysics.py +++ b/cura/PlatformPhysics.py @@ -12,7 +12,7 @@ from UM.Preferences import Preferences from cura.ConvexHullDecorator import ConvexHullDecorator -from . import PlatformPhysicsOperation +from cura.Operations import PlatformPhysicsOperation from . import ZOffsetDecorator import random # used for list shuffling From 08322d0a5ead26cfdc57d4ba168adf30b252b8aa Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Wed, 3 Jan 2018 15:09:19 +0100 Subject: [PATCH 077/124] Move all decorators in the scene subfolder --- cura/Arranging/Arrange.py | 4 ++-- cura/Arranging/ArrangeObjectsAllBuildPlatesJob.py | 4 ++-- cura/Arranging/ArrangeObjectsJob.py | 4 ++-- cura/{ => Arranging}/ShapeArray.py | 0 cura/CuraApplication.py | 10 +++++----- cura/MultiplyObjectsJob.py | 2 +- cura/PlatformPhysics.py | 4 ++-- cura/{ => Scene}/BlockSlicingDecorator.py | 0 cura/{ => Scene}/ConvexHullDecorator.py | 2 +- cura/{ => Scene}/ConvexHullNode.py | 0 cura/{ => Scene}/GCodeListDecorator.py | 0 cura/{ => Scene}/SliceableObjectDecorator.py | 0 cura/{ => Scene}/ZOffsetDecorator.py | 0 cura/Scene/__init__.py | 0 plugins/3MFReader/ThreeMFReader.py | 5 ++--- plugins/GCodeReader/FlavorParser.py | 2 +- plugins/SimulationView/SimulationView.py | 2 +- tests/TestArrange.py | 2 +- 18 files changed, 20 insertions(+), 21 deletions(-) rename cura/{ => Arranging}/ShapeArray.py (100%) mode change 100755 => 100644 rename cura/{ => Scene}/BlockSlicingDecorator.py (100%) rename cura/{ => Scene}/ConvexHullDecorator.py (99%) rename cura/{ => Scene}/ConvexHullNode.py (100%) rename cura/{ => Scene}/GCodeListDecorator.py (100%) rename cura/{ => Scene}/SliceableObjectDecorator.py (100%) rename cura/{ => Scene}/ZOffsetDecorator.py (100%) create mode 100644 cura/Scene/__init__.py diff --git a/cura/Arranging/Arrange.py b/cura/Arranging/Arrange.py index 7691853f95..5ac0c09dc4 100644 --- a/cura/Arranging/Arrange.py +++ b/cura/Arranging/Arrange.py @@ -1,8 +1,8 @@ from UM.Scene.Iterator.DepthFirstIterator import DepthFirstIterator from UM.Logger import Logger from UM.Math.Vector import Vector -from cura.ShapeArray import ShapeArray -from cura import ZOffsetDecorator +from cura.Arranging.ShapeArray import ShapeArray +from cura.Scene import ZOffsetDecorator from collections import namedtuple diff --git a/cura/Arranging/ArrangeObjectsAllBuildPlatesJob.py b/cura/Arranging/ArrangeObjectsAllBuildPlatesJob.py index 6409146ca8..859ad481d6 100644 --- a/cura/Arranging/ArrangeObjectsAllBuildPlatesJob.py +++ b/cura/Arranging/ArrangeObjectsAllBuildPlatesJob.py @@ -10,9 +10,9 @@ from UM.Message import Message from UM.i18n import i18nCatalog i18n_catalog = i18nCatalog("cura") -from cura.ZOffsetDecorator import ZOffsetDecorator +from cura.Scene.ZOffsetDecorator import ZOffsetDecorator from cura.Arranging.Arrange import Arrange -from cura.ShapeArray import ShapeArray +from cura.Arranging.ShapeArray import ShapeArray from typing import List diff --git a/cura/Arranging/ArrangeObjectsJob.py b/cura/Arranging/ArrangeObjectsJob.py index 24db529fc1..f529543779 100644 --- a/cura/Arranging/ArrangeObjectsJob.py +++ b/cura/Arranging/ArrangeObjectsJob.py @@ -11,9 +11,9 @@ from UM.Message import Message from UM.i18n import i18nCatalog i18n_catalog = i18nCatalog("cura") -from cura.ZOffsetDecorator import ZOffsetDecorator +from cura.Scene.ZOffsetDecorator import ZOffsetDecorator from cura.Arranging.Arrange import Arrange -from cura.ShapeArray import ShapeArray +from cura.Arranging.ShapeArray import ShapeArray from typing import List diff --git a/cura/ShapeArray.py b/cura/Arranging/ShapeArray.py old mode 100755 new mode 100644 similarity index 100% rename from cura/ShapeArray.py rename to cura/Arranging/ShapeArray.py diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 4790f655f7..42bd70fdc8 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -33,11 +33,11 @@ from UM.Operations.GroupedOperation import GroupedOperation from UM.Operations.SetTransformOperation import SetTransformOperation from cura.Arranging.Arrange import Arrange -from cura.ShapeArray import ShapeArray -from cura.ConvexHullDecorator import ConvexHullDecorator +from cura.Arranging.ShapeArray import ShapeArray +from cura.Scene.ConvexHullDecorator import ConvexHullDecorator from cura.Operations.SetParentOperation import SetParentOperation -from cura.SliceableObjectDecorator import SliceableObjectDecorator -from cura.BlockSlicingDecorator import BlockSlicingDecorator +from cura.Scene.SliceableObjectDecorator import SliceableObjectDecorator +from cura.Scene.BlockSlicingDecorator import BlockSlicingDecorator from cura.Scene.BuildPlateDecorator import BuildPlateDecorator from cura.Scene.CuraSceneNode import CuraSceneNode @@ -62,7 +62,7 @@ from . import BuildVolume from . import CameraAnimation from . import PrintInformation from . import CuraActions -from . import ZOffsetDecorator +from cura.Scene import ZOffsetDecorator from . import CuraSplashScreen from . import CameraImageProvider from . import MachineActionManager diff --git a/cura/MultiplyObjectsJob.py b/cura/MultiplyObjectsJob.py index f724c90c62..441d4c96c3 100644 --- a/cura/MultiplyObjectsJob.py +++ b/cura/MultiplyObjectsJob.py @@ -8,7 +8,7 @@ from UM.i18n import i18nCatalog i18n_catalog = i18nCatalog("cura") from cura.Arranging.Arrange import Arrange -from cura.ShapeArray import ShapeArray +from cura.Arranging.ShapeArray import ShapeArray from UM.Application import Application from UM.Operations.AddSceneNodeOperation import AddSceneNodeOperation diff --git a/cura/PlatformPhysics.py b/cura/PlatformPhysics.py index 933d7c8608..06d796eed5 100755 --- a/cura/PlatformPhysics.py +++ b/cura/PlatformPhysics.py @@ -10,10 +10,10 @@ from UM.Math.Vector import Vector from UM.Scene.Selection import Selection from UM.Preferences import Preferences -from cura.ConvexHullDecorator import ConvexHullDecorator +from cura.Scene.ConvexHullDecorator import ConvexHullDecorator from cura.Operations import PlatformPhysicsOperation -from . import ZOffsetDecorator +from cura.Scene import ZOffsetDecorator import random # used for list shuffling diff --git a/cura/BlockSlicingDecorator.py b/cura/Scene/BlockSlicingDecorator.py similarity index 100% rename from cura/BlockSlicingDecorator.py rename to cura/Scene/BlockSlicingDecorator.py diff --git a/cura/ConvexHullDecorator.py b/cura/Scene/ConvexHullDecorator.py similarity index 99% rename from cura/ConvexHullDecorator.py rename to cura/Scene/ConvexHullDecorator.py index 50fa8ce7f6..3a563c2764 100644 --- a/cura/ConvexHullDecorator.py +++ b/cura/Scene/ConvexHullDecorator.py @@ -7,7 +7,7 @@ from UM.Scene.SceneNodeDecorator import SceneNodeDecorator from UM.Settings.ContainerRegistry import ContainerRegistry from cura.Settings.ExtruderManager import ExtruderManager -from . import ConvexHullNode +from cura.Scene import ConvexHullNode import numpy diff --git a/cura/ConvexHullNode.py b/cura/Scene/ConvexHullNode.py similarity index 100% rename from cura/ConvexHullNode.py rename to cura/Scene/ConvexHullNode.py diff --git a/cura/GCodeListDecorator.py b/cura/Scene/GCodeListDecorator.py similarity index 100% rename from cura/GCodeListDecorator.py rename to cura/Scene/GCodeListDecorator.py diff --git a/cura/SliceableObjectDecorator.py b/cura/Scene/SliceableObjectDecorator.py similarity index 100% rename from cura/SliceableObjectDecorator.py rename to cura/Scene/SliceableObjectDecorator.py diff --git a/cura/ZOffsetDecorator.py b/cura/Scene/ZOffsetDecorator.py similarity index 100% rename from cura/ZOffsetDecorator.py rename to cura/Scene/ZOffsetDecorator.py diff --git a/cura/Scene/__init__.py b/cura/Scene/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/plugins/3MFReader/ThreeMFReader.py b/plugins/3MFReader/ThreeMFReader.py index 30b62b59aa..727bce2112 100755 --- a/plugins/3MFReader/ThreeMFReader.py +++ b/plugins/3MFReader/ThreeMFReader.py @@ -4,7 +4,6 @@ import os.path import zipfile -from UM.Job import Job from UM.Logger import Logger from UM.Math.Matrix import Matrix from UM.Math.Vector import Vector @@ -17,8 +16,8 @@ from cura.Settings.ExtruderManager import ExtruderManager from cura.QualityManager import QualityManager from cura.Scene.CuraSceneNode import CuraSceneNode from cura.Scene.BuildPlateDecorator import BuildPlateDecorator -from cura.SliceableObjectDecorator import SliceableObjectDecorator -from cura.ZOffsetDecorator import ZOffsetDecorator +from cura.Scene.SliceableObjectDecorator import SliceableObjectDecorator +from cura.Scene.ZOffsetDecorator import ZOffsetDecorator MYPY = False diff --git a/plugins/GCodeReader/FlavorParser.py b/plugins/GCodeReader/FlavorParser.py index cd317027ee..fa5d6da243 100644 --- a/plugins/GCodeReader/FlavorParser.py +++ b/plugins/GCodeReader/FlavorParser.py @@ -17,7 +17,7 @@ catalog = i18nCatalog("cura") from cura import LayerDataBuilder from cura import LayerDataDecorator from cura.LayerPolygon import LayerPolygon -from cura.GCodeListDecorator import GCodeListDecorator +from cura.Scene.GCodeListDecorator import GCodeListDecorator from cura.Settings.ExtruderManager import ExtruderManager import numpy diff --git a/plugins/SimulationView/SimulationView.py b/plugins/SimulationView/SimulationView.py index 6fc362725e..7a716d3b2b 100644 --- a/plugins/SimulationView/SimulationView.py +++ b/plugins/SimulationView/SimulationView.py @@ -25,7 +25,7 @@ from UM.View.GL.OpenGL import OpenGL from UM.View.GL.OpenGLContext import OpenGLContext from UM.View.View import View from UM.i18n import i18nCatalog -from cura.ConvexHullNode import ConvexHullNode +from cura.Scene.ConvexHullNode import ConvexHullNode from cura.CuraApplication import CuraApplication from .NozzleNode import NozzleNode diff --git a/tests/TestArrange.py b/tests/TestArrange.py index 1da8ff7ba8..737305f638 100755 --- a/tests/TestArrange.py +++ b/tests/TestArrange.py @@ -1,7 +1,7 @@ import numpy from cura.Arranging.Arrange import Arrange -from cura.ShapeArray import ShapeArray +from cura.Arranging.ShapeArray import ShapeArray def gimmeShapeArray(): From e0c2a9e4c7780addc043859369edad400b63a1b0 Mon Sep 17 00:00:00 2001 From: Ian Date: Wed, 3 Jan 2018 15:13:56 +0100 Subject: [PATCH 078/124] Fix for CURA-4111 When centering a scene node, TranslateOperation is used in lieu of SetTransformOperation, to avoid combinations of mirror operations behaving like rotation operations. Instead, any given node is simply translated to 0,0,0. --- cura/CuraActions.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/cura/CuraActions.py b/cura/CuraActions.py index b51728f028..7343eef156 100644 --- a/cura/CuraActions.py +++ b/cura/CuraActions.py @@ -13,6 +13,7 @@ from UM.Scene.Iterator.BreadthFirstIterator import BreadthFirstIterator from UM.Operations.GroupedOperation import GroupedOperation from UM.Operations.RemoveSceneNodeOperation import RemoveSceneNodeOperation from UM.Operations.SetTransformOperation import SetTransformOperation +from UM.Operations.TranslateOperation import TranslateOperation from cura.SetParentOperation import SetParentOperation from cura.MultiplyObjectsJob import MultiplyObjectsJob @@ -54,7 +55,11 @@ class CuraActions(QObject): while current_node.getParent() and current_node.getParent().callDecoration("isGroup"): current_node = current_node.getParent() - center_operation = SetTransformOperation(current_node, Vector()) + # This was formerly done with SetTransformOperation but because of + # unpredictable matrix deconstruction it was possible that mirrors + # could manifest as rotations. Centering is therefore done by + # moving the node to negative whatever its position is: + center_operation = TranslateOperation(current_node, -current_node._position) operation.addOperation(center_operation) operation.push() From e7e5729006c244a3cc1fec88bb1f659eeeabc8e9 Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Wed, 3 Jan 2018 15:21:56 +0100 Subject: [PATCH 079/124] CURA-4525 deselect after move to build plate and build plate change --- cura/BuildPlateModel.py | 1 + cura/CuraActions.py | 2 ++ 2 files changed, 3 insertions(+) diff --git a/cura/BuildPlateModel.py b/cura/BuildPlateModel.py index 118a5ce271..2d558a91b9 100644 --- a/cura/BuildPlateModel.py +++ b/cura/BuildPlateModel.py @@ -28,6 +28,7 @@ class BuildPlateModel(ListModel): return Logger.log("d", "Select build plate: %s" % nr) self._active_build_plate = nr + Selection.clear() self.activeBuildPlateChanged.emit() diff --git a/cura/CuraActions.py b/cura/CuraActions.py index dbcd31f646..a55ef66e01 100644 --- a/cura/CuraActions.py +++ b/cura/CuraActions.py @@ -153,5 +153,7 @@ class CuraActions(QObject): operation.addOperation(SetBuildPlateNumberOperation(node, build_plate_nr)) operation.push() + Selection.clear() + def _openUrl(self, url): QDesktopServices.openUrl(url) From 62487e8ea2dc3603bffaa76989b79179342d46ee Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Wed, 3 Jan 2018 15:41:08 +0100 Subject: [PATCH 080/124] CURA-4525 cleanups and change comment and added new-lines --- cura/Operations/SetBuildPlateNumberOperation.py | 2 +- plugins/CuraEngineBackend/CuraEngineBackend.py | 13 ------------- plugins/CuraEngineBackend/ProcessSlicedLayersJob.py | 2 -- plugins/CuraEngineBackend/StartSliceJob.py | 1 - plugins/ImageReader/ImageReader.py | 1 - plugins/X3DReader/X3DReader.py | 1 - resources/qml/Menus/ContextMenu.qml | 2 ++ 7 files changed, 3 insertions(+), 19 deletions(-) diff --git a/cura/Operations/SetBuildPlateNumberOperation.py b/cura/Operations/SetBuildPlateNumberOperation.py index bbef4caf84..c14d737f93 100644 --- a/cura/Operations/SetBuildPlateNumberOperation.py +++ b/cura/Operations/SetBuildPlateNumberOperation.py @@ -6,7 +6,7 @@ from UM.Operations.Operation import Operation from cura.Settings.SettingOverrideDecorator import SettingOverrideDecorator -## Simple operation to set the extruder a certain object should be printed with. +## Simple operation to set the buildplate number of a scenenode. class SetBuildPlateNumberOperation(Operation): def __init__(self, node: SceneNode, build_plate_nr: int) -> None: self._node = node diff --git a/plugins/CuraEngineBackend/CuraEngineBackend.py b/plugins/CuraEngineBackend/CuraEngineBackend.py index 473dbee31a..74dd515951 100755 --- a/plugins/CuraEngineBackend/CuraEngineBackend.py +++ b/plugins/CuraEngineBackend/CuraEngineBackend.py @@ -357,19 +357,6 @@ class CuraEngineBackend(QObject, Backend): else: self.backendStateChange.emit(BackendState.NotStarted) - # Doesn't occur anymore, is handled in slice() - # if job.getResult() == StartSliceJob.StartJobResult.NothingToSlice: - # if Application.getInstance().platformActivity: - # self._error_message = Message(catalog.i18nc("@info:status", "Nothing to slice because none of the models fit the build volume. Please scale or rotate models to fit."), - # title = catalog.i18nc("@info:title", "Unable to slice")) - # self._error_message.show() - # #self.backendStateChange.emit(BackendState.Error) - # else: - # #self.backendStateChange.emit(BackendState.NotStarted) - # pass - # self._invokeSlice() - # return - # Preparation completed, send it to the backend. self._socket.sendMessage(job.getSliceMessage()) diff --git a/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py b/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py index 5f632768ec..be9c3f73f0 100644 --- a/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py +++ b/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py @@ -4,7 +4,6 @@ import gc from UM.Job import Job -from UM.Scene.Iterator.DepthFirstIterator import DepthFirstIterator from UM.Scene.SceneNode import SceneNode from UM.Application import Application from UM.Mesh.MeshData import MeshData @@ -22,7 +21,6 @@ from cura.Settings.ExtruderManager import ExtruderManager from cura import LayerDataBuilder from cura import LayerDataDecorator from cura import LayerPolygon -# from cura.Scene.CuraSceneNode import CuraSceneNode import numpy from time import time diff --git a/plugins/CuraEngineBackend/StartSliceJob.py b/plugins/CuraEngineBackend/StartSliceJob.py index 9a61c4c8a2..a9618c5472 100644 --- a/plugins/CuraEngineBackend/StartSliceJob.py +++ b/plugins/CuraEngineBackend/StartSliceJob.py @@ -10,7 +10,6 @@ from UM.Job import Job from UM.Application import Application from UM.Logger import Logger -#from UM.Scene.SceneNode import SceneNode from UM.Scene.Iterator.DepthFirstIterator import DepthFirstIterator from UM.Settings.Validator import ValidatorState diff --git a/plugins/ImageReader/ImageReader.py b/plugins/ImageReader/ImageReader.py index 2529abf2d8..3a98abccf5 100644 --- a/plugins/ImageReader/ImageReader.py +++ b/plugins/ImageReader/ImageReader.py @@ -8,7 +8,6 @@ from PyQt5.QtCore import Qt from UM.Mesh.MeshReader import MeshReader from UM.Mesh.MeshBuilder import MeshBuilder -#from UM.Scene.SceneNode import SceneNode from UM.Math.Vector import Vector from UM.Job import Job from UM.Logger import Logger diff --git a/plugins/X3DReader/X3DReader.py b/plugins/X3DReader/X3DReader.py index 883ed7b0b6..b0b9e00a5b 100644 --- a/plugins/X3DReader/X3DReader.py +++ b/plugins/X3DReader/X3DReader.py @@ -11,7 +11,6 @@ from UM.Math.Matrix import Matrix from UM.Math.Vector import Vector from UM.Mesh.MeshBuilder import MeshBuilder from UM.Mesh.MeshReader import MeshReader -#from UM.Scene.SceneNode import SceneNode from cura.Scene.CuraSceneNode import CuraSceneNode as SceneNode MYPY = False diff --git a/resources/qml/Menus/ContextMenu.qml b/resources/qml/Menus/ContextMenu.qml index 910f0a951a..1a4b421572 100644 --- a/resources/qml/Menus/ContextMenu.qml +++ b/resources/qml/Menus/ContextMenu.qml @@ -42,6 +42,7 @@ Menu MenuSeparator { visible: UM.Preferences.getValue("cura/use_multi_build_plate") } + Instantiator { model: Cura.BuildPlateModel @@ -55,6 +56,7 @@ Menu onObjectAdded: base.insertItem(index, object); onObjectRemoved: base.removeItem(object); } + MenuItem { text: "New build plate"; onTriggered: { From 9e5f0e10b968daedfc2ec2e96e9292c55f095cd2 Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Wed, 3 Jan 2018 15:49:31 +0100 Subject: [PATCH 081/124] CURA-4525 add comment and type hint --- cura/Arranging/Arrange.py | 1 + cura/Arranging/ArrangeObjectsAllBuildPlatesJob.py | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/cura/Arranging/Arrange.py b/cura/Arranging/Arrange.py index 5ac0c09dc4..a90a97c3c2 100644 --- a/cura/Arranging/Arrange.py +++ b/cura/Arranging/Arrange.py @@ -169,6 +169,7 @@ class Arrange: # \param x x-coordinate # \param y y-coordinate # \param shape_arr ShapeArray object + # \param update_empty updates the _is_empty, used when adding disallowed areas def place(self, x, y, shape_arr, update_empty = True): x = int(self._scale * x) y = int(self._scale * y) diff --git a/cura/Arranging/ArrangeObjectsAllBuildPlatesJob.py b/cura/Arranging/ArrangeObjectsAllBuildPlatesJob.py index 859ad481d6..3f23b0dbe7 100644 --- a/cura/Arranging/ArrangeObjectsAllBuildPlatesJob.py +++ b/cura/Arranging/ArrangeObjectsAllBuildPlatesJob.py @@ -18,7 +18,7 @@ from typing import List class ArrangeArray: - def __init__(self, x, y, fixed_nodes): + def __init__(self, x: int, y: int, fixed_nodes: List[SceneNode]): self._x = x self._y = y self._fixed_nodes = fixed_nodes From 392be23281c03406a37de0addc09cc8359e15246 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Wed, 3 Jan 2018 15:58:30 +0100 Subject: [PATCH 082/124] Fix SettingView stakc ID binding CURA-4708 --- resources/qml/Settings/SettingView.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/Settings/SettingView.qml b/resources/qml/Settings/SettingView.qml index 1d4e1016bc..5d39572647 100644 --- a/resources/qml/Settings/SettingView.qml +++ b/resources/qml/Settings/SettingView.qml @@ -372,7 +372,7 @@ Item { id: provider - containerStackId: Cura.ExtruderManager.activeExtruderStackId + containerStackId: Cura.MachineManager.activeMachineId key: model.key ? model.key : "" watchedProperties: [ "value", "enabled", "state", "validationState", "settable_per_extruder", "resolve" ] storeIndex: 0 From 5a9e3a8efd0a9e1a69fbcd0c8e4873906bcbcca2 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Wed, 3 Jan 2018 16:18:31 +0100 Subject: [PATCH 083/124] Fix front view button rotation, cleanup view buttons onClicked --- resources/qml/Topbar.qml | 31 ++++++++++++------------------- 1 file changed, 12 insertions(+), 19 deletions(-) diff --git a/resources/qml/Topbar.qml b/resources/qml/Topbar.qml index c016c155a5..bea0a7d2e3 100644 --- a/resources/qml/Topbar.qml +++ b/resources/qml/Topbar.qml @@ -115,10 +115,8 @@ Rectangle iconSource: UM.Theme.getIcon("view_3d") style: UM.Theme.styles.small_tool_button anchors.verticalCenter: viewOrientationControl.verticalCenter - onClicked:{ - UM.Controller.rotateView("3d", 0); - } - visible: base.width - allItemsWidth - 4 * this.width > 0; + onClicked:UM.Controller.rotateView("3d", 0) + visible: base.width - allItemsWidth - 4 * this.width > 0 } // #2 Front view @@ -127,10 +125,11 @@ Rectangle iconSource: UM.Theme.getIcon("view_front") style: UM.Theme.styles.small_tool_button anchors.verticalCenter: viewOrientationControl.verticalCenter - onClicked:{ - UM.Controller.rotateView("home", 0); + onClicked: { + UM.Controller.rotateView("x", 0) + UM.Controller.rotateView("y", 0) } - visible: base.width - allItemsWidth - 3 * this.width > 0; + visible: base.width - allItemsWidth - 3 * this.width > 0 } // #3 Top view @@ -139,10 +138,8 @@ Rectangle iconSource: UM.Theme.getIcon("view_top") style: UM.Theme.styles.small_tool_button anchors.verticalCenter: viewOrientationControl.verticalCenter - onClicked:{ - UM.Controller.rotateView("y", 90); - } - visible: base.width - allItemsWidth - 2 * this.width > 0; + onClicked: UM.Controller.rotateView("y", 90) + visible: base.width - allItemsWidth - 2 * this.width > 0 } // #4 Left view @@ -151,10 +148,8 @@ Rectangle iconSource: UM.Theme.getIcon("view_left") style: UM.Theme.styles.small_tool_button anchors.verticalCenter: viewOrientationControl.verticalCenter - onClicked:{ - UM.Controller.rotateView("x", 90); - } - visible: base.width - allItemsWidth - 1 * this.width > 0; + onClicked: UM.Controller.rotateView("x", 90) + visible: base.width - allItemsWidth - 1 * this.width > 0 } // #5 Left view @@ -163,10 +158,8 @@ Rectangle iconSource: UM.Theme.getIcon("view_right") style: UM.Theme.styles.small_tool_button anchors.verticalCenter: viewOrientationControl.verticalCenter - onClicked:{ - UM.Controller.rotateView("x", -90); - } - visible: base.width - allItemsWidth > 0; + onClicked: UM.Controller.rotateView("x", -90) + visible: base.width - allItemsWidth > 0 } } From b181860f1c108ac6b9a3e6c677c6811a50e4820e Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Wed, 3 Jan 2018 16:27:21 +0100 Subject: [PATCH 084/124] Fix afterOnEditingFinished() CURA-4708 --- plugins/MachineSettingsAction/MachineSettingsAction.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/MachineSettingsAction/MachineSettingsAction.qml b/plugins/MachineSettingsAction/MachineSettingsAction.qml index f89ca8473c..b815d71acc 100644 --- a/plugins/MachineSettingsAction/MachineSettingsAction.qml +++ b/plugins/MachineSettingsAction/MachineSettingsAction.qml @@ -393,7 +393,7 @@ Cura.MachineAction property string label: catalog.i18nc("@label", "Material diameter") property string unit: catalog.i18nc("@label", "mm") property string tooltip: catalog.i18nc("@tooltip", "The nominal diameter of filament supported by the printer. The exact diameter will be overridden by the material and/or the profile.") - property var afterOnEditingFinished: + function afterOnEditingFinished() { if (settingsTabs.currentIndex > 0) { From 47a12b4128c297715d8ed06644dc1a6486115766 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Wed, 3 Jan 2018 16:28:36 +0100 Subject: [PATCH 085/124] Prefer materials from the same brand in auto-update CURA-4708 --- plugins/MachineSettingsAction/MachineSettingsAction.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/MachineSettingsAction/MachineSettingsAction.py b/plugins/MachineSettingsAction/MachineSettingsAction.py index aacedbfbdf..17bb4e5161 100755 --- a/plugins/MachineSettingsAction/MachineSettingsAction.py +++ b/plugins/MachineSettingsAction/MachineSettingsAction.py @@ -241,6 +241,7 @@ class MachineSettingsAction(MachineAction): "type": "material", "approximate_diameter": machine_approximate_diameter, "material": old_material.getMetaDataEntry("material", "value"), + "brand": old_material.getMetaDataEntry("brand", "value"), "supplier": old_material.getMetaDataEntry("supplier", "value"), "color_name": old_material.getMetaDataEntry("color_name", "value"), "definition": materials_definition @@ -251,6 +252,7 @@ class MachineSettingsAction(MachineAction): if old_material == self._empty_container: search_criteria.pop("material", None) search_criteria.pop("supplier", None) + search_criteria.pop("brand", None) search_criteria.pop("definition", None) search_criteria["id"] = extruder_stack.getMetaDataEntry("preferred_material") From cbf6f55fd85156e6f1e0f8f579ad7bee48fd0c61 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Wed, 3 Jan 2018 16:42:00 +0100 Subject: [PATCH 086/124] Fix perfered material search in auto-update CURA-4708 --- plugins/MachineSettingsAction/MachineSettingsAction.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/MachineSettingsAction/MachineSettingsAction.py b/plugins/MachineSettingsAction/MachineSettingsAction.py index 17bb4e5161..ad5957e625 100755 --- a/plugins/MachineSettingsAction/MachineSettingsAction.py +++ b/plugins/MachineSettingsAction/MachineSettingsAction.py @@ -260,6 +260,7 @@ class MachineSettingsAction(MachineAction): if not materials: # Same material with new diameter is not found, search for generic version of the same material type search_criteria.pop("supplier", None) + search_criteria.pop("brand", None) search_criteria["color_name"] = "Generic" materials = self._container_registry.findInstanceContainers(**search_criteria) if not materials: @@ -276,6 +277,6 @@ class MachineSettingsAction(MachineAction): # Just use empty material as a final fallback materials = [self._empty_container] - Logger.log("i", "Selecting new material: %s" % materials[0].getId()) + Logger.log("i", "Selecting new material: %s", materials[0].getId()) extruder_stack.material = materials[0] From 49ae0783966e388ca3af0d55853169bf201464c6 Mon Sep 17 00:00:00 2001 From: Aleksei S Date: Wed, 3 Jan 2018 16:45:26 +0100 Subject: [PATCH 087/124] Adjust 3d view and add Camera View to the menu bar CURA-4642 --- resources/qml/Actions.qml | 41 ++++++++++++++++++++++++++++---- resources/qml/Menus/ViewMenu.qml | 10 +++++++- resources/qml/Topbar.qml | 5 +--- 3 files changed, 47 insertions(+), 9 deletions(-) diff --git a/resources/qml/Actions.qml b/resources/qml/Actions.qml index aa185f8615..53900da4a7 100644 --- a/resources/qml/Actions.qml +++ b/resources/qml/Actions.qml @@ -17,7 +17,12 @@ Item property alias undo: undoAction; property alias redo: redoAction; - property alias homeCamera: homeCameraAction; + property alias view3DCamera: view3DCameraAction; + property alias viewFrontCamera: viewFrontCameraAction; + property alias viewTopCamera: viewTopCameraAction; + property alias viewLeftSideCamera: viewLeftSideCameraAction; + property alias viewRightSideCamera: viewRightSideCameraAction; + property alias expandSidebar: expandSidebarAction; property alias deleteSelection: deleteSelectionAction; @@ -104,9 +109,37 @@ Item Action { - id: homeCameraAction; - text: catalog.i18nc("@action:inmenu menubar:view","&Reset camera position"); - onTriggered: CuraActions.homeCamera(); + id: view3DCameraAction; + text: catalog.i18nc("@action:inmenu menubar:view","&3D View"); + onTriggered: UM.Controller.rotateView("3d", 0); + } + + Action + { + id: viewFrontCameraAction; + text: catalog.i18nc("@action:inmenu menubar:view","&Front View"); + onTriggered: UM.Controller.rotateView("home", 0); + } + + Action + { + id: viewTopCameraAction; + text: catalog.i18nc("@action:inmenu menubar:view","&Top View"); + onTriggered: UM.Controller.rotateView("y", 90); + } + + Action + { + id: viewLeftSideCameraAction; + text: catalog.i18nc("@action:inmenu menubar:view","&Left Side View"); + onTriggered: UM.Controller.rotateView("x", 90); + } + + Action + { + id: viewRightSideCameraAction; + text: catalog.i18nc("@action:inmenu menubar:view","&Right Side View"); + onTriggered: UM.Controller.rotateView("x", -90); } Action diff --git a/resources/qml/Menus/ViewMenu.qml b/resources/qml/Menus/ViewMenu.qml index c8243ad2ed..eca8abd68f 100644 --- a/resources/qml/Menus/ViewMenu.qml +++ b/resources/qml/Menus/ViewMenu.qml @@ -31,6 +31,14 @@ Menu ExclusiveGroup { id: group } MenuSeparator {} - MenuItem { action: Cura.Actions.homeCamera; } + Menu + { + title: catalog.i18nc("@action:inmenu menubar:view","&Camera position"); + MenuItem { action: Cura.Actions.view3DCamera; } + MenuItem { action: Cura.Actions.viewFrontCamera; } + MenuItem { action: Cura.Actions.viewTopCamera; } + MenuItem { action: Cura.Actions.viewLeftSideCamera; } + MenuItem { action: Cura.Actions.viewRightSideCamera; } + } MenuItem { action: Cura.Actions.expandSidebar; } } diff --git a/resources/qml/Topbar.qml b/resources/qml/Topbar.qml index bea0a7d2e3..e3dfb85c49 100644 --- a/resources/qml/Topbar.qml +++ b/resources/qml/Topbar.qml @@ -125,10 +125,7 @@ Rectangle iconSource: UM.Theme.getIcon("view_front") style: UM.Theme.styles.small_tool_button anchors.verticalCenter: viewOrientationControl.verticalCenter - onClicked: { - UM.Controller.rotateView("x", 0) - UM.Controller.rotateView("y", 0) - } + onClicked: UM.Controller.rotateView("home", 0); visible: base.width - allItemsWidth - 3 * this.width > 0 } From 7c4a122767ffa08dc037d35f706c699fd108421a Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Wed, 3 Jan 2018 17:04:07 +0100 Subject: [PATCH 088/124] Fix container_index for MachineSettingsAction CURA-4708 --- plugins/MachineSettingsAction/MachineSettingsAction.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/MachineSettingsAction/MachineSettingsAction.py b/plugins/MachineSettingsAction/MachineSettingsAction.py index ad5957e625..a939d033fc 100755 --- a/plugins/MachineSettingsAction/MachineSettingsAction.py +++ b/plugins/MachineSettingsAction/MachineSettingsAction.py @@ -27,7 +27,9 @@ class MachineSettingsAction(MachineAction): self._qml_url = "MachineSettingsAction.qml" self._global_container_stack = None - self._container_index = 0 + + from cura.Settings.CuraContainerStack import _ContainerIndexes + self._container_index = _ContainerIndexes.DefinitionChanges self._container_registry = ContainerRegistry.getInstance() self._container_registry.containerAdded.connect(self._onContainerAdded) From e18b3b36697f4fc6ee571540b4a4f1484faafdc5 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Wed, 3 Jan 2018 17:29:49 +0100 Subject: [PATCH 089/124] Remove duplicate setting Some merge conflict, I think. Contributes to issue CURA-4523. --- resources/definitions/fdmprinter.def.json | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index cfad51eeb5..15047be75a 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -5377,22 +5377,7 @@ "enabled": "support_enable and (support_pattern == 'zigzag') and support_skip_some_zags", "limit_to_extruder": "support_infill_extruder_nr", "settable_per_mesh": false, - "settable_per_extruder": true, - "children": { - "support_zag_skip_count": { - "label": "Support Chunk Line Count", - "description": "Skip one in every N connection lines to make the support structure easier to break away.", - "type": "int", - "default_value": 5, - "value": "0 if support_line_distance == 0 else round(support_skip_zag_per_mm / support_line_distance)", - "minimum_value": "1", - "minimum_value_warning": "3", - "enabled": "support_enable and (support_pattern == 'zigzag') and support_skip_some_zags", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } + "settable_per_extruder": true } } }, From 8c7a0d4a8e70ddb722943b709c2d2fc9d0dccc2d Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Thu, 4 Jan 2018 09:26:15 +0100 Subject: [PATCH 090/124] CURA-4525 created CuraSceneController and took out logic from ObjectsModel and BuildPlateModel --- cura/BuildPlateModel.py | 52 ++++------------- cura/CuraApplication.py | 27 ++++++--- cura/CuraSceneController.py | 101 ++++++++++++++++++++++++++++++++++ cura/ObjectManager.py | 87 ----------------------------- cura/ObjectsModel.py | 49 +++++++++++++++++ resources/qml/ObjectsList.qml | 16 +++--- 6 files changed, 187 insertions(+), 145 deletions(-) create mode 100644 cura/CuraSceneController.py delete mode 100644 cura/ObjectManager.py create mode 100644 cura/ObjectsModel.py diff --git a/cura/BuildPlateModel.py b/cura/BuildPlateModel.py index 2d558a91b9..73f61202c6 100644 --- a/cura/BuildPlateModel.py +++ b/cura/BuildPlateModel.py @@ -1,7 +1,6 @@ -from UM.Qt.ListModel import ListModel from PyQt5.QtCore import pyqtSignal, pyqtProperty, pyqtSlot -from UM.Scene.Iterator.DepthFirstIterator import DepthFirstIterator -from UM.Scene.SceneNode import SceneNode + +from UM.Qt.ListModel import ListModel from UM.Scene.Selection import Selection from UM.Logger import Logger from UM.Application import Application @@ -14,7 +13,6 @@ class BuildPlateModel(ListModel): def __init__(self): super().__init__() - Application.getInstance().getController().getScene().sceneChanged.connect(self.updateMaxBuildPlate) # it may be a bit inefficient when changing a lot simultaneously Application.getInstance().getController().getScene().sceneChanged.connect(self._updateSelectedObjectBuildPlateNumbers) Selection.selectionChanged.connect(self._updateSelectedObjectBuildPlateNumbers) @@ -22,50 +20,22 @@ class BuildPlateModel(ListModel): self._active_build_plate = -1 self._selection_build_plates = [] - @pyqtSlot(int) - def setActiveBuildPlate(self, nr): - if nr == self._active_build_plate: - return - Logger.log("d", "Select build plate: %s" % nr) - self._active_build_plate = nr - Selection.clear() - - self.activeBuildPlateChanged.emit() - - @pyqtProperty(int, notify = activeBuildPlateChanged) - def activeBuildPlate(self): - return self._active_build_plate + def setMaxBuildPlate(self, max_build_plate): + self._max_build_plate = max_build_plate + self.maxBuildPlateChanged.emit() ## Return the highest build plate number @pyqtProperty(int, notify = maxBuildPlateChanged) def maxBuildPlate(self): return self._max_build_plate - def updateMaxBuildPlate(self, *args): - if args: - source = args[0] - else: - source = None - if not issubclass(type(source), SceneNode): - return - max_build_plate = self._calcMaxBuildPlate() - changed = False - if max_build_plate != self._max_build_plate: - self._max_build_plate = max_build_plate - changed = True - if changed: - self.maxBuildPlateChanged.emit() - build_plates = [{"name": "Build Plate %d" % (i + 1), "buildPlateNumber": i} for i in range(self._max_build_plate + 1)] - self.setItems(build_plates) - self.itemsChanged.emit() + def setActiveBuildPlate(self, nr): + self._active_build_plate = nr + self.activeBuildPlateChanged.emit() - def _calcMaxBuildPlate(self): - max_build_plate = 0 - for node in DepthFirstIterator(Application.getInstance().getController().getScene().getRoot()): - if node.callDecoration("isSliceable"): - build_plate_number = node.callDecoration("getBuildPlateNumber") - max_build_plate = max(build_plate_number, max_build_plate) - return max_build_plate + @pyqtProperty(int, notify = activeBuildPlateChanged) + def activeBuildPlate(self): + return self._active_build_plate @staticmethod def createBuildPlateModel(): diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 42bd70fdc8..1e10b6a40c 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -33,7 +33,10 @@ from UM.Operations.GroupedOperation import GroupedOperation from UM.Operations.SetTransformOperation import SetTransformOperation from cura.Arranging.Arrange import Arrange +from cura.Arranging.ArrangeObjectsJob import ArrangeObjectsJob +from cura.Arranging.ArrangeObjectsAllBuildPlatesJob import ArrangeObjectsAllBuildPlatesJob from cura.Arranging.ShapeArray import ShapeArray +from cura.MultiplyObjectsJob import MultiplyObjectsJob from cura.Scene.ConvexHullDecorator import ConvexHullDecorator from cura.Operations.SetParentOperation import SetParentOperation from cura.Scene.SliceableObjectDecorator import SliceableObjectDecorator @@ -41,9 +44,7 @@ from cura.Scene.BlockSlicingDecorator import BlockSlicingDecorator from cura.Scene.BuildPlateDecorator import BuildPlateDecorator from cura.Scene.CuraSceneNode import CuraSceneNode -from cura.Arranging.ArrangeObjectsJob import ArrangeObjectsJob -from cura.Arranging.ArrangeObjectsAllBuildPlatesJob import ArrangeObjectsAllBuildPlatesJob -from cura.MultiplyObjectsJob import MultiplyObjectsJob +from cura.CuraSceneController import CuraSceneController from UM.Settings.SettingDefinition import SettingDefinition, DefinitionPropertyType from UM.Settings.ContainerRegistry import ContainerRegistry @@ -77,7 +78,7 @@ from cura.Settings.MaterialSettingsVisibilityHandler import MaterialSettingsVisi from cura.Settings.QualitySettingsModel import QualitySettingsModel from cura.Settings.ContainerManager import ContainerManager -from cura.ObjectManager import ObjectManager +from cura.ObjectsModel import ObjectsModel from cura.BuildPlateModel import BuildPlateModel from PyQt5.QtCore import QUrl, pyqtSignal, pyqtProperty, QEvent, Q_ENUMS @@ -211,6 +212,7 @@ class CuraApplication(QtApplication): self._build_plate_model = None self._setting_inheritance_manager = None self._simple_mode_settings_manager = None + self._cura_scene_controller = None self._additional_components = {} # Components to add to certain areas in the interface @@ -398,6 +400,8 @@ class CuraApplication(QtApplication): self._plugin_registry.addSupportedPluginExtension("curaplugin", "Cura Plugin") + self.getCuraSceneController().setActiveBuildPlate(0) # Initialize + def _onEngineCreated(self): self._engine.addImageProvider("camera", CameraImageProvider.CameraImageProvider()) @@ -699,8 +703,9 @@ class CuraApplication(QtApplication): qmlRegisterSingletonType(SimpleModeSettingsManager, "Cura", 1, 2, "SimpleModeSettingsManager", self.getSimpleModeSettingsManager) - qmlRegisterSingletonType(ObjectManager, "Cura", 1, 2, "ObjectManager", self.getObjectManager) + qmlRegisterSingletonType(ObjectsModel, "Cura", 1, 2, "ObjectsModel", self.getObjectsModel) qmlRegisterSingletonType(BuildPlateModel, "Cura", 1, 2, "BuildPlateModel", self.getBuildPlateModel) + qmlRegisterSingletonType(CuraSceneController, "Cura", 1, 2, "SceneController", self.getCuraSceneController) qmlRegisterSingletonType(MachineActionManager.MachineActionManager, "Cura", 1, 0, "MachineActionManager", self.getMachineActionManager) @@ -739,18 +744,22 @@ class CuraApplication(QtApplication): self._material_manager = MaterialManager.createMaterialManager() return self._material_manager - def getObjectManager(self, *args): + def getObjectsModel(self, *args): if self._object_manager is None: - self._object_manager = ObjectManager.createObjectManager() + self._object_manager = ObjectsModel.createObjectsModel() return self._object_manager def getBuildPlateModel(self, *args): if self._build_plate_model is None: self._build_plate_model = BuildPlateModel.createBuildPlateModel() - self._build_plate_model.setActiveBuildPlate(0) # default value return self._build_plate_model + def getCuraSceneController(self, *args): + if self._cura_scene_controller is None: + self._cura_scene_controller = CuraSceneController.createCuraSceneController() + return self._cura_scene_controller + def getSettingInheritanceManager(self, *args): if self._setting_inheritance_manager is None: self._setting_inheritance_manager = SettingInheritanceManager.createSettingInheritanceManager() @@ -1115,7 +1124,7 @@ class CuraApplication(QtApplication): nodes.append(node) job = ArrangeObjectsAllBuildPlatesJob(nodes) job.start() - self.getBuildPlateModel().setActiveBuildPlate(0) + self.getCuraSceneController().setActiveBuildPlate(0) # Initialize # Single build plate @pyqtSlot() diff --git a/cura/CuraSceneController.py b/cura/CuraSceneController.py new file mode 100644 index 0000000000..65723db52c --- /dev/null +++ b/cura/CuraSceneController.py @@ -0,0 +1,101 @@ +from UM.Logger import Logger + +from PyQt5.QtCore import Qt, pyqtSlot, QObject +from PyQt5.QtWidgets import QApplication + +from cura.ObjectsModel import ObjectsModel +from cura.BuildPlateModel import BuildPlateModel + +from UM.Application import Application +from UM.Scene.Iterator.DepthFirstIterator import DepthFirstIterator +from UM.Scene.SceneNode import SceneNode +from UM.Scene.Selection import Selection + + +class CuraSceneController(QObject): + def __init__(self, objects_model: ObjectsModel, build_plate_model: BuildPlateModel): + super().__init__() + + self._objects_model = objects_model + self._build_plate_model = build_plate_model + self._active_build_plate = -1 + + self._last_selected_index = 0 + self._max_build_plate = 1 # default + + Application.getInstance().getController().getScene().sceneChanged.connect(self.updateMaxBuildPlate) # it may be a bit inefficient when changing a lot simultaneously + + def updateMaxBuildPlate(self, *args): + if args: + source = args[0] + else: + source = None + if not issubclass(type(source), SceneNode): + return + max_build_plate = self._calcMaxBuildPlate() + changed = False + if max_build_plate != self._max_build_plate: + self._max_build_plate = max_build_plate + changed = True + if changed: + self._build_plate_model.setMaxBuildPlate(self._max_build_plate) + build_plates = [{"name": "Build Plate %d" % (i + 1), "buildPlateNumber": i} for i in range(self._max_build_plate + 1)] + self._build_plate_model.setItems(build_plates) + # self.buildPlateItemsChanged.emit() # TODO: necessary after setItems? + + def _calcMaxBuildPlate(self): + max_build_plate = 0 + for node in DepthFirstIterator(Application.getInstance().getController().getScene().getRoot()): + if node.callDecoration("isSliceable"): + build_plate_number = node.callDecoration("getBuildPlateNumber") + max_build_plate = max(build_plate_number, max_build_plate) + return max_build_plate + + ## Either select or deselect an item + @pyqtSlot(int) + def changeSelection(self, index): + modifiers = QApplication.keyboardModifiers() + ctrl_is_active = modifiers & Qt.ControlModifier + shift_is_active = modifiers & Qt.ShiftModifier + + if ctrl_is_active: + item = self._objects_model.getItem(index) + node = item["node"] + if Selection.isSelected(node): + Selection.remove(node) + else: + Selection.add(node) + elif shift_is_active: + polarity = 1 if index + 1 > self._last_selected_index else -1 + for i in range(self._last_selected_index, index + polarity, polarity): + item = self._objects_model.getItem(i) + node = item["node"] + Selection.add(node) + else: + # Single select + item = self._objects_model.getItem(index) + node = item["node"] + Selection.clear() + Selection.add(node) + build_plate_number = node.callDecoration("getBuildPlateNumber") + if build_plate_number is not None and build_plate_number != -1: + self._build_plate_model.setActiveBuildPlate(build_plate_number) + + self._last_selected_index = index + + @pyqtSlot(int) + def setActiveBuildPlate(self, nr): + if nr == self._active_build_plate: + return + Logger.log("d", "Select build plate: %s" % nr) + self._active_build_plate = nr + Selection.clear() + + self._build_plate_model.setActiveBuildPlate(nr) + self._objects_model.setActiveBuildPlate(nr) + + @staticmethod + def createCuraSceneController(): + objects_model = Application.getInstance().getObjectsModel() + build_plate_model = Application.getInstance().getBuildPlateModel() + return CuraSceneController(objects_model = objects_model, build_plate_model = build_plate_model) diff --git a/cura/ObjectManager.py b/cura/ObjectManager.py deleted file mode 100644 index 413f43ed73..0000000000 --- a/cura/ObjectManager.py +++ /dev/null @@ -1,87 +0,0 @@ -from UM.Logger import Logger -from PyQt5.QtCore import pyqtSignal, pyqtProperty, pyqtSlot -from UM.Application import Application -from UM.Qt.ListModel import ListModel -from UM.Scene.Iterator.DepthFirstIterator import DepthFirstIterator -from UM.Scene.SceneNode import SceneNode -from UM.Scene.Selection import Selection -from PyQt5.QtCore import Qt -from PyQt5.QtWidgets import QApplication -#from cura.Scene.CuraSceneNode import CuraSceneNode -from UM.Preferences import Preferences - - -## Keep track of all objects in the project -class ObjectManager(ListModel): - def __init__(self): - super().__init__() - self._last_selected_index = 0 - self._build_plate_model = Application.getInstance().getBuildPlateModel() - Application.getInstance().getController().getScene().sceneChanged.connect(self._update) - Preferences.getInstance().preferenceChanged.connect(self._update) - self._build_plate_model.activeBuildPlateChanged.connect(self._update) - - def _update(self, *args): - nodes = [] - filter_current_build_plate = Preferences.getInstance().getValue("view/filter_current_build_plate") - active_build_plate_number = self._build_plate_model.activeBuildPlate - for node in DepthFirstIterator(Application.getInstance().getController().getScene().getRoot()): - if not issubclass(type(node), SceneNode) or (not node.getMeshData() and not node.callDecoration("getLayerData")): - continue - if not node.callDecoration("isSliceable"): - continue - node_build_plate_number = node.callDecoration("getBuildPlateNumber") - if filter_current_build_plate and node_build_plate_number != active_build_plate_number: - continue - nodes.append({ - "name": node.getName(), - "isSelected": Selection.isSelected(node), - "isOutsideBuildArea": node.isOutsideBuildArea(), - "buildPlateNumber": node_build_plate_number, - "node": node - }) - nodes = sorted(nodes, key=lambda n: n["name"]) - self.setItems(nodes) - - self.itemsChanged.emit() - - ## Either select or deselect an item - @pyqtSlot(int) - def changeSelection(self, index): - modifiers = QApplication.keyboardModifiers() - ctrl_is_active = modifiers & Qt.ControlModifier - shift_is_active = modifiers & Qt.ShiftModifier - - if ctrl_is_active: - item = self.getItem(index) - node = item["node"] - if Selection.isSelected(node): - Selection.remove(node) - else: - Selection.add(node) - elif shift_is_active: - polarity = 1 if index + 1 > self._last_selected_index else -1 - for i in range(self._last_selected_index, index + polarity, polarity): - item = self.getItem(i) - node = item["node"] - Selection.add(node) - else: - # Single select - item = self.getItem(index) - node = item["node"] - Selection.clear() - Selection.add(node) - build_plate_number = node.callDecoration("getBuildPlateNumber") - if build_plate_number is not None and build_plate_number != -1: - self._build_plate_model.setActiveBuildPlate(build_plate_number) - - self._last_selected_index = index - - # testing - for node in DepthFirstIterator(Application.getInstance().getController().getScene().getRoot()): - if node.callDecoration("getLayerData"): - Logger.log("d", " ##### NODE: %s", node) - - @staticmethod - def createObjectManager(): - return ObjectManager() diff --git a/cura/ObjectsModel.py b/cura/ObjectsModel.py new file mode 100644 index 0000000000..2e83ee9033 --- /dev/null +++ b/cura/ObjectsModel.py @@ -0,0 +1,49 @@ +from UM.Application import Application +from UM.Qt.ListModel import ListModel +from UM.Scene.Iterator.DepthFirstIterator import DepthFirstIterator +from UM.Scene.SceneNode import SceneNode +from UM.Scene.Selection import Selection +from UM.Preferences import Preferences + + +## Keep track of all objects in the project +class ObjectsModel(ListModel): + def __init__(self): + super().__init__() + + Application.getInstance().getController().getScene().sceneChanged.connect(self._update) + Preferences.getInstance().preferenceChanged.connect(self._update) + + self._build_plate_number = -1 + + def setActiveBuildPlate(self, nr): + self._build_plate_number = nr + self._update() + + def _update(self, *args): + nodes = [] + filter_current_build_plate = Preferences.getInstance().getValue("view/filter_current_build_plate") + active_build_plate_number = self._build_plate_number + for node in DepthFirstIterator(Application.getInstance().getController().getScene().getRoot()): + if not issubclass(type(node), SceneNode) or (not node.getMeshData() and not node.callDecoration("getLayerData")): + continue + if not node.callDecoration("isSliceable"): + continue + node_build_plate_number = node.callDecoration("getBuildPlateNumber") + if filter_current_build_plate and node_build_plate_number != active_build_plate_number: + continue + nodes.append({ + "name": node.getName(), + "isSelected": Selection.isSelected(node), + "isOutsideBuildArea": node.isOutsideBuildArea(), + "buildPlateNumber": node_build_plate_number, + "node": node + }) + nodes = sorted(nodes, key=lambda n: n["name"]) + self.setItems(nodes) + + self.itemsChanged.emit() + + @staticmethod + def createObjectsModel(): + return ObjectsModel() diff --git a/resources/qml/ObjectsList.qml b/resources/qml/ObjectsList.qml index a924959581..04afbe2fb0 100644 --- a/resources/qml/ObjectsList.qml +++ b/resources/qml/ObjectsList.qml @@ -85,7 +85,7 @@ Rectangle anchors.fill: parent; onClicked: { - Cura.BuildPlateModel.setActiveBuildPlate(index); + Cura.SceneController.setActiveBuildPlate(index); } } } @@ -131,7 +131,7 @@ Rectangle Rectangle { height: childrenRect.height - color: Cura.ObjectManager.getItem(index).isSelected ? palette.highlight : index % 2 ? palette.base : palette.alternateBase + color: Cura.ObjectsModel.getItem(index).isSelected ? palette.highlight : index % 2 ? palette.base : palette.alternateBase width: parent.width Label { @@ -139,8 +139,8 @@ Rectangle anchors.left: parent.left anchors.leftMargin: UM.Theme.getSize("default_margin").width width: parent.width - 2 * UM.Theme.getSize("default_margin").width - 30 - text: Cura.ObjectManager.getItem(index) ? Cura.ObjectManager.getItem(index).name : ""; - color: Cura.ObjectManager.getItem(index).isSelected ? palette.highlightedText : (Cura.ObjectManager.getItem(index).isOutsideBuildArea ? palette.mid : palette.text) + text: Cura.ObjectsModel.getItem(index) ? Cura.ObjectsModel.getItem(index).name : ""; + color: Cura.ObjectsModel.getItem(index).isSelected ? palette.highlightedText : (Cura.ObjectsModel.getItem(index).isOutsideBuildArea ? palette.mid : palette.text) elide: Text.ElideRight } @@ -151,8 +151,8 @@ Rectangle anchors.left: nodeNameLabel.right anchors.leftMargin: UM.Theme.getSize("default_margin").width anchors.right: parent.right - text: Cura.ObjectManager.getItem(index).buildPlateNumber != -1 ? Cura.ObjectManager.getItem(index).buildPlateNumber + 1 : ""; - color: Cura.ObjectManager.getItem(index).isSelected ? palette.highlightedText : palette.text + text: Cura.ObjectsModel.getItem(index).buildPlateNumber != -1 ? Cura.ObjectsModel.getItem(index).buildPlateNumber + 1 : ""; + color: Cura.ObjectsModel.getItem(index).isSelected ? palette.highlightedText : palette.text elide: Text.ElideRight } @@ -161,7 +161,7 @@ Rectangle anchors.fill: parent; onClicked: { - Cura.ObjectManager.changeSelection(index); + Cura.SceneController.changeSelection(index); } } } @@ -195,7 +195,7 @@ Rectangle ListView { id: listview - model: Cura.ObjectManager + model: Cura.ObjectsModel width: parent.width delegate: objectDelegate } From 840eedbb3dfe46836f8bc2b711be0fe2f17bd046 Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Thu, 4 Jan 2018 09:35:23 +0100 Subject: [PATCH 091/124] CURA-4525 switch back to build plate 0 when deleting all objects --- cura/CuraApplication.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 1e10b6a40c..bf9e0016cb 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -1050,6 +1050,8 @@ class CuraApplication(QtApplication): op.push() Selection.clear() + self.getCuraSceneController().setActiveBuildPlate(0) # Select first build plate + ## Reset all translation on nodes with mesh data. @pyqtSlot() def resetAllTranslation(self): @@ -1124,7 +1126,7 @@ class CuraApplication(QtApplication): nodes.append(node) job = ArrangeObjectsAllBuildPlatesJob(nodes) job.start() - self.getCuraSceneController().setActiveBuildPlate(0) # Initialize + self.getCuraSceneController().setActiveBuildPlate(0) # Select first build plate # Single build plate @pyqtSlot() From 46827b9295594725d6b5218e4ce1dbe25a19b8fb Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Thu, 4 Jan 2018 10:14:55 +0100 Subject: [PATCH 092/124] Fix tevo blackwidow json file --- plugins/CuraEngineBackend/StartSliceJob.py | 6 ++++-- resources/definitions/tevo_blackwidow.def.json | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/plugins/CuraEngineBackend/StartSliceJob.py b/plugins/CuraEngineBackend/StartSliceJob.py index c5182cc753..746a23dc84 100644 --- a/plugins/CuraEngineBackend/StartSliceJob.py +++ b/plugins/CuraEngineBackend/StartSliceJob.py @@ -271,13 +271,15 @@ class StartSliceJob(Job): if not self._all_extruders_settings: global_stack = Application.getInstance().getGlobalContainerStack() - self._all_extruders_settings = {} # NB: keys must be strings for the string formatter - self._all_extruders_settings["-1"] = self._buildReplacementTokens(global_stack) + self._all_extruders_settings = { + "-1": self._buildReplacementTokens(global_stack) + } for extruder_stack in ExtruderManager.getInstance().getMachineExtruders(global_stack.getId()): extruder_nr = extruder_stack.getProperty("extruder_nr", "value") self._all_extruders_settings[str(extruder_nr)] = self._buildReplacementTokens(extruder_stack) + try: # any setting can be used as a token fmt = GcodeStartEndFormatter() diff --git a/resources/definitions/tevo_blackwidow.def.json b/resources/definitions/tevo_blackwidow.def.json index 19ef2a45e2..9d7166f4a2 100644 --- a/resources/definitions/tevo_blackwidow.def.json +++ b/resources/definitions/tevo_blackwidow.def.json @@ -45,10 +45,10 @@ "default_value": "RepRap (Marlin/Sprinter)" }, "machine_start_gcode": { - "default_value": "M280 P0 S160 ; release BLTouch alarm (OK to send for Non BLTouch)\M420 Z2 ; set fade leveling at 2mm for BLTouch (OK to send for Non BLTouch)\G28 ; home all\G29 ; probe bed\G92 E0 ;zero the extruded length\G1 X0.0 Y50.0 Z10.0 F3600\; perform wipe and prime\G1 Z0.0 F1000\G1 Z0.2 Y70.0 E9.0 F1000.0 ; prime\G1 Y100.0 E12.5 F1000.0 ; prime\G92 E0 ; zero extruder again\M117 Printing..." + "default_value": "M280 P0 S160 ; release BLTouch alarm (OK to send for Non BLTouch)\nM420 Z2 ; set fade leveling at 2mm for BLTouch (OK to send for Non BLTouch)\nG28 ; home all\nG29 ; probe bed\nG92 E0 ;zero the extruded length\nG1 X0.0 Y50.0 Z10.0 F3600\n; perform wipe and prime\nG1 Z0.0 F1000\nG1 Z0.2 Y70.0 E9.0 F1000.0 ; prime\nG1 Y100.0 E12.5 F1000.0 ; prime\nG92 E0 ; zero extruder again\nM117 Printing..." }, "machine_end_gcode": { - "default_value": "G92 E0 ; zero the extruded length again\G1 E-1.5 F500 ; retract the filament to release some of the pressure\M104 S0 ; turn off extruder\M140 S0 ; turn off bed\G28 X0 ; home X axis\G1 Y245 ; move Y axis to end position\M84 ; disable motors\M107 ; turn off fan" + "default_value": "G92 E0 ; zero the extruded length again\nG1 E-1.5 F500 ; retract the filament to release some of the pressure\nM104 S0 ; turn off extruder\nM140 S0 ; turn off bed\nG28 X0 ; home X axis\nG1 Y245 ; move Y axis to end position\nM84 ; disable motors\nM107 ; turn off fan" } } } From a5d9aac91bee910d4b6ef13c57b5916b723e7bbb Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Thu, 4 Jan 2018 10:32:54 +0100 Subject: [PATCH 093/124] CURA-4525 placed view menu items in Build Plate submenu --- resources/qml/Menus/ViewMenu.qml | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/resources/qml/Menus/ViewMenu.qml b/resources/qml/Menus/ViewMenu.qml index 84722e81bf..72bc42bfb0 100644 --- a/resources/qml/Menus/ViewMenu.qml +++ b/resources/qml/Menus/ViewMenu.qml @@ -46,21 +46,26 @@ Menu visible: UM.Preferences.getValue("cura/use_multi_build_plate") } - Instantiator + Menu { - model: Cura.BuildPlateModel - MenuItem { - text: Cura.BuildPlateModel.getItem(index).name; - onTriggered: Cura.BuildPlateModel.setActiveBuildPlate(Cura.BuildPlateModel.getItem(index).buildPlateNumber); - checkable: true; - checked: Cura.BuildPlateModel.getItem(index).buildPlateNumber == Cura.BuildPlateModel.activeBuildPlate; - exclusiveGroup: buildPlateGroup; - visible: UM.Preferences.getValue("cura/use_multi_build_plate") + id: buildPlateMenu; + title: catalog.i18nc("@action:inmenu menubar:view","&Build plate"); + Instantiator + { + model: Cura.BuildPlateModel + MenuItem { + text: Cura.BuildPlateModel.getItem(index).name; + onTriggered: Cura.SceneController.setActiveBuildPlate(Cura.BuildPlateModel.getItem(index).buildPlateNumber); + checkable: true; + checked: Cura.BuildPlateModel.getItem(index).buildPlateNumber == Cura.BuildPlateModel.activeBuildPlate; + exclusiveGroup: buildPlateGroup; + visible: UM.Preferences.getValue("cura/use_multi_build_plate") + } + onObjectAdded: buildPlateMenu.insertItem(index, object); + onObjectRemoved: buildPlateMenu.removeItem(object) } - onObjectAdded: base.insertItem(index, object); - onObjectRemoved: base.removeItem(object) + ExclusiveGroup { id: buildPlateGroup; } } - ExclusiveGroup { id: buildPlateGroup; } MenuSeparator {} From 11a484593157819f44170803640de826f499fb1f Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Thu, 4 Jan 2018 10:41:25 +0100 Subject: [PATCH 094/124] Move CuraSceneController together with rest of scene related code --- cura/CuraApplication.py | 2 +- cura/{ => Scene}/CuraSceneController.py | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename cura/{ => Scene}/CuraSceneController.py (100%) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index bf9e0016cb..476b5d3708 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -44,7 +44,7 @@ from cura.Scene.BlockSlicingDecorator import BlockSlicingDecorator from cura.Scene.BuildPlateDecorator import BuildPlateDecorator from cura.Scene.CuraSceneNode import CuraSceneNode -from cura.CuraSceneController import CuraSceneController +from cura.Scene.CuraSceneController import CuraSceneController from UM.Settings.SettingDefinition import SettingDefinition, DefinitionPropertyType from UM.Settings.ContainerRegistry import ContainerRegistry diff --git a/cura/CuraSceneController.py b/cura/Scene/CuraSceneController.py similarity index 100% rename from cura/CuraSceneController.py rename to cura/Scene/CuraSceneController.py From 4685230d8dda950944e3b2e29a4bdd7c148561da Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Thu, 4 Jan 2018 10:59:44 +0100 Subject: [PATCH 095/124] Add missing super init call - CURA-4525 --- cura/Operations/SetBuildPlateNumberOperation.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cura/Operations/SetBuildPlateNumberOperation.py b/cura/Operations/SetBuildPlateNumberOperation.py index c14d737f93..96230639f9 100644 --- a/cura/Operations/SetBuildPlateNumberOperation.py +++ b/cura/Operations/SetBuildPlateNumberOperation.py @@ -8,7 +8,9 @@ from cura.Settings.SettingOverrideDecorator import SettingOverrideDecorator ## Simple operation to set the buildplate number of a scenenode. class SetBuildPlateNumberOperation(Operation): + def __init__(self, node: SceneNode, build_plate_nr: int) -> None: + super().__init__() self._node = node self._build_plate_nr = build_plate_nr self._previous_build_plate_nr = None From 3f7d8997a16ee18c8a8e73ede68d084a88b04047 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Thu, 4 Jan 2018 11:33:12 +0100 Subject: [PATCH 096/124] Fix icon positions - CURA-4758 --- resources/qml/Settings/SettingCategory.qml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/resources/qml/Settings/SettingCategory.qml b/resources/qml/Settings/SettingCategory.qml index 5430306982..402f76b1c3 100644 --- a/resources/qml/Settings/SettingCategory.qml +++ b/resources/qml/Settings/SettingCategory.qml @@ -110,7 +110,7 @@ Button id: category_arrow anchors.verticalCenter: parent.verticalCenter anchors.right: parent.right - anchors.rightMargin: UM.Theme.getSize("default_margin").width * 3 - width / 2 + anchors.rightMargin: UM.Theme.getSize("default_margin").width width: UM.Theme.getSize("standard_arrow").width height: UM.Theme.getSize("standard_arrow").height sourceSize.width: width @@ -223,7 +223,7 @@ Button anchors { right: inheritButton.visible ? inheritButton.left : parent.right - rightMargin: inheritButton.visible? UM.Theme.getSize("default_margin").width / 2 : UM.Theme.getSize("setting_preferences_button_margin").width + rightMargin: inheritButton.visible ? UM.Theme.getSize("default_margin").width / 2 : category_arrow.width + UM.Theme.getSize("default_margin").width * 1.9 // 1.9 because there is a 0.1 difference between the settings and inheritance warning icons verticalCenter: parent.verticalCenter; } @@ -242,7 +242,7 @@ Button anchors.verticalCenter: parent.verticalCenter anchors.right: parent.right - anchors.rightMargin: UM.Theme.getSize("setting_preferences_button_margin").width + anchors.rightMargin: category_arrow.width + UM.Theme.getSize("default_margin").width * 2 visible: { From 4cec27b1812e6b12669bb4373b123b409058f16a Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Thu, 4 Jan 2018 11:53:34 +0100 Subject: [PATCH 097/124] Fix QML warnings for combo boxes - CURA-4758 --- resources/qml/Settings/SettingComboBox.qml | 2 +- resources/qml/Settings/SettingExtruder.qml | 2 +- resources/qml/Settings/SettingOptionalExtruder.qml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/resources/qml/Settings/SettingComboBox.qml b/resources/qml/Settings/SettingComboBox.qml index 6168668157..325b1f2a30 100644 --- a/resources/qml/Settings/SettingComboBox.qml +++ b/resources/qml/Settings/SettingComboBox.qml @@ -77,7 +77,7 @@ SettingItem anchors.left: parent.left anchors.leftMargin: UM.Theme.getSize("setting_unit_margin").width anchors.verticalCenter: parent.verticalCenter - anchors.right: indicator.left + anchors.right: downArrow.left text: control.currentText font: UM.Theme.getFont("default") diff --git a/resources/qml/Settings/SettingExtruder.qml b/resources/qml/Settings/SettingExtruder.qml index 3f7f20b2b5..cc47ebea44 100644 --- a/resources/qml/Settings/SettingExtruder.qml +++ b/resources/qml/Settings/SettingExtruder.qml @@ -134,7 +134,7 @@ SettingItem width: height anchors.right: parent.right - anchors.rightMargin: control.indicator.width + UM.Theme.getSize("setting_unit_margin").width + anchors.rightMargin: downArrow.width + UM.Theme.getSize("setting_unit_margin").width anchors.verticalCenter: parent.verticalCenter anchors.margins: UM.Theme.getSize("default_margin").width / 4 diff --git a/resources/qml/Settings/SettingOptionalExtruder.qml b/resources/qml/Settings/SettingOptionalExtruder.qml index 4fa7ac9c6c..9ca3eaaf4f 100644 --- a/resources/qml/Settings/SettingOptionalExtruder.qml +++ b/resources/qml/Settings/SettingOptionalExtruder.qml @@ -153,7 +153,7 @@ SettingItem width: height anchors.right: parent.right - anchors.rightMargin: control.indicator.width + UM.Theme.getSize("setting_unit_margin").width + anchors.rightMargin: downArrow.width + UM.Theme.getSize("setting_unit_margin").width anchors.verticalCenter: parent.verticalCenter anchors.margins: UM.Theme.getSize("default_margin").width / 4 From 9cb7050681caaf8cc523f3976b914ce06760391d Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Thu, 4 Jan 2018 12:54:58 +0100 Subject: [PATCH 098/124] Remove unused code CURA-4672 --- cura/PlatformPhysics.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/cura/PlatformPhysics.py b/cura/PlatformPhysics.py index 06d796eed5..e79786dd9c 100755 --- a/cura/PlatformPhysics.py +++ b/cura/PlatformPhysics.py @@ -42,7 +42,7 @@ class PlatformPhysics: def _onSceneChanged(self, source): self._change_timer.start() - def _onChangeTimerFinished(self, was_triggered_by_tool=False): + def _onChangeTimerFinished(self): if not self._enabled: return @@ -58,7 +58,6 @@ class PlatformPhysics: # Only check nodes inside build area. nodes = [node for node in nodes if (hasattr(node, "_outside_buildarea") and not node._outside_buildarea)] - active_build_plate = Application.getInstance().getBuildPlateModel().activeBuildPlate random.shuffle(nodes) for node in nodes: @@ -181,4 +180,4 @@ class PlatformPhysics: node.removeDecorator(ZOffsetDecorator.ZOffsetDecorator) self._enabled = True - self._onChangeTimerFinished(True) + self._onChangeTimerFinished() From 3a4445b656babc8d2271db97b9d805a270f2d9ea Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Thu, 4 Jan 2018 12:55:56 +0100 Subject: [PATCH 099/124] Fix code style CURA-4672 --- cura/PlatformPhysics.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cura/PlatformPhysics.py b/cura/PlatformPhysics.py index e79786dd9c..ddc55302ee 100755 --- a/cura/PlatformPhysics.py +++ b/cura/PlatformPhysics.py @@ -34,7 +34,7 @@ class PlatformPhysics: self._change_timer.timeout.connect(self._onChangeTimerFinished) self._move_factor = 1.1 # By how much should we multiply overlap to calculate a new spot? self._max_overlap_checks = 10 # How many times should we try to find a new spot per tick? - self._minimum_gap = 2 # It is a minimum distance between two models, applicable for small models + self._minimum_gap = 2 # It is a minimum distance (in mm) between two models, applicable for small models Preferences.getInstance().addPreference("physics/automatic_push_free", True) Preferences.getInstance().addPreference("physics/automatic_drop_down", True) @@ -71,7 +71,7 @@ class PlatformPhysics: 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 z_offset = node.callDecoration("getZOffset") if node.getDecorator(ZOffsetDecorator.ZOffsetDecorator) else 0 - move_vector = move_vector.set(y=-bbox.bottom + z_offset) + move_vector = move_vector.set(y = -bbox.bottom + z_offset) # If there is no convex hull for the node, start calculating it and continue. if not node.getDecorator(ConvexHullDecorator): @@ -130,7 +130,7 @@ class PlatformPhysics: overlap = own_convex_hull.translate(move_vector.x, move_vector.z).intersectsPolygon(other_convex_hull) if overlap: # Moving ensured that overlap was still there. Try anew! temp_move_vector = move_vector.set(x = move_vector.x + overlap[0] * self._move_factor, - z = move_vector.z + overlap[1] * self._move_factor) + z = move_vector.z + overlap[1] * self._move_factor) # if the distance between two models less than 2mm then try to find a new factor if abs(temp_move_vector.x - overlap[0]) < self._minimum_gap and abs(temp_move_vector.y - overlap[1]) < self._minimum_gap: @@ -148,7 +148,7 @@ class PlatformPhysics: move_vector = temp_move_vector else: # This can happen in some cases if the object is not yet done with being loaded. - # Simply waiting for the next tick seems to resolve this correctly. + # Simply waiting for the next tick seems to resolve this correctly. overlap = None if not Vector.Null.equals(move_vector, epsilon = 1e-5): From 7b8f951682322155e8fb5b332121d7bcbe6359a4 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Thu, 4 Jan 2018 13:02:10 +0100 Subject: [PATCH 100/124] Simplify temp_scale_factor assignment CURA-4672 --- cura/PlatformPhysics.py | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/cura/PlatformPhysics.py b/cura/PlatformPhysics.py index ddc55302ee..0ad3cf1328 100755 --- a/cura/PlatformPhysics.py +++ b/cura/PlatformPhysics.py @@ -134,13 +134,10 @@ class PlatformPhysics: # if the distance between two models less than 2mm then try to find a new factor if abs(temp_move_vector.x - overlap[0]) < self._minimum_gap and abs(temp_move_vector.y - overlap[1]) < self._minimum_gap: - temp_scale_factor = self._move_factor temp_x_factor = (abs(overlap[0]) + self._minimum_gap) / overlap[0] if overlap[0] != 0 else 0 # find x move_factor, like (3.4 + 2) / 3.4 = 1.58 temp_y_factor = (abs(overlap[1]) + self._minimum_gap) / overlap[1] if overlap[1] != 0 else 0 # find y move_factor - if abs(temp_x_factor) > abs(temp_y_factor): - temp_scale_factor = temp_x_factor - else: - temp_scale_factor = temp_y_factor + + temp_scale_factor = temp_x_factor if abs(temp_x_factor) > abs(temp_y_factor) else temp_y_factor move_vector = move_vector.set(x = move_vector.x + overlap[0] * temp_scale_factor, z = move_vector.z + overlap[1] * temp_scale_factor) From 84adbc5f41ffd8f2648d001b50c35c1b78a017a8 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Thu, 4 Jan 2018 13:26:12 +0100 Subject: [PATCH 101/124] Use the 5.8 versions of QtQuick modules in QMLs CURA-4758 --- resources/qml/Settings/SettingCategory.qml | 4 ++-- resources/qml/Settings/SettingCheckBox.qml | 4 ++-- resources/qml/Settings/SettingComboBox.qml | 4 ++-- resources/qml/Settings/SettingExtruder.qml | 4 ++-- resources/qml/Settings/SettingItem.qml | 4 ++-- resources/qml/Settings/SettingOptionalExtruder.qml | 4 ++-- resources/qml/Settings/SettingTextField.qml | 4 ++-- resources/qml/Settings/SettingUnknown.qml | 4 ++-- resources/qml/Settings/SettingView.qml | 2 +- resources/qml/Sidebar.qml | 4 ++-- 10 files changed, 19 insertions(+), 19 deletions(-) diff --git a/resources/qml/Settings/SettingCategory.qml b/resources/qml/Settings/SettingCategory.qml index 402f76b1c3..7804d1f496 100644 --- a/resources/qml/Settings/SettingCategory.qml +++ b/resources/qml/Settings/SettingCategory.qml @@ -1,8 +1,8 @@ // Copyright (c) 2017 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. -import QtQuick 2.2 -import QtQuick.Controls 2.0 +import QtQuick 2.8 +import QtQuick.Controls 2.1 import UM 1.1 as UM import Cura 1.0 as Cura diff --git a/resources/qml/Settings/SettingCheckBox.qml b/resources/qml/Settings/SettingCheckBox.qml index 651ee91366..2aad6181d8 100644 --- a/resources/qml/Settings/SettingCheckBox.qml +++ b/resources/qml/Settings/SettingCheckBox.qml @@ -1,9 +1,9 @@ // Copyright (c) 2015 Ultimaker B.V. // Uranium is released under the terms of the LGPLv3 or higher. -import QtQuick 2.1 +import QtQuick 2.8 import QtQuick.Layouts 1.1 -import QtQuick.Controls 2.0 +import QtQuick.Controls 2.1 import UM 1.2 as UM diff --git a/resources/qml/Settings/SettingComboBox.qml b/resources/qml/Settings/SettingComboBox.qml index 325b1f2a30..63d13ae514 100644 --- a/resources/qml/Settings/SettingComboBox.qml +++ b/resources/qml/Settings/SettingComboBox.qml @@ -1,8 +1,8 @@ // Copyright (c) 2015 Ultimaker B.V. // Uranium is released under the terms of the LGPLv3 or higher. -import QtQuick 2.1 -import QtQuick.Controls 2.0 +import QtQuick 2.8 +import QtQuick.Controls 2.1 import UM 1.1 as UM diff --git a/resources/qml/Settings/SettingExtruder.qml b/resources/qml/Settings/SettingExtruder.qml index cc47ebea44..6ad1ce942e 100644 --- a/resources/qml/Settings/SettingExtruder.qml +++ b/resources/qml/Settings/SettingExtruder.qml @@ -1,8 +1,8 @@ // Copyright (c) 2016 Ultimaker B.V. // Uranium is released under the terms of the LGPLv3 or higher. -import QtQuick 2.1 -import QtQuick.Controls 2.0 +import QtQuick 2.8 +import QtQuick.Controls 2.1 import UM 1.1 as UM import Cura 1.0 as Cura diff --git a/resources/qml/Settings/SettingItem.qml b/resources/qml/Settings/SettingItem.qml index 278d9a9ce2..1b1f302846 100644 --- a/resources/qml/Settings/SettingItem.qml +++ b/resources/qml/Settings/SettingItem.qml @@ -1,9 +1,9 @@ // Copyright (c) 2017 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. -import QtQuick 2.1 +import QtQuick 2.8 import QtQuick.Layouts 1.1 -import QtQuick.Controls 2.0 +import QtQuick.Controls 2.1 import UM 1.1 as UM import Cura 1.0 as Cura diff --git a/resources/qml/Settings/SettingOptionalExtruder.qml b/resources/qml/Settings/SettingOptionalExtruder.qml index 9ca3eaaf4f..3f6182e06c 100644 --- a/resources/qml/Settings/SettingOptionalExtruder.qml +++ b/resources/qml/Settings/SettingOptionalExtruder.qml @@ -1,8 +1,8 @@ // Copyright (c) 2016 Ultimaker B.V. // Uranium is released under the terms of the LGPLv3 or higher. -import QtQuick 2.1 -import QtQuick.Controls 2.0 +import QtQuick 2.8 +import QtQuick.Controls 2.1 import UM 1.1 as UM import Cura 1.0 as Cura diff --git a/resources/qml/Settings/SettingTextField.qml b/resources/qml/Settings/SettingTextField.qml index 2f0c776eb6..30dff2490f 100644 --- a/resources/qml/Settings/SettingTextField.qml +++ b/resources/qml/Settings/SettingTextField.qml @@ -1,8 +1,8 @@ // Copyright (c) 2017 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. -import QtQuick 2.2 -import QtQuick.Controls 2.0 +import QtQuick 2.8 +import QtQuick.Controls 2.1 import UM 1.1 as UM diff --git a/resources/qml/Settings/SettingUnknown.qml b/resources/qml/Settings/SettingUnknown.qml index bca786dc0d..82d54f96b8 100644 --- a/resources/qml/Settings/SettingUnknown.qml +++ b/resources/qml/Settings/SettingUnknown.qml @@ -1,8 +1,8 @@ // Copyright (c) 2015 Ultimaker B.V. // Uranium is released under the terms of the LGPLv3 or higher. -import QtQuick 2.1 -import QtQuick.Controls 2.0 +import QtQuick 2.8 +import QtQuick.Controls 2.1 import UM 1.2 as UM diff --git a/resources/qml/Settings/SettingView.qml b/resources/qml/Settings/SettingView.qml index 5d39572647..6929614830 100644 --- a/resources/qml/Settings/SettingView.qml +++ b/resources/qml/Settings/SettingView.qml @@ -1,7 +1,7 @@ // Copyright (c) 2017 Ultimaker B.V. // Uranium is released under the terms of the LGPLv3 or higher. -import QtQuick 2.2 +import QtQuick 2.8 import QtQuick.Controls 1.1 import QtQuick.Controls.Styles 1.1 import QtQuick.Layouts 1.1 diff --git a/resources/qml/Sidebar.qml b/resources/qml/Sidebar.qml index 1b498c6024..326d5a0447 100644 --- a/resources/qml/Sidebar.qml +++ b/resources/qml/Sidebar.qml @@ -1,8 +1,8 @@ // Copyright (c) 2017 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. -import QtQuick 2.2 -import QtQuick.Controls 2.0 +import QtQuick 2.8 +import QtQuick.Controls 2.1 import QtQuick.Layouts 1.1 import UM 1.2 as UM From d20895a05594b3ce8f52b42f2100006787652395 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Thu, 4 Jan 2018 13:51:45 +0100 Subject: [PATCH 102/124] Fix code style CURA-4758 --- resources/qml/Settings/SettingCategory.qml | 110 +++++++----------- resources/qml/Settings/SettingExtruder.qml | 8 +- .../qml/Settings/SettingOptionalExtruder.qml | 8 +- resources/qml/Sidebar.qml | 22 ++-- 4 files changed, 59 insertions(+), 89 deletions(-) diff --git a/resources/qml/Settings/SettingCategory.qml b/resources/qml/Settings/SettingCategory.qml index 7804d1f496..cc7ca9354d 100644 --- a/resources/qml/Settings/SettingCategory.qml +++ b/resources/qml/Settings/SettingCategory.qml @@ -9,24 +9,24 @@ import Cura 1.0 as Cura Button { - id: base; + id: base anchors.left: parent.left anchors.right: parent.right anchors.leftMargin: UM.Theme.getSize("sidebar_margin").width anchors.rightMargin: UM.Theme.getSize("sidebar_margin").width background: Rectangle { - implicitHeight: UM.Theme.getSize("section").height; + implicitHeight: UM.Theme.getSize("section").height color: { - if(base.color) { + if (base.color) { return base.color; - } else if(!base.enabled) { + } else if (!base.enabled) { return UM.Theme.getColor("setting_category_disabled"); - } else if(base.hovered && base.checkable && base.checked) { + } else if (base.hovered && base.checkable && base.checked) { return UM.Theme.getColor("setting_category_active_hover"); - } else if(base.pressed || (base.checkable && base.checked)) { + } else if (base.pressed || (base.checkable && base.checked)) { return UM.Theme.getColor("setting_category_active"); - } else if(base.hovered) { + } else if (base.hovered) { return UM.Theme.getColor("setting_category_hover"); } else { return UM.Theme.getColor("setting_category"); @@ -39,13 +39,13 @@ Button width: parent.width anchors.bottom: parent.bottom color: { - if(!base.enabled) { + if (!base.enabled) { return UM.Theme.getColor("setting_category_disabled_border"); - } else if((base.hovered || base.activeFocus) && base.checkable && base.checked) { + } else if ((base.hovered || base.activeFocus) && base.checkable && base.checked) { return UM.Theme.getColor("setting_category_active_hover_border"); - } else if(base.pressed || (base.checkable && base.checked)) { + } else if (base.pressed || (base.checkable && base.checked)) { return UM.Theme.getColor("setting_category_active_border"); - } else if(base.hovered || base.activeFocus) { + } else if (base.hovered || base.activeFocus) { return UM.Theme.getColor("setting_category_hover_border"); } else { return UM.Theme.getColor("setting_category_border"); @@ -66,7 +66,7 @@ Button //text: definition.label contentItem: Item { - anchors.fill: parent; + anchors.fill: parent anchors.left: parent.left Label { @@ -78,31 +78,22 @@ Button verticalCenter: parent.verticalCenter; } text: definition.label - font: UM.Theme.getFont("setting_category"); + font: UM.Theme.getFont("setting_category") color: { - if(!base.enabled) - { + if (!base.enabled) { return UM.Theme.getColor("setting_category_disabled_text"); - } - else if((base.hovered || base.activeFocus) && base.checkable && base.checked) - { + } else if ((base.hovered || base.activeFocus) && base.checkable && base.checked) { return UM.Theme.getColor("setting_category_active_hover_text"); - } - else if(base.pressed || (base.checkable && base.checked)) - { + } else if (base.pressed || (base.checkable && base.checked)) { return UM.Theme.getColor("setting_category_active_text"); - } - else if(base.hovered || base.activeFocus) - { + } else if (base.hovered || base.activeFocus) { return UM.Theme.getColor("setting_category_hover_text"); - } - else - { + } else { return UM.Theme.getColor("setting_category_text"); } } - fontSizeMode: Text.HorizontalFit; + fontSizeMode: Text.HorizontalFit minimumPointSize: 8 } UM.RecolorImage @@ -117,24 +108,15 @@ Button sourceSize.height: width color: { - if(!base.enabled) - { + if (!base.enabled) { return UM.Theme.getColor("setting_category_disabled_text"); - } - else if((base.hovered || base.activeFocus) && base.checkable && base.checked) - { + } else if ((base.hovered || base.activeFocus) && base.checkable && base.checked) { return UM.Theme.getColor("setting_category_active_hover_text"); - } - else if(base.pressed || (base.checkable && base.checked)) - { + } else if (base.pressed || (base.checkable && base.checked)) { return UM.Theme.getColor("setting_category_active_text"); - } - else if(base.hovered || base.activeFocus) - { + } else if (base.hovered || base.activeFocus) { return UM.Theme.getColor("setting_category_hover_text"); - } - else - { + } else { return UM.Theme.getColor("setting_category_text"); } } @@ -150,24 +132,15 @@ Button anchors.leftMargin: UM.Theme.getSize("default_margin").width color: { - if(!base.enabled) - { + if (!base.enabled) { return UM.Theme.getColor("setting_category_disabled_text"); - } - else if((base.hovered || base.activeFocus) && base.checkable && base.checked) - { + } else if((base.hovered || base.activeFocus) && base.checkable && base.checked) { return UM.Theme.getColor("setting_category_active_hover_text"); - } - else if(base.pressed || (base.checkable && base.checked)) - { + } else if(base.pressed || (base.checkable && base.checked)) { return UM.Theme.getColor("setting_category_active_text"); - } - else if(base.hovered || base.activeFocus) - { + } else if(base.hovered || base.activeFocus) { return UM.Theme.getColor("setting_category_hover_text"); - } - else - { + } else { return UM.Theme.getColor("setting_category_text"); } } @@ -178,18 +151,14 @@ Button sourceSize.height: width + 15 * screenScaleFactor } - checkable: true checked: definition.expanded onClicked: { - if(definition.expanded) - { + if (definition.expanded) { settingDefinitionsModel.collapse(definition.key); - } - else - { + } else { settingDefinitionsModel.expandAll(definition.key); } //Set focus so that tab navigation continues from this point on. @@ -223,13 +192,14 @@ Button anchors { right: inheritButton.visible ? inheritButton.left : parent.right - rightMargin: inheritButton.visible ? UM.Theme.getSize("default_margin").width / 2 : category_arrow.width + UM.Theme.getSize("default_margin").width * 1.9 // 1.9 because there is a 0.1 difference between the settings and inheritance warning icons - verticalCenter: parent.verticalCenter; + // use 1.9 as the factor because there is a 0.1 difference between the settings and inheritance warning icons + rightMargin: inheritButton.visible ? UM.Theme.getSize("default_margin").width / 2 : category_arrow.width + UM.Theme.getSize("default_margin").width * 1.9 + verticalCenter: parent.verticalCenter } - color: UM.Theme.getColor("setting_control_button"); + color: UM.Theme.getColor("setting_control_button") hoverColor: UM.Theme.getColor("setting_control_button_hover") - iconSource: UM.Theme.getIcon("settings"); + iconSource: UM.Theme.getIcon("settings") onClicked: { Cura.Actions.configureSettingVisibility.trigger(definition) @@ -238,7 +208,7 @@ Button UM.SimpleButton { - id: inheritButton; + id: inheritButton anchors.verticalCenter: parent.verticalCenter anchors.right: parent.right @@ -246,12 +216,12 @@ Button visible: { - if(Cura.SettingInheritanceManager.settingsWithInheritanceWarning.indexOf(definition.key) >= 0) + if (Cura.SettingInheritanceManager.settingsWithInheritanceWarning.indexOf(definition.key) >= 0) { var children_with_override = Cura.SettingInheritanceManager.getChildrenKeysWithOverride(definition.key) - for(var i = 0; i < children_with_override.length; i++) + for (var i = 0; i < children_with_override.length; i++) { - if(!settingDefinitionsModel.getVisible(children_with_override[i])) + if (!settingDefinitionsModel.getVisible(children_with_override[i])) { return true } diff --git a/resources/qml/Settings/SettingExtruder.qml b/resources/qml/Settings/SettingExtruder.qml index 6ad1ce942e..b754c3fd74 100644 --- a/resources/qml/Settings/SettingExtruder.qml +++ b/resources/qml/Settings/SettingExtruder.qml @@ -83,11 +83,11 @@ SettingItem { color: { - if(!enabled) + if (!enabled) { return UM.Theme.getColor("setting_control_disabled"); } - if(control.hovered || base.activeFocus) + if (control.hovered || base.activeFocus) { return UM.Theme.getColor("setting_control_highlight"); } @@ -96,11 +96,11 @@ SettingItem border.width: UM.Theme.getSize("default_lining").width border.color: { - if(!enabled) + if (!enabled) { return UM.Theme.getColor("setting_control_disabled_border") } - if(control.hovered || control.activeFocus) + if (control.hovered || control.activeFocus) { return UM.Theme.getColor("setting_control_border_highlight") } diff --git a/resources/qml/Settings/SettingOptionalExtruder.qml b/resources/qml/Settings/SettingOptionalExtruder.qml index 3f6182e06c..3bb2a2f1e0 100644 --- a/resources/qml/Settings/SettingOptionalExtruder.qml +++ b/resources/qml/Settings/SettingOptionalExtruder.qml @@ -102,11 +102,11 @@ SettingItem { color: { - if(!enabled) + if (!enabled) { return UM.Theme.getColor("setting_control_disabled"); } - if(control.hovered || control.activeFocus) + if (control.hovered || control.activeFocus) { return UM.Theme.getColor("setting_control_highlight"); } @@ -115,11 +115,11 @@ SettingItem border.width: UM.Theme.getSize("default_lining").width border.color: { - if(!enabled) + if (!enabled) { return UM.Theme.getColor("setting_control_disabled_border") } - if(control.hovered || control.activeFocus) + if (control.hovered || control.activeFocus) { return UM.Theme.getColor("setting_control_border_highlight") } diff --git a/resources/qml/Sidebar.qml b/resources/qml/Sidebar.qml index 326d5a0447..e6e0fee023 100644 --- a/resources/qml/Sidebar.qml +++ b/resources/qml/Sidebar.qml @@ -11,9 +11,9 @@ import "Menus" Rectangle { - id: base; + id: base - property int currentModeIndex; + property int currentModeIndex property bool hideSettings: PrintInformation.preSliced property bool hideView: Cura.MachineManager.activeMachineName == "" @@ -77,7 +77,7 @@ Rectangle MouseArea { anchors.fill: parent - acceptedButtons: Qt.AllButtons; + acceptedButtons: Qt.AllButtons onWheel: { @@ -125,7 +125,7 @@ Rectangle Label { id: settingsModeLabel - text: !hideSettings ? catalog.i18nc("@label:listbox", "Print Setup") : catalog.i18nc("@label:listbox","Print Setup disabled\nG-code files cannot be modified"); + text: !hideSettings ? catalog.i18nc("@label:listbox", "Print Setup") : catalog.i18nc("@label:listbox", "Print Setup disabled\nG-code files cannot be modified") anchors.left: parent.left anchors.leftMargin: UM.Theme.getSize("sidebar_margin").width anchors.top: headerSeparator.bottom @@ -557,19 +557,19 @@ Rectangle SidebarTooltip { - id: tooltip; + id: tooltip } // Setting mode: Recommended or Custom ListModel { - id: modesListModel; + id: modesListModel } SidebarSimple { - id: sidebarSimple; - visible: false; + id: sidebarSimple + visible: false onShowTooltip: base.showTooltip(item, location, text) onHideTooltip: base.hideTooltip() @@ -577,8 +577,8 @@ Rectangle SidebarAdvanced { - id: sidebarAdvanced; - visible: false; + id: sidebarAdvanced + visible: false onShowTooltip: base.showTooltip(item, location, text) onHideTooltip: base.hideTooltip() @@ -596,7 +596,7 @@ Rectangle tooltipText: catalog.i18nc("@tooltip", "Custom Print Setup

Print with finegrained control over every last bit of the slicing process."), item: sidebarAdvanced }) - sidebarContents.replace( modesListModel.get(base.currentModeIndex).item, { "immediate": true }) + sidebarContents.replace(modesListModel.get(base.currentModeIndex).item, { "immediate": true }) var index = Math.floor(UM.Preferences.getValue("cura/active_mode")) if(index) From abdc33a0b9c44f2653a3829df5fd3168c793c0f1 Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Thu, 4 Jan 2018 14:23:22 +0100 Subject: [PATCH 103/124] CURA-4672 fix auto arrange for small models, they are now rounded up to 1 pixel rasterized --- cura/Arranging/ShapeArray.py | 6 ++++++ tests/TestArrange.py | 7 +++++++ 2 files changed, 13 insertions(+) diff --git a/cura/Arranging/ShapeArray.py b/cura/Arranging/ShapeArray.py index 9232c9f22f..6ef92b1743 100644 --- a/cura/Arranging/ShapeArray.py +++ b/cura/Arranging/ShapeArray.py @@ -29,8 +29,14 @@ class ShapeArray: offset_x = int(numpy.amin(flip_vertices[:, 1])) flip_vertices[:, 0] = numpy.add(flip_vertices[:, 0], -offset_y) flip_vertices[:, 1] = numpy.add(flip_vertices[:, 1], -offset_x) + flip_vertices = numpy.ceil(flip_vertices) shape = [int(numpy.amax(flip_vertices[:, 0])), int(numpy.amax(flip_vertices[:, 1]))] + if shape == [0, 0]: + shape = [1, 1] arr = cls.arrayFromPolygon(shape, flip_vertices) + if not numpy.any(arr): + # set at least 1 pixel + arr[0][0] = 1 return cls(arr, offset_x, offset_y) ## Instantiate an offset and hull ShapeArray from a scene node. diff --git a/tests/TestArrange.py b/tests/TestArrange.py index 737305f638..4f6bb64118 100755 --- a/tests/TestArrange.py +++ b/tests/TestArrange.py @@ -118,6 +118,13 @@ def test_arrayFromPolygon2(): assert numpy.any(array) +## Polygon -> array +def test_fromPolygon(): + vertices = numpy.array([[0, 0.5], [0, 0], [0.5, 0]]) + array = ShapeArray.fromPolygon(vertices, scale=0.5) + assert numpy.any(array.arr) + + ## Line definition -> array with true/false def test_check(): base_array = numpy.zeros([5, 5], dtype=float) From 5e26ecb4589aa602ec68ad2b443b0daf712ee41a Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Thu, 4 Jan 2018 14:59:40 +0100 Subject: [PATCH 104/124] CURA-4672 now unbreak arrange for large objects as well :-) --- cura/Arranging/ShapeArray.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/cura/Arranging/ShapeArray.py b/cura/Arranging/ShapeArray.py index 6ef92b1743..68be9a6478 100644 --- a/cura/Arranging/ShapeArray.py +++ b/cura/Arranging/ShapeArray.py @@ -29,12 +29,10 @@ class ShapeArray: offset_x = int(numpy.amin(flip_vertices[:, 1])) flip_vertices[:, 0] = numpy.add(flip_vertices[:, 0], -offset_y) flip_vertices[:, 1] = numpy.add(flip_vertices[:, 1], -offset_x) - flip_vertices = numpy.ceil(flip_vertices) - shape = [int(numpy.amax(flip_vertices[:, 0])), int(numpy.amax(flip_vertices[:, 1]))] - if shape == [0, 0]: - shape = [1, 1] + shape = numpy.array([int(numpy.amax(flip_vertices[:, 0])), int(numpy.amax(flip_vertices[:, 1]))]) + shape[numpy.where(shape == 0)] = 1 arr = cls.arrayFromPolygon(shape, flip_vertices) - if not numpy.any(arr): + if not numpy.ndarray.any(arr): # set at least 1 pixel arr[0][0] = 1 return cls(arr, offset_x, offset_y) From 4f224a4311bd34fb4dd80f073ade1384d1d426a4 Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Thu, 4 Jan 2018 16:12:39 +0100 Subject: [PATCH 105/124] CURA-4525 do not show build plate view item when disabled --- resources/qml/Menus/ViewMenu.qml | 1 + resources/qml/ObjectsList.qml | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/Menus/ViewMenu.qml b/resources/qml/Menus/ViewMenu.qml index 72bc42bfb0..afc80dd314 100644 --- a/resources/qml/Menus/ViewMenu.qml +++ b/resources/qml/Menus/ViewMenu.qml @@ -50,6 +50,7 @@ Menu { id: buildPlateMenu; title: catalog.i18nc("@action:inmenu menubar:view","&Build plate"); + visible: UM.Preferences.getValue("cura/use_multi_build_plate") Instantiator { model: Cura.BuildPlateModel diff --git a/resources/qml/ObjectsList.qml b/resources/qml/ObjectsList.qml index 04afbe2fb0..a02ea2288d 100644 --- a/resources/qml/ObjectsList.qml +++ b/resources/qml/ObjectsList.qml @@ -231,7 +231,6 @@ Rectangle tooltip: ''; anchors { - //top: buildPlateSelection.bottom; topMargin: UM.Theme.getSize("default_margin").height; left: parent.left; leftMargin: UM.Theme.getSize("default_margin").height; From 2dad18a9ba5c1f547150d2e04b83369de13e12f5 Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Thu, 4 Jan 2018 16:26:39 +0100 Subject: [PATCH 106/124] CURA-4761 allow for space for scrollbar in per object settings --- plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml b/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml index ea126bfd44..5bdb6d4cb0 100644 --- a/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml +++ b/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml @@ -111,7 +111,7 @@ Item { ScrollView { height: parent.height - width: UM.Theme.getSize("setting").width + width: UM.Theme.getSize("setting").width + UM.Theme.getSize("default_margin").width style: UM.Theme.styles.scrollview ListView From 564a97d5a80545f5eebdc63de7c48a1a435ad2ea Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 4 Jan 2018 17:20:57 +0100 Subject: [PATCH 107/124] Account for getConvexHullTransformedVertices returning None It returns None if there are no vertices. --- cura/Scene/ConvexHullDecorator.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/Scene/ConvexHullDecorator.py b/cura/Scene/ConvexHullDecorator.py index 3a563c2764..94045652f5 100644 --- a/cura/Scene/ConvexHullDecorator.py +++ b/cura/Scene/ConvexHullDecorator.py @@ -177,7 +177,7 @@ class ConvexHullDecorator(SceneNodeDecorator): # Do not throw away vertices: the convex hull may be too small and objects can collide. # vertex_data = vertex_data[vertex_data[:,1] >= -0.01] - if len(vertex_data) >= 4: + if vertex_data and len(vertex_data) >= 4: # Round the vertex data to 1/10th of a mm, then remove all duplicate vertices # This is done to greatly speed up further convex hull calculations as the convex hull # becomes much less complex when dealing with highly detailed models. From 2c45efb70de003b431707aadfc2a3cb37e4dc39c Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 4 Jan 2018 17:23:43 +0100 Subject: [PATCH 108/124] Simplify code flow a bit Use if branches for the unhappy flow, so that it's clear that this behaves as an early-out. This also prevents the need for declaring variables out of scope, which is not an issue with Python anyway. --- cura/Scene/ConvexHullDecorator.py | 67 +++++++++++++++---------------- 1 file changed, 33 insertions(+), 34 deletions(-) diff --git a/cura/Scene/ConvexHullDecorator.py b/cura/Scene/ConvexHullDecorator.py index 94045652f5..f6b9372259 100644 --- a/cura/Scene/ConvexHullDecorator.py +++ b/cura/Scene/ConvexHullDecorator.py @@ -160,48 +160,47 @@ class ConvexHullDecorator(SceneNodeDecorator): return offset_hull else: + if not self._node.getMeshData(): #Node has no mesh data, so just return an empty Polygon. + return Polygon([]) + offset_hull = None - mesh = None - world_transform = None - if self._node.getMeshData(): - mesh = self._node.getMeshData() - world_transform = self._node.getWorldTransformation() + mesh = self._node.getMeshData() + world_transform = self._node.getWorldTransformation() - # Check the cache - if mesh is self._2d_convex_hull_mesh and world_transform == self._2d_convex_hull_mesh_world_transform: - return self._2d_convex_hull_mesh_result + # Check the cache + if mesh is self._2d_convex_hull_mesh and world_transform == self._2d_convex_hull_mesh_world_transform: + return self._2d_convex_hull_mesh_result - vertex_data = mesh.getConvexHullTransformedVertices(world_transform) - # Don't use data below 0. - # TODO; We need a better check for this as this gives poor results for meshes with long edges. - # Do not throw away vertices: the convex hull may be too small and objects can collide. - # vertex_data = vertex_data[vertex_data[:,1] >= -0.01] + vertex_data = mesh.getConvexHullTransformedVertices(world_transform) + # Don't use data below 0. + # TODO; We need a better check for this as this gives poor results for meshes with long edges. + # Do not throw away vertices: the convex hull may be too small and objects can collide. + # vertex_data = vertex_data[vertex_data[:,1] >= -0.01] - if vertex_data and len(vertex_data) >= 4: - # Round the vertex data to 1/10th of a mm, then remove all duplicate vertices - # This is done to greatly speed up further convex hull calculations as the convex hull - # becomes much less complex when dealing with highly detailed models. - vertex_data = numpy.round(vertex_data, 1) + if not vertex_data or len(vertex_data) < 4: + return Polygon([]) + # Round the vertex data to 1/10th of a mm, then remove all duplicate vertices + # This is done to greatly speed up further convex hull calculations as the convex hull + # becomes much less complex when dealing with highly detailed models. + vertex_data = numpy.round(vertex_data, 1) - vertex_data = vertex_data[:, [0, 2]] # Drop the Y components to project to 2D. + vertex_data = vertex_data[:, [0, 2]] # Drop the Y components to project to 2D. - # Grab the set of unique points. - # - # This basically finds the unique rows in the array by treating them as opaque groups of bytes - # which are as long as the 2 float64s in each row, and giving this view to numpy.unique() to munch. - # See http://stackoverflow.com/questions/16970982/find-unique-rows-in-numpy-array - vertex_byte_view = numpy.ascontiguousarray(vertex_data).view( - numpy.dtype((numpy.void, vertex_data.dtype.itemsize * vertex_data.shape[1]))) - _, idx = numpy.unique(vertex_byte_view, return_index=True) - vertex_data = vertex_data[idx] # Select the unique rows by index. + # Grab the set of unique points. + # + # This basically finds the unique rows in the array by treating them as opaque groups of bytes + # which are as long as the 2 float64s in each row, and giving this view to numpy.unique() to munch. + # See http://stackoverflow.com/questions/16970982/find-unique-rows-in-numpy-array + vertex_byte_view = numpy.ascontiguousarray(vertex_data).view( + numpy.dtype((numpy.void, vertex_data.dtype.itemsize * vertex_data.shape[1]))) + _, idx = numpy.unique(vertex_byte_view, return_index=True) + vertex_data = vertex_data[idx] # Select the unique rows by index. - hull = Polygon(vertex_data) + hull = Polygon(vertex_data) - if len(vertex_data) >= 3: - convex_hull = hull.getConvexHull() - offset_hull = self._offsetHull(convex_hull) - else: - return Polygon([]) # Node has no mesh data, so just return an empty Polygon. + if len(vertex_data) >= 3: + convex_hull = hull.getConvexHull() + offset_hull = self._offsetHull(convex_hull) # Store the result in the cache self._2d_convex_hull_mesh = mesh From 63f7902fca7b2dd90600b15aab59b6bac676964b Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 5 Jan 2018 09:16:03 +0100 Subject: [PATCH 109/124] Revert "Simplify code flow a bit" This reverts commit 2c45efb70de003b431707aadfc2a3cb37e4dc39c. --- cura/Scene/ConvexHullDecorator.py | 67 ++++++++++++++++--------------- 1 file changed, 34 insertions(+), 33 deletions(-) diff --git a/cura/Scene/ConvexHullDecorator.py b/cura/Scene/ConvexHullDecorator.py index f6b9372259..94045652f5 100644 --- a/cura/Scene/ConvexHullDecorator.py +++ b/cura/Scene/ConvexHullDecorator.py @@ -160,47 +160,48 @@ class ConvexHullDecorator(SceneNodeDecorator): return offset_hull else: - if not self._node.getMeshData(): #Node has no mesh data, so just return an empty Polygon. - return Polygon([]) - offset_hull = None - mesh = self._node.getMeshData() - world_transform = self._node.getWorldTransformation() + mesh = None + world_transform = None + if self._node.getMeshData(): + mesh = self._node.getMeshData() + world_transform = self._node.getWorldTransformation() - # Check the cache - if mesh is self._2d_convex_hull_mesh and world_transform == self._2d_convex_hull_mesh_world_transform: - return self._2d_convex_hull_mesh_result + # Check the cache + if mesh is self._2d_convex_hull_mesh and world_transform == self._2d_convex_hull_mesh_world_transform: + return self._2d_convex_hull_mesh_result - vertex_data = mesh.getConvexHullTransformedVertices(world_transform) - # Don't use data below 0. - # TODO; We need a better check for this as this gives poor results for meshes with long edges. - # Do not throw away vertices: the convex hull may be too small and objects can collide. - # vertex_data = vertex_data[vertex_data[:,1] >= -0.01] + vertex_data = mesh.getConvexHullTransformedVertices(world_transform) + # Don't use data below 0. + # TODO; We need a better check for this as this gives poor results for meshes with long edges. + # Do not throw away vertices: the convex hull may be too small and objects can collide. + # vertex_data = vertex_data[vertex_data[:,1] >= -0.01] - if not vertex_data or len(vertex_data) < 4: - return Polygon([]) - # Round the vertex data to 1/10th of a mm, then remove all duplicate vertices - # This is done to greatly speed up further convex hull calculations as the convex hull - # becomes much less complex when dealing with highly detailed models. - vertex_data = numpy.round(vertex_data, 1) + if vertex_data and len(vertex_data) >= 4: + # Round the vertex data to 1/10th of a mm, then remove all duplicate vertices + # This is done to greatly speed up further convex hull calculations as the convex hull + # becomes much less complex when dealing with highly detailed models. + vertex_data = numpy.round(vertex_data, 1) - vertex_data = vertex_data[:, [0, 2]] # Drop the Y components to project to 2D. + vertex_data = vertex_data[:, [0, 2]] # Drop the Y components to project to 2D. - # Grab the set of unique points. - # - # This basically finds the unique rows in the array by treating them as opaque groups of bytes - # which are as long as the 2 float64s in each row, and giving this view to numpy.unique() to munch. - # See http://stackoverflow.com/questions/16970982/find-unique-rows-in-numpy-array - vertex_byte_view = numpy.ascontiguousarray(vertex_data).view( - numpy.dtype((numpy.void, vertex_data.dtype.itemsize * vertex_data.shape[1]))) - _, idx = numpy.unique(vertex_byte_view, return_index=True) - vertex_data = vertex_data[idx] # Select the unique rows by index. + # Grab the set of unique points. + # + # This basically finds the unique rows in the array by treating them as opaque groups of bytes + # which are as long as the 2 float64s in each row, and giving this view to numpy.unique() to munch. + # See http://stackoverflow.com/questions/16970982/find-unique-rows-in-numpy-array + vertex_byte_view = numpy.ascontiguousarray(vertex_data).view( + numpy.dtype((numpy.void, vertex_data.dtype.itemsize * vertex_data.shape[1]))) + _, idx = numpy.unique(vertex_byte_view, return_index=True) + vertex_data = vertex_data[idx] # Select the unique rows by index. - hull = Polygon(vertex_data) + hull = Polygon(vertex_data) - if len(vertex_data) >= 3: - convex_hull = hull.getConvexHull() - offset_hull = self._offsetHull(convex_hull) + if len(vertex_data) >= 3: + convex_hull = hull.getConvexHull() + offset_hull = self._offsetHull(convex_hull) + else: + return Polygon([]) # Node has no mesh data, so just return an empty Polygon. # Store the result in the cache self._2d_convex_hull_mesh = mesh From 502332ee3e3492665a481a40745805649a532549 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 5 Jan 2018 09:17:02 +0100 Subject: [PATCH 110/124] Revert "Account for getConvexHullTransformedVertices returning None" This reverts commit 564a97d5a80545f5eebdc63de7c48a1a435ad2ea. --- cura/Scene/ConvexHullDecorator.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/Scene/ConvexHullDecorator.py b/cura/Scene/ConvexHullDecorator.py index 94045652f5..3a563c2764 100644 --- a/cura/Scene/ConvexHullDecorator.py +++ b/cura/Scene/ConvexHullDecorator.py @@ -177,7 +177,7 @@ class ConvexHullDecorator(SceneNodeDecorator): # Do not throw away vertices: the convex hull may be too small and objects can collide. # vertex_data = vertex_data[vertex_data[:,1] >= -0.01] - if vertex_data and len(vertex_data) >= 4: + if len(vertex_data) >= 4: # Round the vertex data to 1/10th of a mm, then remove all duplicate vertices # This is done to greatly speed up further convex hull calculations as the convex hull # becomes much less complex when dealing with highly detailed models. From 47ba8b098c8f86c8b40f5ce12a92c00d29de3ab3 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Fri, 5 Jan 2018 11:51:12 +0100 Subject: [PATCH 111/124] Apply to layers shadow shader the same changes than in the default layer shader, so that the shadow layers are correctly shown in simulation view --- plugins/SimulationView/layers3d_shadow.shader | 27 ++++++++++++------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/plugins/SimulationView/layers3d_shadow.shader b/plugins/SimulationView/layers3d_shadow.shader index ad75fcf9d0..15136fcf3f 100644 --- a/plugins/SimulationView/layers3d_shadow.shader +++ b/plugins/SimulationView/layers3d_shadow.shader @@ -145,35 +145,42 @@ geometry41core = myEmitVertex(v_vertex[1], v_color[1], g_vertex_normal_vert, u_viewProjectionMatrix * (gl_in[1].gl_Position - g_vertex_offset_horz + g_vertex_offset_vert)); myEmitVertex(v_vertex[1], v_color[1], g_vertex_normal_vert, u_viewProjectionMatrix * (gl_in[1].gl_Position + g_vertex_offset_horz + g_vertex_offset_vert)); myEmitVertex(v_vertex[1], v_color[1], g_vertex_normal_vert, u_viewProjectionMatrix * (gl_in[1].gl_Position - g_vertex_offset_horz_head + g_vertex_offset_vert)); + //And reverse so that the line is also visible from the back side. + myEmitVertex(v_vertex[1], v_color[1], g_vertex_normal_vert, u_viewProjectionMatrix * (gl_in[1].gl_Position + g_vertex_offset_horz + g_vertex_offset_vert)); + myEmitVertex(v_vertex[1], v_color[1], g_vertex_normal_vert, u_viewProjectionMatrix * (gl_in[1].gl_Position - g_vertex_offset_horz + g_vertex_offset_vert)); + myEmitVertex(v_vertex[0], v_color[0], g_vertex_normal_vert, u_viewProjectionMatrix * (gl_in[0].gl_Position + g_vertex_offset_horz + g_vertex_offset_vert)); + myEmitVertex(v_vertex[0], v_color[0], g_vertex_normal_vert, u_viewProjectionMatrix * (gl_in[0].gl_Position - g_vertex_offset_horz + g_vertex_offset_vert)); + myEmitVertex(v_vertex[0], v_color[0], g_vertex_normal_vert, u_viewProjectionMatrix * (gl_in[0].gl_Position + g_vertex_offset_horz_head + g_vertex_offset_vert)); + myEmitVertex(v_vertex[0], v_color[0], g_vertex_normal_vert, u_viewProjectionMatrix * (gl_in[0].gl_Position + g_vertex_offset_horz + g_vertex_offset_vert)); EndPrimitive(); } else { // All normal lines are rendered as 3d tubes. - myEmitVertex(v_vertex[0], v_color[0], g_vertex_normal_horz, u_viewProjectionMatrix * (gl_in[0].gl_Position + g_vertex_offset_horz)); - myEmitVertex(v_vertex[1], v_color[1], g_vertex_normal_horz, u_viewProjectionMatrix * (gl_in[1].gl_Position + g_vertex_offset_horz)); - myEmitVertex(v_vertex[0], v_color[0], g_vertex_normal_vert, u_viewProjectionMatrix * (gl_in[0].gl_Position + g_vertex_offset_vert)); - myEmitVertex(v_vertex[1], v_color[1], g_vertex_normal_vert, u_viewProjectionMatrix * (gl_in[1].gl_Position + g_vertex_offset_vert)); myEmitVertex(v_vertex[0], v_color[0], -g_vertex_normal_horz, u_viewProjectionMatrix * (gl_in[0].gl_Position - g_vertex_offset_horz)); myEmitVertex(v_vertex[1], v_color[1], -g_vertex_normal_horz, u_viewProjectionMatrix * (gl_in[1].gl_Position - g_vertex_offset_horz)); - myEmitVertex(v_vertex[0], v_color[0], -g_vertex_normal_vert, u_viewProjectionMatrix * (gl_in[0].gl_Position - g_vertex_offset_vert)); - myEmitVertex(v_vertex[1], v_color[1], -g_vertex_normal_vert, u_viewProjectionMatrix * (gl_in[1].gl_Position - g_vertex_offset_vert)); + myEmitVertex(v_vertex[0], v_color[0], g_vertex_normal_vert, u_viewProjectionMatrix * (gl_in[0].gl_Position + g_vertex_offset_vert)); + myEmitVertex(v_vertex[1], v_color[1], g_vertex_normal_vert, u_viewProjectionMatrix * (gl_in[1].gl_Position + g_vertex_offset_vert)); myEmitVertex(v_vertex[0], v_color[0], g_vertex_normal_horz, u_viewProjectionMatrix * (gl_in[0].gl_Position + g_vertex_offset_horz)); myEmitVertex(v_vertex[1], v_color[1], g_vertex_normal_horz, u_viewProjectionMatrix * (gl_in[1].gl_Position + g_vertex_offset_horz)); + myEmitVertex(v_vertex[0], v_color[0], -g_vertex_normal_vert, u_viewProjectionMatrix * (gl_in[0].gl_Position - g_vertex_offset_vert)); + myEmitVertex(v_vertex[1], v_color[1], -g_vertex_normal_vert, u_viewProjectionMatrix * (gl_in[1].gl_Position - g_vertex_offset_vert)); + myEmitVertex(v_vertex[0], v_color[0], -g_vertex_normal_horz, u_viewProjectionMatrix * (gl_in[0].gl_Position - g_vertex_offset_horz)); + myEmitVertex(v_vertex[1], v_color[1], -g_vertex_normal_horz, u_viewProjectionMatrix * (gl_in[1].gl_Position - g_vertex_offset_horz)); EndPrimitive(); // left side - myEmitVertex(v_vertex[0], v_color[0], g_vertex_normal_horz, u_viewProjectionMatrix * (gl_in[0].gl_Position + g_vertex_offset_horz)); + myEmitVertex(v_vertex[0], v_color[0], -g_vertex_normal_horz, u_viewProjectionMatrix * (gl_in[0].gl_Position - g_vertex_offset_horz)); myEmitVertex(v_vertex[0], v_color[0], g_vertex_normal_vert, u_viewProjectionMatrix * (gl_in[0].gl_Position + g_vertex_offset_vert)); myEmitVertex(v_vertex[0], v_color[0], g_vertex_normal_horz_head, u_viewProjectionMatrix * (gl_in[0].gl_Position + g_vertex_offset_horz_head)); - myEmitVertex(v_vertex[0], v_color[0], -g_vertex_normal_horz, u_viewProjectionMatrix * (gl_in[0].gl_Position - g_vertex_offset_horz)); + myEmitVertex(v_vertex[0], v_color[0], g_vertex_normal_horz, u_viewProjectionMatrix * (gl_in[0].gl_Position + g_vertex_offset_horz)); EndPrimitive(); - myEmitVertex(v_vertex[0], v_color[0], -g_vertex_normal_horz, u_viewProjectionMatrix * (gl_in[0].gl_Position - g_vertex_offset_horz)); + myEmitVertex(v_vertex[0], v_color[0], g_vertex_normal_horz, u_viewProjectionMatrix * (gl_in[0].gl_Position + g_vertex_offset_horz)); myEmitVertex(v_vertex[0], v_color[0], -g_vertex_normal_vert, u_viewProjectionMatrix * (gl_in[0].gl_Position - g_vertex_offset_vert)); myEmitVertex(v_vertex[0], v_color[0], g_vertex_normal_horz_head, u_viewProjectionMatrix * (gl_in[0].gl_Position + g_vertex_offset_horz_head)); - myEmitVertex(v_vertex[0], v_color[0], g_vertex_normal_horz, u_viewProjectionMatrix * (gl_in[0].gl_Position + g_vertex_offset_horz)); + myEmitVertex(v_vertex[0], v_color[0], -g_vertex_normal_horz, u_viewProjectionMatrix * (gl_in[0].gl_Position - g_vertex_offset_horz)); EndPrimitive(); From 65e87625466d50a8c7dd4f3234b899e8028abdde Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Fri, 5 Jan 2018 11:53:38 +0100 Subject: [PATCH 112/124] Fix layer height slider update issue CURA-4758 --- resources/qml/SidebarSimple.qml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/resources/qml/SidebarSimple.qml b/resources/qml/SidebarSimple.qml index 7aca25160a..74c2bf1ec1 100644 --- a/resources/qml/SidebarSimple.qml +++ b/resources/qml/SidebarSimple.qml @@ -70,6 +70,18 @@ Item onActiveVariantChanged: qualityModel.update() } + Connections { + target: base + onVisibleChanged: + { + // update needs to be called when the widgets are visible, otherwise the step width calculation + // will fail because the width of an invisible item is 0. + if (visible) { + qualityModel.update(); + } + } + } + ListModel { id: qualityModel From 223d9b6025f8d74cef42b9e0b3edbc5e20c90e43 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Fri, 5 Jan 2018 11:54:17 +0100 Subject: [PATCH 113/124] Update QtQuick import versions CURA-4758 --- resources/qml/Sidebar.qml | 2 +- resources/qml/SidebarAdvanced.qml | 5 ++--- resources/qml/SidebarSimple.qml | 8 ++++---- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/resources/qml/Sidebar.qml b/resources/qml/Sidebar.qml index e6e0fee023..e1c0a07f89 100644 --- a/resources/qml/Sidebar.qml +++ b/resources/qml/Sidebar.qml @@ -3,7 +3,7 @@ import QtQuick 2.8 import QtQuick.Controls 2.1 -import QtQuick.Layouts 1.1 +import QtQuick.Layouts 1.3 import UM 1.2 as UM import Cura 1.0 as Cura diff --git a/resources/qml/SidebarAdvanced.qml b/resources/qml/SidebarAdvanced.qml index 95f218639b..f214e425b1 100644 --- a/resources/qml/SidebarAdvanced.qml +++ b/resources/qml/SidebarAdvanced.qml @@ -1,9 +1,8 @@ // Copyright (c) 2015 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. -import QtQuick 2.0 - -import QtQuick.Controls 1.2 +import QtQuick 2.8 +import QtQuick.Controls 2.1 import "Settings" diff --git a/resources/qml/SidebarSimple.qml b/resources/qml/SidebarSimple.qml index 74c2bf1ec1..7e86b10207 100644 --- a/resources/qml/SidebarSimple.qml +++ b/resources/qml/SidebarSimple.qml @@ -1,10 +1,10 @@ // Copyright (c) 2017 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. -import QtQuick 2.2 -import QtQuick.Controls 1.1 -import QtQuick.Controls.Styles 1.1 -import QtQuick.Layouts 1.1 +import QtQuick 2.8 +import QtQuick.Controls 1.4 +import QtQuick.Controls.Styles 1.4 +import QtQuick.Layouts 1.3 import UM 1.2 as UM import Cura 1.2 as Cura From 8c98ab027a7c53dd9840f17abc14316c04a16095 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Fri, 5 Jan 2018 11:54:46 +0100 Subject: [PATCH 114/124] Fix code style CURA-4758 --- resources/qml/SidebarSimple.qml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/resources/qml/SidebarSimple.qml b/resources/qml/SidebarSimple.qml index 7e86b10207..ac124c8911 100644 --- a/resources/qml/SidebarSimple.qml +++ b/resources/qml/SidebarSimple.qml @@ -11,7 +11,7 @@ import Cura 1.2 as Cura Item { - id: base; + id: base signal showTooltip(Item item, point location, string text); signal hideTooltip(); @@ -115,7 +115,7 @@ Item if (Cura.SimpleModeSettingsManager.isProfileUserCreated) { qualityModel.qualitySliderActiveIndex = -1 } else { - qualityModel.qualitySliderActiveIndex = i + qualityModel.qualitySliderActiveIndex = i } qualityModel.existingQualityProfile = 1 @@ -195,11 +195,10 @@ Item text: { var result = "" - if(Cura.MachineManager.activeMachine != null){ + if (Cura.MachineManager.activeMachine != null) { + result = Cura.ProfilesModel.getItem(index).layer_height_without_unit - var result = Cura.ProfilesModel.getItem(index).layer_height_without_unit - - if(result == undefined) + if (result == undefined) result = "" } return result From b20c6c6ac7a123c7da0b1c486e3af87a27f6391f Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 5 Jan 2018 13:02:00 +0100 Subject: [PATCH 115/124] Use isinstance instead of type checking for SceneNode isinstance also checks for subclasses. In our case, SceneNode was just extended to CuraSceneNode so this test was failing. Contributes to issue CURA-4766. --- cura/Settings/ExtruderManager.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/Settings/ExtruderManager.py b/cura/Settings/ExtruderManager.py index 32e3867300..351843ae14 100755 --- a/cura/Settings/ExtruderManager.py +++ b/cura/Settings/ExtruderManager.py @@ -270,7 +270,7 @@ class ExtruderManager(QObject): return [] # Get the extruders of all printable meshes in the scene - meshes = [node for node in DepthFirstIterator(scene_root) if type(node) is SceneNode and node.isSelectable()] + meshes = [node for node in DepthFirstIterator(scene_root) if isinstance(node, SceneNode) and node.isSelectable()] for mesh in meshes: extruder_stack_id = mesh.callDecoration("getActiveExtruder") if not extruder_stack_id: From fefb20deb786d94ca807e6011ea9ca21d62bca46 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 5 Jan 2018 13:33:40 +0100 Subject: [PATCH 116/124] Don't start slicing again if you can't slice Contributes to issue CURA-4766. --- plugins/CuraEngineBackend/CuraEngineBackend.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/plugins/CuraEngineBackend/CuraEngineBackend.py b/plugins/CuraEngineBackend/CuraEngineBackend.py index 74dd515951..ff6c196c2d 100755 --- a/plugins/CuraEngineBackend/CuraEngineBackend.py +++ b/plugins/CuraEngineBackend/CuraEngineBackend.py @@ -204,7 +204,6 @@ class CuraEngineBackend(QObject, Backend): if self._process_layers_job: Logger.log("d", " ## Process layers job still busy, trying later") - self._invokeSlice() return # see if we really have to slice @@ -214,7 +213,6 @@ class CuraEngineBackend(QObject, Backend): num_objects = self._numObjects() if build_plate_to_be_sliced not in num_objects or num_objects[build_plate_to_be_sliced] == 0: Logger.log("d", "Build plate %s has 0 objects to be sliced, skipping", build_plate_to_be_sliced) - self._invokeSlice() return self._stored_layer_data = [] From a8ad956c927df2eaa4140ee88eacb69851bd07f8 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 5 Jan 2018 13:34:39 +0100 Subject: [PATCH 117/124] Erase gcode of build plates that are determined to be empty You don't want to start a new slice, but you should still erase the g-code there. Contributes to issue CURA-4525. --- plugins/CuraEngineBackend/CuraEngineBackend.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/plugins/CuraEngineBackend/CuraEngineBackend.py b/plugins/CuraEngineBackend/CuraEngineBackend.py index ff6c196c2d..4491008997 100755 --- a/plugins/CuraEngineBackend/CuraEngineBackend.py +++ b/plugins/CuraEngineBackend/CuraEngineBackend.py @@ -206,12 +206,16 @@ class CuraEngineBackend(QObject, Backend): Logger.log("d", " ## Process layers job still busy, trying later") return + if not hasattr(self._scene, "gcode_list"): + self._scene.gcode_list = {} + # see if we really have to slice active_build_plate = Application.getInstance().getBuildPlateModel().activeBuildPlate build_plate_to_be_sliced = self._build_plates_to_be_sliced.pop(0) Logger.log("d", "Going to slice build plate [%s]!" % build_plate_to_be_sliced) num_objects = self._numObjects() if build_plate_to_be_sliced not in num_objects or num_objects[build_plate_to_be_sliced] == 0: + self._scene.gcode_list[build_plate_to_be_sliced] = [] Logger.log("d", "Build plate %s has 0 objects to be sliced, skipping", build_plate_to_be_sliced) return @@ -229,8 +233,6 @@ class CuraEngineBackend(QObject, Backend): self.processingProgress.emit(0.0) self.backendStateChange.emit(BackendState.NotStarted) - if not hasattr(self._scene, "gcode_list"): - self._scene.gcode_list = {} self._scene.gcode_list[build_plate_to_be_sliced] = [] #[] indexed by build plate number self._slicing = True self.slicingStarted.emit() From a717960695bb35789e166ab1d6281d317bef50ff Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 5 Jan 2018 13:46:05 +0100 Subject: [PATCH 118/124] Disallow negative branch angles The engine can't really handle that any more. Contributes to issue CURA-4523. --- resources/definitions/fdmprinter.def.json | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index e3a1c0892a..6eef6b1e9b 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -3854,12 +3854,11 @@ "support_tree_branch_diameter_angle": { "label": "Tree Support Branch Diameter Angle", - "description": "The angle of the branches' diameter as they gradually become thicker towards the bottom. An angle of 0 will cause the branches to have uniform thickness over their length. A negative angle makes them thinner towards the bottom, so be careful as they might disappear. A small positive angle can increase stability of the tree support.", + "description": "The angle of the branches' diameter as they gradually become thicker towards the bottom. An angle of 0 will cause the branches to have uniform thickness over their length. A bit of an angle can increase stability of the tree support.", "unit": "°", "type": "float", - "minimum_value": "-89.9999", + "minimum_value": "0", "maximum_value": "89.9999", - "minimum_value_warning": "0", "maximum_value_warning": "15", "default_value": 5, "limit_to_extruder": "support_infill_extruder_nr", From 5dad6cab2c546d0d04ea92f5b909be912f4282d6 Mon Sep 17 00:00:00 2001 From: Aleksei S Date: Fri, 5 Jan 2018 14:00:23 +0100 Subject: [PATCH 119/124] If the model is:some per mesh settings or outside of the buildplate show message, CURA-4525 --- plugins/CuraEngineBackend/CuraEngineBackend.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/plugins/CuraEngineBackend/CuraEngineBackend.py b/plugins/CuraEngineBackend/CuraEngineBackend.py index 4491008997..44c39db69f 100755 --- a/plugins/CuraEngineBackend/CuraEngineBackend.py +++ b/plugins/CuraEngineBackend/CuraEngineBackend.py @@ -357,6 +357,18 @@ class CuraEngineBackend(QObject, Backend): else: self.backendStateChange.emit(BackendState.NotStarted) + if job.getResult() == StartSliceJob.StartJobResult.NothingToSlice: + if Application.getInstance().platformActivity: + self._error_message = Message(catalog.i18nc("@info:status", "Nothing to slice because none of the models fit the build volume. Please scale or rotate models to fit."), + title = catalog.i18nc("@info:title", "Unable to slice")) + self._error_message.show() + self.backendStateChange.emit(BackendState.Error) + else: + self.backendStateChange.emit(BackendState.NotStarted) + pass + self._invokeSlice() + return + # Preparation completed, send it to the backend. self._socket.sendMessage(job.getSliceMessage()) From 784a17149f48da575a7b8f5a2e1be4e78a9d1a69 Mon Sep 17 00:00:00 2001 From: Aleksei S Date: Fri, 5 Jan 2018 15:20:42 +0100 Subject: [PATCH 120/124] Don't show save to file if not possible to slice CURA-4525 --- plugins/CuraEngineBackend/CuraEngineBackend.py | 1 - 1 file changed, 1 deletion(-) diff --git a/plugins/CuraEngineBackend/CuraEngineBackend.py b/plugins/CuraEngineBackend/CuraEngineBackend.py index 44c39db69f..0ca500ecec 100755 --- a/plugins/CuraEngineBackend/CuraEngineBackend.py +++ b/plugins/CuraEngineBackend/CuraEngineBackend.py @@ -198,7 +198,6 @@ class CuraEngineBackend(QObject, Backend): self._slice_start_time = time() if not self._build_plates_to_be_sliced: self.processingProgress.emit(1.0) - self.backendStateChange.emit(BackendState.Done) Logger.log("w", "Slice unnecessary, nothing has changed that needs reslicing.") return From 1a520a041b0719c86db91d12e3e3fb8df9bef18c Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Fri, 5 Jan 2018 16:27:57 +0100 Subject: [PATCH 121/124] CURA-4768 Allow groups of models to be included in the select all and arrange tools. --- cura/CuraApplication.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 476b5d3708..8aeeb9c1e8 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -1020,7 +1020,7 @@ class CuraApplication(QtApplication): continue # Grouped nodes don't need resetting as their parent (the group) is resetted) if not node.isSelectable(): continue # i.e. node with layer data - if not node.callDecoration("isSliceable"): + if not node.callDecoration("isSliceable") and not node.callDecoration("isGroup"): continue # i.e. node with layer data Selection.add(node) @@ -1092,7 +1092,7 @@ class CuraApplication(QtApplication): continue # Node that doesnt have a mesh and is not a group. if node.getParent() and node.getParent().callDecoration("isGroup"): continue # Grouped nodes don't need resetting as their parent (the group) is resetted) - if not node.callDecoration("isSliceable"): + if not node.callDecoration("isSliceable") and not node.callDecoration("isGroup"): continue # i.e. node with layer data nodes.append(node) @@ -1119,7 +1119,7 @@ class CuraApplication(QtApplication): continue # Node that doesnt have a mesh and is not a group. if node.getParent() and node.getParent().callDecoration("isGroup"): continue # Grouped nodes don't need resetting as their parent (the group) is resetted) - if not node.callDecoration("isSliceable"): + if not node.callDecoration("isSliceable") and not node.callDecoration("isGroup"): continue # i.e. node with layer data # Skip nodes that are too big if node.getBoundingBox().width < self._volume.getBoundingBox().width or node.getBoundingBox().depth < self._volume.getBoundingBox().depth: @@ -1142,7 +1142,7 @@ class CuraApplication(QtApplication): continue # Grouped nodes don't need resetting as their parent (the group) is resetted) if not node.isSelectable(): continue # i.e. node with layer data - if not node.callDecoration("isSliceable"): + if not node.callDecoration("isSliceable") and not node.callDecoration("isGroup"): continue # i.e. node with layer data if node.callDecoration("getBuildPlateNumber") == active_build_plate: # Skip nodes that are too big @@ -1166,7 +1166,7 @@ class CuraApplication(QtApplication): continue # Grouped nodes don't need resetting as their parent (the group) is resetted) if not node.isSelectable(): continue # i.e. node with layer data - if not node.callDecoration("isSliceable"): + if not node.callDecoration("isSliceable") and not node.callDecoration("isGroup"): continue # i.e. node with layer data if node in nodes: # exclude selected node from fixed_nodes continue From c839bc175998707ec1ddddb4464298ff2884d812 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Fri, 5 Jan 2018 16:53:18 +0100 Subject: [PATCH 122/124] Groups of objects are taken into account and are shown in the object list instead of each model separatelly. Contributes to CURA-4525 --- cura/ObjectsModel.py | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/cura/ObjectsModel.py b/cura/ObjectsModel.py index 2e83ee9033..7efbb8e5b9 100644 --- a/cura/ObjectsModel.py +++ b/cura/ObjectsModel.py @@ -24,16 +24,28 @@ class ObjectsModel(ListModel): nodes = [] filter_current_build_plate = Preferences.getInstance().getValue("view/filter_current_build_plate") active_build_plate_number = self._build_plate_number + group_nr = 1 for node in DepthFirstIterator(Application.getInstance().getController().getScene().getRoot()): - if not issubclass(type(node), SceneNode) or (not node.getMeshData() and not node.callDecoration("getLayerData")): + if not issubclass(type(node), SceneNode): continue - if not node.callDecoration("isSliceable"): + if (not node.getMeshData() and not node.callDecoration("getLayerData")) and not node.callDecoration("isGroup"): + continue + if node.getParent() and node.getParent().callDecoration("isGroup"): + continue # Grouped nodes don't need resetting as their parent (the group) is resetted) + if not node.callDecoration("isSliceable") and not node.callDecoration("isGroup"): continue node_build_plate_number = node.callDecoration("getBuildPlateNumber") if filter_current_build_plate and node_build_plate_number != active_build_plate_number: continue + + if not node.callDecoration("isGroup"): + name = node.getName() + else: + name = "Group #" + str(group_nr) + group_nr += 1 + nodes.append({ - "name": node.getName(), + "name": name, "isSelected": Selection.isSelected(node), "isOutsideBuildArea": node.isOutsideBuildArea(), "buildPlateNumber": node_build_plate_number, From ab2450630701714f85d522214260e3574bc06931 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Fri, 5 Jan 2018 17:05:11 +0100 Subject: [PATCH 123/124] Add string to cura I18N catalog. Contributes to CURA-4525 --- cura/ObjectsModel.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/cura/ObjectsModel.py b/cura/ObjectsModel.py index 7efbb8e5b9..5218127fc5 100644 --- a/cura/ObjectsModel.py +++ b/cura/ObjectsModel.py @@ -4,7 +4,9 @@ from UM.Scene.Iterator.DepthFirstIterator import DepthFirstIterator from UM.Scene.SceneNode import SceneNode from UM.Scene.Selection import Selection from UM.Preferences import Preferences +from UM.i18n import i18nCatalog +catalog = i18nCatalog("cura") ## Keep track of all objects in the project class ObjectsModel(ListModel): @@ -41,7 +43,7 @@ class ObjectsModel(ListModel): if not node.callDecoration("isGroup"): name = node.getName() else: - name = "Group #" + str(group_nr) + name = catalog.i18nc("@label", "Group #{group_nr}").format(group_nr = str(group_nr)) group_nr += 1 nodes.append({ From 3708c37b6022af916bd1ac60868d144eb0abf284 Mon Sep 17 00:00:00 2001 From: Anton Midyukov Date: Sun, 7 Jan 2018 17:17:32 +0700 Subject: [PATCH 124/124] Activation workaround Linux+NVidia proprietary drivers for all distributions --- cura_app.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/cura_app.py b/cura_app.py index b5844055ab..6d1ff6ab6b 100755 --- a/cura_app.py +++ b/cura_app.py @@ -40,11 +40,11 @@ import faulthandler if Platform.isLinux(): # Needed for platform.linux_distribution, which is not available on Windows and OSX # For Ubuntu: https://bugs.launchpad.net/ubuntu/+source/python-qt4/+bug/941826 linux_distro_name = platform.linux_distribution()[0].lower() - if linux_distro_name in ("debian", "ubuntu", "linuxmint", "fedora"): # TODO: Needs a "if X11_GFX == 'nvidia'" here. The workaround is only needed on Ubuntu+NVidia drivers. Other drivers are not affected, but fine with this fix. - import ctypes - from ctypes.util import find_library - libGL = find_library("GL") - ctypes.CDLL(libGL, ctypes.RTLD_GLOBAL) + # TODO: Needs a "if X11_GFX == 'nvidia'" here. The workaround is only needed on Ubuntu+NVidia drivers. Other drivers are not affected, but fine with this fix. + import ctypes + from ctypes.util import find_library + libGL = find_library("GL") + ctypes.CDLL(libGL, ctypes.RTLD_GLOBAL) # When frozen, i.e. installer version, don't let PYTHONPATH mess up the search path for DLLs. if Platform.isWindows() and hasattr(sys, "frozen"):

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 qJRynJUBL0Al=Gumj))$}1% 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 UUdK{kDjs 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