From 7c697082202c048829c65c92636f264c6d4cdf42 Mon Sep 17 00:00:00 2001 From: Daniel Grunwald <daniel@danielgrunwald.de> Date: Tue, 23 Aug 2005 17:53:41 +0000 Subject: [PATCH] Applied CSharpOutputVisitor patch from Rodrigo B. de Oliveira. Make go to work with partial classes. Show expression in tooltips while pressing Ctrl. Project templates can now specify the BuildAction and CopyToOutputDirectory properties for files. git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@421 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61 --- data/options/SharpDevelop-tools.xml | 7 +++++ .../file/CPPNet/CPP.Wizards.NewClass.xft | 19 ------------ .../file/Misc/EmptyXmlUserControl.xft | 2 +- .../project/CSharp/SharpDevelopAddin.xpt | 4 +-- .../XmlEditor/Test/XmlEditor.Tests.csproj | 3 ++ .../XmlEditor/Test/XmlEditor.Tests.dll.config | 23 +++++++++++++++ .../Project/Configuration/AssemblyInfo.cs | 4 +-- .../Src/Output/CSharp/CSharpOutputVisitor.cs | 12 +++++--- .../Src/Dom/Implementations/CompoundClass.cs | 2 ++ .../Src/Dom/Implementations/DefaultClass.cs | 3 ++ .../Templates/File/FileDescriptionTemplate.cs | 29 +++++++++++++++++++ .../Internal/Templates/File/FileTemplate.cs | 13 ++++----- .../Templates/Project/ProjectDescriptor.cs | 16 ++++++---- .../Src/Services/Debugger/DebuggerService.cs | 27 ++++++++++------- .../Src/TextEditor/Gui/Dialogs/GotoDialog.cs | 2 +- src/Main/Core/Project/ICSharpCode.Core.csproj | 2 +- src/SharpDevelop.WithTests.sln | 8 ++++- 17 files changed, 120 insertions(+), 56 deletions(-) delete mode 100644 data/templates/file/CPPNet/CPP.Wizards.NewClass.xft create mode 100644 src/AddIns/DisplayBindings/XmlEditor/Test/XmlEditor.Tests.dll.config diff --git a/data/options/SharpDevelop-tools.xml b/data/options/SharpDevelop-tools.xml index 53ed78d717..2eb7879ed7 100644 --- a/data/options/SharpDevelop-tools.xml +++ b/data/options/SharpDevelop-tools.xml @@ -13,4 +13,11 @@ <MENUCOMMAND>IL Dasm</MENUCOMMAND> <PROMPTFORARGUMENTS>False</PROMPTFORARGUMENTS> </TOOL> + <TOOL> + <INITIALDIRECTORY>${TargetDir}</INITIALDIRECTORY> + <ARGUMENTS></ARGUMENTS> + <COMMAND>${NetSdkDir}bin\FUSLOGVW.exe</COMMAND> + <MENUCOMMAND>Assembly Binding Log Viewer</MENUCOMMAND> + <PROMPTFORARGUMENTS>False</PROMPTFORARGUMENTS> + </TOOL> </TOOLS> diff --git a/data/templates/file/CPPNet/CPP.Wizards.NewClass.xft b/data/templates/file/CPPNet/CPP.Wizards.NewClass.xft deleted file mode 100644 index d5f98d3c4b..0000000000 --- a/data/templates/file/CPPNet/CPP.Wizards.NewClass.xft +++ /dev/null @@ -1,19 +0,0 @@ -<?xml version="1.0"?> -<Template author="Roman Taranchenko" version="1.0"> - - <Config - name = "${res:Templates.File.NewClassWizard.Name}" - icon = "C++.File.NewClass" - category = "C++" - defaultname = "Class${Number}.cs" - language = "C++.NET"> - - <Wizard path = "/SharpDevelop/Templates/File/NewClassWizard"/> - - </Config> - - <Description>${res:Templates.File.NewClassWizard.Description}</Description> - - <Files/> - <AdditionalOptions/> -</Template> diff --git a/data/templates/file/Misc/EmptyXmlUserControl.xft b/data/templates/file/Misc/EmptyXmlUserControl.xft index 3b132cc207..48208dd673 100644 --- a/data/templates/file/Misc/EmptyXmlUserControl.xft +++ b/data/templates/file/Misc/EmptyXmlUserControl.xft @@ -8,7 +8,7 @@ defaultname = "XmlUserControl${Number}.xfrm" language = "XmlForm"/> - <Description>Creates an empty xml form.</Description> + <Description>Creates an empty xml user control.</Description> <Files> <File name="${FullName}" language="XmlForm"><![CDATA[<Components version="1.0"> diff --git a/data/templates/project/CSharp/SharpDevelopAddin.xpt b/data/templates/project/CSharp/SharpDevelopAddin.xpt index ded924a183..1a73384f62 100644 --- a/data/templates/project/CSharp/SharpDevelopAddin.xpt +++ b/data/templates/project/CSharp/SharpDevelopAddin.xpt @@ -34,7 +34,7 @@ </ProjectItems> <Files> - <File name="${ProjectName}.addin"><![CDATA[<AddIn name = "${ProjectName}" + <File name="${ProjectName}.addin" copyToOutputDirectory="Always"><![CDATA[<AddIn name = "${ProjectName}" author = "${USER}" copyright = "GNU General Public License" url = "" @@ -55,7 +55,7 @@ </Path> </AddIn> ]]></File> - <File name="Resources/MyUserControl.xfrm"> + <File name="Resources/MyUserControl.xfrm" buildAction="EmbeddedResource"> <![CDATA[<?xml version="1.0" encoding="utf-8"?> <Components version="1.0"> <System.Windows.Forms.UserControl> diff --git a/src/AddIns/DisplayBindings/XmlEditor/Test/XmlEditor.Tests.csproj b/src/AddIns/DisplayBindings/XmlEditor/Test/XmlEditor.Tests.csproj index 2b6e59d3b6..e55a919fd4 100644 --- a/src/AddIns/DisplayBindings/XmlEditor/Test/XmlEditor.Tests.csproj +++ b/src/AddIns/DisplayBindings/XmlEditor/Test/XmlEditor.Tests.csproj @@ -96,6 +96,9 @@ <Name>ICSharpCode.TextEditor</Name> <Private>False</Private> </ProjectReference> + <Content Include="XmlEditor.Tests.dll.config"> + <CopyToOutputDirectory>Always</CopyToOutputDirectory> + </Content> </ItemGroup> <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" /> </Project> \ No newline at end of file diff --git a/src/AddIns/DisplayBindings/XmlEditor/Test/XmlEditor.Tests.dll.config b/src/AddIns/DisplayBindings/XmlEditor/Test/XmlEditor.Tests.dll.config new file mode 100644 index 0000000000..3bfcea4089 --- /dev/null +++ b/src/AddIns/DisplayBindings/XmlEditor/Test/XmlEditor.Tests.dll.config @@ -0,0 +1,23 @@ +<?xml version="1.0"?> +<configuration> + <runtime> + <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> + <dependentAssembly> + <assemblyIdentity name="ICSharpCode.Core" publicKeyToken="f829da5c02be14ee" culture="neutral"/> + <codeBase version="2.0.0.1" href="../../../../bin/ICSharpCode.Core.dll"/> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="ICSharpCode.SharpDevelop" publicKeyToken="f829da5c02be14ee" culture="neutral"/> + <codeBase version="2.0.0.1" href="../../../../bin/ICSharpCode.SharpDevelop.dll"/> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="ICSharpCode.TextEditor" publicKeyToken="4d61825e8dd49f1a" culture="neutral"/> + <codeBase version="2.0.0.1" href="../../../../bin/ICSharpCode.TextEditor.dll"/> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="ICSharpCode.NRefactory" publicKeyToken="efe927acf176eea2" culture="neutral"/> + <codeBase version="2.0.0.1" href="../../../../bin/ICSharpCode.NRefactory.dll"/> + </dependentAssembly> + </assemblyBinding> + </runtime> +</configuration> diff --git a/src/AddIns/Misc/Debugger/Debugger.Tests/Project/Configuration/AssemblyInfo.cs b/src/AddIns/Misc/Debugger/Debugger.Tests/Project/Configuration/AssemblyInfo.cs index 4daf881581..9702f98a54 100644 --- a/src/AddIns/Misc/Debugger/Debugger.Tests/Project/Configuration/AssemblyInfo.cs +++ b/src/AddIns/Misc/Debugger/Debugger.Tests/Project/Configuration/AssemblyInfo.cs @@ -1,7 +1,7 @@ -// <file> +// <file> // <copyright see="prj:///doc/copyright.txt">2002-2005 AlphaSierraPapa</copyright> // <license see="prj:///doc/license.txt">GNU General Public License</license> -// <owner name="David Srbeck�" email="dsrbecky@gmail.com"/> +// <owner name="David Srbeck?" email="dsrbecky@gmail.com"/> // <version>$Revision$</version> // </file> diff --git a/src/Libraries/NRefactory/Project/Src/Output/CSharp/CSharpOutputVisitor.cs b/src/Libraries/NRefactory/Project/Src/Output/CSharp/CSharpOutputVisitor.cs index 39821af009..bdeb93935f 100644 --- a/src/Libraries/NRefactory/Project/Src/Output/CSharp/CSharpOutputVisitor.cs +++ b/src/Libraries/NRefactory/Project/Src/Output/CSharp/CSharpOutputVisitor.cs @@ -297,7 +297,7 @@ namespace ICSharpCode.NRefactory.PrettyPrinter VisitAttributes(fieldDeclaration.Attributes, data); outputFormatter.Indent(); outputFormatter.PrintIdentifier(f.Name); - if (f.Initializer != null) { + if (f.Initializer != null && !f.Initializer.IsNull) { outputFormatter.Space(); outputFormatter.PrintToken(Tokens.Assign); outputFormatter.Space(); @@ -1597,7 +1597,12 @@ namespace ICSharpCode.NRefactory.PrettyPrinter return null; } - outputFormatter.PrintIdentifier(primitiveExpression.Value.ToString()); + if (primitiveExpression.Value is IFormattable) { + outputFormatter.PrintText(((IFormattable)primitiveExpression.Value).ToString(null, NumberFormatInfo.InvariantInfo)); + } else { + outputFormatter.PrintIdentifier(primitiveExpression.Value.ToString()); + } + return null; } @@ -1934,8 +1939,7 @@ namespace ICSharpCode.NRefactory.PrettyPrinter break; case AssignmentOperatorType.ShiftRight: outputFormatter.PrintToken(Tokens.GreaterThan); - outputFormatter.PrintToken(Tokens.GreaterThan); - outputFormatter.PrintToken(Tokens.Equal); + outputFormatter.PrintToken(Tokens.GreaterEqual); break; case AssignmentOperatorType.ExclusiveOr: outputFormatter.PrintToken(Tokens.XorAssign); diff --git a/src/Main/Base/Project/Src/Dom/Implementations/CompoundClass.cs b/src/Main/Base/Project/Src/Dom/Implementations/CompoundClass.cs index 1016b5e416..490426ceb7 100644 --- a/src/Main/Base/Project/Src/Dom/Implementations/CompoundClass.cs +++ b/src/Main/Base/Project/Src/Dom/Implementations/CompoundClass.cs @@ -47,6 +47,8 @@ namespace ICSharpCode.SharpDevelop.Dom { // Common for all parts: this.ClassType = parts[0].ClassType; + this.CompilationUnit.FileName = parts[0].CompilationUnit.FileName; + this.Region = parts[0].Region; ModifierEnum modifier = ModifierEnum.None; this.BaseTypes.Clear(); diff --git a/src/Main/Base/Project/Src/Dom/Implementations/DefaultClass.cs b/src/Main/Base/Project/Src/Dom/Implementations/DefaultClass.cs index c200a6d464..8f809a9a36 100644 --- a/src/Main/Base/Project/Src/Dom/Implementations/DefaultClass.cs +++ b/src/Main/Base/Project/Src/Dom/Implementations/DefaultClass.cs @@ -107,6 +107,9 @@ namespace ICSharpCode.SharpDevelop.Dom get { return region; } + set { + region = value; + } } public override string DotNetName { diff --git a/src/Main/Base/Project/Src/Internal/Templates/File/FileDescriptionTemplate.cs b/src/Main/Base/Project/Src/Internal/Templates/File/FileDescriptionTemplate.cs index e31a6a7d2e..f2ae66aeb3 100644 --- a/src/Main/Base/Project/Src/Internal/Templates/File/FileDescriptionTemplate.cs +++ b/src/Main/Base/Project/Src/Internal/Templates/File/FileDescriptionTemplate.cs @@ -18,6 +18,17 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates string name; string language; string content; + string buildAction; + string copyToOutputDirectory; + + public FileDescriptionTemplate(XmlElement xml) + { + name = xml.GetAttribute("name"); + language = xml.GetAttribute("language"); + buildAction = xml.GetAttribute("buildAction"); + copyToOutputDirectory = xml.GetAttribute("copyToOutputDirectory"); + content = xml.InnerText; + } public FileDescriptionTemplate(string name, string language, string content) { @@ -37,11 +48,29 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates return language; } } + public string Content { get { return content; } } + public string BuildAction { + get { + return buildAction ?? ""; + } + set { + buildAction = value; + } + } + + public string CopyToOutputDirectory { + get { + return copyToOutputDirectory ?? ""; + } + set { + copyToOutputDirectory = value; + } + } } } diff --git a/src/Main/Base/Project/Src/Internal/Templates/File/FileTemplate.cs b/src/Main/Base/Project/Src/Internal/Templates/File/FileTemplate.cs index 3516f82abb..2ed3a785ef 100644 --- a/src/Main/Base/Project/Src/Internal/Templates/File/FileTemplate.cs +++ b/src/Main/Base/Project/Src/Internal/Templates/File/FileTemplate.cs @@ -73,7 +73,7 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates } } - public class TemplateScript + public class TemplateScript { string languageName; string runAt; @@ -291,10 +291,7 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates XmlElement files = doc.DocumentElement["Files"]; XmlNodeList nodes = files.ChildNodes; foreach (XmlElement filenode in nodes) { - FileDescriptionTemplate template = new FileDescriptionTemplate(filenode.GetAttribute("name"), - filenode.GetAttribute("language"), - filenode.InnerText); - this.files.Add(template); + this.files.Add(new FileDescriptionTemplate(filenode)); } // load scripts (if any) @@ -312,9 +309,9 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates static FileTemplate() { - List<string> files = FileUtility.SearchDirectory(PropertyService.DataDirectory + - Path.DirectorySeparatorChar + "templates" + - Path.DirectorySeparatorChar + "file", "*.xft"); + List<string> files = FileUtility.SearchDirectory(PropertyService.DataDirectory + + Path.DirectorySeparatorChar + "templates" + + Path.DirectorySeparatorChar + "file", "*.xft"); foreach (string file in files) { try { if (Path.GetExtension(file) == ".xft") { diff --git a/src/Main/Base/Project/Src/Internal/Templates/Project/ProjectDescriptor.cs b/src/Main/Base/Project/Src/Internal/Templates/Project/ProjectDescriptor.cs index c8a148f5fc..7161a191bc 100644 --- a/src/Main/Base/Project/Src/Internal/Templates/Project/ProjectDescriptor.cs +++ b/src/Main/Base/Project/Src/Internal/Templates/Project/ProjectDescriptor.cs @@ -130,8 +130,15 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates string fileName = Path.Combine(projectCreateInformation.ProjectBasePath, StringParser.Parse(file.Name, new string[,] { {"ProjectName", projectCreateInformation.ProjectName} })); FileProjectItem projectFile = new FileProjectItem(project, ItemType.Compile); - if (!project.CanCompile(fileName)) { - projectFile.BuildAction = FileProjectItem.FileBuildAction.None; + if (file.BuildAction.Length > 0) { + projectFile.BuildAction = (FileProjectItem.FileBuildAction)Enum.Parse(typeof(FileProjectItem.FileBuildAction), file.BuildAction); + } else { + if (!project.CanCompile(fileName)) { + projectFile.BuildAction = FileProjectItem.FileBuildAction.None; + } + } + if (file.CopyToOutputDirectory.Length > 0) { + projectFile.CopyToOutputDirectory = (CopyToOutputDirectory)Enum.Parse(typeof(CopyToOutputDirectory), file.CopyToOutputDirectory); } projectFile.Include = FileUtility.GetRelativePath(project.Directory, fileName); @@ -196,10 +203,7 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates foreach (XmlNode node in element["Files"].ChildNodes) { if (node != null && node.Name == "File") { XmlElement filenode = (XmlElement)node; - FileDescriptionTemplate template = new FileDescriptionTemplate(filenode.GetAttribute("name"), - filenode.GetAttribute("language"), - filenode.InnerText); - projectDescriptor.files.Add(template); + projectDescriptor.files.Add(new FileDescriptionTemplate(filenode)); } } } diff --git a/src/Main/Base/Project/Src/Services/Debugger/DebuggerService.cs b/src/Main/Base/Project/Src/Services/Debugger/DebuggerService.cs index f8f4b93156..4a7e285e3a 100644 --- a/src/Main/Base/Project/Src/Services/Debugger/DebuggerService.cs +++ b/src/Main/Base/Project/Src/Services/Debugger/DebuggerService.cs @@ -309,9 +309,7 @@ namespace ICSharpCode.Core mousepos.Y - viewRect.Top); if (logicPos.Y >= 0 && logicPos.Y < textArea.Document.TotalNumberOfLines) { // This is for testing olny - it must be reworked properly - if (Control.ModifierKeys == Keys.Control) { - if (currentDebugger == null) return; - if (!currentDebugger.IsDebugging) return; + if (Control.ModifierKeys == Keys.Control && currentDebugger != null && currentDebugger.IsDebugging) { SetIPArgs a = new SetIPArgs(); a.filename = textArea.MotherTextEditorControl.FileName; a.line = logicPos.Y; @@ -345,9 +343,9 @@ namespace ICSharpCode.Core ResolveResult result = ParserService.Resolve(expressionResult, logicPos.Y + 1, logicPos.X + 1, textArea.MotherTextEditorControl.FileName, textContent); string value = GetText(result, expression); if (value != null) { - #if DEBUG - value = "expr: >" + expression + "<\n" + value; - #endif + if (Control.ModifierKeys == Keys.Control) { + value = "expr: >" + expression + "<\n" + value; + } textArea.SetToolTip(value); } oldToolTip = value; @@ -364,8 +362,10 @@ namespace ICSharpCode.Core static string GetText(ResolveResult result, string expression) { - if (result == null) - return null; + if (result == null) { + // when pressing control, show the expression even when it could not be resolved + return (Control.ModifierKeys == Keys.Control) ? "" : null; + } if (result is MixedResolveResult) return GetText(((MixedResolveResult)result).PrimaryResult, expression); IAmbience ambience = AmbienceService.CurrentAmbience; @@ -407,9 +407,14 @@ namespace ICSharpCode.Core else return "Overload of " + ambience.Convert(mrr.ContainingType) + "." + mrr.Name; } else { -// if (result.ResolvedType != null) -// return "expression of type " + ambience.Convert(result.ResolvedType); - return null; + if (Control.ModifierKeys == Keys.Control) { + if (result.ResolvedType != null) + return "expression of type " + ambience.Convert(result.ResolvedType); + else + return "ResolveResult without ResolvedType"; + } else { + return null; + } } } diff --git a/src/Main/Base/Project/Src/TextEditor/Gui/Dialogs/GotoDialog.cs b/src/Main/Base/Project/Src/TextEditor/Gui/Dialogs/GotoDialog.cs index 0a425bb79f..fab8495987 100644 --- a/src/Main/Base/Project/Src/TextEditor/Gui/Dialogs/GotoDialog.cs +++ b/src/Main/Base/Project/Src/TextEditor/Gui/Dialogs/GotoDialog.cs @@ -343,7 +343,7 @@ namespace ICSharpCode.SharpDevelop.Gui void GotoRegion(IRegion region, string fileName) { - if (fileName != null) { + if (fileName != null && region != null) { FileService.JumpToFilePosition(fileName, region.BeginLine - 1, region.BeginColumn - 1); } } diff --git a/src/Main/Core/Project/ICSharpCode.Core.csproj b/src/Main/Core/Project/ICSharpCode.Core.csproj index 0c54c1c8d4..6dfc9b0930 100644 --- a/src/Main/Core/Project/ICSharpCode.Core.csproj +++ b/src/Main/Core/Project/ICSharpCode.Core.csproj @@ -141,4 +141,4 @@ <Folder Include="Src\Services\LoggingService" /> </ItemGroup> <Import Project="$(MSBuildBinPath)\Microsoft.CSHARP.Targets" /> -</Project> +</Project> \ No newline at end of file diff --git a/src/SharpDevelop.WithTests.sln b/src/SharpDevelop.WithTests.sln index 7983ba7ca4..b51d2be209 100644 --- a/src/SharpDevelop.WithTests.sln +++ b/src/SharpDevelop.WithTests.sln @@ -1,5 +1,5 @@ Microsoft Visual Studio Solution File, Format Version 9.00 -# SharpDevelop 2.0.0.397 +# SharpDevelop 2.0.0.413 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AddIns", "AddIns", "{14A277EE-7DF1-4529-B639-7D1EF334C1C5}" ProjectSection(SolutionItems) = postProject EndProjectSection @@ -8,6 +8,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Display Bindings", "Display ProjectSection(SolutionItems) = postProject EndProjectSection EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XmlEditor.Tests", "AddIns\DisplayBindings\XmlEditor\Test\XmlEditor.Tests.csproj", "{FC0FE702-A87D-4D70-A9B6-1ECCD611125F}" +EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XmlEditor", "AddIns\DisplayBindings\XmlEditor\Project\XmlEditor.csproj", "{6B717BD1-CD5E-498C-A42E-9E6A4584DC48}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FormDesigner", "AddIns\DisplayBindings\FormDesigner\Project\FormDesigner.csproj", "{7D7E92DF-ACEB-4B69-92C8-8AC7A703CD57}" @@ -58,6 +60,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Libraries", "Libraries", "{ ProjectSection(SolutionItems) = postProject EndProjectSection EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nunit.framework.dll", "Libraries\NUnit.Framework\nunit.framework.dll.csproj", "{83DD7E12-A705-4DBA-9D71-09C8973D9382}" +EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NRefactoryTests", "Libraries\NRefactory\Test\NRefactoryTests.csproj", "{870115DD-960A-4406-A6B9-600BCDC36A03}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Build.Tasks", "Libraries\ICSharpCode.Build.Tasks\Project\ICSharpCode.Build.Tasks.csproj", "{4139CCF6-FB49-4A9D-B2CF-331E9EA3198D}" @@ -171,6 +175,7 @@ Global {CBC6C247-747B-4908-B09A-4D2E0F640B6B} = {4EA396ED-64AD-4AD0-A67A-AB363F3E0C79} {7D7E92DF-ACEB-4B69-92C8-8AC7A703CD57} = {4EA396ED-64AD-4AD0-A67A-AB363F3E0C79} {6B717BD1-CD5E-498C-A42E-9E6A4584DC48} = {4EA396ED-64AD-4AD0-A67A-AB363F3E0C79} + {FC0FE702-A87D-4D70-A9B6-1ECCD611125F} = {4EA396ED-64AD-4AD0-A67A-AB363F3E0C79} {1F1AC7CD-D154-45BB-8EAF-804CA8055F5A} = {FEB825FA-4AD8-425D-8E4A-B5A18EE1B81C} {BF38FB72-B380-4196-AF8C-95749D726C61} = {FEB825FA-4AD8-425D-8E4A-B5A18EE1B81C} {6e59af58-f635-459a-9a35-c9ac41c00339} = {FEB825FA-4AD8-425D-8E4A-B5A18EE1B81C} @@ -191,6 +196,7 @@ Global {D3C782BA-178E-4235-A3BA-8C11DEBB6BEE} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C} {4139CCF6-FB49-4A9D-B2CF-331E9EA3198D} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C} {870115DD-960A-4406-A6B9-600BCDC36A03} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C} + {83DD7E12-A705-4DBA-9D71-09C8973D9382} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C} {1152B71B-3C05-4598-B20D-823B5D40559E} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486} {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486} {2748AD25-9C63-4E12-877B-4DCE96FBED54} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486}