From 06c3ddde7e168c05b5e065cfa31bb68a0f15714f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=89=BE=E7=AB=B9?= Date: Tue, 2 May 2023 14:28:51 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=9E=E6=8E=A5=E7=82=B9=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...udio.Wpf.DiagramApp_1aj2agka_wpftmp.csproj | 1051 ---------------- ...udio.Wpf.DiagramApp_3fs0arq3_wpftmp.csproj | 1071 ----------------- ...udio.Wpf.DiagramApp_gpbabrim_wpftmp.csproj | 1058 ---------------- ...udio.Wpf.DiagramApp_vv4u11rm_wpftmp.csproj | 1053 ---------------- .../Controls/DesignerCanvas.cs | 78 +- .../Themes/ConnectorItem.xaml | 26 +- .../UserControls/DiagramControl.xaml | 16 +- .../UserControls/LineControl.xaml | 65 +- .../AIStudio.Wpf.Script.Core.dll | Bin 64512 -> 64512 bytes .../AIStudio.Wpf.Script.Core.dll | Bin 65024 -> 65024 bytes .../AIStudio.Wpf.Script.Core.dll | Bin 64512 -> 64512 bytes 11 files changed, 93 insertions(+), 4325 deletions(-) delete mode 100644 AIStudio.Wpf.DiagramApp/AIStudio.Wpf.DiagramApp_1aj2agka_wpftmp.csproj delete mode 100644 AIStudio.Wpf.DiagramApp/AIStudio.Wpf.DiagramApp_3fs0arq3_wpftmp.csproj delete mode 100644 AIStudio.Wpf.DiagramApp/AIStudio.Wpf.DiagramApp_gpbabrim_wpftmp.csproj delete mode 100644 AIStudio.Wpf.DiagramApp/AIStudio.Wpf.DiagramApp_vv4u11rm_wpftmp.csproj diff --git a/AIStudio.Wpf.DiagramApp/AIStudio.Wpf.DiagramApp_1aj2agka_wpftmp.csproj b/AIStudio.Wpf.DiagramApp/AIStudio.Wpf.DiagramApp_1aj2agka_wpftmp.csproj deleted file mode 100644 index b78e6e2..0000000 --- a/AIStudio.Wpf.DiagramApp/AIStudio.Wpf.DiagramApp_1aj2agka_wpftmp.csproj +++ /dev/null @@ -1,1051 +0,0 @@ - - - AIStudio.Wpf.DiagramApp - obj\Debug\ - obj\ - F:\aistudio.-wpf.-diagram\AIStudio.Wpf.DiagramApp\obj\ - <_TargetAssemblyProjectName>AIStudio.Wpf.DiagramApp - - - - WinExe - true - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - - 8.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/AIStudio.Wpf.DiagramApp/AIStudio.Wpf.DiagramApp_3fs0arq3_wpftmp.csproj b/AIStudio.Wpf.DiagramApp/AIStudio.Wpf.DiagramApp_3fs0arq3_wpftmp.csproj deleted file mode 100644 index 3606cb3..0000000 --- a/AIStudio.Wpf.DiagramApp/AIStudio.Wpf.DiagramApp_3fs0arq3_wpftmp.csproj +++ /dev/null @@ -1,1071 +0,0 @@ - - - AIStudio.Wpf.DiagramApp - obj\Debug\ - obj\ - F:\aistudio.-wpf.-diagram\AIStudio.Wpf.DiagramApp\obj\ - <_TargetAssemblyProjectName>AIStudio.Wpf.DiagramApp - - - - WinExe - true - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - - - - - - - - - - - - - - - - - - - - - - - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - - 8.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/AIStudio.Wpf.DiagramApp/AIStudio.Wpf.DiagramApp_gpbabrim_wpftmp.csproj b/AIStudio.Wpf.DiagramApp/AIStudio.Wpf.DiagramApp_gpbabrim_wpftmp.csproj deleted file mode 100644 index b68d647..0000000 --- a/AIStudio.Wpf.DiagramApp/AIStudio.Wpf.DiagramApp_gpbabrim_wpftmp.csproj +++ /dev/null @@ -1,1058 +0,0 @@ - - - AIStudio.Wpf.DiagramApp - obj\Debug\ - obj\ - F:\aistudio.-wpf.-diagram\AIStudio.Wpf.DiagramApp\obj\ - <_TargetAssemblyProjectName>AIStudio.Wpf.DiagramApp - - - - WinExe - true - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - - 8.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/AIStudio.Wpf.DiagramApp/AIStudio.Wpf.DiagramApp_vv4u11rm_wpftmp.csproj b/AIStudio.Wpf.DiagramApp/AIStudio.Wpf.DiagramApp_vv4u11rm_wpftmp.csproj deleted file mode 100644 index 29132b9..0000000 --- a/AIStudio.Wpf.DiagramApp/AIStudio.Wpf.DiagramApp_vv4u11rm_wpftmp.csproj +++ /dev/null @@ -1,1053 +0,0 @@ - - - AIStudio.Wpf.DiagramApp - obj\Debug\ - obj\ - F:\aistudio.-wpf.-diagram\AIStudio.Wpf.DiagramApp\obj\ - <_TargetAssemblyProjectName>AIStudio.Wpf.DiagramApp - - - - WinExe - true - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - - 8.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/AIStudio.Wpf.DiagramDesigner/Controls/DesignerCanvas.cs b/AIStudio.Wpf.DiagramDesigner/Controls/DesignerCanvas.cs index 52afa39..2273d7e 100644 --- a/AIStudio.Wpf.DiagramDesigner/Controls/DesignerCanvas.cs +++ b/AIStudio.Wpf.DiagramDesigner/Controls/DesignerCanvas.cs @@ -37,11 +37,37 @@ namespace AIStudio.Wpf.DiagramDesigner return DiagramServicesProvider.Instance.Provider; } } - private ConnectionViewModel partialConnection; - private List connectorsHit = new List(); + private ConnectionViewModel partialConnection; private Point? rubberbandSelectionStartPoint = null; + private Connector sourceConnector; + public Connector SourceConnector + { + get + { + return sourceConnector; + } + set + { + if (sourceConnector != value) + { + sourceConnector = value; + + FullyCreatedConnectorInfo sourceDataItem = sourceConnector.Info; + + Rect rectangleBounds = sourceConnector.TransformToVisual(this).TransformBounds(new Rect(sourceConnector.RenderSize)); + Point point = new Point(rectangleBounds.Left + (rectangleBounds.Width / 2), + rectangleBounds.Bottom + (rectangleBounds.Height / 2)); + partialConnection = new ConnectionViewModel(_viewModel, sourceDataItem, new PartCreatedConnectorInfo(point.X, point.Y), DrawMode, RouterMode); + + _viewModel.Add(partialConnection); + } + } + } + + private Connector sinkConnector; + private DrawMode DrawMode { get @@ -100,7 +126,7 @@ namespace AIStudio.Wpf.DiagramDesigner } } } - + #region GridCellSize public static readonly DependencyProperty GridCellSizeProperty = @@ -293,32 +319,6 @@ namespace AIStudio.Wpf.DiagramDesigner } #endregion - private Connector sourceConnector; - public Connector SourceConnector - { - get - { - return sourceConnector; - } - set - { - if (sourceConnector != value) - { - sourceConnector = value; - connectorsHit.Add(sourceConnector); - - FullyCreatedConnectorInfo sourceDataItem = sourceConnector.Info; - - Rect rectangleBounds = sourceConnector.TransformToVisual(this).TransformBounds(new Rect(sourceConnector.RenderSize)); - Point point = new Point(rectangleBounds.Left + (rectangleBounds.Width / 2), - rectangleBounds.Bottom + (rectangleBounds.Height / 2)); - partialConnection = new ConnectionViewModel(_viewModel, sourceDataItem, new PartCreatedConnectorInfo(point.X, point.Y), DrawMode, RouterMode); - - _viewModel.Add(partialConnection); - } - } - } - protected override void OnMouseDown(MouseButtonEventArgs e) { base.OnMouseDown(e); @@ -376,6 +376,7 @@ namespace AIStudio.Wpf.DiagramDesigner var point = CursorPointManager.GetCursorPosition(); _viewModel.CurrentColor = ColorPickerManager.GetColor(point.X, point.Y); + //移动 if (_service.DrawModeViewModel.CursorMode == CursorMode.Move) { _viewModel.SelectedItems.OfType().ToList().ForEach(p => { @@ -390,7 +391,7 @@ namespace AIStudio.Wpf.DiagramDesigner if (e.LeftButton == MouseButtonState.Pressed) { partialConnection.SinkConnectorInfo = new PartCreatedConnectorInfo(currentPoint.X, currentPoint.Y); - HitTesting(currentPoint); + sinkConnector = HitTesting(currentPoint); if (EnableSnapping) { @@ -405,7 +406,7 @@ namespace AIStudio.Wpf.DiagramDesigner else { // if mouse button is not pressed we have no drag operation, ... - if (e.LeftButton != MouseButtonState.Pressed && _service.DrawModeViewModel.GetDrawMode() != DrawMode.DirectLine) + if (e.LeftButton != MouseButtonState.Pressed) rubberbandSelectionStartPoint = null; // ... but if mouse button is pressed and start @@ -439,9 +440,9 @@ namespace AIStudio.Wpf.DiagramDesigner if (sourceConnector != null) { FullyCreatedConnectorInfo sourceDataItem = sourceConnector.Info; - if (connectorsHit.Count() == 2) + if (sinkConnector != null) { - Connector sinkConnector = connectorsHit.Last(); + FullyCreatedConnectorInfo sinkDataItem = sinkConnector.Info; int indexOfLastTempConnection = sinkDataItem.DataItem.Root.Items.Count - 1; @@ -459,13 +460,11 @@ namespace AIStudio.Wpf.DiagramDesigner int indexOfLastTempConnection = sourceDataItem.DataItem.Root.Items.Count - 1; sourceDataItem.DataItem.Root.Remove( sourceDataItem.DataItem.Root.Items[indexOfLastTempConnection]); - - } } - connectorsHit = new List(); sourceConnector = null; + sinkConnector = null; if (_service.DrawModeViewModel.GetDrawMode() != DrawMode.DirectLine) { @@ -526,7 +525,7 @@ namespace AIStudio.Wpf.DiagramDesigner return size; } - private void HitTesting(Point hitPoint) + private Connector HitTesting(Point hitPoint) { DependencyObject hitObject = this.InputHitTest(hitPoint) as DependencyObject; while (hitObject != null && @@ -534,11 +533,12 @@ namespace AIStudio.Wpf.DiagramDesigner { if (hitObject is Connector connector) { - if (!connectorsHit.Contains(hitObject as Connector)) - connectorsHit.Add(hitObject as Connector); + return connector; } hitObject = VisualTreeHelper.GetParent(hitObject); } + + return null; } protected override void OnDrop(DragEventArgs e) diff --git a/AIStudio.Wpf.DiagramDesigner/Themes/ConnectorItem.xaml b/AIStudio.Wpf.DiagramDesigner/Themes/ConnectorItem.xaml index 7773497..fa94124 100644 --- a/AIStudio.Wpf.DiagramDesigner/Themes/ConnectorItem.xaml +++ b/AIStudio.Wpf.DiagramDesigner/Themes/ConnectorItem.xaml @@ -7,7 +7,7 @@ - + @@ -24,14 +24,22 @@ - - + + + + + + + + + + - + @@ -48,8 +56,8 @@ - - + + @@ -83,6 +91,12 @@ + + + + + + diff --git a/AIStudio.Wpf.DiagramDesigner/UserControls/DiagramControl.xaml b/AIStudio.Wpf.DiagramDesigner/UserControls/DiagramControl.xaml index 78af4c1..37201b4 100644 --- a/AIStudio.Wpf.DiagramDesigner/UserControls/DiagramControl.xaml +++ b/AIStudio.Wpf.DiagramDesigner/UserControls/DiagramControl.xaml @@ -203,7 +203,6 @@ @@ -633,7 +624,7 @@ - + @@ -708,7 +699,7 @@ - + @@ -814,8 +805,7 @@ - - - - @@ -60,7 +41,7 @@ VerticalAlignment="Center" HorizontalAlignment="Center" RenderTransformOrigin="0.5,0.5" - Style="{StaticResource ArrowStyle}"> + Fill="{Binding ColorViewModel.LineColor,Converter={StaticResource ColorBrushConverter}}"> @@ -81,7 +62,7 @@ VerticalAlignment="Center" HorizontalAlignment="Center" RenderTransformOrigin="0.5,0.5" - Style="{StaticResource ArrowStyle}"> + Fill="{Binding ColorViewModel.LineColor,Converter={StaticResource ColorBrushConverter}}"> @@ -90,19 +71,35 @@ - + + + + - + + + + h`BmOMTCGt0|phJVhy7x41SA>5{ZIO4a%U2 z3c;xKAjKFX8jaPYQ9G?EP4b>;TrmwzLd4W+OcPr*rS+{O#v~-~J$?I}dl{ka>gsy4 z*8R`cN6<0kN$uG!;| zatTPt5;`*Jm$ygI5^}#V}PYjFj>wY{M@i5{s z4wGXxn1DwK9{cdH;nDXwkBtWGz7&HV#CBi&o7nys?d@UW_-aT=F*Y+;MS3L~Aj)bU zVT8 zfU}9=)%2(1rfX?u|NqmL{axC^@e2mkux^Ygwe!&{+%cZTk*!{fHl>oD8=v~m+%efh za(LvwV|dL-0M{m#q;4kfXB`@c4sWfSg>=XG4okZpP1PGv>K{R4_2aZUJKa)?3^07B zpw!ZEw$G`upxZPDV+8#sT>bjt^O*PZ?1b2ex0IO&DI4)@Iz4BYiACd>(SOTHBWq|~ z&ZIG$SmNOTj?n`6a3FKob)eLtwK{|nWlX55XCX%AQT8P$o9Q<>m&lfI*AGrk%E|Tv z`04mz_rVo=$9N z#)WjTp@KBgyv8I`uCIJ>2E0zo8`A}&k3QR&OT6^s#_{B++?bc606WDcHWKwMTI~(~CZ)UA{D~*<5q+7S`q4N%U|+-%9%Oborh^i)7!A zdNZya^~) z$Dg!N9B5a6#z#Ez6Rv;a%8DlN8Mawp>qOR9E!XX0G|$ZRsK~sX7Uq4Q>t)n#-(^b% zH2NG;2Ao7qMXy7`_>ga}6c5!d1(zQy&S=ahJ4tc<9--V?TrVaw{k4~AsiEA;3N5#0 zz(SsA9V)XtL;B8gkQH)q{b;U(xq7%-QCXL(WDn{()NWMPW1voE_0F)ddS{|`qxKJC z?F!paSZrA*4+XQC>H0WkNwBby?v47~#xe}IvkbFwq`N8E^;cYYDMW;uUUo@rX3GSr zhFxh$7pZx-3nPLc!W-PSE%BJM2k9M7PvFwb+r5yyNuS@{RA}?`;PSos06X_BDC88I z%4i$(I$qJo!(mQufg$#~J`vWBQ6odv+j=Kl@(k`Ao@ZDOkM z2gF?NJPUE|ugQ35(TELc4k)-eVN-r5icv17%{Xa6q&iN`i6@-%3^@Z9Q4T!CeQbK0 z$=~`~(f4TI+~>e6Je1A-T1<0^(+%?mPXXk@RgJcIf=GYS=%lRx^5B+69kw9Se{1x8 zVx3_E=-8GEZkY8>uP^~5dY7i!SVr~$V4t_FTj)bAp3rMNt`#Ob&Ko9ylF59nU>bDZ zFd39Al@eU%4Fxa+H*m~%fAU@96sXKqDG>LHX)2t|Q|Y_7&rH+c$q9WFFBZc3hgEvj zl_Ac63mU!PDij}qAt7E*E4<(;5sRRJ(>8ImevByqGc+2nUn&NmM5BGC0+3uHt#cup?hvg`cByHneC?A_kH6YcvskbKrTOfnB@rl_>b z@Q`Ib^lH=-*JxP)XNFJh3q4|42+}l0&Dh}^mPG@KSp<{mfmT;2z#~`@*D>NTjk@l(ZZcMaYe`K0>pQu4&ZmW0XI=?`KxBNR{}7yc}HowX0R!C%$c74qlC3 z5;Mti81X~CWYj^gfE%h4UPosI^m3wDOeR?Y3yS)>D73DC-$y8j)c=9A0ull&a+??% zTYq>Y#01AfQATIk3Yt?`>)$nN~w8L5rbLjjwSLmggYHD^* ztcCY9V)w*a_*5f<`6O%vyjFM-><+mRyc)3^Wvy>+YUQ9siif*&uQmgSLh74v5R1ytpPeU>gM#jh;Iq{KIWu8*&E=q2-Tnu zt7N@m@lCcSz-Nj^du>m{_y`@c?SyHZ-V*)tFKoMDW=KW;J9j~YM(k(qhSxZ$&!}e5 z<2x05e)Zz>s~N^}VjX^KYlfx>8SE6=Ba~=wg>O0CAndu<23CA$=$oB3Ty|^`YP*#- zz}-B4)Vop}jMk_dAAD^u7keRHt%Kq2k=D9Cwiyw&3zaz2)bL~ z6i&EHg%03bSHZ4JFtmWv`lZkUgXo_Qj&ibn(IccKIbE0n$@(H8i|iGKp?*aDhxTC2 zZyZW6rT99Hr-Tmr$)T_ydTGn^;~a0h)#uYqqPNyup=+Z_ zhdW6c?KzyD%=S7{^lZ0Mp+DyQ5v)e7k+Sq(3LB+n2-2J*C8U=A_(;I?pjWYepbye7 zkL)91`t%E)l5EoMz6Gld$DBcEH0%|;a&itqoLU7MfE$p z@+rfcx@>s^o`q9m==MyIHyfUj3($Ml<3;=9u0l$VCO8+%S^8%ZH%ilp)9NCZ3`yqa zP+?ifzk zo+RbQcWirMoac(|JGB3i?my}y#q^D%?@x3|Bkd!>Cq0Pjm*%3TNlQ`3ONUV(mVS*o zReBdSAYDcca{FSgE2Zmbsg|yXKm19#VBIe7l~2i6<*(&eZNH{Pqkw5+^l{=-#k!}~v&qzhla@R8Nt(y`_@{zvT-PCT{Py8H{}{&3eHqhw2h$r7`r zLx|b(x)8qh#Wex1YheF<0x6s!V0$|r`S>Si{%!h)uLdP{-UcWN4jMr8$*MU$u`peCr8L<6$m z4+2pU`qbl(m`Ea86HnBxH8E|PaFUQvO{`IKf+0VvHZ(bnO*Exxj`qGc!zyk6=;@p@ z-+iBZ@4N5Lo42!Xr>@UX*Jo&HG%h*&-l5hlvBGB&tuGeI8zTr510F5{zcaL|c55yH zEArdn1Ttyrjp1}Y875r*o~|dg>YEtNj(j`?5TW!1fbvHHG%J8LpbBSg_G1D-7(h4( zo&*3>h$(9iHH2l7DKtB52&tqGhb58Yf!44%Av|vhPY8?fL&b9g?TE0ad$F|xPX*8Z z;|w+$aiF=Fd@Q!d;jq|**YW%m?Rx?i`wv6>L$R5`#x{Dw0YYq+;U>t8M5D2)m_SH~ z!7hf2c4N44vWOj7f>=DU2h7HEA)d+0OrCidS~(vDOr8?f_OW)dcc7>AwkONvS-{Az zce=wBZ}Kc;F78PVHwm8mZ=;ZmlXMa%DYWVVv|0tv2?V<-+%!A`JP)GDE=5SI4%=Xb zXAu&=h(yogU3iSxT>EjUvmaI!;BMh`OAXjT>3;2u3H?72#}pB5|fXQ7AY^m5-u5 zG&v=Lcq*}F1!;sKI@u~!<9r$ol`GJOH$nla+Q$tm(SS3J;j8GCarfzIaUK4@X-oej z?WXY$kSdy*Z8xpP!92_8t?{V?4fkdb$>F}oFktma0Oz{HebI@3|mcEpo9{MCQz}?M)=SliawwpXjm7JI)%_{*A_s#=r~Q%t3w zg_u0c*@xh%qa%OOP3i;Egkw{3GV%VqYXJ`6=Vk2f_O4!4@#w=dtrU_&#O>ZbBAJMH1)5#{<-EfYaq%S?SiFDA^#xw^coQW{O zJ1&2m3Equb7HNX-gn;MH!$aE8zG(a{>@I*>dljtPONl3IPe>2AYsr&&u;d{b#Yr7)bWSQi5T&&`S>l} z2nIC_I_ZQhUh);CTaqxt>syk1T80Op8>2hjiKty%JKY{^zpuAbxSi?yZl;~?G_KiP zbHRj`W@3b+#+{@;PbbaW8iV;=BJ(DT{r3L+12be`j8}|CE#~owJm(^`{5|d=)cfvQ z`tKQNU~9U+)BT_{Ftb+kIbQiiuHE`oG-GX_Vw;Wigv7?G=K7Qrj_pKTE}iZ}67!x8 zW!|$~FQIn1FNJ1+-)*;Mz(Leh^xCZ$?|1LEMnjd;!#iWqrb(ok6xHnz%4|h-QasaF z6PT8WWj0o5nJoi~d7?*9nPm^@?`0SlG;7;8aX24D zf^QSp`mbke0%zBC!8ug8lcbq ziZL3V;nWFY&|yD!M)afO0}>B$LApR(kQAgIk^mW;-iA|HXyWZOm?aVJ%#t`D%g_N? zJWv|U;_rpz0cny4q)8r-X83?KBVkoAO)sQEqgJR?Bj+Qv=(Jh(A??rha5_jmBm+LyNV-LiK^9!oDO`9PNlNDvEV+dXxOZ^r zlq!6Nl*#FBh;rQ^BgVrP9odxTfQxMoa3$OfVU)?K9`BkD>2bP^I{oXpjorysk~82g z=RkAN$9f;-#8$v#Vh)_+bk$O+=0h%Y>$FDoA$_IOF(n`J;4eCzQhZ21==9T|TJawE zCw_PExN0#v5`=reNXKqZRai>)U}s0CZ4G^5yXrr|woR}TrrJLgr+_O{BlF-7#i`)R z(kRCHp_mV`xVd7H!{Tq5roob2jl5B>n5V<9@-+HK)St~Wpyr-_ik4==iisNi)|nyA zhBG=Hbk3CKK&+qFvl9+F=Su~U%c(&cWgKnxLcUJpjSop)n4{BPb3V+4`8vI5_8~3O z=`mwI6v9%SHW+$KSJLwZH0dC}iP3A~}x!_hHf3B1=Ii8+1n$4M}l55EGF`Ub3# zQs|~BJDvWoc?Y(No|8(!GntjEt*KHN!>M)9QO82D6rP#Fd^nTh=@5)$yKy9gEt4#S z<)QaPEgf4;({~ZsfMKD2g@&VB~z&D-y zSZP-0YNJs*s;S{K2qL3+(}o4VYL{xE~zo}C~lE)4yGhwg+vImNmJ zj5D>m52zW|G8n4U5jDs95M**`}(hbIg7jx*!bE6 zmxCR*N;sv`UgOd!nGjzkcRNTq1wFG!Uj(4 zC!6`U>BN32YvDk#wpOHXjTD`4YEFHKF}UMqztoFEeHeN{CyT|0H+VH}!F>!Bw|cPX175%=dTvM(f6c?ya+X{9wnP01Z=rE$P?H$o#1W#5ejN+VF6x;Q-> z^eskTJ11>3&0aF1s#@ueVMF1FJn&q~ogYMg#;`ge| zqUlKo>xDZ-jMOZwO+d427MA&c$^SpbSnn*97C#eb|1SeDyN%fe=->sNpvRx_lAeIL z?{h--&@0bQP2HusNGg<>dU3DGc6_KVHrLbKX=FF5-w=oiS*qz zcWQIOCF42R5b?RuA^dn3W)K9!_uvrPT_u=-?{kGPLyWi`9Jap++aZiPpHFeH-O?Pg zJw9ES2JyxMA&cx5l2Fgl#n11ESKP-;#|3`XQ5)s_lFGc7!Dnj}%RJ>ATEK>+n7(sR^{x~TJABY2?iN(JRs7H}Ol}j$8b)IK-S{!s z9*ONHvB;#NCfil{xcHV~yu22B;f)i!)I7Of+#^p#?+sN&`;*QYbi$z+$09k)xMxs} zbp~I7vuYA<}r^RG4B z6kk?0k}^}5vKvOJpD6!8`2*=`*XHWHlH3{5! z19hVH4C-`iH>#K0eOwn?FQa9d^>V;|xJ1fABd@ZKwQJQ?D%6zW^kRpE_Xg_j`gcr!0<+tQ>^2hQ&WrH$Sc_Z+fm+J-TjC_im zkpTkP$M?GeSIGOm<%EVR>A y*GnRfL@8W+KO*1-@ol3VqwwmsD?|Y2Wp3~{ z2(~J{RiBgwp806A8Nv)JlFYEovjB+~8}C^dOktCxnng%fsiqqL02CAzx??b;n#Iho zw}n_klJtUS32n_7CN4#r=K=3LK)E6=*jm4i6)qTGUJ+-K~jCG)dlB7^$gQi8j1G7LdF+FVL_G4R|#% z{C9NFnETYU)BgXo75|g=*qAv3A7b5z@!r|!6>f?raAa#AMw_RG-jkK`OYXH8mFMKww_+hN;Nhh0}S0Fcp9iH z+htc+(9}=I7(rW)vtK)O7W2-|jtUQYXE5_Xj}KeZKW8WCSu~CreJy(=Sw+9fo-m@3 zB_0Z3OBTR|1DVC{1J4??)~-bnB1YA$V*<1f&yWp)oSZ`wMi(XmxEcUn z#ea_*_2QK)svlffi;3X;Z*iG0qphSEa%S>-9$XVkCXGj55lz@Qj`-;V8>bNmePd$* zd7E0BKO)y@Z}SF0bkSukBkXx`=fXq?adr(7;iCv|xCnwJdY}lY^iM5*vY$?Vw3>9& zR~{Xt_qz5)r@=LP_R&<5ORbx7$xK?jDU%EfY~5rg#7K8-cAz}6InQFmDrbTnia>N0QOPJ9ek5cB+==Pu-9fZ)T>CWX%VVUzEm4?%xQ=-NC2%Qvb|K&5^wFfn46Do<#@N7Kb|P%P+CMc5vA#Sy7M2Nnvz% zNz8k}$hfk{S@almo_fe zdCjaWuQ?4mc(WH#GRuAxnagM{om`qxvJTeEPL!=EWt5oTyvfF1F47J8qc`(=wOg2X_%Mc?QSIMXgWhrt(S&9WXt}=b-vCD(- z?1=rKwrpdo?_Ch3t;@u9=4b7a=Qy4XY z6yB|kgf}^LLqzzu+5ylpLW$gJ*68dYjZ`9cn+NEkVLZLE&EY%BZR@bIUWkEFqjmm|F~%E!-FT8hpQ@UH5tL+1$iP$51R zBjJ3I&XJLDIY^(9QSd{Mz94C!O;vKy>Do$(gqLm}>Y7+&BuypZ(DcAM|DKElhI z1!p-m;i;_GWx-FJJ~te8=0gtX*aikZHym@8BgrcL#gY%X5UJ8zmU5&RmB!dxbz@A0A07kWnuZ*`LSQO`51j^htqeS$F;#U+XdYOC`@O*HkdT< zf^H%-j#jA5aY2_4hcXnJ8)Mf`f~s7F=0&`(FM$1H6*5E;sSxV0Lzcx5nJi6)WxUHa z_{mWu6~Q|yU2-gxra-hWPYJ!`sFm)A98OJAjG_ zmm|$pX@fQ&N?@@{R9lWztI|bmR|;O0u3)=TSf8g(w_E6(2Afr*b z@9#;=L1w{czftH(U5Rlv zEaH3mHuy2(N#h(yp4=DtCu1elaq?pi9~tLD57oDueXl4sK5Nj%7e6*jdvQnpI`^@P zu4DXpm1K9gX)Xx&vCQl6!N`0ARWiEc(3c#f)8cKC-HgU^UmJv3(lBzmPesX+XR3la zm3p0prup!MN>`l4rUh__6DvN?vMS?HpAaVUo|Y^M6s9*vKZbgW$5zi7kM2 z@U%)(B2Pm-{MD!8mr|ur4{xjVqg0J_TBUEpDuo7!n8v&3Gp7LxII-1nfZPC!g0uqZ z9o(tnXz@$X0Ez77jz4^v?;e%dqp$%A%hbzrL;D;{qd3(r&T(qOXMQ<`*5P)TJ%R0p za_~VkzCbYAA>5D~Aw5V=%UW0;q*TiWcvmIKm~Yt#H#sS#HG{hXQ}tEa+;6y>AsJsL zl)H7Mr5Q3+lHH6Z1bvSnP3ENBQ_V0fNROh=8>CLlCZIt&XlaE5NZ3DX_^M?K9Oce# zDO3KtWh-%J9;g@TX-+JsIn)o=gX9RM5Q^_% zN`J#b+h8H15S)7KdDjm0w4lQgwV8(~Yg9YzR!OGy9V3%^V%hfqCI#q@x~(4%1JFR3 z;kHGLqvtw?`P!Y#q{wS_)~pyU8r8yd0*YOU`L!MVnj$b}!7o;N(#*P7CDz+CMhb?s7ZWk$_`*ttE zy{4^m37JZLow+1~c6AOy{gckzlqzS6rUIUHRti?W5jg_ghI=(F|g_YS4_q zSzklCfbCPeAem0tvs};Oo#YsOYfnNv)4QO|xldydUb0nb*TX4$yLL0Y73&~&LGd=z zsHa>hr{a3GXP`6eE3H#VkHHLrpt%Z8;fvU6%)s`uP9an?ShpP#%%Is0C3MMC!|iOd zR7Ot5j29-saBZcKOCA@}QAX0hQ#)d&x=x5k1iK-Fw2+Hor^OaBLwi>A3v*mOX#bWj zd^$kJQODj)o5nfZaGKY4j@Q-#f2GxXQ}yHGb{LjxPSL%4|BfFZmOqoKXWOPJ+Qanu zXQD_OedC!j@-mItSFB$Vmu)_yZKJFA?Id5(i2Y9A7;-lDDy-IBw&R_l!@A_hb)Rao zBDu?47Sqwd!&5Ytg++S27Cx>K6_W%L`bek;OMG>&YtdyrmOXIj>rXc-el9 z#y{&KOX;L%Pv(s@jmNi>Ow(kP<4mYCKm~~B5lN@ z9lubv)0FQVF)`l*++RGt_~(fTMoq}5plix(wBfrMVfpI!OEkkQrpNl7ksAD}88CkT WItj?v{-Y6=jS5(Ad`n7K2<@HL{rz(|9jf*&X#3JMAVg(3Jclz< ziui>`SS>S2EiF@P?8CB0-Hgq)&qrPL$=0;A&^EKwvS{1)oO>Ci-DjVDcAn?{@AwT!x-Jau>?oc6^0|_3P-^)s-BPb!1%#I z#PtZ4j35ovgvJ}CIvh_?Q|&<;-Uu^Db#88`K?9C7hCfP+N8PQao&5i&E&aE&*GH9+ zKhTbJo9>U;nCl^0ou1U&@J6~bo% z#kpDN%b?}U#*wvj`?ATzN`GCJM-I{4S%sk=#Hj4nuplaqR#~3lj=C!PX{MM z>VkD3nEUq8K|KATxs`0DkFS_R4$vzr`swG#Jl8iFzNNO7;ba8OZOJ4>w527DIDLO< zF_C@*dv+fLLMSdH7T9jRqhC2LK;fVv79jNM%51X|VaI2Z*+iPXs)&em@iLvWd4>MGnfYi*x#LmP zwRhCA6t`!fachR-CDlp2?aE~sd8CDFFjv-T0^wL@ZM90Qtv0S5l9gv>dRSuKbAilz zf$MjuqVv1JWOySc&X^46P?OLbXT*4~bB{3;UWstw)MK5~>9WWsQqtHa)R{^e$3-&z zA)4u2ZJmjAw9b?a>v*CasLZm1^whEuuUyiY$h9w52Uim+YjUydKwXI{qOul?sLc91 z%gp*a2USG9J&2VX%(37JTq(zb-N1Bt2(#Q7$VOTU6fG>n7z@iV8%J8Cd)8hq#)}~m zd=t$chbA^nkT$TV3<*aVX+NinL=Nl%2|iSP#OX%5z-ejtWjphI%V{xA*ek8&#uoY()L_)$a9>IGM3CVssLn0y5Pv=P#6!_^9iH2#Mj=(kSQU6|9aNhVM z&yfDTvcy7x*YCVUT+n!1n)qI6;(Miu@0BK@S7!!6`)yg0V3*Q@v{KH2B-p3Yld>D> ztzlk%z0y2%4uN-6XFWQHz=sO)u^0-c{B(v4g)jVco(zL4e!4`Gp<5y8H?kK}Ab7aa zf>k(zl%P_Ka2!%0YdEm>mr6;(-w{i>^9U41i9#CeRf!F0I%Kg81m1EsZPKBXQxo1a zH_{WFTEnl}AJnGznndaFEcdb7`!xBz?`8C1`^vpfhhsdH&Aug=<~pZ~hUXnQkO9A{ z41laKzR&EY-8W7}b}?VNTzWQ}CLcF65>PCEe>q$o5s;+!@IcBCp)5oy=wLTRQ# zGeSPm=fRe-3K>F)ln*t$(RMI|CQ1cR$(wA4Un2^oLO7z**AWj$6Cv1}tyKIv!Xw=a zBRMUVGQ@m+5oD;8CpJn&kgL)Q`W%=96IFUc??#%Y(&J(d6hnndRCFU%sq_WbD*=y6 zSFv6R)Mu;n@;7u&h9#=gD!GwXsZ@-P}R0>h!*>EY-tP~PB z_0(HGK^e+dwHE>~GFKs+DV5w0XYNwyX>D=fbSTSH=w`^%fo0$tP|y?lW?(tgaB9T{ zPX<=>>P!Xfp#>Wvyl?Ud)`?#*;*?6FGuT)GKdU5hU(nqwGmDHypUY3jb+<@#GD_vX zb_g;jV`QO9k~!Nr6KYgC>&Q3Gf_ATpUpb15vtb7(*4=DlCA{aSWTemiRE3m}+a`ck zd|NQur4n&2Vv!2*N4pXhvo8o}mtK(08!BOiN(ZD=QVHt|`IJ!xeGc4>J4p7xe1Oh5 zP{xU3XHv;rc$ae5Ccb!^Y9#x1a%j;KW|-%=ep0?B&@2!MF)$x2Id&iM~WmO==6< zI4#8ug&QNYrYS>-I}0~1!C&HLoxQ=^gkR)Fzz0yJDDxu7_tP-*Anx zZC(W)KfPvN4NEw6N@?8JcAabC8Ykto)e58V6M?42Cd@u+=15*vREZq(o{L~=tY6mkZ`jee~>F1(F zqgq&*fMQo-{?`VSuKf2-V2ly_>kpzIJk`(k9~xkG6SE7@%{z33-nqGmg!$?=pC#l3 zb#IwqKjw%cN${wy3%96jkPSVG_25<@cS*)3JL`ONF6B6rc(Ix51fo)t5Lo986X1<=q zJBW{xt#Q1381A7-Tf@|H1HET!Ow!TlF7Y&U1br(ygprXLF9@3N!6AGeHAgrMY&+`^ zESgyDdWbWDW4%*~qt$FnvkP1>Jt( z5`B7`kEGC|?P<1~QG*S~;h24ccm|F}MUZBAopx*=u1|?>GtAc; zZGR?;Y`ZdFylh_wwWuqMnc`JpopB?qq`y8pmF%LEpDWT=Mvpd~7FW`jo_msfNegy3 zytUfPb~m(YHwq)gLeyPY9*yNz?QGo$)HK@&dB66UW}@7LwYs2L zD@IS2o3+o&_n|j2dIZ`JL{!LGq)k|37{xV3Tdcvmhdo*#XNqUS*BSFkoGF5w(+)KF z(!4Y@UbO1zo%YO&VEu#Jq$& zsyl1$fGWpTGtphP|43)-j3HHY+0Ku$P}Df17Ty%*r}&p!VpJar<{yy*#^pMuKnBmr-&+s6HTQ(OW{$qQgG#_ZNgv zVE=CdDJT?haao2(A^wwDNNcZ0grB?)aBopo(eD${UDs<&p#HguHQ)|9@J2*n&)=PB d@a5fjo6xm4GJNt+KWl`?$ZAf}qfXqGD(%qbLlSUziw43a%e018RH( z5$sU{ZBr|A{n%D^Hp{XnU44?>+0Fde(y~=svvq6N)~u*D+xMJ%8KHfio}RtWbN_RG z@B5zjoO{lhbI(jokEW(a)7qf@_`9NWZOuaj$=0^7Kspjm;C{f%LEwm{&1o}b5ilYD z$4VfLUbz)d3(4KWfY0ehQtkWH%O)n!iJOm{-&^K!3&VRm?wsX_;EMhjd<(v9*4;> z8%)5v5by1HTk!6^&S0Sdn=itku~_bnKaS-O(7w}8Y@ZJ;EWlza>ycKr0)&{2@p?$h zL8Bn&69_5yFqwnmh)3gX!KSrp<8A%Cv(O8mt(c3SAsU~aoD3nI543V3(#s3|CQ7oB29I1(jGl^C6Fj7;#0&O@y77(j&U7%ql8gMo- zyn_CE+jTK;K)|2LYrJhPmWLeF?V>z&`cir za}2K>1rW7?C8?gp+gXjqVI$hBXCvL#|B)WTb>vAp?wP5#%cB z&v4rn7Bm~?VvL~OfU93SVjlC}$cP*e^cFGmV0k^(ruStIH?U|NGkR}kGFeHhGbfMU zz!HxDuq6uM#(~Ua-vhZCtrb3$5Pf8M4GYoBkFXCxuBBgQULYI&Z{Krpa(Y%AfV&#t z0DfM@>TXZv%F^WzRbV1$#hv4#8EvyYQ1$@-&Vzf(?5R2ETTc%^Hjy;b?;e{&&ePd- zd8D51syj_yp%wLyk>m91`eeJ{+7~_;PC8ac>tXl6sRQnUx20F?dbmj^HMEfu`ffuh z*+jD&qYY{9i9_yzmuN|23b{?UH)fN;^n=Fn_QF z?M~*J!8Hr_scv@*(ZX-E?W8wPH~p?T67xHB%p0fcwfE-lpCJ`vJh}+fIXpg==Uj-E z8_`QpC*QT~hZ$)36DhuK_X4qhW~I+(dC%YF`o8)UE!ek9SY~al7FkVP0%k_ZtTIh#iS)hdDlr$- z6zNLLtXn1KR4C-t%2AnR8`0}?NDC>bv5{p`K}{mpAzYnY&8Vz_<&qP1HEIAA^Si4h z*0~uL*11`z0o1-RSWa}8T86=*(ACl~FdCT_3}lwbP&TeTAvY{6#fUJLVh)aLfPT^P zNi;q^5#du8Thg^`1t3+jZwk^W`rVUkW!YPqrnD{~uhFMko2DC_*C7Hv9m%5Jgh`wR zBr&RkcWf_fBj9;XZ^GYfA87}{n$b$+z2;k5J6z>d2VS#LHv}BCye-Ptk<21CVb88Z z41|qgR5z&J&S-Fu-Xbv&8>Dl@0ZBo+NL+9arxWlR_9(Vrme_t-V*6zo21&j?X=GU3 zCrw);HU|pXqNzkgaAWo5TAqhHEDv-QLyT0g zR-Kq6{1q{aJ5PYw@dX(VTU260nh7!Ai&RbXXq4}9ZetVKMl#_T zUr5SCW(@*U{uHPTvt8*AB6^GrGwjr!ikUd}KeP zn*wsWLSGC%qsxV%c&K8&n3(VNQ=u$Np`?K?8}i^_wnFa?{MaxJHc#lK2yr^BnW#`_ zRH`@w&Z)FHYPvWRhWdDa+F^54p_mW3oa)3x?P!AsW~ek?yF~Orp-S5gxiAYBsI<@E zMOvoPDs3*zhLtL9(t44qR62|G3Sg5;SFm0IH0P-6?FKsMz!ud>L@&}WRhoppxv*QM zSy*u{yr@#LEf?Q1hg8b8d6C{wDK+9I6v0WACPhT*ir{UP7GX{=oX-JzdaIpWp`UDx z@_ojAY{Bdhiy?6m8#QJ56hj85wn0zW=jn>!`N_(NzMu<)U?e++V6jbAoQqoa$sZVd^nod8@W4l0hp#SYQy%9g)W3+zCJ5-Axu%6yg_vK^Le%UI-nz}i;^cqv5j z-$L!;cCp*I6kIAD5Yxy~i07n4mcli~2d|^A6nZ#O>`WS22J`cKo0x812Iqt1Md~}E z%OKLjf9}+YH*KZpj6r1E5DZw3By+k(UU4*=AI2B#@Qx_o<)H1bxdP_SV)56=*OpV} z)%{Xe!2#~8!~2}rJ}F4m&=aI$q+&eE_s&2yyvB*WhMDiA zO6;Xr4HxGqYeoE2yM?7uoN5zgc=Ba$-$kKb3^lPIi%3SJ7bp0DN?V0%QVnzmDb%tN z2H**rMQ#;hERVqhD)oenw$wulCuPbT;CDqpk9FF8N4b@K4dz)IAfQr!(>p=mV)T8$ zN!k1x;Nu`wq7S>t+Qr^CS(*UfA1ZZPo`CT|de+hc(>T2;erbNm@+8diDaar6NoY`s zJ!mT&;iSBe+CYoHblAJ92j5j~FoqLr@GDCjGzCc)Mqy`=28Ff5SDda9_KxcSGoI{w z=cfY~89l$v6gh+&m0hX>5>*P&Z?`4KJ?miq2rw03VdR~%FC0JvQ;l~l$7$jA1mA2Y zvnaa7&T56BMWb3+nSf$fVt#7=pV9}6S@NSDeca5NSM;Ye{KI$wj`IgNL?3zDL;mVN z_Vgt}o~FB=nPT7ObdV${(O<`NCOhZV!hQ#vs60w`L<*vd4&JdCkDI<74-+f>WJfmn zijLeFjpe+Z*-1{POH&NR&V0ej&mvuL$e5_9C9UpK%>{^dmuoU`NiQIWfgM#3!$0Zk zJ69N3yq&D0DZ7TpvhrbwaCT^ju*o)CyBW&ujoN0Yb3_rVpm-n_Y72%4K<7xvIMc14nK`tGg-J3AfCB+W4?!c>US<_qbhQy7kVmc~50HOA^b zsP7Vt#xzn(y24-8*OGg+$MlUtv^#+IE_(J^zW^@U@Z31tQO7{zIo_3vyep01qknlW z#Q?4xq)GSLG>UFrnJFr%BTlX8wW>TX6qoor@J1<(kM*D}fZI7E2(3kccPmeN<3L6D( z(^%9v(*vl1lGc)DIqLVkxL45sSvpMq zEcvxv9S*}oC6y0OEMMjCJUv4Qb8YmlTSehlF;DMxo0T1H&Ik?u#p&O3>u%zgzWhcbgeCi}-`pT=iH83IU%J2& delta 5462 zcmbW5dt6l27RT2<^Ev}FXMhn#1Y(XOI)~qeZDZQg9y`!nB(7v4i%yRF#Na1XVcYn6@WC#Hl;9)254~d}=j?MQFntVF7W8n;Yh$0cRS+=g}*DA5qhe|NqnG{#V*nDU(StjZd}e z=VN2e+4PT;__l^&sh!feZvh6(j{}HU_86uq8Ow7mL}TX%t4qcq-PON?H>G$Hnu?!9 zDIJ5x;>GkpYM;QTkO3atAUL0*KcqUyQ`C}X>#A4<&9Vs?iI<6Zd2j&6@MtvTFhd9D z5;`ia7nw_!rzM~sNgL8@DT{azz}iy)2hLF%Tg%R6Xe};53DDaLJuF1;oWm}Hvy{d? z+)T=RV!uN}l2h^iJ4yid;q@|Bcev)yD|li?F(!hQqtIqX+c+0Yew06<;21hCa}fH9 z==D_t$y(Z{d^|Zz*Ow0`%V=}?IdYI5SiOog(D;gk@H_JUkPdL%z9>o$yF)YEJpk`Z z$HMjS9bH!8C2ne|EFg>N;>svPoMT|*!*GDsR`ww`>G{fZ5=2ASq>wLsW7ZH7)rcLN z2!RlW?~NeH4}K-`QGDgJ2Mq~=Mq0RbutkXo$48Rcn&`>3uBawnD*;OR+vaK8?@<%+ zv0Vuonbk^I=OQ1`)$6*FMq0nFt4GN&8JaP=(Gi2%#I@1k#PS{qh$lp!b{p}(we8yu@x=fTWV3?3EhGEa_D}-BJDb+u{w-=q)n4;lO|%2OBaSZ zo>z$B&E%owYSeVpArH)ADelie_pa}QLz*JCwJXDTn@7IO^&D5$X#y9q%-UKcvbL6R zT`dOl%uM%+%zHYJdEevu5o(j;qrgO1{5tkdZ;7Q99_Pdbu{0c2%~tSd{k!HN?L1KNr9AI+LLP}SDC9Bl{NXe zB%>}wZ9-)&x|T_-zoRUyzb@1!)cb>2d8VZ^ObuKpbq1r6X?7^H*aF#1-wF7ag=Od( z#4?P>nQo%pH~x@}gCQdP*pWRWWo(%s&1a7u63#HvW=`Lby8$gA!hY4)NXJw~;BtGs zY6_{R?^Uh!{BCc-Mg3!UR`(R7$c%6T@hFE6tw*(Cu$|K>_{w@k+a8K~DUrj>H?`q# znNvBq%|=}$v`4 z65*0U;veJ?B*Qh8f`!+S#6En2MTc+!cO7<>;)PFiWHSVs1t zV8j%0aU{6x$O85u5p7|09sP$s6Q=c7 zC_eP4VL0qdSLmOi-x@~1(gCd$CXR%nfeLMjNEAoI8I@K>j14x_Q0c*cpEW)JjHtQ!Bnt7%9GwMljT6PrB#~J#A*;2Ck>*+OzMtGk_kSQ}frb5m!o~5kwE%rKm7v`dNOn%& zkc0Mh=GpM73+U9EaLXmXwZU8rqv_h32+yvuN*4A`Tmq+5V(-Kya7iVd@enM9J1Vg^ zOWk>9Uw5EQ2hSTErZrT$Nr6$r4JS)}tVQm6yPIPVDU| zNF{L1Pi~}6_{#y87@zGDSiy;X$(e7XO6*%%0=qa>i$7{9`d(FhY74z_ug<>IQv=-? zd0~R`eB(yKjgQ)V+`%*FX5ord3RQjzuq=nmetN*N3Sw|;&m!*x#9LNFHYcTP6|l4o z-G9$2po06@Q}C#z0%#6@zE|KV7(VNFPDR?yiM{n(paNd1~S_T=+{&X+j%BVWyvKLDg`Ald_Gffs34!nW<^Berw=s=Ci5qr5d=yL)lz-Ne$4R zwN5&Dn?AP2&i;8|DnOp?UfB}@pn*)|Jxc@iZtLM0E;Eawo5EQwJz6xXg_Q{?b|vPo z=Km{wz!=m09i_v!M_K>4kJh0@;FhEQypsPGlOXgR{};SiURMtmmfT9`)#Rvx$K^cBDuDWbdfy zjf;5-X@(?otfm>>Hult%k$3fps0O-XM|!+X?x@LyEICUE<~x{rIKpGf9R(O~brfn+ zd4>jH``!llir(5W*TCY#NfCX#t}8D$fQi=D+0=3h{d=8*l+(}ZY~i)`9H9aD-d70H z*mRrVYtwaM6NuEZvj_IJ-%cBOn~vYP8T<3oPMg8%IIXW2_R_%TeZp;-zWRJ$>k)gX z@d6ZvS86XqxjlkZ!UAgE)yHsKUScfJl+(;zr-@8MclR-{Jy5201|758Mlxx^?un#; zp4{y+#B_9;&uKGh)ShjmjyCL(J#%%d!`)D++ak!4SNDOYi&Uq3NE3(U6Vbh~9Easf zUAA6EHCknru_vvb+0^}&EyK+sa z5vD{`hbb2|)|8K$VA_Y8VmgI7&~y%Uxam_=7q`1j`+QgTrd+F5!HdMol#fD)PfM3nu`O04Wg9K+uYo(LYIq8!0o20QkWI5sU9(+L%&qxjA zj0E88UteSQeR*!6#^<>Bi8(0b_^9cDm9qvOdhM|r)z|A|d_i9YNC9DnfRN=4Ldf#t zzL@JD3!{PkeF