diff --git a/.gitignore b/.gitignore index 943eade9..fec18c6e 100644 --- a/.gitignore +++ b/.gitignore @@ -10,13 +10,10 @@ /CxViewerAction/bin/Debug /CxViewerVSIX/bin/Debug /CxViewerVSIX/obj -/packages/Microsoft.VSSDK.BuildTools.15.0.26201/build -/packages/Microsoft.VSSDK.BuildTools.15.0.26201/tools/vssdk /CxViewerDgvFilterPopup/bin/Debug /CxViewerColorButton/bin/Debug /.vs /.localhistory/C/Users/Adig/IdeaProjects/VisualStudio -/packages/Microsoft.VSSDK.BuildTools.15.0.26201 /CxViewerVSIX/CxViewerVSIX.csproj.user /CxViewerColorButton/bin/Release /CxViewerDgvFilterPopup/bin/Release @@ -26,3 +23,4292 @@ /CxViewerAction/bin/Release /Common/bin/Release /Artifacts +CxViewer2022/bin/Release/CefSharp.BrowserSubprocess.Core.dll +CxViewer2022/bin/Release/CefSharp.BrowserSubprocess.Core.pdb +CxViewer2022/bin/Release/CefSharp.BrowserSubprocess.exe +CxViewer2022/bin/Release/CefSharp.BrowserSubprocess.pdb +CxViewer2022/bin/Release/CefSharp.Core.dll +CxViewer2022/bin/Release/CefSharp.Core.pdb +CxViewer2022/bin/Release/CefSharp.Core.Runtime.dll +CxViewer2022/bin/Release/CefSharp.Core.Runtime.pdb +CxViewer2022/bin/Release/CefSharp.Core.Runtime.xml +CxViewer2022/bin/Release/CefSharp.Core.xml +CxViewer2022/bin/Release/CefSharp.dll +CxViewer2022/bin/Release/CefSharp.pdb +CxViewer2022/bin/Release/CefSharp.WinForms.dll +CxViewer2022/bin/Release/CefSharp.WinForms.pdb +CxViewer2022/bin/Release/CefSharp.WinForms.xml +CxViewer2022/bin/Release/CefSharp.xml +CxViewer2022/bin/Release/chrome_100_percent.pak +CxViewer2022/bin/Release/chrome_200_percent.pak +CxViewer2022/bin/Release/chrome_elf.dll +CxViewer2022/bin/Release/ColorButton.dll +CxViewer2022/bin/Release/ColorButton.pdb +CxViewer2022/bin/Release/Common.dll +CxViewer2022/bin/Release/Common.pdb +CxViewer2022/bin/Release/cs/Microsoft.ServiceHub.Framework.resources.dll +CxViewer2022/bin/Release/cs/Microsoft.ServiceHub.Resources.dll +CxViewer2022/bin/Release/cs/Microsoft.VisualStudio.Threading.resources.dll +CxViewer2022/bin/Release/cs/Microsoft.VisualStudio.Utilities.resources.dll +CxViewer2022/bin/Release/cs/Microsoft.VisualStudio.Validation.resources.dll +CxViewer2022/bin/Release/cs/StreamJsonRpc.resources.dll +CxViewer2022/bin/Release/CxViewer2022.dll +CxViewer2022/bin/Release/CxViewer2022.pdb +CxViewer2022/bin/Release/CxViewer2022.pkgdef +CxViewer2022/bin/Release/CxViewer2022.vsix +CxViewer2022/bin/Release/CxViewerAction.dll +CxViewer2022/bin/Release/CxViewerAction.dll.config +CxViewer2022/bin/Release/CxViewerAction.pdb +CxViewer2022/bin/Release/d3dcompiler_47.dll +CxViewer2022/bin/Release/de/Microsoft.ServiceHub.Framework.resources.dll +CxViewer2022/bin/Release/de/Microsoft.ServiceHub.Resources.dll +CxViewer2022/bin/Release/de/Microsoft.VisualStudio.Threading.resources.dll +CxViewer2022/bin/Release/de/Microsoft.VisualStudio.Utilities.resources.dll +CxViewer2022/bin/Release/de/Microsoft.VisualStudio.Validation.resources.dll +CxViewer2022/bin/Release/de/StreamJsonRpc.resources.dll +CxViewer2022/bin/Release/en/Microsoft.VisualStudio.ImageCatalog.resources.dll +CxViewer2022/bin/Release/en/Microsoft.VisualStudio.Imaging.resources.dll +CxViewer2022/bin/Release/en/Microsoft.VisualStudio.Utilities.resources.dll +CxViewer2022/bin/Release/es/Microsoft.ServiceHub.Framework.resources.dll +CxViewer2022/bin/Release/es/Microsoft.ServiceHub.Resources.dll +CxViewer2022/bin/Release/es/Microsoft.VisualStudio.Threading.resources.dll +CxViewer2022/bin/Release/es/Microsoft.VisualStudio.Utilities.resources.dll +CxViewer2022/bin/Release/es/Microsoft.VisualStudio.Validation.resources.dll +CxViewer2022/bin/Release/es/StreamJsonRpc.resources.dll +CxViewer2022/bin/Release/extension.vsixmanifest +CxViewer2022/bin/Release/fr/Microsoft.ServiceHub.Framework.resources.dll +CxViewer2022/bin/Release/fr/Microsoft.ServiceHub.Resources.dll +CxViewer2022/bin/Release/fr/Microsoft.VisualStudio.Threading.resources.dll +CxViewer2022/bin/Release/fr/Microsoft.VisualStudio.Utilities.resources.dll +CxViewer2022/bin/Release/fr/Microsoft.VisualStudio.Validation.resources.dll +CxViewer2022/bin/Release/fr/StreamJsonRpc.resources.dll +CxViewer2022/bin/Release/icudtl.dat +CxViewer2022/bin/Release/Ionic.Zip.dll +CxViewer2022/bin/Release/it/Microsoft.ServiceHub.Framework.resources.dll +CxViewer2022/bin/Release/it/Microsoft.ServiceHub.Resources.dll +CxViewer2022/bin/Release/it/Microsoft.VisualStudio.Threading.resources.dll +CxViewer2022/bin/Release/it/Microsoft.VisualStudio.Utilities.resources.dll +CxViewer2022/bin/Release/it/Microsoft.VisualStudio.Validation.resources.dll +CxViewer2022/bin/Release/it/StreamJsonRpc.resources.dll +CxViewer2022/bin/Release/ja/Microsoft.ServiceHub.Framework.resources.dll +CxViewer2022/bin/Release/ja/Microsoft.ServiceHub.Resources.dll +CxViewer2022/bin/Release/ja/Microsoft.VisualStudio.Threading.resources.dll +CxViewer2022/bin/Release/ja/Microsoft.VisualStudio.Utilities.resources.dll +CxViewer2022/bin/Release/ja/Microsoft.VisualStudio.Validation.resources.dll +CxViewer2022/bin/Release/ja/StreamJsonRpc.resources.dll +CxViewer2022/bin/Release/ko/Microsoft.ServiceHub.Framework.resources.dll +CxViewer2022/bin/Release/ko/Microsoft.ServiceHub.Resources.dll +CxViewer2022/bin/Release/ko/Microsoft.VisualStudio.Threading.resources.dll +CxViewer2022/bin/Release/ko/Microsoft.VisualStudio.Utilities.resources.dll +CxViewer2022/bin/Release/ko/Microsoft.VisualStudio.Validation.resources.dll +CxViewer2022/bin/Release/ko/StreamJsonRpc.resources.dll +CxViewer2022/bin/Release/libcef.dll +CxViewer2022/bin/Release/libEGL.dll +CxViewer2022/bin/Release/libGLESv2.dll +CxViewer2022/bin/Release/LICENSE.txt +CxViewer2022/bin/Release/locales/am.pak +CxViewer2022/bin/Release/locales/ar.pak +CxViewer2022/bin/Release/locales/bg.pak +CxViewer2022/bin/Release/locales/bn.pak +CxViewer2022/bin/Release/locales/ca.pak +CxViewer2022/bin/Release/locales/cs.pak +CxViewer2022/bin/Release/locales/da.pak +CxViewer2022/bin/Release/locales/de.pak +CxViewer2022/bin/Release/locales/el.pak +CxViewer2022/bin/Release/locales/en-GB.pak +CxViewer2022/bin/Release/locales/en-US.pak +CxViewer2022/bin/Release/locales/es-419.pak +CxViewer2022/bin/Release/locales/es.pak +CxViewer2022/bin/Release/locales/et.pak +CxViewer2022/bin/Release/locales/fa.pak +CxViewer2022/bin/Release/locales/fi.pak +CxViewer2022/bin/Release/locales/fil.pak +CxViewer2022/bin/Release/locales/fr.pak +CxViewer2022/bin/Release/locales/gu.pak +CxViewer2022/bin/Release/locales/he.pak +CxViewer2022/bin/Release/locales/hi.pak +CxViewer2022/bin/Release/locales/hr.pak +CxViewer2022/bin/Release/locales/hu.pak +CxViewer2022/bin/Release/locales/id.pak +CxViewer2022/bin/Release/locales/it.pak +CxViewer2022/bin/Release/locales/ja.pak +CxViewer2022/bin/Release/locales/kn.pak +CxViewer2022/bin/Release/locales/ko.pak +CxViewer2022/bin/Release/locales/lt.pak +CxViewer2022/bin/Release/locales/lv.pak +CxViewer2022/bin/Release/locales/ml.pak +CxViewer2022/bin/Release/locales/mr.pak +CxViewer2022/bin/Release/locales/ms.pak +CxViewer2022/bin/Release/locales/nb.pak +CxViewer2022/bin/Release/locales/nl.pak +CxViewer2022/bin/Release/locales/pl.pak +CxViewer2022/bin/Release/locales/pt-BR.pak +CxViewer2022/bin/Release/locales/pt-PT.pak +CxViewer2022/bin/Release/locales/ro.pak +CxViewer2022/bin/Release/locales/ru.pak +CxViewer2022/bin/Release/locales/sk.pak +CxViewer2022/bin/Release/locales/sl.pak +CxViewer2022/bin/Release/locales/sr.pak +CxViewer2022/bin/Release/locales/sv.pak +CxViewer2022/bin/Release/locales/sw.pak +CxViewer2022/bin/Release/locales/ta.pak +CxViewer2022/bin/Release/locales/te.pak +CxViewer2022/bin/Release/locales/th.pak +CxViewer2022/bin/Release/locales/tr.pak +CxViewer2022/bin/Release/locales/uk.pak +CxViewer2022/bin/Release/locales/vi.pak +CxViewer2022/bin/Release/locales/zh-CN.pak +CxViewer2022/bin/Release/locales/zh-TW.pak +CxViewer2022/bin/Release/log4net.dll +CxViewer2022/bin/Release/MessagePack.Annotations.dll +CxViewer2022/bin/Release/MessagePack.dll +CxViewer2022/bin/Release/Microsoft.Bcl.AsyncInterfaces.dll +CxViewer2022/bin/Release/Microsoft.Build.Framework.dll +CxViewer2022/bin/Release/Microsoft.Build.Framework.pdb +CxViewer2022/bin/Release/Microsoft.Build.Framework.xml +CxViewer2022/bin/Release/Microsoft.Msagl.dll +CxViewer2022/bin/Release/Microsoft.Msagl.Drawing.dll +CxViewer2022/bin/Release/Microsoft.Msagl.Drawing.xml +CxViewer2022/bin/Release/Microsoft.Msagl.GraphViewerGdi.dll +CxViewer2022/bin/Release/Microsoft.Msagl.GraphViewerGdi.xml +CxViewer2022/bin/Release/Microsoft.Msagl.xml +CxViewer2022/bin/Release/Microsoft.ServiceHub.Client.dll +CxViewer2022/bin/Release/Microsoft.ServiceHub.Framework.dll +CxViewer2022/bin/Release/Microsoft.ServiceHub.Resources.dll +CxViewer2022/bin/Release/Microsoft.VisualStudio.ComponentModelHost.dll +CxViewer2022/bin/Release/Microsoft.VisualStudio.ComponentModelHost.xml +CxViewer2022/bin/Release/Microsoft.VisualStudio.GraphModel.dll +CxViewer2022/bin/Release/Microsoft.VisualStudio.GraphModel.xml +CxViewer2022/bin/Release/Microsoft.VisualStudio.ImageCatalog.dll +CxViewer2022/bin/Release/Microsoft.VisualStudio.Imaging.dll +CxViewer2022/bin/Release/Microsoft.VisualStudio.Imaging.xml +CxViewer2022/bin/Release/Microsoft.VisualStudio.Interop.dll +CxViewer2022/bin/Release/Microsoft.VisualStudio.Interop.xml +CxViewer2022/bin/Release/Microsoft.VisualStudio.ProjectAggregator.dll +CxViewer2022/bin/Release/Microsoft.VisualStudio.RemoteControl.dll +CxViewer2022/bin/Release/Microsoft.VisualStudio.RpcContracts.dll +CxViewer2022/bin/Release/Microsoft.VisualStudio.Shell.15.0.dll +CxViewer2022/bin/Release/Microsoft.VisualStudio.Shell.15.0.xml +CxViewer2022/bin/Release/Microsoft.VisualStudio.Shell.Framework.dll +CxViewer2022/bin/Release/Microsoft.VisualStudio.Shell.Framework.xml +CxViewer2022/bin/Release/Microsoft.VisualStudio.Shell.Immutable.10.0.dll +CxViewer2022/bin/Release/Microsoft.VisualStudio.Telemetry.dll +CxViewer2022/bin/Release/Microsoft.VisualStudio.Threading.dll +CxViewer2022/bin/Release/Microsoft.VisualStudio.Utilities.dll +CxViewer2022/bin/Release/Microsoft.VisualStudio.Utilities.Internal.dll +CxViewer2022/bin/Release/Microsoft.VisualStudio.Validation.dll +CxViewer2022/bin/Release/Microsoft.Win32.Registry.dll +CxViewer2022/bin/Release/Nerdbank.Streams.dll +CxViewer2022/bin/Release/Nerdbank.Streams.pdb +CxViewer2022/bin/Release/Newtonsoft.Json.dll +CxViewer2022/bin/Release/pl/Microsoft.ServiceHub.Framework.resources.dll +CxViewer2022/bin/Release/pl/Microsoft.ServiceHub.Resources.dll +CxViewer2022/bin/Release/pl/Microsoft.VisualStudio.Threading.resources.dll +CxViewer2022/bin/Release/pl/Microsoft.VisualStudio.Utilities.resources.dll +CxViewer2022/bin/Release/pl/Microsoft.VisualStudio.Validation.resources.dll +CxViewer2022/bin/Release/pl/StreamJsonRpc.resources.dll +CxViewer2022/bin/Release/pt-BR/Microsoft.ServiceHub.Framework.resources.dll +CxViewer2022/bin/Release/pt-BR/Microsoft.ServiceHub.Resources.dll +CxViewer2022/bin/Release/pt-BR/Microsoft.VisualStudio.Threading.resources.dll +CxViewer2022/bin/Release/pt-BR/Microsoft.VisualStudio.Validation.resources.dll +CxViewer2022/bin/Release/pt-BR/StreamJsonRpc.resources.dll +CxViewer2022/bin/Release/pt/Microsoft.VisualStudio.Utilities.resources.dll +CxViewer2022/bin/Release/README.txt +CxViewer2022/bin/Release/resources.pak +CxViewer2022/bin/Release/Resources/Checkmarx.ico +CxViewer2022/bin/Release/Resources/LICENSE2 +CxViewer2022/bin/Release/ru/Microsoft.ServiceHub.Framework.resources.dll +CxViewer2022/bin/Release/ru/Microsoft.ServiceHub.Resources.dll +CxViewer2022/bin/Release/ru/Microsoft.VisualStudio.Threading.resources.dll +CxViewer2022/bin/Release/ru/Microsoft.VisualStudio.Utilities.resources.dll +CxViewer2022/bin/Release/ru/Microsoft.VisualStudio.Validation.resources.dll +CxViewer2022/bin/Release/ru/StreamJsonRpc.resources.dll +CxViewer2022/bin/Release/snapshot_blob.bin +CxViewer2022/bin/Release/StreamJsonRpc.dll +CxViewer2022/bin/Release/swiftshader/libEGL.dll +CxViewer2022/bin/Release/swiftshader/libGLESv2.dll +CxViewer2022/bin/Release/System.Buffers.dll +CxViewer2022/bin/Release/System.Collections.Immutable.dll +CxViewer2022/bin/Release/System.Diagnostics.DiagnosticSource.dll +CxViewer2022/bin/Release/System.IO.Pipelines.dll +CxViewer2022/bin/Release/System.Memory.dll +CxViewer2022/bin/Release/System.Numerics.Vectors.dll +CxViewer2022/bin/Release/System.Runtime.CompilerServices.Unsafe.dll +CxViewer2022/bin/Release/System.Security.AccessControl.dll +CxViewer2022/bin/Release/System.Security.Principal.Windows.dll +CxViewer2022/bin/Release/System.Threading.AccessControl.dll +CxViewer2022/bin/Release/System.Threading.Tasks.Dataflow.dll +CxViewer2022/bin/Release/System.Threading.Tasks.Extensions.dll +CxViewer2022/bin/Release/tr/Microsoft.ServiceHub.Framework.resources.dll +CxViewer2022/bin/Release/tr/Microsoft.ServiceHub.Resources.dll +CxViewer2022/bin/Release/tr/Microsoft.VisualStudio.Threading.resources.dll +CxViewer2022/bin/Release/tr/Microsoft.VisualStudio.Utilities.resources.dll +CxViewer2022/bin/Release/tr/Microsoft.VisualStudio.Validation.resources.dll +CxViewer2022/bin/Release/tr/StreamJsonRpc.resources.dll +CxViewer2022/bin/Release/v8_context_snapshot.bin +CxViewer2022/bin/Release/vk_swiftshader.dll +CxViewer2022/bin/Release/vk_swiftshader_icd.json +CxViewer2022/bin/Release/vulkan-1.dll +CxViewer2022/bin/Release/zh-Hans/Microsoft.ServiceHub.Framework.resources.dll +CxViewer2022/bin/Release/zh-Hans/Microsoft.ServiceHub.Resources.dll +CxViewer2022/bin/Release/zh-Hans/Microsoft.VisualStudio.Threading.resources.dll +CxViewer2022/bin/Release/zh-Hans/Microsoft.VisualStudio.Utilities.resources.dll +CxViewer2022/bin/Release/zh-Hans/Microsoft.VisualStudio.Validation.resources.dll +CxViewer2022/bin/Release/zh-Hans/StreamJsonRpc.resources.dll +CxViewer2022/bin/Release/zh-Hant/Microsoft.ServiceHub.Framework.resources.dll +CxViewer2022/bin/Release/zh-Hant/Microsoft.ServiceHub.Resources.dll +CxViewer2022/bin/Release/zh-Hant/Microsoft.VisualStudio.Threading.resources.dll +CxViewer2022/bin/Release/zh-Hant/Microsoft.VisualStudio.Utilities.resources.dll +CxViewer2022/bin/Release/zh-Hant/Microsoft.VisualStudio.Validation.resources.dll +CxViewer2022/bin/Release/zh-Hant/StreamJsonRpc.resources.dll +CxViewer2022/obj/CxViewer2022.csproj.nuget.dgspec.json +CxViewer2022/obj/CxViewer2022.csproj.nuget.g.props +CxViewer2022/obj/CxViewer2022.csproj.nuget.g.targets +CxViewer2022/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs +CxViewer2022/obj/Debug/_EmptyResource.resources +CxViewer2022/obj/Debug/_EmptyResource.resources.original +CxViewer2022/obj/Debug/createTemplateManifests.cache +CxViewer2022/obj/Debug/ctoFiles.json +CxViewer2022/obj/Debug/CxViewer2022.csproj.AssemblyReference.cache +CxViewer2022/obj/Debug/CxViewer2022.csproj.CopyComplete +CxViewer2022/obj/Debug/CxViewer2022.csproj.CoreCompileInputs.cache +CxViewer2022/obj/Debug/CxViewer2022.csproj.FileListAbsolute.txt +CxViewer2022/obj/Debug/CxViewer2022.csproj.GenerateResource.cache +CxViewer2022/obj/Debug/CxViewer2022.csproj.VsixDeployedFileListAbsolute.txt +CxViewer2022/obj/Debug/CxViewer2022.dll +CxViewer2022/obj/Debug/CxViewer2022.GeneratedMSBuildEditorConfig.editorconfig +CxViewer2022/obj/Debug/CxViewer2022.latest.pkgdef +CxViewer2022/obj/Debug/CxViewer2022.pdb +CxViewer2022/obj/Debug/CxViewer2022.pkgdef +CxViewer2022/obj/Debug/CxViewer2022.VSPackage.resources +CxViewer2022/obj/Debug/CxViewerPackage.cto +CxViewer2022/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache +CxViewer2022/obj/Debug/extension.vsixmanifest +CxViewer2022/obj/Debug/files.json +CxViewer2022/obj/Debug/mergeCto.cache +CxViewer2022/obj/Debug/resources.json +CxViewer2022/obj/Debug/VSCT.read.1.tlog +CxViewer2022/obj/Debug/VSCT.write.1.tlog +CxViewer2022/obj/project.assets.json +CxViewer2022/obj/project.nuget.cache +CxViewer2022/obj/Release/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs +CxViewer2022/obj/Release/CxViewer2022.csproj.AssemblyReference.cache +CxViewer2022/obj/Release/CxViewer2022.csproj.FileListAbsolute.txt +CxViewer2022/obj/Release/CxViewer2022.GeneratedMSBuildEditorConfig.editorconfig +CxViewerAction/bin/x86/Release/CefSharp.BrowserSubprocess.Core.dll +CxViewerAction/bin/x86/Release/CefSharp.BrowserSubprocess.Core.pdb +CxViewerAction/bin/x86/Release/CefSharp.BrowserSubprocess.exe +CxViewerAction/bin/x86/Release/CefSharp.BrowserSubprocess.pdb +CxViewerAction/bin/x86/Release/CefSharp.Core.dll +CxViewerAction/bin/x86/Release/CefSharp.Core.pdb +CxViewerAction/bin/x86/Release/CefSharp.Core.Runtime.dll +CxViewerAction/bin/x86/Release/CefSharp.Core.Runtime.pdb +CxViewerAction/bin/x86/Release/CefSharp.Core.Runtime.xml +CxViewerAction/bin/x86/Release/CefSharp.Core.xml +CxViewerAction/bin/x86/Release/CefSharp.dll +CxViewerAction/bin/x86/Release/CefSharp.pdb +CxViewerAction/bin/x86/Release/CefSharp.WinForms.dll +CxViewerAction/bin/x86/Release/CefSharp.WinForms.pdb +CxViewerAction/bin/x86/Release/CefSharp.WinForms.xml +CxViewerAction/bin/x86/Release/CefSharp.xml +CxViewerAction/bin/x86/Release/chrome_100_percent.pak +CxViewerAction/bin/x86/Release/chrome_200_percent.pak +CxViewerAction/bin/x86/Release/chrome_elf.dll +CxViewerAction/bin/x86/Release/ColorButton.dll +CxViewerAction/bin/x86/Release/Common.dll +CxViewerAction/bin/x86/Release/Common.pdb +CxViewerAction/bin/x86/Release/cs/Microsoft.ServiceHub.Framework.resources.dll +CxViewerAction/bin/x86/Release/cs/Microsoft.VisualStudio.Threading.resources.dll +CxViewerAction/bin/x86/Release/cs/Microsoft.VisualStudio.Utilities.resources.dll +CxViewerAction/bin/x86/Release/cs/Microsoft.VisualStudio.Validation.resources.dll +CxViewerAction/bin/x86/Release/cs/StreamJsonRpc.resources.dll +CxViewerAction/bin/x86/Release/CxViewerAction.dll +CxViewerAction/bin/x86/Release/CxViewerAction.dll.config +CxViewerAction/bin/x86/Release/CxViewerAction.XmlSerializers.dll +CxViewerAction/bin/x86/Release/d3dcompiler_47.dll +CxViewerAction/bin/x86/Release/de/Microsoft.ServiceHub.Framework.resources.dll +CxViewerAction/bin/x86/Release/de/Microsoft.VisualStudio.Threading.resources.dll +CxViewerAction/bin/x86/Release/de/Microsoft.VisualStudio.Utilities.resources.dll +CxViewerAction/bin/x86/Release/de/Microsoft.VisualStudio.Validation.resources.dll +CxViewerAction/bin/x86/Release/de/StreamJsonRpc.resources.dll +CxViewerAction/bin/x86/Release/DgvFilterPopup.dll +CxViewerAction/bin/x86/Release/DgvFilterPopup.pdb +CxViewerAction/bin/x86/Release/en/Microsoft.VisualStudio.ImageCatalog.resources.dll +CxViewerAction/bin/x86/Release/en/Microsoft.VisualStudio.Imaging.resources.dll +CxViewerAction/bin/x86/Release/en/Microsoft.VisualStudio.Utilities.resources.dll +CxViewerAction/bin/x86/Release/EnvDTE.dll +CxViewerAction/bin/x86/Release/EnvDTE80.dll +CxViewerAction/bin/x86/Release/EnvDTE90.dll +CxViewerAction/bin/x86/Release/es/Microsoft.ServiceHub.Framework.resources.dll +CxViewerAction/bin/x86/Release/es/Microsoft.VisualStudio.Threading.resources.dll +CxViewerAction/bin/x86/Release/es/Microsoft.VisualStudio.Utilities.resources.dll +CxViewerAction/bin/x86/Release/es/Microsoft.VisualStudio.Validation.resources.dll +CxViewerAction/bin/x86/Release/es/StreamJsonRpc.resources.dll +CxViewerAction/bin/x86/Release/fr/Microsoft.ServiceHub.Framework.resources.dll +CxViewerAction/bin/x86/Release/fr/Microsoft.VisualStudio.Threading.resources.dll +CxViewerAction/bin/x86/Release/fr/Microsoft.VisualStudio.Utilities.resources.dll +CxViewerAction/bin/x86/Release/fr/Microsoft.VisualStudio.Validation.resources.dll +CxViewerAction/bin/x86/Release/fr/StreamJsonRpc.resources.dll +CxViewerAction/bin/x86/Release/icudtl.dat +CxViewerAction/bin/x86/Release/Ionic.Zip.dll +CxViewerAction/bin/x86/Release/it/Microsoft.ServiceHub.Framework.resources.dll +CxViewerAction/bin/x86/Release/it/Microsoft.VisualStudio.Threading.resources.dll +CxViewerAction/bin/x86/Release/it/Microsoft.VisualStudio.Utilities.resources.dll +CxViewerAction/bin/x86/Release/it/Microsoft.VisualStudio.Validation.resources.dll +CxViewerAction/bin/x86/Release/it/StreamJsonRpc.resources.dll +CxViewerAction/bin/x86/Release/ja/Microsoft.ServiceHub.Framework.resources.dll +CxViewerAction/bin/x86/Release/ja/Microsoft.VisualStudio.Threading.resources.dll +CxViewerAction/bin/x86/Release/ja/Microsoft.VisualStudio.Utilities.resources.dll +CxViewerAction/bin/x86/Release/ja/Microsoft.VisualStudio.Validation.resources.dll +CxViewerAction/bin/x86/Release/ja/StreamJsonRpc.resources.dll +CxViewerAction/bin/x86/Release/ko/Microsoft.ServiceHub.Framework.resources.dll +CxViewerAction/bin/x86/Release/ko/Microsoft.VisualStudio.Threading.resources.dll +CxViewerAction/bin/x86/Release/ko/Microsoft.VisualStudio.Utilities.resources.dll +CxViewerAction/bin/x86/Release/ko/Microsoft.VisualStudio.Validation.resources.dll +CxViewerAction/bin/x86/Release/ko/StreamJsonRpc.resources.dll +CxViewerAction/bin/x86/Release/libcef.dll +CxViewerAction/bin/x86/Release/libEGL.dll +CxViewerAction/bin/x86/Release/libGLESv2.dll +CxViewerAction/bin/x86/Release/LICENSE.txt +CxViewerAction/bin/x86/Release/locales/am.pak +CxViewerAction/bin/x86/Release/locales/ar.pak +CxViewerAction/bin/x86/Release/locales/bg.pak +CxViewerAction/bin/x86/Release/locales/bn.pak +CxViewerAction/bin/x86/Release/locales/ca.pak +CxViewerAction/bin/x86/Release/locales/cs.pak +CxViewerAction/bin/x86/Release/locales/da.pak +CxViewerAction/bin/x86/Release/locales/de.pak +CxViewerAction/bin/x86/Release/locales/el.pak +CxViewerAction/bin/x86/Release/locales/en-GB.pak +CxViewerAction/bin/x86/Release/locales/en-US.pak +CxViewerAction/bin/x86/Release/locales/es-419.pak +CxViewerAction/bin/x86/Release/locales/es.pak +CxViewerAction/bin/x86/Release/locales/et.pak +CxViewerAction/bin/x86/Release/locales/fa.pak +CxViewerAction/bin/x86/Release/locales/fi.pak +CxViewerAction/bin/x86/Release/locales/fil.pak +CxViewerAction/bin/x86/Release/locales/fr.pak +CxViewerAction/bin/x86/Release/locales/gu.pak +CxViewerAction/bin/x86/Release/locales/he.pak +CxViewerAction/bin/x86/Release/locales/hi.pak +CxViewerAction/bin/x86/Release/locales/hr.pak +CxViewerAction/bin/x86/Release/locales/hu.pak +CxViewerAction/bin/x86/Release/locales/id.pak +CxViewerAction/bin/x86/Release/locales/it.pak +CxViewerAction/bin/x86/Release/locales/ja.pak +CxViewerAction/bin/x86/Release/locales/kn.pak +CxViewerAction/bin/x86/Release/locales/ko.pak +CxViewerAction/bin/x86/Release/locales/lt.pak +CxViewerAction/bin/x86/Release/locales/lv.pak +CxViewerAction/bin/x86/Release/locales/ml.pak +CxViewerAction/bin/x86/Release/locales/mr.pak +CxViewerAction/bin/x86/Release/locales/ms.pak +CxViewerAction/bin/x86/Release/locales/nb.pak +CxViewerAction/bin/x86/Release/locales/nl.pak +CxViewerAction/bin/x86/Release/locales/pl.pak +CxViewerAction/bin/x86/Release/locales/pt-BR.pak +CxViewerAction/bin/x86/Release/locales/pt-PT.pak +CxViewerAction/bin/x86/Release/locales/ro.pak +CxViewerAction/bin/x86/Release/locales/ru.pak +CxViewerAction/bin/x86/Release/locales/sk.pak +CxViewerAction/bin/x86/Release/locales/sl.pak +CxViewerAction/bin/x86/Release/locales/sr.pak +CxViewerAction/bin/x86/Release/locales/sv.pak +CxViewerAction/bin/x86/Release/locales/sw.pak +CxViewerAction/bin/x86/Release/locales/ta.pak +CxViewerAction/bin/x86/Release/locales/te.pak +CxViewerAction/bin/x86/Release/locales/th.pak +CxViewerAction/bin/x86/Release/locales/tr.pak +CxViewerAction/bin/x86/Release/locales/uk.pak +CxViewerAction/bin/x86/Release/locales/vi.pak +CxViewerAction/bin/x86/Release/locales/zh-CN.pak +CxViewerAction/bin/x86/Release/locales/zh-TW.pak +CxViewerAction/bin/x86/Release/log4net.dll +CxViewerAction/bin/x86/Release/MessagePack.Annotations.dll +CxViewerAction/bin/x86/Release/MessagePack.Annotations.xml +CxViewerAction/bin/x86/Release/MessagePack.dll +CxViewerAction/bin/x86/Release/MessagePack.xml +CxViewerAction/bin/x86/Release/Microsoft.Bcl.AsyncInterfaces.dll +CxViewerAction/bin/x86/Release/Microsoft.Bcl.AsyncInterfaces.xml +CxViewerAction/bin/x86/Release/Microsoft.Build.Framework.dll +CxViewerAction/bin/x86/Release/Microsoft.Build.Framework.pdb +CxViewerAction/bin/x86/Release/Microsoft.Build.Framework.xml +CxViewerAction/bin/x86/Release/Microsoft.Msagl.dll +CxViewerAction/bin/x86/Release/Microsoft.Msagl.Drawing.dll +CxViewerAction/bin/x86/Release/Microsoft.Msagl.Drawing.xml +CxViewerAction/bin/x86/Release/Microsoft.Msagl.GraphViewerGdi.dll +CxViewerAction/bin/x86/Release/Microsoft.Msagl.GraphViewerGdi.xml +CxViewerAction/bin/x86/Release/Microsoft.Msagl.xml +CxViewerAction/bin/x86/Release/Microsoft.MSXML.dll +CxViewerAction/bin/x86/Release/Microsoft.ServiceHub.Client.dll +CxViewerAction/bin/x86/Release/Microsoft.ServiceHub.Client.xml +CxViewerAction/bin/x86/Release/Microsoft.ServiceHub.Framework.dll +CxViewerAction/bin/x86/Release/Microsoft.ServiceHub.Framework.xml +CxViewerAction/bin/x86/Release/Microsoft.VisualStudio.ComponentModelHost.dll +CxViewerAction/bin/x86/Release/Microsoft.VisualStudio.ComponentModelHost.xml +CxViewerAction/bin/x86/Release/Microsoft.VisualStudio.GraphModel.dll +CxViewerAction/bin/x86/Release/Microsoft.VisualStudio.GraphModel.xml +CxViewerAction/bin/x86/Release/Microsoft.VisualStudio.ImageCatalog.dll +CxViewerAction/bin/x86/Release/Microsoft.VisualStudio.Imaging.dll +CxViewerAction/bin/x86/Release/Microsoft.VisualStudio.Imaging.xml +CxViewerAction/bin/x86/Release/Microsoft.VisualStudio.Interop.dll +CxViewerAction/bin/x86/Release/Microsoft.VisualStudio.Interop.xml +CxViewerAction/bin/x86/Release/Microsoft.VisualStudio.Modeling.Sdk.Integration.10.0.dll +CxViewerAction/bin/x86/Release/Microsoft.VisualStudio.Modeling.SDK.Integration.Shell.10.0.dll +CxViewerAction/bin/x86/Release/Microsoft.VisualStudio.OLE.Interop.dll +CxViewerAction/bin/x86/Release/Microsoft.VisualStudio.OLE.Interop.xml +CxViewerAction/bin/x86/Release/Microsoft.VisualStudio.RemoteControl.dll +CxViewerAction/bin/x86/Release/Microsoft.VisualStudio.RemoteControl.xml +CxViewerAction/bin/x86/Release/Microsoft.VisualStudio.RpcContracts.dll +CxViewerAction/bin/x86/Release/Microsoft.VisualStudio.RpcContracts.xml +CxViewerAction/bin/x86/Release/Microsoft.VisualStudio.Shell.10.0.dll +CxViewerAction/bin/x86/Release/Microsoft.VisualStudio.Shell.15.0.dll +CxViewerAction/bin/x86/Release/Microsoft.VisualStudio.Shell.15.0.xml +CxViewerAction/bin/x86/Release/Microsoft.VisualStudio.Shell.Framework.dll +CxViewerAction/bin/x86/Release/Microsoft.VisualStudio.Shell.Framework.xml +CxViewerAction/bin/x86/Release/Microsoft.VisualStudio.Shell.Immutable.10.0.dll +CxViewerAction/bin/x86/Release/Microsoft.VisualStudio.Shell.Immutable.10.0.xml +CxViewerAction/bin/x86/Release/Microsoft.VisualStudio.Shell.Immutable.11.0.dll +CxViewerAction/bin/x86/Release/Microsoft.VisualStudio.Shell.Immutable.11.0.xml +CxViewerAction/bin/x86/Release/Microsoft.VisualStudio.Shell.Immutable.12.0.dll +CxViewerAction/bin/x86/Release/Microsoft.VisualStudio.Shell.Immutable.12.0.xml +CxViewerAction/bin/x86/Release/Microsoft.VisualStudio.Shell.Immutable.14.0.dll +CxViewerAction/bin/x86/Release/Microsoft.VisualStudio.Shell.Immutable.14.0.xml +CxViewerAction/bin/x86/Release/Microsoft.VisualStudio.Shell.Interop.8.0.dll +CxViewerAction/bin/x86/Release/Microsoft.VisualStudio.Shell.Interop.8.0.xml +CxViewerAction/bin/x86/Release/Microsoft.VisualStudio.Shell.Interop.9.0.dll +CxViewerAction/bin/x86/Release/Microsoft.VisualStudio.Shell.Interop.9.0.xml +CxViewerAction/bin/x86/Release/Microsoft.VisualStudio.Shell.Interop.dll +CxViewerAction/bin/x86/Release/Microsoft.VisualStudio.Telemetry.dll +CxViewerAction/bin/x86/Release/Microsoft.VisualStudio.Telemetry.xml +CxViewerAction/bin/x86/Release/Microsoft.VisualStudio.TextManager.Interop.8.0.dll +CxViewerAction/bin/x86/Release/Microsoft.VisualStudio.TextManager.Interop.8.0.xml +CxViewerAction/bin/x86/Release/Microsoft.VisualStudio.TextManager.Interop.dll +CxViewerAction/bin/x86/Release/Microsoft.VisualStudio.TextManager.Interop.xml +CxViewerAction/bin/x86/Release/Microsoft.VisualStudio.Threading.dll +CxViewerAction/bin/x86/Release/Microsoft.VisualStudio.Threading.xml +CxViewerAction/bin/x86/Release/Microsoft.VisualStudio.Utilities.dll +CxViewerAction/bin/x86/Release/Microsoft.VisualStudio.Utilities.Internal.dll +CxViewerAction/bin/x86/Release/Microsoft.VisualStudio.Utilities.Internal.xml +CxViewerAction/bin/x86/Release/Microsoft.VisualStudio.Utilities.xml +CxViewerAction/bin/x86/Release/Microsoft.VisualStudio.Validation.dll +CxViewerAction/bin/x86/Release/Microsoft.VisualStudio.Validation.xml +CxViewerAction/bin/x86/Release/Microsoft.VisualStudio.VSHelp.dll +CxViewerAction/bin/x86/Release/Microsoft.Win32.Registry.dll +CxViewerAction/bin/x86/Release/Microsoft.Win32.Registry.xml +CxViewerAction/bin/x86/Release/Nerdbank.Streams.dll +CxViewerAction/bin/x86/Release/Nerdbank.Streams.pdb +CxViewerAction/bin/x86/Release/Nerdbank.Streams.xml +CxViewerAction/bin/x86/Release/Newtonsoft.Json.dll +CxViewerAction/bin/x86/Release/Newtonsoft.Json.xml +CxViewerAction/bin/x86/Release/pl/Microsoft.ServiceHub.Framework.resources.dll +CxViewerAction/bin/x86/Release/pl/Microsoft.VisualStudio.Threading.resources.dll +CxViewerAction/bin/x86/Release/pl/Microsoft.VisualStudio.Utilities.resources.dll +CxViewerAction/bin/x86/Release/pl/Microsoft.VisualStudio.Validation.resources.dll +CxViewerAction/bin/x86/Release/pl/StreamJsonRpc.resources.dll +CxViewerAction/bin/x86/Release/pt-BR/Microsoft.ServiceHub.Framework.resources.dll +CxViewerAction/bin/x86/Release/pt-BR/Microsoft.VisualStudio.Threading.resources.dll +CxViewerAction/bin/x86/Release/pt-BR/Microsoft.VisualStudio.Validation.resources.dll +CxViewerAction/bin/x86/Release/pt-BR/StreamJsonRpc.resources.dll +CxViewerAction/bin/x86/Release/pt/Microsoft.VisualStudio.Utilities.resources.dll +CxViewerAction/bin/x86/Release/README.txt +CxViewerAction/bin/x86/Release/resources.pak +CxViewerAction/bin/x86/Release/ru/Microsoft.ServiceHub.Framework.resources.dll +CxViewerAction/bin/x86/Release/ru/Microsoft.VisualStudio.Threading.resources.dll +CxViewerAction/bin/x86/Release/ru/Microsoft.VisualStudio.Utilities.resources.dll +CxViewerAction/bin/x86/Release/ru/Microsoft.VisualStudio.Validation.resources.dll +CxViewerAction/bin/x86/Release/ru/StreamJsonRpc.resources.dll +CxViewerAction/bin/x86/Release/snapshot_blob.bin +CxViewerAction/bin/x86/Release/stdole.dll +CxViewerAction/bin/x86/Release/StreamJsonRpc.dll +CxViewerAction/bin/x86/Release/StreamJsonRpc.xml +CxViewerAction/bin/x86/Release/swiftshader/libEGL.dll +CxViewerAction/bin/x86/Release/swiftshader/libGLESv2.dll +CxViewerAction/bin/x86/Release/System.Buffers.dll +CxViewerAction/bin/x86/Release/System.Buffers.xml +CxViewerAction/bin/x86/Release/System.Collections.Immutable.dll +CxViewerAction/bin/x86/Release/System.Collections.Immutable.xml +CxViewerAction/bin/x86/Release/System.Diagnostics.DiagnosticSource.dll +CxViewerAction/bin/x86/Release/System.Diagnostics.DiagnosticSource.xml +CxViewerAction/bin/x86/Release/System.IO.Pipelines.dll +CxViewerAction/bin/x86/Release/System.IO.Pipelines.xml +CxViewerAction/bin/x86/Release/System.Memory.dll +CxViewerAction/bin/x86/Release/System.Memory.xml +CxViewerAction/bin/x86/Release/System.Numerics.Vectors.dll +CxViewerAction/bin/x86/Release/System.Numerics.Vectors.xml +CxViewerAction/bin/x86/Release/System.Runtime.CompilerServices.Unsafe.dll +CxViewerAction/bin/x86/Release/System.Runtime.CompilerServices.Unsafe.xml +CxViewerAction/bin/x86/Release/System.Security.AccessControl.dll +CxViewerAction/bin/x86/Release/System.Security.AccessControl.xml +CxViewerAction/bin/x86/Release/System.Security.Principal.Windows.dll +CxViewerAction/bin/x86/Release/System.Security.Principal.Windows.xml +CxViewerAction/bin/x86/Release/System.Threading.AccessControl.dll +CxViewerAction/bin/x86/Release/System.Threading.AccessControl.xml +CxViewerAction/bin/x86/Release/System.Threading.Tasks.Dataflow.dll +CxViewerAction/bin/x86/Release/System.Threading.Tasks.Dataflow.xml +CxViewerAction/bin/x86/Release/System.Threading.Tasks.Extensions.dll +CxViewerAction/bin/x86/Release/System.Threading.Tasks.Extensions.xml +CxViewerAction/bin/x86/Release/tr/Microsoft.ServiceHub.Framework.resources.dll +CxViewerAction/bin/x86/Release/tr/Microsoft.VisualStudio.Threading.resources.dll +CxViewerAction/bin/x86/Release/tr/Microsoft.VisualStudio.Utilities.resources.dll +CxViewerAction/bin/x86/Release/tr/Microsoft.VisualStudio.Validation.resources.dll +CxViewerAction/bin/x86/Release/tr/StreamJsonRpc.resources.dll +CxViewerAction/bin/x86/Release/v8_context_snapshot.bin +CxViewerAction/bin/x86/Release/vk_swiftshader.dll +CxViewerAction/bin/x86/Release/vk_swiftshader_icd.json +CxViewerAction/bin/x86/Release/vulkan-1.dll +CxViewerAction/bin/x86/Release/zh-Hans/Microsoft.ServiceHub.Framework.resources.dll +CxViewerAction/bin/x86/Release/zh-Hans/Microsoft.VisualStudio.Threading.resources.dll +CxViewerAction/bin/x86/Release/zh-Hans/Microsoft.VisualStudio.Utilities.resources.dll +CxViewerAction/bin/x86/Release/zh-Hans/Microsoft.VisualStudio.Validation.resources.dll +CxViewerAction/bin/x86/Release/zh-Hans/StreamJsonRpc.resources.dll +CxViewerAction/bin/x86/Release/zh-Hant/Microsoft.ServiceHub.Framework.resources.dll +CxViewerAction/bin/x86/Release/zh-Hant/Microsoft.VisualStudio.Threading.resources.dll +CxViewerAction/bin/x86/Release/zh-Hant/Microsoft.VisualStudio.Utilities.resources.dll +CxViewerAction/bin/x86/Release/zh-Hant/Microsoft.VisualStudio.Validation.resources.dll +CxViewerAction/bin/x86/Release/zh-Hant/StreamJsonRpc.resources.dll +CxViewerAction2019/bin/x86/Release/CefSharp.BrowserSubprocess.Core.dll +CxViewerAction2019/bin/x86/Release/CefSharp.BrowserSubprocess.Core.pdb +CxViewerAction2019/bin/x86/Release/CefSharp.BrowserSubprocess.exe +CxViewerAction2019/bin/x86/Release/CefSharp.BrowserSubprocess.pdb +CxViewerAction2019/bin/x86/Release/CefSharp.Core.dll +CxViewerAction2019/bin/x86/Release/CefSharp.Core.pdb +CxViewerAction2019/bin/x86/Release/CefSharp.Core.Runtime.dll +CxViewerAction2019/bin/x86/Release/CefSharp.Core.Runtime.pdb +CxViewerAction2019/bin/x86/Release/CefSharp.Core.Runtime.xml +CxViewerAction2019/bin/x86/Release/CefSharp.Core.xml +CxViewerAction2019/bin/x86/Release/CefSharp.dll +CxViewerAction2019/bin/x86/Release/CefSharp.pdb +CxViewerAction2019/bin/x86/Release/CefSharp.WinForms.dll +CxViewerAction2019/bin/x86/Release/CefSharp.WinForms.pdb +CxViewerAction2019/bin/x86/Release/CefSharp.WinForms.xml +CxViewerAction2019/bin/x86/Release/CefSharp.xml +CxViewerAction2019/bin/x86/Release/chrome_100_percent.pak +CxViewerAction2019/bin/x86/Release/chrome_200_percent.pak +CxViewerAction2019/bin/x86/Release/chrome_elf.dll +CxViewerAction2019/bin/x86/Release/ColorButton.dll +CxViewerAction2019/bin/x86/Release/Common.dll +CxViewerAction2019/bin/x86/Release/Common.pdb +CxViewerAction2019/bin/x86/Release/CxViewerAction2019.dll +CxViewerAction2019/bin/x86/Release/CxViewerAction2019.dll.config +CxViewerAction2019/bin/x86/Release/CxViewerAction2019.XmlSerializers.dll +CxViewerAction2019/bin/x86/Release/d3dcompiler_47.dll +CxViewerAction2019/bin/x86/Release/DgvFilterPopup.dll +CxViewerAction2019/bin/x86/Release/DgvFilterPopup.pdb +CxViewerAction2019/bin/x86/Release/EnvDTE80.dll +CxViewerAction2019/bin/x86/Release/EnvDTE90.dll +CxViewerAction2019/bin/x86/Release/icudtl.dat +CxViewerAction2019/bin/x86/Release/Ionic.Zip.dll +CxViewerAction2019/bin/x86/Release/libcef.dll +CxViewerAction2019/bin/x86/Release/libEGL.dll +CxViewerAction2019/bin/x86/Release/libGLESv2.dll +CxViewerAction2019/bin/x86/Release/LICENSE.txt +CxViewerAction2019/bin/x86/Release/locales/am.pak +CxViewerAction2019/bin/x86/Release/locales/ar.pak +CxViewerAction2019/bin/x86/Release/locales/bg.pak +CxViewerAction2019/bin/x86/Release/locales/bn.pak +CxViewerAction2019/bin/x86/Release/locales/ca.pak +CxViewerAction2019/bin/x86/Release/locales/cs.pak +CxViewerAction2019/bin/x86/Release/locales/da.pak +CxViewerAction2019/bin/x86/Release/locales/de.pak +CxViewerAction2019/bin/x86/Release/locales/el.pak +CxViewerAction2019/bin/x86/Release/locales/en-GB.pak +CxViewerAction2019/bin/x86/Release/locales/en-US.pak +CxViewerAction2019/bin/x86/Release/locales/es-419.pak +CxViewerAction2019/bin/x86/Release/locales/es.pak +CxViewerAction2019/bin/x86/Release/locales/et.pak +CxViewerAction2019/bin/x86/Release/locales/fa.pak +CxViewerAction2019/bin/x86/Release/locales/fi.pak +CxViewerAction2019/bin/x86/Release/locales/fil.pak +CxViewerAction2019/bin/x86/Release/locales/fr.pak +CxViewerAction2019/bin/x86/Release/locales/gu.pak +CxViewerAction2019/bin/x86/Release/locales/he.pak +CxViewerAction2019/bin/x86/Release/locales/hi.pak +CxViewerAction2019/bin/x86/Release/locales/hr.pak +CxViewerAction2019/bin/x86/Release/locales/hu.pak +CxViewerAction2019/bin/x86/Release/locales/id.pak +CxViewerAction2019/bin/x86/Release/locales/it.pak +CxViewerAction2019/bin/x86/Release/locales/ja.pak +CxViewerAction2019/bin/x86/Release/locales/kn.pak +CxViewerAction2019/bin/x86/Release/locales/ko.pak +CxViewerAction2019/bin/x86/Release/locales/lt.pak +CxViewerAction2019/bin/x86/Release/locales/lv.pak +CxViewerAction2019/bin/x86/Release/locales/ml.pak +CxViewerAction2019/bin/x86/Release/locales/mr.pak +CxViewerAction2019/bin/x86/Release/locales/ms.pak +CxViewerAction2019/bin/x86/Release/locales/nb.pak +CxViewerAction2019/bin/x86/Release/locales/nl.pak +CxViewerAction2019/bin/x86/Release/locales/pl.pak +CxViewerAction2019/bin/x86/Release/locales/pt-BR.pak +CxViewerAction2019/bin/x86/Release/locales/pt-PT.pak +CxViewerAction2019/bin/x86/Release/locales/ro.pak +CxViewerAction2019/bin/x86/Release/locales/ru.pak +CxViewerAction2019/bin/x86/Release/locales/sk.pak +CxViewerAction2019/bin/x86/Release/locales/sl.pak +CxViewerAction2019/bin/x86/Release/locales/sr.pak +CxViewerAction2019/bin/x86/Release/locales/sv.pak +CxViewerAction2019/bin/x86/Release/locales/sw.pak +CxViewerAction2019/bin/x86/Release/locales/ta.pak +CxViewerAction2019/bin/x86/Release/locales/te.pak +CxViewerAction2019/bin/x86/Release/locales/th.pak +CxViewerAction2019/bin/x86/Release/locales/tr.pak +CxViewerAction2019/bin/x86/Release/locales/uk.pak +CxViewerAction2019/bin/x86/Release/locales/vi.pak +CxViewerAction2019/bin/x86/Release/locales/zh-CN.pak +CxViewerAction2019/bin/x86/Release/locales/zh-TW.pak +CxViewerAction2019/bin/x86/Release/log4net.dll +CxViewerAction2019/bin/x86/Release/Microsoft.Msagl.dll +CxViewerAction2019/bin/x86/Release/Microsoft.Msagl.Drawing.dll +CxViewerAction2019/bin/x86/Release/Microsoft.Msagl.Drawing.xml +CxViewerAction2019/bin/x86/Release/Microsoft.Msagl.GraphViewerGdi.dll +CxViewerAction2019/bin/x86/Release/Microsoft.Msagl.GraphViewerGdi.xml +CxViewerAction2019/bin/x86/Release/Microsoft.Msagl.xml +CxViewerAction2019/bin/x86/Release/Microsoft.MSXML.dll +CxViewerAction2019/bin/x86/Release/Microsoft.VisualStudio.Imaging.dll +CxViewerAction2019/bin/x86/Release/Microsoft.VisualStudio.Imaging.xml +CxViewerAction2019/bin/x86/Release/Microsoft.VisualStudio.Modeling.Sdk.Integration.10.0.dll +CxViewerAction2019/bin/x86/Release/Microsoft.VisualStudio.Modeling.SDK.Integration.Shell.10.0.dll +CxViewerAction2019/bin/x86/Release/Microsoft.VisualStudio.OLE.Interop.dll +CxViewerAction2019/bin/x86/Release/Microsoft.VisualStudio.OLE.Interop.xml +CxViewerAction2019/bin/x86/Release/Microsoft.VisualStudio.ProjectAggregator.dll +CxViewerAction2019/bin/x86/Release/Microsoft.VisualStudio.Shell.10.0.dll +CxViewerAction2019/bin/x86/Release/Microsoft.VisualStudio.Shell.14.0.dll +CxViewerAction2019/bin/x86/Release/Microsoft.VisualStudio.Shell.14.0.xml +CxViewerAction2019/bin/x86/Release/Microsoft.VisualStudio.Shell.Immutable.10.0.dll +CxViewerAction2019/bin/x86/Release/Microsoft.VisualStudio.Shell.Immutable.10.0.xml +CxViewerAction2019/bin/x86/Release/Microsoft.VisualStudio.Shell.Immutable.11.0.dll +CxViewerAction2019/bin/x86/Release/Microsoft.VisualStudio.Shell.Immutable.11.0.xml +CxViewerAction2019/bin/x86/Release/Microsoft.VisualStudio.Shell.Immutable.12.0.dll +CxViewerAction2019/bin/x86/Release/Microsoft.VisualStudio.Shell.Immutable.12.0.xml +CxViewerAction2019/bin/x86/Release/Microsoft.VisualStudio.Shell.Immutable.14.0.dll +CxViewerAction2019/bin/x86/Release/Microsoft.VisualStudio.Shell.Immutable.14.0.xml +CxViewerAction2019/bin/x86/Release/Microsoft.VisualStudio.Shell.Interop.8.0.dll +CxViewerAction2019/bin/x86/Release/Microsoft.VisualStudio.Shell.Interop.8.0.xml +CxViewerAction2019/bin/x86/Release/Microsoft.VisualStudio.Shell.Interop.9.0.dll +CxViewerAction2019/bin/x86/Release/Microsoft.VisualStudio.Shell.Interop.9.0.xml +CxViewerAction2019/bin/x86/Release/Microsoft.VisualStudio.Shell.Interop.dll +CxViewerAction2019/bin/x86/Release/Microsoft.VisualStudio.Shell.Interop.xml +CxViewerAction2019/bin/x86/Release/Microsoft.VisualStudio.TextManager.Interop.8.0.dll +CxViewerAction2019/bin/x86/Release/Microsoft.VisualStudio.TextManager.Interop.8.0.xml +CxViewerAction2019/bin/x86/Release/Microsoft.VisualStudio.TextManager.Interop.dll +CxViewerAction2019/bin/x86/Release/Microsoft.VisualStudio.TextManager.Interop.xml +CxViewerAction2019/bin/x86/Release/Microsoft.VisualStudio.Threading.dll +CxViewerAction2019/bin/x86/Release/Microsoft.VisualStudio.Threading.xml +CxViewerAction2019/bin/x86/Release/Microsoft.VisualStudio.Utilities.dll +CxViewerAction2019/bin/x86/Release/Microsoft.VisualStudio.Utilities.xml +CxViewerAction2019/bin/x86/Release/Microsoft.VisualStudio.Validation.dll +CxViewerAction2019/bin/x86/Release/Microsoft.VisualStudio.Validation.xml +CxViewerAction2019/bin/x86/Release/Microsoft.VisualStudio.VSHelp.dll +CxViewerAction2019/bin/x86/Release/Newtonsoft.Json.dll +CxViewerAction2019/bin/x86/Release/Newtonsoft.Json.xml +CxViewerAction2019/bin/x86/Release/README.txt +CxViewerAction2019/bin/x86/Release/resources.pak +CxViewerAction2019/bin/x86/Release/snapshot_blob.bin +CxViewerAction2019/bin/x86/Release/stdole.dll +CxViewerAction2019/bin/x86/Release/swiftshader/libEGL.dll +CxViewerAction2019/bin/x86/Release/swiftshader/libGLESv2.dll +CxViewerAction2019/bin/x86/Release/v8_context_snapshot.bin +CxViewerAction2019/bin/x86/Release/vk_swiftshader.dll +CxViewerAction2019/bin/x86/Release/vk_swiftshader_icd.json +CxViewerAction2019/bin/x86/Release/vulkan-1.dll +CxViewerAction2019/CxViewerAction2019.csproj +CxViewerAction2019/obj/x86/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs +CxViewerAction2019/obj/x86/Debug/CxViewerAction.Views.BrowserForm.resources +CxViewerAction2019/obj/x86/Debug/CxViewerAction.Views.DockedView.ConnectionCtrl.resources +CxViewerAction2019/obj/x86/Debug/CxViewerAction.Views.DockedView.OidcLoginCtrl.resources +CxViewerAction2019/obj/x86/Debug/CxViewerAction.Views.DockedView.OptionsAuthCtrl.resources +CxViewerAction2019/obj/x86/Debug/CxViewerAction.Views.DockedView.OptionsZipCtrl.resources +CxViewerAction2019/obj/x86/Debug/CxViewerAction.Views.DockedView.PerspectiveCtrl.resources +CxViewerAction2019/obj/x86/Debug/CxViewerAction.Views.DockedView.PerspectiveGraphCtrl.resources +CxViewerAction2019/obj/x86/Debug/CxViewerAction.Views.DockedView.PerspectivePathCtrl.resources +CxViewerAction2019/obj/x86/Debug/CxViewerAction.Views.DockedView.PerspectiveResultCtrl.resources +CxViewerAction2019/obj/x86/Debug/CxViewerAction.Views.DockedView.ScanProcessCtrl.resources +CxViewerAction2019/obj/x86/Debug/CxViewerAction.Views.EditRemarkPopUp.resources +CxViewerAction2019/obj/x86/Debug/CxViewerAction.Views.ErrorFrm.resources +CxViewerAction2019/obj/x86/Debug/CxViewerAction.Views.frmBindingPrjList.resources +CxViewerAction2019/obj/x86/Debug/CxViewerAction.Views.OidcLoginFrm.resources +CxViewerAction2019/obj/x86/Debug/CxViewerAction.Views.OpenPercspectiveDialog.resources +CxViewerAction2019/obj/x86/Debug/CxViewerAction.Views.ScanProcessFrm.resources +CxViewerAction2019/obj/x86/Debug/CxViewerAction.Views.SubmitUserFrm.resources +CxViewerAction2019/obj/x86/Debug/CxViewerAction.Views.UploadFrm.resources +CxViewerAction2019/obj/x86/Debug/CxViewerAction.Views.WaitFrm.resources +CxViewerAction2019/obj/x86/Debug/CxViewerAction2019.CommandBar.resources +CxViewerAction2019/obj/x86/Debug/CxViewerAction2019.csproj.AssemblyReference.cache +CxViewerAction2019/obj/x86/Debug/CxViewerAction2019.csproj.CoreCompileInputs.cache +CxViewerAction2019/obj/x86/Debug/CxViewerAction2019.csproj.FileListAbsolute.txt +CxViewerAction2019/obj/x86/Debug/CxViewerAction2019.csproj.GenerateResource.cache +CxViewerAction2019/obj/x86/Debug/CxViewerAction2019.Properties.Resources.resources +CxViewerAction2019/obj/x86/Debug/CxViewerAction2019.Resources.CxViewerResources.resources +CxViewerAction2019/obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache +CxViewerAction2019/obj/x86/Release/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs +CxViewerAction2019/obj/x86/Release/CxViewerAction.Views.BrowserForm.resources +CxViewerAction2019/obj/x86/Release/CxViewerAction.Views.DockedView.ConnectionCtrl.resources +CxViewerAction2019/obj/x86/Release/CxViewerAction.Views.DockedView.OidcLoginCtrl.resources +CxViewerAction2019/obj/x86/Release/CxViewerAction.Views.DockedView.OptionsAuthCtrl.resources +CxViewerAction2019/obj/x86/Release/CxViewerAction.Views.DockedView.OptionsZipCtrl.resources +CxViewerAction2019/obj/x86/Release/CxViewerAction.Views.DockedView.PerspectiveCtrl.resources +CxViewerAction2019/obj/x86/Release/CxViewerAction.Views.DockedView.PerspectiveGraphCtrl.resources +CxViewerAction2019/obj/x86/Release/CxViewerAction.Views.DockedView.PerspectivePathCtrl.resources +CxViewerAction2019/obj/x86/Release/CxViewerAction.Views.DockedView.PerspectiveResultCtrl.resources +CxViewerAction2019/obj/x86/Release/CxViewerAction.Views.DockedView.ScanProcessCtrl.resources +CxViewerAction2019/obj/x86/Release/CxViewerAction.Views.EditRemarkPopUp.resources +CxViewerAction2019/obj/x86/Release/CxViewerAction.Views.ErrorFrm.resources +CxViewerAction2019/obj/x86/Release/CxViewerAction.Views.frmBindingPrjList.resources +CxViewerAction2019/obj/x86/Release/CxViewerAction.Views.OidcLoginFrm.resources +CxViewerAction2019/obj/x86/Release/CxViewerAction.Views.OpenPercspectiveDialog.resources +CxViewerAction2019/obj/x86/Release/CxViewerAction.Views.ScanProcessFrm.resources +CxViewerAction2019/obj/x86/Release/CxViewerAction.Views.SubmitUserFrm.resources +CxViewerAction2019/obj/x86/Release/CxViewerAction.Views.UploadFrm.resources +CxViewerAction2019/obj/x86/Release/CxViewerAction.Views.WaitFrm.resources +CxViewerAction2019/obj/x86/Release/CxViewerAction2019.CommandBar.resources +CxViewerAction2019/obj/x86/Release/CxViewerAction2019.csproj.AssemblyReference.cache +CxViewerAction2019/obj/x86/Release/CxViewerAction2019.csproj.CopyComplete +CxViewerAction2019/obj/x86/Release/CxViewerAction2019.csproj.CoreCompileInputs.cache +CxViewerAction2019/obj/x86/Release/CxViewerAction2019.csproj.FileListAbsolute.txt +CxViewerAction2019/obj/x86/Release/CxViewerAction2019.csproj.GenerateResource.cache +CxViewerAction2019/obj/x86/Release/CxViewerAction2019.dll +CxViewerAction2019/obj/x86/Release/CxViewerAction2019.Properties.Resources.resources +CxViewerAction2019/obj/x86/Release/CxViewerAction2019.Resources.CxViewerResources.resources +CxViewerAction2019/obj/x86/Release/CxViewerAction2019.XmlSerializers.dll +CxViewerAction2019/obj/x86/Release/DesignTimeResolveAssemblyReferencesInput.cache +CxViewerAction2019/obj/x86/Release/TempPE/Properties.Resources.Designer.cs.dll +CxViewerAction2019/obj/x86/Release/TempPE/Web References.CxVSWebService.Reference.cs.dll +CxViewerAction2019/obj/x86/Release/TempPE/Web References.CxWsResolver.Reference.cs.dll +CxViewerAction2019/packages.config +CxViewerColorButton/bin/x86/Release/ColorButton.dll +packages/cef.redist.x64.99.2.12/.signature.p7s +packages/cef.redist.x64.99.2.12/build/cef.redist.x64.props +packages/cef.redist.x64.99.2.12/buildTransitive/cef.redist.x64.props +packages/cef.redist.x64.99.2.12/cef.redist.x64.99.2.12.nupkg +packages/cef.redist.x64.99.2.12/CEF/chrome_100_percent.pak +packages/cef.redist.x64.99.2.12/CEF/chrome_200_percent.pak +packages/cef.redist.x64.99.2.12/CEF/chrome_elf.dll +packages/cef.redist.x64.99.2.12/CEF/d3dcompiler_47.dll +packages/cef.redist.x64.99.2.12/CEF/icudtl.dat +packages/cef.redist.x64.99.2.12/CEF/libcef.dll +packages/cef.redist.x64.99.2.12/CEF/libEGL.dll +packages/cef.redist.x64.99.2.12/CEF/libGLESv2.dll +packages/cef.redist.x64.99.2.12/CEF/LICENSE.txt +packages/cef.redist.x64.99.2.12/CEF/locales/am.pak +packages/cef.redist.x64.99.2.12/CEF/locales/ar.pak +packages/cef.redist.x64.99.2.12/CEF/locales/bg.pak +packages/cef.redist.x64.99.2.12/CEF/locales/bn.pak +packages/cef.redist.x64.99.2.12/CEF/locales/ca.pak +packages/cef.redist.x64.99.2.12/CEF/locales/cs.pak +packages/cef.redist.x64.99.2.12/CEF/locales/da.pak +packages/cef.redist.x64.99.2.12/CEF/locales/de.pak +packages/cef.redist.x64.99.2.12/CEF/locales/el.pak +packages/cef.redist.x64.99.2.12/CEF/locales/en-GB.pak +packages/cef.redist.x64.99.2.12/CEF/locales/en-US.pak +packages/cef.redist.x64.99.2.12/CEF/locales/es-419.pak +packages/cef.redist.x64.99.2.12/CEF/locales/es.pak +packages/cef.redist.x64.99.2.12/CEF/locales/et.pak +packages/cef.redist.x64.99.2.12/CEF/locales/fa.pak +packages/cef.redist.x64.99.2.12/CEF/locales/fi.pak +packages/cef.redist.x64.99.2.12/CEF/locales/fil.pak +packages/cef.redist.x64.99.2.12/CEF/locales/fr.pak +packages/cef.redist.x64.99.2.12/CEF/locales/gu.pak +packages/cef.redist.x64.99.2.12/CEF/locales/he.pak +packages/cef.redist.x64.99.2.12/CEF/locales/hi.pak +packages/cef.redist.x64.99.2.12/CEF/locales/hr.pak +packages/cef.redist.x64.99.2.12/CEF/locales/hu.pak +packages/cef.redist.x64.99.2.12/CEF/locales/id.pak +packages/cef.redist.x64.99.2.12/CEF/locales/it.pak +packages/cef.redist.x64.99.2.12/CEF/locales/ja.pak +packages/cef.redist.x64.99.2.12/CEF/locales/kn.pak +packages/cef.redist.x64.99.2.12/CEF/locales/ko.pak +packages/cef.redist.x64.99.2.12/CEF/locales/lt.pak +packages/cef.redist.x64.99.2.12/CEF/locales/lv.pak +packages/cef.redist.x64.99.2.12/CEF/locales/ml.pak +packages/cef.redist.x64.99.2.12/CEF/locales/mr.pak +packages/cef.redist.x64.99.2.12/CEF/locales/ms.pak +packages/cef.redist.x64.99.2.12/CEF/locales/nb.pak +packages/cef.redist.x64.99.2.12/CEF/locales/nl.pak +packages/cef.redist.x64.99.2.12/CEF/locales/pl.pak +packages/cef.redist.x64.99.2.12/CEF/locales/pt-BR.pak +packages/cef.redist.x64.99.2.12/CEF/locales/pt-PT.pak +packages/cef.redist.x64.99.2.12/CEF/locales/ro.pak +packages/cef.redist.x64.99.2.12/CEF/locales/ru.pak +packages/cef.redist.x64.99.2.12/CEF/locales/sk.pak +packages/cef.redist.x64.99.2.12/CEF/locales/sl.pak +packages/cef.redist.x64.99.2.12/CEF/locales/sr.pak +packages/cef.redist.x64.99.2.12/CEF/locales/sv.pak +packages/cef.redist.x64.99.2.12/CEF/locales/sw.pak +packages/cef.redist.x64.99.2.12/CEF/locales/ta.pak +packages/cef.redist.x64.99.2.12/CEF/locales/te.pak +packages/cef.redist.x64.99.2.12/CEF/locales/th.pak +packages/cef.redist.x64.99.2.12/CEF/locales/tr.pak +packages/cef.redist.x64.99.2.12/CEF/locales/uk.pak +packages/cef.redist.x64.99.2.12/CEF/locales/vi.pak +packages/cef.redist.x64.99.2.12/CEF/locales/zh-CN.pak +packages/cef.redist.x64.99.2.12/CEF/locales/zh-TW.pak +packages/cef.redist.x64.99.2.12/CEF/README.txt +packages/cef.redist.x64.99.2.12/CEF/resources.pak +packages/cef.redist.x64.99.2.12/CEF/snapshot_blob.bin +packages/cef.redist.x64.99.2.12/CEF/swiftshader/libEGL.dll +packages/cef.redist.x64.99.2.12/CEF/swiftshader/libGLESv2.dll +packages/cef.redist.x64.99.2.12/CEF/v8_context_snapshot.bin +packages/cef.redist.x64.99.2.12/CEF/vk_swiftshader.dll +packages/cef.redist.x64.99.2.12/CEF/vk_swiftshader_icd.json +packages/cef.redist.x64.99.2.12/CEF/vulkan-1.dll +packages/cef.redist.x64.99.2.12/LICENSE.txt +packages/cef.redist.x86.99.2.12/.signature.p7s +packages/cef.redist.x86.99.2.12/build/cef.redist.x86.props +packages/cef.redist.x86.99.2.12/buildTransitive/cef.redist.x86.props +packages/cef.redist.x86.99.2.12/cef.redist.x86.99.2.12.nupkg +packages/cef.redist.x86.99.2.12/CEF/chrome_100_percent.pak +packages/cef.redist.x86.99.2.12/CEF/chrome_200_percent.pak +packages/cef.redist.x86.99.2.12/CEF/chrome_elf.dll +packages/cef.redist.x86.99.2.12/CEF/d3dcompiler_47.dll +packages/cef.redist.x86.99.2.12/CEF/icudtl.dat +packages/cef.redist.x86.99.2.12/CEF/libcef.dll +packages/cef.redist.x86.99.2.12/CEF/libEGL.dll +packages/cef.redist.x86.99.2.12/CEF/libGLESv2.dll +packages/cef.redist.x86.99.2.12/CEF/LICENSE.txt +packages/cef.redist.x86.99.2.12/CEF/locales/am.pak +packages/cef.redist.x86.99.2.12/CEF/locales/ar.pak +packages/cef.redist.x86.99.2.12/CEF/locales/bg.pak +packages/cef.redist.x86.99.2.12/CEF/locales/bn.pak +packages/cef.redist.x86.99.2.12/CEF/locales/ca.pak +packages/cef.redist.x86.99.2.12/CEF/locales/cs.pak +packages/cef.redist.x86.99.2.12/CEF/locales/da.pak +packages/cef.redist.x86.99.2.12/CEF/locales/de.pak +packages/cef.redist.x86.99.2.12/CEF/locales/el.pak +packages/cef.redist.x86.99.2.12/CEF/locales/en-GB.pak +packages/cef.redist.x86.99.2.12/CEF/locales/en-US.pak +packages/cef.redist.x86.99.2.12/CEF/locales/es-419.pak +packages/cef.redist.x86.99.2.12/CEF/locales/es.pak +packages/cef.redist.x86.99.2.12/CEF/locales/et.pak +packages/cef.redist.x86.99.2.12/CEF/locales/fa.pak +packages/cef.redist.x86.99.2.12/CEF/locales/fi.pak +packages/cef.redist.x86.99.2.12/CEF/locales/fil.pak +packages/cef.redist.x86.99.2.12/CEF/locales/fr.pak +packages/cef.redist.x86.99.2.12/CEF/locales/gu.pak +packages/cef.redist.x86.99.2.12/CEF/locales/he.pak +packages/cef.redist.x86.99.2.12/CEF/locales/hi.pak +packages/cef.redist.x86.99.2.12/CEF/locales/hr.pak +packages/cef.redist.x86.99.2.12/CEF/locales/hu.pak +packages/cef.redist.x86.99.2.12/CEF/locales/id.pak +packages/cef.redist.x86.99.2.12/CEF/locales/it.pak +packages/cef.redist.x86.99.2.12/CEF/locales/ja.pak +packages/cef.redist.x86.99.2.12/CEF/locales/kn.pak +packages/cef.redist.x86.99.2.12/CEF/locales/ko.pak +packages/cef.redist.x86.99.2.12/CEF/locales/lt.pak +packages/cef.redist.x86.99.2.12/CEF/locales/lv.pak +packages/cef.redist.x86.99.2.12/CEF/locales/ml.pak +packages/cef.redist.x86.99.2.12/CEF/locales/mr.pak +packages/cef.redist.x86.99.2.12/CEF/locales/ms.pak +packages/cef.redist.x86.99.2.12/CEF/locales/nb.pak +packages/cef.redist.x86.99.2.12/CEF/locales/nl.pak +packages/cef.redist.x86.99.2.12/CEF/locales/pl.pak +packages/cef.redist.x86.99.2.12/CEF/locales/pt-BR.pak +packages/cef.redist.x86.99.2.12/CEF/locales/pt-PT.pak +packages/cef.redist.x86.99.2.12/CEF/locales/ro.pak +packages/cef.redist.x86.99.2.12/CEF/locales/ru.pak +packages/cef.redist.x86.99.2.12/CEF/locales/sk.pak +packages/cef.redist.x86.99.2.12/CEF/locales/sl.pak +packages/cef.redist.x86.99.2.12/CEF/locales/sr.pak +packages/cef.redist.x86.99.2.12/CEF/locales/sv.pak +packages/cef.redist.x86.99.2.12/CEF/locales/sw.pak +packages/cef.redist.x86.99.2.12/CEF/locales/ta.pak +packages/cef.redist.x86.99.2.12/CEF/locales/te.pak +packages/cef.redist.x86.99.2.12/CEF/locales/th.pak +packages/cef.redist.x86.99.2.12/CEF/locales/tr.pak +packages/cef.redist.x86.99.2.12/CEF/locales/uk.pak +packages/cef.redist.x86.99.2.12/CEF/locales/vi.pak +packages/cef.redist.x86.99.2.12/CEF/locales/zh-CN.pak +packages/cef.redist.x86.99.2.12/CEF/locales/zh-TW.pak +packages/cef.redist.x86.99.2.12/CEF/README.txt +packages/cef.redist.x86.99.2.12/CEF/resources.pak +packages/cef.redist.x86.99.2.12/CEF/snapshot_blob.bin +packages/cef.redist.x86.99.2.12/CEF/swiftshader/libEGL.dll +packages/cef.redist.x86.99.2.12/CEF/swiftshader/libGLESv2.dll +packages/cef.redist.x86.99.2.12/CEF/v8_context_snapshot.bin +packages/cef.redist.x86.99.2.12/CEF/vk_swiftshader.dll +packages/cef.redist.x86.99.2.12/CEF/vk_swiftshader_icd.json +packages/cef.redist.x86.99.2.12/CEF/vulkan-1.dll +packages/cef.redist.x86.99.2.12/LICENSE.txt +packages/CefSharp.Common.99.2.120/.signature.p7s +packages/CefSharp.Common.99.2.120/build/app.config.x64.transform +packages/CefSharp.Common.99.2.120/build/app.config.x86.transform +packages/CefSharp.Common.99.2.120/build/CefSharp.Common.props +packages/CefSharp.Common.99.2.120/build/CefSharp.Common.targets +packages/CefSharp.Common.99.2.120/buildTransitive/CefSharp.Common.props +packages/CefSharp.Common.99.2.120/buildTransitive/CefSharp.Common.targets +packages/CefSharp.Common.99.2.120/CefSharp.Common.99.2.120.nupkg +packages/CefSharp.Common.99.2.120/CefSharp/x64/CefSharp.BrowserSubprocess.Core.dll +packages/CefSharp.Common.99.2.120/CefSharp/x64/CefSharp.BrowserSubprocess.Core.pdb +packages/CefSharp.Common.99.2.120/CefSharp/x64/CefSharp.BrowserSubprocess.exe +packages/CefSharp.Common.99.2.120/CefSharp/x64/CefSharp.BrowserSubprocess.pdb +packages/CefSharp.Common.99.2.120/CefSharp/x64/CefSharp.Core.Runtime.dll +packages/CefSharp.Common.99.2.120/CefSharp/x64/CefSharp.Core.Runtime.pdb +packages/CefSharp.Common.99.2.120/CefSharp/x64/CefSharp.Core.Runtime.xml +packages/CefSharp.Common.99.2.120/CefSharp/x86/CefSharp.BrowserSubprocess.Core.dll +packages/CefSharp.Common.99.2.120/CefSharp/x86/CefSharp.BrowserSubprocess.Core.pdb +packages/CefSharp.Common.99.2.120/CefSharp/x86/CefSharp.BrowserSubprocess.exe +packages/CefSharp.Common.99.2.120/CefSharp/x86/CefSharp.BrowserSubprocess.pdb +packages/CefSharp.Common.99.2.120/CefSharp/x86/CefSharp.Core.Runtime.dll +packages/CefSharp.Common.99.2.120/CefSharp/x86/CefSharp.Core.Runtime.pdb +packages/CefSharp.Common.99.2.120/CefSharp/x86/CefSharp.Core.Runtime.xml +packages/CefSharp.Common.99.2.120/lib/net452/CefSharp.Core.dll +packages/CefSharp.Common.99.2.120/lib/net452/CefSharp.Core.pdb +packages/CefSharp.Common.99.2.120/lib/net452/CefSharp.Core.XML +packages/CefSharp.Common.99.2.120/lib/net452/CefSharp.dll +packages/CefSharp.Common.99.2.120/lib/net452/CefSharp.pdb +packages/CefSharp.Common.99.2.120/lib/net452/CefSharp.XML +packages/CefSharp.Common.99.2.120/src/CefSharp.BrowserSubprocess.Core/AssemblyInfo.cpp +packages/CefSharp.Common.99.2.120/src/CefSharp.BrowserSubprocess.Core/Async/JavascriptAsyncMethodCallback.cpp +packages/CefSharp.Common.99.2.120/src/CefSharp.BrowserSubprocess.Core/Async/JavascriptAsyncMethodCallback.h +packages/CefSharp.Common.99.2.120/src/CefSharp.BrowserSubprocess.Core/Async/JavascriptAsyncMethodHandler.cpp +packages/CefSharp.Common.99.2.120/src/CefSharp.BrowserSubprocess.Core/Async/JavascriptAsyncMethodHandler.h +packages/CefSharp.Common.99.2.120/src/CefSharp.BrowserSubprocess.Core/Async/JavascriptAsyncMethodWrapper.cpp +packages/CefSharp.Common.99.2.120/src/CefSharp.BrowserSubprocess.Core/Async/JavascriptAsyncMethodWrapper.h +packages/CefSharp.Common.99.2.120/src/CefSharp.BrowserSubprocess.Core/Async/JavascriptAsyncObjectWrapper.cpp +packages/CefSharp.Common.99.2.120/src/CefSharp.BrowserSubprocess.Core/Async/JavascriptAsyncObjectWrapper.h +packages/CefSharp.Common.99.2.120/src/CefSharp.BrowserSubprocess.Core/BindObjectAsyncHandler.h +packages/CefSharp.Common.99.2.120/src/CefSharp.BrowserSubprocess.Core/BrowserSubprocessExecutable.h +packages/CefSharp.Common.99.2.120/src/CefSharp.BrowserSubprocess.Core/Cef.h +packages/CefSharp.Common.99.2.120/src/CefSharp.BrowserSubprocess.Core/CefAppUnmanagedWrapper.cpp +packages/CefSharp.Common.99.2.120/src/CefSharp.BrowserSubprocess.Core/CefAppUnmanagedWrapper.h +packages/CefSharp.Common.99.2.120/src/CefSharp.BrowserSubprocess.Core/CefBrowserWrapper.h +packages/CefSharp.Common.99.2.120/src/CefSharp.BrowserSubprocess.Core/JavascriptCallbackRegistry.cpp +packages/CefSharp.Common.99.2.120/src/CefSharp.BrowserSubprocess.Core/JavascriptCallbackRegistry.h +packages/CefSharp.Common.99.2.120/src/CefSharp.BrowserSubprocess.Core/JavascriptCallbackWrapper.h +packages/CefSharp.Common.99.2.120/src/CefSharp.BrowserSubprocess.Core/JavascriptMethodHandler.cpp +packages/CefSharp.Common.99.2.120/src/CefSharp.BrowserSubprocess.Core/JavascriptMethodHandler.h +packages/CefSharp.Common.99.2.120/src/CefSharp.BrowserSubprocess.Core/JavascriptMethodWrapper.cpp +packages/CefSharp.Common.99.2.120/src/CefSharp.BrowserSubprocess.Core/JavascriptMethodWrapper.h +packages/CefSharp.Common.99.2.120/src/CefSharp.BrowserSubprocess.Core/JavascriptObjectWrapper.cpp +packages/CefSharp.Common.99.2.120/src/CefSharp.BrowserSubprocess.Core/JavascriptObjectWrapper.h +packages/CefSharp.Common.99.2.120/src/CefSharp.BrowserSubprocess.Core/JavascriptPostMessageHandler.h +packages/CefSharp.Common.99.2.120/src/CefSharp.BrowserSubprocess.Core/JavascriptPromiseHandler.h +packages/CefSharp.Common.99.2.120/src/CefSharp.BrowserSubprocess.Core/JavascriptPropertyHandler.h +packages/CefSharp.Common.99.2.120/src/CefSharp.BrowserSubprocess.Core/JavascriptPropertyWrapper.cpp +packages/CefSharp.Common.99.2.120/src/CefSharp.BrowserSubprocess.Core/JavascriptPropertyWrapper.h +packages/CefSharp.Common.99.2.120/src/CefSharp.BrowserSubprocess.Core/JavascriptRootObjectWrapper.cpp +packages/CefSharp.Common.99.2.120/src/CefSharp.BrowserSubprocess.Core/JavascriptRootObjectWrapper.h +packages/CefSharp.Common.99.2.120/src/CefSharp.BrowserSubprocess.Core/obj/Win32/Release/.NETFramework,Version=v4.5.2.AssemblyAttributes.cpp +packages/CefSharp.Common.99.2.120/src/CefSharp.BrowserSubprocess.Core/obj/x64/Release/.NETFramework,Version=v4.5.2.AssemblyAttributes.cpp +packages/CefSharp.Common.99.2.120/src/CefSharp.BrowserSubprocess.Core/RegisterBoundObjectHandler.h +packages/CefSharp.Common.99.2.120/src/CefSharp.BrowserSubprocess.Core/RegisterBoundObjectRegistry.h +packages/CefSharp.Common.99.2.120/src/CefSharp.BrowserSubprocess.Core/resource.h +packages/CefSharp.Common.99.2.120/src/CefSharp.BrowserSubprocess.Core/Serialization/JsObjectsSerialization.cpp +packages/CefSharp.Common.99.2.120/src/CefSharp.BrowserSubprocess.Core/Serialization/JsObjectsSerialization.h +packages/CefSharp.Common.99.2.120/src/CefSharp.BrowserSubprocess.Core/Serialization/V8Serialization.cpp +packages/CefSharp.Common.99.2.120/src/CefSharp.BrowserSubprocess.Core/Serialization/V8Serialization.h +packages/CefSharp.Common.99.2.120/src/CefSharp.BrowserSubprocess.Core/Stdafx.cpp +packages/CefSharp.Common.99.2.120/src/CefSharp.BrowserSubprocess.Core/Stdafx.h +packages/CefSharp.Common.99.2.120/src/CefSharp.BrowserSubprocess.Core/SubProcess.h +packages/CefSharp.Common.99.2.120/src/CefSharp.BrowserSubprocess.Core/SubProcessApp.h +packages/CefSharp.Common.99.2.120/src/CefSharp.BrowserSubprocess.Core/TypeUtils.cpp +packages/CefSharp.Common.99.2.120/src/CefSharp.BrowserSubprocess.Core/TypeUtils.h +packages/CefSharp.Common.99.2.120/src/CefSharp.BrowserSubprocess.Core/vcclr_local.h +packages/CefSharp.Common.99.2.120/src/CefSharp.BrowserSubprocess.Core/WcfBrowserSubprocessExecutable.h +packages/CefSharp.Common.99.2.120/src/CefSharp.BrowserSubprocess.Core/WcfEnabledSubProcess.cpp +packages/CefSharp.Common.99.2.120/src/CefSharp.BrowserSubprocess.Core/WcfEnabledSubProcess.h +packages/CefSharp.Common.99.2.120/src/CefSharp.BrowserSubprocess.Core/Wrapper/Browser.cpp +packages/CefSharp.Common.99.2.120/src/CefSharp.BrowserSubprocess.Core/Wrapper/Browser.h +packages/CefSharp.Common.99.2.120/src/CefSharp.BrowserSubprocess.Core/Wrapper/Frame.cpp +packages/CefSharp.Common.99.2.120/src/CefSharp.BrowserSubprocess.Core/Wrapper/Frame.h +packages/CefSharp.Common.99.2.120/src/CefSharp.BrowserSubprocess.Core/Wrapper/V8Context.h +packages/CefSharp.Common.99.2.120/src/CefSharp.BrowserSubprocess/obj/x64/Release/.NETFramework,Version=v4.5.2.AssemblyAttributes.cs +packages/CefSharp.Common.99.2.120/src/CefSharp.BrowserSubprocess/obj/x86/Release/.NETFramework,Version=v4.5.2.AssemblyAttributes.cs +packages/CefSharp.Common.99.2.120/src/CefSharp.BrowserSubprocess/Program.cs +packages/CefSharp.Common.99.2.120/src/CefSharp.BrowserSubprocess/Program.netcore.cs +packages/CefSharp.Common.99.2.120/src/CefSharp.BrowserSubprocess/Properties/AssemblyInfo.cs +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/AssemblyInfo.cpp +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/BrowserSettings.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Cef.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/CefSettingsBase.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/CookieManager.cpp +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/CookieManager.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/DragData.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/CefAuthCallbackWrapper.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/CefBeforeDownloadCallbackWrapper.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/CefBrowserHostWrapper.cpp +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/CefBrowserHostWrapper.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/CefBrowserWrapper.cpp +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/CefBrowserWrapper.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/CefCallbackWrapper.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/CefCertificateCallbackWrapper.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/CefCompletionCallbackAdapter.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/CefContextMenuParamsWrapper.cpp +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/CefContextMenuParamsWrapper.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/CefCookieAccessFilterAdapter.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/CefCookieVisitorAdapter.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/CefDeleteCookiesCallbackAdapter.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/CefDevToolsMessageObserverAdapter.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/CefDownloadItemCallbackWrapper.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/CefExtensionHandlerAdapter.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/CefExtensionWrapper.cpp +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/CefExtensionWrapper.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/CefFileDialogCallbackWrapper.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/CefFrameWrapper.cpp +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/CefFrameWrapper.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/CefGetExtensionResourceCallbackWrapper.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/CefImageWrapper.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/CefJSDialogCallbackWrapper.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/CefMenuModelWrapper.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/CefNavigationEntryVisitorAdapter.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/CefPdfPrintCallbackWrapper.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/CefRefCountManaged.cpp +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/CefRefCountManaged.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/CefRegistrationWrapper.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/CefRequestCallbackWrapper.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/CefRequestContextHandlerAdapter.cpp +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/CefRequestContextHandlerAdapter.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/CefResolveCallbackAdapter.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/CefResourceHandlerAdapter.cpp +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/CefResourceHandlerAdapter.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/CefResourceReadCallbackWrapper.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/CefResourceRequestHandlerAdapter.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/CefResourceSkipCallbackWrapper.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/CefResponseFilterAdapter.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/CefResponseWrapper.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/CefRunContextMenuCallbackWrapper.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/CefRunFileDialogCallbackAdapter.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/CefSchemeHandlerFactoryAdapter.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/CefSchemeRegistrarWrapper.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/CefSetCookieCallbackAdapter.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/CefSharpApp.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/CefSslInfoWrapper.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/CefStringVisitorAdapter.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/CefTaskScheduler.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/CefTaskWrapper.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/CefUrlRequestClientAdapter.cpp +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/CefUrlRequestClientAdapter.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/CefValueWrapper.cpp +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/CefValueWrapper.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/CefWebPluginInfoVisitorAdapter.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/CefWrapper.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/CefWriteHandlerWrapper.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/ClientAdapter.cpp +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/ClientAdapter.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/JavascriptCallbackFactory.cpp +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/JavascriptCallbackFactory.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/JavascriptCallbackProxy.cpp +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/JavascriptCallbackProxy.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/MCefRefPtr.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/Messaging/Messages.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/RenderClientAdapter.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/ReportUnhandledExceptions.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/Serialization/JsObjectsSerialization.cpp +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/Serialization/JsObjectsSerialization.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/Serialization/ObjectsSerialization.cpp +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/Serialization/ObjectsSerialization.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/Serialization/Primitives.cpp +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/Serialization/Primitives.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/Serialization/V8Serialization.cpp +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/Serialization/V8Serialization.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/StringUtils.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Internals/TypeConversion.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/ManagedCefBrowserAdapter.cpp +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/ManagedCefBrowserAdapter.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/NativeMethodWrapper.cpp +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/NativeMethodWrapper.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/obj/Win32/Release/.NETFramework,Version=v4.5.2.AssemblyAttributes.cpp +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/obj/x64/Release/.NETFramework,Version=v4.5.2.AssemblyAttributes.cpp +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/PopupFeatures.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/PostData.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/PostDataElement.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Request.cpp +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Request.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/RequestContext.cpp +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/RequestContext.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/RequestContextSettings.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/resource.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Stdafx.cpp +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/Stdafx.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/UrlRequest.cpp +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/UrlRequest.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/vcclr_local.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core.Runtime/WindowInfo.h +packages/CefSharp.Common.99.2.120/src/CefSharp.Core/BrowserSettings.cs +packages/CefSharp.Common.99.2.120/src/CefSharp.Core/BrowserSettings.netcore.cs +packages/CefSharp.Common.99.2.120/src/CefSharp.Core/BrowserSubprocess/SelfHost.cs +packages/CefSharp.Common.99.2.120/src/CefSharp.Core/Cef.cs +packages/CefSharp.Common.99.2.120/src/CefSharp.Core/CefSettingsBase.cs +packages/CefSharp.Common.99.2.120/src/CefSharp.Core/DragData.cs +packages/CefSharp.Common.99.2.120/src/CefSharp.Core/Fluent/DownloadHandler.cs +packages/CefSharp.Common.99.2.120/src/CefSharp.Core/Fluent/DownloadHandlerBuilder.cs +packages/CefSharp.Common.99.2.120/src/CefSharp.Core/Fluent/UrlRequestClient.cs +packages/CefSharp.Common.99.2.120/src/CefSharp.Core/Fluent/UrlRequestClientBuilder.cs +packages/CefSharp.Common.99.2.120/src/CefSharp.Core/Initializer.cs +packages/CefSharp.Common.99.2.120/src/CefSharp.Core/ManagedCefBrowserAdapter.cs +packages/CefSharp.Common.99.2.120/src/CefSharp.Core/ModuleInitializerAttribute.cs +packages/CefSharp.Common.99.2.120/src/CefSharp.Core/NativeMethodWrapper.cs +packages/CefSharp.Common.99.2.120/src/CefSharp.Core/obj/Release/.NETFramework,Version=v4.5.2.AssemblyAttributes.cs +packages/CefSharp.Common.99.2.120/src/CefSharp.Core/ObjectFactory.cs +packages/CefSharp.Common.99.2.120/src/CefSharp.Core/PostData.cs +packages/CefSharp.Common.99.2.120/src/CefSharp.Core/PostData.netcore.cs +packages/CefSharp.Common.99.2.120/src/CefSharp.Core/PostDataElement.cs +packages/CefSharp.Common.99.2.120/src/CefSharp.Core/PostDataElement.netcore.cs +packages/CefSharp.Common.99.2.120/src/CefSharp.Core/Properties/AssemblyInfo.cs +packages/CefSharp.Common.99.2.120/src/CefSharp.Core/Request.cs +packages/CefSharp.Common.99.2.120/src/CefSharp.Core/Request.netcore.cs +packages/CefSharp.Common.99.2.120/src/CefSharp.Core/RequestContext.cs +packages/CefSharp.Common.99.2.120/src/CefSharp.Core/RequestContext.netcore.cs +packages/CefSharp.Common.99.2.120/src/CefSharp.Core/RequestContextBuilder.cs +packages/CefSharp.Common.99.2.120/src/CefSharp.Core/RequestContextSettings.cs +packages/CefSharp.Common.99.2.120/src/CefSharp.Core/UrlRequest.cs +packages/CefSharp.Common.99.2.120/src/CefSharp.Core/UrlRequest.netcore.cs +packages/CefSharp.Common.99.2.120/src/CefSharp.Core/WebBrowserExtensionsEx.cs +packages/CefSharp.Common.99.2.120/src/CefSharp.Core/WindowInfo.cs +packages/CefSharp.Common.99.2.120/src/CefSharp.Core/WindowInfo.netcore.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/AsyncExtensions.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/BindingOptions.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Callback/IAuthCallback.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Callback/IBeforeDownloadCallback.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Callback/ICallback.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Callback/ICompletionCallback.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Callback/IDeleteCookiesCallback.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Callback/IDevToolsMessageObserver.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Callback/IDownloadItemCallback.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Callback/IFileDialogCallback.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Callback/IGetExtensionResourceCallback.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Callback/IJavascriptCallback.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Callback/IJsDialogCallback.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Callback/IPrintToPdfCallback.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Callback/IRequestCallback.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Callback/IResolveCallback.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Callback/IResourceReadCallback.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Callback/IResourceSkipCallback.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Callback/IRunContextMenuCallback.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Callback/IRunFileDialogCallback.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Callback/ISelectClientCertificateCallback.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Callback/ISetCookieCallback.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Callback/NoOpCompletionCallback.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Callback/TaskCompletionCallback.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Callback/TaskDeleteCookiesCallback.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Callback/TaskPrintToPdfCallback.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Callback/TaskResolveCallback.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Callback/TaskSetCookieCallback.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/CefCustomScheme.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/CefLibraryHandle.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/CefRuntime.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/CefSharpSettings.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Cookie.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/DefaultApp.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/DependencyChecker.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/DevTools/DevToolsClient.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/DevTools/DevToolsClient.Generated.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/DevTools/DevToolsClient.Generated.netcore.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/DevTools/DevToolsClientException.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/DevTools/DevToolsDomainBase.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/DevTools/DevToolsDomainEntityBase.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/DevTools/DevToolsDomainErrorResponse.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/DevTools/DevToolsDomainEventArgsBase.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/DevTools/DevToolsDomainResponseBase.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/DevTools/DevToolsErrorEventArgs.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/DevTools/DevToolsEventArgs.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/DevTools/DevToolsMethodResponse.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/DevTools/DevToolsMethodResponseContext.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/DevTools/EventProxy.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/DevTools/Headers.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/DevTools/IDevToolsClient.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/DevTools/IEventProxy.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/DevTools/MemoryDumpConfig.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/DevToolsExtensions.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/DomNode.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/DownloadItem.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Enums/AlphaType.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Enums/CefErrorCode.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Enums/CefEventFlags.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Enums/CefFileDialogFlags.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Enums/CefFileDialogMode.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Enums/CefFocusSource.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Enums/CefJsDialogType.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Enums/CefMenuCommand.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Enums/CefPdfPrintMarginType.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Enums/CefReturnValue.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Enums/CefState.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Enums/CefTerminationStatus.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Enums/CefThreadIds.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Enums/CertStatus.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Enums/ChannelLayout.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Enums/ColorType.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Enums/CompositionUnderlineStyle.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Enums/ContextMenuEditState.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Enums/ContextMenuMediaState.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Enums/ContextMenuMediaType.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Enums/ContextMenuType.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Enums/CookiePriority.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Enums/CookieSameSite.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Enums/CursorType.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Enums/DragOperationsMask.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Enums/FilterStatus.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Enums/KeyEventType.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Enums/KeyType.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Enums/LogSeverity.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Enums/MenuItemType.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Enums/MouseButtonType.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Enums/PaintElementType.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Enums/PointerType.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Enums/PostDataElementType.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Enums/ReferrerPolicy.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Enums/ResourceType.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Enums/SchemeOptions.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Enums/SslContentStatus.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Enums/SslVersion.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Enums/TextInputMode.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Enums/TouchEventType.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Enums/TransitionType.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Enums/UrlRequestFlags.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Enums/UrlRequestStatus.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Enums/ValueType.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Enums/WindowOpenDisposition.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Event/AddressChangedEventArgs.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Event/ConsoleMessageEventArgs.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Event/FrameLoadEndEventArgs.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Event/FrameLoadStartEventArgs.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Event/JavascriptBindingCompleteEventArgs.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Event/JavascriptBindingEventArgs.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Event/JavascriptBindingMultipleCompleteEventArgs.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Event/JavascriptMessageReceivedEventArgs.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Event/LoadErrorEventArgs.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Event/LoadingStateChangedEventArgs.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Event/StatusMessageEventHandler.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Event/TitleChangedEventArgs.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Handler/AccessibilityHandler.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Handler/AudioHandler.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Handler/BrowserProcessHandler.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Handler/ContextMenuHandler.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Handler/CookieAccessFilter.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Handler/DialogHandler.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Handler/DisplayHandler.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Handler/DownloadHandler.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Handler/DragHandler .cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Handler/ExtensionHandler .cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Handler/FindHandler.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Handler/FocusHandler.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Handler/FrameHandler.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Handler/IAccessibilityHandler.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Handler/IAudioHandler.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Handler/IBrowserProcessHandler.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Handler/IContextMenuHandler.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Handler/ICookieAccessFilter.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Handler/IDialogHandler.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Handler/IDisplayHandler.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Handler/IDownloadHandler.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Handler/IDragHandler.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Handler/IExtensionHandler.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Handler/IFindHandler.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Handler/IFocusHandler.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Handler/IFrameHandler.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Handler/IJsDialogHandler.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Handler/IKeyboardHandler.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Handler/ILifeSpanHandler.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Handler/ILoadHandler.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Handler/IRenderProcessMessageHandler.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Handler/IRequestContextHandler.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Handler/IRequestHandler.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Handler/IResourceHandler.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Handler/IResourceRequestHandler.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Handler/JsDialogHandler.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Handler/KeyboardHandler.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Handler/LifeSpanHandler.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Handler/LoadHandler.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Handler/RequestContextHandler.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Handler/RequestHandler.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Handler/ResourceRequestHandler.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/IApp.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/IBrowser.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/IBrowserHost.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/IBrowserSettings.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/IChromiumWebBrowserBase.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/IContextMenuParams.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/ICookieManager.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/IDomNode.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/IDragData.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/IExtension.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/IFrame.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/IImage.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/IJavascriptObjectRepository.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/IMenuModel.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Internals/BrowserRefCounter.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Internals/ByteArrayResourceHandler.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Internals/CefSharpArguments.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Internals/CefThread.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Internals/CefTimeUtils.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Internals/CommandLineArgDictionary.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Internals/CommandLineArgsParser.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Internals/ConcurrentMethodRunnerQueue.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Internals/CookieManagerDecorator.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Internals/DateTimeUtils.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Internals/FileResourceHandler.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Internals/FreezableBase.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Internals/GlobalContextInitialized.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Internals/HeaderNameValueCollection.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Internals/IBrowserAdapter.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Internals/IBrowserRefCounter.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Internals/IJavascriptCallbackFactory.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Internals/IJavascriptObjectRepositoryInternal.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Internals/IMethodRunnerQueue.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Internals/InitializeAsyncBrowserProcessHandler.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Internals/InMemoryResourceRequestHandler.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Internals/IntPtrExtensions.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Internals/IRenderWebBrowser.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Internals/ITaskScheduler.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Internals/IWebBrowserInternal.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Internals/JavascriptCallback.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Internals/JavascriptMethod.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Internals/JavascriptObject.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Internals/JavascriptObjectRepository.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Internals/JavascriptProperty.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Internals/Json/JsonEnumConverter.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Internals/Json/JsonEnumConverterFactory.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Internals/MethodInvocation.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Internals/MethodInvocationCompleteArgs.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Internals/MethodInvocationResult.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Internals/MethodParameter.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Internals/MethodRunnerQueue.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Internals/MimeTypeMapping.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Internals/NoFocusHandler.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Internals/NoOpBrowserRefCounter.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Internals/ParentProcessMonitor.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Internals/Partial/ChromiumWebBrowser.Partial.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Internals/PathCheck.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Internals/PendingTaskRepository.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Internals/ReflectionUtils.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Internals/RenderprocessClientFactory.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Internals/StringCheck.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Internals/TaskExtensions.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Internals/Tasks/LimitedConcurrencyLevelTaskScheduler.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Internals/Tasks/SyncContextTaskCompletionSource.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Internals/TryCallMethodResult.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Internals/Wcf/BrowserProcessResponse.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Internals/Wcf/BrowserProcessService.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Internals/Wcf/BrowserProcessServiceHost.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Internals/Wcf/IBrowserProcess.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Internals/Wcf/JavascriptCallbackEndpointBehavior.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Internals/Wcf/JavascriptCallbackSurrogate.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Internals/Wcf/WcfExtensions.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/IPopupFeatures.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/IPostData.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/IPostDataElement.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/IRegistration.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/IRequest.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/IRequestContext.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/IResourceRequestHandlerFactory.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/IResponse.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/IResponseFilter.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/ISchemeRegistrar.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/ISslInfo.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/IUrlRequest.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/IUrlRequestClient.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/IValue.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/IWebBrowser.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/IWindowInfo.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/JavascriptBinding/CamelCaseJavascriptNameConverter.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/JavascriptBinding/IJavascriptNameConverter.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/JavascriptBinding/JavascriptBindingExtensions.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/JavascriptBinding/JavascriptBindingSettings.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/JavascriptBinding/LegacyCamelCaseJavascriptNameConverter.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/JavascriptException.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/JavascriptIgnoreAttribute.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/JavascriptResponse.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/JavascriptStackFrame.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Lagacy/ResourceHandler.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/LoadUrlAsyncResponse.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/ModelBinding/BindingMemberInfo.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/ModelBinding/DefaultBinder.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/ModelBinding/IAsyncMethodInterceptor.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/ModelBinding/IBinder.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/ModelBinding/IMethodInterceptor.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/ModelBinding/IPropertyInterceptor.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/ModelBinding/ModelBindingExtensions.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/NavigationEntry.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/obj/Release/.NETFramework,Version=v4.5.2.AssemblyAttributes.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/PdfPrintSettings.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/PostDataExtensions.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Preferences/SetPreferenceResponse.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Preferences/SetProxyResponse.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Properties/AssemblyInfo.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/ProxyOptions.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/RenderProcess/IRenderProcessHandler.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/RenderProcess/IV8Context.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/RenderProcess/V8Exception.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/RequestContextExtensions.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/ResourceHandler.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/ResourceRequestHandlerFactory.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/ResourceRequestHandlerFactoryItem.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/ResponseFilter/StreamResponseFilter.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/SchemeHandler/FolderSchemeHandlerFactory.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/SchemeHandler/ISchemeHandlerFactory.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/SchemeHandler/OwinResourceHandler.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/SchemeHandler/OwinSchemeHandlerFactory.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/SslStatus.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Structs/AudioParamaters.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Structs/CompositionUnderline.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Structs/CursorInfo.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Structs/DraggableRegion.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Structs/KeyEvent.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Structs/MouseEvent.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Structs/Point.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Structs/Range.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Structs/Rect.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Structs/ResolveCallbackResult.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Structs/ScreenInfo.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Structs/Size.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Structs/TouchEvent.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/UrlParts.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/UrlRequestClient.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Visitor/ICookieVisitor.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Visitor/INavigationEntryVisitor.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Visitor/IStringVisitor.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Visitor/IWebPluginInfoVisitor.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Visitor/TaskCookieVisitor.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Visitor/TaskNavigationEntryVisitor.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Visitor/TaskStringVisitor.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Visitor/TaskWebPluginInfoVisitor.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Web/HtmlString.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/Web/JsonString.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/WebBrowserExtensions.cs +packages/CefSharp.Common.99.2.120/src/CefSharp/WebPluginInfo.cs +packages/CefSharp.WinForms.99.2.120/.signature.p7s +packages/CefSharp.WinForms.99.2.120/CefSharp.WinForms.99.2.120.nupkg +packages/CefSharp.WinForms.99.2.120/lib/net452/CefSharp.WinForms.dll +packages/CefSharp.WinForms.99.2.120/lib/net452/CefSharp.WinForms.pdb +packages/CefSharp.WinForms.99.2.120/lib/net452/CefSharp.WinForms.XML +packages/CefSharp.WinForms.99.2.120/lib/net462/CefSharp.WinForms.dll +packages/CefSharp.WinForms.99.2.120/lib/net462/CefSharp.WinForms.pdb +packages/CefSharp.WinForms.99.2.120/lib/net462/CefSharp.WinForms.XML +packages/CefSharp.WinForms.99.2.120/Readme.txt +packages/CefSharp.WinForms.99.2.120/src/CefSharp.WinForms/CefSettings.cs +packages/CefSharp.WinForms.99.2.120/src/CefSharp.WinForms/ChromiumWebBrowser.cs +packages/CefSharp.WinForms.99.2.120/src/CefSharp.WinForms/ChromiumWebBrowserDesigner.cs +packages/CefSharp.WinForms.99.2.120/src/CefSharp.WinForms/Experimental/ChromiumRenderWidgetHandleFinder.cs +packages/CefSharp.WinForms.99.2.120/src/CefSharp.WinForms/Experimental/ChromiumWidgetNativeWindow.cs +packages/CefSharp.WinForms.99.2.120/src/CefSharp.WinForms/Handler/DisplayHandler.cs +packages/CefSharp.WinForms.99.2.120/src/CefSharp.WinForms/Handler/LifeSpanHandler.cs +packages/CefSharp.WinForms.99.2.120/src/CefSharp.WinForms/Handler/LifeSpanHandlerBuilder.cs +packages/CefSharp.WinForms.99.2.120/src/CefSharp.WinForms/Handler/LoadHandler.cs +packages/CefSharp.WinForms.99.2.120/src/CefSharp.WinForms/Handler/PopupCreation.cs +packages/CefSharp.WinForms.99.2.120/src/CefSharp.WinForms/Host/ChromiumHostControl.cs +packages/CefSharp.WinForms.99.2.120/src/CefSharp.WinForms/Host/ChromiumHostControlBase.cs +packages/CefSharp.WinForms.99.2.120/src/CefSharp.WinForms/Internals/ControlExtensions.cs +packages/CefSharp.WinForms.99.2.120/src/CefSharp.WinForms/Internals/DefaultFocusHandler.cs +packages/CefSharp.WinForms.99.2.120/src/CefSharp.WinForms/Internals/NativeMethods.cs +packages/CefSharp.WinForms.99.2.120/src/CefSharp.WinForms/Internals/ParentFormMessageInterceptor.cs +packages/CefSharp.WinForms.99.2.120/src/CefSharp.WinForms/IWinFormsChromiumWebBrowser.cs +packages/CefSharp.WinForms.99.2.120/src/CefSharp.WinForms/IWinFormsWebBrowser.cs +packages/CefSharp.WinForms.99.2.120/src/CefSharp.WinForms/obj/Release/net452/.NETFramework,Version=v4.5.2.AssemblyAttributes.cs +packages/CefSharp.WinForms.99.2.120/src/CefSharp.WinForms/obj/Release/net462/.NETFramework,Version=v4.6.2.AssemblyAttributes.cs +packages/CefSharp.WinForms.99.2.120/src/CefSharp.WinForms/Properties/AssemblyInfo.cs +packages/CefSharp.WinForms.99.2.120/src/CefSharp.WinForms/WebBrowserExtensions.cs +packages/envdte80.17.1.32210.191/.signature.p7s +packages/envdte80.17.1.32210.191/envdte80.17.1.32210.191.nupkg +packages/envdte80.17.1.32210.191/lib/net20/envdte80.dll +packages/envdte80.17.1.32210.191/lib/net20/envdte80.xml +packages/envdte80.17.1.32210.191/lib/net45/envdte80.dll +packages/envdte80.17.1.32210.191/lib/net45/envdte80.xml +packages/envdte80.17.1.32210.191/lib/net472/envdte80.dll +packages/envdte80.17.1.32210.191/lib/net472/envdte80.xml +packages/envdte80.17.1.32210.191/lib/netcoreapp3.1/envdte80.dll +packages/envdte80.17.1.32210.191/lib/netcoreapp3.1/envdte80.xml +packages/envdte80.17.1.32210.191/lib/netstandard2.0/envdte80.dll +packages/envdte80.17.1.32210.191/lib/netstandard2.0/envdte80.xml +packages/envdte80.17.1.32210.191/LICENSE.txt +packages/envdte80.17.1.32210.191/PackageIcon.png +packages/MessagePack.2.2.85/.signature.p7s +packages/MessagePack.2.2.85/lib/netcoreapp2.1/MessagePack.dll +packages/MessagePack.2.2.85/lib/netcoreapp2.1/MessagePack.xml +packages/MessagePack.2.2.85/lib/netstandard2.0/MessagePack.dll +packages/MessagePack.2.2.85/lib/netstandard2.0/MessagePack.xml +packages/MessagePack.2.2.85/LICENSE +packages/MessagePack.2.2.85/MessagePack.2.2.85.nupkg +packages/MessagePack.Annotations.2.2.85/.signature.p7s +packages/MessagePack.Annotations.2.2.85/lib/netstandard2.0/MessagePack.Annotations.dll +packages/MessagePack.Annotations.2.2.85/lib/netstandard2.0/MessagePack.Annotations.xml +packages/MessagePack.Annotations.2.2.85/LICENSE +packages/MessagePack.Annotations.2.2.85/MessagePack.Annotations.2.2.85.nupkg +packages/Microsoft.Bcl.AsyncInterfaces.6.0.0/.signature.p7s +packages/Microsoft.Bcl.AsyncInterfaces.6.0.0/Icon.png +packages/Microsoft.Bcl.AsyncInterfaces.6.0.0/lib/net461/Microsoft.Bcl.AsyncInterfaces.dll +packages/Microsoft.Bcl.AsyncInterfaces.6.0.0/lib/net461/Microsoft.Bcl.AsyncInterfaces.xml +packages/Microsoft.Bcl.AsyncInterfaces.6.0.0/lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.dll +packages/Microsoft.Bcl.AsyncInterfaces.6.0.0/lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.xml +packages/Microsoft.Bcl.AsyncInterfaces.6.0.0/lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll +packages/Microsoft.Bcl.AsyncInterfaces.6.0.0/lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.xml +packages/Microsoft.Bcl.AsyncInterfaces.6.0.0/LICENSE.TXT +packages/Microsoft.Bcl.AsyncInterfaces.6.0.0/Microsoft.Bcl.AsyncInterfaces.6.0.0.nupkg +packages/Microsoft.Bcl.AsyncInterfaces.6.0.0/THIRD-PARTY-NOTICES.TXT +packages/Microsoft.Bcl.AsyncInterfaces.6.0.0/useSharedDesignerContext.txt +packages/Microsoft.Build.Framework.16.5.0/.signature.p7s +packages/Microsoft.Build.Framework.16.5.0/lib/net472/Microsoft.Build.Framework.dll +packages/Microsoft.Build.Framework.16.5.0/lib/net472/Microsoft.Build.Framework.pdb +packages/Microsoft.Build.Framework.16.5.0/lib/net472/Microsoft.Build.Framework.xml +packages/Microsoft.Build.Framework.16.5.0/lib/netstandard2.0/Microsoft.Build.Framework.dll +packages/Microsoft.Build.Framework.16.5.0/lib/netstandard2.0/Microsoft.Build.Framework.pdb +packages/Microsoft.Build.Framework.16.5.0/lib/netstandard2.0/Microsoft.Build.Framework.xml +packages/Microsoft.Build.Framework.16.5.0/Microsoft.Build.Framework.16.5.0.nupkg +packages/Microsoft.Build.Framework.16.5.0/MSBuild-NuGet-Icon.png +packages/Microsoft.Build.Framework.16.5.0/notices/THIRDPARTYNOTICES.txt +packages/Microsoft.CodeAnalysis.BannedApiAnalyzers.3.3.2/.signature.p7s +packages/Microsoft.CodeAnalysis.BannedApiAnalyzers.3.3.2/analyzers/dotnet/cs/cs/Microsoft.CodeAnalysis.BannedApiAnalyzers.resources.dll +packages/Microsoft.CodeAnalysis.BannedApiAnalyzers.3.3.2/analyzers/dotnet/cs/de/Microsoft.CodeAnalysis.BannedApiAnalyzers.resources.dll +packages/Microsoft.CodeAnalysis.BannedApiAnalyzers.3.3.2/analyzers/dotnet/cs/es/Microsoft.CodeAnalysis.BannedApiAnalyzers.resources.dll +packages/Microsoft.CodeAnalysis.BannedApiAnalyzers.3.3.2/analyzers/dotnet/cs/fr/Microsoft.CodeAnalysis.BannedApiAnalyzers.resources.dll +packages/Microsoft.CodeAnalysis.BannedApiAnalyzers.3.3.2/analyzers/dotnet/cs/it/Microsoft.CodeAnalysis.BannedApiAnalyzers.resources.dll +packages/Microsoft.CodeAnalysis.BannedApiAnalyzers.3.3.2/analyzers/dotnet/cs/ja/Microsoft.CodeAnalysis.BannedApiAnalyzers.resources.dll +packages/Microsoft.CodeAnalysis.BannedApiAnalyzers.3.3.2/analyzers/dotnet/cs/ko/Microsoft.CodeAnalysis.BannedApiAnalyzers.resources.dll +packages/Microsoft.CodeAnalysis.BannedApiAnalyzers.3.3.2/analyzers/dotnet/cs/Microsoft.CodeAnalysis.BannedApiAnalyzers.dll +packages/Microsoft.CodeAnalysis.BannedApiAnalyzers.3.3.2/analyzers/dotnet/cs/Microsoft.CodeAnalysis.CSharp.BannedApiAnalyzers.dll +packages/Microsoft.CodeAnalysis.BannedApiAnalyzers.3.3.2/analyzers/dotnet/cs/pl/Microsoft.CodeAnalysis.BannedApiAnalyzers.resources.dll +packages/Microsoft.CodeAnalysis.BannedApiAnalyzers.3.3.2/analyzers/dotnet/cs/pt-BR/Microsoft.CodeAnalysis.BannedApiAnalyzers.resources.dll +packages/Microsoft.CodeAnalysis.BannedApiAnalyzers.3.3.2/analyzers/dotnet/cs/ru/Microsoft.CodeAnalysis.BannedApiAnalyzers.resources.dll +packages/Microsoft.CodeAnalysis.BannedApiAnalyzers.3.3.2/analyzers/dotnet/cs/tr/Microsoft.CodeAnalysis.BannedApiAnalyzers.resources.dll +packages/Microsoft.CodeAnalysis.BannedApiAnalyzers.3.3.2/analyzers/dotnet/cs/zh-Hans/Microsoft.CodeAnalysis.BannedApiAnalyzers.resources.dll +packages/Microsoft.CodeAnalysis.BannedApiAnalyzers.3.3.2/analyzers/dotnet/cs/zh-Hant/Microsoft.CodeAnalysis.BannedApiAnalyzers.resources.dll +packages/Microsoft.CodeAnalysis.BannedApiAnalyzers.3.3.2/analyzers/dotnet/vb/cs/Microsoft.CodeAnalysis.BannedApiAnalyzers.resources.dll +packages/Microsoft.CodeAnalysis.BannedApiAnalyzers.3.3.2/analyzers/dotnet/vb/de/Microsoft.CodeAnalysis.BannedApiAnalyzers.resources.dll +packages/Microsoft.CodeAnalysis.BannedApiAnalyzers.3.3.2/analyzers/dotnet/vb/es/Microsoft.CodeAnalysis.BannedApiAnalyzers.resources.dll +packages/Microsoft.CodeAnalysis.BannedApiAnalyzers.3.3.2/analyzers/dotnet/vb/fr/Microsoft.CodeAnalysis.BannedApiAnalyzers.resources.dll +packages/Microsoft.CodeAnalysis.BannedApiAnalyzers.3.3.2/analyzers/dotnet/vb/it/Microsoft.CodeAnalysis.BannedApiAnalyzers.resources.dll +packages/Microsoft.CodeAnalysis.BannedApiAnalyzers.3.3.2/analyzers/dotnet/vb/ja/Microsoft.CodeAnalysis.BannedApiAnalyzers.resources.dll +packages/Microsoft.CodeAnalysis.BannedApiAnalyzers.3.3.2/analyzers/dotnet/vb/ko/Microsoft.CodeAnalysis.BannedApiAnalyzers.resources.dll +packages/Microsoft.CodeAnalysis.BannedApiAnalyzers.3.3.2/analyzers/dotnet/vb/Microsoft.CodeAnalysis.BannedApiAnalyzers.dll +packages/Microsoft.CodeAnalysis.BannedApiAnalyzers.3.3.2/analyzers/dotnet/vb/Microsoft.CodeAnalysis.VisualBasic.BannedApiAnalyzers.dll +packages/Microsoft.CodeAnalysis.BannedApiAnalyzers.3.3.2/analyzers/dotnet/vb/pl/Microsoft.CodeAnalysis.BannedApiAnalyzers.resources.dll +packages/Microsoft.CodeAnalysis.BannedApiAnalyzers.3.3.2/analyzers/dotnet/vb/pt-BR/Microsoft.CodeAnalysis.BannedApiAnalyzers.resources.dll +packages/Microsoft.CodeAnalysis.BannedApiAnalyzers.3.3.2/analyzers/dotnet/vb/ru/Microsoft.CodeAnalysis.BannedApiAnalyzers.resources.dll +packages/Microsoft.CodeAnalysis.BannedApiAnalyzers.3.3.2/analyzers/dotnet/vb/tr/Microsoft.CodeAnalysis.BannedApiAnalyzers.resources.dll +packages/Microsoft.CodeAnalysis.BannedApiAnalyzers.3.3.2/analyzers/dotnet/vb/zh-Hans/Microsoft.CodeAnalysis.BannedApiAnalyzers.resources.dll +packages/Microsoft.CodeAnalysis.BannedApiAnalyzers.3.3.2/analyzers/dotnet/vb/zh-Hant/Microsoft.CodeAnalysis.BannedApiAnalyzers.resources.dll +packages/Microsoft.CodeAnalysis.BannedApiAnalyzers.3.3.2/build/config/AnalysisLevel_2_9_8_AllDisabledByDefault.editorconfig +packages/Microsoft.CodeAnalysis.BannedApiAnalyzers.3.3.2/build/config/AnalysisLevel_2_9_8_AllEnabledByDefault.editorconfig +packages/Microsoft.CodeAnalysis.BannedApiAnalyzers.3.3.2/build/config/AnalysisLevel_2_9_8_Default.editorconfig +packages/Microsoft.CodeAnalysis.BannedApiAnalyzers.3.3.2/build/Microsoft.CodeAnalysis.BannedApiAnalyzers.props +packages/Microsoft.CodeAnalysis.BannedApiAnalyzers.3.3.2/build/Microsoft.CodeAnalysis.BannedApiAnalyzers.targets +packages/Microsoft.CodeAnalysis.BannedApiAnalyzers.3.3.2/documentation/Analyzer Configuration.md +packages/Microsoft.CodeAnalysis.BannedApiAnalyzers.3.3.2/documentation/Microsoft.CodeAnalysis.BannedApiAnalyzers.md +packages/Microsoft.CodeAnalysis.BannedApiAnalyzers.3.3.2/documentation/Microsoft.CodeAnalysis.BannedApiAnalyzers.sarif +packages/Microsoft.CodeAnalysis.BannedApiAnalyzers.3.3.2/editorconfig/AllRulesDefault/.editorconfig +packages/Microsoft.CodeAnalysis.BannedApiAnalyzers.3.3.2/editorconfig/AllRulesDisabled/.editorconfig +packages/Microsoft.CodeAnalysis.BannedApiAnalyzers.3.3.2/editorconfig/AllRulesEnabled/.editorconfig +packages/Microsoft.CodeAnalysis.BannedApiAnalyzers.3.3.2/editorconfig/ApiDesignRulesDefault/.editorconfig +packages/Microsoft.CodeAnalysis.BannedApiAnalyzers.3.3.2/editorconfig/ApiDesignRulesEnabled/.editorconfig +packages/Microsoft.CodeAnalysis.BannedApiAnalyzers.3.3.2/editorconfig/DataflowRulesDefault/.editorconfig +packages/Microsoft.CodeAnalysis.BannedApiAnalyzers.3.3.2/editorconfig/DataflowRulesEnabled/.editorconfig +packages/Microsoft.CodeAnalysis.BannedApiAnalyzers.3.3.2/editorconfig/PortedFromFxCopRulesDefault/.editorconfig +packages/Microsoft.CodeAnalysis.BannedApiAnalyzers.3.3.2/editorconfig/PortedFromFxCopRulesEnabled/.editorconfig +packages/Microsoft.CodeAnalysis.BannedApiAnalyzers.3.3.2/EULA.rtf +packages/Microsoft.CodeAnalysis.BannedApiAnalyzers.3.3.2/Microsoft.CodeAnalysis.BannedApiAnalyzers.3.3.2.nupkg +packages/Microsoft.CodeAnalysis.BannedApiAnalyzers.3.3.2/rulesets/AllRulesDefault.ruleset +packages/Microsoft.CodeAnalysis.BannedApiAnalyzers.3.3.2/rulesets/AllRulesDisabled.ruleset +packages/Microsoft.CodeAnalysis.BannedApiAnalyzers.3.3.2/rulesets/AllRulesEnabled.ruleset +packages/Microsoft.CodeAnalysis.BannedApiAnalyzers.3.3.2/rulesets/ApiDesignRulesDefault.ruleset +packages/Microsoft.CodeAnalysis.BannedApiAnalyzers.3.3.2/rulesets/ApiDesignRulesEnabled.ruleset +packages/Microsoft.CodeAnalysis.BannedApiAnalyzers.3.3.2/rulesets/DataflowRulesDefault.ruleset +packages/Microsoft.CodeAnalysis.BannedApiAnalyzers.3.3.2/rulesets/DataflowRulesEnabled.ruleset +packages/Microsoft.CodeAnalysis.BannedApiAnalyzers.3.3.2/rulesets/PortedFromFxCopRulesDefault.ruleset +packages/Microsoft.CodeAnalysis.BannedApiAnalyzers.3.3.2/rulesets/PortedFromFxCopRulesEnabled.ruleset +packages/Microsoft.CodeAnalysis.BannedApiAnalyzers.3.3.2/ThirdPartyNotices.rtf +packages/Microsoft.CodeAnalysis.BannedApiAnalyzers.3.3.2/tools/install.ps1 +packages/Microsoft.CodeAnalysis.BannedApiAnalyzers.3.3.2/tools/uninstall.ps1 +packages/Microsoft.CSharp.4.7.0/.signature.p7s +packages/Microsoft.CSharp.4.7.0/lib/MonoAndroid10/_._ +packages/Microsoft.CSharp.4.7.0/lib/MonoTouch10/_._ +packages/Microsoft.CSharp.4.7.0/lib/net45/_._ +packages/Microsoft.CSharp.4.7.0/lib/netcore50/Microsoft.CSharp.dll +packages/Microsoft.CSharp.4.7.0/lib/netcoreapp2.0/_._ +packages/Microsoft.CSharp.4.7.0/lib/netstandard1.3/Microsoft.CSharp.dll +packages/Microsoft.CSharp.4.7.0/lib/netstandard2.0/Microsoft.CSharp.dll +packages/Microsoft.CSharp.4.7.0/lib/netstandard2.0/Microsoft.CSharp.xml +packages/Microsoft.CSharp.4.7.0/lib/portable-net45+win8+wp8+wpa81/_._ +packages/Microsoft.CSharp.4.7.0/lib/uap10.0.16299/_._ +packages/Microsoft.CSharp.4.7.0/lib/win8/_._ +packages/Microsoft.CSharp.4.7.0/lib/wp80/_._ +packages/Microsoft.CSharp.4.7.0/lib/wpa81/_._ +packages/Microsoft.CSharp.4.7.0/lib/xamarinios10/_._ +packages/Microsoft.CSharp.4.7.0/lib/xamarinmac20/_._ +packages/Microsoft.CSharp.4.7.0/lib/xamarintvos10/_._ +packages/Microsoft.CSharp.4.7.0/lib/xamarinwatchos10/_._ +packages/Microsoft.CSharp.4.7.0/LICENSE.TXT +packages/Microsoft.CSharp.4.7.0/Microsoft.CSharp.4.7.0.nupkg +packages/Microsoft.CSharp.4.7.0/ref/MonoAndroid10/_._ +packages/Microsoft.CSharp.4.7.0/ref/MonoTouch10/_._ +packages/Microsoft.CSharp.4.7.0/ref/net45/_._ +packages/Microsoft.CSharp.4.7.0/ref/netcore50/de/Microsoft.CSharp.xml +packages/Microsoft.CSharp.4.7.0/ref/netcore50/es/Microsoft.CSharp.xml +packages/Microsoft.CSharp.4.7.0/ref/netcore50/fr/Microsoft.CSharp.xml +packages/Microsoft.CSharp.4.7.0/ref/netcore50/it/Microsoft.CSharp.xml +packages/Microsoft.CSharp.4.7.0/ref/netcore50/ja/Microsoft.CSharp.xml +packages/Microsoft.CSharp.4.7.0/ref/netcore50/ko/Microsoft.CSharp.xml +packages/Microsoft.CSharp.4.7.0/ref/netcore50/Microsoft.CSharp.dll +packages/Microsoft.CSharp.4.7.0/ref/netcore50/Microsoft.CSharp.xml +packages/Microsoft.CSharp.4.7.0/ref/netcore50/ru/Microsoft.CSharp.xml +packages/Microsoft.CSharp.4.7.0/ref/netcore50/zh-hans/Microsoft.CSharp.xml +packages/Microsoft.CSharp.4.7.0/ref/netcore50/zh-hant/Microsoft.CSharp.xml +packages/Microsoft.CSharp.4.7.0/ref/netcoreapp2.0/_._ +packages/Microsoft.CSharp.4.7.0/ref/netstandard1.0/de/Microsoft.CSharp.xml +packages/Microsoft.CSharp.4.7.0/ref/netstandard1.0/es/Microsoft.CSharp.xml +packages/Microsoft.CSharp.4.7.0/ref/netstandard1.0/fr/Microsoft.CSharp.xml +packages/Microsoft.CSharp.4.7.0/ref/netstandard1.0/it/Microsoft.CSharp.xml +packages/Microsoft.CSharp.4.7.0/ref/netstandard1.0/ja/Microsoft.CSharp.xml +packages/Microsoft.CSharp.4.7.0/ref/netstandard1.0/ko/Microsoft.CSharp.xml +packages/Microsoft.CSharp.4.7.0/ref/netstandard1.0/Microsoft.CSharp.dll +packages/Microsoft.CSharp.4.7.0/ref/netstandard1.0/Microsoft.CSharp.xml +packages/Microsoft.CSharp.4.7.0/ref/netstandard1.0/ru/Microsoft.CSharp.xml +packages/Microsoft.CSharp.4.7.0/ref/netstandard1.0/zh-hans/Microsoft.CSharp.xml +packages/Microsoft.CSharp.4.7.0/ref/netstandard1.0/zh-hant/Microsoft.CSharp.xml +packages/Microsoft.CSharp.4.7.0/ref/netstandard2.0/Microsoft.CSharp.dll +packages/Microsoft.CSharp.4.7.0/ref/netstandard2.0/Microsoft.CSharp.xml +packages/Microsoft.CSharp.4.7.0/ref/portable-net45+win8+wp8+wpa81/_._ +packages/Microsoft.CSharp.4.7.0/ref/uap10.0.16299/_._ +packages/Microsoft.CSharp.4.7.0/ref/win8/_._ +packages/Microsoft.CSharp.4.7.0/ref/wp80/_._ +packages/Microsoft.CSharp.4.7.0/ref/wpa81/_._ +packages/Microsoft.CSharp.4.7.0/ref/xamarinios10/_._ +packages/Microsoft.CSharp.4.7.0/ref/xamarinmac20/_._ +packages/Microsoft.CSharp.4.7.0/ref/xamarintvos10/_._ +packages/Microsoft.CSharp.4.7.0/ref/xamarinwatchos10/_._ +packages/Microsoft.CSharp.4.7.0/THIRD-PARTY-NOTICES.TXT +packages/Microsoft.CSharp.4.7.0/useSharedDesignerContext.txt +packages/Microsoft.CSharp.4.7.0/version.txt +packages/Microsoft.ServiceHub.Analyzers.3.1.2036/.signature.p7s +packages/Microsoft.ServiceHub.Analyzers.3.1.2036/analyzers/cs/Microsoft.ServiceHub.Analyzers.resources.dll +packages/Microsoft.ServiceHub.Analyzers.3.1.2036/analyzers/de/Microsoft.ServiceHub.Analyzers.resources.dll +packages/Microsoft.ServiceHub.Analyzers.3.1.2036/analyzers/es/Microsoft.ServiceHub.Analyzers.resources.dll +packages/Microsoft.ServiceHub.Analyzers.3.1.2036/analyzers/fr/Microsoft.ServiceHub.Analyzers.resources.dll +packages/Microsoft.ServiceHub.Analyzers.3.1.2036/analyzers/it/Microsoft.ServiceHub.Analyzers.resources.dll +packages/Microsoft.ServiceHub.Analyzers.3.1.2036/analyzers/ja/Microsoft.ServiceHub.Analyzers.resources.dll +packages/Microsoft.ServiceHub.Analyzers.3.1.2036/analyzers/ko/Microsoft.ServiceHub.Analyzers.resources.dll +packages/Microsoft.ServiceHub.Analyzers.3.1.2036/analyzers/Microsoft.ServiceHub.Analyzers.dll +packages/Microsoft.ServiceHub.Analyzers.3.1.2036/analyzers/pl/Microsoft.ServiceHub.Analyzers.resources.dll +packages/Microsoft.ServiceHub.Analyzers.3.1.2036/analyzers/pt-BR/Microsoft.ServiceHub.Analyzers.resources.dll +packages/Microsoft.ServiceHub.Analyzers.3.1.2036/analyzers/ru/Microsoft.ServiceHub.Analyzers.resources.dll +packages/Microsoft.ServiceHub.Analyzers.3.1.2036/analyzers/tr/Microsoft.ServiceHub.Analyzers.resources.dll +packages/Microsoft.ServiceHub.Analyzers.3.1.2036/analyzers/zh-Hans/Microsoft.ServiceHub.Analyzers.resources.dll +packages/Microsoft.ServiceHub.Analyzers.3.1.2036/analyzers/zh-Hant/Microsoft.ServiceHub.Analyzers.resources.dll +packages/Microsoft.ServiceHub.Analyzers.3.1.2036/LICENSE.txt +packages/Microsoft.ServiceHub.Analyzers.3.1.2036/Microsoft.ServiceHub.Analyzers.3.1.2036.nupkg +packages/Microsoft.ServiceHub.Analyzers.3.1.2036/tools/install.ps1 +packages/Microsoft.ServiceHub.Analyzers.3.1.2036/tools/uninstall.ps1 +packages/Microsoft.ServiceHub.Client.3.1.2036/.signature.p7s +packages/Microsoft.ServiceHub.Client.3.1.2036/lib/net472/Microsoft.ServiceHub.Client.dll +packages/Microsoft.ServiceHub.Client.3.1.2036/lib/net472/Microsoft.ServiceHub.Client.xml +packages/Microsoft.ServiceHub.Client.3.1.2036/lib/netstandard2.0/Microsoft.ServiceHub.Client.dll +packages/Microsoft.ServiceHub.Client.3.1.2036/lib/netstandard2.0/Microsoft.ServiceHub.Client.xml +packages/Microsoft.ServiceHub.Client.3.1.2036/LICENSE.txt +packages/Microsoft.ServiceHub.Client.3.1.2036/Microsoft.ServiceHub.Client.3.1.2036.nupkg +packages/Microsoft.ServiceHub.Framework.3.1.2036/.signature.p7s +packages/Microsoft.ServiceHub.Framework.3.1.2036/lib/netstandard2.0/cs/Microsoft.ServiceHub.Framework.resources.dll +packages/Microsoft.ServiceHub.Framework.3.1.2036/lib/netstandard2.0/de/Microsoft.ServiceHub.Framework.resources.dll +packages/Microsoft.ServiceHub.Framework.3.1.2036/lib/netstandard2.0/es/Microsoft.ServiceHub.Framework.resources.dll +packages/Microsoft.ServiceHub.Framework.3.1.2036/lib/netstandard2.0/fr/Microsoft.ServiceHub.Framework.resources.dll +packages/Microsoft.ServiceHub.Framework.3.1.2036/lib/netstandard2.0/it/Microsoft.ServiceHub.Framework.resources.dll +packages/Microsoft.ServiceHub.Framework.3.1.2036/lib/netstandard2.0/ja/Microsoft.ServiceHub.Framework.resources.dll +packages/Microsoft.ServiceHub.Framework.3.1.2036/lib/netstandard2.0/ko/Microsoft.ServiceHub.Framework.resources.dll +packages/Microsoft.ServiceHub.Framework.3.1.2036/lib/netstandard2.0/Microsoft.ServiceHub.Framework.dll +packages/Microsoft.ServiceHub.Framework.3.1.2036/lib/netstandard2.0/Microsoft.ServiceHub.Framework.xml +packages/Microsoft.ServiceHub.Framework.3.1.2036/lib/netstandard2.0/pl/Microsoft.ServiceHub.Framework.resources.dll +packages/Microsoft.ServiceHub.Framework.3.1.2036/lib/netstandard2.0/pt-BR/Microsoft.ServiceHub.Framework.resources.dll +packages/Microsoft.ServiceHub.Framework.3.1.2036/lib/netstandard2.0/ru/Microsoft.ServiceHub.Framework.resources.dll +packages/Microsoft.ServiceHub.Framework.3.1.2036/lib/netstandard2.0/tr/Microsoft.ServiceHub.Framework.resources.dll +packages/Microsoft.ServiceHub.Framework.3.1.2036/lib/netstandard2.0/zh-Hans/Microsoft.ServiceHub.Framework.resources.dll +packages/Microsoft.ServiceHub.Framework.3.1.2036/lib/netstandard2.0/zh-Hant/Microsoft.ServiceHub.Framework.resources.dll +packages/Microsoft.ServiceHub.Framework.3.1.2036/LICENSE.txt +packages/Microsoft.ServiceHub.Framework.3.1.2036/Microsoft.ServiceHub.Framework.3.1.2036.nupkg +packages/Microsoft.ServiceHub.Resources.3.1.2036/.signature.p7s +packages/Microsoft.ServiceHub.Resources.3.1.2036/lib/net472/cs/Microsoft.ServiceHub.Resources.dll +packages/Microsoft.ServiceHub.Resources.3.1.2036/lib/net472/de/Microsoft.ServiceHub.Resources.dll +packages/Microsoft.ServiceHub.Resources.3.1.2036/lib/net472/es/Microsoft.ServiceHub.Resources.dll +packages/Microsoft.ServiceHub.Resources.3.1.2036/lib/net472/fr/Microsoft.ServiceHub.Resources.dll +packages/Microsoft.ServiceHub.Resources.3.1.2036/lib/net472/it/Microsoft.ServiceHub.Resources.dll +packages/Microsoft.ServiceHub.Resources.3.1.2036/lib/net472/ja/Microsoft.ServiceHub.Resources.dll +packages/Microsoft.ServiceHub.Resources.3.1.2036/lib/net472/ko/Microsoft.ServiceHub.Resources.dll +packages/Microsoft.ServiceHub.Resources.3.1.2036/lib/net472/Microsoft.ServiceHub.Resources.dll +packages/Microsoft.ServiceHub.Resources.3.1.2036/lib/net472/Microsoft.ServiceHub.Resources.xml +packages/Microsoft.ServiceHub.Resources.3.1.2036/lib/net472/pl/Microsoft.ServiceHub.Resources.dll +packages/Microsoft.ServiceHub.Resources.3.1.2036/lib/net472/pt-BR/Microsoft.ServiceHub.Resources.dll +packages/Microsoft.ServiceHub.Resources.3.1.2036/lib/net472/ru/Microsoft.ServiceHub.Resources.dll +packages/Microsoft.ServiceHub.Resources.3.1.2036/lib/net472/tr/Microsoft.ServiceHub.Resources.dll +packages/Microsoft.ServiceHub.Resources.3.1.2036/lib/net472/zh-Hans/Microsoft.ServiceHub.Resources.dll +packages/Microsoft.ServiceHub.Resources.3.1.2036/lib/net472/zh-Hant/Microsoft.ServiceHub.Resources.dll +packages/Microsoft.ServiceHub.Resources.3.1.2036/lib/netstandard2.0/cs/Microsoft.ServiceHub.Resources.dll +packages/Microsoft.ServiceHub.Resources.3.1.2036/lib/netstandard2.0/de/Microsoft.ServiceHub.Resources.dll +packages/Microsoft.ServiceHub.Resources.3.1.2036/lib/netstandard2.0/es/Microsoft.ServiceHub.Resources.dll +packages/Microsoft.ServiceHub.Resources.3.1.2036/lib/netstandard2.0/fr/Microsoft.ServiceHub.Resources.dll +packages/Microsoft.ServiceHub.Resources.3.1.2036/lib/netstandard2.0/it/Microsoft.ServiceHub.Resources.dll +packages/Microsoft.ServiceHub.Resources.3.1.2036/lib/netstandard2.0/ja/Microsoft.ServiceHub.Resources.dll +packages/Microsoft.ServiceHub.Resources.3.1.2036/lib/netstandard2.0/ko/Microsoft.ServiceHub.Resources.dll +packages/Microsoft.ServiceHub.Resources.3.1.2036/lib/netstandard2.0/Microsoft.ServiceHub.Resources.dll +packages/Microsoft.ServiceHub.Resources.3.1.2036/lib/netstandard2.0/Microsoft.ServiceHub.Resources.xml +packages/Microsoft.ServiceHub.Resources.3.1.2036/lib/netstandard2.0/pl/Microsoft.ServiceHub.Resources.dll +packages/Microsoft.ServiceHub.Resources.3.1.2036/lib/netstandard2.0/pt-BR/Microsoft.ServiceHub.Resources.dll +packages/Microsoft.ServiceHub.Resources.3.1.2036/lib/netstandard2.0/ru/Microsoft.ServiceHub.Resources.dll +packages/Microsoft.ServiceHub.Resources.3.1.2036/lib/netstandard2.0/tr/Microsoft.ServiceHub.Resources.dll +packages/Microsoft.ServiceHub.Resources.3.1.2036/lib/netstandard2.0/zh-Hans/Microsoft.ServiceHub.Resources.dll +packages/Microsoft.ServiceHub.Resources.3.1.2036/lib/netstandard2.0/zh-Hant/Microsoft.ServiceHub.Resources.dll +packages/Microsoft.ServiceHub.Resources.3.1.2036/LICENSE.txt +packages/Microsoft.ServiceHub.Resources.3.1.2036/Microsoft.ServiceHub.Resources.3.1.2036.nupkg +packages/Microsoft.VisualStudio.ComponentModelHost.17.1.386/.signature.p7s +packages/Microsoft.VisualStudio.ComponentModelHost.17.1.386/lib/net472/Microsoft.VisualStudio.ComponentModelHost.dll +packages/Microsoft.VisualStudio.ComponentModelHost.17.1.386/lib/net472/Microsoft.VisualStudio.ComponentModelHost.xml +packages/Microsoft.VisualStudio.ComponentModelHost.17.1.386/lib/netstandard2.0/Microsoft.VisualStudio.ComponentModelHost.dll +packages/Microsoft.VisualStudio.ComponentModelHost.17.1.386/lib/netstandard2.0/Microsoft.VisualStudio.ComponentModelHost.xml +packages/Microsoft.VisualStudio.ComponentModelHost.17.1.386/LICENSE.txt +packages/Microsoft.VisualStudio.ComponentModelHost.17.1.386/Microsoft.VisualStudio.ComponentModelHost.17.1.386.nupkg +packages/Microsoft.VisualStudio.ComponentModelHost.17.1.386/PackageIcon.png +packages/Microsoft.VisualStudio.CoreUtility.17.0.487/.signature.p7s +packages/Microsoft.VisualStudio.CoreUtility.17.0.487/lib/net472/Microsoft.VisualStudio.CoreUtility.dll +packages/Microsoft.VisualStudio.CoreUtility.17.0.487/lib/net472/Microsoft.VisualStudio.CoreUtility.xml +packages/Microsoft.VisualStudio.CoreUtility.17.0.487/lib/netstandard2.0/Microsoft.VisualStudio.CoreUtility.dll +packages/Microsoft.VisualStudio.CoreUtility.17.0.487/lib/netstandard2.0/Microsoft.VisualStudio.CoreUtility.xml +packages/Microsoft.VisualStudio.CoreUtility.17.0.487/LICENSE.txt +packages/Microsoft.VisualStudio.CoreUtility.17.0.487/Microsoft.VisualStudio.CoreUtility.17.0.487.nupkg +packages/Microsoft.VisualStudio.CoreUtility.17.0.487/PackageIcon.png +packages/Microsoft.VisualStudio.GraphModel.17.1.32210.191/.signature.p7s +packages/Microsoft.VisualStudio.GraphModel.17.1.32210.191/lib/net472/Microsoft.VisualStudio.GraphModel.dll +packages/Microsoft.VisualStudio.GraphModel.17.1.32210.191/lib/net472/Microsoft.VisualStudio.GraphModel.xml +packages/Microsoft.VisualStudio.GraphModel.17.1.32210.191/LICENSE.txt +packages/Microsoft.VisualStudio.GraphModel.17.1.32210.191/Microsoft.VisualStudio.GraphModel.17.1.32210.191.nupkg +packages/Microsoft.VisualStudio.GraphModel.17.1.32210.191/PackageIcon.png +packages/Microsoft.VisualStudio.ImageCatalog.17.1.32210.191/.signature.p7s +packages/Microsoft.VisualStudio.ImageCatalog.17.1.32210.191/lib/net472/en/Microsoft.VisualStudio.ImageCatalog.resources.dll +packages/Microsoft.VisualStudio.ImageCatalog.17.1.32210.191/lib/net472/Microsoft.VisualStudio.ImageCatalog.dll +packages/Microsoft.VisualStudio.ImageCatalog.17.1.32210.191/lib/netcoreapp3.1/en/Microsoft.VisualStudio.ImageCatalog.resources.dll +packages/Microsoft.VisualStudio.ImageCatalog.17.1.32210.191/lib/netcoreapp3.1/Microsoft.VisualStudio.ImageCatalog.dll +packages/Microsoft.VisualStudio.ImageCatalog.17.1.32210.191/lib/netstandard2.0/Microsoft.VisualStudio.ImageCatalog.dll +packages/Microsoft.VisualStudio.ImageCatalog.17.1.32210.191/LICENSE.txt +packages/Microsoft.VisualStudio.ImageCatalog.17.1.32210.191/Microsoft.VisualStudio.ImageCatalog.17.1.32210.191.nupkg +packages/Microsoft.VisualStudio.ImageCatalog.17.1.32210.191/PackageIcon.png +packages/Microsoft.VisualStudio.Imaging.14.3.25407/.signature.p7s +packages/Microsoft.VisualStudio.Imaging.14.3.25407/lib/net45/Microsoft.VisualStudio.Imaging.dll +packages/Microsoft.VisualStudio.Imaging.14.3.25407/lib/net45/microsoft.visualstudio.imaging.xml +packages/Microsoft.VisualStudio.Imaging.14.3.25407/Microsoft.VisualStudio.Imaging.14.3.25407.nupkg +packages/Microsoft.VisualStudio.Imaging.17.1.32210.191/.signature.p7s +packages/Microsoft.VisualStudio.Imaging.17.1.32210.191/lib/net472/en/Microsoft.VisualStudio.Imaging.resources.dll +packages/Microsoft.VisualStudio.Imaging.17.1.32210.191/lib/net472/Microsoft.VisualStudio.Imaging.dll +packages/Microsoft.VisualStudio.Imaging.17.1.32210.191/lib/net472/Microsoft.VisualStudio.Imaging.xml +packages/Microsoft.VisualStudio.Imaging.17.1.32210.191/LICENSE.txt +packages/Microsoft.VisualStudio.Imaging.17.1.32210.191/Microsoft.VisualStudio.Imaging.17.1.32210.191.nupkg +packages/Microsoft.VisualStudio.Imaging.17.1.32210.191/PackageIcon.png +packages/Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime.17.1.32210.191/.signature.p7s +packages/Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime.17.1.32210.191/lib/net20/Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime.dll +packages/Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime.17.1.32210.191/lib/net20/Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime.xml +packages/Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime.17.1.32210.191/lib/net45/Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime.dll +packages/Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime.17.1.32210.191/lib/net45/Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime.xml +packages/Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime.17.1.32210.191/lib/net472/Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime.dll +packages/Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime.17.1.32210.191/lib/net472/Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime.xml +packages/Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime.17.1.32210.191/lib/netstandard2.0/Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime.dll +packages/Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime.17.1.32210.191/lib/netstandard2.0/Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime.xml +packages/Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime.17.1.32210.191/LICENSE.txt +packages/Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime.17.1.32210.191/Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime.17.1.32210.191.nupkg +packages/Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime.17.1.32210.191/PackageIcon.png +packages/Microsoft.VisualStudio.Interop.17.1.32210.191/.signature.p7s +packages/Microsoft.VisualStudio.Interop.17.1.32210.191/lib/net20/Microsoft.VisualStudio.Interop.dll +packages/Microsoft.VisualStudio.Interop.17.1.32210.191/lib/net20/Microsoft.VisualStudio.Interop.xml +packages/Microsoft.VisualStudio.Interop.17.1.32210.191/lib/net45/Microsoft.VisualStudio.Interop.dll +packages/Microsoft.VisualStudio.Interop.17.1.32210.191/lib/net45/Microsoft.VisualStudio.Interop.xml +packages/Microsoft.VisualStudio.Interop.17.1.32210.191/lib/net472/Microsoft.VisualStudio.Interop.dll +packages/Microsoft.VisualStudio.Interop.17.1.32210.191/lib/net472/Microsoft.VisualStudio.Interop.xml +packages/Microsoft.VisualStudio.Interop.17.1.32210.191/lib/netcoreapp3.1/Microsoft.VisualStudio.Interop.dll +packages/Microsoft.VisualStudio.Interop.17.1.32210.191/lib/netcoreapp3.1/Microsoft.VisualStudio.Interop.xml +packages/Microsoft.VisualStudio.Interop.17.1.32210.191/lib/netstandard2.0/Microsoft.VisualStudio.Interop.dll +packages/Microsoft.VisualStudio.Interop.17.1.32210.191/lib/netstandard2.0/Microsoft.VisualStudio.Interop.xml +packages/Microsoft.VisualStudio.Interop.17.1.32210.191/LICENSE.txt +packages/Microsoft.VisualStudio.Interop.17.1.32210.191/Microsoft.VisualStudio.Interop.17.1.32210.191.nupkg +packages/Microsoft.VisualStudio.Interop.17.1.32210.191/PackageIcon.png +packages/Microsoft.VisualStudio.OLE.Interop.16.7.30328.74/.signature.p7s +packages/Microsoft.VisualStudio.OLE.Interop.16.7.30328.74/lib/net45/Microsoft.VisualStudio.OLE.Interop.dll +packages/Microsoft.VisualStudio.OLE.Interop.16.7.30328.74/lib/net45/Microsoft.VisualStudio.OLE.Interop.xml +packages/Microsoft.VisualStudio.OLE.Interop.16.7.30328.74/lib/netstandard2.0/Microsoft.VisualStudio.OLE.Interop.dll +packages/Microsoft.VisualStudio.OLE.Interop.16.7.30328.74/lib/netstandard2.0/Microsoft.VisualStudio.OLE.Interop.xml +packages/Microsoft.VisualStudio.OLE.Interop.16.7.30328.74/LICENSE.txt +packages/Microsoft.VisualStudio.OLE.Interop.16.7.30328.74/Microsoft.VisualStudio.OLE.Interop.16.7.30328.74.nupkg +packages/Microsoft.VisualStudio.OLE.Interop.16.7.30328.74/PackageIcon.png +packages/Microsoft.VisualStudio.OLE.Interop.7.10.6070/.signature.p7s +packages/Microsoft.VisualStudio.OLE.Interop.7.10.6070/lib/Microsoft.VisualStudio.OLE.Interop.dll +packages/Microsoft.VisualStudio.OLE.Interop.7.10.6070/lib/Microsoft.VisualStudio.OLE.Interop.xml +packages/Microsoft.VisualStudio.OLE.Interop.7.10.6070/Microsoft.VisualStudio.OLE.Interop.7.10.6070.nupkg +packages/Microsoft.VisualStudio.ProjectAggregator.17.1.32210.191/.signature.p7s +packages/Microsoft.VisualStudio.ProjectAggregator.17.1.32210.191/lib/net472/Microsoft.VisualStudio.ProjectAggregator.dll +packages/Microsoft.VisualStudio.ProjectAggregator.17.1.32210.191/lib/net472/Microsoft.VisualStudio.ProjectAggregator.xml +packages/Microsoft.VisualStudio.ProjectAggregator.17.1.32210.191/lib/netstandard2.0/Microsoft.VisualStudio.ProjectAggregator.dll +packages/Microsoft.VisualStudio.ProjectAggregator.17.1.32210.191/lib/netstandard2.0/Microsoft.VisualStudio.ProjectAggregator.xml +packages/Microsoft.VisualStudio.ProjectAggregator.17.1.32210.191/LICENSE.txt +packages/Microsoft.VisualStudio.ProjectAggregator.17.1.32210.191/Microsoft.VisualStudio.ProjectAggregator.17.1.32210.191.nupkg +packages/Microsoft.VisualStudio.ProjectAggregator.17.1.32210.191/PackageIcon.png +packages/Microsoft.VisualStudio.RemoteControl.16.3.44/.signature.p7s +packages/Microsoft.VisualStudio.RemoteControl.16.3.44/lib/net45/Microsoft.VisualStudio.RemoteControl.dll +packages/Microsoft.VisualStudio.RemoteControl.16.3.44/lib/net45/Microsoft.VisualStudio.RemoteControl.xml +packages/Microsoft.VisualStudio.RemoteControl.16.3.44/lib/netstandard2.0/Microsoft.VisualStudio.RemoteControl.dll +packages/Microsoft.VisualStudio.RemoteControl.16.3.44/lib/netstandard2.0/Microsoft.VisualStudio.RemoteControl.xml +packages/Microsoft.VisualStudio.RemoteControl.16.3.44/Microsoft.VisualStudio.RemoteControl.16.3.44.nupkg +packages/Microsoft.VisualStudio.RemoteControl.16.3.44/PackageIcon.png +packages/Microsoft.VisualStudio.RpcContracts.17.1.13/.signature.p7s +packages/Microsoft.VisualStudio.RpcContracts.17.1.13/lib/net5.0/Microsoft.VisualStudio.RpcContracts.dll +packages/Microsoft.VisualStudio.RpcContracts.17.1.13/lib/net5.0/Microsoft.VisualStudio.RpcContracts.xml +packages/Microsoft.VisualStudio.RpcContracts.17.1.13/lib/netstandard2.0/Microsoft.VisualStudio.RpcContracts.dll +packages/Microsoft.VisualStudio.RpcContracts.17.1.13/lib/netstandard2.0/Microsoft.VisualStudio.RpcContracts.xml +packages/Microsoft.VisualStudio.RpcContracts.17.1.13/LICENSE +packages/Microsoft.VisualStudio.RpcContracts.17.1.13/Microsoft.VisualStudio.RpcContracts.17.1.13.nupkg +packages/Microsoft.VisualStudio.RpcContracts.17.1.13/PackageIcon.png +packages/Microsoft.VisualStudio.SDK.Analyzers.16.10.10/.signature.p7s +packages/Microsoft.VisualStudio.SDK.Analyzers.16.10.10/analyzers/cs/Microsoft.VisualStudio.SDK.Analyzers.CodeFixes.dll +packages/Microsoft.VisualStudio.SDK.Analyzers.16.10.10/analyzers/cs/Microsoft.VisualStudio.SDK.Analyzers.CodeFixes.pdb +packages/Microsoft.VisualStudio.SDK.Analyzers.16.10.10/analyzers/cs/Microsoft.VisualStudio.SDK.Analyzers.dll +packages/Microsoft.VisualStudio.SDK.Analyzers.16.10.10/analyzers/cs/Microsoft.VisualStudio.SDK.Analyzers.pdb +packages/Microsoft.VisualStudio.SDK.Analyzers.16.10.10/build/AdditionalFiles/BannedSymbols.txt +packages/Microsoft.VisualStudio.SDK.Analyzers.16.10.10/build/AdditionalFiles/vs-threading.LegacyThreadSwitchingMembers.txt +packages/Microsoft.VisualStudio.SDK.Analyzers.16.10.10/build/AdditionalFiles/vs-threading.MainThreadAssertingMethods.txt +packages/Microsoft.VisualStudio.SDK.Analyzers.16.10.10/build/AdditionalFiles/vs-threading.MainThreadSwitchingMethods.txt +packages/Microsoft.VisualStudio.SDK.Analyzers.16.10.10/build/AdditionalFiles/vs-threading.MembersRequiringMainThread.txt +packages/Microsoft.VisualStudio.SDK.Analyzers.16.10.10/build/Microsoft.VisualStudio.SDK.Analyzers.targets +packages/Microsoft.VisualStudio.SDK.Analyzers.16.10.10/Microsoft.VisualStudio.SDK.Analyzers.16.10.10.nupkg +packages/Microsoft.VisualStudio.SDK.Analyzers.16.10.10/PackageIcon.png +packages/Microsoft.VisualStudio.SDK.Analyzers.16.10.10/tools/install.ps1 +packages/Microsoft.VisualStudio.SDK.Analyzers.16.10.10/tools/uninstall.ps1 +packages/Microsoft.VisualStudio.SDK.EmbedInteropTypes.15.0.9/.signature.p7s +packages/Microsoft.VisualStudio.SDK.EmbedInteropTypes.15.0.9/build/Microsoft.VisualStudio.SDK.EmbedInteropTypes.targets +packages/Microsoft.VisualStudio.SDK.EmbedInteropTypes.15.0.9/Microsoft.VisualStudio.SDK.EmbedInteropTypes.15.0.9.nupkg +packages/Microsoft.VisualStudio.Shell.14.0.14.3.25407/.signature.p7s +packages/Microsoft.VisualStudio.Shell.14.0.14.3.25407/lib/Microsoft.VisualStudio.Shell.14.0.dll +packages/Microsoft.VisualStudio.Shell.14.0.14.3.25407/lib/Microsoft.VisualStudio.Shell.14.0.xml +packages/Microsoft.VisualStudio.Shell.14.0.14.3.25407/Microsoft.VisualStudio.Shell.14.0.14.3.25407.nupkg +packages/Microsoft.VisualStudio.Shell.15.0.17.1.32210.191/.signature.p7s +packages/Microsoft.VisualStudio.Shell.15.0.17.1.32210.191/lib/net472/Microsoft.VisualStudio.Shell.15.0.dll +packages/Microsoft.VisualStudio.Shell.15.0.17.1.32210.191/lib/net472/Microsoft.VisualStudio.Shell.15.0.xml +packages/Microsoft.VisualStudio.Shell.15.0.17.1.32210.191/LICENSE.txt +packages/Microsoft.VisualStudio.Shell.15.0.17.1.32210.191/Microsoft.VisualStudio.Shell.15.0.17.1.32210.191.nupkg +packages/Microsoft.VisualStudio.Shell.15.0.17.1.32210.191/PackageIcon.png +packages/Microsoft.VisualStudio.Shell.Framework.17.1.32210.191/.signature.p7s +packages/Microsoft.VisualStudio.Shell.Framework.17.1.32210.191/lib/net472/Microsoft.VisualStudio.Shell.Framework.dll +packages/Microsoft.VisualStudio.Shell.Framework.17.1.32210.191/lib/net472/Microsoft.VisualStudio.Shell.Framework.xml +packages/Microsoft.VisualStudio.Shell.Framework.17.1.32210.191/LICENSE.txt +packages/Microsoft.VisualStudio.Shell.Framework.17.1.32210.191/Microsoft.VisualStudio.Shell.Framework.17.1.32210.191.nupkg +packages/Microsoft.VisualStudio.Shell.Framework.17.1.32210.191/PackageIcon.png +packages/Microsoft.VisualStudio.Shell.Immutable.10.0.10.0.30319/.signature.p7s +packages/Microsoft.VisualStudio.Shell.Immutable.10.0.10.0.30319/lib/net40/Microsoft.VisualStudio.Shell.Immutable.10.0.dll +packages/Microsoft.VisualStudio.Shell.Immutable.10.0.10.0.30319/lib/net40/Microsoft.VisualStudio.Shell.Immutable.10.0.xml +packages/Microsoft.VisualStudio.Shell.Immutable.10.0.10.0.30319/Microsoft.VisualStudio.Shell.Immutable.10.0.10.0.30319.nupkg +packages/Microsoft.VisualStudio.Shell.Immutable.11.0.11.0.50727/.signature.p7s +packages/Microsoft.VisualStudio.Shell.Immutable.11.0.11.0.50727/lib/net45/Microsoft.VisualStudio.Shell.Immutable.11.0.dll +packages/Microsoft.VisualStudio.Shell.Immutable.11.0.11.0.50727/lib/net45/Microsoft.VisualStudio.Shell.Immutable.11.0.xml +packages/Microsoft.VisualStudio.Shell.Immutable.11.0.11.0.50727/Microsoft.VisualStudio.Shell.Immutable.11.0.11.0.50727.nupkg +packages/Microsoft.VisualStudio.Shell.Immutable.12.0.12.0.21003/.signature.p7s +packages/Microsoft.VisualStudio.Shell.Immutable.12.0.12.0.21003/lib/net45/Microsoft.VisualStudio.Shell.Immutable.12.0.dll +packages/Microsoft.VisualStudio.Shell.Immutable.12.0.12.0.21003/lib/net45/Microsoft.VisualStudio.Shell.Immutable.12.0.xml +packages/Microsoft.VisualStudio.Shell.Immutable.12.0.12.0.21003/Microsoft.VisualStudio.Shell.Immutable.12.0.12.0.21003.nupkg +packages/Microsoft.VisualStudio.Shell.Immutable.14.0.14.3.25407/.signature.p7s +packages/Microsoft.VisualStudio.Shell.Immutable.14.0.14.3.25407/lib/net45/Microsoft.VisualStudio.Shell.Immutable.14.0.dll +packages/Microsoft.VisualStudio.Shell.Immutable.14.0.14.3.25407/lib/net45/microsoft.visualstudio.shell.immutable.14.0.xml +packages/Microsoft.VisualStudio.Shell.Immutable.14.0.14.3.25407/Microsoft.VisualStudio.Shell.Immutable.14.0.14.3.25407.nupkg +packages/Microsoft.VisualStudio.Shell.Interop.10.0.16.7.30328.74/.signature.p7s +packages/Microsoft.VisualStudio.Shell.Interop.10.0.16.7.30328.74/lib/net45/Microsoft.VisualStudio.Shell.Interop.10.0.dll +packages/Microsoft.VisualStudio.Shell.Interop.10.0.16.7.30328.74/lib/net45/Microsoft.VisualStudio.Shell.Interop.10.0.xml +packages/Microsoft.VisualStudio.Shell.Interop.10.0.16.7.30328.74/lib/netstandard2.0/Microsoft.VisualStudio.Shell.Interop.10.0.dll +packages/Microsoft.VisualStudio.Shell.Interop.10.0.16.7.30328.74/lib/netstandard2.0/Microsoft.VisualStudio.Shell.Interop.10.0.xml +packages/Microsoft.VisualStudio.Shell.Interop.10.0.16.7.30328.74/LICENSE.txt +packages/Microsoft.VisualStudio.Shell.Interop.10.0.16.7.30328.74/Microsoft.VisualStudio.Shell.Interop.10.0.16.7.30328.74.nupkg +packages/Microsoft.VisualStudio.Shell.Interop.10.0.16.7.30328.74/PackageIcon.png +packages/Microsoft.VisualStudio.Shell.Interop.11.0.16.7.30328.74/.signature.p7s +packages/Microsoft.VisualStudio.Shell.Interop.11.0.16.7.30328.74/lib/net45/Microsoft.VisualStudio.Shell.Interop.11.0.dll +packages/Microsoft.VisualStudio.Shell.Interop.11.0.16.7.30328.74/lib/net45/Microsoft.VisualStudio.Shell.Interop.11.0.xml +packages/Microsoft.VisualStudio.Shell.Interop.11.0.16.7.30328.74/lib/netstandard2.0/Microsoft.VisualStudio.Shell.Interop.11.0.dll +packages/Microsoft.VisualStudio.Shell.Interop.11.0.16.7.30328.74/lib/netstandard2.0/Microsoft.VisualStudio.Shell.Interop.11.0.xml +packages/Microsoft.VisualStudio.Shell.Interop.11.0.16.7.30328.74/LICENSE.txt +packages/Microsoft.VisualStudio.Shell.Interop.11.0.16.7.30328.74/Microsoft.VisualStudio.Shell.Interop.11.0.16.7.30328.74.nupkg +packages/Microsoft.VisualStudio.Shell.Interop.11.0.16.7.30328.74/PackageIcon.png +packages/Microsoft.VisualStudio.Shell.Interop.15.3.DesignTime.16.7.30328.74/.signature.p7s +packages/Microsoft.VisualStudio.Shell.Interop.15.3.DesignTime.16.7.30328.74/lib/net45/Microsoft.VisualStudio.Shell.Interop.15.3.DesignTime.dll +packages/Microsoft.VisualStudio.Shell.Interop.15.3.DesignTime.16.7.30328.74/lib/netstandard2.0/Microsoft.VisualStudio.Shell.Interop.15.3.DesignTime.dll +packages/Microsoft.VisualStudio.Shell.Interop.15.3.DesignTime.16.7.30328.74/LICENSE.txt +packages/Microsoft.VisualStudio.Shell.Interop.15.3.DesignTime.16.7.30328.74/Microsoft.VisualStudio.Shell.Interop.15.3.DesignTime.16.7.30328.74.nupkg +packages/Microsoft.VisualStudio.Shell.Interop.15.3.DesignTime.16.7.30328.74/PackageIcon.png +packages/Microsoft.VisualStudio.Shell.Interop.16.7.30328.74/.signature.p7s +packages/Microsoft.VisualStudio.Shell.Interop.16.7.30328.74/lib/net45/Microsoft.VisualStudio.Shell.Interop.dll +packages/Microsoft.VisualStudio.Shell.Interop.16.7.30328.74/lib/net45/Microsoft.VisualStudio.Shell.Interop.xml +packages/Microsoft.VisualStudio.Shell.Interop.16.7.30328.74/lib/netstandard2.0/Microsoft.VisualStudio.Shell.Interop.dll +packages/Microsoft.VisualStudio.Shell.Interop.16.7.30328.74/lib/netstandard2.0/Microsoft.VisualStudio.Shell.Interop.xml +packages/Microsoft.VisualStudio.Shell.Interop.16.7.30328.74/LICENSE.txt +packages/Microsoft.VisualStudio.Shell.Interop.16.7.30328.74/Microsoft.VisualStudio.Shell.Interop.16.7.30328.74.nupkg +packages/Microsoft.VisualStudio.Shell.Interop.16.7.30328.74/PackageIcon.png +packages/Microsoft.VisualStudio.Shell.Interop.7.10.6071/.signature.p7s +packages/Microsoft.VisualStudio.Shell.Interop.7.10.6071/lib/Microsoft.VisualStudio.Shell.Interop.dll +packages/Microsoft.VisualStudio.Shell.Interop.7.10.6071/lib/Microsoft.VisualStudio.Shell.Interop.xml +packages/Microsoft.VisualStudio.Shell.Interop.7.10.6071/Microsoft.VisualStudio.Shell.Interop.7.10.6071.nupkg +packages/Microsoft.VisualStudio.Shell.Interop.8.0.16.7.30328.74/.signature.p7s +packages/Microsoft.VisualStudio.Shell.Interop.8.0.16.7.30328.74/lib/net45/Microsoft.VisualStudio.Shell.Interop.8.0.dll +packages/Microsoft.VisualStudio.Shell.Interop.8.0.16.7.30328.74/lib/net45/Microsoft.VisualStudio.Shell.Interop.8.0.xml +packages/Microsoft.VisualStudio.Shell.Interop.8.0.16.7.30328.74/lib/netstandard2.0/Microsoft.VisualStudio.Shell.Interop.8.0.dll +packages/Microsoft.VisualStudio.Shell.Interop.8.0.16.7.30328.74/lib/netstandard2.0/Microsoft.VisualStudio.Shell.Interop.8.0.xml +packages/Microsoft.VisualStudio.Shell.Interop.8.0.16.7.30328.74/LICENSE.txt +packages/Microsoft.VisualStudio.Shell.Interop.8.0.16.7.30328.74/Microsoft.VisualStudio.Shell.Interop.8.0.16.7.30328.74.nupkg +packages/Microsoft.VisualStudio.Shell.Interop.8.0.16.7.30328.74/PackageIcon.png +packages/Microsoft.VisualStudio.Shell.Interop.8.0.8.0.50727/.signature.p7s +packages/Microsoft.VisualStudio.Shell.Interop.8.0.8.0.50727/lib/Microsoft.VisualStudio.Shell.Interop.8.0.dll +packages/Microsoft.VisualStudio.Shell.Interop.8.0.8.0.50727/lib/Microsoft.VisualStudio.Shell.Interop.8.0.xml +packages/Microsoft.VisualStudio.Shell.Interop.8.0.8.0.50727/Microsoft.VisualStudio.Shell.Interop.8.0.8.0.50727.nupkg +packages/Microsoft.VisualStudio.Shell.Interop.9.0.9.0.30729/.signature.p7s +packages/Microsoft.VisualStudio.Shell.Interop.9.0.9.0.30729/lib/Microsoft.VisualStudio.Shell.Interop.9.0.dll +packages/Microsoft.VisualStudio.Shell.Interop.9.0.9.0.30729/lib/Microsoft.VisualStudio.Shell.Interop.9.0.xml +packages/Microsoft.VisualStudio.Shell.Interop.9.0.9.0.30729/Microsoft.VisualStudio.Shell.Interop.9.0.9.0.30729.nupkg +packages/Microsoft.VisualStudio.Shell.Interop.9.0.9.0.30730/.signature.p7s +packages/Microsoft.VisualStudio.Shell.Interop.9.0.9.0.30730/lib/net11/Microsoft.VisualStudio.Shell.Interop.9.0.dll +packages/Microsoft.VisualStudio.Shell.Interop.9.0.9.0.30730/lib/net11/Microsoft.VisualStudio.Shell.Interop.9.0.xml +packages/Microsoft.VisualStudio.Shell.Interop.9.0.9.0.30730/Microsoft.VisualStudio.Shell.Interop.9.0.9.0.30730.nupkg +packages/Microsoft.VisualStudio.Telemetry.16.4.22/.signature.p7s +packages/Microsoft.VisualStudio.Telemetry.16.4.22/lib/net45/Microsoft.VisualStudio.Telemetry.dll +packages/Microsoft.VisualStudio.Telemetry.16.4.22/lib/net45/Microsoft.VisualStudio.Telemetry.xml +packages/Microsoft.VisualStudio.Telemetry.16.4.22/lib/netstandard2.0/Microsoft.VisualStudio.Telemetry.dll +packages/Microsoft.VisualStudio.Telemetry.16.4.22/lib/netstandard2.0/Microsoft.VisualStudio.Telemetry.xml +packages/Microsoft.VisualStudio.Telemetry.16.4.22/Microsoft.VisualStudio.Telemetry.16.4.22.nupkg +packages/Microsoft.VisualStudio.Telemetry.16.4.22/PackageIcon.png +packages/Microsoft.VisualStudio.Text.Data.17.0.487/.signature.p7s +packages/Microsoft.VisualStudio.Text.Data.17.0.487/lib/net472/Microsoft.VisualStudio.Text.Data.dll +packages/Microsoft.VisualStudio.Text.Data.17.0.487/lib/net472/Microsoft.VisualStudio.Text.Data.xml +packages/Microsoft.VisualStudio.Text.Data.17.0.487/lib/netstandard2.0/Microsoft.VisualStudio.Text.Data.dll +packages/Microsoft.VisualStudio.Text.Data.17.0.487/lib/netstandard2.0/Microsoft.VisualStudio.Text.Data.xml +packages/Microsoft.VisualStudio.Text.Data.17.0.487/LICENSE.txt +packages/Microsoft.VisualStudio.Text.Data.17.0.487/Microsoft.VisualStudio.Text.Data.17.0.487.nupkg +packages/Microsoft.VisualStudio.Text.Data.17.0.487/PackageIcon.png +packages/Microsoft.VisualStudio.TextManager.Interop.16.7.30328.74/.signature.p7s +packages/Microsoft.VisualStudio.TextManager.Interop.16.7.30328.74/lib/net45/Microsoft.VisualStudio.TextManager.Interop.dll +packages/Microsoft.VisualStudio.TextManager.Interop.16.7.30328.74/lib/net45/Microsoft.VisualStudio.TextManager.Interop.xml +packages/Microsoft.VisualStudio.TextManager.Interop.16.7.30328.74/lib/netstandard2.0/Microsoft.VisualStudio.TextManager.Interop.dll +packages/Microsoft.VisualStudio.TextManager.Interop.16.7.30328.74/lib/netstandard2.0/Microsoft.VisualStudio.TextManager.Interop.xml +packages/Microsoft.VisualStudio.TextManager.Interop.16.7.30328.74/LICENSE.txt +packages/Microsoft.VisualStudio.TextManager.Interop.16.7.30328.74/Microsoft.VisualStudio.TextManager.Interop.16.7.30328.74.nupkg +packages/Microsoft.VisualStudio.TextManager.Interop.16.7.30328.74/PackageIcon.png +packages/Microsoft.VisualStudio.TextManager.Interop.7.10.6070/.signature.p7s +packages/Microsoft.VisualStudio.TextManager.Interop.7.10.6070/lib/Microsoft.VisualStudio.TextManager.Interop.dll +packages/Microsoft.VisualStudio.TextManager.Interop.7.10.6070/lib/Microsoft.VisualStudio.TextManager.Interop.xml +packages/Microsoft.VisualStudio.TextManager.Interop.7.10.6070/Microsoft.VisualStudio.TextManager.Interop.7.10.6070.nupkg +packages/Microsoft.VisualStudio.TextManager.Interop.8.0.16.7.30328.74/.signature.p7s +packages/Microsoft.VisualStudio.TextManager.Interop.8.0.16.7.30328.74/lib/net45/Microsoft.VisualStudio.TextManager.Interop.8.0.dll +packages/Microsoft.VisualStudio.TextManager.Interop.8.0.16.7.30328.74/lib/net45/Microsoft.VisualStudio.TextManager.Interop.8.0.xml +packages/Microsoft.VisualStudio.TextManager.Interop.8.0.16.7.30328.74/lib/netstandard2.0/Microsoft.VisualStudio.TextManager.Interop.8.0.dll +packages/Microsoft.VisualStudio.TextManager.Interop.8.0.16.7.30328.74/lib/netstandard2.0/Microsoft.VisualStudio.TextManager.Interop.8.0.xml +packages/Microsoft.VisualStudio.TextManager.Interop.8.0.16.7.30328.74/LICENSE.txt +packages/Microsoft.VisualStudio.TextManager.Interop.8.0.16.7.30328.74/Microsoft.VisualStudio.TextManager.Interop.8.0.16.7.30328.74.nupkg +packages/Microsoft.VisualStudio.TextManager.Interop.8.0.16.7.30328.74/PackageIcon.png +packages/Microsoft.VisualStudio.TextManager.Interop.8.0.8.0.50727/.signature.p7s +packages/Microsoft.VisualStudio.TextManager.Interop.8.0.8.0.50727/lib/Microsoft.VisualStudio.TextManager.Interop.8.0.dll +packages/Microsoft.VisualStudio.TextManager.Interop.8.0.8.0.50727/lib/Microsoft.VisualStudio.TextManager.Interop.8.0.xml +packages/Microsoft.VisualStudio.TextManager.Interop.8.0.8.0.50727/Microsoft.VisualStudio.TextManager.Interop.8.0.8.0.50727.nupkg +packages/Microsoft.VisualStudio.Threading.14.1.111/.signature.p7s +packages/Microsoft.VisualStudio.Threading.14.1.111/lib/dotnet/Microsoft.VisualStudio.Threading.dll +packages/Microsoft.VisualStudio.Threading.14.1.111/lib/dotnet/Microsoft.VisualStudio.Threading.xml +packages/Microsoft.VisualStudio.Threading.14.1.111/lib/net45/Microsoft.VisualStudio.Threading.dll +packages/Microsoft.VisualStudio.Threading.14.1.111/lib/net45/Microsoft.VisualStudio.Threading.xml +packages/Microsoft.VisualStudio.Threading.14.1.111/lib/portable-net45+win+wpa81/Microsoft.VisualStudio.Threading.dll +packages/Microsoft.VisualStudio.Threading.14.1.111/lib/portable-net45+win+wpa81/Microsoft.VisualStudio.Threading.xml +packages/Microsoft.VisualStudio.Threading.14.1.111/Microsoft.VisualStudio.Threading.14.1.111.nupkg +packages/Microsoft.VisualStudio.Threading.17.1.46/.signature.p7s +packages/Microsoft.VisualStudio.Threading.17.1.46/lib/net472/cs/Microsoft.VisualStudio.Threading.resources.dll +packages/Microsoft.VisualStudio.Threading.17.1.46/lib/net472/de/Microsoft.VisualStudio.Threading.resources.dll +packages/Microsoft.VisualStudio.Threading.17.1.46/lib/net472/es/Microsoft.VisualStudio.Threading.resources.dll +packages/Microsoft.VisualStudio.Threading.17.1.46/lib/net472/fr/Microsoft.VisualStudio.Threading.resources.dll +packages/Microsoft.VisualStudio.Threading.17.1.46/lib/net472/it/Microsoft.VisualStudio.Threading.resources.dll +packages/Microsoft.VisualStudio.Threading.17.1.46/lib/net472/ja/Microsoft.VisualStudio.Threading.resources.dll +packages/Microsoft.VisualStudio.Threading.17.1.46/lib/net472/ko/Microsoft.VisualStudio.Threading.resources.dll +packages/Microsoft.VisualStudio.Threading.17.1.46/lib/net472/Microsoft.VisualStudio.Threading.dll +packages/Microsoft.VisualStudio.Threading.17.1.46/lib/net472/Microsoft.VisualStudio.Threading.xml +packages/Microsoft.VisualStudio.Threading.17.1.46/lib/net472/pl/Microsoft.VisualStudio.Threading.resources.dll +packages/Microsoft.VisualStudio.Threading.17.1.46/lib/net472/pt-BR/Microsoft.VisualStudio.Threading.resources.dll +packages/Microsoft.VisualStudio.Threading.17.1.46/lib/net472/ru/Microsoft.VisualStudio.Threading.resources.dll +packages/Microsoft.VisualStudio.Threading.17.1.46/lib/net472/tr/Microsoft.VisualStudio.Threading.resources.dll +packages/Microsoft.VisualStudio.Threading.17.1.46/lib/net472/zh-Hans/Microsoft.VisualStudio.Threading.resources.dll +packages/Microsoft.VisualStudio.Threading.17.1.46/lib/net472/zh-Hant/Microsoft.VisualStudio.Threading.resources.dll +packages/Microsoft.VisualStudio.Threading.17.1.46/lib/netcoreapp3.1/cs/Microsoft.VisualStudio.Threading.resources.dll +packages/Microsoft.VisualStudio.Threading.17.1.46/lib/netcoreapp3.1/de/Microsoft.VisualStudio.Threading.resources.dll +packages/Microsoft.VisualStudio.Threading.17.1.46/lib/netcoreapp3.1/es/Microsoft.VisualStudio.Threading.resources.dll +packages/Microsoft.VisualStudio.Threading.17.1.46/lib/netcoreapp3.1/fr/Microsoft.VisualStudio.Threading.resources.dll +packages/Microsoft.VisualStudio.Threading.17.1.46/lib/netcoreapp3.1/it/Microsoft.VisualStudio.Threading.resources.dll +packages/Microsoft.VisualStudio.Threading.17.1.46/lib/netcoreapp3.1/ja/Microsoft.VisualStudio.Threading.resources.dll +packages/Microsoft.VisualStudio.Threading.17.1.46/lib/netcoreapp3.1/ko/Microsoft.VisualStudio.Threading.resources.dll +packages/Microsoft.VisualStudio.Threading.17.1.46/lib/netcoreapp3.1/Microsoft.VisualStudio.Threading.dll +packages/Microsoft.VisualStudio.Threading.17.1.46/lib/netcoreapp3.1/Microsoft.VisualStudio.Threading.xml +packages/Microsoft.VisualStudio.Threading.17.1.46/lib/netcoreapp3.1/pl/Microsoft.VisualStudio.Threading.resources.dll +packages/Microsoft.VisualStudio.Threading.17.1.46/lib/netcoreapp3.1/pt-BR/Microsoft.VisualStudio.Threading.resources.dll +packages/Microsoft.VisualStudio.Threading.17.1.46/lib/netcoreapp3.1/ru/Microsoft.VisualStudio.Threading.resources.dll +packages/Microsoft.VisualStudio.Threading.17.1.46/lib/netcoreapp3.1/tr/Microsoft.VisualStudio.Threading.resources.dll +packages/Microsoft.VisualStudio.Threading.17.1.46/lib/netcoreapp3.1/zh-Hans/Microsoft.VisualStudio.Threading.resources.dll +packages/Microsoft.VisualStudio.Threading.17.1.46/lib/netcoreapp3.1/zh-Hant/Microsoft.VisualStudio.Threading.resources.dll +packages/Microsoft.VisualStudio.Threading.17.1.46/lib/netstandard2.0/cs/Microsoft.VisualStudio.Threading.resources.dll +packages/Microsoft.VisualStudio.Threading.17.1.46/lib/netstandard2.0/de/Microsoft.VisualStudio.Threading.resources.dll +packages/Microsoft.VisualStudio.Threading.17.1.46/lib/netstandard2.0/es/Microsoft.VisualStudio.Threading.resources.dll +packages/Microsoft.VisualStudio.Threading.17.1.46/lib/netstandard2.0/fr/Microsoft.VisualStudio.Threading.resources.dll +packages/Microsoft.VisualStudio.Threading.17.1.46/lib/netstandard2.0/it/Microsoft.VisualStudio.Threading.resources.dll +packages/Microsoft.VisualStudio.Threading.17.1.46/lib/netstandard2.0/ja/Microsoft.VisualStudio.Threading.resources.dll +packages/Microsoft.VisualStudio.Threading.17.1.46/lib/netstandard2.0/ko/Microsoft.VisualStudio.Threading.resources.dll +packages/Microsoft.VisualStudio.Threading.17.1.46/lib/netstandard2.0/Microsoft.VisualStudio.Threading.dll +packages/Microsoft.VisualStudio.Threading.17.1.46/lib/netstandard2.0/Microsoft.VisualStudio.Threading.xml +packages/Microsoft.VisualStudio.Threading.17.1.46/lib/netstandard2.0/pl/Microsoft.VisualStudio.Threading.resources.dll +packages/Microsoft.VisualStudio.Threading.17.1.46/lib/netstandard2.0/pt-BR/Microsoft.VisualStudio.Threading.resources.dll +packages/Microsoft.VisualStudio.Threading.17.1.46/lib/netstandard2.0/ru/Microsoft.VisualStudio.Threading.resources.dll +packages/Microsoft.VisualStudio.Threading.17.1.46/lib/netstandard2.0/tr/Microsoft.VisualStudio.Threading.resources.dll +packages/Microsoft.VisualStudio.Threading.17.1.46/lib/netstandard2.0/zh-Hans/Microsoft.VisualStudio.Threading.resources.dll +packages/Microsoft.VisualStudio.Threading.17.1.46/lib/netstandard2.0/zh-Hant/Microsoft.VisualStudio.Threading.resources.dll +packages/Microsoft.VisualStudio.Threading.17.1.46/Microsoft.VisualStudio.Threading.17.1.46.nupkg +packages/Microsoft.VisualStudio.Threading.17.1.46/PackageIcon.png +packages/Microsoft.VisualStudio.Threading.Analyzers.17.1.46/.signature.p7s +packages/Microsoft.VisualStudio.Threading.Analyzers.17.1.46/analyzers/cs/cs/Microsoft.VisualStudio.Threading.Analyzers.CodeFixes.resources.dll +packages/Microsoft.VisualStudio.Threading.Analyzers.17.1.46/analyzers/cs/de/Microsoft.VisualStudio.Threading.Analyzers.CodeFixes.resources.dll +packages/Microsoft.VisualStudio.Threading.Analyzers.17.1.46/analyzers/cs/es/Microsoft.VisualStudio.Threading.Analyzers.CodeFixes.resources.dll +packages/Microsoft.VisualStudio.Threading.Analyzers.17.1.46/analyzers/cs/fr/Microsoft.VisualStudio.Threading.Analyzers.CodeFixes.resources.dll +packages/Microsoft.VisualStudio.Threading.Analyzers.17.1.46/analyzers/cs/it/Microsoft.VisualStudio.Threading.Analyzers.CodeFixes.resources.dll +packages/Microsoft.VisualStudio.Threading.Analyzers.17.1.46/analyzers/cs/ja/Microsoft.VisualStudio.Threading.Analyzers.CodeFixes.resources.dll +packages/Microsoft.VisualStudio.Threading.Analyzers.17.1.46/analyzers/cs/ko/Microsoft.VisualStudio.Threading.Analyzers.CodeFixes.resources.dll +packages/Microsoft.VisualStudio.Threading.Analyzers.17.1.46/analyzers/cs/Microsoft.VisualStudio.Threading.Analyzers.CodeFixes.dll +packages/Microsoft.VisualStudio.Threading.Analyzers.17.1.46/analyzers/cs/Microsoft.VisualStudio.Threading.Analyzers.CSharp.dll +packages/Microsoft.VisualStudio.Threading.Analyzers.17.1.46/analyzers/cs/Microsoft.VisualStudio.Threading.Analyzers.dll +packages/Microsoft.VisualStudio.Threading.Analyzers.17.1.46/analyzers/cs/pl/Microsoft.VisualStudio.Threading.Analyzers.CodeFixes.resources.dll +packages/Microsoft.VisualStudio.Threading.Analyzers.17.1.46/analyzers/cs/pt-BR/Microsoft.VisualStudio.Threading.Analyzers.CodeFixes.resources.dll +packages/Microsoft.VisualStudio.Threading.Analyzers.17.1.46/analyzers/cs/ru/Microsoft.VisualStudio.Threading.Analyzers.CodeFixes.resources.dll +packages/Microsoft.VisualStudio.Threading.Analyzers.17.1.46/analyzers/cs/tr/Microsoft.VisualStudio.Threading.Analyzers.CodeFixes.resources.dll +packages/Microsoft.VisualStudio.Threading.Analyzers.17.1.46/analyzers/cs/zh-Hans/Microsoft.VisualStudio.Threading.Analyzers.CodeFixes.resources.dll +packages/Microsoft.VisualStudio.Threading.Analyzers.17.1.46/analyzers/cs/zh-Hant/Microsoft.VisualStudio.Threading.Analyzers.CodeFixes.resources.dll +packages/Microsoft.VisualStudio.Threading.Analyzers.17.1.46/analyzers/vb/cs/Microsoft.VisualStudio.Threading.Analyzers.CodeFixes.resources.dll +packages/Microsoft.VisualStudio.Threading.Analyzers.17.1.46/analyzers/vb/de/Microsoft.VisualStudio.Threading.Analyzers.CodeFixes.resources.dll +packages/Microsoft.VisualStudio.Threading.Analyzers.17.1.46/analyzers/vb/es/Microsoft.VisualStudio.Threading.Analyzers.CodeFixes.resources.dll +packages/Microsoft.VisualStudio.Threading.Analyzers.17.1.46/analyzers/vb/fr/Microsoft.VisualStudio.Threading.Analyzers.CodeFixes.resources.dll +packages/Microsoft.VisualStudio.Threading.Analyzers.17.1.46/analyzers/vb/it/Microsoft.VisualStudio.Threading.Analyzers.CodeFixes.resources.dll +packages/Microsoft.VisualStudio.Threading.Analyzers.17.1.46/analyzers/vb/ja/Microsoft.VisualStudio.Threading.Analyzers.CodeFixes.resources.dll +packages/Microsoft.VisualStudio.Threading.Analyzers.17.1.46/analyzers/vb/ko/Microsoft.VisualStudio.Threading.Analyzers.CodeFixes.resources.dll +packages/Microsoft.VisualStudio.Threading.Analyzers.17.1.46/analyzers/vb/Microsoft.VisualStudio.Threading.Analyzers.CodeFixes.dll +packages/Microsoft.VisualStudio.Threading.Analyzers.17.1.46/analyzers/vb/Microsoft.VisualStudio.Threading.Analyzers.dll +packages/Microsoft.VisualStudio.Threading.Analyzers.17.1.46/analyzers/vb/Microsoft.VisualStudio.Threading.Analyzers.VisualBasic.dll +packages/Microsoft.VisualStudio.Threading.Analyzers.17.1.46/analyzers/vb/pl/Microsoft.VisualStudio.Threading.Analyzers.CodeFixes.resources.dll +packages/Microsoft.VisualStudio.Threading.Analyzers.17.1.46/analyzers/vb/pt-BR/Microsoft.VisualStudio.Threading.Analyzers.CodeFixes.resources.dll +packages/Microsoft.VisualStudio.Threading.Analyzers.17.1.46/analyzers/vb/ru/Microsoft.VisualStudio.Threading.Analyzers.CodeFixes.resources.dll +packages/Microsoft.VisualStudio.Threading.Analyzers.17.1.46/analyzers/vb/tr/Microsoft.VisualStudio.Threading.Analyzers.CodeFixes.resources.dll +packages/Microsoft.VisualStudio.Threading.Analyzers.17.1.46/analyzers/vb/zh-Hans/Microsoft.VisualStudio.Threading.Analyzers.CodeFixes.resources.dll +packages/Microsoft.VisualStudio.Threading.Analyzers.17.1.46/analyzers/vb/zh-Hant/Microsoft.VisualStudio.Threading.Analyzers.CodeFixes.resources.dll +packages/Microsoft.VisualStudio.Threading.Analyzers.17.1.46/build/AdditionalFiles/vs-threading.LegacyThreadSwitchingMembers.txt +packages/Microsoft.VisualStudio.Threading.Analyzers.17.1.46/build/AdditionalFiles/vs-threading.MainThreadAssertingMethods.txt +packages/Microsoft.VisualStudio.Threading.Analyzers.17.1.46/build/AdditionalFiles/vs-threading.MainThreadSwitchingMethods.txt +packages/Microsoft.VisualStudio.Threading.Analyzers.17.1.46/build/AdditionalFiles/vs-threading.MembersRequiringMainThread.txt +packages/Microsoft.VisualStudio.Threading.Analyzers.17.1.46/build/Microsoft.VisualStudio.Threading.Analyzers.targets +packages/Microsoft.VisualStudio.Threading.Analyzers.17.1.46/Microsoft.VisualStudio.Threading.Analyzers.17.1.46.nupkg +packages/Microsoft.VisualStudio.Threading.Analyzers.17.1.46/PackageIcon.png +packages/Microsoft.VisualStudio.Threading.Analyzers.17.1.46/tools/install.ps1 +packages/Microsoft.VisualStudio.Threading.Analyzers.17.1.46/tools/uninstall.ps1 +packages/Microsoft.VisualStudio.Utilities.14.3.25407/.signature.p7s +packages/Microsoft.VisualStudio.Utilities.14.3.25407/lib/net45/Microsoft.VisualStudio.Utilities.dll +packages/Microsoft.VisualStudio.Utilities.14.3.25407/lib/net45/microsoft.visualstudio.utilities.xml +packages/Microsoft.VisualStudio.Utilities.14.3.25407/Microsoft.VisualStudio.Utilities.14.3.25407.nupkg +packages/Microsoft.VisualStudio.Utilities.17.1.32210.191/.signature.p7s +packages/Microsoft.VisualStudio.Utilities.17.1.32210.191/lib/net472/cs/Microsoft.VisualStudio.Utilities.resources.dll +packages/Microsoft.VisualStudio.Utilities.17.1.32210.191/lib/net472/de/Microsoft.VisualStudio.Utilities.resources.dll +packages/Microsoft.VisualStudio.Utilities.17.1.32210.191/lib/net472/en/Microsoft.VisualStudio.Utilities.resources.dll +packages/Microsoft.VisualStudio.Utilities.17.1.32210.191/lib/net472/es/Microsoft.VisualStudio.Utilities.resources.dll +packages/Microsoft.VisualStudio.Utilities.17.1.32210.191/lib/net472/fr/Microsoft.VisualStudio.Utilities.resources.dll +packages/Microsoft.VisualStudio.Utilities.17.1.32210.191/lib/net472/it/Microsoft.VisualStudio.Utilities.resources.dll +packages/Microsoft.VisualStudio.Utilities.17.1.32210.191/lib/net472/ja/Microsoft.VisualStudio.Utilities.resources.dll +packages/Microsoft.VisualStudio.Utilities.17.1.32210.191/lib/net472/ko/Microsoft.VisualStudio.Utilities.resources.dll +packages/Microsoft.VisualStudio.Utilities.17.1.32210.191/lib/net472/Microsoft.VisualStudio.Utilities.dll +packages/Microsoft.VisualStudio.Utilities.17.1.32210.191/lib/net472/Microsoft.VisualStudio.Utilities.xml +packages/Microsoft.VisualStudio.Utilities.17.1.32210.191/lib/net472/pl/Microsoft.VisualStudio.Utilities.resources.dll +packages/Microsoft.VisualStudio.Utilities.17.1.32210.191/lib/net472/pt/Microsoft.VisualStudio.Utilities.resources.dll +packages/Microsoft.VisualStudio.Utilities.17.1.32210.191/lib/net472/ru/Microsoft.VisualStudio.Utilities.resources.dll +packages/Microsoft.VisualStudio.Utilities.17.1.32210.191/lib/net472/tr/Microsoft.VisualStudio.Utilities.resources.dll +packages/Microsoft.VisualStudio.Utilities.17.1.32210.191/lib/net472/zh-Hans/Microsoft.VisualStudio.Utilities.resources.dll +packages/Microsoft.VisualStudio.Utilities.17.1.32210.191/lib/net472/zh-Hant/Microsoft.VisualStudio.Utilities.resources.dll +packages/Microsoft.VisualStudio.Utilities.17.1.32210.191/lib/netcoreapp3.1/cs/Microsoft.VisualStudio.Utilities.resources.dll +packages/Microsoft.VisualStudio.Utilities.17.1.32210.191/lib/netcoreapp3.1/de/Microsoft.VisualStudio.Utilities.resources.dll +packages/Microsoft.VisualStudio.Utilities.17.1.32210.191/lib/netcoreapp3.1/en/Microsoft.VisualStudio.Utilities.resources.dll +packages/Microsoft.VisualStudio.Utilities.17.1.32210.191/lib/netcoreapp3.1/es/Microsoft.VisualStudio.Utilities.resources.dll +packages/Microsoft.VisualStudio.Utilities.17.1.32210.191/lib/netcoreapp3.1/fr/Microsoft.VisualStudio.Utilities.resources.dll +packages/Microsoft.VisualStudio.Utilities.17.1.32210.191/lib/netcoreapp3.1/it/Microsoft.VisualStudio.Utilities.resources.dll +packages/Microsoft.VisualStudio.Utilities.17.1.32210.191/lib/netcoreapp3.1/ja/Microsoft.VisualStudio.Utilities.resources.dll +packages/Microsoft.VisualStudio.Utilities.17.1.32210.191/lib/netcoreapp3.1/ko/Microsoft.VisualStudio.Utilities.resources.dll +packages/Microsoft.VisualStudio.Utilities.17.1.32210.191/lib/netcoreapp3.1/Microsoft.VisualStudio.Utilities.dll +packages/Microsoft.VisualStudio.Utilities.17.1.32210.191/lib/netcoreapp3.1/Microsoft.VisualStudio.Utilities.xml +packages/Microsoft.VisualStudio.Utilities.17.1.32210.191/lib/netcoreapp3.1/pl/Microsoft.VisualStudio.Utilities.resources.dll +packages/Microsoft.VisualStudio.Utilities.17.1.32210.191/lib/netcoreapp3.1/pt/Microsoft.VisualStudio.Utilities.resources.dll +packages/Microsoft.VisualStudio.Utilities.17.1.32210.191/lib/netcoreapp3.1/ru/Microsoft.VisualStudio.Utilities.resources.dll +packages/Microsoft.VisualStudio.Utilities.17.1.32210.191/lib/netcoreapp3.1/tr/Microsoft.VisualStudio.Utilities.resources.dll +packages/Microsoft.VisualStudio.Utilities.17.1.32210.191/lib/netcoreapp3.1/zh-Hans/Microsoft.VisualStudio.Utilities.resources.dll +packages/Microsoft.VisualStudio.Utilities.17.1.32210.191/lib/netcoreapp3.1/zh-Hant/Microsoft.VisualStudio.Utilities.resources.dll +packages/Microsoft.VisualStudio.Utilities.17.1.32210.191/lib/netstandard2.0/cs/Microsoft.VisualStudio.Utilities.resources.dll +packages/Microsoft.VisualStudio.Utilities.17.1.32210.191/lib/netstandard2.0/de/Microsoft.VisualStudio.Utilities.resources.dll +packages/Microsoft.VisualStudio.Utilities.17.1.32210.191/lib/netstandard2.0/en/Microsoft.VisualStudio.Utilities.resources.dll +packages/Microsoft.VisualStudio.Utilities.17.1.32210.191/lib/netstandard2.0/es/Microsoft.VisualStudio.Utilities.resources.dll +packages/Microsoft.VisualStudio.Utilities.17.1.32210.191/lib/netstandard2.0/fr/Microsoft.VisualStudio.Utilities.resources.dll +packages/Microsoft.VisualStudio.Utilities.17.1.32210.191/lib/netstandard2.0/it/Microsoft.VisualStudio.Utilities.resources.dll +packages/Microsoft.VisualStudio.Utilities.17.1.32210.191/lib/netstandard2.0/ja/Microsoft.VisualStudio.Utilities.resources.dll +packages/Microsoft.VisualStudio.Utilities.17.1.32210.191/lib/netstandard2.0/ko/Microsoft.VisualStudio.Utilities.resources.dll +packages/Microsoft.VisualStudio.Utilities.17.1.32210.191/lib/netstandard2.0/Microsoft.VisualStudio.Utilities.dll +packages/Microsoft.VisualStudio.Utilities.17.1.32210.191/lib/netstandard2.0/Microsoft.VisualStudio.Utilities.xml +packages/Microsoft.VisualStudio.Utilities.17.1.32210.191/lib/netstandard2.0/pl/Microsoft.VisualStudio.Utilities.resources.dll +packages/Microsoft.VisualStudio.Utilities.17.1.32210.191/lib/netstandard2.0/pt/Microsoft.VisualStudio.Utilities.resources.dll +packages/Microsoft.VisualStudio.Utilities.17.1.32210.191/lib/netstandard2.0/ru/Microsoft.VisualStudio.Utilities.resources.dll +packages/Microsoft.VisualStudio.Utilities.17.1.32210.191/lib/netstandard2.0/tr/Microsoft.VisualStudio.Utilities.resources.dll +packages/Microsoft.VisualStudio.Utilities.17.1.32210.191/lib/netstandard2.0/zh-Hans/Microsoft.VisualStudio.Utilities.resources.dll +packages/Microsoft.VisualStudio.Utilities.17.1.32210.191/lib/netstandard2.0/zh-Hant/Microsoft.VisualStudio.Utilities.resources.dll +packages/Microsoft.VisualStudio.Utilities.17.1.32210.191/LICENSE.txt +packages/Microsoft.VisualStudio.Utilities.17.1.32210.191/Microsoft.VisualStudio.Utilities.17.1.32210.191.nupkg +packages/Microsoft.VisualStudio.Utilities.17.1.32210.191/PackageIcon.png +packages/Microsoft.VisualStudio.Utilities.Internal.16.3.36/.signature.p7s +packages/Microsoft.VisualStudio.Utilities.Internal.16.3.36/lib/net45/Microsoft.VisualStudio.Utilities.Internal.dll +packages/Microsoft.VisualStudio.Utilities.Internal.16.3.36/lib/net45/Microsoft.VisualStudio.Utilities.Internal.xml +packages/Microsoft.VisualStudio.Utilities.Internal.16.3.36/lib/netstandard2.0/Microsoft.VisualStudio.Utilities.Internal.dll +packages/Microsoft.VisualStudio.Utilities.Internal.16.3.36/lib/netstandard2.0/Microsoft.VisualStudio.Utilities.Internal.xml +packages/Microsoft.VisualStudio.Utilities.Internal.16.3.36/Microsoft.VisualStudio.Utilities.Internal.16.3.36.nupkg +packages/Microsoft.VisualStudio.Utilities.Internal.16.3.36/PackageIcon.png +packages/Microsoft.VisualStudio.Validation.14.1.111/.signature.p7s +packages/Microsoft.VisualStudio.Validation.14.1.111/lib/dotnet/Microsoft.VisualStudio.Validation.dll +packages/Microsoft.VisualStudio.Validation.14.1.111/lib/dotnet/Microsoft.VisualStudio.Validation.xml +packages/Microsoft.VisualStudio.Validation.14.1.111/lib/net45/Microsoft.VisualStudio.Validation.dll +packages/Microsoft.VisualStudio.Validation.14.1.111/lib/net45/Microsoft.VisualStudio.Validation.xml +packages/Microsoft.VisualStudio.Validation.14.1.111/lib/portable-net45+win+wpa81+wp80/Microsoft.VisualStudio.Validation.dll +packages/Microsoft.VisualStudio.Validation.14.1.111/lib/portable-net45+win+wpa81+wp80/Microsoft.VisualStudio.Validation.xml +packages/Microsoft.VisualStudio.Validation.14.1.111/Microsoft.VisualStudio.Validation.14.1.111.nupkg +packages/Microsoft.VisualStudio.Validation.14.1.111/README.txt +packages/Microsoft.VisualStudio.Validation.14.1.111/tools/2013/RequiresNotNull.snippet +packages/Microsoft.VisualStudio.Validation.14.1.111/tools/2013/RequiresNotNullOrEmpty.snippet +packages/Microsoft.VisualStudio.Validation.14.1.111/tools/2015/RequiresNotNull.snippet +packages/Microsoft.VisualStudio.Validation.14.1.111/tools/2015/RequiresNotNullOrEmpty.snippet +packages/Microsoft.VisualStudio.Validation.14.1.111/tools/install-snippets.cmd +packages/Microsoft.VisualStudio.Validation.14.1.111/tools/uninstall-snippets.cmd +packages/Microsoft.VisualStudio.Validation.17.0.43/.signature.p7s +packages/Microsoft.VisualStudio.Validation.17.0.43/lib/netstandard2.0/cs/Microsoft.VisualStudio.Validation.resources.dll +packages/Microsoft.VisualStudio.Validation.17.0.43/lib/netstandard2.0/de/Microsoft.VisualStudio.Validation.resources.dll +packages/Microsoft.VisualStudio.Validation.17.0.43/lib/netstandard2.0/es/Microsoft.VisualStudio.Validation.resources.dll +packages/Microsoft.VisualStudio.Validation.17.0.43/lib/netstandard2.0/fr/Microsoft.VisualStudio.Validation.resources.dll +packages/Microsoft.VisualStudio.Validation.17.0.43/lib/netstandard2.0/it/Microsoft.VisualStudio.Validation.resources.dll +packages/Microsoft.VisualStudio.Validation.17.0.43/lib/netstandard2.0/ja/Microsoft.VisualStudio.Validation.resources.dll +packages/Microsoft.VisualStudio.Validation.17.0.43/lib/netstandard2.0/ko/Microsoft.VisualStudio.Validation.resources.dll +packages/Microsoft.VisualStudio.Validation.17.0.43/lib/netstandard2.0/Microsoft.VisualStudio.Validation.dll +packages/Microsoft.VisualStudio.Validation.17.0.43/lib/netstandard2.0/Microsoft.VisualStudio.Validation.xml +packages/Microsoft.VisualStudio.Validation.17.0.43/lib/netstandard2.0/pl/Microsoft.VisualStudio.Validation.resources.dll +packages/Microsoft.VisualStudio.Validation.17.0.43/lib/netstandard2.0/pt-BR/Microsoft.VisualStudio.Validation.resources.dll +packages/Microsoft.VisualStudio.Validation.17.0.43/lib/netstandard2.0/ru/Microsoft.VisualStudio.Validation.resources.dll +packages/Microsoft.VisualStudio.Validation.17.0.43/lib/netstandard2.0/tr/Microsoft.VisualStudio.Validation.resources.dll +packages/Microsoft.VisualStudio.Validation.17.0.43/lib/netstandard2.0/zh-Hans/Microsoft.VisualStudio.Validation.resources.dll +packages/Microsoft.VisualStudio.Validation.17.0.43/lib/netstandard2.0/zh-Hant/Microsoft.VisualStudio.Validation.resources.dll +packages/Microsoft.VisualStudio.Validation.17.0.43/Microsoft.VisualStudio.Validation.17.0.43.nupkg +packages/Microsoft.VisualStudio.Validation.17.0.43/PackageIcon.png +packages/Microsoft.VisualStudio.Validation.17.0.43/README.md +packages/Microsoft.Win32.Registry.5.0.0/.signature.p7s +packages/Microsoft.Win32.Registry.5.0.0/Icon.png +packages/Microsoft.Win32.Registry.5.0.0/lib/net46/Microsoft.Win32.Registry.dll +packages/Microsoft.Win32.Registry.5.0.0/lib/net461/Microsoft.Win32.Registry.dll +packages/Microsoft.Win32.Registry.5.0.0/lib/net461/Microsoft.Win32.Registry.xml +packages/Microsoft.Win32.Registry.5.0.0/lib/netstandard1.3/Microsoft.Win32.Registry.dll +packages/Microsoft.Win32.Registry.5.0.0/lib/netstandard2.0/Microsoft.Win32.Registry.dll +packages/Microsoft.Win32.Registry.5.0.0/lib/netstandard2.0/Microsoft.Win32.Registry.xml +packages/Microsoft.Win32.Registry.5.0.0/LICENSE.TXT +packages/Microsoft.Win32.Registry.5.0.0/Microsoft.Win32.Registry.5.0.0.nupkg +packages/Microsoft.Win32.Registry.5.0.0/ref/net46/Microsoft.Win32.Registry.dll +packages/Microsoft.Win32.Registry.5.0.0/ref/net461/Microsoft.Win32.Registry.dll +packages/Microsoft.Win32.Registry.5.0.0/ref/net461/Microsoft.Win32.Registry.xml +packages/Microsoft.Win32.Registry.5.0.0/ref/netstandard1.3/de/Microsoft.Win32.Registry.xml +packages/Microsoft.Win32.Registry.5.0.0/ref/netstandard1.3/es/Microsoft.Win32.Registry.xml +packages/Microsoft.Win32.Registry.5.0.0/ref/netstandard1.3/fr/Microsoft.Win32.Registry.xml +packages/Microsoft.Win32.Registry.5.0.0/ref/netstandard1.3/it/Microsoft.Win32.Registry.xml +packages/Microsoft.Win32.Registry.5.0.0/ref/netstandard1.3/ja/Microsoft.Win32.Registry.xml +packages/Microsoft.Win32.Registry.5.0.0/ref/netstandard1.3/ko/Microsoft.Win32.Registry.xml +packages/Microsoft.Win32.Registry.5.0.0/ref/netstandard1.3/Microsoft.Win32.Registry.dll +packages/Microsoft.Win32.Registry.5.0.0/ref/netstandard1.3/Microsoft.Win32.Registry.xml +packages/Microsoft.Win32.Registry.5.0.0/ref/netstandard1.3/ru/Microsoft.Win32.Registry.xml +packages/Microsoft.Win32.Registry.5.0.0/ref/netstandard1.3/zh-hans/Microsoft.Win32.Registry.xml +packages/Microsoft.Win32.Registry.5.0.0/ref/netstandard1.3/zh-hant/Microsoft.Win32.Registry.xml +packages/Microsoft.Win32.Registry.5.0.0/ref/netstandard2.0/Microsoft.Win32.Registry.dll +packages/Microsoft.Win32.Registry.5.0.0/ref/netstandard2.0/Microsoft.Win32.Registry.xml +packages/Microsoft.Win32.Registry.5.0.0/runtimes/win/lib/net46/Microsoft.Win32.Registry.dll +packages/Microsoft.Win32.Registry.5.0.0/runtimes/win/lib/net461/Microsoft.Win32.Registry.dll +packages/Microsoft.Win32.Registry.5.0.0/runtimes/win/lib/net461/Microsoft.Win32.Registry.xml +packages/Microsoft.Win32.Registry.5.0.0/runtimes/win/lib/netstandard1.3/Microsoft.Win32.Registry.dll +packages/Microsoft.Win32.Registry.5.0.0/runtimes/win/lib/netstandard2.0/Microsoft.Win32.Registry.dll +packages/Microsoft.Win32.Registry.5.0.0/runtimes/win/lib/netstandard2.0/Microsoft.Win32.Registry.xml +packages/Microsoft.Win32.Registry.5.0.0/THIRD-PARTY-NOTICES.TXT +packages/Microsoft.Win32.Registry.5.0.0/useSharedDesignerContext.txt +packages/Microsoft.Win32.Registry.5.0.0/version.txt +packages/Nerdbank.Streams.2.6.81/.signature.p7s +packages/Nerdbank.Streams.2.6.81/lib/netcoreapp2.1/Nerdbank.Streams.dll +packages/Nerdbank.Streams.2.6.81/lib/netcoreapp2.1/Nerdbank.Streams.pdb +packages/Nerdbank.Streams.2.6.81/lib/netcoreapp2.1/Nerdbank.Streams.xml +packages/Nerdbank.Streams.2.6.81/lib/netcoreapp3.1/Nerdbank.Streams.dll +packages/Nerdbank.Streams.2.6.81/lib/netcoreapp3.1/Nerdbank.Streams.pdb +packages/Nerdbank.Streams.2.6.81/lib/netcoreapp3.1/Nerdbank.Streams.xml +packages/Nerdbank.Streams.2.6.81/lib/netstandard2.0/Nerdbank.Streams.dll +packages/Nerdbank.Streams.2.6.81/lib/netstandard2.0/Nerdbank.Streams.pdb +packages/Nerdbank.Streams.2.6.81/lib/netstandard2.0/Nerdbank.Streams.xml +packages/Nerdbank.Streams.2.6.81/Nerdbank.Streams.2.6.81.nupkg +packages/Newtonsoft.Json.13.0.1/.signature.p7s +packages/Newtonsoft.Json.13.0.1/lib/net20/Newtonsoft.Json.dll +packages/Newtonsoft.Json.13.0.1/lib/net20/Newtonsoft.Json.xml +packages/Newtonsoft.Json.13.0.1/lib/net35/Newtonsoft.Json.dll +packages/Newtonsoft.Json.13.0.1/lib/net35/Newtonsoft.Json.xml +packages/Newtonsoft.Json.13.0.1/lib/net40/Newtonsoft.Json.dll +packages/Newtonsoft.Json.13.0.1/lib/net40/Newtonsoft.Json.xml +packages/Newtonsoft.Json.13.0.1/lib/net45/Newtonsoft.Json.dll +packages/Newtonsoft.Json.13.0.1/lib/net45/Newtonsoft.Json.xml +packages/Newtonsoft.Json.13.0.1/lib/netstandard1.0/Newtonsoft.Json.dll +packages/Newtonsoft.Json.13.0.1/lib/netstandard1.0/Newtonsoft.Json.xml +packages/Newtonsoft.Json.13.0.1/lib/netstandard1.3/Newtonsoft.Json.dll +packages/Newtonsoft.Json.13.0.1/lib/netstandard1.3/Newtonsoft.Json.xml +packages/Newtonsoft.Json.13.0.1/lib/netstandard2.0/Newtonsoft.Json.dll +packages/Newtonsoft.Json.13.0.1/lib/netstandard2.0/Newtonsoft.Json.xml +packages/Newtonsoft.Json.13.0.1/LICENSE.md +packages/Newtonsoft.Json.13.0.1/Newtonsoft.Json.13.0.1.nupkg +packages/Newtonsoft.Json.13.0.1/packageIcon.png +packages/StreamJsonRpc.2.8.28/.signature.p7s +packages/StreamJsonRpc.2.8.28/lib/netcoreapp2.1/cs/StreamJsonRpc.resources.dll +packages/StreamJsonRpc.2.8.28/lib/netcoreapp2.1/de/StreamJsonRpc.resources.dll +packages/StreamJsonRpc.2.8.28/lib/netcoreapp2.1/es/StreamJsonRpc.resources.dll +packages/StreamJsonRpc.2.8.28/lib/netcoreapp2.1/fr/StreamJsonRpc.resources.dll +packages/StreamJsonRpc.2.8.28/lib/netcoreapp2.1/it/StreamJsonRpc.resources.dll +packages/StreamJsonRpc.2.8.28/lib/netcoreapp2.1/ja/StreamJsonRpc.resources.dll +packages/StreamJsonRpc.2.8.28/lib/netcoreapp2.1/ko/StreamJsonRpc.resources.dll +packages/StreamJsonRpc.2.8.28/lib/netcoreapp2.1/pl/StreamJsonRpc.resources.dll +packages/StreamJsonRpc.2.8.28/lib/netcoreapp2.1/pt-BR/StreamJsonRpc.resources.dll +packages/StreamJsonRpc.2.8.28/lib/netcoreapp2.1/ru/StreamJsonRpc.resources.dll +packages/StreamJsonRpc.2.8.28/lib/netcoreapp2.1/StreamJsonRpc.dll +packages/StreamJsonRpc.2.8.28/lib/netcoreapp2.1/StreamJsonRpc.xml +packages/StreamJsonRpc.2.8.28/lib/netcoreapp2.1/tr/StreamJsonRpc.resources.dll +packages/StreamJsonRpc.2.8.28/lib/netcoreapp2.1/zh-Hans/StreamJsonRpc.resources.dll +packages/StreamJsonRpc.2.8.28/lib/netcoreapp2.1/zh-Hant/StreamJsonRpc.resources.dll +packages/StreamJsonRpc.2.8.28/lib/netstandard2.0/cs/StreamJsonRpc.resources.dll +packages/StreamJsonRpc.2.8.28/lib/netstandard2.0/de/StreamJsonRpc.resources.dll +packages/StreamJsonRpc.2.8.28/lib/netstandard2.0/es/StreamJsonRpc.resources.dll +packages/StreamJsonRpc.2.8.28/lib/netstandard2.0/fr/StreamJsonRpc.resources.dll +packages/StreamJsonRpc.2.8.28/lib/netstandard2.0/it/StreamJsonRpc.resources.dll +packages/StreamJsonRpc.2.8.28/lib/netstandard2.0/ja/StreamJsonRpc.resources.dll +packages/StreamJsonRpc.2.8.28/lib/netstandard2.0/ko/StreamJsonRpc.resources.dll +packages/StreamJsonRpc.2.8.28/lib/netstandard2.0/pl/StreamJsonRpc.resources.dll +packages/StreamJsonRpc.2.8.28/lib/netstandard2.0/pt-BR/StreamJsonRpc.resources.dll +packages/StreamJsonRpc.2.8.28/lib/netstandard2.0/ru/StreamJsonRpc.resources.dll +packages/StreamJsonRpc.2.8.28/lib/netstandard2.0/StreamJsonRpc.dll +packages/StreamJsonRpc.2.8.28/lib/netstandard2.0/StreamJsonRpc.xml +packages/StreamJsonRpc.2.8.28/lib/netstandard2.0/tr/StreamJsonRpc.resources.dll +packages/StreamJsonRpc.2.8.28/lib/netstandard2.0/zh-Hans/StreamJsonRpc.resources.dll +packages/StreamJsonRpc.2.8.28/lib/netstandard2.0/zh-Hant/StreamJsonRpc.resources.dll +packages/StreamJsonRpc.2.8.28/PackageIcon.png +packages/StreamJsonRpc.2.8.28/StreamJsonRpc.2.8.28.nupkg +packages/System.Buffers.4.5.1/.signature.p7s +packages/System.Buffers.4.5.1/lib/net461/System.Buffers.dll +packages/System.Buffers.4.5.1/lib/net461/System.Buffers.xml +packages/System.Buffers.4.5.1/lib/netcoreapp2.0/_._ +packages/System.Buffers.4.5.1/lib/netstandard1.1/System.Buffers.dll +packages/System.Buffers.4.5.1/lib/netstandard1.1/System.Buffers.xml +packages/System.Buffers.4.5.1/lib/netstandard2.0/System.Buffers.dll +packages/System.Buffers.4.5.1/lib/netstandard2.0/System.Buffers.xml +packages/System.Buffers.4.5.1/lib/uap10.0.16299/_._ +packages/System.Buffers.4.5.1/LICENSE.TXT +packages/System.Buffers.4.5.1/ref/net45/System.Buffers.dll +packages/System.Buffers.4.5.1/ref/net45/System.Buffers.xml +packages/System.Buffers.4.5.1/ref/netcoreapp2.0/_._ +packages/System.Buffers.4.5.1/ref/netstandard1.1/System.Buffers.dll +packages/System.Buffers.4.5.1/ref/netstandard1.1/System.Buffers.xml +packages/System.Buffers.4.5.1/ref/netstandard2.0/System.Buffers.dll +packages/System.Buffers.4.5.1/ref/netstandard2.0/System.Buffers.xml +packages/System.Buffers.4.5.1/ref/uap10.0.16299/_._ +packages/System.Buffers.4.5.1/System.Buffers.4.5.1.nupkg +packages/System.Buffers.4.5.1/THIRD-PARTY-NOTICES.TXT +packages/System.Buffers.4.5.1/useSharedDesignerContext.txt +packages/System.Buffers.4.5.1/version.txt +packages/System.Collections.Immutable.5.0.0/.signature.p7s +packages/System.Collections.Immutable.5.0.0/Icon.png +packages/System.Collections.Immutable.5.0.0/lib/net461/System.Collections.Immutable.dll +packages/System.Collections.Immutable.5.0.0/lib/net461/System.Collections.Immutable.xml +packages/System.Collections.Immutable.5.0.0/lib/netstandard1.0/System.Collections.Immutable.dll +packages/System.Collections.Immutable.5.0.0/lib/netstandard1.0/System.Collections.Immutable.xml +packages/System.Collections.Immutable.5.0.0/lib/netstandard1.3/System.Collections.Immutable.dll +packages/System.Collections.Immutable.5.0.0/lib/netstandard1.3/System.Collections.Immutable.xml +packages/System.Collections.Immutable.5.0.0/lib/netstandard2.0/System.Collections.Immutable.dll +packages/System.Collections.Immutable.5.0.0/lib/netstandard2.0/System.Collections.Immutable.xml +packages/System.Collections.Immutable.5.0.0/lib/portable-net45+win8+wp8+wpa81/System.Collections.Immutable.dll +packages/System.Collections.Immutable.5.0.0/lib/portable-net45+win8+wp8+wpa81/System.Collections.Immutable.xml +packages/System.Collections.Immutable.5.0.0/LICENSE.TXT +packages/System.Collections.Immutable.5.0.0/System.Collections.Immutable.5.0.0.nupkg +packages/System.Collections.Immutable.5.0.0/THIRD-PARTY-NOTICES.TXT +packages/System.Collections.Immutable.5.0.0/useSharedDesignerContext.txt +packages/System.Collections.Immutable.5.0.0/version.txt +packages/System.ComponentModel.Composition.6.0.0/.signature.p7s +packages/System.ComponentModel.Composition.6.0.0/buildTransitive/netcoreapp2.0/System.ComponentModel.Composition.targets +packages/System.ComponentModel.Composition.6.0.0/buildTransitive/netcoreapp3.1/_._ +packages/System.ComponentModel.Composition.6.0.0/Icon.png +packages/System.ComponentModel.Composition.6.0.0/lib/net461/_._ +packages/System.ComponentModel.Composition.6.0.0/lib/net6.0/System.ComponentModel.Composition.dll +packages/System.ComponentModel.Composition.6.0.0/lib/net6.0/System.ComponentModel.Composition.xml +packages/System.ComponentModel.Composition.6.0.0/lib/netcoreapp3.1/System.ComponentModel.Composition.dll +packages/System.ComponentModel.Composition.6.0.0/lib/netcoreapp3.1/System.ComponentModel.Composition.xml +packages/System.ComponentModel.Composition.6.0.0/lib/netstandard2.0/System.ComponentModel.Composition.dll +packages/System.ComponentModel.Composition.6.0.0/lib/netstandard2.0/System.ComponentModel.Composition.xml +packages/System.ComponentModel.Composition.6.0.0/LICENSE.TXT +packages/System.ComponentModel.Composition.6.0.0/System.ComponentModel.Composition.6.0.0.nupkg +packages/System.ComponentModel.Composition.6.0.0/THIRD-PARTY-NOTICES.TXT +packages/System.ComponentModel.Composition.6.0.0/useSharedDesignerContext.txt +packages/System.Diagnostics.DiagnosticSource.5.0.1/.signature.p7s +packages/System.Diagnostics.DiagnosticSource.5.0.1/Icon.png +packages/System.Diagnostics.DiagnosticSource.5.0.1/lib/net45/System.Diagnostics.DiagnosticSource.dll +packages/System.Diagnostics.DiagnosticSource.5.0.1/lib/net45/System.Diagnostics.DiagnosticSource.xml +packages/System.Diagnostics.DiagnosticSource.5.0.1/lib/net46/System.Diagnostics.DiagnosticSource.dll +packages/System.Diagnostics.DiagnosticSource.5.0.1/lib/net46/System.Diagnostics.DiagnosticSource.xml +packages/System.Diagnostics.DiagnosticSource.5.0.1/lib/net5.0/System.Diagnostics.DiagnosticSource.dll +packages/System.Diagnostics.DiagnosticSource.5.0.1/lib/net5.0/System.Diagnostics.DiagnosticSource.xml +packages/System.Diagnostics.DiagnosticSource.5.0.1/lib/netstandard1.1/System.Diagnostics.DiagnosticSource.dll +packages/System.Diagnostics.DiagnosticSource.5.0.1/lib/netstandard1.1/System.Diagnostics.DiagnosticSource.xml +packages/System.Diagnostics.DiagnosticSource.5.0.1/lib/netstandard1.3/System.Diagnostics.DiagnosticSource.dll +packages/System.Diagnostics.DiagnosticSource.5.0.1/lib/netstandard1.3/System.Diagnostics.DiagnosticSource.xml +packages/System.Diagnostics.DiagnosticSource.5.0.1/lib/portable-net45+win8+wpa81/System.Diagnostics.DiagnosticSource.dll +packages/System.Diagnostics.DiagnosticSource.5.0.1/lib/portable-net45+win8+wpa81/System.Diagnostics.DiagnosticSource.xml +packages/System.Diagnostics.DiagnosticSource.5.0.1/LICENSE.TXT +packages/System.Diagnostics.DiagnosticSource.5.0.1/System.Diagnostics.DiagnosticSource.5.0.1.nupkg +packages/System.Diagnostics.DiagnosticSource.5.0.1/THIRD-PARTY-NOTICES.TXT +packages/System.Diagnostics.DiagnosticSource.5.0.1/useSharedDesignerContext.txt +packages/System.Diagnostics.DiagnosticSource.5.0.1/version.txt +packages/System.IO.4.3.0/.signature.p7s +packages/System.IO.4.3.0/dotnet_library_license.txt +packages/System.IO.4.3.0/lib/MonoAndroid10/_._ +packages/System.IO.4.3.0/lib/MonoTouch10/_._ +packages/System.IO.4.3.0/lib/net45/_._ +packages/System.IO.4.3.0/lib/net462/System.IO.dll +packages/System.IO.4.3.0/lib/portable-net45+win8+wp8+wpa81/_._ +packages/System.IO.4.3.0/lib/win8/_._ +packages/System.IO.4.3.0/lib/wp80/_._ +packages/System.IO.4.3.0/lib/wpa81/_._ +packages/System.IO.4.3.0/lib/xamarinios10/_._ +packages/System.IO.4.3.0/lib/xamarinmac20/_._ +packages/System.IO.4.3.0/lib/xamarintvos10/_._ +packages/System.IO.4.3.0/lib/xamarinwatchos10/_._ +packages/System.IO.4.3.0/ref/MonoAndroid10/_._ +packages/System.IO.4.3.0/ref/MonoTouch10/_._ +packages/System.IO.4.3.0/ref/net45/_._ +packages/System.IO.4.3.0/ref/net462/System.IO.dll +packages/System.IO.4.3.0/ref/netcore50/de/System.IO.xml +packages/System.IO.4.3.0/ref/netcore50/es/System.IO.xml +packages/System.IO.4.3.0/ref/netcore50/fr/System.IO.xml +packages/System.IO.4.3.0/ref/netcore50/it/System.IO.xml +packages/System.IO.4.3.0/ref/netcore50/ja/System.IO.xml +packages/System.IO.4.3.0/ref/netcore50/ko/System.IO.xml +packages/System.IO.4.3.0/ref/netcore50/ru/System.IO.xml +packages/System.IO.4.3.0/ref/netcore50/System.IO.dll +packages/System.IO.4.3.0/ref/netcore50/System.IO.xml +packages/System.IO.4.3.0/ref/netcore50/zh-hans/System.IO.xml +packages/System.IO.4.3.0/ref/netcore50/zh-hant/System.IO.xml +packages/System.IO.4.3.0/ref/netstandard1.0/de/System.IO.xml +packages/System.IO.4.3.0/ref/netstandard1.0/es/System.IO.xml +packages/System.IO.4.3.0/ref/netstandard1.0/fr/System.IO.xml +packages/System.IO.4.3.0/ref/netstandard1.0/it/System.IO.xml +packages/System.IO.4.3.0/ref/netstandard1.0/ja/System.IO.xml +packages/System.IO.4.3.0/ref/netstandard1.0/ko/System.IO.xml +packages/System.IO.4.3.0/ref/netstandard1.0/ru/System.IO.xml +packages/System.IO.4.3.0/ref/netstandard1.0/System.IO.dll +packages/System.IO.4.3.0/ref/netstandard1.0/System.IO.xml +packages/System.IO.4.3.0/ref/netstandard1.0/zh-hans/System.IO.xml +packages/System.IO.4.3.0/ref/netstandard1.0/zh-hant/System.IO.xml +packages/System.IO.4.3.0/ref/netstandard1.3/de/System.IO.xml +packages/System.IO.4.3.0/ref/netstandard1.3/es/System.IO.xml +packages/System.IO.4.3.0/ref/netstandard1.3/fr/System.IO.xml +packages/System.IO.4.3.0/ref/netstandard1.3/it/System.IO.xml +packages/System.IO.4.3.0/ref/netstandard1.3/ja/System.IO.xml +packages/System.IO.4.3.0/ref/netstandard1.3/ko/System.IO.xml +packages/System.IO.4.3.0/ref/netstandard1.3/ru/System.IO.xml +packages/System.IO.4.3.0/ref/netstandard1.3/System.IO.dll +packages/System.IO.4.3.0/ref/netstandard1.3/System.IO.xml +packages/System.IO.4.3.0/ref/netstandard1.3/zh-hans/System.IO.xml +packages/System.IO.4.3.0/ref/netstandard1.3/zh-hant/System.IO.xml +packages/System.IO.4.3.0/ref/netstandard1.5/de/System.IO.xml +packages/System.IO.4.3.0/ref/netstandard1.5/es/System.IO.xml +packages/System.IO.4.3.0/ref/netstandard1.5/fr/System.IO.xml +packages/System.IO.4.3.0/ref/netstandard1.5/it/System.IO.xml +packages/System.IO.4.3.0/ref/netstandard1.5/ja/System.IO.xml +packages/System.IO.4.3.0/ref/netstandard1.5/ko/System.IO.xml +packages/System.IO.4.3.0/ref/netstandard1.5/ru/System.IO.xml +packages/System.IO.4.3.0/ref/netstandard1.5/System.IO.dll +packages/System.IO.4.3.0/ref/netstandard1.5/System.IO.xml +packages/System.IO.4.3.0/ref/netstandard1.5/zh-hans/System.IO.xml +packages/System.IO.4.3.0/ref/netstandard1.5/zh-hant/System.IO.xml +packages/System.IO.4.3.0/ref/portable-net45+win8+wp8+wpa81/_._ +packages/System.IO.4.3.0/ref/win8/_._ +packages/System.IO.4.3.0/ref/wp80/_._ +packages/System.IO.4.3.0/ref/wpa81/_._ +packages/System.IO.4.3.0/ref/xamarinios10/_._ +packages/System.IO.4.3.0/ref/xamarinmac20/_._ +packages/System.IO.4.3.0/ref/xamarintvos10/_._ +packages/System.IO.4.3.0/ref/xamarinwatchos10/_._ +packages/System.IO.4.3.0/System.IO.4.3.0.nupkg +packages/System.IO.4.3.0/ThirdPartyNotices.txt +packages/System.IO.Pipelines.5.0.1/.signature.p7s +packages/System.IO.Pipelines.5.0.1/Icon.png +packages/System.IO.Pipelines.5.0.1/lib/net461/System.IO.Pipelines.dll +packages/System.IO.Pipelines.5.0.1/lib/net461/System.IO.Pipelines.xml +packages/System.IO.Pipelines.5.0.1/lib/netcoreapp3.0/System.IO.Pipelines.dll +packages/System.IO.Pipelines.5.0.1/lib/netcoreapp3.0/System.IO.Pipelines.xml +packages/System.IO.Pipelines.5.0.1/lib/netstandard1.3/System.IO.Pipelines.dll +packages/System.IO.Pipelines.5.0.1/lib/netstandard1.3/System.IO.Pipelines.xml +packages/System.IO.Pipelines.5.0.1/lib/netstandard2.0/System.IO.Pipelines.dll +packages/System.IO.Pipelines.5.0.1/lib/netstandard2.0/System.IO.Pipelines.xml +packages/System.IO.Pipelines.5.0.1/LICENSE.TXT +packages/System.IO.Pipelines.5.0.1/ref/netcoreapp2.0/System.IO.Pipelines.dll +packages/System.IO.Pipelines.5.0.1/ref/netcoreapp2.0/System.IO.Pipelines.xml +packages/System.IO.Pipelines.5.0.1/System.IO.Pipelines.5.0.1.nupkg +packages/System.IO.Pipelines.5.0.1/THIRD-PARTY-NOTICES.TXT +packages/System.IO.Pipelines.5.0.1/useSharedDesignerContext.txt +packages/System.IO.Pipelines.5.0.1/version.txt +packages/System.Memory.4.5.4/.signature.p7s +packages/System.Memory.4.5.4/lib/net461/System.Memory.dll +packages/System.Memory.4.5.4/lib/net461/System.Memory.xml +packages/System.Memory.4.5.4/lib/netcoreapp2.1/_._ +packages/System.Memory.4.5.4/lib/netstandard1.1/System.Memory.dll +packages/System.Memory.4.5.4/lib/netstandard1.1/System.Memory.xml +packages/System.Memory.4.5.4/lib/netstandard2.0/System.Memory.dll +packages/System.Memory.4.5.4/lib/netstandard2.0/System.Memory.xml +packages/System.Memory.4.5.4/LICENSE.TXT +packages/System.Memory.4.5.4/ref/netcoreapp2.1/_._ +packages/System.Memory.4.5.4/System.Memory.4.5.4.nupkg +packages/System.Memory.4.5.4/THIRD-PARTY-NOTICES.TXT +packages/System.Memory.4.5.4/useSharedDesignerContext.txt +packages/System.Memory.4.5.4/version.txt +packages/System.Net.Http.4.3.4/.signature.p7s +packages/System.Net.Http.4.3.4/dotnet_library_license.txt +packages/System.Net.Http.4.3.4/lib/monoandroid10/_._ +packages/System.Net.Http.4.3.4/lib/monotouch10/_._ +packages/System.Net.Http.4.3.4/lib/net45/_._ +packages/System.Net.Http.4.3.4/lib/net46/System.Net.Http.dll +packages/System.Net.Http.4.3.4/lib/portable-net45+win8+wpa81/_._ +packages/System.Net.Http.4.3.4/lib/win8/_._ +packages/System.Net.Http.4.3.4/lib/wpa81/_._ +packages/System.Net.Http.4.3.4/lib/xamarinios10/_._ +packages/System.Net.Http.4.3.4/lib/Xamarinmac20/_._ +packages/System.Net.Http.4.3.4/lib/xamarintvos10/_._ +packages/System.Net.Http.4.3.4/lib/xamarinwatchos10/_._ +packages/System.Net.Http.4.3.4/ref/monoandroid10/_._ +packages/System.Net.Http.4.3.4/ref/monotouch10/_._ +packages/System.Net.Http.4.3.4/ref/net45/_._ +packages/System.Net.Http.4.3.4/ref/net46/System.Net.Http.dll +packages/System.Net.Http.4.3.4/ref/netcore50/System.Net.Http.dll +packages/System.Net.Http.4.3.4/ref/netstandard1.1/System.Net.Http.dll +packages/System.Net.Http.4.3.4/ref/netstandard1.3/System.Net.Http.dll +packages/System.Net.Http.4.3.4/ref/portable-net45+win8+wpa81/_._ +packages/System.Net.Http.4.3.4/ref/win8/_._ +packages/System.Net.Http.4.3.4/ref/wpa81/_._ +packages/System.Net.Http.4.3.4/ref/xamarinios10/_._ +packages/System.Net.Http.4.3.4/ref/Xamarinmac20/_._ +packages/System.Net.Http.4.3.4/ref/xamarintvos10/_._ +packages/System.Net.Http.4.3.4/ref/xamarinwatchos10/_._ +packages/System.Net.Http.4.3.4/runtimes/unix/lib/netstandard1.6/System.Net.Http.dll +packages/System.Net.Http.4.3.4/runtimes/win/lib/net46/System.Net.Http.dll +packages/System.Net.Http.4.3.4/runtimes/win/lib/netcore50/System.Net.Http.dll +packages/System.Net.Http.4.3.4/runtimes/win/lib/netstandard1.3/System.Net.Http.dll +packages/System.Net.Http.4.3.4/System.Net.Http.4.3.4.nupkg +packages/System.Net.Http.4.3.4/ThirdPartyNotices.txt +packages/System.Net.WebSockets.4.3.0/.signature.p7s +packages/System.Net.WebSockets.4.3.0/dotnet_library_license.txt +packages/System.Net.WebSockets.4.3.0/lib/MonoAndroid10/_._ +packages/System.Net.WebSockets.4.3.0/lib/MonoTouch10/_._ +packages/System.Net.WebSockets.4.3.0/lib/net46/System.Net.WebSockets.dll +packages/System.Net.WebSockets.4.3.0/lib/netstandard1.3/System.Net.WebSockets.dll +packages/System.Net.WebSockets.4.3.0/lib/xamarinios10/_._ +packages/System.Net.WebSockets.4.3.0/lib/xamarinmac20/_._ +packages/System.Net.WebSockets.4.3.0/lib/xamarintvos10/_._ +packages/System.Net.WebSockets.4.3.0/lib/xamarinwatchos10/_._ +packages/System.Net.WebSockets.4.3.0/ref/MonoAndroid10/_._ +packages/System.Net.WebSockets.4.3.0/ref/MonoTouch10/_._ +packages/System.Net.WebSockets.4.3.0/ref/net46/System.Net.WebSockets.dll +packages/System.Net.WebSockets.4.3.0/ref/netstandard1.3/de/System.Net.WebSockets.xml +packages/System.Net.WebSockets.4.3.0/ref/netstandard1.3/es/System.Net.WebSockets.xml +packages/System.Net.WebSockets.4.3.0/ref/netstandard1.3/fr/System.Net.WebSockets.xml +packages/System.Net.WebSockets.4.3.0/ref/netstandard1.3/it/System.Net.WebSockets.xml +packages/System.Net.WebSockets.4.3.0/ref/netstandard1.3/ja/System.Net.WebSockets.xml +packages/System.Net.WebSockets.4.3.0/ref/netstandard1.3/ko/System.Net.WebSockets.xml +packages/System.Net.WebSockets.4.3.0/ref/netstandard1.3/ru/System.Net.WebSockets.xml +packages/System.Net.WebSockets.4.3.0/ref/netstandard1.3/System.Net.WebSockets.dll +packages/System.Net.WebSockets.4.3.0/ref/netstandard1.3/System.Net.WebSockets.xml +packages/System.Net.WebSockets.4.3.0/ref/netstandard1.3/zh-hans/System.Net.WebSockets.xml +packages/System.Net.WebSockets.4.3.0/ref/netstandard1.3/zh-hant/System.Net.WebSockets.xml +packages/System.Net.WebSockets.4.3.0/ref/xamarinios10/_._ +packages/System.Net.WebSockets.4.3.0/ref/xamarinmac20/_._ +packages/System.Net.WebSockets.4.3.0/ref/xamarintvos10/_._ +packages/System.Net.WebSockets.4.3.0/ref/xamarinwatchos10/_._ +packages/System.Net.WebSockets.4.3.0/System.Net.WebSockets.4.3.0.nupkg +packages/System.Net.WebSockets.4.3.0/ThirdPartyNotices.txt +packages/System.Numerics.Vectors.4.5.0/.signature.p7s +packages/System.Numerics.Vectors.4.5.0/lib/MonoAndroid10/_._ +packages/System.Numerics.Vectors.4.5.0/lib/MonoTouch10/_._ +packages/System.Numerics.Vectors.4.5.0/lib/net46/System.Numerics.Vectors.dll +packages/System.Numerics.Vectors.4.5.0/lib/net46/System.Numerics.Vectors.xml +packages/System.Numerics.Vectors.4.5.0/lib/netcoreapp2.0/_._ +packages/System.Numerics.Vectors.4.5.0/lib/netstandard1.0/System.Numerics.Vectors.dll +packages/System.Numerics.Vectors.4.5.0/lib/netstandard1.0/System.Numerics.Vectors.xml +packages/System.Numerics.Vectors.4.5.0/lib/netstandard2.0/System.Numerics.Vectors.dll +packages/System.Numerics.Vectors.4.5.0/lib/netstandard2.0/System.Numerics.Vectors.xml +packages/System.Numerics.Vectors.4.5.0/lib/portable-net45+win8+wp8+wpa81/System.Numerics.Vectors.dll +packages/System.Numerics.Vectors.4.5.0/lib/portable-net45+win8+wp8+wpa81/System.Numerics.Vectors.xml +packages/System.Numerics.Vectors.4.5.0/lib/uap10.0.16299/_._ +packages/System.Numerics.Vectors.4.5.0/lib/xamarinios10/_._ +packages/System.Numerics.Vectors.4.5.0/lib/xamarinmac20/_._ +packages/System.Numerics.Vectors.4.5.0/lib/xamarintvos10/_._ +packages/System.Numerics.Vectors.4.5.0/lib/xamarinwatchos10/_._ +packages/System.Numerics.Vectors.4.5.0/LICENSE.TXT +packages/System.Numerics.Vectors.4.5.0/ref/MonoAndroid10/_._ +packages/System.Numerics.Vectors.4.5.0/ref/MonoTouch10/_._ +packages/System.Numerics.Vectors.4.5.0/ref/net45/System.Numerics.Vectors.dll +packages/System.Numerics.Vectors.4.5.0/ref/net45/System.Numerics.Vectors.xml +packages/System.Numerics.Vectors.4.5.0/ref/net46/System.Numerics.Vectors.dll +packages/System.Numerics.Vectors.4.5.0/ref/net46/System.Numerics.Vectors.xml +packages/System.Numerics.Vectors.4.5.0/ref/netcoreapp2.0/_._ +packages/System.Numerics.Vectors.4.5.0/ref/netstandard1.0/System.Numerics.Vectors.dll +packages/System.Numerics.Vectors.4.5.0/ref/netstandard1.0/System.Numerics.Vectors.xml +packages/System.Numerics.Vectors.4.5.0/ref/netstandard2.0/System.Numerics.Vectors.dll +packages/System.Numerics.Vectors.4.5.0/ref/netstandard2.0/System.Numerics.Vectors.xml +packages/System.Numerics.Vectors.4.5.0/ref/uap10.0.16299/_._ +packages/System.Numerics.Vectors.4.5.0/ref/xamarinios10/_._ +packages/System.Numerics.Vectors.4.5.0/ref/xamarinmac20/_._ +packages/System.Numerics.Vectors.4.5.0/ref/xamarintvos10/_._ +packages/System.Numerics.Vectors.4.5.0/ref/xamarinwatchos10/_._ +packages/System.Numerics.Vectors.4.5.0/System.Numerics.Vectors.4.5.0.nupkg +packages/System.Numerics.Vectors.4.5.0/THIRD-PARTY-NOTICES.TXT +packages/System.Numerics.Vectors.4.5.0/useSharedDesignerContext.txt +packages/System.Numerics.Vectors.4.5.0/version.txt +packages/System.Reflection.Emit.4.7.0/.signature.p7s +packages/System.Reflection.Emit.4.7.0/lib/MonoAndroid10/_._ +packages/System.Reflection.Emit.4.7.0/lib/MonoTouch10/_._ +packages/System.Reflection.Emit.4.7.0/lib/net45/_._ +packages/System.Reflection.Emit.4.7.0/lib/netcore50/System.Reflection.Emit.dll +packages/System.Reflection.Emit.4.7.0/lib/netcoreapp2.0/_._ +packages/System.Reflection.Emit.4.7.0/lib/netstandard1.1/System.Reflection.Emit.dll +packages/System.Reflection.Emit.4.7.0/lib/netstandard1.1/System.Reflection.Emit.xml +packages/System.Reflection.Emit.4.7.0/lib/netstandard1.3/System.Reflection.Emit.dll +packages/System.Reflection.Emit.4.7.0/lib/netstandard2.0/System.Reflection.Emit.dll +packages/System.Reflection.Emit.4.7.0/lib/netstandard2.0/System.Reflection.Emit.xml +packages/System.Reflection.Emit.4.7.0/lib/netstandard2.1/_._ +packages/System.Reflection.Emit.4.7.0/lib/xamarinios10/_._ +packages/System.Reflection.Emit.4.7.0/lib/xamarinmac20/_._ +packages/System.Reflection.Emit.4.7.0/lib/xamarintvos10/_._ +packages/System.Reflection.Emit.4.7.0/lib/xamarinwatchos10/_._ +packages/System.Reflection.Emit.4.7.0/LICENSE.TXT +packages/System.Reflection.Emit.4.7.0/ref/MonoAndroid10/_._ +packages/System.Reflection.Emit.4.7.0/ref/MonoTouch10/_._ +packages/System.Reflection.Emit.4.7.0/ref/net45/_._ +packages/System.Reflection.Emit.4.7.0/ref/netcoreapp2.0/_._ +packages/System.Reflection.Emit.4.7.0/ref/netstandard1.1/de/System.Reflection.Emit.xml +packages/System.Reflection.Emit.4.7.0/ref/netstandard1.1/es/System.Reflection.Emit.xml +packages/System.Reflection.Emit.4.7.0/ref/netstandard1.1/fr/System.Reflection.Emit.xml +packages/System.Reflection.Emit.4.7.0/ref/netstandard1.1/it/System.Reflection.Emit.xml +packages/System.Reflection.Emit.4.7.0/ref/netstandard1.1/ja/System.Reflection.Emit.xml +packages/System.Reflection.Emit.4.7.0/ref/netstandard1.1/ko/System.Reflection.Emit.xml +packages/System.Reflection.Emit.4.7.0/ref/netstandard1.1/ru/System.Reflection.Emit.xml +packages/System.Reflection.Emit.4.7.0/ref/netstandard1.1/System.Reflection.Emit.dll +packages/System.Reflection.Emit.4.7.0/ref/netstandard1.1/System.Reflection.Emit.xml +packages/System.Reflection.Emit.4.7.0/ref/netstandard1.1/zh-hans/System.Reflection.Emit.xml +packages/System.Reflection.Emit.4.7.0/ref/netstandard1.1/zh-hant/System.Reflection.Emit.xml +packages/System.Reflection.Emit.4.7.0/ref/netstandard2.0/System.Reflection.Emit.dll +packages/System.Reflection.Emit.4.7.0/ref/netstandard2.0/System.Reflection.Emit.xml +packages/System.Reflection.Emit.4.7.0/ref/netstandard2.1/_._ +packages/System.Reflection.Emit.4.7.0/ref/xamarinios10/_._ +packages/System.Reflection.Emit.4.7.0/ref/xamarinmac20/_._ +packages/System.Reflection.Emit.4.7.0/ref/xamarintvos10/_._ +packages/System.Reflection.Emit.4.7.0/ref/xamarinwatchos10/_._ +packages/System.Reflection.Emit.4.7.0/runtimes/aot/lib/netcore50/System.Reflection.Emit.dll +packages/System.Reflection.Emit.4.7.0/runtimes/aot/lib/netcore50/System.Reflection.Emit.xml +packages/System.Reflection.Emit.4.7.0/System.Reflection.Emit.4.7.0.nupkg +packages/System.Reflection.Emit.4.7.0/THIRD-PARTY-NOTICES.TXT +packages/System.Reflection.Emit.4.7.0/useSharedDesignerContext.txt +packages/System.Reflection.Emit.4.7.0/version.txt +packages/System.Reflection.Emit.Lightweight.4.6.0/.signature.p7s +packages/System.Reflection.Emit.Lightweight.4.6.0/lib/MonoAndroid10/_._ +packages/System.Reflection.Emit.Lightweight.4.6.0/lib/MonoTouch10/_._ +packages/System.Reflection.Emit.Lightweight.4.6.0/lib/net45/_._ +packages/System.Reflection.Emit.Lightweight.4.6.0/lib/netcore50/System.Reflection.Emit.Lightweight.dll +packages/System.Reflection.Emit.Lightweight.4.6.0/lib/netcoreapp2.0/_._ +packages/System.Reflection.Emit.Lightweight.4.6.0/lib/netstandard1.0/System.Reflection.Emit.Lightweight.dll +packages/System.Reflection.Emit.Lightweight.4.6.0/lib/netstandard1.0/System.Reflection.Emit.Lightweight.xml +packages/System.Reflection.Emit.Lightweight.4.6.0/lib/netstandard1.3/System.Reflection.Emit.Lightweight.dll +packages/System.Reflection.Emit.Lightweight.4.6.0/lib/netstandard2.0/System.Reflection.Emit.Lightweight.dll +packages/System.Reflection.Emit.Lightweight.4.6.0/lib/netstandard2.0/System.Reflection.Emit.Lightweight.xml +packages/System.Reflection.Emit.Lightweight.4.6.0/lib/netstandard2.1/_._ +packages/System.Reflection.Emit.Lightweight.4.6.0/lib/portable-net45+wp8/_._ +packages/System.Reflection.Emit.Lightweight.4.6.0/lib/wp80/_._ +packages/System.Reflection.Emit.Lightweight.4.6.0/lib/xamarinios10/_._ +packages/System.Reflection.Emit.Lightweight.4.6.0/lib/xamarinmac20/_._ +packages/System.Reflection.Emit.Lightweight.4.6.0/lib/xamarintvos10/_._ +packages/System.Reflection.Emit.Lightweight.4.6.0/lib/xamarinwatchos10/_._ +packages/System.Reflection.Emit.Lightweight.4.6.0/LICENSE.TXT +packages/System.Reflection.Emit.Lightweight.4.6.0/ref/MonoAndroid10/_._ +packages/System.Reflection.Emit.Lightweight.4.6.0/ref/MonoTouch10/_._ +packages/System.Reflection.Emit.Lightweight.4.6.0/ref/net45/_._ +packages/System.Reflection.Emit.Lightweight.4.6.0/ref/netcoreapp2.0/_._ +packages/System.Reflection.Emit.Lightweight.4.6.0/ref/netstandard1.0/de/System.Reflection.Emit.Lightweight.xml +packages/System.Reflection.Emit.Lightweight.4.6.0/ref/netstandard1.0/es/System.Reflection.Emit.Lightweight.xml +packages/System.Reflection.Emit.Lightweight.4.6.0/ref/netstandard1.0/fr/System.Reflection.Emit.Lightweight.xml +packages/System.Reflection.Emit.Lightweight.4.6.0/ref/netstandard1.0/it/System.Reflection.Emit.Lightweight.xml +packages/System.Reflection.Emit.Lightweight.4.6.0/ref/netstandard1.0/ja/System.Reflection.Emit.Lightweight.xml +packages/System.Reflection.Emit.Lightweight.4.6.0/ref/netstandard1.0/ko/System.Reflection.Emit.Lightweight.xml +packages/System.Reflection.Emit.Lightweight.4.6.0/ref/netstandard1.0/ru/System.Reflection.Emit.Lightweight.xml +packages/System.Reflection.Emit.Lightweight.4.6.0/ref/netstandard1.0/System.Reflection.Emit.Lightweight.dll +packages/System.Reflection.Emit.Lightweight.4.6.0/ref/netstandard1.0/System.Reflection.Emit.Lightweight.xml +packages/System.Reflection.Emit.Lightweight.4.6.0/ref/netstandard1.0/zh-hans/System.Reflection.Emit.Lightweight.xml +packages/System.Reflection.Emit.Lightweight.4.6.0/ref/netstandard1.0/zh-hant/System.Reflection.Emit.Lightweight.xml +packages/System.Reflection.Emit.Lightweight.4.6.0/ref/netstandard2.0/System.Reflection.Emit.Lightweight.dll +packages/System.Reflection.Emit.Lightweight.4.6.0/ref/netstandard2.0/System.Reflection.Emit.Lightweight.xml +packages/System.Reflection.Emit.Lightweight.4.6.0/ref/netstandard2.1/_._ +packages/System.Reflection.Emit.Lightweight.4.6.0/ref/portable-net45+wp8/_._ +packages/System.Reflection.Emit.Lightweight.4.6.0/ref/wp80/_._ +packages/System.Reflection.Emit.Lightweight.4.6.0/ref/xamarinios10/_._ +packages/System.Reflection.Emit.Lightweight.4.6.0/ref/xamarinmac20/_._ +packages/System.Reflection.Emit.Lightweight.4.6.0/ref/xamarintvos10/_._ +packages/System.Reflection.Emit.Lightweight.4.6.0/ref/xamarinwatchos10/_._ +packages/System.Reflection.Emit.Lightweight.4.6.0/runtimes/aot/lib/netcore50/System.Reflection.Emit.Lightweight.dll +packages/System.Reflection.Emit.Lightweight.4.6.0/runtimes/aot/lib/netcore50/System.Reflection.Emit.Lightweight.xml +packages/System.Reflection.Emit.Lightweight.4.6.0/System.Reflection.Emit.Lightweight.4.6.0.nupkg +packages/System.Reflection.Emit.Lightweight.4.6.0/THIRD-PARTY-NOTICES.TXT +packages/System.Reflection.Emit.Lightweight.4.6.0/useSharedDesignerContext.txt +packages/System.Reflection.Emit.Lightweight.4.6.0/version.txt +packages/System.Runtime.4.3.0/.signature.p7s +packages/System.Runtime.4.3.0/dotnet_library_license.txt +packages/System.Runtime.4.3.0/lib/MonoAndroid10/_._ +packages/System.Runtime.4.3.0/lib/MonoTouch10/_._ +packages/System.Runtime.4.3.0/lib/net45/_._ +packages/System.Runtime.4.3.0/lib/net462/System.Runtime.dll +packages/System.Runtime.4.3.0/lib/portable-net45+win8+wp80+wpa81/_._ +packages/System.Runtime.4.3.0/lib/win8/_._ +packages/System.Runtime.4.3.0/lib/wp80/_._ +packages/System.Runtime.4.3.0/lib/wpa81/_._ +packages/System.Runtime.4.3.0/lib/xamarinios10/_._ +packages/System.Runtime.4.3.0/lib/xamarinmac20/_._ +packages/System.Runtime.4.3.0/lib/xamarintvos10/_._ +packages/System.Runtime.4.3.0/lib/xamarinwatchos10/_._ +packages/System.Runtime.4.3.0/ref/MonoAndroid10/_._ +packages/System.Runtime.4.3.0/ref/MonoTouch10/_._ +packages/System.Runtime.4.3.0/ref/net45/_._ +packages/System.Runtime.4.3.0/ref/net462/System.Runtime.dll +packages/System.Runtime.4.3.0/ref/netcore50/de/System.Runtime.xml +packages/System.Runtime.4.3.0/ref/netcore50/es/System.Runtime.xml +packages/System.Runtime.4.3.0/ref/netcore50/fr/System.Runtime.xml +packages/System.Runtime.4.3.0/ref/netcore50/it/System.Runtime.xml +packages/System.Runtime.4.3.0/ref/netcore50/ja/System.Runtime.xml +packages/System.Runtime.4.3.0/ref/netcore50/ko/System.Runtime.xml +packages/System.Runtime.4.3.0/ref/netcore50/ru/System.Runtime.xml +packages/System.Runtime.4.3.0/ref/netcore50/System.Runtime.dll +packages/System.Runtime.4.3.0/ref/netcore50/System.Runtime.xml +packages/System.Runtime.4.3.0/ref/netcore50/zh-hans/System.Runtime.xml +packages/System.Runtime.4.3.0/ref/netcore50/zh-hant/System.Runtime.xml +packages/System.Runtime.4.3.0/ref/netstandard1.0/de/System.Runtime.xml +packages/System.Runtime.4.3.0/ref/netstandard1.0/es/System.Runtime.xml +packages/System.Runtime.4.3.0/ref/netstandard1.0/fr/System.Runtime.xml +packages/System.Runtime.4.3.0/ref/netstandard1.0/it/System.Runtime.xml +packages/System.Runtime.4.3.0/ref/netstandard1.0/ja/System.Runtime.xml +packages/System.Runtime.4.3.0/ref/netstandard1.0/ko/System.Runtime.xml +packages/System.Runtime.4.3.0/ref/netstandard1.0/ru/System.Runtime.xml +packages/System.Runtime.4.3.0/ref/netstandard1.0/System.Runtime.dll +packages/System.Runtime.4.3.0/ref/netstandard1.0/System.Runtime.xml +packages/System.Runtime.4.3.0/ref/netstandard1.0/zh-hans/System.Runtime.xml +packages/System.Runtime.4.3.0/ref/netstandard1.0/zh-hant/System.Runtime.xml +packages/System.Runtime.4.3.0/ref/netstandard1.2/de/System.Runtime.xml +packages/System.Runtime.4.3.0/ref/netstandard1.2/es/System.Runtime.xml +packages/System.Runtime.4.3.0/ref/netstandard1.2/fr/System.Runtime.xml +packages/System.Runtime.4.3.0/ref/netstandard1.2/it/System.Runtime.xml +packages/System.Runtime.4.3.0/ref/netstandard1.2/ja/System.Runtime.xml +packages/System.Runtime.4.3.0/ref/netstandard1.2/ko/System.Runtime.xml +packages/System.Runtime.4.3.0/ref/netstandard1.2/ru/System.Runtime.xml +packages/System.Runtime.4.3.0/ref/netstandard1.2/System.Runtime.dll +packages/System.Runtime.4.3.0/ref/netstandard1.2/System.Runtime.xml +packages/System.Runtime.4.3.0/ref/netstandard1.2/zh-hans/System.Runtime.xml +packages/System.Runtime.4.3.0/ref/netstandard1.2/zh-hant/System.Runtime.xml +packages/System.Runtime.4.3.0/ref/netstandard1.3/de/System.Runtime.xml +packages/System.Runtime.4.3.0/ref/netstandard1.3/es/System.Runtime.xml +packages/System.Runtime.4.3.0/ref/netstandard1.3/fr/System.Runtime.xml +packages/System.Runtime.4.3.0/ref/netstandard1.3/it/System.Runtime.xml +packages/System.Runtime.4.3.0/ref/netstandard1.3/ja/System.Runtime.xml +packages/System.Runtime.4.3.0/ref/netstandard1.3/ko/System.Runtime.xml +packages/System.Runtime.4.3.0/ref/netstandard1.3/ru/System.Runtime.xml +packages/System.Runtime.4.3.0/ref/netstandard1.3/System.Runtime.dll +packages/System.Runtime.4.3.0/ref/netstandard1.3/System.Runtime.xml +packages/System.Runtime.4.3.0/ref/netstandard1.3/zh-hans/System.Runtime.xml +packages/System.Runtime.4.3.0/ref/netstandard1.3/zh-hant/System.Runtime.xml +packages/System.Runtime.4.3.0/ref/netstandard1.5/de/System.Runtime.xml +packages/System.Runtime.4.3.0/ref/netstandard1.5/es/System.Runtime.xml +packages/System.Runtime.4.3.0/ref/netstandard1.5/fr/System.Runtime.xml +packages/System.Runtime.4.3.0/ref/netstandard1.5/it/System.Runtime.xml +packages/System.Runtime.4.3.0/ref/netstandard1.5/ja/System.Runtime.xml +packages/System.Runtime.4.3.0/ref/netstandard1.5/ko/System.Runtime.xml +packages/System.Runtime.4.3.0/ref/netstandard1.5/ru/System.Runtime.xml +packages/System.Runtime.4.3.0/ref/netstandard1.5/System.Runtime.dll +packages/System.Runtime.4.3.0/ref/netstandard1.5/System.Runtime.xml +packages/System.Runtime.4.3.0/ref/netstandard1.5/zh-hans/System.Runtime.xml +packages/System.Runtime.4.3.0/ref/netstandard1.5/zh-hant/System.Runtime.xml +packages/System.Runtime.4.3.0/ref/portable-net45+win8+wp80+wpa81/_._ +packages/System.Runtime.4.3.0/ref/win8/_._ +packages/System.Runtime.4.3.0/ref/wp80/_._ +packages/System.Runtime.4.3.0/ref/wpa81/_._ +packages/System.Runtime.4.3.0/ref/xamarinios10/_._ +packages/System.Runtime.4.3.0/ref/xamarinmac20/_._ +packages/System.Runtime.4.3.0/ref/xamarintvos10/_._ +packages/System.Runtime.4.3.0/ref/xamarinwatchos10/_._ +packages/System.Runtime.4.3.0/System.Runtime.4.3.0.nupkg +packages/System.Runtime.4.3.0/ThirdPartyNotices.txt +packages/System.Runtime.CompilerServices.Unsafe.5.0.0/.signature.p7s +packages/System.Runtime.CompilerServices.Unsafe.5.0.0/Icon.png +packages/System.Runtime.CompilerServices.Unsafe.5.0.0/lib/net45/System.Runtime.CompilerServices.Unsafe.dll +packages/System.Runtime.CompilerServices.Unsafe.5.0.0/lib/net45/System.Runtime.CompilerServices.Unsafe.xml +packages/System.Runtime.CompilerServices.Unsafe.5.0.0/lib/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.dll +packages/System.Runtime.CompilerServices.Unsafe.5.0.0/lib/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.xml +packages/System.Runtime.CompilerServices.Unsafe.5.0.0/lib/netstandard1.0/System.Runtime.CompilerServices.Unsafe.dll +packages/System.Runtime.CompilerServices.Unsafe.5.0.0/lib/netstandard1.0/System.Runtime.CompilerServices.Unsafe.xml +packages/System.Runtime.CompilerServices.Unsafe.5.0.0/lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll +packages/System.Runtime.CompilerServices.Unsafe.5.0.0/lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.xml +packages/System.Runtime.CompilerServices.Unsafe.5.0.0/LICENSE.TXT +packages/System.Runtime.CompilerServices.Unsafe.5.0.0/ref/net461/System.Runtime.CompilerServices.Unsafe.dll +packages/System.Runtime.CompilerServices.Unsafe.5.0.0/ref/net461/System.Runtime.CompilerServices.Unsafe.xml +packages/System.Runtime.CompilerServices.Unsafe.5.0.0/ref/netstandard1.0/System.Runtime.CompilerServices.Unsafe.dll +packages/System.Runtime.CompilerServices.Unsafe.5.0.0/ref/netstandard1.0/System.Runtime.CompilerServices.Unsafe.xml +packages/System.Runtime.CompilerServices.Unsafe.5.0.0/ref/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll +packages/System.Runtime.CompilerServices.Unsafe.5.0.0/ref/netstandard2.0/System.Runtime.CompilerServices.Unsafe.xml +packages/System.Runtime.CompilerServices.Unsafe.5.0.0/ref/netstandard2.1/System.Runtime.CompilerServices.Unsafe.dll +packages/System.Runtime.CompilerServices.Unsafe.5.0.0/ref/netstandard2.1/System.Runtime.CompilerServices.Unsafe.xml +packages/System.Runtime.CompilerServices.Unsafe.5.0.0/System.Runtime.CompilerServices.Unsafe.5.0.0.nupkg +packages/System.Runtime.CompilerServices.Unsafe.5.0.0/THIRD-PARTY-NOTICES.TXT +packages/System.Runtime.CompilerServices.Unsafe.5.0.0/useSharedDesignerContext.txt +packages/System.Runtime.CompilerServices.Unsafe.5.0.0/version.txt +packages/System.Security.AccessControl.6.0.0/.signature.p7s +packages/System.Security.AccessControl.6.0.0/buildTransitive/netcoreapp2.0/System.Security.AccessControl.targets +packages/System.Security.AccessControl.6.0.0/buildTransitive/netcoreapp3.1/_._ +packages/System.Security.AccessControl.6.0.0/Icon.png +packages/System.Security.AccessControl.6.0.0/lib/net461/System.Security.AccessControl.dll +packages/System.Security.AccessControl.6.0.0/lib/net461/System.Security.AccessControl.xml +packages/System.Security.AccessControl.6.0.0/lib/net6.0/System.Security.AccessControl.dll +packages/System.Security.AccessControl.6.0.0/lib/net6.0/System.Security.AccessControl.xml +packages/System.Security.AccessControl.6.0.0/lib/netstandard2.0/System.Security.AccessControl.dll +packages/System.Security.AccessControl.6.0.0/lib/netstandard2.0/System.Security.AccessControl.xml +packages/System.Security.AccessControl.6.0.0/LICENSE.TXT +packages/System.Security.AccessControl.6.0.0/runtimes/win/lib/net461/System.Security.AccessControl.dll +packages/System.Security.AccessControl.6.0.0/runtimes/win/lib/net461/System.Security.AccessControl.xml +packages/System.Security.AccessControl.6.0.0/runtimes/win/lib/net6.0/System.Security.AccessControl.dll +packages/System.Security.AccessControl.6.0.0/runtimes/win/lib/net6.0/System.Security.AccessControl.xml +packages/System.Security.AccessControl.6.0.0/runtimes/win/lib/netstandard2.0/System.Security.AccessControl.dll +packages/System.Security.AccessControl.6.0.0/runtimes/win/lib/netstandard2.0/System.Security.AccessControl.xml +packages/System.Security.AccessControl.6.0.0/System.Security.AccessControl.6.0.0.nupkg +packages/System.Security.AccessControl.6.0.0/THIRD-PARTY-NOTICES.TXT +packages/System.Security.AccessControl.6.0.0/useSharedDesignerContext.txt +packages/System.Security.Cryptography.Algorithms.4.3.0/.signature.p7s +packages/System.Security.Cryptography.Algorithms.4.3.0/dotnet_library_license.txt +packages/System.Security.Cryptography.Algorithms.4.3.0/lib/MonoAndroid10/_._ +packages/System.Security.Cryptography.Algorithms.4.3.0/lib/MonoTouch10/_._ +packages/System.Security.Cryptography.Algorithms.4.3.0/lib/net46/System.Security.Cryptography.Algorithms.dll +packages/System.Security.Cryptography.Algorithms.4.3.0/lib/net461/System.Security.Cryptography.Algorithms.dll +packages/System.Security.Cryptography.Algorithms.4.3.0/lib/net463/System.Security.Cryptography.Algorithms.dll +packages/System.Security.Cryptography.Algorithms.4.3.0/lib/xamarinios10/_._ +packages/System.Security.Cryptography.Algorithms.4.3.0/lib/xamarinmac20/_._ +packages/System.Security.Cryptography.Algorithms.4.3.0/lib/xamarintvos10/_._ +packages/System.Security.Cryptography.Algorithms.4.3.0/lib/xamarinwatchos10/_._ +packages/System.Security.Cryptography.Algorithms.4.3.0/ref/MonoAndroid10/_._ +packages/System.Security.Cryptography.Algorithms.4.3.0/ref/MonoTouch10/_._ +packages/System.Security.Cryptography.Algorithms.4.3.0/ref/net46/System.Security.Cryptography.Algorithms.dll +packages/System.Security.Cryptography.Algorithms.4.3.0/ref/net461/System.Security.Cryptography.Algorithms.dll +packages/System.Security.Cryptography.Algorithms.4.3.0/ref/net463/System.Security.Cryptography.Algorithms.dll +packages/System.Security.Cryptography.Algorithms.4.3.0/ref/netstandard1.3/System.Security.Cryptography.Algorithms.dll +packages/System.Security.Cryptography.Algorithms.4.3.0/ref/netstandard1.4/System.Security.Cryptography.Algorithms.dll +packages/System.Security.Cryptography.Algorithms.4.3.0/ref/netstandard1.6/System.Security.Cryptography.Algorithms.dll +packages/System.Security.Cryptography.Algorithms.4.3.0/ref/xamarinios10/_._ +packages/System.Security.Cryptography.Algorithms.4.3.0/ref/xamarinmac20/_._ +packages/System.Security.Cryptography.Algorithms.4.3.0/ref/xamarintvos10/_._ +packages/System.Security.Cryptography.Algorithms.4.3.0/ref/xamarinwatchos10/_._ +packages/System.Security.Cryptography.Algorithms.4.3.0/runtimes/osx/lib/netstandard1.6/System.Security.Cryptography.Algorithms.dll +packages/System.Security.Cryptography.Algorithms.4.3.0/runtimes/unix/lib/netstandard1.6/System.Security.Cryptography.Algorithms.dll +packages/System.Security.Cryptography.Algorithms.4.3.0/runtimes/win/lib/net46/System.Security.Cryptography.Algorithms.dll +packages/System.Security.Cryptography.Algorithms.4.3.0/runtimes/win/lib/net461/System.Security.Cryptography.Algorithms.dll +packages/System.Security.Cryptography.Algorithms.4.3.0/runtimes/win/lib/net463/System.Security.Cryptography.Algorithms.dll +packages/System.Security.Cryptography.Algorithms.4.3.0/runtimes/win/lib/netcore50/System.Security.Cryptography.Algorithms.dll +packages/System.Security.Cryptography.Algorithms.4.3.0/runtimes/win/lib/netstandard1.6/System.Security.Cryptography.Algorithms.dll +packages/System.Security.Cryptography.Algorithms.4.3.0/System.Security.Cryptography.Algorithms.4.3.0.nupkg +packages/System.Security.Cryptography.Algorithms.4.3.0/ThirdPartyNotices.txt +packages/System.Security.Cryptography.Encoding.4.3.0/.signature.p7s +packages/System.Security.Cryptography.Encoding.4.3.0/dotnet_library_license.txt +packages/System.Security.Cryptography.Encoding.4.3.0/lib/MonoAndroid10/_._ +packages/System.Security.Cryptography.Encoding.4.3.0/lib/MonoTouch10/_._ +packages/System.Security.Cryptography.Encoding.4.3.0/lib/net46/System.Security.Cryptography.Encoding.dll +packages/System.Security.Cryptography.Encoding.4.3.0/lib/xamarinios10/_._ +packages/System.Security.Cryptography.Encoding.4.3.0/lib/xamarinmac20/_._ +packages/System.Security.Cryptography.Encoding.4.3.0/lib/xamarintvos10/_._ +packages/System.Security.Cryptography.Encoding.4.3.0/lib/xamarinwatchos10/_._ +packages/System.Security.Cryptography.Encoding.4.3.0/ref/MonoAndroid10/_._ +packages/System.Security.Cryptography.Encoding.4.3.0/ref/MonoTouch10/_._ +packages/System.Security.Cryptography.Encoding.4.3.0/ref/net46/System.Security.Cryptography.Encoding.dll +packages/System.Security.Cryptography.Encoding.4.3.0/ref/netstandard1.3/de/System.Security.Cryptography.Encoding.xml +packages/System.Security.Cryptography.Encoding.4.3.0/ref/netstandard1.3/es/System.Security.Cryptography.Encoding.xml +packages/System.Security.Cryptography.Encoding.4.3.0/ref/netstandard1.3/fr/System.Security.Cryptography.Encoding.xml +packages/System.Security.Cryptography.Encoding.4.3.0/ref/netstandard1.3/it/System.Security.Cryptography.Encoding.xml +packages/System.Security.Cryptography.Encoding.4.3.0/ref/netstandard1.3/ja/System.Security.Cryptography.Encoding.xml +packages/System.Security.Cryptography.Encoding.4.3.0/ref/netstandard1.3/ko/System.Security.Cryptography.Encoding.xml +packages/System.Security.Cryptography.Encoding.4.3.0/ref/netstandard1.3/ru/System.Security.Cryptography.Encoding.xml +packages/System.Security.Cryptography.Encoding.4.3.0/ref/netstandard1.3/System.Security.Cryptography.Encoding.dll +packages/System.Security.Cryptography.Encoding.4.3.0/ref/netstandard1.3/System.Security.Cryptography.Encoding.xml +packages/System.Security.Cryptography.Encoding.4.3.0/ref/netstandard1.3/zh-hans/System.Security.Cryptography.Encoding.xml +packages/System.Security.Cryptography.Encoding.4.3.0/ref/netstandard1.3/zh-hant/System.Security.Cryptography.Encoding.xml +packages/System.Security.Cryptography.Encoding.4.3.0/ref/xamarinios10/_._ +packages/System.Security.Cryptography.Encoding.4.3.0/ref/xamarinmac20/_._ +packages/System.Security.Cryptography.Encoding.4.3.0/ref/xamarintvos10/_._ +packages/System.Security.Cryptography.Encoding.4.3.0/ref/xamarinwatchos10/_._ +packages/System.Security.Cryptography.Encoding.4.3.0/runtimes/unix/lib/netstandard1.3/System.Security.Cryptography.Encoding.dll +packages/System.Security.Cryptography.Encoding.4.3.0/runtimes/win/lib/net46/System.Security.Cryptography.Encoding.dll +packages/System.Security.Cryptography.Encoding.4.3.0/runtimes/win/lib/netstandard1.3/System.Security.Cryptography.Encoding.dll +packages/System.Security.Cryptography.Encoding.4.3.0/System.Security.Cryptography.Encoding.4.3.0.nupkg +packages/System.Security.Cryptography.Encoding.4.3.0/ThirdPartyNotices.txt +packages/System.Security.Cryptography.Primitives.4.3.0/.signature.p7s +packages/System.Security.Cryptography.Primitives.4.3.0/dotnet_library_license.txt +packages/System.Security.Cryptography.Primitives.4.3.0/lib/MonoAndroid10/_._ +packages/System.Security.Cryptography.Primitives.4.3.0/lib/MonoTouch10/_._ +packages/System.Security.Cryptography.Primitives.4.3.0/lib/net46/System.Security.Cryptography.Primitives.dll +packages/System.Security.Cryptography.Primitives.4.3.0/lib/netstandard1.3/System.Security.Cryptography.Primitives.dll +packages/System.Security.Cryptography.Primitives.4.3.0/lib/xamarinios10/_._ +packages/System.Security.Cryptography.Primitives.4.3.0/lib/xamarinmac20/_._ +packages/System.Security.Cryptography.Primitives.4.3.0/lib/xamarintvos10/_._ +packages/System.Security.Cryptography.Primitives.4.3.0/lib/xamarinwatchos10/_._ +packages/System.Security.Cryptography.Primitives.4.3.0/ref/MonoAndroid10/_._ +packages/System.Security.Cryptography.Primitives.4.3.0/ref/MonoTouch10/_._ +packages/System.Security.Cryptography.Primitives.4.3.0/ref/net46/System.Security.Cryptography.Primitives.dll +packages/System.Security.Cryptography.Primitives.4.3.0/ref/netstandard1.3/System.Security.Cryptography.Primitives.dll +packages/System.Security.Cryptography.Primitives.4.3.0/ref/xamarinios10/_._ +packages/System.Security.Cryptography.Primitives.4.3.0/ref/xamarinmac20/_._ +packages/System.Security.Cryptography.Primitives.4.3.0/ref/xamarintvos10/_._ +packages/System.Security.Cryptography.Primitives.4.3.0/ref/xamarinwatchos10/_._ +packages/System.Security.Cryptography.Primitives.4.3.0/System.Security.Cryptography.Primitives.4.3.0.nupkg +packages/System.Security.Cryptography.Primitives.4.3.0/ThirdPartyNotices.txt +packages/System.Security.Cryptography.X509Certificates.4.3.0/.signature.p7s +packages/System.Security.Cryptography.X509Certificates.4.3.0/dotnet_library_license.txt +packages/System.Security.Cryptography.X509Certificates.4.3.0/lib/MonoAndroid10/_._ +packages/System.Security.Cryptography.X509Certificates.4.3.0/lib/MonoTouch10/_._ +packages/System.Security.Cryptography.X509Certificates.4.3.0/lib/net46/System.Security.Cryptography.X509Certificates.dll +packages/System.Security.Cryptography.X509Certificates.4.3.0/lib/net461/System.Security.Cryptography.X509Certificates.dll +packages/System.Security.Cryptography.X509Certificates.4.3.0/lib/xamarinios10/_._ +packages/System.Security.Cryptography.X509Certificates.4.3.0/lib/xamarinmac20/_._ +packages/System.Security.Cryptography.X509Certificates.4.3.0/lib/xamarintvos10/_._ +packages/System.Security.Cryptography.X509Certificates.4.3.0/lib/xamarinwatchos10/_._ +packages/System.Security.Cryptography.X509Certificates.4.3.0/ref/MonoAndroid10/_._ +packages/System.Security.Cryptography.X509Certificates.4.3.0/ref/MonoTouch10/_._ +packages/System.Security.Cryptography.X509Certificates.4.3.0/ref/net46/System.Security.Cryptography.X509Certificates.dll +packages/System.Security.Cryptography.X509Certificates.4.3.0/ref/net461/System.Security.Cryptography.X509Certificates.dll +packages/System.Security.Cryptography.X509Certificates.4.3.0/ref/netstandard1.3/de/System.Security.Cryptography.X509Certificates.xml +packages/System.Security.Cryptography.X509Certificates.4.3.0/ref/netstandard1.3/es/System.Security.Cryptography.X509Certificates.xml +packages/System.Security.Cryptography.X509Certificates.4.3.0/ref/netstandard1.3/fr/System.Security.Cryptography.X509Certificates.xml +packages/System.Security.Cryptography.X509Certificates.4.3.0/ref/netstandard1.3/it/System.Security.Cryptography.X509Certificates.xml +packages/System.Security.Cryptography.X509Certificates.4.3.0/ref/netstandard1.3/ja/System.Security.Cryptography.X509Certificates.xml +packages/System.Security.Cryptography.X509Certificates.4.3.0/ref/netstandard1.3/ko/System.Security.Cryptography.X509Certificates.xml +packages/System.Security.Cryptography.X509Certificates.4.3.0/ref/netstandard1.3/ru/System.Security.Cryptography.X509Certificates.xml +packages/System.Security.Cryptography.X509Certificates.4.3.0/ref/netstandard1.3/System.Security.Cryptography.X509Certificates.dll +packages/System.Security.Cryptography.X509Certificates.4.3.0/ref/netstandard1.3/System.Security.Cryptography.X509Certificates.xml +packages/System.Security.Cryptography.X509Certificates.4.3.0/ref/netstandard1.3/zh-hans/System.Security.Cryptography.X509Certificates.xml +packages/System.Security.Cryptography.X509Certificates.4.3.0/ref/netstandard1.3/zh-hant/System.Security.Cryptography.X509Certificates.xml +packages/System.Security.Cryptography.X509Certificates.4.3.0/ref/netstandard1.4/de/System.Security.Cryptography.X509Certificates.xml +packages/System.Security.Cryptography.X509Certificates.4.3.0/ref/netstandard1.4/es/System.Security.Cryptography.X509Certificates.xml +packages/System.Security.Cryptography.X509Certificates.4.3.0/ref/netstandard1.4/fr/System.Security.Cryptography.X509Certificates.xml +packages/System.Security.Cryptography.X509Certificates.4.3.0/ref/netstandard1.4/it/System.Security.Cryptography.X509Certificates.xml +packages/System.Security.Cryptography.X509Certificates.4.3.0/ref/netstandard1.4/ja/System.Security.Cryptography.X509Certificates.xml +packages/System.Security.Cryptography.X509Certificates.4.3.0/ref/netstandard1.4/ko/System.Security.Cryptography.X509Certificates.xml +packages/System.Security.Cryptography.X509Certificates.4.3.0/ref/netstandard1.4/ru/System.Security.Cryptography.X509Certificates.xml +packages/System.Security.Cryptography.X509Certificates.4.3.0/ref/netstandard1.4/System.Security.Cryptography.X509Certificates.dll +packages/System.Security.Cryptography.X509Certificates.4.3.0/ref/netstandard1.4/System.Security.Cryptography.X509Certificates.xml +packages/System.Security.Cryptography.X509Certificates.4.3.0/ref/netstandard1.4/zh-hans/System.Security.Cryptography.X509Certificates.xml +packages/System.Security.Cryptography.X509Certificates.4.3.0/ref/netstandard1.4/zh-hant/System.Security.Cryptography.X509Certificates.xml +packages/System.Security.Cryptography.X509Certificates.4.3.0/ref/xamarinios10/_._ +packages/System.Security.Cryptography.X509Certificates.4.3.0/ref/xamarinmac20/_._ +packages/System.Security.Cryptography.X509Certificates.4.3.0/ref/xamarintvos10/_._ +packages/System.Security.Cryptography.X509Certificates.4.3.0/ref/xamarinwatchos10/_._ +packages/System.Security.Cryptography.X509Certificates.4.3.0/runtimes/unix/lib/netstandard1.6/System.Security.Cryptography.X509Certificates.dll +packages/System.Security.Cryptography.X509Certificates.4.3.0/runtimes/win/lib/net46/System.Security.Cryptography.X509Certificates.dll +packages/System.Security.Cryptography.X509Certificates.4.3.0/runtimes/win/lib/net461/System.Security.Cryptography.X509Certificates.dll +packages/System.Security.Cryptography.X509Certificates.4.3.0/runtimes/win/lib/netcore50/System.Security.Cryptography.X509Certificates.dll +packages/System.Security.Cryptography.X509Certificates.4.3.0/runtimes/win/lib/netstandard1.6/System.Security.Cryptography.X509Certificates.dll +packages/System.Security.Cryptography.X509Certificates.4.3.0/System.Security.Cryptography.X509Certificates.4.3.0.nupkg +packages/System.Security.Cryptography.X509Certificates.4.3.0/ThirdPartyNotices.txt +packages/System.Security.Principal.Windows.5.0.0/.signature.p7s +packages/System.Security.Principal.Windows.5.0.0/Icon.png +packages/System.Security.Principal.Windows.5.0.0/lib/net46/System.Security.Principal.Windows.dll +packages/System.Security.Principal.Windows.5.0.0/lib/net461/System.Security.Principal.Windows.dll +packages/System.Security.Principal.Windows.5.0.0/lib/net461/System.Security.Principal.Windows.xml +packages/System.Security.Principal.Windows.5.0.0/lib/netstandard1.3/System.Security.Principal.Windows.dll +packages/System.Security.Principal.Windows.5.0.0/lib/netstandard2.0/System.Security.Principal.Windows.dll +packages/System.Security.Principal.Windows.5.0.0/lib/netstandard2.0/System.Security.Principal.Windows.xml +packages/System.Security.Principal.Windows.5.0.0/lib/uap10.0.16299/_._ +packages/System.Security.Principal.Windows.5.0.0/LICENSE.TXT +packages/System.Security.Principal.Windows.5.0.0/ref/net46/System.Security.Principal.Windows.dll +packages/System.Security.Principal.Windows.5.0.0/ref/net461/System.Security.Principal.Windows.dll +packages/System.Security.Principal.Windows.5.0.0/ref/net461/System.Security.Principal.Windows.xml +packages/System.Security.Principal.Windows.5.0.0/ref/netcoreapp3.0/System.Security.Principal.Windows.dll +packages/System.Security.Principal.Windows.5.0.0/ref/netcoreapp3.0/System.Security.Principal.Windows.xml +packages/System.Security.Principal.Windows.5.0.0/ref/netstandard1.3/de/System.Security.Principal.Windows.xml +packages/System.Security.Principal.Windows.5.0.0/ref/netstandard1.3/es/System.Security.Principal.Windows.xml +packages/System.Security.Principal.Windows.5.0.0/ref/netstandard1.3/fr/System.Security.Principal.Windows.xml +packages/System.Security.Principal.Windows.5.0.0/ref/netstandard1.3/it/System.Security.Principal.Windows.xml +packages/System.Security.Principal.Windows.5.0.0/ref/netstandard1.3/ja/System.Security.Principal.Windows.xml +packages/System.Security.Principal.Windows.5.0.0/ref/netstandard1.3/ko/System.Security.Principal.Windows.xml +packages/System.Security.Principal.Windows.5.0.0/ref/netstandard1.3/ru/System.Security.Principal.Windows.xml +packages/System.Security.Principal.Windows.5.0.0/ref/netstandard1.3/System.Security.Principal.Windows.dll +packages/System.Security.Principal.Windows.5.0.0/ref/netstandard1.3/System.Security.Principal.Windows.xml +packages/System.Security.Principal.Windows.5.0.0/ref/netstandard1.3/zh-hans/System.Security.Principal.Windows.xml +packages/System.Security.Principal.Windows.5.0.0/ref/netstandard1.3/zh-hant/System.Security.Principal.Windows.xml +packages/System.Security.Principal.Windows.5.0.0/ref/netstandard2.0/System.Security.Principal.Windows.dll +packages/System.Security.Principal.Windows.5.0.0/ref/netstandard2.0/System.Security.Principal.Windows.xml +packages/System.Security.Principal.Windows.5.0.0/ref/uap10.0.16299/_._ +packages/System.Security.Principal.Windows.5.0.0/runtimes/unix/lib/netcoreapp2.0/System.Security.Principal.Windows.dll +packages/System.Security.Principal.Windows.5.0.0/runtimes/unix/lib/netcoreapp2.0/System.Security.Principal.Windows.xml +packages/System.Security.Principal.Windows.5.0.0/runtimes/unix/lib/netcoreapp2.1/System.Security.Principal.Windows.dll +packages/System.Security.Principal.Windows.5.0.0/runtimes/unix/lib/netcoreapp2.1/System.Security.Principal.Windows.xml +packages/System.Security.Principal.Windows.5.0.0/runtimes/win/lib/net46/System.Security.Principal.Windows.dll +packages/System.Security.Principal.Windows.5.0.0/runtimes/win/lib/net461/System.Security.Principal.Windows.dll +packages/System.Security.Principal.Windows.5.0.0/runtimes/win/lib/net461/System.Security.Principal.Windows.xml +packages/System.Security.Principal.Windows.5.0.0/runtimes/win/lib/netcoreapp2.0/System.Security.Principal.Windows.dll +packages/System.Security.Principal.Windows.5.0.0/runtimes/win/lib/netcoreapp2.0/System.Security.Principal.Windows.xml +packages/System.Security.Principal.Windows.5.0.0/runtimes/win/lib/netcoreapp2.1/System.Security.Principal.Windows.dll +packages/System.Security.Principal.Windows.5.0.0/runtimes/win/lib/netcoreapp2.1/System.Security.Principal.Windows.xml +packages/System.Security.Principal.Windows.5.0.0/runtimes/win/lib/netstandard1.3/System.Security.Principal.Windows.dll +packages/System.Security.Principal.Windows.5.0.0/runtimes/win/lib/uap10.0.16299/_._ +packages/System.Security.Principal.Windows.5.0.0/System.Security.Principal.Windows.5.0.0.nupkg +packages/System.Security.Principal.Windows.5.0.0/THIRD-PARTY-NOTICES.TXT +packages/System.Security.Principal.Windows.5.0.0/useSharedDesignerContext.txt +packages/System.Security.Principal.Windows.5.0.0/version.txt +packages/System.Threading.AccessControl.6.0.0/.signature.p7s +packages/System.Threading.AccessControl.6.0.0/buildTransitive/netcoreapp2.0/System.Threading.AccessControl.targets +packages/System.Threading.AccessControl.6.0.0/buildTransitive/netcoreapp3.1/_._ +packages/System.Threading.AccessControl.6.0.0/Icon.png +packages/System.Threading.AccessControl.6.0.0/lib/net461/System.Threading.AccessControl.dll +packages/System.Threading.AccessControl.6.0.0/lib/net461/System.Threading.AccessControl.xml +packages/System.Threading.AccessControl.6.0.0/lib/net6.0/System.Threading.AccessControl.dll +packages/System.Threading.AccessControl.6.0.0/lib/net6.0/System.Threading.AccessControl.xml +packages/System.Threading.AccessControl.6.0.0/lib/netstandard2.0/System.Threading.AccessControl.dll +packages/System.Threading.AccessControl.6.0.0/lib/netstandard2.0/System.Threading.AccessControl.xml +packages/System.Threading.AccessControl.6.0.0/LICENSE.TXT +packages/System.Threading.AccessControl.6.0.0/runtimes/win/lib/net461/System.Threading.AccessControl.dll +packages/System.Threading.AccessControl.6.0.0/runtimes/win/lib/net461/System.Threading.AccessControl.xml +packages/System.Threading.AccessControl.6.0.0/runtimes/win/lib/net6.0/System.Threading.AccessControl.dll +packages/System.Threading.AccessControl.6.0.0/runtimes/win/lib/net6.0/System.Threading.AccessControl.xml +packages/System.Threading.AccessControl.6.0.0/runtimes/win/lib/netstandard2.0/System.Threading.AccessControl.dll +packages/System.Threading.AccessControl.6.0.0/runtimes/win/lib/netstandard2.0/System.Threading.AccessControl.xml +packages/System.Threading.AccessControl.6.0.0/System.Threading.AccessControl.6.0.0.nupkg +packages/System.Threading.AccessControl.6.0.0/THIRD-PARTY-NOTICES.TXT +packages/System.Threading.AccessControl.6.0.0/useSharedDesignerContext.txt +packages/System.Threading.Tasks.Dataflow.6.0.0/.signature.p7s +packages/System.Threading.Tasks.Dataflow.6.0.0/buildTransitive/netcoreapp2.0/System.Threading.Tasks.Dataflow.targets +packages/System.Threading.Tasks.Dataflow.6.0.0/buildTransitive/netcoreapp3.1/_._ +packages/System.Threading.Tasks.Dataflow.6.0.0/Icon.png +packages/System.Threading.Tasks.Dataflow.6.0.0/lib/net461/System.Threading.Tasks.Dataflow.dll +packages/System.Threading.Tasks.Dataflow.6.0.0/lib/net461/System.Threading.Tasks.Dataflow.xml +packages/System.Threading.Tasks.Dataflow.6.0.0/lib/net6.0/System.Threading.Tasks.Dataflow.dll +packages/System.Threading.Tasks.Dataflow.6.0.0/lib/net6.0/System.Threading.Tasks.Dataflow.xml +packages/System.Threading.Tasks.Dataflow.6.0.0/lib/netstandard2.0/System.Threading.Tasks.Dataflow.dll +packages/System.Threading.Tasks.Dataflow.6.0.0/lib/netstandard2.0/System.Threading.Tasks.Dataflow.xml +packages/System.Threading.Tasks.Dataflow.6.0.0/lib/netstandard2.1/System.Threading.Tasks.Dataflow.dll +packages/System.Threading.Tasks.Dataflow.6.0.0/lib/netstandard2.1/System.Threading.Tasks.Dataflow.xml +packages/System.Threading.Tasks.Dataflow.6.0.0/LICENSE.TXT +packages/System.Threading.Tasks.Dataflow.6.0.0/System.Threading.Tasks.Dataflow.6.0.0.nupkg +packages/System.Threading.Tasks.Dataflow.6.0.0/THIRD-PARTY-NOTICES.TXT +packages/System.Threading.Tasks.Dataflow.6.0.0/useSharedDesignerContext.txt +packages/System.Threading.Tasks.Extensions.4.5.4/.signature.p7s +packages/System.Threading.Tasks.Extensions.4.5.4/lib/MonoAndroid10/_._ +packages/System.Threading.Tasks.Extensions.4.5.4/lib/MonoTouch10/_._ +packages/System.Threading.Tasks.Extensions.4.5.4/lib/net461/System.Threading.Tasks.Extensions.dll +packages/System.Threading.Tasks.Extensions.4.5.4/lib/net461/System.Threading.Tasks.Extensions.xml +packages/System.Threading.Tasks.Extensions.4.5.4/lib/netcoreapp2.1/_._ +packages/System.Threading.Tasks.Extensions.4.5.4/lib/netstandard1.0/System.Threading.Tasks.Extensions.dll +packages/System.Threading.Tasks.Extensions.4.5.4/lib/netstandard1.0/System.Threading.Tasks.Extensions.xml +packages/System.Threading.Tasks.Extensions.4.5.4/lib/netstandard2.0/System.Threading.Tasks.Extensions.dll +packages/System.Threading.Tasks.Extensions.4.5.4/lib/netstandard2.0/System.Threading.Tasks.Extensions.xml +packages/System.Threading.Tasks.Extensions.4.5.4/lib/portable-net45+win8+wp8+wpa81/System.Threading.Tasks.Extensions.dll +packages/System.Threading.Tasks.Extensions.4.5.4/lib/portable-net45+win8+wp8+wpa81/System.Threading.Tasks.Extensions.xml +packages/System.Threading.Tasks.Extensions.4.5.4/lib/xamarinios10/_._ +packages/System.Threading.Tasks.Extensions.4.5.4/lib/xamarinmac20/_._ +packages/System.Threading.Tasks.Extensions.4.5.4/lib/xamarintvos10/_._ +packages/System.Threading.Tasks.Extensions.4.5.4/lib/xamarinwatchos10/_._ +packages/System.Threading.Tasks.Extensions.4.5.4/LICENSE.TXT +packages/System.Threading.Tasks.Extensions.4.5.4/ref/MonoAndroid10/_._ +packages/System.Threading.Tasks.Extensions.4.5.4/ref/MonoTouch10/_._ +packages/System.Threading.Tasks.Extensions.4.5.4/ref/netcoreapp2.1/_._ +packages/System.Threading.Tasks.Extensions.4.5.4/ref/xamarinios10/_._ +packages/System.Threading.Tasks.Extensions.4.5.4/ref/xamarinmac20/_._ +packages/System.Threading.Tasks.Extensions.4.5.4/ref/xamarintvos10/_._ +packages/System.Threading.Tasks.Extensions.4.5.4/ref/xamarinwatchos10/_._ +packages/System.Threading.Tasks.Extensions.4.5.4/System.Threading.Tasks.Extensions.4.5.4.nupkg +packages/System.Threading.Tasks.Extensions.4.5.4/THIRD-PARTY-NOTICES.TXT +packages/System.Threading.Tasks.Extensions.4.5.4/useSharedDesignerContext.txt +packages/System.Threading.Tasks.Extensions.4.5.4/version.txt +CxViewer2022/bin/Release/CxViewerAction.xml +CxViewer2022/bin/Release/CxViewerAction.XmlSerializers.dll +CxViewer2022/bin/Release/Microsoft.VisualStudio.Shell.Interop.dll +CxViewer2022/bin/Release/x64/CefSharp.BrowserSubprocess.Core.dll +CxViewer2022/bin/Release/x64/CefSharp.BrowserSubprocess.Core.pdb +CxViewer2022/bin/Release/x64/CefSharp.BrowserSubprocess.exe +CxViewer2022/bin/Release/x64/CefSharp.BrowserSubprocess.pdb +CxViewer2022/bin/Release/x64/CefSharp.Core.Runtime.dll +CxViewer2022/bin/Release/x64/CefSharp.Core.Runtime.pdb +CxViewer2022/bin/Release/x64/CefSharp.Core.Runtime.xml +CxViewer2022/bin/Release/x64/CefSharp.dll +CxViewer2022/bin/Release/x64/chrome_100_percent.pak +CxViewer2022/bin/Release/x64/chrome_200_percent.pak +CxViewer2022/bin/Release/x64/chrome_elf.dll +CxViewer2022/bin/Release/x64/d3dcompiler_47.dll +CxViewer2022/bin/Release/x64/icudtl.dat +CxViewer2022/bin/Release/x64/libcef.dll +CxViewer2022/bin/Release/x64/libEGL.dll +CxViewer2022/bin/Release/x64/libGLESv2.dll +CxViewer2022/bin/Release/x64/LICENSE.txt +CxViewer2022/bin/Release/x64/locales/am.pak +CxViewer2022/bin/Release/x64/locales/ar.pak +CxViewer2022/bin/Release/x64/locales/bg.pak +CxViewer2022/bin/Release/x64/locales/bn.pak +CxViewer2022/bin/Release/x64/locales/ca.pak +CxViewer2022/bin/Release/x64/locales/cs.pak +CxViewer2022/bin/Release/x64/locales/da.pak +CxViewer2022/bin/Release/x64/locales/de.pak +CxViewer2022/bin/Release/x64/locales/el.pak +CxViewer2022/bin/Release/x64/locales/en-GB.pak +CxViewer2022/bin/Release/x64/locales/en-US.pak +CxViewer2022/bin/Release/x64/locales/es-419.pak +CxViewer2022/bin/Release/x64/locales/es.pak +CxViewer2022/bin/Release/x64/locales/et.pak +CxViewer2022/bin/Release/x64/locales/fa.pak +CxViewer2022/bin/Release/x64/locales/fi.pak +CxViewer2022/bin/Release/x64/locales/fil.pak +CxViewer2022/bin/Release/x64/locales/fr.pak +CxViewer2022/bin/Release/x64/locales/gu.pak +CxViewer2022/bin/Release/x64/locales/he.pak +CxViewer2022/bin/Release/x64/locales/hi.pak +CxViewer2022/bin/Release/x64/locales/hr.pak +CxViewer2022/bin/Release/x64/locales/hu.pak +CxViewer2022/bin/Release/x64/locales/id.pak +CxViewer2022/bin/Release/x64/locales/it.pak +CxViewer2022/bin/Release/x64/locales/ja.pak +CxViewer2022/bin/Release/x64/locales/kn.pak +CxViewer2022/bin/Release/x64/locales/ko.pak +CxViewer2022/bin/Release/x64/locales/lt.pak +CxViewer2022/bin/Release/x64/locales/lv.pak +CxViewer2022/bin/Release/x64/locales/ml.pak +CxViewer2022/bin/Release/x64/locales/mr.pak +CxViewer2022/bin/Release/x64/locales/ms.pak +CxViewer2022/bin/Release/x64/locales/nb.pak +CxViewer2022/bin/Release/x64/locales/nl.pak +CxViewer2022/bin/Release/x64/locales/pl.pak +CxViewer2022/bin/Release/x64/locales/pt-BR.pak +CxViewer2022/bin/Release/x64/locales/pt-PT.pak +CxViewer2022/bin/Release/x64/locales/ro.pak +CxViewer2022/bin/Release/x64/locales/ru.pak +CxViewer2022/bin/Release/x64/locales/sk.pak +CxViewer2022/bin/Release/x64/locales/sl.pak +CxViewer2022/bin/Release/x64/locales/sr.pak +CxViewer2022/bin/Release/x64/locales/sv.pak +CxViewer2022/bin/Release/x64/locales/sw.pak +CxViewer2022/bin/Release/x64/locales/ta.pak +CxViewer2022/bin/Release/x64/locales/te.pak +CxViewer2022/bin/Release/x64/locales/th.pak +CxViewer2022/bin/Release/x64/locales/tr.pak +CxViewer2022/bin/Release/x64/locales/uk.pak +CxViewer2022/bin/Release/x64/locales/vi.pak +CxViewer2022/bin/Release/x64/locales/zh-CN.pak +CxViewer2022/bin/Release/x64/locales/zh-TW.pak +CxViewer2022/bin/Release/x64/README.txt +CxViewer2022/bin/Release/x64/resources.pak +CxViewer2022/bin/Release/x64/snapshot_blob.bin +CxViewer2022/bin/Release/x64/swiftshader/libEGL.dll +CxViewer2022/bin/Release/x64/swiftshader/libGLESv2.dll +CxViewer2022/bin/Release/x64/v8_context_snapshot.bin +CxViewer2022/bin/Release/x64/vk_swiftshader.dll +CxViewer2022/bin/Release/x64/vk_swiftshader_icd.json +CxViewer2022/bin/Release/x64/vulkan-1.dll +CxViewer2022/bin/Release/x86/CefSharp.BrowserSubprocess.Core.dll +CxViewer2022/bin/Release/x86/CefSharp.BrowserSubprocess.Core.pdb +CxViewer2022/bin/Release/x86/CefSharp.BrowserSubprocess.exe +CxViewer2022/bin/Release/x86/CefSharp.BrowserSubprocess.pdb +CxViewer2022/bin/Release/x86/CefSharp.Core.Runtime.dll +CxViewer2022/bin/Release/x86/CefSharp.Core.Runtime.pdb +CxViewer2022/bin/Release/x86/CefSharp.Core.Runtime.xml +CxViewer2022/bin/Release/x86/CefSharp.dll +CxViewer2022/bin/Release/x86/chrome_100_percent.pak +CxViewer2022/bin/Release/x86/chrome_200_percent.pak +CxViewer2022/bin/Release/x86/chrome_elf.dll +CxViewer2022/bin/Release/x86/d3dcompiler_47.dll +CxViewer2022/bin/Release/x86/icudtl.dat +CxViewer2022/bin/Release/x86/libcef.dll +CxViewer2022/bin/Release/x86/libEGL.dll +CxViewer2022/bin/Release/x86/libGLESv2.dll +CxViewer2022/bin/Release/x86/LICENSE.txt +CxViewer2022/bin/Release/x86/locales/am.pak +CxViewer2022/bin/Release/x86/locales/ar.pak +CxViewer2022/bin/Release/x86/locales/bg.pak +CxViewer2022/bin/Release/x86/locales/bn.pak +CxViewer2022/bin/Release/x86/locales/ca.pak +CxViewer2022/bin/Release/x86/locales/cs.pak +CxViewer2022/bin/Release/x86/locales/da.pak +CxViewer2022/bin/Release/x86/locales/de.pak +CxViewer2022/bin/Release/x86/locales/el.pak +CxViewer2022/bin/Release/x86/locales/en-GB.pak +CxViewer2022/bin/Release/x86/locales/en-US.pak +CxViewer2022/bin/Release/x86/locales/es-419.pak +CxViewer2022/bin/Release/x86/locales/es.pak +CxViewer2022/bin/Release/x86/locales/et.pak +CxViewer2022/bin/Release/x86/locales/fa.pak +CxViewer2022/bin/Release/x86/locales/fi.pak +CxViewer2022/bin/Release/x86/locales/fil.pak +CxViewer2022/bin/Release/x86/locales/fr.pak +CxViewer2022/bin/Release/x86/locales/gu.pak +CxViewer2022/bin/Release/x86/locales/he.pak +CxViewer2022/bin/Release/x86/locales/hi.pak +CxViewer2022/bin/Release/x86/locales/hr.pak +CxViewer2022/bin/Release/x86/locales/hu.pak +CxViewer2022/bin/Release/x86/locales/id.pak +CxViewer2022/bin/Release/x86/locales/it.pak +CxViewer2022/bin/Release/x86/locales/ja.pak +CxViewer2022/bin/Release/x86/locales/kn.pak +CxViewer2022/bin/Release/x86/locales/ko.pak +CxViewer2022/bin/Release/x86/locales/lt.pak +CxViewer2022/bin/Release/x86/locales/lv.pak +CxViewer2022/bin/Release/x86/locales/ml.pak +CxViewer2022/bin/Release/x86/locales/mr.pak +CxViewer2022/bin/Release/x86/locales/ms.pak +CxViewer2022/bin/Release/x86/locales/nb.pak +CxViewer2022/bin/Release/x86/locales/nl.pak +CxViewer2022/bin/Release/x86/locales/pl.pak +CxViewer2022/bin/Release/x86/locales/pt-BR.pak +CxViewer2022/bin/Release/x86/locales/pt-PT.pak +CxViewer2022/bin/Release/x86/locales/ro.pak +CxViewer2022/bin/Release/x86/locales/ru.pak +CxViewer2022/bin/Release/x86/locales/sk.pak +CxViewer2022/bin/Release/x86/locales/sl.pak +CxViewer2022/bin/Release/x86/locales/sr.pak +CxViewer2022/bin/Release/x86/locales/sv.pak +CxViewer2022/bin/Release/x86/locales/sw.pak +CxViewer2022/bin/Release/x86/locales/ta.pak +CxViewer2022/bin/Release/x86/locales/te.pak +CxViewer2022/bin/Release/x86/locales/th.pak +CxViewer2022/bin/Release/x86/locales/tr.pak +CxViewer2022/bin/Release/x86/locales/uk.pak +CxViewer2022/bin/Release/x86/locales/vi.pak +CxViewer2022/bin/Release/x86/locales/zh-CN.pak +CxViewer2022/bin/Release/x86/locales/zh-TW.pak +CxViewer2022/bin/Release/x86/README.txt +CxViewer2022/bin/Release/x86/resources.pak +CxViewer2022/bin/Release/x86/snapshot_blob.bin +CxViewer2022/bin/Release/x86/swiftshader/libEGL.dll +CxViewer2022/bin/Release/x86/swiftshader/libGLESv2.dll +CxViewer2022/bin/Release/x86/v8_context_snapshot.bin +CxViewer2022/bin/Release/x86/vk_swiftshader.dll +CxViewer2022/bin/Release/x86/vk_swiftshader_icd.json +CxViewer2022/bin/Release/x86/vulkan-1.dll +CxViewer2022/obj/CxViewer2022.csproj.nuget.cache +CxViewer2022/obj/Release/_EmptyResource.resources +CxViewer2022/obj/Release/_EmptyResource.resources.original +CxViewer2022/obj/Release/createTemplateManifests.cache +CxViewer2022/obj/Release/ctoFiles.json +CxViewer2022/obj/Release/CxViewer2022.csproj.CopyComplete +CxViewer2022/obj/Release/CxViewer2022.csproj.CoreCompileInputs.cache +CxViewer2022/obj/Release/CxViewer2022.csproj.GenerateResource.cache +CxViewer2022/obj/Release/CxViewer2022.csproj.VsixDeployedFileListAbsolute.txt +CxViewer2022/obj/Release/CxViewer2022.dll +CxViewer2022/obj/Release/CxViewer2022.latest.pkgdef +CxViewer2022/obj/Release/CxViewer2022.pdb +CxViewer2022/obj/Release/CxViewer2022.pkgdef +CxViewer2022/obj/Release/CxViewer2022.VSPackage.resources +CxViewer2022/obj/Release/CxViewerPackage.cto +CxViewer2022/obj/Release/extension.vsixmanifest +CxViewer2022/obj/Release/files.json +CxViewer2022/obj/Release/mergeCto.cache +CxViewer2022/obj/Release/resources.json +CxViewer2022/obj/Release/VSCT.read.1.tlog +CxViewer2022/obj/Release/VSCT.write.1.tlog +CxViewerAction2019/bin/Release/CefSharp.Core.dll +CxViewerAction2019/bin/Release/CefSharp.Core.pdb +CxViewerAction2019/bin/Release/CefSharp.Core.xml +CxViewerAction2019/bin/Release/CefSharp.dll +CxViewerAction2019/bin/Release/CefSharp.pdb +CxViewerAction2019/bin/Release/CefSharp.WinForms.dll +CxViewerAction2019/bin/Release/CefSharp.WinForms.pdb +CxViewerAction2019/bin/Release/CefSharp.WinForms.xml +CxViewerAction2019/bin/Release/CefSharp.xml +CxViewerAction2019/bin/Release/ColorButton.dll +CxViewerAction2019/bin/Release/Common.dll +CxViewerAction2019/bin/Release/Common.pdb +CxViewerAction2019/bin/Release/CxViewerAction.xml +CxViewerAction2019/bin/Release/CxViewerAction2019.dll +CxViewerAction2019/bin/Release/CxViewerAction2019.dll.config +CxViewerAction2019/bin/Release/CxViewerAction2019.XmlSerializers.dll +CxViewerAction2019/bin/Release/DgvFilterPopup.dll +CxViewerAction2019/bin/Release/DgvFilterPopup.pdb +CxViewerAction2019/bin/Release/EnvDTE80.dll +CxViewerAction2019/bin/Release/EnvDTE90.dll +CxViewerAction2019/bin/Release/Ionic.Zip.dll +CxViewerAction2019/bin/Release/log4net.dll +CxViewerAction2019/bin/Release/Microsoft.Msagl.dll +CxViewerAction2019/bin/Release/Microsoft.Msagl.Drawing.dll +CxViewerAction2019/bin/Release/Microsoft.Msagl.Drawing.xml +CxViewerAction2019/bin/Release/Microsoft.Msagl.GraphViewerGdi.dll +CxViewerAction2019/bin/Release/Microsoft.Msagl.GraphViewerGdi.xml +CxViewerAction2019/bin/Release/Microsoft.Msagl.xml +CxViewerAction2019/bin/Release/Microsoft.MSXML.dll +CxViewerAction2019/bin/Release/Microsoft.VisualStudio.Imaging.dll +CxViewerAction2019/bin/Release/Microsoft.VisualStudio.Imaging.xml +CxViewerAction2019/bin/Release/Microsoft.VisualStudio.Modeling.Sdk.Integration.10.0.dll +CxViewerAction2019/bin/Release/Microsoft.VisualStudio.Modeling.SDK.Integration.Shell.10.0.dll +CxViewerAction2019/bin/Release/Microsoft.VisualStudio.OLE.Interop.dll +CxViewerAction2019/bin/Release/Microsoft.VisualStudio.OLE.Interop.xml +CxViewerAction2019/bin/Release/Microsoft.VisualStudio.ProjectAggregator.dll +CxViewerAction2019/bin/Release/Microsoft.VisualStudio.Shell.10.0.dll +CxViewerAction2019/bin/Release/Microsoft.VisualStudio.Shell.14.0.dll +CxViewerAction2019/bin/Release/Microsoft.VisualStudio.Shell.14.0.xml +CxViewerAction2019/bin/Release/Microsoft.VisualStudio.Shell.Immutable.10.0.dll +CxViewerAction2019/bin/Release/Microsoft.VisualStudio.Shell.Immutable.10.0.xml +CxViewerAction2019/bin/Release/Microsoft.VisualStudio.Shell.Immutable.11.0.dll +CxViewerAction2019/bin/Release/Microsoft.VisualStudio.Shell.Immutable.11.0.xml +CxViewerAction2019/bin/Release/Microsoft.VisualStudio.Shell.Immutable.12.0.dll +CxViewerAction2019/bin/Release/Microsoft.VisualStudio.Shell.Immutable.12.0.xml +CxViewerAction2019/bin/Release/Microsoft.VisualStudio.Shell.Immutable.14.0.dll +CxViewerAction2019/bin/Release/Microsoft.VisualStudio.Shell.Immutable.14.0.xml +CxViewerAction2019/bin/Release/Microsoft.VisualStudio.Shell.Interop.8.0.dll +CxViewerAction2019/bin/Release/Microsoft.VisualStudio.Shell.Interop.8.0.xml +CxViewerAction2019/bin/Release/Microsoft.VisualStudio.Shell.Interop.9.0.dll +CxViewerAction2019/bin/Release/Microsoft.VisualStudio.Shell.Interop.9.0.xml +CxViewerAction2019/bin/Release/Microsoft.VisualStudio.Shell.Interop.dll +CxViewerAction2019/bin/Release/Microsoft.VisualStudio.Shell.Interop.xml +CxViewerAction2019/bin/Release/Microsoft.VisualStudio.TextManager.Interop.8.0.dll +CxViewerAction2019/bin/Release/Microsoft.VisualStudio.TextManager.Interop.8.0.xml +CxViewerAction2019/bin/Release/Microsoft.VisualStudio.TextManager.Interop.dll +CxViewerAction2019/bin/Release/Microsoft.VisualStudio.TextManager.Interop.xml +CxViewerAction2019/bin/Release/Microsoft.VisualStudio.Threading.dll +CxViewerAction2019/bin/Release/Microsoft.VisualStudio.Threading.xml +CxViewerAction2019/bin/Release/Microsoft.VisualStudio.Utilities.dll +CxViewerAction2019/bin/Release/Microsoft.VisualStudio.Utilities.xml +CxViewerAction2019/bin/Release/Microsoft.VisualStudio.Validation.dll +CxViewerAction2019/bin/Release/Microsoft.VisualStudio.Validation.xml +CxViewerAction2019/bin/Release/Microsoft.VisualStudio.VSHelp.dll +CxViewerAction2019/bin/Release/Newtonsoft.Json.dll +CxViewerAction2019/bin/Release/Newtonsoft.Json.xml +CxViewerAction2019/bin/Release/stdole.dll +CxViewerAction2019/bin/Release/x64/CefSharp.BrowserSubprocess.Core.dll +CxViewerAction2019/bin/Release/x64/CefSharp.BrowserSubprocess.Core.pdb +CxViewerAction2019/bin/Release/x64/CefSharp.BrowserSubprocess.exe +CxViewerAction2019/bin/Release/x64/CefSharp.BrowserSubprocess.pdb +CxViewerAction2019/bin/Release/x64/CefSharp.Core.Runtime.dll +CxViewerAction2019/bin/Release/x64/CefSharp.Core.Runtime.pdb +CxViewerAction2019/bin/Release/x64/CefSharp.Core.Runtime.xml +CxViewerAction2019/bin/Release/x64/CefSharp.dll +CxViewerAction2019/bin/Release/x64/chrome_100_percent.pak +CxViewerAction2019/bin/Release/x64/chrome_200_percent.pak +CxViewerAction2019/bin/Release/x64/chrome_elf.dll +CxViewerAction2019/bin/Release/x64/d3dcompiler_47.dll +CxViewerAction2019/bin/Release/x64/icudtl.dat +CxViewerAction2019/bin/Release/x64/libcef.dll +CxViewerAction2019/bin/Release/x64/libEGL.dll +CxViewerAction2019/bin/Release/x64/libGLESv2.dll +CxViewerAction2019/bin/Release/x64/LICENSE.txt +CxViewerAction2019/bin/Release/x64/locales/am.pak +CxViewerAction2019/bin/Release/x64/locales/ar.pak +CxViewerAction2019/bin/Release/x64/locales/bg.pak +CxViewerAction2019/bin/Release/x64/locales/bn.pak +CxViewerAction2019/bin/Release/x64/locales/ca.pak +CxViewerAction2019/bin/Release/x64/locales/cs.pak +CxViewerAction2019/bin/Release/x64/locales/da.pak +CxViewerAction2019/bin/Release/x64/locales/de.pak +CxViewerAction2019/bin/Release/x64/locales/el.pak +CxViewerAction2019/bin/Release/x64/locales/en-GB.pak +CxViewerAction2019/bin/Release/x64/locales/en-US.pak +CxViewerAction2019/bin/Release/x64/locales/es-419.pak +CxViewerAction2019/bin/Release/x64/locales/es.pak +CxViewerAction2019/bin/Release/x64/locales/et.pak +CxViewerAction2019/bin/Release/x64/locales/fa.pak +CxViewerAction2019/bin/Release/x64/locales/fi.pak +CxViewerAction2019/bin/Release/x64/locales/fil.pak +CxViewerAction2019/bin/Release/x64/locales/fr.pak +CxViewerAction2019/bin/Release/x64/locales/gu.pak +CxViewerAction2019/bin/Release/x64/locales/he.pak +CxViewerAction2019/bin/Release/x64/locales/hi.pak +CxViewerAction2019/bin/Release/x64/locales/hr.pak +CxViewerAction2019/bin/Release/x64/locales/hu.pak +CxViewerAction2019/bin/Release/x64/locales/id.pak +CxViewerAction2019/bin/Release/x64/locales/it.pak +CxViewerAction2019/bin/Release/x64/locales/ja.pak +CxViewerAction2019/bin/Release/x64/locales/kn.pak +CxViewerAction2019/bin/Release/x64/locales/ko.pak +CxViewerAction2019/bin/Release/x64/locales/lt.pak +CxViewerAction2019/bin/Release/x64/locales/lv.pak +CxViewerAction2019/bin/Release/x64/locales/ml.pak +CxViewerAction2019/bin/Release/x64/locales/mr.pak +CxViewerAction2019/bin/Release/x64/locales/ms.pak +CxViewerAction2019/bin/Release/x64/locales/nb.pak +CxViewerAction2019/bin/Release/x64/locales/nl.pak +CxViewerAction2019/bin/Release/x64/locales/pl.pak +CxViewerAction2019/bin/Release/x64/locales/pt-BR.pak +CxViewerAction2019/bin/Release/x64/locales/pt-PT.pak +CxViewerAction2019/bin/Release/x64/locales/ro.pak +CxViewerAction2019/bin/Release/x64/locales/ru.pak +CxViewerAction2019/bin/Release/x64/locales/sk.pak +CxViewerAction2019/bin/Release/x64/locales/sl.pak +CxViewerAction2019/bin/Release/x64/locales/sr.pak +CxViewerAction2019/bin/Release/x64/locales/sv.pak +CxViewerAction2019/bin/Release/x64/locales/sw.pak +CxViewerAction2019/bin/Release/x64/locales/ta.pak +CxViewerAction2019/bin/Release/x64/locales/te.pak +CxViewerAction2019/bin/Release/x64/locales/th.pak +CxViewerAction2019/bin/Release/x64/locales/tr.pak +CxViewerAction2019/bin/Release/x64/locales/uk.pak +CxViewerAction2019/bin/Release/x64/locales/vi.pak +CxViewerAction2019/bin/Release/x64/locales/zh-CN.pak +CxViewerAction2019/bin/Release/x64/locales/zh-TW.pak +CxViewerAction2019/bin/Release/x64/README.txt +CxViewerAction2019/bin/Release/x64/resources.pak +CxViewerAction2019/bin/Release/x64/snapshot_blob.bin +CxViewerAction2019/bin/Release/x64/swiftshader/libEGL.dll +CxViewerAction2019/bin/Release/x64/swiftshader/libGLESv2.dll +CxViewerAction2019/bin/Release/x64/v8_context_snapshot.bin +CxViewerAction2019/bin/Release/x64/vk_swiftshader.dll +CxViewerAction2019/bin/Release/x64/vk_swiftshader_icd.json +CxViewerAction2019/bin/Release/x64/vulkan-1.dll +CxViewerAction2019/bin/Release/x86/CefSharp.BrowserSubprocess.Core.dll +CxViewerAction2019/bin/Release/x86/CefSharp.BrowserSubprocess.Core.pdb +CxViewerAction2019/bin/Release/x86/CefSharp.BrowserSubprocess.exe +CxViewerAction2019/bin/Release/x86/CefSharp.BrowserSubprocess.pdb +CxViewerAction2019/bin/Release/x86/CefSharp.Core.Runtime.dll +CxViewerAction2019/bin/Release/x86/CefSharp.Core.Runtime.pdb +CxViewerAction2019/bin/Release/x86/CefSharp.Core.Runtime.xml +CxViewerAction2019/bin/Release/x86/CefSharp.dll +CxViewerAction2019/bin/Release/x86/chrome_100_percent.pak +CxViewerAction2019/bin/Release/x86/chrome_200_percent.pak +CxViewerAction2019/bin/Release/x86/chrome_elf.dll +CxViewerAction2019/bin/Release/x86/d3dcompiler_47.dll +CxViewerAction2019/bin/Release/x86/icudtl.dat +CxViewerAction2019/bin/Release/x86/libcef.dll +CxViewerAction2019/bin/Release/x86/libEGL.dll +CxViewerAction2019/bin/Release/x86/libGLESv2.dll +CxViewerAction2019/bin/Release/x86/LICENSE.txt +CxViewerAction2019/bin/Release/x86/locales/am.pak +CxViewerAction2019/bin/Release/x86/locales/ar.pak +CxViewerAction2019/bin/Release/x86/locales/bg.pak +CxViewerAction2019/bin/Release/x86/locales/bn.pak +CxViewerAction2019/bin/Release/x86/locales/ca.pak +CxViewerAction2019/bin/Release/x86/locales/cs.pak +CxViewerAction2019/bin/Release/x86/locales/da.pak +CxViewerAction2019/bin/Release/x86/locales/de.pak +CxViewerAction2019/bin/Release/x86/locales/el.pak +CxViewerAction2019/bin/Release/x86/locales/en-GB.pak +CxViewerAction2019/bin/Release/x86/locales/en-US.pak +CxViewerAction2019/bin/Release/x86/locales/es-419.pak +CxViewerAction2019/bin/Release/x86/locales/es.pak +CxViewerAction2019/bin/Release/x86/locales/et.pak +CxViewerAction2019/bin/Release/x86/locales/fa.pak +CxViewerAction2019/bin/Release/x86/locales/fi.pak +CxViewerAction2019/bin/Release/x86/locales/fil.pak +CxViewerAction2019/bin/Release/x86/locales/fr.pak +CxViewerAction2019/bin/Release/x86/locales/gu.pak +CxViewerAction2019/bin/Release/x86/locales/he.pak +CxViewerAction2019/bin/Release/x86/locales/hi.pak +CxViewerAction2019/bin/Release/x86/locales/hr.pak +CxViewerAction2019/bin/Release/x86/locales/hu.pak +CxViewerAction2019/bin/Release/x86/locales/id.pak +CxViewerAction2019/bin/Release/x86/locales/it.pak +CxViewerAction2019/bin/Release/x86/locales/ja.pak +CxViewerAction2019/bin/Release/x86/locales/kn.pak +CxViewerAction2019/bin/Release/x86/locales/ko.pak +CxViewerAction2019/bin/Release/x86/locales/lt.pak +CxViewerAction2019/bin/Release/x86/locales/lv.pak +CxViewerAction2019/bin/Release/x86/locales/ml.pak +CxViewerAction2019/bin/Release/x86/locales/mr.pak +CxViewerAction2019/bin/Release/x86/locales/ms.pak +CxViewerAction2019/bin/Release/x86/locales/nb.pak +CxViewerAction2019/bin/Release/x86/locales/nl.pak +CxViewerAction2019/bin/Release/x86/locales/pl.pak +CxViewerAction2019/bin/Release/x86/locales/pt-BR.pak +CxViewerAction2019/bin/Release/x86/locales/pt-PT.pak +CxViewerAction2019/bin/Release/x86/locales/ro.pak +CxViewerAction2019/bin/Release/x86/locales/ru.pak +CxViewerAction2019/bin/Release/x86/locales/sk.pak +CxViewerAction2019/bin/Release/x86/locales/sl.pak +CxViewerAction2019/bin/Release/x86/locales/sr.pak +CxViewerAction2019/bin/Release/x86/locales/sv.pak +CxViewerAction2019/bin/Release/x86/locales/sw.pak +CxViewerAction2019/bin/Release/x86/locales/ta.pak +CxViewerAction2019/bin/Release/x86/locales/te.pak +CxViewerAction2019/bin/Release/x86/locales/th.pak +CxViewerAction2019/bin/Release/x86/locales/tr.pak +CxViewerAction2019/bin/Release/x86/locales/uk.pak +CxViewerAction2019/bin/Release/x86/locales/vi.pak +CxViewerAction2019/bin/Release/x86/locales/zh-CN.pak +CxViewerAction2019/bin/Release/x86/locales/zh-TW.pak +CxViewerAction2019/bin/Release/x86/README.txt +CxViewerAction2019/bin/Release/x86/resources.pak +CxViewerAction2019/bin/Release/x86/snapshot_blob.bin +CxViewerAction2019/bin/Release/x86/swiftshader/libEGL.dll +CxViewerAction2019/bin/Release/x86/swiftshader/libGLESv2.dll +CxViewerAction2019/bin/Release/x86/v8_context_snapshot.bin +CxViewerAction2019/bin/Release/x86/vk_swiftshader.dll +CxViewerAction2019/bin/Release/x86/vk_swiftshader_icd.json +CxViewerAction2019/bin/Release/x86/vulkan-1.dll +CxViewerAction2019/obj/Release/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs +CxViewerAction2019/obj/Release/CxViewerAction.Views.BrowserForm.resources +CxViewerAction2019/obj/Release/CxViewerAction.Views.DockedView.ConnectionCtrl.resources +CxViewerAction2019/obj/Release/CxViewerAction.Views.DockedView.OidcLoginCtrl.resources +CxViewerAction2019/obj/Release/CxViewerAction.Views.DockedView.OptionsAuthCtrl.resources +CxViewerAction2019/obj/Release/CxViewerAction.Views.DockedView.OptionsZipCtrl.resources +CxViewerAction2019/obj/Release/CxViewerAction.Views.DockedView.PerspectiveCtrl.resources +CxViewerAction2019/obj/Release/CxViewerAction.Views.DockedView.PerspectiveGraphCtrl.resources +CxViewerAction2019/obj/Release/CxViewerAction.Views.DockedView.PerspectivePathCtrl.resources +CxViewerAction2019/obj/Release/CxViewerAction.Views.DockedView.PerspectiveResultCtrl.resources +CxViewerAction2019/obj/Release/CxViewerAction.Views.DockedView.ScanProcessCtrl.resources +CxViewerAction2019/obj/Release/CxViewerAction.Views.EditRemarkPopUp.resources +CxViewerAction2019/obj/Release/CxViewerAction.Views.ErrorFrm.resources +CxViewerAction2019/obj/Release/CxViewerAction.Views.frmBindingPrjList.resources +CxViewerAction2019/obj/Release/CxViewerAction.Views.OidcLoginFrm.resources +CxViewerAction2019/obj/Release/CxViewerAction.Views.OpenPercspectiveDialog.resources +CxViewerAction2019/obj/Release/CxViewerAction.Views.ScanProcessFrm.resources +CxViewerAction2019/obj/Release/CxViewerAction.Views.SubmitUserFrm.resources +CxViewerAction2019/obj/Release/CxViewerAction.Views.UploadFrm.resources +CxViewerAction2019/obj/Release/CxViewerAction.Views.WaitFrm.resources +CxViewerAction2019/obj/Release/CxViewerAction2019.CommandBar.resources +CxViewerAction2019/obj/Release/CxViewerAction2019.csproj.AssemblyReference.cache +CxViewerAction2019/obj/Release/CxViewerAction2019.csproj.CopyComplete +CxViewerAction2019/obj/Release/CxViewerAction2019.csproj.CoreCompileInputs.cache +CxViewerAction2019/obj/Release/CxViewerAction2019.csproj.FileListAbsolute.txt +CxViewerAction2019/obj/Release/CxViewerAction2019.csproj.GenerateResource.cache +CxViewerAction2019/obj/Release/CxViewerAction2019.dll +CxViewerAction2019/obj/Release/CxViewerAction2019.Properties.Resources.resources +CxViewerAction2019/obj/Release/CxViewerAction2019.Resources.CxViewerResources.resources +CxViewerAction2019/obj/Release/CxViewerAction2019.XmlSerializers.dll +CxViewerVSIX/bin/x86/Release/zh-Hant/StreamJsonRpc.resources.dll +CxViewerVSIX/bin/x86/Release/zh-Hant/Microsoft.VisualStudio.Validation.resources.dll +CxViewerVSIX/bin/x86/Release/zh-Hant/Microsoft.VisualStudio.Threading.resources.dll +CxViewerVSIX/bin/x86/Release/zh-Hant/Microsoft.ServiceHub.Framework.resources.dll +CxViewerVSIX/bin/x86/Release/zh-Hans/StreamJsonRpc.resources.dll +CxViewerVSIX/bin/x86/Release/zh-Hans/Microsoft.VisualStudio.Validation.resources.dll +CxViewerVSIX/bin/x86/Release/zh-Hans/Microsoft.VisualStudio.Threading.resources.dll +CxViewerVSIX/bin/x86/Release/zh-Hans/Microsoft.ServiceHub.Framework.resources.dll +CxViewerVSIX/bin/x86/Release/vulkan-1.dll +CxViewerVSIX/bin/x86/Release/vk_swiftshader_icd.json +CxViewerVSIX/bin/x86/Release/vk_swiftshader.dll +CxViewerVSIX/bin/x86/Release/v8_context_snapshot.bin +CxViewerVSIX/bin/x86/Release/tr/StreamJsonRpc.resources.dll +CxViewerVSIX/bin/x86/Release/tr/Microsoft.VisualStudio.Validation.resources.dll +CxViewerVSIX/bin/x86/Release/tr/Microsoft.VisualStudio.Threading.resources.dll +CxViewerVSIX/bin/x86/Release/tr/Microsoft.ServiceHub.Framework.resources.dll +CxViewerVSIX/bin/x86/Release/System.Threading.Tasks.Extensions.xml +CxViewerVSIX/bin/x86/Release/System.Threading.Tasks.Extensions.dll +CxViewerVSIX/bin/x86/Release/System.Threading.Tasks.Dataflow.xml +CxViewerVSIX/bin/x86/Release/System.Threading.Tasks.Dataflow.dll +CxViewerVSIX/bin/x86/Release/System.Threading.AccessControl.xml +CxViewerVSIX/bin/x86/Release/System.Threading.AccessControl.dll +CxViewerVSIX/bin/x86/Release/System.Security.Principal.Windows.xml +CxViewerVSIX/bin/x86/Release/System.Security.Principal.Windows.dll +CxViewerVSIX/bin/x86/Release/System.Security.AccessControl.xml +CxViewerVSIX/bin/x86/Release/System.Security.AccessControl.dll +CxViewerVSIX/bin/x86/Release/System.Runtime.CompilerServices.Unsafe.xml +CxViewerVSIX/bin/x86/Release/System.Runtime.CompilerServices.Unsafe.dll +CxViewerVSIX/bin/x86/Release/System.Numerics.Vectors.xml +CxViewerVSIX/bin/x86/Release/System.Numerics.Vectors.dll +CxViewerVSIX/bin/x86/Release/System.Memory.xml +CxViewerVSIX/bin/x86/Release/System.Memory.dll +CxViewerVSIX/bin/x86/Release/System.IO.Pipelines.xml +CxViewerVSIX/bin/x86/Release/System.IO.Pipelines.dll +CxViewerVSIX/bin/x86/Release/System.Diagnostics.DiagnosticSource.xml +CxViewerVSIX/bin/x86/Release/System.Diagnostics.DiagnosticSource.dll +CxViewerVSIX/bin/x86/Release/System.Collections.Immutable.xml +CxViewerVSIX/bin/x86/Release/System.Collections.Immutable.dll +CxViewerVSIX/bin/x86/Release/System.Buffers.xml +CxViewerVSIX/bin/x86/Release/System.Buffers.dll +CxViewerVSIX/bin/x86/Release/swiftshader/libGLESv2.dll +CxViewerVSIX/bin/x86/Release/swiftshader/libEGL.dll +CxViewerVSIX/bin/x86/Release/StreamJsonRpc.xml +CxViewerVSIX/bin/x86/Release/StreamJsonRpc.dll +CxViewerVSIX/bin/x86/Release/stdole.dll +CxViewerVSIX/bin/x86/Release/snapshot_blob.bin +CxViewerVSIX/bin/x86/Release/ru/StreamJsonRpc.resources.dll +CxViewerVSIX/bin/x86/Release/ru/Microsoft.VisualStudio.Validation.resources.dll +CxViewerVSIX/bin/x86/Release/ru/Microsoft.VisualStudio.Threading.resources.dll +CxViewerVSIX/bin/x86/Release/ru/Microsoft.ServiceHub.Framework.resources.dll +CxViewerVSIX/bin/x86/Release/Resources/LICENSE2 +CxViewerVSIX/bin/x86/Release/Resources/Checkmarx.ico +CxViewerVSIX/bin/x86/Release/resources.pak +CxViewerVSIX/bin/x86/Release/README.txt +CxViewerVSIX/bin/x86/Release/pt-BR/StreamJsonRpc.resources.dll +CxViewerVSIX/bin/x86/Release/pt-BR/Microsoft.VisualStudio.Validation.resources.dll +CxViewerVSIX/bin/x86/Release/pt-BR/Microsoft.VisualStudio.Threading.resources.dll +CxViewerVSIX/bin/x86/Release/pt-BR/Microsoft.ServiceHub.Framework.resources.dll +CxViewerVSIX/bin/x86/Release/pl/StreamJsonRpc.resources.dll +CxViewerVSIX/bin/x86/Release/pl/Microsoft.VisualStudio.Validation.resources.dll +CxViewerVSIX/bin/x86/Release/pl/Microsoft.VisualStudio.Threading.resources.dll +CxViewerVSIX/bin/x86/Release/pl/Microsoft.ServiceHub.Framework.resources.dll +CxViewerVSIX/bin/x86/Release/Newtonsoft.Json.xml +CxViewerVSIX/bin/x86/Release/Newtonsoft.Json.dll +CxViewerVSIX/bin/x86/Release/Nerdbank.Streams.xml +CxViewerVSIX/bin/x86/Release/Nerdbank.Streams.pdb +CxViewerVSIX/bin/x86/Release/Nerdbank.Streams.dll +CxViewerVSIX/bin/x86/Release/Microsoft.Win32.Registry.xml +CxViewerVSIX/bin/x86/Release/Microsoft.Win32.Registry.dll +CxViewerVSIX/bin/x86/Release/Microsoft.VisualStudio.VSHelp.dll +CxViewerVSIX/bin/x86/Release/Microsoft.VisualStudio.Validation.xml +CxViewerVSIX/bin/x86/Release/Microsoft.VisualStudio.Validation.dll +CxViewerVSIX/bin/x86/Release/Microsoft.VisualStudio.Utilities.xml +CxViewerVSIX/bin/x86/Release/Microsoft.VisualStudio.Utilities.Internal.xml +CxViewerVSIX/bin/x86/Release/Microsoft.VisualStudio.Utilities.Internal.dll +CxViewerVSIX/bin/x86/Release/Microsoft.VisualStudio.Utilities.dll +CxViewerVSIX/bin/x86/Release/Microsoft.VisualStudio.Threading.xml +CxViewerVSIX/bin/x86/Release/Microsoft.VisualStudio.Threading.dll +CxViewerVSIX/bin/x86/Release/Microsoft.VisualStudio.TextManager.Interop.xml +CxViewerVSIX/bin/x86/Release/Microsoft.VisualStudio.TextManager.Interop.dll +CxViewerVSIX/bin/x86/Release/Microsoft.VisualStudio.TextManager.Interop.8.0.xml +CxViewerVSIX/bin/x86/Release/Microsoft.VisualStudio.TextManager.Interop.8.0.dll +CxViewerVSIX/bin/x86/Release/Microsoft.VisualStudio.Text.Data.xml +CxViewerVSIX/bin/x86/Release/Microsoft.VisualStudio.Text.Data.dll +CxViewerVSIX/bin/x86/Release/Microsoft.VisualStudio.Telemetry.xml +CxViewerVSIX/bin/x86/Release/Microsoft.VisualStudio.Telemetry.dll +CxViewerVSIX/bin/x86/Release/Microsoft.VisualStudio.Shell.Interop.dll +CxViewerVSIX/bin/x86/Release/Microsoft.VisualStudio.Shell.Interop.9.0.xml +CxViewerVSIX/bin/x86/Release/Microsoft.VisualStudio.Shell.Interop.9.0.dll +CxViewerVSIX/bin/x86/Release/Microsoft.VisualStudio.Shell.Interop.8.0.dll +CxViewerVSIX/bin/x86/Release/Microsoft.VisualStudio.Shell.Immutable.14.0.xml +CxViewerVSIX/bin/x86/Release/Microsoft.VisualStudio.Shell.Immutable.14.0.dll +CxViewerVSIX/bin/x86/Release/Microsoft.VisualStudio.Shell.Immutable.12.0.xml +CxViewerVSIX/bin/x86/Release/Microsoft.VisualStudio.Shell.Immutable.12.0.dll +CxViewerVSIX/bin/x86/Release/Microsoft.VisualStudio.Shell.Immutable.11.0.xml +CxViewerVSIX/bin/x86/Release/Microsoft.VisualStudio.Shell.Immutable.11.0.dll +CxViewerVSIX/bin/x86/Release/Microsoft.VisualStudio.Shell.Immutable.10.0.dll +CxViewerVSIX/bin/x86/Release/Microsoft.VisualStudio.Shell.Framework.xml +CxViewerVSIX/bin/x86/Release/Microsoft.VisualStudio.Shell.Framework.dll +CxViewerVSIX/bin/x86/Release/Microsoft.VisualStudio.Shell.14.0.xml +CxViewerVSIX/bin/x86/Release/Microsoft.VisualStudio.Shell.14.0.dll +CxViewerVSIX/bin/x86/Release/Microsoft.VisualStudio.RpcContracts.xml +CxViewerVSIX/bin/x86/Release/Microsoft.VisualStudio.RpcContracts.dll +CxViewerVSIX/bin/x86/Release/Microsoft.VisualStudio.RemoteControl.xml +CxViewerVSIX/bin/x86/Release/Microsoft.VisualStudio.RemoteControl.dll +CxViewerVSIX/bin/x86/Release/Microsoft.VisualStudio.OLE.Interop.xml +CxViewerVSIX/bin/x86/Release/Microsoft.VisualStudio.OLE.Interop.dll +CxViewerVSIX/bin/x86/Release/Microsoft.VisualStudio.Imaging.xml +CxViewerVSIX/bin/x86/Release/Microsoft.VisualStudio.Imaging.dll +CxViewerVSIX/bin/x86/Release/Microsoft.VisualStudio.ImageCatalog.dll +CxViewerVSIX/bin/x86/Release/Microsoft.VisualStudio.GraphModel.xml +CxViewerVSIX/bin/x86/Release/Microsoft.VisualStudio.GraphModel.dll +CxViewerVSIX/bin/x86/Release/Microsoft.VisualStudio.CoreUtility.xml +CxViewerVSIX/bin/x86/Release/Microsoft.VisualStudio.CoreUtility.dll +CxViewerVSIX/bin/x86/Release/Microsoft.VisualStudio.ComponentModelHost.xml +CxViewerVSIX/bin/x86/Release/Microsoft.VisualStudio.ComponentModelHost.dll +CxViewerVSIX/bin/x86/Release/Microsoft.VisualStudio.CommandBars.dll +CxViewerVSIX/bin/x86/Release/Microsoft.ServiceHub.Framework.xml +CxViewerVSIX/bin/x86/Release/Microsoft.ServiceHub.Framework.dll +CxViewerVSIX/bin/x86/Release/Microsoft.ServiceHub.Client.xml +CxViewerVSIX/bin/x86/Release/Microsoft.ServiceHub.Client.dll +CxViewerVSIX/bin/x86/Release/Microsoft.MSXML.dll +CxViewerVSIX/bin/x86/Release/Microsoft.Msagl.xml +CxViewerVSIX/bin/x86/Release/Microsoft.Msagl.GraphViewerGdi.xml +CxViewerVSIX/bin/x86/Release/Microsoft.Msagl.GraphViewerGdi.dll +CxViewerVSIX/bin/x86/Release/Microsoft.Msagl.Drawing.xml +CxViewerVSIX/bin/x86/Release/Microsoft.Msagl.Drawing.dll +CxViewerVSIX/bin/x86/Release/Microsoft.Msagl.dll +CxViewerVSIX/bin/x86/Release/Microsoft.Build.Framework.xml +CxViewerVSIX/bin/x86/Release/Microsoft.Build.Framework.pdb +CxViewerVSIX/bin/x86/Release/Microsoft.Build.Framework.dll +CxViewerVSIX/bin/x86/Release/Microsoft.Bcl.AsyncInterfaces.xml +CxViewerVSIX/bin/x86/Release/Microsoft.Bcl.AsyncInterfaces.dll +CxViewerVSIX/bin/x86/Release/MessagePack.xml +CxViewerVSIX/bin/x86/Release/MessagePack.dll +CxViewerVSIX/bin/x86/Release/MessagePack.Annotations.xml +CxViewerVSIX/bin/x86/Release/MessagePack.Annotations.dll +CxViewerVSIX/bin/x86/Release/log4net.dll +CxViewerVSIX/bin/x86/Release/locales/zh-TW.pak +CxViewerVSIX/bin/x86/Release/locales/zh-CN.pak +CxViewerVSIX/bin/x86/Release/locales/vi.pak +CxViewerVSIX/bin/x86/Release/locales/uk.pak +CxViewerVSIX/bin/x86/Release/locales/tr.pak +CxViewerVSIX/bin/x86/Release/locales/th.pak +CxViewerVSIX/bin/x86/Release/locales/te.pak +CxViewerVSIX/bin/x86/Release/locales/ta.pak +CxViewerVSIX/bin/x86/Release/locales/sw.pak +CxViewerVSIX/bin/x86/Release/locales/sv.pak +CxViewerVSIX/bin/x86/Release/locales/sr.pak +CxViewerVSIX/bin/x86/Release/locales/sl.pak +CxViewerVSIX/bin/x86/Release/locales/sk.pak +CxViewerVSIX/bin/x86/Release/locales/ru.pak +CxViewerVSIX/bin/x86/Release/locales/ro.pak +CxViewerVSIX/bin/x86/Release/locales/pt-PT.pak +CxViewerVSIX/bin/x86/Release/locales/pt-BR.pak +CxViewerVSIX/bin/x86/Release/locales/pl.pak +CxViewerVSIX/bin/x86/Release/locales/nl.pak +CxViewerVSIX/bin/x86/Release/locales/nb.pak +CxViewerVSIX/bin/x86/Release/locales/ms.pak +CxViewerVSIX/bin/x86/Release/locales/mr.pak +CxViewerVSIX/bin/x86/Release/locales/ml.pak +CxViewerVSIX/bin/x86/Release/locales/lv.pak +CxViewerVSIX/bin/x86/Release/locales/lt.pak +CxViewerVSIX/bin/x86/Release/locales/ko.pak +CxViewerVSIX/bin/x86/Release/locales/kn.pak +CxViewerVSIX/bin/x86/Release/locales/ja.pak +CxViewerVSIX/bin/x86/Release/locales/it.pak +CxViewerVSIX/bin/x86/Release/locales/id.pak +CxViewerVSIX/bin/x86/Release/locales/hu.pak +CxViewerVSIX/bin/x86/Release/locales/hr.pak +CxViewerVSIX/bin/x86/Release/locales/hi.pak +CxViewerVSIX/bin/x86/Release/locales/he.pak +CxViewerVSIX/bin/x86/Release/locales/gu.pak +CxViewerVSIX/bin/x86/Release/locales/fr.pak +CxViewerVSIX/bin/x86/Release/locales/fil.pak +CxViewerVSIX/bin/x86/Release/locales/fi.pak +CxViewerVSIX/bin/x86/Release/locales/fa.pak +CxViewerVSIX/bin/x86/Release/locales/et.pak +CxViewerVSIX/bin/x86/Release/locales/es.pak +CxViewerVSIX/bin/x86/Release/locales/es-419.pak +CxViewerVSIX/bin/x86/Release/locales/en-US.pak +CxViewerVSIX/bin/x86/Release/locales/en-GB.pak +CxViewerVSIX/bin/x86/Release/locales/el.pak +CxViewerVSIX/bin/x86/Release/locales/de.pak +CxViewerVSIX/bin/x86/Release/locales/da.pak +CxViewerVSIX/bin/x86/Release/locales/cs.pak +CxViewerVSIX/bin/x86/Release/locales/ca.pak +CxViewerVSIX/bin/x86/Release/locales/bn.pak +CxViewerVSIX/bin/x86/Release/locales/bg.pak +CxViewerVSIX/bin/x86/Release/locales/ar.pak +CxViewerVSIX/bin/x86/Release/locales/am.pak +CxViewerVSIX/bin/x86/Release/LICENSE.txt +CxViewerVSIX/bin/x86/Release/libGLESv2.dll +CxViewerVSIX/bin/x86/Release/libEGL.dll +CxViewerVSIX/bin/x86/Release/libcef.dll +CxViewerVSIX/bin/x86/Release/ko/StreamJsonRpc.resources.dll +CxViewerVSIX/bin/x86/Release/ko/Microsoft.VisualStudio.Validation.resources.dll +CxViewerVSIX/bin/x86/Release/ko/Microsoft.VisualStudio.Threading.resources.dll +CxViewerVSIX/bin/x86/Release/ko/Microsoft.ServiceHub.Framework.resources.dll +CxViewerVSIX/bin/x86/Release/ja/StreamJsonRpc.resources.dll +CxViewerVSIX/bin/x86/Release/ja/Microsoft.VisualStudio.Validation.resources.dll +CxViewerVSIX/bin/x86/Release/ja/Microsoft.VisualStudio.Threading.resources.dll +CxViewerVSIX/bin/x86/Release/ja/Microsoft.ServiceHub.Framework.resources.dll +CxViewerVSIX/bin/x86/Release/it/StreamJsonRpc.resources.dll +CxViewerVSIX/bin/x86/Release/it/Microsoft.VisualStudio.Validation.resources.dll +CxViewerVSIX/bin/x86/Release/it/Microsoft.VisualStudio.Threading.resources.dll +CxViewerVSIX/bin/x86/Release/it/Microsoft.ServiceHub.Framework.resources.dll +CxViewerVSIX/bin/x86/Release/Ionic.Zip.dll +CxViewerVSIX/bin/x86/Release/icudtl.dat +CxViewerVSIX/bin/x86/Release/fr/StreamJsonRpc.resources.dll +CxViewerVSIX/bin/x86/Release/fr/Microsoft.VisualStudio.Validation.resources.dll +CxViewerVSIX/bin/x86/Release/fr/Microsoft.VisualStudio.Threading.resources.dll +CxViewerVSIX/bin/x86/Release/fr/Microsoft.ServiceHub.Framework.resources.dll +CxViewerVSIX/bin/x86/Release/extension.vsixmanifest +CxViewerVSIX/bin/x86/Release/es/StreamJsonRpc.resources.dll +CxViewerVSIX/bin/x86/Release/es/Microsoft.VisualStudio.Validation.resources.dll +CxViewerVSIX/bin/x86/Release/es/Microsoft.VisualStudio.Threading.resources.dll +CxViewerVSIX/bin/x86/Release/es/Microsoft.ServiceHub.Framework.resources.dll +CxViewerVSIX/bin/x86/Release/EnvDTE90a.dll +CxViewerVSIX/bin/x86/Release/EnvDTE90.dll +CxViewerVSIX/bin/x86/Release/EnvDTE100.dll +CxViewerVSIX/bin/x86/Release/EnvDTE.dll +CxViewerVSIX/bin/x86/Release/en/Microsoft.VisualStudio.Imaging.resources.dll +CxViewerVSIX/bin/x86/Release/en/Microsoft.VisualStudio.ImageCatalog.resources.dll +CxViewerVSIX/bin/x86/Release/de/StreamJsonRpc.resources.dll +CxViewerVSIX/bin/x86/Release/de/Microsoft.VisualStudio.Validation.resources.dll +CxViewerVSIX/bin/x86/Release/de/Microsoft.VisualStudio.Threading.resources.dll +CxViewerVSIX/bin/x86/Release/de/Microsoft.ServiceHub.Framework.resources.dll +CxViewerVSIX/bin/x86/Release/d3dcompiler_47.dll +CxViewerVSIX/bin/x86/Release/CxViewerVSIX.vsix +CxViewerVSIX/bin/x86/Release/CxViewerVSIX.pkgdef +CxViewerVSIX/bin/x86/Release/CxViewerVSIX.dll +CxViewerVSIX/bin/x86/Release/CxViewerAction2019.XmlSerializers.dll +CxViewerVSIX/bin/x86/Release/CxViewerAction2019.dll.config +CxViewerVSIX/bin/x86/Release/CxViewerAction2019.dll +CxViewerVSIX/bin/x86/Release/cs/StreamJsonRpc.resources.dll +CxViewerVSIX/bin/x86/Release/cs/Microsoft.VisualStudio.Validation.resources.dll +CxViewerVSIX/bin/x86/Release/cs/Microsoft.VisualStudio.Threading.resources.dll +CxViewerVSIX/bin/x86/Release/cs/Microsoft.ServiceHub.Framework.resources.dll +CxViewerVSIX/bin/x86/Release/Common.pdb +CxViewerVSIX/bin/x86/Release/Common.dll +CxViewerVSIX/bin/x86/Release/ColorButton.dll +CxViewerVSIX/bin/x86/Release/chrome_elf.dll +CxViewerVSIX/bin/x86/Release/chrome_200_percent.pak +CxViewerVSIX/bin/x86/Release/chrome_100_percent.pak +CxViewerVSIX/bin/x86/Release/Checkmarx-X.ico +CxViewerVSIX/bin/x86/Release/CefSharp.xml +CxViewerVSIX/bin/x86/Release/CefSharp.WinForms.xml +CxViewerVSIX/bin/x86/Release/CefSharp.WinForms.pdb +CxViewerVSIX/bin/x86/Release/CefSharp.WinForms.dll +CxViewerVSIX/bin/x86/Release/CefSharp.pdb +CxViewerVSIX/bin/x86/Release/CefSharp.dll +CxViewerVSIX/bin/x86/Release/CefSharp.Core.xml +CxViewerVSIX/bin/x86/Release/CefSharp.Core.Runtime.xml +CxViewerVSIX/bin/x86/Release/CefSharp.Core.Runtime.pdb +CxViewerVSIX/bin/x86/Release/CefSharp.Core.Runtime.dll +CxViewerVSIX/bin/x86/Release/CefSharp.Core.pdb +CxViewerVSIX/bin/x86/Release/CefSharp.Core.dll +CxViewerVSIX/bin/x86/Release/CefSharp.BrowserSubprocess.pdb +CxViewerVSIX/bin/x86/Release/CefSharp.BrowserSubprocess.exe +CxViewerVSIX/bin/x86/Release/CefSharp.BrowserSubprocess.Core.pdb +CxViewerVSIX/bin/x86/Release/CefSharp.BrowserSubprocess.Core.dll +CxViewerDgvFilterPopup/bin/x86/Release/log4net.dll +CxViewerDgvFilterPopup/bin/x86/Release/DgvFilterPopup.pdb +CxViewerDgvFilterPopup/bin/x86/Release/DgvFilterPopup.dll.lastcodeanalysissucceeded +CxViewerDgvFilterPopup/bin/x86/Release/DgvFilterPopup.dll.CodeAnalysisLog.xml +CxViewerDgvFilterPopup/bin/x86/Release/DgvFilterPopup.dll +CxViewerDgvFilterPopup/bin/x86/Release/Common.pdb +CxViewerDgvFilterPopup/bin/x86/Release/Common.dll +CxViewerAction2019/obj/x86/Release/build.force +CxViewer2022/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache +Common/bin/x86/Release/Microsoft.Practices.ObjectBuilder.dll +Common/bin/x86/Release/Microsoft.Practices.EnterpriseLibrary.Logging.dll +Common/bin/x86/Release/Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging.dll +Common/bin/x86/Release/Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.dll +Common/bin/x86/Release/Microsoft.Practices.EnterpriseLibrary.Common.dll +Common/bin/x86/Release/log4net.dll +Common/bin/x86/Release/Common.pdb +Common/bin/x86/Release/Common.dll +CxViewerAction2019/obj/x86/Release/build.force +CxViewerAction2019/obj/x86/Release/build.force +Common/bin/x64/Release/Common.dll +Common/bin/x64/Release/Common.pdb +Common/bin/x64/Release/log4net.dll +Common/bin/x64/Release/Microsoft.Practices.EnterpriseLibrary.Common.dll +Common/bin/x64/Release/Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.dll +Common/bin/x64/Release/Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging.dll +Common/bin/x64/Release/Microsoft.Practices.EnterpriseLibrary.Logging.dll +Common/bin/x64/Release/Microsoft.Practices.ObjectBuilder.dll +CxViewer2022/bin/Release/Checkmarx-X.ico +CxViewer2022/bin/x64/Release/CefSharp.BrowserSubprocess.Core.dll +CxViewer2022/bin/x64/Release/CefSharp.BrowserSubprocess.Core.pdb +CxViewer2022/bin/x64/Release/CefSharp.BrowserSubprocess.exe +CxViewer2022/bin/x64/Release/CefSharp.BrowserSubprocess.pdb +CxViewer2022/bin/x64/Release/CefSharp.Core.dll +CxViewer2022/bin/x64/Release/CefSharp.Core.pdb +CxViewer2022/bin/x64/Release/CefSharp.Core.Runtime.dll +CxViewer2022/bin/x64/Release/CefSharp.Core.Runtime.pdb +CxViewer2022/bin/x64/Release/CefSharp.Core.Runtime.xml +CxViewer2022/bin/x64/Release/CefSharp.Core.xml +CxViewer2022/bin/x64/Release/CefSharp.dll +CxViewer2022/bin/x64/Release/CefSharp.pdb +CxViewer2022/bin/x64/Release/CefSharp.WinForms.dll +CxViewer2022/bin/x64/Release/CefSharp.WinForms.pdb +CxViewer2022/bin/x64/Release/CefSharp.WinForms.xml +CxViewer2022/bin/x64/Release/CefSharp.xml +CxViewer2022/bin/x64/Release/Checkmarx-X.ico +CxViewer2022/bin/x64/Release/chrome_100_percent.pak +CxViewer2022/bin/x64/Release/chrome_200_percent.pak +CxViewer2022/bin/x64/Release/chrome_elf.dll +CxViewer2022/bin/x64/Release/ColorButton.dll +CxViewer2022/bin/x64/Release/Common.dll +CxViewer2022/bin/x64/Release/Common.pdb +CxViewer2022/bin/x64/Release/cs/Microsoft.ServiceHub.Framework.resources.dll +CxViewer2022/bin/x64/Release/cs/Microsoft.ServiceHub.Resources.dll +CxViewer2022/bin/x64/Release/cs/Microsoft.VisualStudio.Threading.resources.dll +CxViewer2022/bin/x64/Release/cs/Microsoft.VisualStudio.Utilities.resources.dll +CxViewer2022/bin/x64/Release/cs/Microsoft.VisualStudio.Validation.resources.dll +CxViewer2022/bin/x64/Release/cs/StreamJsonRpc.resources.dll +CxViewer2022/bin/x64/Release/CxViewer2022.dll +CxViewer2022/bin/x64/Release/CxViewer2022.pdb +CxViewer2022/bin/x64/Release/CxViewer2022.pkgdef +CxViewer2022/bin/x64/Release/CxViewer2022.vsix +CxViewer2022/bin/x64/Release/CxViewerAction.dll +CxViewer2022/bin/x64/Release/CxViewerAction.dll.config +CxViewer2022/bin/x64/Release/CxViewerAction.XmlSerializers.dll +CxViewer2022/bin/x64/Release/d3dcompiler_47.dll +CxViewer2022/bin/x64/Release/de/Microsoft.ServiceHub.Framework.resources.dll +CxViewer2022/bin/x64/Release/de/Microsoft.ServiceHub.Resources.dll +CxViewer2022/bin/x64/Release/de/Microsoft.VisualStudio.Threading.resources.dll +CxViewer2022/bin/x64/Release/de/Microsoft.VisualStudio.Utilities.resources.dll +CxViewer2022/bin/x64/Release/de/Microsoft.VisualStudio.Validation.resources.dll +CxViewer2022/bin/x64/Release/de/StreamJsonRpc.resources.dll +CxViewer2022/bin/x64/Release/en/Microsoft.VisualStudio.Utilities.resources.dll +CxViewer2022/bin/x64/Release/es/Microsoft.ServiceHub.Framework.resources.dll +CxViewer2022/bin/x64/Release/es/Microsoft.ServiceHub.Resources.dll +CxViewer2022/bin/x64/Release/es/Microsoft.VisualStudio.Threading.resources.dll +CxViewer2022/bin/x64/Release/es/Microsoft.VisualStudio.Utilities.resources.dll +CxViewer2022/bin/x64/Release/es/Microsoft.VisualStudio.Validation.resources.dll +CxViewer2022/bin/x64/Release/es/StreamJsonRpc.resources.dll +CxViewer2022/bin/x64/Release/extension.vsixmanifest +CxViewer2022/bin/x64/Release/fr/Microsoft.ServiceHub.Framework.resources.dll +CxViewer2022/bin/x64/Release/fr/Microsoft.ServiceHub.Resources.dll +CxViewer2022/bin/x64/Release/fr/Microsoft.VisualStudio.Threading.resources.dll +CxViewer2022/bin/x64/Release/fr/Microsoft.VisualStudio.Utilities.resources.dll +CxViewer2022/bin/x64/Release/fr/Microsoft.VisualStudio.Validation.resources.dll +CxViewer2022/bin/x64/Release/fr/StreamJsonRpc.resources.dll +CxViewer2022/bin/x64/Release/icudtl.dat +CxViewer2022/bin/x64/Release/Ionic.Zip.dll +CxViewer2022/bin/x64/Release/it/Microsoft.ServiceHub.Framework.resources.dll +CxViewer2022/bin/x64/Release/it/Microsoft.ServiceHub.Resources.dll +CxViewer2022/bin/x64/Release/it/Microsoft.VisualStudio.Threading.resources.dll +CxViewer2022/bin/x64/Release/it/Microsoft.VisualStudio.Utilities.resources.dll +CxViewer2022/bin/x64/Release/it/Microsoft.VisualStudio.Validation.resources.dll +CxViewer2022/bin/x64/Release/it/StreamJsonRpc.resources.dll +CxViewer2022/bin/x64/Release/ja/Microsoft.ServiceHub.Framework.resources.dll +CxViewer2022/bin/x64/Release/ja/Microsoft.ServiceHub.Resources.dll +CxViewer2022/bin/x64/Release/ja/Microsoft.VisualStudio.Threading.resources.dll +CxViewer2022/bin/x64/Release/ja/Microsoft.VisualStudio.Utilities.resources.dll +CxViewer2022/bin/x64/Release/ja/Microsoft.VisualStudio.Validation.resources.dll +CxViewer2022/bin/x64/Release/ja/StreamJsonRpc.resources.dll +CxViewer2022/bin/x64/Release/ko/Microsoft.ServiceHub.Framework.resources.dll +CxViewer2022/bin/x64/Release/ko/Microsoft.ServiceHub.Resources.dll +CxViewer2022/bin/x64/Release/ko/Microsoft.VisualStudio.Threading.resources.dll +CxViewer2022/bin/x64/Release/ko/Microsoft.VisualStudio.Utilities.resources.dll +CxViewer2022/bin/x64/Release/ko/Microsoft.VisualStudio.Validation.resources.dll +CxViewer2022/bin/x64/Release/ko/StreamJsonRpc.resources.dll +CxViewer2022/bin/x64/Release/libcef.dll +CxViewer2022/bin/x64/Release/libEGL.dll +CxViewer2022/bin/x64/Release/libGLESv2.dll +CxViewer2022/bin/x64/Release/LICENSE.txt +CxViewer2022/bin/x64/Release/locales/am.pak +CxViewer2022/bin/x64/Release/locales/ar.pak +CxViewer2022/bin/x64/Release/locales/bg.pak +CxViewer2022/bin/x64/Release/locales/bn.pak +CxViewer2022/bin/x64/Release/locales/ca.pak +CxViewer2022/bin/x64/Release/locales/cs.pak +CxViewer2022/bin/x64/Release/locales/da.pak +CxViewer2022/bin/x64/Release/locales/de.pak +CxViewer2022/bin/x64/Release/locales/el.pak +CxViewer2022/bin/x64/Release/locales/en-GB.pak +CxViewer2022/bin/x64/Release/locales/en-US.pak +CxViewer2022/bin/x64/Release/locales/es-419.pak +CxViewer2022/bin/x64/Release/locales/es.pak +CxViewer2022/bin/x64/Release/locales/et.pak +CxViewer2022/bin/x64/Release/locales/fa.pak +CxViewer2022/bin/x64/Release/locales/fi.pak +CxViewer2022/bin/x64/Release/locales/fil.pak +CxViewer2022/bin/x64/Release/locales/fr.pak +CxViewer2022/bin/x64/Release/locales/gu.pak +CxViewer2022/bin/x64/Release/locales/he.pak +CxViewer2022/bin/x64/Release/locales/hi.pak +CxViewer2022/bin/x64/Release/locales/hr.pak +CxViewer2022/bin/x64/Release/locales/hu.pak +CxViewer2022/bin/x64/Release/locales/id.pak +CxViewer2022/bin/x64/Release/locales/it.pak +CxViewer2022/bin/x64/Release/locales/ja.pak +CxViewer2022/bin/x64/Release/locales/kn.pak +CxViewer2022/bin/x64/Release/locales/ko.pak +CxViewer2022/bin/x64/Release/locales/lt.pak +CxViewer2022/bin/x64/Release/locales/lv.pak +CxViewer2022/bin/x64/Release/locales/ml.pak +CxViewer2022/bin/x64/Release/locales/mr.pak +CxViewer2022/bin/x64/Release/locales/ms.pak +CxViewer2022/bin/x64/Release/locales/nb.pak +CxViewer2022/bin/x64/Release/locales/nl.pak +CxViewer2022/bin/x64/Release/locales/pl.pak +CxViewer2022/bin/x64/Release/locales/pt-BR.pak +CxViewer2022/bin/x64/Release/locales/pt-PT.pak +CxViewer2022/bin/x64/Release/locales/ro.pak +CxViewer2022/bin/x64/Release/locales/ru.pak +CxViewer2022/bin/x64/Release/locales/sk.pak +CxViewer2022/bin/x64/Release/locales/sl.pak +CxViewer2022/bin/x64/Release/locales/sr.pak +CxViewer2022/bin/x64/Release/locales/sv.pak +CxViewer2022/bin/x64/Release/locales/sw.pak +CxViewer2022/bin/x64/Release/locales/ta.pak +CxViewer2022/bin/x64/Release/locales/te.pak +CxViewer2022/bin/x64/Release/locales/th.pak +CxViewer2022/bin/x64/Release/locales/tr.pak +CxViewer2022/bin/x64/Release/locales/uk.pak +CxViewer2022/bin/x64/Release/locales/vi.pak +CxViewer2022/bin/x64/Release/locales/zh-CN.pak +CxViewer2022/bin/x64/Release/locales/zh-TW.pak +CxViewer2022/bin/x64/Release/log4net.dll +CxViewer2022/bin/x64/Release/MessagePack.Annotations.dll +CxViewer2022/bin/x64/Release/MessagePack.dll +CxViewer2022/bin/x64/Release/Microsoft.Bcl.AsyncInterfaces.dll +CxViewer2022/bin/x64/Release/Microsoft.Msagl.dll +CxViewer2022/bin/x64/Release/Microsoft.Msagl.Drawing.dll +CxViewer2022/bin/x64/Release/Microsoft.Msagl.Drawing.xml +CxViewer2022/bin/x64/Release/Microsoft.Msagl.GraphViewerGdi.dll +CxViewer2022/bin/x64/Release/Microsoft.Msagl.GraphViewerGdi.xml +CxViewer2022/bin/x64/Release/Microsoft.Msagl.xml +CxViewer2022/bin/x64/Release/Microsoft.ServiceHub.Client.dll +CxViewer2022/bin/x64/Release/Microsoft.ServiceHub.Framework.dll +CxViewer2022/bin/x64/Release/Microsoft.ServiceHub.Resources.dll +CxViewer2022/bin/x64/Release/Microsoft.VisualStudio.ComponentModelHost.dll +CxViewer2022/bin/x64/Release/Microsoft.VisualStudio.GraphModel.dll +CxViewer2022/bin/x64/Release/Microsoft.VisualStudio.GraphModel.xml +CxViewer2022/bin/x64/Release/Microsoft.VisualStudio.Interop.dll +CxViewer2022/bin/x64/Release/Microsoft.VisualStudio.ProjectAggregator.dll +CxViewer2022/bin/x64/Release/Microsoft.VisualStudio.RemoteControl.dll +CxViewer2022/bin/x64/Release/Microsoft.VisualStudio.RpcContracts.dll +CxViewer2022/bin/x64/Release/Microsoft.VisualStudio.Shell.15.0.dll +CxViewer2022/bin/x64/Release/Microsoft.VisualStudio.Shell.Framework.dll +CxViewer2022/bin/x64/Release/Microsoft.VisualStudio.Shell.Immutable.10.0.dll +CxViewer2022/bin/x64/Release/Microsoft.VisualStudio.Shell.Interop.dll +CxViewer2022/bin/x64/Release/Microsoft.VisualStudio.Telemetry.dll +CxViewer2022/bin/x64/Release/Microsoft.VisualStudio.Threading.dll +CxViewer2022/bin/x64/Release/Microsoft.VisualStudio.Utilities.dll +CxViewer2022/bin/x64/Release/Microsoft.VisualStudio.Utilities.Internal.dll +CxViewer2022/bin/x64/Release/Microsoft.VisualStudio.Validation.dll +CxViewer2022/bin/x64/Release/Microsoft.Win32.Registry.dll +CxViewer2022/bin/x64/Release/Nerdbank.Streams.dll +CxViewer2022/bin/x64/Release/Nerdbank.Streams.pdb +CxViewer2022/bin/x64/Release/Newtonsoft.Json.dll +CxViewer2022/bin/x64/Release/pl/Microsoft.ServiceHub.Framework.resources.dll +CxViewer2022/bin/x64/Release/pl/Microsoft.ServiceHub.Resources.dll +CxViewer2022/bin/x64/Release/pl/Microsoft.VisualStudio.Threading.resources.dll +CxViewer2022/bin/x64/Release/pl/Microsoft.VisualStudio.Utilities.resources.dll +CxViewer2022/bin/x64/Release/pl/Microsoft.VisualStudio.Validation.resources.dll +CxViewer2022/bin/x64/Release/pl/StreamJsonRpc.resources.dll +CxViewer2022/bin/x64/Release/pt-BR/Microsoft.ServiceHub.Framework.resources.dll +CxViewer2022/bin/x64/Release/pt-BR/Microsoft.ServiceHub.Resources.dll +CxViewer2022/bin/x64/Release/pt-BR/Microsoft.VisualStudio.Threading.resources.dll +CxViewer2022/bin/x64/Release/pt-BR/Microsoft.VisualStudio.Validation.resources.dll +CxViewer2022/bin/x64/Release/pt-BR/StreamJsonRpc.resources.dll +CxViewer2022/bin/x64/Release/pt/Microsoft.VisualStudio.Utilities.resources.dll +CxViewer2022/bin/x64/Release/README.txt +CxViewer2022/bin/x64/Release/resources.pak +CxViewer2022/bin/x64/Release/Resources/Checkmarx.ico +CxViewer2022/bin/x64/Release/Resources/LICENSE2 +CxViewer2022/bin/x64/Release/ru/Microsoft.ServiceHub.Framework.resources.dll +CxViewer2022/bin/x64/Release/ru/Microsoft.ServiceHub.Resources.dll +CxViewer2022/bin/x64/Release/ru/Microsoft.VisualStudio.Threading.resources.dll +CxViewer2022/bin/x64/Release/ru/Microsoft.VisualStudio.Utilities.resources.dll +CxViewer2022/bin/x64/Release/ru/Microsoft.VisualStudio.Validation.resources.dll +CxViewer2022/bin/x64/Release/ru/StreamJsonRpc.resources.dll +CxViewer2022/bin/x64/Release/snapshot_blob.bin +CxViewer2022/bin/x64/Release/StreamJsonRpc.dll +CxViewer2022/bin/x64/Release/swiftshader/libEGL.dll +CxViewer2022/bin/x64/Release/swiftshader/libGLESv2.dll +CxViewer2022/bin/x64/Release/System.Buffers.dll +CxViewer2022/bin/x64/Release/System.Collections.Immutable.dll +CxViewer2022/bin/x64/Release/System.Diagnostics.DiagnosticSource.dll +CxViewer2022/bin/x64/Release/System.IO.Pipelines.dll +CxViewer2022/bin/x64/Release/System.Memory.dll +CxViewer2022/bin/x64/Release/System.Numerics.Vectors.dll +CxViewer2022/bin/x64/Release/System.Runtime.CompilerServices.Unsafe.dll +CxViewer2022/bin/x64/Release/System.Security.AccessControl.dll +CxViewer2022/bin/x64/Release/System.Security.Principal.Windows.dll +CxViewer2022/bin/x64/Release/System.Threading.AccessControl.dll +CxViewer2022/bin/x64/Release/System.Threading.Tasks.Dataflow.dll +CxViewer2022/bin/x64/Release/System.Threading.Tasks.Extensions.dll +CxViewer2022/bin/x64/Release/tr/Microsoft.ServiceHub.Framework.resources.dll +CxViewer2022/bin/x64/Release/tr/Microsoft.ServiceHub.Resources.dll +CxViewer2022/bin/x64/Release/tr/Microsoft.VisualStudio.Threading.resources.dll +CxViewer2022/bin/x64/Release/tr/Microsoft.VisualStudio.Utilities.resources.dll +CxViewer2022/bin/x64/Release/tr/Microsoft.VisualStudio.Validation.resources.dll +CxViewer2022/bin/x64/Release/tr/StreamJsonRpc.resources.dll +CxViewer2022/bin/x64/Release/v8_context_snapshot.bin +CxViewer2022/bin/x64/Release/vk_swiftshader.dll +CxViewer2022/bin/x64/Release/vk_swiftshader_icd.json +CxViewer2022/bin/x64/Release/vulkan-1.dll +CxViewer2022/bin/x64/Release/zh-Hans/Microsoft.ServiceHub.Framework.resources.dll +CxViewer2022/bin/x64/Release/zh-Hans/Microsoft.ServiceHub.Resources.dll +CxViewer2022/bin/x64/Release/zh-Hans/Microsoft.VisualStudio.Threading.resources.dll +CxViewer2022/bin/x64/Release/zh-Hans/Microsoft.VisualStudio.Utilities.resources.dll +CxViewer2022/bin/x64/Release/zh-Hans/Microsoft.VisualStudio.Validation.resources.dll +CxViewer2022/bin/x64/Release/zh-Hans/StreamJsonRpc.resources.dll +CxViewer2022/bin/x64/Release/zh-Hant/Microsoft.ServiceHub.Framework.resources.dll +CxViewer2022/bin/x64/Release/zh-Hant/Microsoft.ServiceHub.Resources.dll +CxViewer2022/bin/x64/Release/zh-Hant/Microsoft.VisualStudio.Threading.resources.dll +CxViewer2022/bin/x64/Release/zh-Hant/Microsoft.VisualStudio.Utilities.resources.dll +CxViewer2022/bin/x64/Release/zh-Hant/Microsoft.VisualStudio.Validation.resources.dll +CxViewer2022/bin/x64/Release/zh-Hant/StreamJsonRpc.resources.dll +CxViewer2022/obj/Release/build.force +CxViewer2022/obj/x64/Release/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs +CxViewer2022/obj/x64/Release/_EmptyResource.resources +CxViewer2022/obj/x64/Release/_EmptyResource.resources.original +CxViewer2022/obj/x64/Release/createTemplateManifests.cache +CxViewer2022/obj/x64/Release/ctoFiles.json +CxViewer2022/obj/x64/Release/CxViewer2022.csproj.AssemblyReference.cache +CxViewer2022/obj/x64/Release/CxViewer2022.csproj.CopyComplete +CxViewer2022/obj/x64/Release/CxViewer2022.csproj.CoreCompileInputs.cache +CxViewer2022/obj/x64/Release/CxViewer2022.csproj.FileListAbsolute.txt +CxViewer2022/obj/x64/Release/CxViewer2022.csproj.GenerateResource.cache +CxViewer2022/obj/x64/Release/CxViewer2022.csproj.VsixDeployedFileListAbsolute.txt +CxViewer2022/obj/x64/Release/CxViewer2022.dll +CxViewer2022/obj/x64/Release/CxViewer2022.GeneratedMSBuildEditorConfig.editorconfig +CxViewer2022/obj/x64/Release/CxViewer2022.latest.pkgdef +CxViewer2022/obj/x64/Release/CxViewer2022.pdb +CxViewer2022/obj/x64/Release/CxViewer2022.pkgdef +CxViewer2022/obj/x64/Release/CxViewer2022.VSPackage.resources +CxViewer2022/obj/x64/Release/CxViewerPackage.cto +CxViewer2022/obj/x64/Release/extension.vsixmanifest +CxViewer2022/obj/x64/Release/files.json +CxViewer2022/obj/x64/Release/mergeCto.cache +CxViewer2022/obj/x64/Release/resources.json +CxViewer2022/obj/x64/Release/VSCT.read.1.tlog +CxViewer2022/obj/x64/Release/VSCT.write.1.tlog +CxViewerAction/bin/x64/Release/CefSharp.BrowserSubprocess.Core.dll +CxViewerAction/bin/x64/Release/CefSharp.BrowserSubprocess.Core.pdb +CxViewerAction/bin/x64/Release/CefSharp.BrowserSubprocess.exe +CxViewerAction/bin/x64/Release/CefSharp.BrowserSubprocess.pdb +CxViewerAction/bin/x64/Release/CefSharp.Core.dll +CxViewerAction/bin/x64/Release/CefSharp.Core.pdb +CxViewerAction/bin/x64/Release/CefSharp.Core.Runtime.dll +CxViewerAction/bin/x64/Release/CefSharp.Core.Runtime.pdb +CxViewerAction/bin/x64/Release/CefSharp.Core.Runtime.xml +CxViewerAction/bin/x64/Release/CefSharp.Core.xml +CxViewerAction/bin/x64/Release/CefSharp.dll +CxViewerAction/bin/x64/Release/CefSharp.pdb +CxViewerAction/bin/x64/Release/CefSharp.WinForms.dll +CxViewerAction/bin/x64/Release/CefSharp.WinForms.pdb +CxViewerAction/bin/x64/Release/CefSharp.WinForms.xml +CxViewerAction/bin/x64/Release/CefSharp.xml +CxViewerAction/bin/x64/Release/chrome_100_percent.pak +CxViewerAction/bin/x64/Release/chrome_200_percent.pak +CxViewerAction/bin/x64/Release/chrome_elf.dll +CxViewerAction/bin/x64/Release/ColorButton.dll +CxViewerAction/bin/x64/Release/Common.dll +CxViewerAction/bin/x64/Release/Common.pdb +CxViewerAction/bin/x64/Release/cs/Microsoft.ServiceHub.Framework.resources.dll +CxViewerAction/bin/x64/Release/cs/Microsoft.VisualStudio.Threading.resources.dll +CxViewerAction/bin/x64/Release/cs/Microsoft.VisualStudio.Utilities.resources.dll +CxViewerAction/bin/x64/Release/cs/Microsoft.VisualStudio.Validation.resources.dll +CxViewerAction/bin/x64/Release/cs/StreamJsonRpc.resources.dll +CxViewerAction/bin/x64/Release/CxViewerAction.dll +CxViewerAction/bin/x64/Release/CxViewerAction.dll.config +CxViewerAction/bin/x64/Release/CxViewerAction.XmlSerializers.dll +CxViewerAction/bin/x64/Release/d3dcompiler_47.dll +CxViewerAction/bin/x64/Release/de/Microsoft.ServiceHub.Framework.resources.dll +CxViewerAction/bin/x64/Release/de/Microsoft.VisualStudio.Threading.resources.dll +CxViewerAction/bin/x64/Release/de/Microsoft.VisualStudio.Utilities.resources.dll +CxViewerAction/bin/x64/Release/de/Microsoft.VisualStudio.Validation.resources.dll +CxViewerAction/bin/x64/Release/de/StreamJsonRpc.resources.dll +CxViewerAction/bin/x64/Release/DgvFilterPopup.dll +CxViewerAction/bin/x64/Release/DgvFilterPopup.pdb +CxViewerAction/bin/x64/Release/en/Microsoft.VisualStudio.ImageCatalog.resources.dll +CxViewerAction/bin/x64/Release/en/Microsoft.VisualStudio.Imaging.resources.dll +CxViewerAction/bin/x64/Release/en/Microsoft.VisualStudio.Utilities.resources.dll +CxViewerAction/bin/x64/Release/EnvDTE.dll +CxViewerAction/bin/x64/Release/EnvDTE80.dll +CxViewerAction/bin/x64/Release/EnvDTE90.dll +CxViewerAction/bin/x64/Release/es/Microsoft.ServiceHub.Framework.resources.dll +CxViewerAction/bin/x64/Release/es/Microsoft.VisualStudio.Threading.resources.dll +CxViewerAction/bin/x64/Release/es/Microsoft.VisualStudio.Utilities.resources.dll +CxViewerAction/bin/x64/Release/es/Microsoft.VisualStudio.Validation.resources.dll +CxViewerAction/bin/x64/Release/es/StreamJsonRpc.resources.dll +CxViewerAction/bin/x64/Release/fr/Microsoft.ServiceHub.Framework.resources.dll +CxViewerAction/bin/x64/Release/fr/Microsoft.VisualStudio.Threading.resources.dll +CxViewerAction/bin/x64/Release/fr/Microsoft.VisualStudio.Utilities.resources.dll +CxViewerAction/bin/x64/Release/fr/Microsoft.VisualStudio.Validation.resources.dll +CxViewerAction/bin/x64/Release/fr/StreamJsonRpc.resources.dll +CxViewerAction/bin/x64/Release/icudtl.dat +CxViewerAction/bin/x64/Release/Ionic.Zip.dll +CxViewerAction/bin/x64/Release/it/Microsoft.ServiceHub.Framework.resources.dll +CxViewerAction/bin/x64/Release/it/Microsoft.VisualStudio.Threading.resources.dll +CxViewerAction/bin/x64/Release/it/Microsoft.VisualStudio.Utilities.resources.dll +CxViewerAction/bin/x64/Release/it/Microsoft.VisualStudio.Validation.resources.dll +CxViewerAction/bin/x64/Release/it/StreamJsonRpc.resources.dll +CxViewerAction/bin/x64/Release/ja/Microsoft.ServiceHub.Framework.resources.dll +CxViewerAction/bin/x64/Release/ja/Microsoft.VisualStudio.Threading.resources.dll +CxViewerAction/bin/x64/Release/ja/Microsoft.VisualStudio.Utilities.resources.dll +CxViewerAction/bin/x64/Release/ja/Microsoft.VisualStudio.Validation.resources.dll +CxViewerAction/bin/x64/Release/ja/StreamJsonRpc.resources.dll +CxViewerAction/bin/x64/Release/ko/Microsoft.ServiceHub.Framework.resources.dll +CxViewerAction/bin/x64/Release/ko/Microsoft.VisualStudio.Threading.resources.dll +CxViewerAction/bin/x64/Release/ko/Microsoft.VisualStudio.Utilities.resources.dll +CxViewerAction/bin/x64/Release/ko/Microsoft.VisualStudio.Validation.resources.dll +CxViewerAction/bin/x64/Release/ko/StreamJsonRpc.resources.dll +CxViewerAction/bin/x64/Release/libcef.dll +CxViewerAction/bin/x64/Release/libEGL.dll +CxViewerAction/bin/x64/Release/libGLESv2.dll +CxViewerAction/bin/x64/Release/LICENSE.txt +CxViewerAction/bin/x64/Release/locales/am.pak +CxViewerAction/bin/x64/Release/locales/ar.pak +CxViewerAction/bin/x64/Release/locales/bg.pak +CxViewerAction/bin/x64/Release/locales/bn.pak +CxViewerAction/bin/x64/Release/locales/ca.pak +CxViewerAction/bin/x64/Release/locales/cs.pak +CxViewerAction/bin/x64/Release/locales/da.pak +CxViewerAction/bin/x64/Release/locales/de.pak +CxViewerAction/bin/x64/Release/locales/el.pak +CxViewerAction/bin/x64/Release/locales/en-GB.pak +CxViewerAction/bin/x64/Release/locales/en-US.pak +CxViewerAction/bin/x64/Release/locales/es-419.pak +CxViewerAction/bin/x64/Release/locales/es.pak +CxViewerAction/bin/x64/Release/locales/et.pak +CxViewerAction/bin/x64/Release/locales/fa.pak +CxViewerAction/bin/x64/Release/locales/fi.pak +CxViewerAction/bin/x64/Release/locales/fil.pak +CxViewerAction/bin/x64/Release/locales/fr.pak +CxViewerAction/bin/x64/Release/locales/gu.pak +CxViewerAction/bin/x64/Release/locales/he.pak +CxViewerAction/bin/x64/Release/locales/hi.pak +CxViewerAction/bin/x64/Release/locales/hr.pak +CxViewerAction/bin/x64/Release/locales/hu.pak +CxViewerAction/bin/x64/Release/locales/id.pak +CxViewerAction/bin/x64/Release/locales/it.pak +CxViewerAction/bin/x64/Release/locales/ja.pak +CxViewerAction/bin/x64/Release/locales/kn.pak +CxViewerAction/bin/x64/Release/locales/ko.pak +CxViewerAction/bin/x64/Release/locales/lt.pak +CxViewerAction/bin/x64/Release/locales/lv.pak +CxViewerAction/bin/x64/Release/locales/ml.pak +CxViewerAction/bin/x64/Release/locales/mr.pak +CxViewerAction/bin/x64/Release/locales/ms.pak +CxViewerAction/bin/x64/Release/locales/nb.pak +CxViewerAction/bin/x64/Release/locales/nl.pak +CxViewerAction/bin/x64/Release/locales/pl.pak +CxViewerAction/bin/x64/Release/locales/pt-BR.pak +CxViewerAction/bin/x64/Release/locales/pt-PT.pak +CxViewerAction/bin/x64/Release/locales/ro.pak +CxViewerAction/bin/x64/Release/locales/ru.pak +CxViewerAction/bin/x64/Release/locales/sk.pak +CxViewerAction/bin/x64/Release/locales/sl.pak +CxViewerAction/bin/x64/Release/locales/sr.pak +CxViewerAction/bin/x64/Release/locales/sv.pak +CxViewerAction/bin/x64/Release/locales/sw.pak +CxViewerAction/bin/x64/Release/locales/ta.pak +CxViewerAction/bin/x64/Release/locales/te.pak +CxViewerAction/bin/x64/Release/locales/th.pak +CxViewerAction/bin/x64/Release/locales/tr.pak +CxViewerAction/bin/x64/Release/locales/uk.pak +CxViewerAction/bin/x64/Release/locales/vi.pak +CxViewerAction/bin/x64/Release/locales/zh-CN.pak +CxViewerAction/bin/x64/Release/locales/zh-TW.pak +CxViewerAction/bin/x64/Release/log4net.dll +CxViewerAction/bin/x64/Release/MessagePack.Annotations.dll +CxViewerAction/bin/x64/Release/MessagePack.Annotations.xml +CxViewerAction/bin/x64/Release/MessagePack.dll +CxViewerAction/bin/x64/Release/MessagePack.xml +CxViewerAction/bin/x64/Release/Microsoft.Bcl.AsyncInterfaces.dll +CxViewerAction/bin/x64/Release/Microsoft.Bcl.AsyncInterfaces.xml +CxViewerAction/bin/x64/Release/Microsoft.Build.Framework.dll +CxViewerAction/bin/x64/Release/Microsoft.Build.Framework.pdb +CxViewerAction/bin/x64/Release/Microsoft.Build.Framework.xml +CxViewerAction/bin/x64/Release/Microsoft.Msagl.dll +CxViewerAction/bin/x64/Release/Microsoft.Msagl.Drawing.dll +CxViewerAction/bin/x64/Release/Microsoft.Msagl.Drawing.xml +CxViewerAction/bin/x64/Release/Microsoft.Msagl.GraphViewerGdi.dll +CxViewerAction/bin/x64/Release/Microsoft.Msagl.GraphViewerGdi.xml +CxViewerAction/bin/x64/Release/Microsoft.Msagl.xml +CxViewerAction/bin/x64/Release/Microsoft.MSXML.dll +CxViewerAction/bin/x64/Release/Microsoft.ServiceHub.Client.dll +CxViewerAction/bin/x64/Release/Microsoft.ServiceHub.Client.xml +CxViewerAction/bin/x64/Release/Microsoft.ServiceHub.Framework.dll +CxViewerAction/bin/x64/Release/Microsoft.ServiceHub.Framework.xml +CxViewerAction/bin/x64/Release/Microsoft.VisualStudio.ComponentModelHost.dll +CxViewerAction/bin/x64/Release/Microsoft.VisualStudio.ComponentModelHost.xml +CxViewerAction/bin/x64/Release/Microsoft.VisualStudio.GraphModel.dll +CxViewerAction/bin/x64/Release/Microsoft.VisualStudio.GraphModel.xml +CxViewerAction/bin/x64/Release/Microsoft.VisualStudio.ImageCatalog.dll +CxViewerAction/bin/x64/Release/Microsoft.VisualStudio.Imaging.dll +CxViewerAction/bin/x64/Release/Microsoft.VisualStudio.Imaging.xml +CxViewerAction/bin/x64/Release/Microsoft.VisualStudio.Interop.dll +CxViewerAction/bin/x64/Release/Microsoft.VisualStudio.Interop.xml +CxViewerAction/bin/x64/Release/Microsoft.VisualStudio.Modeling.Sdk.Integration.10.0.dll +CxViewerAction/bin/x64/Release/Microsoft.VisualStudio.Modeling.SDK.Integration.Shell.10.0.dll +CxViewerAction/bin/x64/Release/Microsoft.VisualStudio.OLE.Interop.dll +CxViewerAction/bin/x64/Release/Microsoft.VisualStudio.OLE.Interop.xml +CxViewerAction/bin/x64/Release/Microsoft.VisualStudio.RemoteControl.dll +CxViewerAction/bin/x64/Release/Microsoft.VisualStudio.RemoteControl.xml +CxViewerAction/bin/x64/Release/Microsoft.VisualStudio.RpcContracts.dll +CxViewerAction/bin/x64/Release/Microsoft.VisualStudio.RpcContracts.xml +CxViewerAction/bin/x64/Release/Microsoft.VisualStudio.Shell.10.0.dll +CxViewerAction/bin/x64/Release/Microsoft.VisualStudio.Shell.15.0.dll +CxViewerAction/bin/x64/Release/Microsoft.VisualStudio.Shell.15.0.xml +CxViewerAction/bin/x64/Release/Microsoft.VisualStudio.Shell.Framework.dll +CxViewerAction/bin/x64/Release/Microsoft.VisualStudio.Shell.Framework.xml +CxViewerAction/bin/x64/Release/Microsoft.VisualStudio.Shell.Immutable.11.0.dll +CxViewerAction/bin/x64/Release/Microsoft.VisualStudio.Shell.Immutable.11.0.xml +CxViewerAction/bin/x64/Release/Microsoft.VisualStudio.Shell.Immutable.12.0.dll +CxViewerAction/bin/x64/Release/Microsoft.VisualStudio.Shell.Immutable.12.0.xml +CxViewerAction/bin/x64/Release/Microsoft.VisualStudio.Shell.Immutable.14.0.dll +CxViewerAction/bin/x64/Release/Microsoft.VisualStudio.Shell.Immutable.14.0.xml +CxViewerAction/bin/x64/Release/Microsoft.VisualStudio.Shell.Interop.8.0.dll +CxViewerAction/bin/x64/Release/Microsoft.VisualStudio.Shell.Interop.8.0.xml +CxViewerAction/bin/x64/Release/Microsoft.VisualStudio.Shell.Interop.9.0.dll +CxViewerAction/bin/x64/Release/Microsoft.VisualStudio.Shell.Interop.9.0.xml +CxViewerAction/bin/x64/Release/Microsoft.VisualStudio.Telemetry.dll +CxViewerAction/bin/x64/Release/Microsoft.VisualStudio.Telemetry.xml +CxViewerAction/bin/x64/Release/Microsoft.VisualStudio.TextManager.Interop.8.0.dll +CxViewerAction/bin/x64/Release/Microsoft.VisualStudio.TextManager.Interop.8.0.xml +CxViewerAction/bin/x64/Release/Microsoft.VisualStudio.TextManager.Interop.dll +CxViewerAction/bin/x64/Release/Microsoft.VisualStudio.TextManager.Interop.xml +CxViewerAction/bin/x64/Release/Microsoft.VisualStudio.Threading.dll +CxViewerAction/bin/x64/Release/Microsoft.VisualStudio.Threading.xml +CxViewerAction/bin/x64/Release/Microsoft.VisualStudio.Utilities.dll +CxViewerAction/bin/x64/Release/Microsoft.VisualStudio.Utilities.Internal.dll +CxViewerAction/bin/x64/Release/Microsoft.VisualStudio.Utilities.Internal.xml +CxViewerAction/bin/x64/Release/Microsoft.VisualStudio.Utilities.xml +CxViewerAction/bin/x64/Release/Microsoft.VisualStudio.Validation.dll +CxViewerAction/bin/x64/Release/Microsoft.VisualStudio.Validation.xml +CxViewerAction/bin/x64/Release/Microsoft.VisualStudio.VSHelp.dll +CxViewerAction/bin/x64/Release/Microsoft.Win32.Registry.dll +CxViewerAction/bin/x64/Release/Microsoft.Win32.Registry.xml +CxViewerAction/bin/x64/Release/Nerdbank.Streams.dll +CxViewerAction/bin/x64/Release/Nerdbank.Streams.pdb +CxViewerAction/bin/x64/Release/Nerdbank.Streams.xml +CxViewerAction/bin/x64/Release/Newtonsoft.Json.dll +CxViewerAction/bin/x64/Release/Newtonsoft.Json.xml +CxViewerAction/bin/x64/Release/pl/Microsoft.ServiceHub.Framework.resources.dll +CxViewerAction/bin/x64/Release/pl/Microsoft.VisualStudio.Threading.resources.dll +CxViewerAction/bin/x64/Release/pl/Microsoft.VisualStudio.Utilities.resources.dll +CxViewerAction/bin/x64/Release/pl/Microsoft.VisualStudio.Validation.resources.dll +CxViewerAction/bin/x64/Release/pl/StreamJsonRpc.resources.dll +CxViewerAction/bin/x64/Release/pt-BR/Microsoft.ServiceHub.Framework.resources.dll +CxViewerAction/bin/x64/Release/pt-BR/Microsoft.VisualStudio.Threading.resources.dll +CxViewerAction/bin/x64/Release/pt-BR/Microsoft.VisualStudio.Validation.resources.dll +CxViewerAction/bin/x64/Release/pt-BR/StreamJsonRpc.resources.dll +CxViewerAction/bin/x64/Release/pt/Microsoft.VisualStudio.Utilities.resources.dll +CxViewerAction/bin/x64/Release/README.txt +CxViewerAction/bin/x64/Release/resources.pak +CxViewerAction/bin/x64/Release/ru/Microsoft.ServiceHub.Framework.resources.dll +CxViewerAction/bin/x64/Release/ru/Microsoft.VisualStudio.Threading.resources.dll +CxViewerAction/bin/x64/Release/ru/Microsoft.VisualStudio.Utilities.resources.dll +CxViewerAction/bin/x64/Release/ru/Microsoft.VisualStudio.Validation.resources.dll +CxViewerAction/bin/x64/Release/ru/StreamJsonRpc.resources.dll +CxViewerAction/bin/x64/Release/snapshot_blob.bin +CxViewerAction/bin/x64/Release/stdole.dll +CxViewerAction/bin/x64/Release/StreamJsonRpc.dll +CxViewerAction/bin/x64/Release/StreamJsonRpc.xml +CxViewerAction/bin/x64/Release/swiftshader/libEGL.dll +CxViewerAction/bin/x64/Release/swiftshader/libGLESv2.dll +CxViewerAction/bin/x64/Release/System.Buffers.dll +CxViewerAction/bin/x64/Release/System.Buffers.xml +CxViewerAction/bin/x64/Release/System.Collections.Immutable.dll +CxViewerAction/bin/x64/Release/System.Collections.Immutable.xml +CxViewerAction/bin/x64/Release/System.Diagnostics.DiagnosticSource.dll +CxViewerAction/bin/x64/Release/System.Diagnostics.DiagnosticSource.xml +CxViewerAction/bin/x64/Release/System.IO.Pipelines.dll +CxViewerAction/bin/x64/Release/System.IO.Pipelines.xml +CxViewerAction/bin/x64/Release/System.Memory.dll +CxViewerAction/bin/x64/Release/System.Memory.xml +CxViewerAction/bin/x64/Release/System.Numerics.Vectors.dll +CxViewerAction/bin/x64/Release/System.Numerics.Vectors.xml +CxViewerAction/bin/x64/Release/System.Runtime.CompilerServices.Unsafe.dll +CxViewerAction/bin/x64/Release/System.Runtime.CompilerServices.Unsafe.xml +CxViewerAction/bin/x64/Release/System.Security.AccessControl.dll +CxViewerAction/bin/x64/Release/System.Security.AccessControl.xml +CxViewerAction/bin/x64/Release/System.Security.Principal.Windows.dll +CxViewerAction/bin/x64/Release/System.Security.Principal.Windows.xml +CxViewerAction/bin/x64/Release/System.Threading.AccessControl.dll +CxViewerAction/bin/x64/Release/System.Threading.AccessControl.xml +CxViewerAction/bin/x64/Release/System.Threading.Tasks.Dataflow.dll +CxViewerAction/bin/x64/Release/System.Threading.Tasks.Dataflow.xml +CxViewerAction/bin/x64/Release/System.Threading.Tasks.Extensions.dll +CxViewerAction/bin/x64/Release/System.Threading.Tasks.Extensions.xml +CxViewerAction/bin/x64/Release/tr/Microsoft.ServiceHub.Framework.resources.dll +CxViewerAction/bin/x64/Release/tr/Microsoft.VisualStudio.Threading.resources.dll +CxViewerAction/bin/x64/Release/tr/Microsoft.VisualStudio.Utilities.resources.dll +CxViewerAction/bin/x64/Release/tr/Microsoft.VisualStudio.Validation.resources.dll +CxViewerAction/bin/x64/Release/tr/StreamJsonRpc.resources.dll +CxViewerAction/bin/x64/Release/v8_context_snapshot.bin +CxViewerAction/bin/x64/Release/vk_swiftshader.dll +CxViewerAction/bin/x64/Release/vk_swiftshader_icd.json +CxViewerAction/bin/x64/Release/vulkan-1.dll +CxViewerAction/bin/x64/Release/zh-Hans/Microsoft.ServiceHub.Framework.resources.dll +CxViewerAction/bin/x64/Release/zh-Hans/Microsoft.VisualStudio.Threading.resources.dll +CxViewerAction/bin/x64/Release/zh-Hans/Microsoft.VisualStudio.Utilities.resources.dll +CxViewerAction/bin/x64/Release/zh-Hans/Microsoft.VisualStudio.Validation.resources.dll +CxViewerAction/bin/x64/Release/zh-Hans/StreamJsonRpc.resources.dll +CxViewerAction/bin/x64/Release/zh-Hant/Microsoft.ServiceHub.Framework.resources.dll +CxViewerAction/bin/x64/Release/zh-Hant/Microsoft.VisualStudio.Threading.resources.dll +CxViewerAction/bin/x64/Release/zh-Hant/Microsoft.VisualStudio.Utilities.resources.dll +CxViewerAction/bin/x64/Release/zh-Hant/Microsoft.VisualStudio.Validation.resources.dll +CxViewerAction/bin/x64/Release/zh-Hant/StreamJsonRpc.resources.dll +CxViewerAction2019/obj/Release/TempPE/Properties.Resources.Designer.cs.dll +CxViewerAction2019/obj/Release/TempPE/Web References.CxVSWebService.Reference.cs.dll +CxViewerAction2019/obj/Release/TempPE/Web References.CxWsResolver.Reference.cs.dll +CxViewerColorButton/bin/x64/Release/ColorButton.dll +CxViewerColorButton/bin/x64/Release/ColorButton.dll.CodeAnalysisLog.xml +CxViewerColorButton/bin/x64/Release/ColorButton.dll.lastcodeanalysissucceeded +CxViewerDgvFilterPopup/bin/x64/Release/Common.dll +CxViewerDgvFilterPopup/bin/x64/Release/Common.pdb +CxViewerDgvFilterPopup/bin/x64/Release/DgvFilterPopup.dll +CxViewerDgvFilterPopup/bin/x64/Release/DgvFilterPopup.dll.CodeAnalysisLog.xml +CxViewerDgvFilterPopup/bin/x64/Release/DgvFilterPopup.dll.lastcodeanalysissucceeded +CxViewerDgvFilterPopup/bin/x64/Release/DgvFilterPopup.pdb +CxViewerDgvFilterPopup/bin/x64/Release/log4net.dll +packages/log4net.2.0.14/package-icon.png +packages/log4net.2.0.14/log4net.2.0.14.nupkg +packages/log4net.2.0.14/lib/netstandard2.0/log4net.xml +packages/log4net.2.0.14/lib/netstandard2.0/log4net.dll +packages/log4net.2.0.14/lib/netstandard1.3/log4net.xml +packages/log4net.2.0.14/lib/netstandard1.3/log4net.dll +packages/log4net.2.0.14/lib/net45/log4net.xml +packages/log4net.2.0.14/lib/net45/log4net.dll +packages/log4net.2.0.14/lib/net40/log4net.xml +packages/log4net.2.0.14/lib/net40/log4net.dll +packages/log4net.2.0.14/lib/net40-client/log4net.xml +packages/log4net.2.0.14/lib/net40-client/log4net.dll +packages/log4net.2.0.14/lib/net35/log4net.xml +packages/log4net.2.0.14/lib/net35/log4net.dll +packages/log4net.2.0.14/lib/net35-client/log4net.xml +packages/log4net.2.0.14/lib/net35-client/log4net.dll +packages/log4net.2.0.14/lib/net20/log4net.xml +packages/log4net.2.0.14/lib/net20/log4net.dll +packages/log4net.2.0.14/.signature.p7s +Common/bin/x64/Release/log4net.xml +Common/bin/x86/Release/log4net.xml +CxViewer2022/bin/x64/Release/checkmarx-80.png +CxViewer2022/bin/x64/Release/log4net.xml +CxViewerAction/bin/x64/Release/EnvDTE.xml +CxViewerAction/bin/x64/Release/EnvDTE80.xml +CxViewerAction/bin/x64/Release/EnvDTE90.xml +CxViewerAction/bin/x64/Release/log4net.xml +CxViewerAction2019/bin/x86/Release/log4net.xml +CxViewerDgvFilterPopup/bin/x64/Release/log4net.xml +CxViewerDgvFilterPopup/bin/x86/Release/log4net.xml +CxViewerVSIX/bin/x86/Release/checkmarx-80.png +CxViewerVSIX/bin/x86/Release/log4net.xml diff --git a/CxViewerAction/Resources/1.ico b/ActionShared/Resources/1.ico similarity index 100% rename from CxViewerAction/Resources/1.ico rename to ActionShared/Resources/1.ico diff --git a/CxViewerAction/Resources/CxViewerResources.Designer.cs b/ActionShared/Resources/CxViewerResources.Designer.cs similarity index 82% rename from CxViewerAction/Resources/CxViewerResources.Designer.cs rename to ActionShared/Resources/CxViewerResources.Designer.cs index 0b3c2e8e..608d920a 100644 --- a/CxViewerAction/Resources/CxViewerResources.Designer.cs +++ b/ActionShared/Resources/CxViewerResources.Designer.cs @@ -1,152 +1,172 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace CxViewerAction.Resources { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class CxViewerResources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal CxViewerResources() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("CxViewerAction.Resources.CxViewerResources", typeof(CxViewerResources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - - internal static string GetCxViewerResources() - { - return ResourceManager.GetString("CxViewerResources", resourceCulture); - } - - /// - /// Looks up a localized string similar to //------------------------------------------------------------------------------ - ///// <auto-generated> - ///// This code was generated by a tool. - ///// Runtime Version:2.0.50727.3615 - ///// - ///// Changes to this file may cause incorrect behavior and will be lost if - ///// the code is regenerated. - ///// </auto-generated> - /////------------------------------------------------------------------------------ - /// - ///namespace CxViewerAction.Resources { - /// using System; - /// - /// - /// /// <summary> - /// /// A strong [rest of string was truncated]";. - /// - internal static string CxViewerResources_Designer { - get { - return ResourceManager.GetString("CxViewerResources_Designer", resourceCulture); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap Disabled { - get { - object obj = ResourceManager.GetObject("Disabled", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap Enabled { - get { - object obj = ResourceManager.GetObject("Enabled", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap MultiRelaitions { - get { - object obj = ResourceManager.GetObject("MultiRelaitions", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap MultiRelaitionsSelected { - get { - object obj = ResourceManager.GetObject("MultiRelaitionsSelected", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap NormalNode { - get { - object obj = ResourceManager.GetObject("NormalNode", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap NormalSelected { - get { - object obj = ResourceManager.GetObject("NormalSelected", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - } -} +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace CxViewerAction.Resources { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class CxViewerResources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal CxViewerResources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("CxViewerAction.Resources.CxViewerResources", typeof(CxViewerResources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to <?xml version="1.0" encoding="utf-8"?> + ///<root> + /// <!-- + /// Microsoft ResX Schema + /// + /// Version 2.0 + /// + /// The primary goals of this format is to allow a simple XML format + /// that is mostly human readable. The generation and parsing of the + /// various data types are done through the TypeConverter classes + /// associated with the data types. + /// + /// Example: + /// + /// ... ado.net/XML headers & schema ... + /// <resheader name="resmimetype">text/microsoft-resx</resheader> + /// <resheader n [rest of string was truncated]";. + /// + internal static string CxViewerResources1 { + get { + return ResourceManager.GetString("CxViewerResources", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to //------------------------------------------------------------------------------ + ///// <auto-generated> + ///// This code was generated by a tool. + ///// Runtime Version:4.0.30319.42000 + ///// + ///// Changes to this file may cause incorrect behavior and will be lost if + ///// the code is regenerated. + ///// </auto-generated> + /////------------------------------------------------------------------------------ + /// + ///namespace CxViewerAction.Resources { + /// using System; + /// + /// + /// /// <summary> + /// /// A stron [rest of string was truncated]";. + /// + internal static string CxViewerResources_Designer { + get { + return ResourceManager.GetString("CxViewerResources_Designer", resourceCulture); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Disabled { + get { + object obj = ResourceManager.GetObject("Disabled", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Enabled { + get { + object obj = ResourceManager.GetObject("Enabled", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap MultiRelaitions { + get { + object obj = ResourceManager.GetObject("MultiRelaitions", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap MultiRelaitionsSelected { + get { + object obj = ResourceManager.GetObject("MultiRelaitionsSelected", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap NormalNode { + get { + object obj = ResourceManager.GetObject("NormalNode", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap NormalSelected { + get { + object obj = ResourceManager.GetObject("NormalSelected", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/CxViewerAction/Resources/CxViewerResources.resx b/ActionShared/Resources/CxViewerResources.resx similarity index 98% rename from CxViewerAction/Resources/CxViewerResources.resx rename to ActionShared/Resources/CxViewerResources.resx index c6944378..b83e27b5 100644 --- a/CxViewerAction/Resources/CxViewerResources.resx +++ b/ActionShared/Resources/CxViewerResources.resx @@ -1,145 +1,145 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - cxviewerresources.resx;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 - - - cxviewerresources.designer.cs;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 - - - Disabled.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - Enabled.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - MultiRelaitions.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - MultiRelaitionsSelected.PNG;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - NormalNode.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - NormalSelected.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + cxviewerresources.resx;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 + + + cxviewerresources.designer.cs;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 + + + Disabled.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Enabled.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + MultiRelaitions.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + MultiRelaitionsSelected.PNG;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + NormalNode.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + NormalSelected.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + \ No newline at end of file diff --git a/CxViewerAction/Resources/Disabled.png b/ActionShared/Resources/Disabled.png similarity index 100% rename from CxViewerAction/Resources/Disabled.png rename to ActionShared/Resources/Disabled.png diff --git a/CxViewerAction/Resources/Enabled.png b/ActionShared/Resources/Enabled.png similarity index 100% rename from CxViewerAction/Resources/Enabled.png rename to ActionShared/Resources/Enabled.png diff --git a/CxViewerAction/Resources/High.png b/ActionShared/Resources/High.png similarity index 100% rename from CxViewerAction/Resources/High.png rename to ActionShared/Resources/High.png diff --git a/CxViewerAction/Resources/Low.png b/ActionShared/Resources/Low.png similarity index 100% rename from CxViewerAction/Resources/Low.png rename to ActionShared/Resources/Low.png diff --git a/CxViewerAction/Resources/Medium.png b/ActionShared/Resources/Medium.png similarity index 100% rename from CxViewerAction/Resources/Medium.png rename to ActionShared/Resources/Medium.png diff --git a/CxViewerAction/Resources/MultiRelaitions.png b/ActionShared/Resources/MultiRelaitions.png similarity index 100% rename from CxViewerAction/Resources/MultiRelaitions.png rename to ActionShared/Resources/MultiRelaitions.png diff --git a/CxViewerAction/Resources/MultiRelaitionsSelected.PNG b/ActionShared/Resources/MultiRelaitionsSelected.PNG similarity index 100% rename from CxViewerAction/Resources/MultiRelaitionsSelected.PNG rename to ActionShared/Resources/MultiRelaitionsSelected.PNG diff --git a/CxViewerAction/Resources/NormalNode.png b/ActionShared/Resources/NormalNode.png similarity index 100% rename from CxViewerAction/Resources/NormalNode.png rename to ActionShared/Resources/NormalNode.png diff --git a/CxViewerAction/Resources/NormalSelected.png b/ActionShared/Resources/NormalSelected.png similarity index 100% rename from CxViewerAction/Resources/NormalSelected.png rename to ActionShared/Resources/NormalSelected.png diff --git a/CxViewerAction/Resources/cx.gif b/ActionShared/Resources/cx.gif similarity index 100% rename from CxViewerAction/Resources/cx.gif rename to ActionShared/Resources/cx.gif diff --git a/CxViewerAction/Resources/cx.ico b/ActionShared/Resources/cx.ico similarity index 100% rename from CxViewerAction/Resources/cx.ico rename to ActionShared/Resources/cx.ico diff --git a/CxViewerAction/Resources/down.gif b/ActionShared/Resources/down.gif similarity index 100% rename from CxViewerAction/Resources/down.gif rename to ActionShared/Resources/down.gif diff --git a/CxViewerAction/Resources/empty.gif b/ActionShared/Resources/empty.gif similarity index 100% rename from CxViewerAction/Resources/empty.gif rename to ActionShared/Resources/empty.gif diff --git a/Common/Code/Constants.cs b/Common/Code/Constants.cs index 03327e47..44f6b5d2 100644 --- a/Common/Code/Constants.cs +++ b/Common/Code/Constants.cs @@ -1,21 +1,35 @@ namespace Common { - public class Constants - { - public const string COL_NAME_NUMBER = "No."; - public const string COL_NAME_STATUS = "Status"; - public const string COL_NAME_SOURCE_FOLDER = "Source Folder"; - public const string COL_NAME_SOURCE_FILE_NAME = "Source Filename"; - public const string COL_NAME_SOURCE_LINE = "Source Line"; - public const string COL_NAME_SOURCE_OBJECT = "Source Object"; - public const string COL_NAME_DEST_FOLDER = "Destination Folder"; - public const string COL_NAME_DEST_FILE_NAME = "Destination Filename"; - public const string COL_NAME_DEST_LINE = "Destination Line"; - public const string COL_NAME_DEST_OBJECT = "Destination Object"; - public const string COL_NAME_SHOW_PATH = "Result State"; - public const string COL_NAME_SEVERITY = "Severity"; - public const string COL_NAME_ASSIGN = "Assigned User"; - public const string COL_NAME_REMARK = "Comment"; + public class Constants + { + #region AuthTypeUserpassword + + public const string AuthenticationaType_DefaultValue = "access_control"; + public const string AuthenticationaType_IE = "access_control_ie"; + public const string AuthenticationaType_UserNamePassword = "username_password"; + + public const string USERNAME_KEY = "username"; + public const string PASSWORD_KEY = "password"; + public const string PASSWORD_GRANT_TYPE = "password"; + public const string CLIENT_SECRET_KEY = "client_secret"; + public const string SCOPE_VALUE_CREDS = "sast_api sast-permissions access_control_api sast_rest_api offline_access"; + + #endregion AuthTypeUserpassword + + public const string COL_NAME_NUMBER = "No."; + public const string COL_NAME_STATUS = "Status"; + public const string COL_NAME_SOURCE_FOLDER = "Source Folder"; + public const string COL_NAME_SOURCE_FILE_NAME = "Source Filename"; + public const string COL_NAME_SOURCE_LINE = "Source Line"; + public const string COL_NAME_SOURCE_OBJECT = "Source Object"; + public const string COL_NAME_DEST_FOLDER = "Destination Folder"; + public const string COL_NAME_DEST_FILE_NAME = "Destination Filename"; + public const string COL_NAME_DEST_LINE = "Destination Line"; + public const string COL_NAME_DEST_OBJECT = "Destination Object"; + public const string COL_NAME_SHOW_PATH = "Result State"; + public const string COL_NAME_SEVERITY = "Severity"; + public const string COL_NAME_ASSIGN = "Assigned User"; + public const string COL_NAME_REMARK = "Comment"; public const string ERR_TITLE = "Error Message"; public const string ERR_UNKNOWN = "Cannot establish connection with the server. Unknown error."; @@ -24,16 +38,22 @@ public class Constants public const string CLIENT_ID_KEY = "client_id"; public const string CLIENT_VALUE = "ide_client"; + public const string CLIENT_VALUE_ROPC = "resource_owner_client"; + public const string CLIENT_SECRET_ROPC = "014DF517-39D1-4453-B7B3-9930C563627C"; public const string SCOPE_KEY = "scope"; public const string CODE_KEY = "code"; public const string GRANT_TYPE_KEY = "grant_type"; public const string AUTHORIZATION_CODE_GRANT_TYPE = "authorization_code"; public const string SAST_PREFIX = "/CxRestAPI/auth"; + public const string SAST_PREFIX1 = "CxRestAPI/auth"; public const string REFRESH_TOKEN = "refresh_token"; public const string REDIRECT_URI_KEY = "redirect_uri"; public const string RESPONSE_TYPE_VALUE = "code"; public const string SCOPE_VALUE = "offline_access openid sast_api sast-permissions access_control_api"; public const string AUTHORIZATION_ENDPOINT = SAST_PREFIX + "/identity/connect/authorize"; + //public const string AUTHORIZATION_ENDPOINT1 = SAST_PREFIX1 + "/identity/connect/authorize"; + public const string AUTHORIZATION_ENDPOINT_BROWSER = SAST_PREFIX1 + "/identity/connect/authorize"; + public const string SAST_Suffix = "%252F"; public const string AUTHORIZATION_HEADER = "Authorization"; public const string BEARER = "Bearer "; public const string USER_INFO_ENDPOINT = SAST_PREFIX + "/identity/connect/userinfo"; @@ -41,7 +61,7 @@ public class Constants public const string TOKEN_ENDPOINT = SAST_PREFIX + "/identity/connect/token"; public const string SAVE_SAST_SCAN = "save-sast-scan"; public const string MANAGE_RESULTS_COMMENT = "manage-result-comment"; - public const string MANAGE_RESULTS_EXPLOITABILITY = "manage-result-exploitability"; + public const string MANAGE_RESULTS_EXPLOITABILITY = "set-result-state-notexploitable"; } } diff --git a/Common/Common.csproj b/Common/Common.csproj index d033f659..d0fa6c15 100644 --- a/Common/Common.csproj +++ b/Common/Common.csproj @@ -9,7 +9,7 @@ Properties Common Common - v4.7.1 + v4.7.2 512 SAK SAK @@ -42,9 +42,45 @@ key.snk + + true + bin\x86\Debug\ + DEBUG;TRACE + full + x86 + 7.3 + prompt + + + bin\x86\Release\ + TRACE + true + pdbonly + x86 + 7.3 + prompt + + + true + bin\x64\Debug\ + DEBUG;TRACE + full + x64 + 7.3 + prompt + + + bin\x64\Release\ + TRACE + true + pdbonly + x64 + 7.3 + prompt + - - ..\References\log4net.dll + + ..\packages\log4net.2.0.14\lib\net45\log4net.dll ..\References\Microsoft.Practices.EnterpriseLibrary.Common.dll diff --git a/Common/Common.csproj.user b/Common/Common.csproj.user new file mode 100644 index 00000000..790cccf4 --- /dev/null +++ b/Common/Common.csproj.user @@ -0,0 +1,21 @@ + + + + /rootsuffix Exp + Program + C:\Program Files %28x86%29\Microsoft Visual Studio\2019\Professional\Common7\IDE\devenv.exe + C:\Program Files %28x86%29\Microsoft Visual Studio\2019\Professional\Common7\IDE\ + + + C:\Program Files %28x86%29\Microsoft Visual Studio\2019\Professional\Common7\IDE\devenv.exe + C:\Program Files %28x86%29\Microsoft Visual Studio\2019\Professional\Common7\IDE\ + /rootsuffix Exp + Program + + + C:\Program Files %28x86%29\Microsoft Visual Studio\2019\Professional\Common7\IDE\devenv.exe + C:\Program Files %28x86%29\Microsoft Visual Studio\2019\Professional\Common7\IDE\ + /rootsuffix Exp + Program + + \ No newline at end of file diff --git a/CxViewerAction/BaseInterfaces/ICommandResult.cs b/CxActionShared/BaseInterfaces/ICommandResult.cs similarity index 94% rename from CxViewerAction/BaseInterfaces/ICommandResult.cs rename to CxActionShared/BaseInterfaces/ICommandResult.cs index ae6fc949..bb7dafc3 100644 --- a/CxViewerAction/BaseInterfaces/ICommandResult.cs +++ b/CxActionShared/BaseInterfaces/ICommandResult.cs @@ -1,13 +1,13 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace CxViewerAction.Commands -{ - /// - /// Represent commandResult class structure - /// - public interface ICommandResult - { - } -} +using System; +using System.Collections.Generic; +using System.Text; + +namespace CxViewerAction.Commands +{ + /// + /// Represent commandResult class structure + /// + public interface ICommandResult + { + } +} diff --git a/CxViewerAction/BaseInterfaces/IDispatcher.cs b/CxActionShared/BaseInterfaces/IDispatcher.cs similarity index 95% rename from CxViewerAction/BaseInterfaces/IDispatcher.cs rename to CxActionShared/BaseInterfaces/IDispatcher.cs index d241a458..87b3da18 100644 --- a/CxViewerAction/BaseInterfaces/IDispatcher.cs +++ b/CxActionShared/BaseInterfaces/IDispatcher.cs @@ -1,18 +1,18 @@ -using CxViewerAction.Commands; -using CxViewerAction.Entities; - -namespace CxViewerAction.Dispatchers -{ - /// - /// Represent dispatcher class structure - /// - public interface IDispatcher - { - /// - /// Dispatch command - /// - /// - /// - ICommandResult Dispatch(IEntity entity); - } -} +using CxViewerAction.Commands; +using CxViewerAction.Entities; + +namespace CxViewerAction.Dispatchers +{ + /// + /// Represent dispatcher class structure + /// + public interface IDispatcher + { + /// + /// Dispatch command + /// + /// + /// + ICommandResult Dispatch(IEntity entity); + } +} diff --git a/CxViewerAction/BaseInterfaces/IGraph.cs b/CxActionShared/BaseInterfaces/IGraph.cs similarity index 96% rename from CxViewerAction/BaseInterfaces/IGraph.cs rename to CxActionShared/BaseInterfaces/IGraph.cs index a4f0682a..6b5cdcae 100644 --- a/CxViewerAction/BaseInterfaces/IGraph.cs +++ b/CxActionShared/BaseInterfaces/IGraph.cs @@ -1,159 +1,159 @@ -using System; -using System.Drawing; -using System.Collections.Generic; -using CxViewerAction.Entities; -using CxViewerAction.Entities.WebServiceEntity; -using CxViewerAction.Views.DockedView; - -namespace CxViewerAction.BaseInterfaces -{ - /// - /// Represent base methods-properties graph object - /// - public interface IGraph - { - /// - /// Gets or sets graph severity - /// - ReportQuerySeverityType Severity { get; set; } - - /// - /// Gets or sets current selected graph path - /// - IGraphPath Current { get; set; } - - /// - /// Gets graph horizontal length (max horizontal elements) - /// - int Width { get; } - - /// - /// Gets graph vertical length (max vertical elements) - /// - int Height { get; } - - /// - /// Gets or sets list of path sequances - /// - List Paths { get; set; } - - /// - /// Gets or sets the max node relations comparing to all graph nodes - /// - int MaxRelations { get; } - - /// - /// Gets item position in graph matrix start from top-left corner - /// - /// Grapth element - /// X-Y position of element inside graph - Point GetPosition(IGraphItem item); - - /// - /// Perform adding new path to graph and updating item references - /// - /// - void AddNewPath(IGraphPath path); - } - - /// - /// Represent main methods-properties for path object - /// - public interface IGraphPath : IComparable - { - /// - /// Gets or sets current selected graph item - /// - IGraphItem Current { get; set; } - - /// - /// Problem sequance length - /// - int Width { get; } - - /// - /// Gets or sets problems sequance from begin to end - /// - List DirectFlow { get; set; } - - /// - /// Get the position of first path element in comparission - /// with most top element in all graph paths - /// - int Top { get; } - - /// - /// Gets the vertical position of path in graph matrix - /// - int Left { get; } - - ReportQueryItemResult QueryItemResult { set;get;} - } - - /// - /// Represent main methods-properties for graph path item object - /// - public interface IGraphItem : IComparable, IPerspectiveProblemFile - { - /// - /// Gets or sets problem file name - /// - string FileName { get; set; } - - /// - /// Gets or sets item name - /// - string Name { get; set; } - - /// - /// Gets or sets problem line position - /// - int Line { get; set; } - - /// - /// Gets or sets problem column position - /// - int Column { get; set; } - - /// - /// Gets or sets problem text length - /// - int Length { get; set; } - - /// - /// Determine that this item exist in other graph paths. - /// - IGraphItem RelatedTo { get; set; } - - /// - /// Determine that this item exist in other graph paths. - /// - List RelationsFrom { get; set; } - - /// - /// Gets or sets parent item - /// - IGraphPath Parent { get; set; } - - /// - /// Gets or sets value indicated that current graph item id connection point - /// for all same items - /// - bool IsPrimary { get; set; } - - /// - /// Gets or sets column element position in graph object - /// - int GraphX { get; set; } - - /// - /// Gets or sets row element position in graph object - /// - int GraphY { get; set; } - - string UniqueID { get;} - - bool IsSelected { get;set;} - bool IsMultiReletions { get;set;} - } -} +using System; +using System.Drawing; +using System.Collections.Generic; +using CxViewerAction.Entities; +using CxViewerAction.Entities.WebServiceEntity; +using CxViewerAction.Views.DockedView; + +namespace CxViewerAction.BaseInterfaces +{ + /// + /// Represent base methods-properties graph object + /// + public interface IGraph + { + /// + /// Gets or sets graph severity + /// + ReportQuerySeverityType Severity { get; set; } + + /// + /// Gets or sets current selected graph path + /// + IGraphPath Current { get; set; } + + /// + /// Gets graph horizontal length (max horizontal elements) + /// + int Width { get; } + + /// + /// Gets graph vertical length (max vertical elements) + /// + int Height { get; } + + /// + /// Gets or sets list of path sequances + /// + List Paths { get; set; } + + /// + /// Gets or sets the max node relations comparing to all graph nodes + /// + int MaxRelations { get; } + + /// + /// Gets item position in graph matrix start from top-left corner + /// + /// Grapth element + /// X-Y position of element inside graph + Point GetPosition(IGraphItem item); + + /// + /// Perform adding new path to graph and updating item references + /// + /// + void AddNewPath(IGraphPath path); + } + + /// + /// Represent main methods-properties for path object + /// + public interface IGraphPath : IComparable + { + /// + /// Gets or sets current selected graph item + /// + IGraphItem Current { get; set; } + + /// + /// Problem sequance length + /// + int Width { get; } + + /// + /// Gets or sets problems sequance from begin to end + /// + List DirectFlow { get; set; } + + /// + /// Get the position of first path element in comparission + /// with most top element in all graph paths + /// + int Top { get; } + + /// + /// Gets the vertical position of path in graph matrix + /// + int Left { get; } + + ReportQueryItemResult QueryItemResult { set;get;} + } + + /// + /// Represent main methods-properties for graph path item object + /// + public interface IGraphItem : IComparable, IPerspectiveProblemFile + { + /// + /// Gets or sets problem file name + /// + string FileName { get; set; } + + /// + /// Gets or sets item name + /// + string Name { get; set; } + + /// + /// Gets or sets problem line position + /// + int Line { get; set; } + + /// + /// Gets or sets problem column position + /// + int Column { get; set; } + + /// + /// Gets or sets problem text length + /// + int Length { get; set; } + + /// + /// Determine that this item exist in other graph paths. + /// + IGraphItem RelatedTo { get; set; } + + /// + /// Determine that this item exist in other graph paths. + /// + List RelationsFrom { get; set; } + + /// + /// Gets or sets parent item + /// + IGraphPath Parent { get; set; } + + /// + /// Gets or sets value indicated that current graph item id connection point + /// for all same items + /// + bool IsPrimary { get; set; } + + /// + /// Gets or sets column element position in graph object + /// + int GraphX { get; set; } + + /// + /// Gets or sets row element position in graph object + /// + int GraphY { get; set; } + + string UniqueID { get;} + + bool IsSelected { get;set;} + bool IsMultiReletions { get;set;} + } +} diff --git a/CxViewerAction/BaseInterfaces/IPresenter.cs b/CxActionShared/BaseInterfaces/IPresenter.cs similarity index 94% rename from CxViewerAction/BaseInterfaces/IPresenter.cs rename to CxActionShared/BaseInterfaces/IPresenter.cs index d5c9ec97..482e9d86 100644 --- a/CxViewerAction/BaseInterfaces/IPresenter.cs +++ b/CxActionShared/BaseInterfaces/IPresenter.cs @@ -1,11 +1,11 @@ -using System; - -namespace CxViewerAction.Presenters -{ - /// - /// Represent presenter class structure - /// - public interface IPresenter - { - } -} +using System; + +namespace CxViewerAction.Presenters +{ + /// + /// Represent presenter class structure + /// + public interface IPresenter + { + } +} diff --git a/CxViewerAction/BaseInterfaces/IProblem.cs b/CxActionShared/BaseInterfaces/IProblem.cs similarity index 93% rename from CxViewerAction/BaseInterfaces/IProblem.cs rename to CxActionShared/BaseInterfaces/IProblem.cs index 7a90dc47..75cda2ad 100644 --- a/CxViewerAction/BaseInterfaces/IProblem.cs +++ b/CxActionShared/BaseInterfaces/IProblem.cs @@ -1,10 +1,10 @@ -using System; -using CxViewerAction.Views.DockedView; - -namespace CxViewerAction.BaseInterfaces -{ - public interface ISelectableProblem - { - - } -} +using System; +using CxViewerAction.Views.DockedView; + +namespace CxViewerAction.BaseInterfaces +{ + public interface ISelectableProblem + { + + } +} diff --git a/CxViewerAction/BaseInterfaces/IView.cs b/CxActionShared/BaseInterfaces/IView.cs similarity index 95% rename from CxViewerAction/BaseInterfaces/IView.cs rename to CxActionShared/BaseInterfaces/IView.cs index c2599232..7a91a00d 100644 --- a/CxViewerAction/BaseInterfaces/IView.cs +++ b/CxActionShared/BaseInterfaces/IView.cs @@ -1,45 +1,45 @@ -using System; -using System.Windows.Forms; - -namespace CxViewerAction -{ - /// - /// Represent View class structure - /// - public interface IView - { - /// - /// View load handler - /// - event EventHandler Load; - - /// - /// Show modal dialog - /// - /// - DialogResult ShowModalView(); - - /// - /// Show modal dialog - /// - /// parent view - /// - DialogResult ShowModalView(IView parent); - - /// - /// Show non-modal view - /// - void ShowView(); - - /// - /// Show non-modal view - /// - /// parent view - void ShowView(IView parent); - - /// - /// Close view - /// - void CloseView(); - } -} +using System; +using System.Windows.Forms; + +namespace CxViewerAction +{ + /// + /// Represent View class structure + /// + public interface IView + { + /// + /// View load handler + /// + event EventHandler Load; + + /// + /// Show modal dialog + /// + /// + DialogResult ShowModalView(); + + /// + /// Show modal dialog + /// + /// parent view + /// + DialogResult ShowModalView(IView parent); + + /// + /// Show non-modal view + /// + void ShowView(); + + /// + /// Show non-modal view + /// + /// parent view + void ShowView(IView parent); + + /// + /// Close view + /// + void CloseView(); + } +} diff --git a/CxViewerAction/CommandBar.Designer.cs b/CxActionShared/CommandBar.Designer.cs similarity index 96% rename from CxViewerAction/CommandBar.Designer.cs rename to CxActionShared/CommandBar.Designer.cs index eda3cd1d..9122016a 100644 --- a/CxViewerAction/CommandBar.Designer.cs +++ b/CxActionShared/CommandBar.Designer.cs @@ -1,2928 +1,2928 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace CxViewerAction { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class CommandBar { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal CommandBar() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("CxViewerAction.CommandBar", typeof(CommandBar).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap cx { - get { - object obj = ResourceManager.GetObject("cx", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized string similar to Aktion. - /// - internal static string deAction { - get { - return ResourceManager.GetString("deAction", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Add-Ins. - /// - internal static string deAddins { - get { - return ResourceManager.GetString("deAddins", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Analyse. - /// - internal static string deAnalyze { - get { - return ResourceManager.GetString("deAnalyze", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Erstellen. - /// - internal static string deBuild { - get { - return ResourceManager.GetString("deBuild", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Klassendiagramm. - /// - internal static string deClass_Diagram { - get { - return ResourceManager.GetString("deClass Diagram", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Community. - /// - internal static string deCommunity { - get { - return ResourceManager.GetString("deCommunity", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Daten. - /// - internal static string deData { - get { - return ResourceManager.GetString("deData", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Datenbank. - /// - internal static string deDatabase { - get { - return ResourceManager.GetString("deDatabase", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Datenbankdiagramm. - /// - internal static string deDatabase_Diagram { - get { - return ResourceManager.GetString("deDatabase Diagram", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Debuggen. - /// - internal static string deDebug { - get { - return ResourceManager.GetString("deDebug", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Diagramm. - /// - internal static string deDiagram { - get { - return ResourceManager.GetString("deDiagram", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Bearbeiten. - /// - internal static string deEdit { - get { - return ResourceManager.GetString("deEdit", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Datei. - /// - internal static string deFile { - get { - return ResourceManager.GetString("deFile", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Format. - /// - internal static string deFormat { - get { - return ResourceManager.GetString("deFormat", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Rahmen. - /// - internal static string deFrames { - get { - return ResourceManager.GetString("deFrames", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Hilfe. - /// - internal static string deHelp { - get { - return ResourceManager.GetString("deHelp", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Bild. - /// - internal static string deImage { - get { - return ResourceManager.GetString("deImage", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Layout. - /// - internal static string deLayout { - get { - return ResourceManager.GetString("deLayout", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Makros. - /// - internal static string deMacros { - get { - return ResourceManager.GetString("deMacros", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Projekt. - /// - internal static string deProject { - get { - return ResourceManager.GetString("deProject", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Query. - /// - internal static string deQuery { - get { - return ResourceManager.GetString("deQuery", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Abfrage-Designer. - /// - internal static string deQuery_Designer { - get { - return ResourceManager.GetString("deQuery Designer", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Umgestalten. - /// - internal static string deRefactor { - get { - return ResourceManager.GetString("deRefactor", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Bericht. - /// - internal static string deReport { - get { - return ResourceManager.GetString("deReport", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Ressourcen. - /// - internal static string deResources { - get { - return ResourceManager.GetString("deResources", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Schema. - /// - internal static string deSchema { - get { - return ResourceManager.GetString("deSchema", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Formate. - /// - internal static string deStyles { - get { - return ResourceManager.GetString("deStyles", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Tabelle. - /// - internal static string deTable { - get { - return ResourceManager.GetString("deTable", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Tabellen-Designer. - /// - internal static string deTable_Designer { - get { - return ResourceManager.GetString("deTable Designer", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Team. - /// - internal static string deTeam { - get { - return ResourceManager.GetString("deTeam", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Test. - /// - internal static string deTest { - get { - return ResourceManager.GetString("deTest", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Extras. - /// - internal static string deTools { - get { - return ResourceManager.GetString("deTools", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Ansicht. - /// - internal static string deView { - get { - return ResourceManager.GetString("deView", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Fenster. - /// - internal static string deWindow { - get { - return ResourceManager.GetString("deWindow", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to XML. - /// - internal static string deXML { - get { - return ResourceManager.GetString("deXML", resourceCulture); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap down { - get { - object obj = ResourceManager.GetObject("down", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap empty { - get { - object obj = ResourceManager.GetObject("empty", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized string similar to Action. - /// - internal static string enAction { - get { - return ResourceManager.GetString("enAction", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Addins. - /// - internal static string enAddins { - get { - return ResourceManager.GetString("enAddins", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Analyze. - /// - internal static string enAnalyze { - get { - return ResourceManager.GetString("enAnalyze", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Build. - /// - internal static string enBuild { - get { - return ResourceManager.GetString("enBuild", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Class Diagram. - /// - internal static string enClass_Diagram { - get { - return ResourceManager.GetString("enClass Diagram", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Community. - /// - internal static string enCommunity { - get { - return ResourceManager.GetString("enCommunity", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Data. - /// - internal static string enData { - get { - return ResourceManager.GetString("enData", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Database. - /// - internal static string enDatabase { - get { - return ResourceManager.GetString("enDatabase", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Database Diagram. - /// - internal static string enDatabase_Diagram { - get { - return ResourceManager.GetString("enDatabase Diagram", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Debug. - /// - internal static string enDebug { - get { - return ResourceManager.GetString("enDebug", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Diagram. - /// - internal static string enDiagram { - get { - return ResourceManager.GetString("enDiagram", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Edit. - /// - internal static string enEdit { - get { - return ResourceManager.GetString("enEdit", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to File. - /// - internal static string enFile { - get { - return ResourceManager.GetString("enFile", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Format. - /// - internal static string enFormat { - get { - return ResourceManager.GetString("enFormat", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Frames. - /// - internal static string enFrames { - get { - return ResourceManager.GetString("enFrames", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Help. - /// - internal static string enHelp { - get { - return ResourceManager.GetString("enHelp", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Image. - /// - internal static string enImage { - get { - return ResourceManager.GetString("enImage", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Layout. - /// - internal static string enLayout { - get { - return ResourceManager.GetString("enLayout", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Macros. - /// - internal static string enMacros { - get { - return ResourceManager.GetString("enMacros", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Project. - /// - internal static string enProject { - get { - return ResourceManager.GetString("enProject", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Query. - /// - internal static string enQuery { - get { - return ResourceManager.GetString("enQuery", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Query Designer. - /// - internal static string enQuery_Designer { - get { - return ResourceManager.GetString("enQuery Designer", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Refactor. - /// - internal static string enRefactor { - get { - return ResourceManager.GetString("enRefactor", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Report. - /// - internal static string enReport { - get { - return ResourceManager.GetString("enReport", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Resources. - /// - internal static string enResources { - get { - return ResourceManager.GetString("enResources", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Schema. - /// - internal static string enSchema { - get { - return ResourceManager.GetString("enSchema", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Styles. - /// - internal static string enStyles { - get { - return ResourceManager.GetString("enStyles", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Table. - /// - internal static string enTable { - get { - return ResourceManager.GetString("enTable", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Table Designer. - /// - internal static string enTable_Designer { - get { - return ResourceManager.GetString("enTable Designer", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Team. - /// - internal static string enTeam { - get { - return ResourceManager.GetString("enTeam", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Test. - /// - internal static string enTest { - get { - return ResourceManager.GetString("enTest", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Tools. - /// - internal static string enTools { - get { - return ResourceManager.GetString("enTools", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to View. - /// - internal static string enView { - get { - return ResourceManager.GetString("enView", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Window. - /// - internal static string enWindow { - get { - return ResourceManager.GetString("enWindow", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to XML. - /// - internal static string enXML { - get { - return ResourceManager.GetString("enXML", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Acción. - /// - internal static string esAction { - get { - return ResourceManager.GetString("esAction", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Complementos. - /// - internal static string esAddins { - get { - return ResourceManager.GetString("esAddins", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Analizar. - /// - internal static string esAnalyze { - get { - return ResourceManager.GetString("esAnalyze", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Generar. - /// - internal static string esBuild { - get { - return ResourceManager.GetString("esBuild", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Diagrama de clase. - /// - internal static string esClass_Diagram { - get { - return ResourceManager.GetString("esClass Diagram", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Comunidad. - /// - internal static string esCommunity { - get { - return ResourceManager.GetString("esCommunity", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Datos. - /// - internal static string esData { - get { - return ResourceManager.GetString("esData", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Base de datos. - /// - internal static string esDatabase { - get { - return ResourceManager.GetString("esDatabase", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Diagrama de base de datos. - /// - internal static string esDatabase_Diagram { - get { - return ResourceManager.GetString("esDatabase Diagram", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Depurar. - /// - internal static string esDebug { - get { - return ResourceManager.GetString("esDebug", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Diagrama. - /// - internal static string esDiagram { - get { - return ResourceManager.GetString("esDiagram", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Editar. - /// - internal static string esEdit { - get { - return ResourceManager.GetString("esEdit", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Archivo. - /// - internal static string esFile { - get { - return ResourceManager.GetString("esFile", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Formato. - /// - internal static string esFormat { - get { - return ResourceManager.GetString("esFormat", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Marcos. - /// - internal static string esFrames { - get { - return ResourceManager.GetString("esFrames", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Ayuda. - /// - internal static string esHelp { - get { - return ResourceManager.GetString("esHelp", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Imagen. - /// - internal static string esImage { - get { - return ResourceManager.GetString("esImage", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Diseño. - /// - internal static string esLayout { - get { - return ResourceManager.GetString("esLayout", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Macros. - /// - internal static string esMacros { - get { - return ResourceManager.GetString("esMacros", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Proyecto. - /// - internal static string esProject { - get { - return ResourceManager.GetString("esProject", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Consulta. - /// - internal static string esQuery { - get { - return ResourceManager.GetString("esQuery", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Diseñador de consultas. - /// - internal static string esQuery_Designer { - get { - return ResourceManager.GetString("esQuery Designer", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Refactorizar. - /// - internal static string esRefactor { - get { - return ResourceManager.GetString("esRefactor", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Informe. - /// - internal static string esReport { - get { - return ResourceManager.GetString("esReport", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Recursos. - /// - internal static string esResources { - get { - return ResourceManager.GetString("esResources", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Esquema. - /// - internal static string esSchema { - get { - return ResourceManager.GetString("esSchema", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Estilos. - /// - internal static string esStyles { - get { - return ResourceManager.GetString("esStyles", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Tabla. - /// - internal static string esTable { - get { - return ResourceManager.GetString("esTable", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Diseñador de tablas. - /// - internal static string esTable_Designer { - get { - return ResourceManager.GetString("esTable Designer", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Equipo. - /// - internal static string esTeam { - get { - return ResourceManager.GetString("esTeam", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Prueba. - /// - internal static string esTest { - get { - return ResourceManager.GetString("esTest", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Herramientas. - /// - internal static string esTools { - get { - return ResourceManager.GetString("esTools", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Ver. - /// - internal static string esView { - get { - return ResourceManager.GetString("esView", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Ventana. - /// - internal static string esWindow { - get { - return ResourceManager.GetString("esWindow", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to XML. - /// - internal static string esXML { - get { - return ResourceManager.GetString("esXML", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Action. - /// - internal static string frAction { - get { - return ResourceManager.GetString("frAction", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Compléments. - /// - internal static string frAddins { - get { - return ResourceManager.GetString("frAddins", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Analyser. - /// - internal static string frAnalyze { - get { - return ResourceManager.GetString("frAnalyze", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Générer. - /// - internal static string frBuild { - get { - return ResourceManager.GetString("frBuild", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Diagramme de classes. - /// - internal static string frClass_Diagram { - get { - return ResourceManager.GetString("frClass Diagram", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Communauté. - /// - internal static string frCommunity { - get { - return ResourceManager.GetString("frCommunity", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Données. - /// - internal static string frData { - get { - return ResourceManager.GetString("frData", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Base de données. - /// - internal static string frDatabase { - get { - return ResourceManager.GetString("frDatabase", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Schéma de base de données. - /// - internal static string frDatabase_Diagram { - get { - return ResourceManager.GetString("frDatabase Diagram", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Déboguer. - /// - internal static string frDebug { - get { - return ResourceManager.GetString("frDebug", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Schéma. - /// - internal static string frDiagram { - get { - return ResourceManager.GetString("frDiagram", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Edition. - /// - internal static string frEdit { - get { - return ResourceManager.GetString("frEdit", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Fichier. - /// - internal static string frFile { - get { - return ResourceManager.GetString("frFile", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Format. - /// - internal static string frFormat { - get { - return ResourceManager.GetString("frFormat", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Frames. - /// - internal static string frFrames { - get { - return ResourceManager.GetString("frFrames", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to ?. - /// - internal static string frHelp { - get { - return ResourceManager.GetString("frHelp", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Image. - /// - internal static string frImage { - get { - return ResourceManager.GetString("frImage", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Disposition. - /// - internal static string frLayout { - get { - return ResourceManager.GetString("frLayout", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Macros. - /// - internal static string frMacros { - get { - return ResourceManager.GetString("frMacros", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Projet. - /// - internal static string frProject { - get { - return ResourceManager.GetString("frProject", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Requête. - /// - internal static string frQuery { - get { - return ResourceManager.GetString("frQuery", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Concepteur de requêtes. - /// - internal static string frQuery_Designer { - get { - return ResourceManager.GetString("frQuery Designer", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Refactoriser. - /// - internal static string frRefactor { - get { - return ResourceManager.GetString("frRefactor", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Rapport. - /// - internal static string frReport { - get { - return ResourceManager.GetString("frReport", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Ressources. - /// - internal static string frResources { - get { - return ResourceManager.GetString("frResources", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Schéma. - /// - internal static string frSchema { - get { - return ResourceManager.GetString("frSchema", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Styles. - /// - internal static string frStyles { - get { - return ResourceManager.GetString("frStyles", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Tableau. - /// - internal static string frTable { - get { - return ResourceManager.GetString("frTable", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Concepteur de tables. - /// - internal static string frTable_Designer { - get { - return ResourceManager.GetString("frTable Designer", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to équipe. - /// - internal static string frTeam { - get { - return ResourceManager.GetString("frTeam", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Test. - /// - internal static string frTest { - get { - return ResourceManager.GetString("frTest", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Outils. - /// - internal static string frTools { - get { - return ResourceManager.GetString("frTools", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Affichage. - /// - internal static string frView { - get { - return ResourceManager.GetString("frView", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Fenêtre. - /// - internal static string frWindow { - get { - return ResourceManager.GetString("frWindow", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to XML. - /// - internal static string frXML { - get { - return ResourceManager.GetString("frXML", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Azione. - /// - internal static string itAction { - get { - return ResourceManager.GetString("itAction", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Componenti aggiuntivi. - /// - internal static string itAddins { - get { - return ResourceManager.GetString("itAddins", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Analizza. - /// - internal static string itAnalyze { - get { - return ResourceManager.GetString("itAnalyze", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Genera. - /// - internal static string itBuild { - get { - return ResourceManager.GetString("itBuild", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Diagramma classi. - /// - internal static string itClass_Diagram { - get { - return ResourceManager.GetString("itClass Diagram", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Comunità. - /// - internal static string itCommunity { - get { - return ResourceManager.GetString("itCommunity", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Dati. - /// - internal static string itData { - get { - return ResourceManager.GetString("itData", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Database. - /// - internal static string itDatabase { - get { - return ResourceManager.GetString("itDatabase", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Diagramma database. - /// - internal static string itDatabase_Diagram { - get { - return ResourceManager.GetString("itDatabase Diagram", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Debug. - /// - internal static string itDebug { - get { - return ResourceManager.GetString("itDebug", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Diagramma. - /// - internal static string itDiagram { - get { - return ResourceManager.GetString("itDiagram", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Modifica. - /// - internal static string itEdit { - get { - return ResourceManager.GetString("itEdit", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to File. - /// - internal static string itFile { - get { - return ResourceManager.GetString("itFile", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Formato. - /// - internal static string itFormat { - get { - return ResourceManager.GetString("itFormat", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Frame. - /// - internal static string itFrames { - get { - return ResourceManager.GetString("itFrames", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to ?. - /// - internal static string itHelp { - get { - return ResourceManager.GetString("itHelp", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Immagine. - /// - internal static string itImage { - get { - return ResourceManager.GetString("itImage", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Layout. - /// - internal static string itLayout { - get { - return ResourceManager.GetString("itLayout", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Macro. - /// - internal static string itMacros { - get { - return ResourceManager.GetString("itMacros", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Progetto. - /// - internal static string itProject { - get { - return ResourceManager.GetString("itProject", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Query. - /// - internal static string itQuery { - get { - return ResourceManager.GetString("itQuery", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Progettazione query. - /// - internal static string itQuery_Designer { - get { - return ResourceManager.GetString("itQuery Designer", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Effettua refactoring. - /// - internal static string itRefactor { - get { - return ResourceManager.GetString("itRefactor", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Report. - /// - internal static string itReport { - get { - return ResourceManager.GetString("itReport", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Risorse. - /// - internal static string itResources { - get { - return ResourceManager.GetString("itResources", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Schema. - /// - internal static string itSchema { - get { - return ResourceManager.GetString("itSchema", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Stili. - /// - internal static string itStyles { - get { - return ResourceManager.GetString("itStyles", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Tabella. - /// - internal static string itTable { - get { - return ResourceManager.GetString("itTable", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Progettazione tabelle. - /// - internal static string itTable_Designer { - get { - return ResourceManager.GetString("itTable Designer", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Team. - /// - internal static string itTeam { - get { - return ResourceManager.GetString("itTeam", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Test. - /// - internal static string itTest { - get { - return ResourceManager.GetString("itTest", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Strumenti. - /// - internal static string itTools { - get { - return ResourceManager.GetString("itTools", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Visualizza. - /// - internal static string itView { - get { - return ResourceManager.GetString("itView", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Finestra. - /// - internal static string itWindow { - get { - return ResourceManager.GetString("itWindow", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to XML. - /// - internal static string itXML { - get { - return ResourceManager.GetString("itXML", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 操作. - /// - internal static string jaAction { - get { - return ResourceManager.GetString("jaAction", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to アドイン. - /// - internal static string jaAddins { - get { - return ResourceManager.GetString("jaAddins", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 分析. - /// - internal static string jaAnalyze { - get { - return ResourceManager.GetString("jaAnalyze", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to ビルド. - /// - internal static string jaBuild { - get { - return ResourceManager.GetString("jaBuild", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to クラス ダイアグラム. - /// - internal static string jaClass_Diagram { - get { - return ResourceManager.GetString("jaClass Diagram", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to コミュニティ. - /// - internal static string jaCommunity { - get { - return ResourceManager.GetString("jaCommunity", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to データ. - /// - internal static string jaData { - get { - return ResourceManager.GetString("jaData", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to データベース. - /// - internal static string jaDatabase { - get { - return ResourceManager.GetString("jaDatabase", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to データベース ダイアグラム. - /// - internal static string jaDatabase_Diagram { - get { - return ResourceManager.GetString("jaDatabase Diagram", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to デバッグ. - /// - internal static string jaDebug { - get { - return ResourceManager.GetString("jaDebug", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to ダイアグラム. - /// - internal static string jaDiagram { - get { - return ResourceManager.GetString("jaDiagram", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 編集. - /// - internal static string jaEdit { - get { - return ResourceManager.GetString("jaEdit", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to ファイル. - /// - internal static string jaFile { - get { - return ResourceManager.GetString("jaFile", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 書式. - /// - internal static string jaFormat { - get { - return ResourceManager.GetString("jaFormat", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to フレーム. - /// - internal static string jaFrames { - get { - return ResourceManager.GetString("jaFrames", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to ヘルプ. - /// - internal static string jaHelp { - get { - return ResourceManager.GetString("jaHelp", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to イメージ. - /// - internal static string jaImage { - get { - return ResourceManager.GetString("jaImage", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to レイアウト. - /// - internal static string jaLayout { - get { - return ResourceManager.GetString("jaLayout", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to マクロ. - /// - internal static string jaMacros { - get { - return ResourceManager.GetString("jaMacros", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to プロジェクト. - /// - internal static string jaProject { - get { - return ResourceManager.GetString("jaProject", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to クエリ. - /// - internal static string jaQuery { - get { - return ResourceManager.GetString("jaQuery", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to クエリ デザイナ. - /// - internal static string jaQuery_Designer { - get { - return ResourceManager.GetString("jaQuery Designer", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to リファクタ. - /// - internal static string jaRefactor { - get { - return ResourceManager.GetString("jaRefactor", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to レポート. - /// - internal static string jaReport { - get { - return ResourceManager.GetString("jaReport", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to リソース. - /// - internal static string jaResources { - get { - return ResourceManager.GetString("jaResources", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to スキーマ. - /// - internal static string jaSchema { - get { - return ResourceManager.GetString("jaSchema", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to スタイル. - /// - internal static string jaStyles { - get { - return ResourceManager.GetString("jaStyles", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to テーブル. - /// - internal static string jaTable { - get { - return ResourceManager.GetString("jaTable", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to テーブル デザイナ. - /// - internal static string jaTable_Designer { - get { - return ResourceManager.GetString("jaTable Designer", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to チーム. - /// - internal static string jaTeam { - get { - return ResourceManager.GetString("jaTeam", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to テスト. - /// - internal static string jaTest { - get { - return ResourceManager.GetString("jaTest", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to ツール. - /// - internal static string jaTools { - get { - return ResourceManager.GetString("jaTools", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 表示. - /// - internal static string jaView { - get { - return ResourceManager.GetString("jaView", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to ウィンドウ. - /// - internal static string jaWindow { - get { - return ResourceManager.GetString("jaWindow", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to XML. - /// - internal static string jaXML { - get { - return ResourceManager.GetString("jaXML", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 작업. - /// - internal static string koAction { - get { - return ResourceManager.GetString("koAction", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 추가 기능. - /// - internal static string koAddins { - get { - return ResourceManager.GetString("koAddins", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 분석. - /// - internal static string koAnalyze { - get { - return ResourceManager.GetString("koAnalyze", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 빌드. - /// - internal static string koBuild { - get { - return ResourceManager.GetString("koBuild", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 클래스 다이어그램. - /// - internal static string koClass_Diagram { - get { - return ResourceManager.GetString("koClass Diagram", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 커뮤니티. - /// - internal static string koCommunity { - get { - return ResourceManager.GetString("koCommunity", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 데이터. - /// - internal static string koData { - get { - return ResourceManager.GetString("koData", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 데이터베이스. - /// - internal static string koDatabase { - get { - return ResourceManager.GetString("koDatabase", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 데이터베이스 다이어그램. - /// - internal static string koDatabase_Diagram { - get { - return ResourceManager.GetString("koDatabase Diagram", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 디버그. - /// - internal static string koDebug { - get { - return ResourceManager.GetString("koDebug", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 다이어그램. - /// - internal static string koDiagram { - get { - return ResourceManager.GetString("koDiagram", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 편집. - /// - internal static string koEdit { - get { - return ResourceManager.GetString("koEdit", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 파일. - /// - internal static string koFile { - get { - return ResourceManager.GetString("koFile", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 서식. - /// - internal static string koFormat { - get { - return ResourceManager.GetString("koFormat", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 프레임. - /// - internal static string koFrames { - get { - return ResourceManager.GetString("koFrames", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 도움말. - /// - internal static string koHelp { - get { - return ResourceManager.GetString("koHelp", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 이미지. - /// - internal static string koImage { - get { - return ResourceManager.GetString("koImage", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 레이아웃. - /// - internal static string koLayout { - get { - return ResourceManager.GetString("koLayout", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 매크로. - /// - internal static string koMacros { - get { - return ResourceManager.GetString("koMacros", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 프로젝트. - /// - internal static string koProject { - get { - return ResourceManager.GetString("koProject", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 쿼리. - /// - internal static string koQuery { - get { - return ResourceManager.GetString("koQuery", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 쿼리 디자이너. - /// - internal static string koQuery_Designer { - get { - return ResourceManager.GetString("koQuery Designer", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 리팩터링. - /// - internal static string koRefactor { - get { - return ResourceManager.GetString("koRefactor", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 보고서. - /// - internal static string koReport { - get { - return ResourceManager.GetString("koReport", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 리소스. - /// - internal static string koResources { - get { - return ResourceManager.GetString("koResources", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 스키마. - /// - internal static string koSchema { - get { - return ResourceManager.GetString("koSchema", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 스타일. - /// - internal static string koStyles { - get { - return ResourceManager.GetString("koStyles", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 테이블. - /// - internal static string koTable { - get { - return ResourceManager.GetString("koTable", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 테이블 디자이너. - /// - internal static string koTable_Designer { - get { - return ResourceManager.GetString("koTable Designer", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 팀. - /// - internal static string koTeam { - get { - return ResourceManager.GetString("koTeam", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 테스트. - /// - internal static string koTest { - get { - return ResourceManager.GetString("koTest", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 도구. - /// - internal static string koTools { - get { - return ResourceManager.GetString("koTools", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 보기. - /// - internal static string koView { - get { - return ResourceManager.GetString("koView", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 창. - /// - internal static string koWindow { - get { - return ResourceManager.GetString("koWindow", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to XML. - /// - internal static string koXML { - get { - return ResourceManager.GetString("koXML", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 操作. - /// - internal static string zh_CHSAction { - get { - return ResourceManager.GetString("zh-CHSAction", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 外接程序. - /// - internal static string zh_CHSAddins { - get { - return ResourceManager.GetString("zh-CHSAddins", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 分析. - /// - internal static string zh_CHSAnalyze { - get { - return ResourceManager.GetString("zh-CHSAnalyze", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 生成. - /// - internal static string zh_CHSBuild { - get { - return ResourceManager.GetString("zh-CHSBuild", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 类关系图. - /// - internal static string zh_CHSClass_Diagram { - get { - return ResourceManager.GetString("zh-CHSClass Diagram", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 社区. - /// - internal static string zh_CHSCommunity { - get { - return ResourceManager.GetString("zh-CHSCommunity", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 数据. - /// - internal static string zh_CHSData { - get { - return ResourceManager.GetString("zh-CHSData", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 数据库. - /// - internal static string zh_CHSDatabase { - get { - return ResourceManager.GetString("zh-CHSDatabase", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 数据库关系图. - /// - internal static string zh_CHSDatabase_Diagram { - get { - return ResourceManager.GetString("zh-CHSDatabase Diagram", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 调试. - /// - internal static string zh_CHSDebug { - get { - return ResourceManager.GetString("zh-CHSDebug", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 关系图. - /// - internal static string zh_CHSDiagram { - get { - return ResourceManager.GetString("zh-CHSDiagram", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 编辑. - /// - internal static string zh_CHSEdit { - get { - return ResourceManager.GetString("zh-CHSEdit", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 文件. - /// - internal static string zh_CHSFile { - get { - return ResourceManager.GetString("zh-CHSFile", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 格式. - /// - internal static string zh_CHSFormat { - get { - return ResourceManager.GetString("zh-CHSFormat", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 框架. - /// - internal static string zh_CHSFrames { - get { - return ResourceManager.GetString("zh-CHSFrames", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 帮助. - /// - internal static string zh_CHSHelp { - get { - return ResourceManager.GetString("zh-CHSHelp", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 图像. - /// - internal static string zh_CHSImage { - get { - return ResourceManager.GetString("zh-CHSImage", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 布局. - /// - internal static string zh_CHSLayout { - get { - return ResourceManager.GetString("zh-CHSLayout", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 宏. - /// - internal static string zh_CHSMacros { - get { - return ResourceManager.GetString("zh-CHSMacros", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 项目. - /// - internal static string zh_CHSProject { - get { - return ResourceManager.GetString("zh-CHSProject", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 查询. - /// - internal static string zh_CHSQuery { - get { - return ResourceManager.GetString("zh-CHSQuery", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 查询设计器. - /// - internal static string zh_CHSQuery_Designer { - get { - return ResourceManager.GetString("zh-CHSQuery Designer", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 重构. - /// - internal static string zh_CHSRefactor { - get { - return ResourceManager.GetString("zh-CHSRefactor", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 报表. - /// - internal static string zh_CHSReport { - get { - return ResourceManager.GetString("zh-CHSReport", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 资源. - /// - internal static string zh_CHSResources { - get { - return ResourceManager.GetString("zh-CHSResources", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 架构. - /// - internal static string zh_CHSSchema { - get { - return ResourceManager.GetString("zh-CHSSchema", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 样式. - /// - internal static string zh_CHSStyles { - get { - return ResourceManager.GetString("zh-CHSStyles", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 表. - /// - internal static string zh_CHSTable { - get { - return ResourceManager.GetString("zh-CHSTable", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 表设计器. - /// - internal static string zh_CHSTable_Designer { - get { - return ResourceManager.GetString("zh-CHSTable Designer", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 工作组. - /// - internal static string zh_CHSTeam { - get { - return ResourceManager.GetString("zh-CHSTeam", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 测试. - /// - internal static string zh_CHSTest { - get { - return ResourceManager.GetString("zh-CHSTest", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 工具. - /// - internal static string zh_CHSTools { - get { - return ResourceManager.GetString("zh-CHSTools", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 视图. - /// - internal static string zh_CHSView { - get { - return ResourceManager.GetString("zh-CHSView", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 窗口. - /// - internal static string zh_CHSWindow { - get { - return ResourceManager.GetString("zh-CHSWindow", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to XML. - /// - internal static string zh_CHSXML { - get { - return ResourceManager.GetString("zh-CHSXML", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 動作. - /// - internal static string zh_CHTAction { - get { - return ResourceManager.GetString("zh-CHTAction", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 增益集. - /// - internal static string zh_CHTAddins { - get { - return ResourceManager.GetString("zh-CHTAddins", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 分析. - /// - internal static string zh_CHTAnalyze { - get { - return ResourceManager.GetString("zh-CHTAnalyze", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 建置. - /// - internal static string zh_CHTBuild { - get { - return ResourceManager.GetString("zh-CHTBuild", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 類別圖表. - /// - internal static string zh_CHTClass_Diagram { - get { - return ResourceManager.GetString("zh-CHTClass Diagram", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 社群. - /// - internal static string zh_CHTCommunity { - get { - return ResourceManager.GetString("zh-CHTCommunity", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 資料. - /// - internal static string zh_CHTData { - get { - return ResourceManager.GetString("zh-CHTData", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 資料庫. - /// - internal static string zh_CHTDatabase { - get { - return ResourceManager.GetString("zh-CHTDatabase", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 資料庫圖表. - /// - internal static string zh_CHTDatabase_Diagram { - get { - return ResourceManager.GetString("zh-CHTDatabase Diagram", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 偵錯. - /// - internal static string zh_CHTDebug { - get { - return ResourceManager.GetString("zh-CHTDebug", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 圖表. - /// - internal static string zh_CHTDiagram { - get { - return ResourceManager.GetString("zh-CHTDiagram", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 編輯. - /// - internal static string zh_CHTEdit { - get { - return ResourceManager.GetString("zh-CHTEdit", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 檔案. - /// - internal static string zh_CHTFile { - get { - return ResourceManager.GetString("zh-CHTFile", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 格式. - /// - internal static string zh_CHTFormat { - get { - return ResourceManager.GetString("zh-CHTFormat", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 框架. - /// - internal static string zh_CHTFrames { - get { - return ResourceManager.GetString("zh-CHTFrames", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 說明. - /// - internal static string zh_CHTHelp { - get { - return ResourceManager.GetString("zh-CHTHelp", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 影像. - /// - internal static string zh_CHTImage { - get { - return ResourceManager.GetString("zh-CHTImage", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 配置. - /// - internal static string zh_CHTLayout { - get { - return ResourceManager.GetString("zh-CHTLayout", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 巨集. - /// - internal static string zh_CHTMacros { - get { - return ResourceManager.GetString("zh-CHTMacros", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 專案. - /// - internal static string zh_CHTProject { - get { - return ResourceManager.GetString("zh-CHTProject", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 查詢. - /// - internal static string zh_CHTQuery { - get { - return ResourceManager.GetString("zh-CHTQuery", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 查詢設計工具. - /// - internal static string zh_CHTQuery_Designer { - get { - return ResourceManager.GetString("zh-CHTQuery Designer", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 重整. - /// - internal static string zh_CHTRefactor { - get { - return ResourceManager.GetString("zh-CHTRefactor", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 報表. - /// - internal static string zh_CHTReport { - get { - return ResourceManager.GetString("zh-CHTReport", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 資源. - /// - internal static string zh_CHTResources { - get { - return ResourceManager.GetString("zh-CHTResources", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 結構描述. - /// - internal static string zh_CHTSchema { - get { - return ResourceManager.GetString("zh-CHTSchema", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 樣式. - /// - internal static string zh_CHTStyles { - get { - return ResourceManager.GetString("zh-CHTStyles", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 資料表. - /// - internal static string zh_CHTTable { - get { - return ResourceManager.GetString("zh-CHTTable", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 資料表設計工具. - /// - internal static string zh_CHTTable_Designer { - get { - return ResourceManager.GetString("zh-CHTTable Designer", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 小組. - /// - internal static string zh_CHTTeam { - get { - return ResourceManager.GetString("zh-CHTTeam", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 測試. - /// - internal static string zh_CHTTest { - get { - return ResourceManager.GetString("zh-CHTTest", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 工具. - /// - internal static string zh_CHTTools { - get { - return ResourceManager.GetString("zh-CHTTools", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 檢視. - /// - internal static string zh_CHTView { - get { - return ResourceManager.GetString("zh-CHTView", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to 視窗. - /// - internal static string zh_CHTWindow { - get { - return ResourceManager.GetString("zh-CHTWindow", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to XML. - /// - internal static string zh_CHTXML { - get { - return ResourceManager.GetString("zh-CHTXML", resourceCulture); - } - } - } -} +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace CxViewerAction { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class CommandBar { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal CommandBar() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("CxViewerAction.CommandBar", typeof(CommandBar).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap cx { + get { + object obj = ResourceManager.GetObject("cx", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized string similar to Aktion. + /// + internal static string deAction { + get { + return ResourceManager.GetString("deAction", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Add-Ins. + /// + internal static string deAddins { + get { + return ResourceManager.GetString("deAddins", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Analyse. + /// + internal static string deAnalyze { + get { + return ResourceManager.GetString("deAnalyze", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Erstellen. + /// + internal static string deBuild { + get { + return ResourceManager.GetString("deBuild", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Klassendiagramm. + /// + internal static string deClass_Diagram { + get { + return ResourceManager.GetString("deClass Diagram", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Community. + /// + internal static string deCommunity { + get { + return ResourceManager.GetString("deCommunity", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Daten. + /// + internal static string deData { + get { + return ResourceManager.GetString("deData", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Datenbank. + /// + internal static string deDatabase { + get { + return ResourceManager.GetString("deDatabase", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Datenbankdiagramm. + /// + internal static string deDatabase_Diagram { + get { + return ResourceManager.GetString("deDatabase Diagram", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Debuggen. + /// + internal static string deDebug { + get { + return ResourceManager.GetString("deDebug", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Diagramm. + /// + internal static string deDiagram { + get { + return ResourceManager.GetString("deDiagram", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Bearbeiten. + /// + internal static string deEdit { + get { + return ResourceManager.GetString("deEdit", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Datei. + /// + internal static string deFile { + get { + return ResourceManager.GetString("deFile", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Format. + /// + internal static string deFormat { + get { + return ResourceManager.GetString("deFormat", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Rahmen. + /// + internal static string deFrames { + get { + return ResourceManager.GetString("deFrames", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Hilfe. + /// + internal static string deHelp { + get { + return ResourceManager.GetString("deHelp", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Bild. + /// + internal static string deImage { + get { + return ResourceManager.GetString("deImage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Layout. + /// + internal static string deLayout { + get { + return ResourceManager.GetString("deLayout", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Makros. + /// + internal static string deMacros { + get { + return ResourceManager.GetString("deMacros", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Projekt. + /// + internal static string deProject { + get { + return ResourceManager.GetString("deProject", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Query. + /// + internal static string deQuery { + get { + return ResourceManager.GetString("deQuery", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Abfrage-Designer. + /// + internal static string deQuery_Designer { + get { + return ResourceManager.GetString("deQuery Designer", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Umgestalten. + /// + internal static string deRefactor { + get { + return ResourceManager.GetString("deRefactor", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Bericht. + /// + internal static string deReport { + get { + return ResourceManager.GetString("deReport", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Ressourcen. + /// + internal static string deResources { + get { + return ResourceManager.GetString("deResources", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Schema. + /// + internal static string deSchema { + get { + return ResourceManager.GetString("deSchema", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Formate. + /// + internal static string deStyles { + get { + return ResourceManager.GetString("deStyles", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Tabelle. + /// + internal static string deTable { + get { + return ResourceManager.GetString("deTable", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Tabellen-Designer. + /// + internal static string deTable_Designer { + get { + return ResourceManager.GetString("deTable Designer", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Team. + /// + internal static string deTeam { + get { + return ResourceManager.GetString("deTeam", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Test. + /// + internal static string deTest { + get { + return ResourceManager.GetString("deTest", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Extras. + /// + internal static string deTools { + get { + return ResourceManager.GetString("deTools", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Ansicht. + /// + internal static string deView { + get { + return ResourceManager.GetString("deView", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Fenster. + /// + internal static string deWindow { + get { + return ResourceManager.GetString("deWindow", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to XML. + /// + internal static string deXML { + get { + return ResourceManager.GetString("deXML", resourceCulture); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap down { + get { + object obj = ResourceManager.GetObject("down", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap empty { + get { + object obj = ResourceManager.GetObject("empty", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized string similar to Action. + /// + internal static string enAction { + get { + return ResourceManager.GetString("enAction", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Addins. + /// + internal static string enAddins { + get { + return ResourceManager.GetString("enAddins", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Analyze. + /// + internal static string enAnalyze { + get { + return ResourceManager.GetString("enAnalyze", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Build. + /// + internal static string enBuild { + get { + return ResourceManager.GetString("enBuild", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Class Diagram. + /// + internal static string enClass_Diagram { + get { + return ResourceManager.GetString("enClass Diagram", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Community. + /// + internal static string enCommunity { + get { + return ResourceManager.GetString("enCommunity", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Data. + /// + internal static string enData { + get { + return ResourceManager.GetString("enData", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Database. + /// + internal static string enDatabase { + get { + return ResourceManager.GetString("enDatabase", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Database Diagram. + /// + internal static string enDatabase_Diagram { + get { + return ResourceManager.GetString("enDatabase Diagram", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Debug. + /// + internal static string enDebug { + get { + return ResourceManager.GetString("enDebug", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Diagram. + /// + internal static string enDiagram { + get { + return ResourceManager.GetString("enDiagram", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Edit. + /// + internal static string enEdit { + get { + return ResourceManager.GetString("enEdit", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to File. + /// + internal static string enFile { + get { + return ResourceManager.GetString("enFile", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Format. + /// + internal static string enFormat { + get { + return ResourceManager.GetString("enFormat", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Frames. + /// + internal static string enFrames { + get { + return ResourceManager.GetString("enFrames", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Help. + /// + internal static string enHelp { + get { + return ResourceManager.GetString("enHelp", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Image. + /// + internal static string enImage { + get { + return ResourceManager.GetString("enImage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Layout. + /// + internal static string enLayout { + get { + return ResourceManager.GetString("enLayout", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Macros. + /// + internal static string enMacros { + get { + return ResourceManager.GetString("enMacros", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Project. + /// + internal static string enProject { + get { + return ResourceManager.GetString("enProject", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Query. + /// + internal static string enQuery { + get { + return ResourceManager.GetString("enQuery", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Query Designer. + /// + internal static string enQuery_Designer { + get { + return ResourceManager.GetString("enQuery Designer", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Refactor. + /// + internal static string enRefactor { + get { + return ResourceManager.GetString("enRefactor", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Report. + /// + internal static string enReport { + get { + return ResourceManager.GetString("enReport", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Resources. + /// + internal static string enResources { + get { + return ResourceManager.GetString("enResources", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Schema. + /// + internal static string enSchema { + get { + return ResourceManager.GetString("enSchema", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Styles. + /// + internal static string enStyles { + get { + return ResourceManager.GetString("enStyles", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Table. + /// + internal static string enTable { + get { + return ResourceManager.GetString("enTable", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Table Designer. + /// + internal static string enTable_Designer { + get { + return ResourceManager.GetString("enTable Designer", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Team. + /// + internal static string enTeam { + get { + return ResourceManager.GetString("enTeam", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Test. + /// + internal static string enTest { + get { + return ResourceManager.GetString("enTest", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Tools. + /// + internal static string enTools { + get { + return ResourceManager.GetString("enTools", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to View. + /// + internal static string enView { + get { + return ResourceManager.GetString("enView", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Window. + /// + internal static string enWindow { + get { + return ResourceManager.GetString("enWindow", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to XML. + /// + internal static string enXML { + get { + return ResourceManager.GetString("enXML", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Acción. + /// + internal static string esAction { + get { + return ResourceManager.GetString("esAction", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Complementos. + /// + internal static string esAddins { + get { + return ResourceManager.GetString("esAddins", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Analizar. + /// + internal static string esAnalyze { + get { + return ResourceManager.GetString("esAnalyze", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Generar. + /// + internal static string esBuild { + get { + return ResourceManager.GetString("esBuild", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Diagrama de clase. + /// + internal static string esClass_Diagram { + get { + return ResourceManager.GetString("esClass Diagram", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Comunidad. + /// + internal static string esCommunity { + get { + return ResourceManager.GetString("esCommunity", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Datos. + /// + internal static string esData { + get { + return ResourceManager.GetString("esData", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Base de datos. + /// + internal static string esDatabase { + get { + return ResourceManager.GetString("esDatabase", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Diagrama de base de datos. + /// + internal static string esDatabase_Diagram { + get { + return ResourceManager.GetString("esDatabase Diagram", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Depurar. + /// + internal static string esDebug { + get { + return ResourceManager.GetString("esDebug", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Diagrama. + /// + internal static string esDiagram { + get { + return ResourceManager.GetString("esDiagram", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Editar. + /// + internal static string esEdit { + get { + return ResourceManager.GetString("esEdit", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Archivo. + /// + internal static string esFile { + get { + return ResourceManager.GetString("esFile", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Formato. + /// + internal static string esFormat { + get { + return ResourceManager.GetString("esFormat", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Marcos. + /// + internal static string esFrames { + get { + return ResourceManager.GetString("esFrames", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Ayuda. + /// + internal static string esHelp { + get { + return ResourceManager.GetString("esHelp", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Imagen. + /// + internal static string esImage { + get { + return ResourceManager.GetString("esImage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Diseño. + /// + internal static string esLayout { + get { + return ResourceManager.GetString("esLayout", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Macros. + /// + internal static string esMacros { + get { + return ResourceManager.GetString("esMacros", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Proyecto. + /// + internal static string esProject { + get { + return ResourceManager.GetString("esProject", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Consulta. + /// + internal static string esQuery { + get { + return ResourceManager.GetString("esQuery", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Diseñador de consultas. + /// + internal static string esQuery_Designer { + get { + return ResourceManager.GetString("esQuery Designer", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Refactorizar. + /// + internal static string esRefactor { + get { + return ResourceManager.GetString("esRefactor", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Informe. + /// + internal static string esReport { + get { + return ResourceManager.GetString("esReport", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Recursos. + /// + internal static string esResources { + get { + return ResourceManager.GetString("esResources", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Esquema. + /// + internal static string esSchema { + get { + return ResourceManager.GetString("esSchema", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Estilos. + /// + internal static string esStyles { + get { + return ResourceManager.GetString("esStyles", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Tabla. + /// + internal static string esTable { + get { + return ResourceManager.GetString("esTable", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Diseñador de tablas. + /// + internal static string esTable_Designer { + get { + return ResourceManager.GetString("esTable Designer", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Equipo. + /// + internal static string esTeam { + get { + return ResourceManager.GetString("esTeam", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Prueba. + /// + internal static string esTest { + get { + return ResourceManager.GetString("esTest", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Herramientas. + /// + internal static string esTools { + get { + return ResourceManager.GetString("esTools", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Ver. + /// + internal static string esView { + get { + return ResourceManager.GetString("esView", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Ventana. + /// + internal static string esWindow { + get { + return ResourceManager.GetString("esWindow", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to XML. + /// + internal static string esXML { + get { + return ResourceManager.GetString("esXML", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Action. + /// + internal static string frAction { + get { + return ResourceManager.GetString("frAction", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Compléments. + /// + internal static string frAddins { + get { + return ResourceManager.GetString("frAddins", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Analyser. + /// + internal static string frAnalyze { + get { + return ResourceManager.GetString("frAnalyze", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Générer. + /// + internal static string frBuild { + get { + return ResourceManager.GetString("frBuild", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Diagramme de classes. + /// + internal static string frClass_Diagram { + get { + return ResourceManager.GetString("frClass Diagram", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Communauté. + /// + internal static string frCommunity { + get { + return ResourceManager.GetString("frCommunity", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Données. + /// + internal static string frData { + get { + return ResourceManager.GetString("frData", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Base de données. + /// + internal static string frDatabase { + get { + return ResourceManager.GetString("frDatabase", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Schéma de base de données. + /// + internal static string frDatabase_Diagram { + get { + return ResourceManager.GetString("frDatabase Diagram", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Déboguer. + /// + internal static string frDebug { + get { + return ResourceManager.GetString("frDebug", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Schéma. + /// + internal static string frDiagram { + get { + return ResourceManager.GetString("frDiagram", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Edition. + /// + internal static string frEdit { + get { + return ResourceManager.GetString("frEdit", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Fichier. + /// + internal static string frFile { + get { + return ResourceManager.GetString("frFile", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Format. + /// + internal static string frFormat { + get { + return ResourceManager.GetString("frFormat", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Frames. + /// + internal static string frFrames { + get { + return ResourceManager.GetString("frFrames", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ?. + /// + internal static string frHelp { + get { + return ResourceManager.GetString("frHelp", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Image. + /// + internal static string frImage { + get { + return ResourceManager.GetString("frImage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Disposition. + /// + internal static string frLayout { + get { + return ResourceManager.GetString("frLayout", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Macros. + /// + internal static string frMacros { + get { + return ResourceManager.GetString("frMacros", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Projet. + /// + internal static string frProject { + get { + return ResourceManager.GetString("frProject", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Requête. + /// + internal static string frQuery { + get { + return ResourceManager.GetString("frQuery", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Concepteur de requêtes. + /// + internal static string frQuery_Designer { + get { + return ResourceManager.GetString("frQuery Designer", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Refactoriser. + /// + internal static string frRefactor { + get { + return ResourceManager.GetString("frRefactor", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Rapport. + /// + internal static string frReport { + get { + return ResourceManager.GetString("frReport", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Ressources. + /// + internal static string frResources { + get { + return ResourceManager.GetString("frResources", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Schéma. + /// + internal static string frSchema { + get { + return ResourceManager.GetString("frSchema", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Styles. + /// + internal static string frStyles { + get { + return ResourceManager.GetString("frStyles", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Tableau. + /// + internal static string frTable { + get { + return ResourceManager.GetString("frTable", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Concepteur de tables. + /// + internal static string frTable_Designer { + get { + return ResourceManager.GetString("frTable Designer", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to équipe. + /// + internal static string frTeam { + get { + return ResourceManager.GetString("frTeam", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Test. + /// + internal static string frTest { + get { + return ResourceManager.GetString("frTest", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Outils. + /// + internal static string frTools { + get { + return ResourceManager.GetString("frTools", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Affichage. + /// + internal static string frView { + get { + return ResourceManager.GetString("frView", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Fenêtre. + /// + internal static string frWindow { + get { + return ResourceManager.GetString("frWindow", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to XML. + /// + internal static string frXML { + get { + return ResourceManager.GetString("frXML", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Azione. + /// + internal static string itAction { + get { + return ResourceManager.GetString("itAction", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Componenti aggiuntivi. + /// + internal static string itAddins { + get { + return ResourceManager.GetString("itAddins", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Analizza. + /// + internal static string itAnalyze { + get { + return ResourceManager.GetString("itAnalyze", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Genera. + /// + internal static string itBuild { + get { + return ResourceManager.GetString("itBuild", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Diagramma classi. + /// + internal static string itClass_Diagram { + get { + return ResourceManager.GetString("itClass Diagram", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Comunità. + /// + internal static string itCommunity { + get { + return ResourceManager.GetString("itCommunity", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Dati. + /// + internal static string itData { + get { + return ResourceManager.GetString("itData", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Database. + /// + internal static string itDatabase { + get { + return ResourceManager.GetString("itDatabase", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Diagramma database. + /// + internal static string itDatabase_Diagram { + get { + return ResourceManager.GetString("itDatabase Diagram", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Debug. + /// + internal static string itDebug { + get { + return ResourceManager.GetString("itDebug", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Diagramma. + /// + internal static string itDiagram { + get { + return ResourceManager.GetString("itDiagram", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Modifica. + /// + internal static string itEdit { + get { + return ResourceManager.GetString("itEdit", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to File. + /// + internal static string itFile { + get { + return ResourceManager.GetString("itFile", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Formato. + /// + internal static string itFormat { + get { + return ResourceManager.GetString("itFormat", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Frame. + /// + internal static string itFrames { + get { + return ResourceManager.GetString("itFrames", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ?. + /// + internal static string itHelp { + get { + return ResourceManager.GetString("itHelp", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Immagine. + /// + internal static string itImage { + get { + return ResourceManager.GetString("itImage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Layout. + /// + internal static string itLayout { + get { + return ResourceManager.GetString("itLayout", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Macro. + /// + internal static string itMacros { + get { + return ResourceManager.GetString("itMacros", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Progetto. + /// + internal static string itProject { + get { + return ResourceManager.GetString("itProject", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Query. + /// + internal static string itQuery { + get { + return ResourceManager.GetString("itQuery", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Progettazione query. + /// + internal static string itQuery_Designer { + get { + return ResourceManager.GetString("itQuery Designer", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Effettua refactoring. + /// + internal static string itRefactor { + get { + return ResourceManager.GetString("itRefactor", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Report. + /// + internal static string itReport { + get { + return ResourceManager.GetString("itReport", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Risorse. + /// + internal static string itResources { + get { + return ResourceManager.GetString("itResources", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Schema. + /// + internal static string itSchema { + get { + return ResourceManager.GetString("itSchema", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Stili. + /// + internal static string itStyles { + get { + return ResourceManager.GetString("itStyles", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Tabella. + /// + internal static string itTable { + get { + return ResourceManager.GetString("itTable", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Progettazione tabelle. + /// + internal static string itTable_Designer { + get { + return ResourceManager.GetString("itTable Designer", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Team. + /// + internal static string itTeam { + get { + return ResourceManager.GetString("itTeam", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Test. + /// + internal static string itTest { + get { + return ResourceManager.GetString("itTest", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Strumenti. + /// + internal static string itTools { + get { + return ResourceManager.GetString("itTools", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Visualizza. + /// + internal static string itView { + get { + return ResourceManager.GetString("itView", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Finestra. + /// + internal static string itWindow { + get { + return ResourceManager.GetString("itWindow", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to XML. + /// + internal static string itXML { + get { + return ResourceManager.GetString("itXML", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 操作. + /// + internal static string jaAction { + get { + return ResourceManager.GetString("jaAction", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to アドイン. + /// + internal static string jaAddins { + get { + return ResourceManager.GetString("jaAddins", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 分析. + /// + internal static string jaAnalyze { + get { + return ResourceManager.GetString("jaAnalyze", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ビルド. + /// + internal static string jaBuild { + get { + return ResourceManager.GetString("jaBuild", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to クラス ダイアグラム. + /// + internal static string jaClass_Diagram { + get { + return ResourceManager.GetString("jaClass Diagram", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to コミュニティ. + /// + internal static string jaCommunity { + get { + return ResourceManager.GetString("jaCommunity", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to データ. + /// + internal static string jaData { + get { + return ResourceManager.GetString("jaData", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to データベース. + /// + internal static string jaDatabase { + get { + return ResourceManager.GetString("jaDatabase", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to データベース ダイアグラム. + /// + internal static string jaDatabase_Diagram { + get { + return ResourceManager.GetString("jaDatabase Diagram", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to デバッグ. + /// + internal static string jaDebug { + get { + return ResourceManager.GetString("jaDebug", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ダイアグラム. + /// + internal static string jaDiagram { + get { + return ResourceManager.GetString("jaDiagram", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 編集. + /// + internal static string jaEdit { + get { + return ResourceManager.GetString("jaEdit", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ファイル. + /// + internal static string jaFile { + get { + return ResourceManager.GetString("jaFile", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 書式. + /// + internal static string jaFormat { + get { + return ResourceManager.GetString("jaFormat", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to フレーム. + /// + internal static string jaFrames { + get { + return ResourceManager.GetString("jaFrames", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ヘルプ. + /// + internal static string jaHelp { + get { + return ResourceManager.GetString("jaHelp", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to イメージ. + /// + internal static string jaImage { + get { + return ResourceManager.GetString("jaImage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to レイアウト. + /// + internal static string jaLayout { + get { + return ResourceManager.GetString("jaLayout", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to マクロ. + /// + internal static string jaMacros { + get { + return ResourceManager.GetString("jaMacros", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to プロジェクト. + /// + internal static string jaProject { + get { + return ResourceManager.GetString("jaProject", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to クエリ. + /// + internal static string jaQuery { + get { + return ResourceManager.GetString("jaQuery", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to クエリ デザイナ. + /// + internal static string jaQuery_Designer { + get { + return ResourceManager.GetString("jaQuery Designer", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to リファクタ. + /// + internal static string jaRefactor { + get { + return ResourceManager.GetString("jaRefactor", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to レポート. + /// + internal static string jaReport { + get { + return ResourceManager.GetString("jaReport", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to リソース. + /// + internal static string jaResources { + get { + return ResourceManager.GetString("jaResources", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to スキーマ. + /// + internal static string jaSchema { + get { + return ResourceManager.GetString("jaSchema", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to スタイル. + /// + internal static string jaStyles { + get { + return ResourceManager.GetString("jaStyles", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to テーブル. + /// + internal static string jaTable { + get { + return ResourceManager.GetString("jaTable", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to テーブル デザイナ. + /// + internal static string jaTable_Designer { + get { + return ResourceManager.GetString("jaTable Designer", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to チーム. + /// + internal static string jaTeam { + get { + return ResourceManager.GetString("jaTeam", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to テスト. + /// + internal static string jaTest { + get { + return ResourceManager.GetString("jaTest", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ツール. + /// + internal static string jaTools { + get { + return ResourceManager.GetString("jaTools", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 表示. + /// + internal static string jaView { + get { + return ResourceManager.GetString("jaView", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ウィンドウ. + /// + internal static string jaWindow { + get { + return ResourceManager.GetString("jaWindow", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to XML. + /// + internal static string jaXML { + get { + return ResourceManager.GetString("jaXML", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 작업. + /// + internal static string koAction { + get { + return ResourceManager.GetString("koAction", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 추가 기능. + /// + internal static string koAddins { + get { + return ResourceManager.GetString("koAddins", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 분석. + /// + internal static string koAnalyze { + get { + return ResourceManager.GetString("koAnalyze", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 빌드. + /// + internal static string koBuild { + get { + return ResourceManager.GetString("koBuild", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 클래스 다이어그램. + /// + internal static string koClass_Diagram { + get { + return ResourceManager.GetString("koClass Diagram", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 커뮤니티. + /// + internal static string koCommunity { + get { + return ResourceManager.GetString("koCommunity", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 데이터. + /// + internal static string koData { + get { + return ResourceManager.GetString("koData", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 데이터베이스. + /// + internal static string koDatabase { + get { + return ResourceManager.GetString("koDatabase", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 데이터베이스 다이어그램. + /// + internal static string koDatabase_Diagram { + get { + return ResourceManager.GetString("koDatabase Diagram", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 디버그. + /// + internal static string koDebug { + get { + return ResourceManager.GetString("koDebug", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 다이어그램. + /// + internal static string koDiagram { + get { + return ResourceManager.GetString("koDiagram", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 편집. + /// + internal static string koEdit { + get { + return ResourceManager.GetString("koEdit", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 파일. + /// + internal static string koFile { + get { + return ResourceManager.GetString("koFile", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 서식. + /// + internal static string koFormat { + get { + return ResourceManager.GetString("koFormat", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 프레임. + /// + internal static string koFrames { + get { + return ResourceManager.GetString("koFrames", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 도움말. + /// + internal static string koHelp { + get { + return ResourceManager.GetString("koHelp", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 이미지. + /// + internal static string koImage { + get { + return ResourceManager.GetString("koImage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 레이아웃. + /// + internal static string koLayout { + get { + return ResourceManager.GetString("koLayout", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 매크로. + /// + internal static string koMacros { + get { + return ResourceManager.GetString("koMacros", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 프로젝트. + /// + internal static string koProject { + get { + return ResourceManager.GetString("koProject", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 쿼리. + /// + internal static string koQuery { + get { + return ResourceManager.GetString("koQuery", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 쿼리 디자이너. + /// + internal static string koQuery_Designer { + get { + return ResourceManager.GetString("koQuery Designer", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 리팩터링. + /// + internal static string koRefactor { + get { + return ResourceManager.GetString("koRefactor", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 보고서. + /// + internal static string koReport { + get { + return ResourceManager.GetString("koReport", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 리소스. + /// + internal static string koResources { + get { + return ResourceManager.GetString("koResources", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 스키마. + /// + internal static string koSchema { + get { + return ResourceManager.GetString("koSchema", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 스타일. + /// + internal static string koStyles { + get { + return ResourceManager.GetString("koStyles", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 테이블. + /// + internal static string koTable { + get { + return ResourceManager.GetString("koTable", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 테이블 디자이너. + /// + internal static string koTable_Designer { + get { + return ResourceManager.GetString("koTable Designer", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 팀. + /// + internal static string koTeam { + get { + return ResourceManager.GetString("koTeam", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 테스트. + /// + internal static string koTest { + get { + return ResourceManager.GetString("koTest", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 도구. + /// + internal static string koTools { + get { + return ResourceManager.GetString("koTools", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 보기. + /// + internal static string koView { + get { + return ResourceManager.GetString("koView", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 창. + /// + internal static string koWindow { + get { + return ResourceManager.GetString("koWindow", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to XML. + /// + internal static string koXML { + get { + return ResourceManager.GetString("koXML", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 操作. + /// + internal static string zh_CHSAction { + get { + return ResourceManager.GetString("zh-CHSAction", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 外接程序. + /// + internal static string zh_CHSAddins { + get { + return ResourceManager.GetString("zh-CHSAddins", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 分析. + /// + internal static string zh_CHSAnalyze { + get { + return ResourceManager.GetString("zh-CHSAnalyze", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 生成. + /// + internal static string zh_CHSBuild { + get { + return ResourceManager.GetString("zh-CHSBuild", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 类关系图. + /// + internal static string zh_CHSClass_Diagram { + get { + return ResourceManager.GetString("zh-CHSClass Diagram", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 社区. + /// + internal static string zh_CHSCommunity { + get { + return ResourceManager.GetString("zh-CHSCommunity", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 数据. + /// + internal static string zh_CHSData { + get { + return ResourceManager.GetString("zh-CHSData", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 数据库. + /// + internal static string zh_CHSDatabase { + get { + return ResourceManager.GetString("zh-CHSDatabase", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 数据库关系图. + /// + internal static string zh_CHSDatabase_Diagram { + get { + return ResourceManager.GetString("zh-CHSDatabase Diagram", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 调试. + /// + internal static string zh_CHSDebug { + get { + return ResourceManager.GetString("zh-CHSDebug", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 关系图. + /// + internal static string zh_CHSDiagram { + get { + return ResourceManager.GetString("zh-CHSDiagram", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 编辑. + /// + internal static string zh_CHSEdit { + get { + return ResourceManager.GetString("zh-CHSEdit", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 文件. + /// + internal static string zh_CHSFile { + get { + return ResourceManager.GetString("zh-CHSFile", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 格式. + /// + internal static string zh_CHSFormat { + get { + return ResourceManager.GetString("zh-CHSFormat", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 框架. + /// + internal static string zh_CHSFrames { + get { + return ResourceManager.GetString("zh-CHSFrames", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 帮助. + /// + internal static string zh_CHSHelp { + get { + return ResourceManager.GetString("zh-CHSHelp", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 图像. + /// + internal static string zh_CHSImage { + get { + return ResourceManager.GetString("zh-CHSImage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 布局. + /// + internal static string zh_CHSLayout { + get { + return ResourceManager.GetString("zh-CHSLayout", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 宏. + /// + internal static string zh_CHSMacros { + get { + return ResourceManager.GetString("zh-CHSMacros", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 项目. + /// + internal static string zh_CHSProject { + get { + return ResourceManager.GetString("zh-CHSProject", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 查询. + /// + internal static string zh_CHSQuery { + get { + return ResourceManager.GetString("zh-CHSQuery", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 查询设计器. + /// + internal static string zh_CHSQuery_Designer { + get { + return ResourceManager.GetString("zh-CHSQuery Designer", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 重构. + /// + internal static string zh_CHSRefactor { + get { + return ResourceManager.GetString("zh-CHSRefactor", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 报表. + /// + internal static string zh_CHSReport { + get { + return ResourceManager.GetString("zh-CHSReport", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 资源. + /// + internal static string zh_CHSResources { + get { + return ResourceManager.GetString("zh-CHSResources", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 架构. + /// + internal static string zh_CHSSchema { + get { + return ResourceManager.GetString("zh-CHSSchema", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 样式. + /// + internal static string zh_CHSStyles { + get { + return ResourceManager.GetString("zh-CHSStyles", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 表. + /// + internal static string zh_CHSTable { + get { + return ResourceManager.GetString("zh-CHSTable", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 表设计器. + /// + internal static string zh_CHSTable_Designer { + get { + return ResourceManager.GetString("zh-CHSTable Designer", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 工作组. + /// + internal static string zh_CHSTeam { + get { + return ResourceManager.GetString("zh-CHSTeam", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 测试. + /// + internal static string zh_CHSTest { + get { + return ResourceManager.GetString("zh-CHSTest", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 工具. + /// + internal static string zh_CHSTools { + get { + return ResourceManager.GetString("zh-CHSTools", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 视图. + /// + internal static string zh_CHSView { + get { + return ResourceManager.GetString("zh-CHSView", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 窗口. + /// + internal static string zh_CHSWindow { + get { + return ResourceManager.GetString("zh-CHSWindow", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to XML. + /// + internal static string zh_CHSXML { + get { + return ResourceManager.GetString("zh-CHSXML", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 動作. + /// + internal static string zh_CHTAction { + get { + return ResourceManager.GetString("zh-CHTAction", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 增益集. + /// + internal static string zh_CHTAddins { + get { + return ResourceManager.GetString("zh-CHTAddins", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 分析. + /// + internal static string zh_CHTAnalyze { + get { + return ResourceManager.GetString("zh-CHTAnalyze", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 建置. + /// + internal static string zh_CHTBuild { + get { + return ResourceManager.GetString("zh-CHTBuild", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 類別圖表. + /// + internal static string zh_CHTClass_Diagram { + get { + return ResourceManager.GetString("zh-CHTClass Diagram", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 社群. + /// + internal static string zh_CHTCommunity { + get { + return ResourceManager.GetString("zh-CHTCommunity", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 資料. + /// + internal static string zh_CHTData { + get { + return ResourceManager.GetString("zh-CHTData", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 資料庫. + /// + internal static string zh_CHTDatabase { + get { + return ResourceManager.GetString("zh-CHTDatabase", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 資料庫圖表. + /// + internal static string zh_CHTDatabase_Diagram { + get { + return ResourceManager.GetString("zh-CHTDatabase Diagram", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 偵錯. + /// + internal static string zh_CHTDebug { + get { + return ResourceManager.GetString("zh-CHTDebug", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 圖表. + /// + internal static string zh_CHTDiagram { + get { + return ResourceManager.GetString("zh-CHTDiagram", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 編輯. + /// + internal static string zh_CHTEdit { + get { + return ResourceManager.GetString("zh-CHTEdit", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 檔案. + /// + internal static string zh_CHTFile { + get { + return ResourceManager.GetString("zh-CHTFile", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 格式. + /// + internal static string zh_CHTFormat { + get { + return ResourceManager.GetString("zh-CHTFormat", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 框架. + /// + internal static string zh_CHTFrames { + get { + return ResourceManager.GetString("zh-CHTFrames", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 說明. + /// + internal static string zh_CHTHelp { + get { + return ResourceManager.GetString("zh-CHTHelp", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 影像. + /// + internal static string zh_CHTImage { + get { + return ResourceManager.GetString("zh-CHTImage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 配置. + /// + internal static string zh_CHTLayout { + get { + return ResourceManager.GetString("zh-CHTLayout", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 巨集. + /// + internal static string zh_CHTMacros { + get { + return ResourceManager.GetString("zh-CHTMacros", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 專案. + /// + internal static string zh_CHTProject { + get { + return ResourceManager.GetString("zh-CHTProject", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 查詢. + /// + internal static string zh_CHTQuery { + get { + return ResourceManager.GetString("zh-CHTQuery", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 查詢設計工具. + /// + internal static string zh_CHTQuery_Designer { + get { + return ResourceManager.GetString("zh-CHTQuery Designer", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 重整. + /// + internal static string zh_CHTRefactor { + get { + return ResourceManager.GetString("zh-CHTRefactor", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 報表. + /// + internal static string zh_CHTReport { + get { + return ResourceManager.GetString("zh-CHTReport", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 資源. + /// + internal static string zh_CHTResources { + get { + return ResourceManager.GetString("zh-CHTResources", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 結構描述. + /// + internal static string zh_CHTSchema { + get { + return ResourceManager.GetString("zh-CHTSchema", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 樣式. + /// + internal static string zh_CHTStyles { + get { + return ResourceManager.GetString("zh-CHTStyles", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 資料表. + /// + internal static string zh_CHTTable { + get { + return ResourceManager.GetString("zh-CHTTable", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 資料表設計工具. + /// + internal static string zh_CHTTable_Designer { + get { + return ResourceManager.GetString("zh-CHTTable Designer", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 小組. + /// + internal static string zh_CHTTeam { + get { + return ResourceManager.GetString("zh-CHTTeam", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 測試. + /// + internal static string zh_CHTTest { + get { + return ResourceManager.GetString("zh-CHTTest", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 工具. + /// + internal static string zh_CHTTools { + get { + return ResourceManager.GetString("zh-CHTTools", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 檢視. + /// + internal static string zh_CHTView { + get { + return ResourceManager.GetString("zh-CHTView", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 視窗. + /// + internal static string zh_CHTWindow { + get { + return ResourceManager.GetString("zh-CHTWindow", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to XML. + /// + internal static string zh_CHTXML { + get { + return ResourceManager.GetString("zh-CHTXML", resourceCulture); + } + } + } +} diff --git a/CxViewerAction/CommandBar.resx b/CxActionShared/CommandBar.resx similarity index 96% rename from CxViewerAction/CommandBar.resx rename to CxActionShared/CommandBar.resx index 80f123e0..d3f2824c 100644 --- a/CxViewerAction/CommandBar.resx +++ b/CxActionShared/CommandBar.resx @@ -1,1075 +1,1075 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Action - - - Addins - - - Build - - - Class Diagram - - - Community - - - Data - - - Database - - - Database Diagram - - - Debug - - - Analyze - - - Diagram - - - Edit - - - File - - - Format - - - Frames - - - Help - - - Image - - - Layout - - - Macros - - - Project - - - Query - - - Query Designer - - - Refactor - - - Report - - - Resources - - - Schema - - - Styles - - - Team - - - Table - - - Table Designer - - - Test - - - Tools - - - View - - - Window - - - XML - - - 操作 - - - アドイン - - - ビルド - - - クラス ダイアグラム - - - コミュニティ - - - データ - - - データベース - - - データベース ダイアグラム - - - デバッグ - - - 分析 - - - ダイアグラム - - - 編集 - - - ファイル - - - 書式 - - - フレーム - - - ヘルプ - - - イメージ - - - レイアウト - - - マクロ - - - プロジェクト - - - クエリ - - - クエリ デザイナ - - - リファクタ - - - レポート - - - リソース - - - スキーマ - - - スタイル - - - チーム - - - テーブル - - - テーブル デザイナ - - - テスト - - - ツール - - - 表示 - - - ウィンドウ - - - XML - - - Aktion - - - Add-Ins - - - Erstellen - - - Klassendiagramm - - - Community - - - Daten - - - Datenbank - - - Datenbankdiagramm - - - Debuggen - - - Analyse - - - Diagramm - - - Bearbeiten - - - Datei - - - Format - - - Rahmen - - - Hilfe - - - Bild - - - Layout - - - Makros - - - Projekt - - - Query - - - Abfrage-Designer - - - Umgestalten - - - Bericht - - - Ressourcen - - - Schema - - - Formate - - - Team - - - Tabelle - - - Tabellen-Designer - - - Test - - - Extras - - - Ansicht - - - Fenster - - - XML - - - Acción - - - Complementos - - - Generar - - - Diagrama de clase - - - Comunidad - - - Datos - - - Base de datos - - - Diagrama de base de datos - - - Depurar - - - Analizar - - - Diagrama - - - Editar - - - Archivo - - - Formato - - - Marcos - - - Ayuda - - - Imagen - - - Diseño - - - Macros - - - Proyecto - - - Consulta - - - Diseñador de consultas - - - Refactorizar - - - Informe - - - Recursos - - - Esquema - - - Estilos - - - Equipo - - - Tabla - - - Diseñador de tablas - - - Prueba - - - Herramientas - - - Ver - - - Ventana - - - XML - - - Action - - - Compléments - - - Générer - - - Diagramme de classes - - - Communauté - - - Données - - - Base de données - - - Schéma de base de données - - - Déboguer - - - Analyser - - - Schéma - - - Edition - - - Fichier - - - Format - - - Frames - - - ? - - - Image - - - Disposition - - - Macros - - - Projet - - - Requête - - - Concepteur de requêtes - - - Refactoriser - - - Rapport - - - Ressources - - - Schéma - - - Styles - - - équipe - - - Tableau - - - Concepteur de tables - - - Test - - - Outils - - - Affichage - - - Fenêtre - - - XML - - - Azione - - - Componenti aggiuntivi - - - Genera - - - Diagramma classi - - - Comunità - - - Dati - - - Database - - - Diagramma database - - - Debug - - - Analizza - - - Diagramma - - - Modifica - - - File - - - Formato - - - Frame - - - ? - - - Immagine - - - Layout - - - Macro - - - Progetto - - - Query - - - Progettazione query - - - Effettua refactoring - - - Report - - - Risorse - - - Schema - - - Stili - - - Team - - - Tabella - - - Progettazione tabelle - - - Test - - - Strumenti - - - Visualizza - - - Finestra - - - XML - - - 작업 - - - 추가 기능 - - - 빌드 - - - 클래스 다이어그램 - - - 커뮤니티 - - - 데이터 - - - 데이터베이스 - - - 데이터베이스 다이어그램 - - - 디버그 - - - 분석 - - - 다이어그램 - - - 편집 - - - 파일 - - - 서식 - - - 프레임 - - - 도움말 - - - 이미지 - - - 레이아웃 - - - 매크로 - - - 프로젝트 - - - 쿼리 - - - 쿼리 디자이너 - - - 리팩터링 - - - 보고서 - - - 리소스 - - - 스키마 - - - 스타일 - - - - - - 테이블 - - - 테이블 디자이너 - - - 테스트 - - - 도구 - - - 보기 - - - - - - XML - - - 操作 - - - 外接程序 - - - 生成 - - - 类关系图 - - - 社区 - - - 数据 - - - 数据库 - - - 数据库关系图 - - - 调试 - - - 分析 - - - 关系图 - - - 编辑 - - - 文件 - - - 格式 - - - 框架 - - - 帮助 - - - 图像 - - - 布局 - - - - - - 项目 - - - 查询 - - - 查询设计器 - - - 重构 - - - 报表 - - - 资源 - - - 架构 - - - 样式 - - - 工作组 - - - - - - 表设计器 - - - 测试 - - - 工具 - - - 视图 - - - 窗口 - - - XML - - - 動作 - - - 增益集 - - - 建置 - - - 類別圖表 - - - 社群 - - - 資料 - - - 資料庫 - - - 資料庫圖表 - - - 偵錯 - - - 分析 - - - 圖表 - - - 編輯 - - - 檔案 - - - 格式 - - - 框架 - - - 說明 - - - 影像 - - - 配置 - - - 巨集 - - - 專案 - - - 查詢 - - - 查詢設計工具 - - - 重整 - - - 報表 - - - 資源 - - - 結構描述 - - - 樣式 - - - 小組 - - - 資料表 - - - 資料表設計工具 - - - 測試 - - - 工具 - - - 檢視 - - - 視窗 - - - XML - - - - resources\down.gif;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - resources\empty.gif;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - Resources\cx.gif;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Action + + + Addins + + + Build + + + Class Diagram + + + Community + + + Data + + + Database + + + Database Diagram + + + Debug + + + Analyze + + + Diagram + + + Edit + + + File + + + Format + + + Frames + + + Help + + + Image + + + Layout + + + Macros + + + Project + + + Query + + + Query Designer + + + Refactor + + + Report + + + Resources + + + Schema + + + Styles + + + Team + + + Table + + + Table Designer + + + Test + + + Tools + + + View + + + Window + + + XML + + + 操作 + + + アドイン + + + ビルド + + + クラス ダイアグラム + + + コミュニティ + + + データ + + + データベース + + + データベース ダイアグラム + + + デバッグ + + + 分析 + + + ダイアグラム + + + 編集 + + + ファイル + + + 書式 + + + フレーム + + + ヘルプ + + + イメージ + + + レイアウト + + + マクロ + + + プロジェクト + + + クエリ + + + クエリ デザイナ + + + リファクタ + + + レポート + + + リソース + + + スキーマ + + + スタイル + + + チーム + + + テーブル + + + テーブル デザイナ + + + テスト + + + ツール + + + 表示 + + + ウィンドウ + + + XML + + + Aktion + + + Add-Ins + + + Erstellen + + + Klassendiagramm + + + Community + + + Daten + + + Datenbank + + + Datenbankdiagramm + + + Debuggen + + + Analyse + + + Diagramm + + + Bearbeiten + + + Datei + + + Format + + + Rahmen + + + Hilfe + + + Bild + + + Layout + + + Makros + + + Projekt + + + Query + + + Abfrage-Designer + + + Umgestalten + + + Bericht + + + Ressourcen + + + Schema + + + Formate + + + Team + + + Tabelle + + + Tabellen-Designer + + + Test + + + Extras + + + Ansicht + + + Fenster + + + XML + + + Acción + + + Complementos + + + Generar + + + Diagrama de clase + + + Comunidad + + + Datos + + + Base de datos + + + Diagrama de base de datos + + + Depurar + + + Analizar + + + Diagrama + + + Editar + + + Archivo + + + Formato + + + Marcos + + + Ayuda + + + Imagen + + + Diseño + + + Macros + + + Proyecto + + + Consulta + + + Diseñador de consultas + + + Refactorizar + + + Informe + + + Recursos + + + Esquema + + + Estilos + + + Equipo + + + Tabla + + + Diseñador de tablas + + + Prueba + + + Herramientas + + + Ver + + + Ventana + + + XML + + + Action + + + Compléments + + + Générer + + + Diagramme de classes + + + Communauté + + + Données + + + Base de données + + + Schéma de base de données + + + Déboguer + + + Analyser + + + Schéma + + + Edition + + + Fichier + + + Format + + + Frames + + + ? + + + Image + + + Disposition + + + Macros + + + Projet + + + Requête + + + Concepteur de requêtes + + + Refactoriser + + + Rapport + + + Ressources + + + Schéma + + + Styles + + + équipe + + + Tableau + + + Concepteur de tables + + + Test + + + Outils + + + Affichage + + + Fenêtre + + + XML + + + Azione + + + Componenti aggiuntivi + + + Genera + + + Diagramma classi + + + Comunità + + + Dati + + + Database + + + Diagramma database + + + Debug + + + Analizza + + + Diagramma + + + Modifica + + + File + + + Formato + + + Frame + + + ? + + + Immagine + + + Layout + + + Macro + + + Progetto + + + Query + + + Progettazione query + + + Effettua refactoring + + + Report + + + Risorse + + + Schema + + + Stili + + + Team + + + Tabella + + + Progettazione tabelle + + + Test + + + Strumenti + + + Visualizza + + + Finestra + + + XML + + + 작업 + + + 추가 기능 + + + 빌드 + + + 클래스 다이어그램 + + + 커뮤니티 + + + 데이터 + + + 데이터베이스 + + + 데이터베이스 다이어그램 + + + 디버그 + + + 분석 + + + 다이어그램 + + + 편집 + + + 파일 + + + 서식 + + + 프레임 + + + 도움말 + + + 이미지 + + + 레이아웃 + + + 매크로 + + + 프로젝트 + + + 쿼리 + + + 쿼리 디자이너 + + + 리팩터링 + + + 보고서 + + + 리소스 + + + 스키마 + + + 스타일 + + + + + + 테이블 + + + 테이블 디자이너 + + + 테스트 + + + 도구 + + + 보기 + + + + + + XML + + + 操作 + + + 外接程序 + + + 生成 + + + 类关系图 + + + 社区 + + + 数据 + + + 数据库 + + + 数据库关系图 + + + 调试 + + + 分析 + + + 关系图 + + + 编辑 + + + 文件 + + + 格式 + + + 框架 + + + 帮助 + + + 图像 + + + 布局 + + + + + + 项目 + + + 查询 + + + 查询设计器 + + + 重构 + + + 报表 + + + 资源 + + + 架构 + + + 样式 + + + 工作组 + + + + + + 表设计器 + + + 测试 + + + 工具 + + + 视图 + + + 窗口 + + + XML + + + 動作 + + + 增益集 + + + 建置 + + + 類別圖表 + + + 社群 + + + 資料 + + + 資料庫 + + + 資料庫圖表 + + + 偵錯 + + + 分析 + + + 圖表 + + + 編輯 + + + 檔案 + + + 格式 + + + 框架 + + + 說明 + + + 影像 + + + 配置 + + + 巨集 + + + 專案 + + + 查詢 + + + 查詢設計工具 + + + 重整 + + + 報表 + + + 資源 + + + 結構描述 + + + 樣式 + + + 小組 + + + 資料表 + + + 資料表設計工具 + + + 測試 + + + 工具 + + + 檢視 + + + 視窗 + + + XML + + + + resources\down.gif;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + resources\empty.gif;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\cx.gif;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + \ No newline at end of file diff --git a/CxViewerAction/Commands/CommandExecutor.cs b/CxActionShared/Commands/CommandExecutor.cs similarity index 97% rename from CxViewerAction/Commands/CommandExecutor.cs rename to CxActionShared/Commands/CommandExecutor.cs index 669a5328..146d2810 100644 --- a/CxViewerAction/Commands/CommandExecutor.cs +++ b/CxActionShared/Commands/CommandExecutor.cs @@ -1,112 +1,112 @@ -using System; -using CxViewerAction.ServiceLocators; -using CxViewerAction.Presenters; -using CxViewerAction.Views; -using CxViewerAction.Entities.WebServiceEntity; -using CxViewerAction.Entities; - -namespace CxViewerAction.Commands -{ - /// - /// Execute command - /// - public static class CommandExecutor - { - /// - /// Execute login command - /// - /// - /// - public static ICommandResult Login(IEntity entity) - { - if (entity.GetType() == typeof(LoginData)) - { - ILoginPresenter presenter = ServiceLocator.GetObject(ServiceLocator.GetObject()); - var login = (LoginData)entity; - - presenter.Login(null, ref login); - entity = login; - - return presenter; - } - - throw new ArgumentOutOfRangeException("entity", string.Format("{0} Entity is not supported.", entity.GetType())); - } - - /// - /// Execute upload command - /// - /// - /// - public static ICommandResult Upload(IEntity entity) - { - if (entity.GetType() == typeof(Upload)) - { - var uploadData = (Upload)entity; - LoginResult loginResult = (LoginResult)uploadData.ID.Id; - - IUploadPresenter presenter = ServiceLocator.GetObject(ServiceLocator.GetObject(loginResult.SessionId)); - presenter.Upload(null, uploadData); - - return presenter; - } - - throw new ArgumentOutOfRangeException("entity", string.Format("{0} Entity is not supported.", entity.GetType())); - } - - /// - /// Execute scan command - /// - /// - /// - public static ICommandResult Scan(IEntity entity) - { - if (entity.GetType() == typeof(Scan)) - { - Scan scanData = (Scan)entity; - - IScanPresenter presenter = ServiceLocator.GetObject(ServiceLocator.GetObject(scanData)); - presenter.Scan(null, scanData); - - return presenter; - } - - throw new ArgumentOutOfRangeException("entity", string.Format("{0} Entity is not supported.", entity.GetType())); - } - - /// - /// Execute scan command - /// - /// - /// - public static ICommandResult RetrieveResultsFromServer(IEntity entity) - { - - IRetrieveResultsFromServerPresenter presenter = ServiceLocator.GetObject(ServiceLocator.GetObject(string.Empty)); - presenter.BindProject(null, string.Empty); - - return presenter; - } - - /// - /// Execute scan command - /// - - /// - /// - public static ICommandResult BindProject(IEntity entity) - { - if (entity.GetType() == typeof(BindProjectEntity)) - { - var scanData = (BindProjectEntity)entity; - - IBindProjectPresenter presenter = ServiceLocator.GetObject(ServiceLocator.GetObject(string.Empty)); - presenter.BindProject(null, scanData); - - return presenter; - } - - throw new ArgumentOutOfRangeException("entity", string.Format("{0} Entity is not supported.", entity.GetType())); - } - } -} +using System; +using CxViewerAction.ServiceLocators; +using CxViewerAction.Presenters; +using CxViewerAction.Views; +using CxViewerAction.Entities.WebServiceEntity; +using CxViewerAction.Entities; + +namespace CxViewerAction.Commands +{ + /// + /// Execute command + /// + public static class CommandExecutor + { + /// + /// Execute login command + /// + /// + /// + public static ICommandResult Login(IEntity entity) + { + if (entity.GetType() == typeof(LoginData)) + { + ILoginPresenter presenter = ServiceLocator.GetObject(ServiceLocator.GetObject()); + var login = (LoginData)entity; + + presenter.Login(null, ref login); + entity = login; + + return presenter; + } + + throw new ArgumentOutOfRangeException("entity", string.Format("{0} Entity is not supported.", entity.GetType())); + } + + /// + /// Execute upload command + /// + /// + /// + public static ICommandResult Upload(IEntity entity) + { + if (entity.GetType() == typeof(Upload)) + { + var uploadData = (Upload)entity; + LoginResult loginResult = (LoginResult)uploadData.ID.Id; + + IUploadPresenter presenter = ServiceLocator.GetObject(ServiceLocator.GetObject(loginResult.SessionId)); + presenter.Upload(null, uploadData); + + return presenter; + } + + throw new ArgumentOutOfRangeException("entity", string.Format("{0} Entity is not supported.", entity.GetType())); + } + + /// + /// Execute scan command + /// + /// + /// + public static ICommandResult Scan(IEntity entity) + { + if (entity.GetType() == typeof(Scan)) + { + Scan scanData = (Scan)entity; + + IScanPresenter presenter = ServiceLocator.GetObject(ServiceLocator.GetObject(scanData)); + presenter.Scan(null, scanData); + + return presenter; + } + + throw new ArgumentOutOfRangeException("entity", string.Format("{0} Entity is not supported.", entity.GetType())); + } + + /// + /// Execute scan command + /// + /// + /// + public static ICommandResult RetrieveResultsFromServer(IEntity entity) + { + + IRetrieveResultsFromServerPresenter presenter = ServiceLocator.GetObject(ServiceLocator.GetObject(string.Empty)); + presenter.BindProject(null, string.Empty); + + return presenter; + } + + /// + /// Execute scan command + /// + + /// + /// + public static ICommandResult BindProject(IEntity entity) + { + if (entity.GetType() == typeof(BindProjectEntity)) + { + var scanData = (BindProjectEntity)entity; + + IBindProjectPresenter presenter = ServiceLocator.GetObject(ServiceLocator.GetObject(string.Empty)); + presenter.BindProject(null, scanData); + + return presenter; + } + + throw new ArgumentOutOfRangeException("entity", string.Format("{0} Entity is not supported.", entity.GetType())); + } + } +} diff --git a/CxViewerAction/CommonActions.cs b/CxActionShared/CommonActions.cs similarity index 94% rename from CxViewerAction/CommonActions.cs rename to CxActionShared/CommonActions.cs index 0674d8f2..2d9c0fad 100644 --- a/CxViewerAction/CommonActions.cs +++ b/CxActionShared/CommonActions.cs @@ -1,966 +1,983 @@ -using Common; -using CxViewerAction.Entities; -using CxViewerAction.Entities.WebServiceEntity; -using CxViewerAction.Helpers; -using CxViewerAction.Helpers.DrawingHelper; -using CxViewerAction.MenuLogic; -using CxViewerAction.Services; -using CxViewerAction.Views.DockedView; -using EnvDTE; -using EnvDTE80; -using Microsoft.VisualStudio.Shell; -using Microsoft.VisualStudio.Shell.Interop; -using System; -using System.Collections.Generic; -using System.IO; -using CxViewerAction.Views; -using CxViewerAction.QueryDescription; - -namespace CxViewerAction -{ - static public class CommonActionsInstance - { - private static CommonActions _commonActions; - public static CommonActions getInstance() - { - if (_commonActions == null) - { - _commonActions = new CommonActions(); - } - return _commonActions; - } - } - - public class CommonActions - { - #region Fields - - private DTE2 _applicationObject = null; - private ToolWindowPane _scanProgressWin; - private ToolWindowPane _graphWin; - private ToolWindowPane _pathWin; - private ToolWindowPane _reportWin; - private ToolWindowPane _resultWin; - private bool wasInit = false; - private const string vsProjectKindWeb = "{E24C65DC-7377-472b-9ABA-BC803B73C61A}"; - private const string vsProjectKindSolutionFolder = "{66A26720-8FB5-11D2-AA7E-00C04F688DDE}"; - private Dictionary> fileMapping = new Dictionary>(); - - #endregion - - #region Properties - - public DTE2 ApplicationObject - { - set { - - if (_applicationObject == null) - { - _applicationObject = value; - } - } - } - - public ToolWindowPane ScanProgressWin - { - set - { - if (_scanProgressWin == null) - _scanProgressWin = value; - } - } - - public ToolWindowPane GraphWin - { - set - { - if (_graphWin == null) - _graphWin = value; - } - } - - public ToolWindowPane ResultWin - { - set - { - if (_resultWin == null) - _resultWin = value; - } - } - - public ToolWindowPane PathWin - { - set - { - if (_pathWin == null) - _pathWin = value; - } - } - - public ToolWindowPane ReportWin - { - set - { - if (_reportWin == null) - { - _reportWin = value; - RegisterReportEvents(); - } - } - } - - public IPerspectiveView ReportPersepectiveView - { - get - { - if (_reportWin != null) - return (IPerspectiveView)_reportWin.Window; - - return null; - } - } - - public IScanView ScanProgressView - { - get - { - if (_scanProgressWin != null) - return (IScanView)_scanProgressWin.Window; - - return null; - } - } - - #endregion - - #region API - - public void BuildFileMapping() - { - try - { - - fileMapping.Clear(); - - IList projects = GetSolutionProjects(); - foreach (EnvDTE.Project project in projects) - { - if (project.ProjectItems != null) - { - foreach (ProjectItem projectItem in project.ProjectItems) - { - BuildFileMapping(projectItem, fileMapping); - } - } - } - } - catch (Exception ex) - { - Logger.Create().Error(ex.ToString()); - } - } - - /// - /// Execute system command, like "Save All", "Close" etc - /// - /// - public void ExecuteSystemCommand(string commandName, string args) - { - try - { - _applicationObject.ExecuteCommand(commandName, args); - } - catch (Exception ex) - { - Logger.Create().Error(ex.ToString()); - - TopMostMessageBox.Show(string.Format("Can't execute {0} command", commandName)); - } - } - - /// - /// Get project path for current selected project in solution explorer - /// - /// - public Entities.Project GetSelectedProject() - { - string projectName, projectPath; - Array projects = (Array)_applicationObject.ActiveSolutionProjects; - - List folderPathList = new List(); - List filePathList = new List(); ; - //Context menu are displayed on project item in solution explorer - if (_applicationObject.SelectedItems != null) - { - foreach (SelectedItem selectedItem in _applicationObject.SelectedItems) - { - if (selectedItem.ProjectItem != null) - { - if (selectedItem.ProjectItem.Kind == EnvDTEConstants.vsProjectItemKindPhysicalFolder) // folder - { - folderPathList.Add(selectedItem.ProjectItem.Properties.Item("FullPath").Value.ToString()); - } - else if (selectedItem.ProjectItem.Kind == EnvDTEConstants.vsProjectItemKindPhysicalFile) // item - { - filePathList.Add(selectedItem.ProjectItem.Properties.Item("FullPath").Value.ToString()); - } - } - } - - } - string projectFullPath = string.Empty; - try - { - if (projects.Length == 0) - { - //Context menu are displayed on solution item in solution explorer - - Solution solution = _applicationObject.Solution; - if (String.IsNullOrEmpty(solution.FileName)) - { - return null; - } - FileInfo fileInfo = new FileInfo(solution.FileName); - - Entities.Project outputProject = new Entities.Project(fileInfo.Name, fileInfo.DirectoryName, filePathList, folderPathList); - - AddProjectToSolution(outputProject, solution.Projects); - - - return outputProject; - } - else - { - - EnvDTE.Project project = ((EnvDTE.Project)projects.GetValue(0)); - projectFullPath = project.FullName; - - // For versions earlier than 2013 we have a bug where project.FullName returns http://localhost:XXXX - // The following line returns the project full path for all project kinds. - // for versions prior to 2013 for web projects, project.FullName return the project loaction with '/' in the end. Our algorithm is based on that behaviour. - // in order to maintain this behaviour, we always trim '//' '\' from fullPAth, and append "//". This way the rest of the code would execute as usual. - if (project.Kind == vsProjectKindWeb) //if project is web - { - string webProjectPath = project.Properties.Item("FullPath").Value as string; - webProjectPath = webProjectPath.TrimEnd(new[] { '\\', '/' }); - projectFullPath = webProjectPath + "//"; - } - - FileInfo fileInfo = new FileInfo(projectFullPath); - - projectName = Path.GetFileName(project.Name.TrimEnd(new[] { '\\', '/' })); - projectPath = fileInfo.Directory.FullName; - - return new Entities.Project(projectName, projectPath, filePathList, folderPathList); - } - } - catch (ArgumentException ae) - { - Logger.Create().Error(ae.ToString()); - if (false == string.IsNullOrEmpty(projectFullPath)) - { - Logger.Create().Error("projectFullPath = " + projectFullPath); - } - } - catch (Exception ex) - { - Logger.Create().Error(ex.ToString()); - } - return null; - } - - /// - /// Get problem file from entire project or solution - /// - /// - /// - /// - /// - /// - public bool ShowFile(string relativeFileName, int row, int column, int length) - { - string fileName = Path.GetFileName(relativeFileName); - try - { - if (fileMapping.ContainsKey(fileName)) - { - List solutionFiles = fileMapping[fileName]; - string[] pathParts = relativeFileName.Split(new[] { '\\', '/' }); - int depth = pathParts.Length - 2; - string pathTail = pathParts[depth + 1]; - while (solutionFiles.Count > 1 && depth >= 0) - { - pathTail = Path.Combine(pathParts[depth], pathTail); - List candidates = new List(); - foreach (string solutionFile in solutionFiles) - { - if (solutionFile.EndsWith(pathTail)) - candidates.Add(solutionFile); - } - if (candidates.Count == 0) - break; - - solutionFiles = candidates; - depth--; - } - - if (solutionFiles.Count > 0) - { - if (ShowProblemFile(solutionFiles[0], row, column, length)) - return true; - } - - } - - } - catch (Exception ex) - { - Logger.Create().Error(ex.ToString()); - } - System.Windows.Forms.MessageBox.Show(string.Format("File {0} not found", relativeFileName), "Error", System.Windows.Forms.MessageBoxButtons.OK); - return false; - } - - public void reportWinObject_SelectedNodeChanged(CxViewerAction.Entities.WebServiceEntity.TreeNodeData obj) - { - ShowProblemFile(obj); - } - - public void NavigateToQueryDescription(object sender, EventArgs e) - { - try - { - QueryDescriptionEventArg nodeData = (QueryDescriptionEventArg)e; - CxRESTApiPortalConfiguration rESTApiPortalConfiguration = new CxRESTApiPortalConfiguration(); - rESTApiPortalConfiguration.InitPortalBaseUrl(); - string urlToDescription = new QueryDescriptionUrlBuilder().Build(nodeData.QueryId, nodeData.QueryName, nodeData.QueryVersionCode); - - _applicationObject.ItemOperations.Navigate(urlToDescription, vsNavigateOptions.vsNavigateOptionsDefault); - } - catch (Exception ex) - { - Logger.Create().Error(ex.ToString()); - TopMostMessageBox.Show(ex.Message); - } - } - - public void OpenQueryDescription(string url) - { - try - { - _applicationObject.ItemOperations.Navigate(url, vsNavigateOptions.vsNavigateOptionsDefault); - } - catch (Exception ex) - { - Logger.Create().Error(ex.ToString()); - - TopMostMessageBox.Show(ex.Message); - } - } - - public void reportWinObject_SelectedScanChanged(long scanId) - { - try - { - - CommonData.SelectedScanId = scanId; - - - ShowResultLogic showResultLogic = new ShowResultLogic(); - - showResultLogic.Act(); - - #region Remarks - //Commands2 commands = (Commands2)_applicationObject.Commands; - //EnvDTE.Command prevCommand; - - //prevCommand = commands.Item("CxViewerAction.Connect.ShowResults", 1); - - //object customin = null, customout = null; - //commands.Raise(prevCommand.Guid, prevCommand.ID, ref customin, ref customout); - #endregion - } - catch (Exception ex) - { - Logger.Create().Error(ex.ToString()); - } - - } - - public void ShowScanProgressView() - { - showView(_scanProgressWin); - } - - public void CloseScanProgressView() - { - closeView(_scanProgressWin); - } - - public void ClearScanProgressView() - { - var dockView = (IScanView)_scanProgressWin.Window; - dockView.Clear(); - } - - public void ShowGraphView() - { - showView(_graphWin); - } - - public void CloseGraphView() - { - closeView(_graphWin); - } - - public void ShowResultsView() - { - showView(_resultWin); - } - - public void CloseResultsView() - { - closeView(_resultWin); - } - - public void ShowPathView() - { - showView(_pathWin); - } - - public void ClosePathView() - { - closeView(_pathWin); - } - - public void ShowReportView() - { - showView(_reportWin); - } - - public void CloseReportView() - { - closeView(_reportWin); - } - - public void ReportDoPrevResults() - { - IPerspectiveView rep = _reportWin.Window as IPerspectiveView; - PerspectiveHelper.DoPrevResult(); - if (rep == null || rep.Report == null || rep.Report.Tree.Count == 0) - { - TopMostMessageBox.Show("There are no vulnerabilities to show"); - } - } - - public void UpdateScanProgress(ScanStatusBar data) - { - if (data == null) return; - - if (data.ClearBeforeUpdateProgress) - { - _applicationObject.StatusBar.Clear(); - } - - _applicationObject.StatusBar.Progress(data.InProgress, - data.Label, data.Completed, data.Total); - } - - #endregion - - #region Private methods - - private void RegisterReportEvents() - { - var view = _reportWin.Window as IPerspectiveView; - if (view != null) - { - view.SelectedNodeChanged -= reportWinObject_SelectedNodeChanged; - view.SelectedReportItemChanged -= NavigateToQueryDescription; - view.SelectedScanChanged -= reportWinObject_SelectedScanChanged; - - view.SelectedNodeChanged += reportWinObject_SelectedNodeChanged; - view.SelectedReportItemChanged += NavigateToQueryDescription; - view.SelectedScanChanged += reportWinObject_SelectedScanChanged; - } - } - - private void BuildFileMapping(ProjectItem projectItem, Dictionary> mapping) - { - try - { - - AddFilesToMappingTable(projectItem, mapping); - - if (projectItem.ProjectItems != null && projectItem.ProjectItems.Count > 0) - { - foreach (ProjectItem projectSubItem in projectItem.ProjectItems) - { - BuildFileMapping(projectSubItem, mapping); - } - } - } - catch (Exception ex) - { - Logger.Create().Error(ex.ToString()); - } - } - - private IList GetSolutionProjects() - { - List list = new List(); - - try - { - - Projects projects = _applicationObject.Solution.Projects; - - foreach (EnvDTE.Project project in projects) - { - if (project == null) - { - continue; - } - if (project.Kind == ProjectKinds.vsProjectKindSolutionFolder) - { - list.AddRange(GetSolutionFolderProjects(project)); - } - else - { - list.Add(project); - } - } - } - catch (Exception ex) - { - Logger.Create().Error(ex.ToString()); - } - - return list; - } - - private IEnumerable GetSolutionFolderProjects(EnvDTE.Project solutionFolder) - { - - List list = new List(); - - try - { - - foreach (ProjectItem projectItem in solutionFolder.ProjectItems) - { - EnvDTE.Project subProject = projectItem.SubProject; - if (subProject == null) - { - continue; - } - if (subProject.Kind == ProjectKinds.vsProjectKindSolutionFolder) - { - list.AddRange(GetSolutionFolderProjects(subProject)); - } - else - { - list.Add(subProject); - } - } - - } - catch (Exception ex) - { - Logger.Create().Error(ex.ToString()); - } - - return list; - } - - private void AddFilesToMappingTable(ProjectItem projectItem, Dictionary> mapping) - { - try - { - - for (short j = 1; j < projectItem.FileCount + 1; j++) - { - string file = projectItem.get_FileNames(j); - string fileName = Path.GetFileName(file); - - if (string.IsNullOrEmpty(fileName)) - continue; - - List filePaths; - if (mapping.ContainsKey(fileName)) - filePaths = mapping[fileName]; - else - { - filePaths = new List(); - mapping.Add(fileName, filePaths); - } - filePaths.Add(file); - } - } - catch (Exception ex) - { - Logger.Create().Error(ex.ToString()); - } - } - - private void AddProjectToSolution(CxViewerAction.Entities.Project outputProject, Projects projects) - { - foreach (EnvDTE.Project solutionProject in projects) - { - try - { - if (!string.IsNullOrEmpty(solutionProject.FullName)) - { - string projectFullPath = solutionProject.FullName; - - // For version 2013 we have a bug where project.FullName returns http://localhost:XXXX - // The following line returns the project full path for all project kinds. - // for versions prior to 2013 for web projects, project.FullName return the project loaction with '/' in the end. Our algorithm is based on that behaviour. - // in order to maintain this behaviour, we always trim '//' '\' from fullPAth, and append "//". This way the rest of the code would execute as usual. - if (solutionProject.Kind == vsProjectKindWeb) //if project is web - { - string webProjectPath = solutionProject.Properties.Item("FullPath").Value as string; - webProjectPath = webProjectPath.TrimEnd(new[] { '\\', '/' }); - projectFullPath = webProjectPath + "//"; - FileInfo fileInfo = new FileInfo(projectFullPath); - projectFullPath = fileInfo.FullName; - } - - outputProject.ProjectPaths.Add(new Entities.Project(solutionProject.Name, new FileInfo(projectFullPath).DirectoryName)); - - } - else // can be virtual folder - { - AddProjectToSolution(outputProject, solutionProject.ProjectItems); - } - } - catch (Exception ex) - { - Logger.Create().Error(ex.ToString()); - } - } - } - - private void AddProjectToSolution(CxViewerAction.Entities.Project outputProject, ProjectItems projectItems) - { - foreach (EnvDTE.ProjectItem solutionProject in projectItems) - { - try - { - if (solutionProject.SubProject == null) - { - continue; - } - if (!string.IsNullOrEmpty(solutionProject.SubProject.FullName)) - { - outputProject.ProjectPaths.Add(new Entities.Project(solutionProject.SubProject.Name, new FileInfo(solutionProject.SubProject.FullName).DirectoryName)); - } - else // can be virtual folder - { - if (solutionProject.SubProject.ProjectItems == null) - { - continue; - } - AddProjectToSolution(outputProject, solutionProject.SubProject.ProjectItems); - } - } - catch (Exception ex) - { - Logger.Create().Error(ex.ToString()); - } - } - } - - /// - /// Show selected project file - /// - /// - /// - /// - /// - /// - private bool ShowProblemFile(string file, int row, int column, int length) - { - FileInfo fileInfo = new FileInfo(file); - - if (fileInfo.Exists) - { - try - { - _applicationObject.ItemOperations.OpenFile(file, EnvDTEConstants.vsViewKindCode); - _applicationObject.ActiveDocument.Activate(); - - TextSelection selection = (TextSelection)_applicationObject.ActiveDocument.Selection; - try - { - selection.MoveToLineAndOffset(row, column, false); - selection.CharRight(true, length); - } - catch (ArgumentException ex) - { - if (IsJavaScriptFile(fileInfo)) - { - string errMsg = "“This plugin does not support showing results in a compressed min.js file. \n" + - "To view the full results, please navigate to the Checkmarx results viewer."; - TopMostMessageBox.Show(errMsg); - - return true; - } - } - return true; - } - catch (Exception ex) - { - Logger.Create().Error(ex.ToString()); - - TopMostMessageBox.Show(ex.Message); - } - } - - return false; - } - - public bool IsJavaScriptFile(FileInfo fileInfo) - { - bool isJSFile = (fileInfo.FullName != null || fileInfo.Name != null) && - fileInfo.Extension.Equals(".js", StringComparison.OrdinalIgnoreCase); - - return isJSFile; - } - - - private void ShowProblemFile(CxViewerAction.Entities.WebServiceEntity.TreeNodeData treeNode) - { - - #region [Bind graph view] - - try - { - PerspectiveGraphCtrl viewGraph = null; - if (_graphWin != null) - { - viewGraph = _graphWin.Window as PerspectiveGraphCtrl; - if (viewGraph != null) - { - viewGraph.ClearGraphView(); - viewGraph.Graph = null; - viewGraph.SelectedPath = null; - viewGraph.Graph = new Graph(treeNode); - viewGraph.MsGalViewer.Refresh(); - viewGraph.MsGalViewer.ResumeLayout(); - viewGraph.MsGalViewer.Update(); - viewGraph.BindData(); - viewGraph.PathItemClick = GraphClick; - } - - showView(_graphWin); - } - - #endregion - - #region [Bind result view] - if (_resultWin != null) - { - PerspectiveResultCtrl viewResult = _resultWin.Window as PerspectiveResultCtrl; - - viewResult.SelectedNode = treeNode; - //if (!_resultWin.Visible || viewResult.IsActive) - //{ - if (!wasInit) - { - viewResult.SelectedRowChanged += new EventHandler(viewResult_SelectedRowChanged); - viewResult.Refresh += new EventHandler(viewResult_Refresh); - wasInit = true; - } - // _resultWin.Visible = true; - viewResult.IsActive = false; - viewResult.SelectRow(); - //} - - showView(_resultWin); - - } - } - catch (Exception ex) - { - - if (ex is System.Net.WebException) - { - Logger.Create().Error(ex.ToString()); - TopMostMessageBox.Show(ex.Message, "Error"); - } - else - { - Logger.Create().Error(ex.ToString()); - TopMostMessageBox.Show("General error occured, please check the log", "Error"); - } - } - #endregion - } - - private void viewResult_Refresh(object sender, EventArgs e) - { - TreeNodeData nodeData = (TreeNodeData)e; - ShowProblemFile(nodeData); - } - - private void viewResult_SelectedRowChanged(object sender, EventArgs e) - { - try - { - ResultData data = (ResultData)e; - CxViewerAction.CxVSWebService.CxWSResultPath resultPath = PerspectiveHelper.GetResultPath(data.ScanId, data.Result.PathId); - - PerspectiveGraphCtrl viewGraph = null; - if (_graphWin != null) - { - viewGraph = _graphWin.Window as PerspectiveGraphCtrl; - if (viewGraph != null) - { - CxViewerAction.BaseInterfaces.IGraphPath path = viewGraph.FindPath(resultPath); - viewGraph.SelectEdgeGraphByPath(path.DirectFlow[0], path.DirectFlow[1], path); - viewGraph.BindData(); - viewGraph.PathItemClick = GraphClick; - } - } - - #region [Bind path view] - if (_pathWin != null) - { - IPerspectivePathView viewPath = _pathWin.Window as IPerspectivePathView; - CxViewerAction.Entities.WebServiceEntity.ReportQueryItemResult path = new CxViewerAction.Entities.WebServiceEntity.ReportQueryItemResult() - { - Column = resultPath.Nodes[0].Column, - FileName = resultPath.Nodes[0].FileName, - Line = resultPath.Nodes[0].Line, - NodeId = resultPath.Nodes[0].PathNodeId, - PathId = resultPath.PathId, - Query = data.NodeData.QueryResult - }; - path.Paths = GraphHelper.ConvertNodesToPathes(resultPath.Nodes, data.NodeData.QueryResult, path); - viewPath.PathButtonClickHandler = PathButtonClick; - - viewPath.QueryItemResult = path; - - viewPath.BindData(resultPath.Nodes[0].PathNodeId); - - showView(_pathWin); - } - #endregion - - ShowFile(resultPath.Nodes[0].FileName, resultPath.Nodes[0].Line, resultPath.Nodes[0].Column, resultPath.Nodes[0].Length); - - } - catch (Exception ex) - { - if (ex is System.Net.WebException) - { - Logger.Create().Error(ex.ToString()); - TopMostMessageBox.Show(ex.Message, "Error"); - } - else - { - Logger.Create().Error(ex.ToString()); - TopMostMessageBox.Show("General error occured, please check the log", "Error"); - } - } - } - - private void GraphClick(object sender, EventArgs e) - { - ReportQueryItemPathResult graphItem = ((ReportQueryItemPathResult)sender); - PerspectiveGraphCtrl viewGraph = null; - if (_graphWin != null) - { - viewGraph = _graphWin.Window as PerspectiveGraphCtrl; - if (viewGraph != null) - { - viewGraph.SelectedPath = viewGraph.FindPath(graphItem.QueryItem); - DrawingHelper.SelectedPathItemUniqueID = graphItem.UniqueID; - DrawingHelper.isEdgeSelected = false; - if (viewGraph.MsGalViewer != null) - { - viewGraph.MsGalViewer.Refresh(); - viewGraph.MsGalViewer.ResumeLayout(); - viewGraph.MsGalViewer.Update(); - } - viewGraph.BindData(); - } - } - - #region [Bind path view] - if (_pathWin != null) - { - IPerspectivePathView viewPath = _pathWin.Window as IPerspectivePathView; - viewPath.PathButtonClickHandler = PathButtonClick; - - viewPath.QueryItemResult = graphItem.QueryItem; - - viewPath.BindData(graphItem.NodeId); - - showView(_pathWin); - } - #endregion - - PerspectiveResultCtrl viewResult = _resultWin.Window as PerspectiveResultCtrl; - viewResult.MarkRowAsSelected(graphItem.QueryItem.PathId); - - ShowFile(graphItem.FileName, graphItem.Line, graphItem.Column, graphItem.Length); - - } - - private void PathButtonClick(object sender, EventArgs e) - { - ReportQueryItemPathResult reportQueryItemPathResult = ((ColorButton.ColorButton)sender).Tag as ReportQueryItemPathResult; - PerspectiveGraphCtrl viewGraph = null; - if (_graphWin != null) - { - viewGraph = _graphWin.Window as PerspectiveGraphCtrl; - if (viewGraph != null) - { - { - viewGraph.SelectedPath = viewGraph.FindPath(reportQueryItemPathResult.QueryItem); - DrawingHelper.SelectedPathItemUniqueID = reportQueryItemPathResult.UniqueID; - DrawingHelper.isEdgeSelected = false; - } - - viewGraph.BindData(); - - if (viewGraph.MsGalViewer != null) - { - viewGraph.MsGalViewer.Refresh(); - viewGraph.MsGalViewer.ResumeLayout(); - viewGraph.MsGalViewer.Update(); - } - } - } - - ShowFile(reportQueryItemPathResult.FileName, reportQueryItemPathResult.Line, reportQueryItemPathResult.Column, reportQueryItemPathResult.Length); - - } - - private void showView(ToolWindowPane window) - { - if ((null == window) || (null == window.Frame)) - { - throw new NotSupportedException("Cannot create tool window"); - } - - IVsWindowFrame windowFrame = (IVsWindowFrame)window.Frame; - Microsoft.VisualStudio.ErrorHandler.ThrowOnFailure(windowFrame.Show()); - } - - private void closeView(ToolWindowPane window) - { - if ((null == window) || (null == window.Frame)) - { - throw new NotSupportedException("Cannot create tool window"); - } - - IVsWindowFrame windowFrame = (IVsWindowFrame)window.Frame; - Microsoft.VisualStudio.ErrorHandler.ThrowOnFailure(windowFrame.CloseFrame((uint)__FRAMECLOSE.FRAMECLOSE_PromptSave)); - } - - #endregion - } -} +using Common; +using CxViewerAction.Entities; +using CxViewerAction.Entities.WebServiceEntity; +using CxViewerAction.Helpers; +using CxViewerAction.Helpers.DrawingHelper; +using CxViewerAction.MenuLogic; +using CxViewerAction.Services; +using CxViewerAction.Views.DockedView; +using EnvDTE; +using EnvDTE80; +using Microsoft.VisualStudio.Shell; +using Microsoft.VisualStudio.Shell.Interop; +using System; +using System.Collections.Generic; +using System.IO; +using CxViewerAction.Views; +using CxViewerAction.QueryDescription; +using System.Windows.Forms; + +namespace CxViewerAction +{ + static public class CommonActionsInstance + { + private static CommonActions _commonActions; + public static CommonActions getInstance() + { + if (_commonActions == null) + { + _commonActions = new CommonActions(); + } + return _commonActions; + } + } + + public class CommonActions + { + #region Fields + + private DTE2 _applicationObject = null; + private ToolWindowPane _scanProgressWin; + private ToolWindowPane _graphWin; + private ToolWindowPane _pathWin; + private ToolWindowPane _reportWin; + private ToolWindowPane _resultWin; + private bool wasInit = false; + private const string vsProjectKindWeb = "{E24C65DC-7377-472b-9ABA-BC803B73C61A}"; + private const string vsProjectKindSolutionFolder = "{66A26720-8FB5-11D2-AA7E-00C04F688DDE}"; + private const string queryDescriptionHeader = "Query Description"; + private Dictionary> fileMapping = new Dictionary>(StringComparer.InvariantCultureIgnoreCase); + + #endregion + + #region Properties + + public DTE2 ApplicationObject + { + set { + + if (_applicationObject == null) + { + _applicationObject = value; + } + } + } + + public ToolWindowPane ScanProgressWin + { + set + { + if (_scanProgressWin == null) + _scanProgressWin = value; + } + } + + public ToolWindowPane GraphWin + { + set + { + if (_graphWin == null) + _graphWin = value; + } + } + + public ToolWindowPane ResultWin + { + set + { + if (_resultWin == null) + _resultWin = value; + } + } + + public ToolWindowPane PathWin + { + set + { + if (_pathWin == null) + _pathWin = value; + } + } + + public ToolWindowPane ReportWin + { + set + { + if (_reportWin == null) + { + _reportWin = value; + RegisterReportEvents(); + } + } + } + + public IPerspectiveView ReportPersepectiveView + { + get + { + if (_reportWin != null) + return (IPerspectiveView)_reportWin.Window; + + return null; + } + } + + public IScanView ScanProgressView + { + get + { + if (_scanProgressWin != null) + return (IScanView)_scanProgressWin.Window; + + return null; + } + } + + #endregion + + #region API + + public void BuildFileMapping() + { + try + { + + fileMapping.Clear(); + + IList projects = GetSolutionProjects(); + foreach (EnvDTE.Project project in projects) + { + if (project.ProjectItems != null) + { + foreach (ProjectItem projectItem in project.ProjectItems) + { + BuildFileMapping(projectItem, fileMapping); + } + } + } + } + catch (Exception ex) + { + Logger.Create().Error(ex.ToString()); + } + } + + /// + /// Execute system command, like "Save All", "Close" etc + /// + /// + public void ExecuteSystemCommand(string commandName, string args) + { + try + { + _applicationObject.ExecuteCommand(commandName, args); + } + catch (Exception ex) + { + Logger.Create().Error(ex.ToString()); + + TopMostMessageBox.Show(string.Format("Can't execute {0} command", commandName)); + } + } + + /// + /// Get project path for current selected project in solution explorer + /// + /// + public Entities.Project GetSelectedProject() + { + Logger.Create().Info("GetSelectedProject(): find selected project."); + string projectName, projectPath; + Array projects = (Array)_applicationObject.ActiveSolutionProjects; + + List folderPathList = new List(); + List filePathList = new List(); ; + //Context menu are displayed on project item in solution explorer + if (_applicationObject.SelectedItems != null) + { + Logger.Create().Info("Looping for selected items "); + foreach (SelectedItem selectedItem in _applicationObject.SelectedItems) + { + if (selectedItem.ProjectItem != null) + { + if (selectedItem.ProjectItem.Kind == EnvDTEConstants.vsProjectItemKindPhysicalFolder) // folder + { + folderPathList.Add(selectedItem.ProjectItem.Properties.Item("FullPath").Value.ToString()); + } + else if (selectedItem.ProjectItem.Kind == EnvDTEConstants.vsProjectItemKindPhysicalFile) // item + { + filePathList.Add(selectedItem.ProjectItem.Properties.Item("FullPath").Value.ToString()); + } + } + } + + } + string projectFullPath = string.Empty; + try + { + if (projects.Length == 0) + { + //Context menu are displayed on solution item in solution explorer + + Solution solution = _applicationObject.Solution; + if (String.IsNullOrEmpty(solution.FileName)) + { + return null; + } + FileInfo fileInfo = new FileInfo(solution.FileName); + + Entities.Project outputProject = new Entities.Project(fileInfo.Name, fileInfo.DirectoryName, filePathList, folderPathList); + + AddProjectToSolution(outputProject, solution.Projects); + + + return outputProject; + } + else + { + + EnvDTE.Project project = ((EnvDTE.Project)projects.GetValue(0)); + projectFullPath = project.FullName; + + // For versions earlier than 2013 we have a bug where project.FullName returns http://localhost:XXXX + // The following line returns the project full path for all project kinds. + // for versions prior to 2013 for web projects, project.FullName return the project loaction with '/' in the end. Our algorithm is based on that behaviour. + // in order to maintain this behaviour, we always trim '//' '\' from fullPAth, and append "//". This way the rest of the code would execute as usual. + if (project.Kind == vsProjectKindWeb) //if project is web + { + string webProjectPath = project.Properties.Item("FullPath").Value as string; + webProjectPath = webProjectPath.TrimEnd(new[] { '\\', '/' }); + projectFullPath = webProjectPath + "//"; + } + + FileInfo fileInfo = new FileInfo(projectFullPath); + + projectName = Path.GetFileName(project.Name.TrimEnd(new[] { '\\', '/' })); + projectPath = fileInfo.Directory.FullName; + + return new Entities.Project(projectName, projectPath, filePathList, folderPathList); + } + } + catch (ArgumentException ae) + { + Logger.Create().Error(ae.ToString()); + if (false == string.IsNullOrEmpty(projectFullPath)) + { + Logger.Create().Error("project full path = " + projectFullPath); + } + } + catch (Exception ex) + { + Logger.Create().Error(ex.ToString()); + } + return null; + } + + /// + /// Get problem file from entire project or solution + /// + /// + /// + /// + /// + /// + public bool ShowFile(string relativeFileName, int row, int column, int length) + { + string fileName = Path.GetFileName(relativeFileName); + try + { + if (fileMapping.ContainsKey(fileName)) + { + List solutionFiles = fileMapping[fileName]; + string[] pathParts = relativeFileName.Split(new[] { '\\', '/' }); + int depth = pathParts.Length - 2; + string pathTail = pathParts[depth + 1]; + while (solutionFiles.Count > 1 && depth >= 0) + { + pathTail = Path.Combine(pathParts[depth], pathTail); + List candidates = new List(); + foreach (string solutionFile in solutionFiles) + { + if (solutionFile.EndsWith(pathTail)) + candidates.Add(solutionFile); + } + if (candidates.Count == 0) + break; + + solutionFiles = candidates; + depth--; + } + + if (solutionFiles.Count > 0) + { + if (ShowProblemFile(solutionFiles[0], row, column, length)) + return true; + } + + } + + } + catch (Exception ex) + { + Logger.Create().Error(ex.ToString()); + } + System.Windows.Forms.MessageBox.Show(string.Format("File {0} not found", relativeFileName), "Error", System.Windows.Forms.MessageBoxButtons.OK); + return false; + } + + public void reportWinObject_SelectedNodeChanged(CxViewerAction.Entities.WebServiceEntity.TreeNodeData obj) + { + ShowProblemFile(obj); + } + + public void NavigateToQueryDescription(object sender, EventArgs e) + { + try + { + QueryDescriptionEventArg nodeData = (QueryDescriptionEventArg)e; + CxRESTApiPortalConfiguration rESTApiPortalConfiguration = new CxRESTApiPortalConfiguration(); + rESTApiPortalConfiguration.InitPortalBaseUrl(); + string urlToDescription = new QueryDescriptionUrlBuilder().Build(nodeData.QueryId, nodeData.QueryName, nodeData.QueryVersionCode); + + QueryDescriptionForm queryDesc = new QueryDescriptionForm(urlToDescription,OidcLoginData.GetOidcLoginDataInstance().AccessToken, queryDescriptionHeader); + queryDesc.Show(); + } + catch (Exception ex) + { + Logger.Create().Error(ex.ToString()); + TopMostMessageBox.Show(ex.Message); + } + } + + public void OpenQueryDescription(string url) + { + try + { + _applicationObject.ItemOperations.Navigate(url, vsNavigateOptions.vsNavigateOptionsDefault); + } + catch (Exception ex) + { + Logger.Create().Error(ex.ToString()); + + TopMostMessageBox.Show(ex.Message); + } + } + + public void reportWinObject_SelectedScanChanged(long scanId) + { + try + { + + CommonData.SelectedScanId = scanId; + + + ShowResultLogic showResultLogic = new ShowResultLogic(); + + showResultLogic.Act(); + + #region Remarks + //Commands2 commands = (Commands2)_applicationObject.Commands; + //EnvDTE.Command prevCommand; + + //prevCommand = commands.Item("CxViewerAction.Connect.ShowResults", 1); + + //object customin = null, customout = null; + //commands.Raise(prevCommand.Guid, prevCommand.ID, ref customin, ref customout); + #endregion + } + catch (Exception ex) + { + Logger.Create().Error(ex.ToString()); + } + + } + + public void ShowScanProgressView() + { + showView(_scanProgressWin); + } + + public void CloseScanProgressView() + { + closeView(_scanProgressWin); + } + + public void ClearScanProgressView() + { + var dockView = (IScanView)_scanProgressWin.Window; + dockView.Clear(); + } + + public void ShowGraphView() + { + showView(_graphWin); + } + + public void CloseGraphView() + { + closeView(_graphWin); + } + + public void ShowResultsView() + { + showView(_resultWin); + } + + public void CloseResultsView() + { + closeView(_resultWin); + } + + public void ShowPathView() + { + showView(_pathWin); + } + + public void ClosePathView() + { + closeView(_pathWin); + } + + public void ShowReportView() + { + showView(_reportWin); + } + + public void CloseReportView() + { + closeView(_reportWin); + } + + public void ReportDoPrevResults() + { + IPerspectiveView rep = _reportWin.Window as IPerspectiveView; + PerspectiveHelper.DoPrevResult(); + if (rep == null || rep.Report == null || rep.Report.Tree.Count == 0) + { + TopMostMessageBox.Show("There are no vulnerabilities to show."); + } + } + + public void UpdateScanProgress(ScanStatusBar data) + { + if (data == null) return; + + if (data.ClearBeforeUpdateProgress) + { + _applicationObject.StatusBar.Clear(); + } + + _applicationObject.StatusBar.Progress(data.InProgress, + data.Label, data.Completed, data.Total); + } + + #endregion + + #region Private methods + + private void RegisterReportEvents() + { + var view = _reportWin.Window as IPerspectiveView; + if (view != null) + { + view.SelectedNodeChanged -= reportWinObject_SelectedNodeChanged; + view.SelectedReportItemChanged -= NavigateToQueryDescription; + view.SelectedScanChanged -= reportWinObject_SelectedScanChanged; + + view.SelectedNodeChanged += reportWinObject_SelectedNodeChanged; + view.SelectedReportItemChanged += NavigateToQueryDescription; + view.SelectedScanChanged += reportWinObject_SelectedScanChanged; + } + } + + private void BuildFileMapping(ProjectItem projectItem, Dictionary> mapping) + { + try + { + + AddFilesToMappingTable(projectItem, mapping); + + if (projectItem.ProjectItems != null && projectItem.ProjectItems.Count > 0) + { + foreach (ProjectItem projectSubItem in projectItem.ProjectItems) + { + BuildFileMapping(projectSubItem, mapping); + } + } + } + catch (Exception ex) + { + Logger.Create().Error(ex.ToString()); + } + } + + private IList GetSolutionProjects() + { + List list = new List(); + + try + { + + Projects projects = _applicationObject.Solution.Projects; + + foreach (EnvDTE.Project project in projects) + { + if (project == null) + { + continue; + } + if (project.Kind == ProjectKinds.vsProjectKindSolutionFolder) + { + list.AddRange(GetSolutionFolderProjects(project)); + } + else + { + list.Add(project); + } + } + } + catch (Exception ex) + { + Logger.Create().Error(ex.ToString()); + } + + return list; + } + + private IEnumerable GetSolutionFolderProjects(EnvDTE.Project solutionFolder) + { + + List list = new List(); + + try + { + + foreach (ProjectItem projectItem in solutionFolder.ProjectItems) + { + EnvDTE.Project subProject = projectItem.SubProject; + if (subProject == null) + { + continue; + } + if (subProject.Kind == ProjectKinds.vsProjectKindSolutionFolder) + { + list.AddRange(GetSolutionFolderProjects(subProject)); + } + else + { + list.Add(subProject); + } + } + + } + catch (Exception ex) + { + Logger.Create().Error(ex.ToString()); + } + + return list; + } + + private void AddFilesToMappingTable(ProjectItem projectItem, Dictionary> mapping) + { + try + { + + for (short j = 1; j < projectItem.FileCount + 1; j++) + { + string file = projectItem.get_FileNames(j); + string fileName = Path.GetFileName(file); + + if (string.IsNullOrEmpty(fileName)) + continue; + + List filePaths; + if (mapping.ContainsKey(fileName)) + filePaths = mapping[fileName]; + else + { + filePaths = new List(); + mapping.Add(fileName, filePaths); + } + filePaths.Add(file); + } + } + catch (Exception ex) + { + Logger.Create().Error(ex.ToString()); + } + } + + private void AddProjectToSolution(CxViewerAction.Entities.Project outputProject, Projects projects) + { + foreach (EnvDTE.Project solutionProject in projects) + { + try + { + if (!string.IsNullOrEmpty(solutionProject.FullName)) + { + string projectFullPath = solutionProject.FullName; + + // For version 2013 we have a bug where project.FullName returns http://localhost:XXXX + // The following line returns the project full path for all project kinds. + // for versions prior to 2013 for web projects, project.FullName return the project loaction with '/' in the end. Our algorithm is based on that behaviour. + // in order to maintain this behaviour, we always trim '//' '\' from fullPAth, and append "//". This way the rest of the code would execute as usual. + if (solutionProject.Kind == vsProjectKindWeb) //if project is web + { + string webProjectPath = solutionProject.Properties.Item("FullPath").Value as string; + webProjectPath = webProjectPath.TrimEnd(new[] { '\\', '/' }); + projectFullPath = webProjectPath + "//"; + FileInfo fileInfo = new FileInfo(projectFullPath); + projectFullPath = fileInfo.FullName; + } + + outputProject.ProjectPaths.Add(new Entities.Project(solutionProject.Name, new FileInfo(projectFullPath).DirectoryName)); + + } + else // can be virtual folder + { + AddProjectToSolution(outputProject, solutionProject.ProjectItems); + } + } + catch (Exception ex) + { + Logger.Create().Error(ex.ToString()); + } + } + } + + private void AddProjectToSolution(CxViewerAction.Entities.Project outputProject, ProjectItems projectItems) + { + foreach (EnvDTE.ProjectItem solutionProject in projectItems) + { + try + { + if (solutionProject.SubProject == null) + { + continue; + } + if (!string.IsNullOrEmpty(solutionProject.SubProject.FullName)) + { + outputProject.ProjectPaths.Add(new Entities.Project(solutionProject.SubProject.Name, new FileInfo(solutionProject.SubProject.FullName).DirectoryName)); + } + else // can be virtual folder + { + if (solutionProject.SubProject.ProjectItems == null) + { + continue; + } + AddProjectToSolution(outputProject, solutionProject.SubProject.ProjectItems); + } + } + catch (Exception ex) + { + Logger.Create().Error(ex.ToString()); + } + } + } + + /// + /// Show selected project file + /// + /// + /// + /// + /// + /// + private bool ShowProblemFile(string file, int row, int column, int length) + { + FileInfo fileInfo = new FileInfo(file); + + if (fileInfo.Exists) + { + try + { + _applicationObject.ItemOperations.OpenFile(file, EnvDTEConstants.vsViewKindCode); + _applicationObject.ActiveDocument.Activate(); + + TextSelection selection = (TextSelection)_applicationObject.ActiveDocument.Selection; + try + { + selection.MoveToLineAndOffset(row, column, false); + selection.CharRight(true, length); + } + catch (ArgumentException ex) + { + if (IsJavaScriptFile(fileInfo)) + { + string errMsg = "“This plugin does not support showing results in a compressed min.js file. \n" + + "To view the full results, please navigate to the Checkmarx results viewer."; + TopMostMessageBox.Show(errMsg); + + return true; + } + } + return true; + } + catch (Exception ex) + { + Logger.Create().Error(ex.ToString()); + + TopMostMessageBox.Show(ex.Message); + } + } + + return false; + } + + public bool IsJavaScriptFile(FileInfo fileInfo) + { + bool isJSFile = (fileInfo.FullName != null || fileInfo.Name != null) && + fileInfo.Extension.Equals(".js", StringComparison.OrdinalIgnoreCase); + + return isJSFile; + } + + + private void ShowProblemFile(CxViewerAction.Entities.WebServiceEntity.TreeNodeData treeNode) + { + + #region [Bind graph view] + + try + { + PerspectiveGraphCtrl viewGraph = null; + if (_graphWin != null) + { + viewGraph = _graphWin.Window as PerspectiveGraphCtrl; + if (viewGraph != null) + { + viewGraph.ClearGraphView(); + viewGraph.Graph = null; + viewGraph.SelectedPath = null; + viewGraph.Graph = new Graph(treeNode); + viewGraph.MsGalViewer.Refresh(); + viewGraph.MsGalViewer.ResumeLayout(); + viewGraph.MsGalViewer.Update(); + viewGraph.BindData(); + viewGraph.PathItemClick = GraphClick; + } + + showView(_graphWin); + Logger.Create().Info("ShowProblemFile(): graph window has shown."); + } + + #endregion + + #region [Bind result view] + if (_resultWin != null) + { + PerspectiveResultCtrl viewResult = _resultWin.Window as PerspectiveResultCtrl; + + viewResult.SelectedNode = treeNode; + //if (!_resultWin.Visible || viewResult.IsActive) + //{ + if (!wasInit) + { + viewResult.SelectedRowChanged += new EventHandler(viewResult_SelectedRowChanged); + viewResult.Refresh += new EventHandler(viewResult_Refresh); + wasInit = true; + } + // _resultWin.Visible = true; + viewResult.IsActive = false; + viewResult.SelectRow(); + //} + + showView(_resultWin); + Logger.Create().Info("ShowProblemFile(): result table window has shown."); + } + } + catch (Exception ex) + { + + if (ex is System.Net.WebException) + { + Logger.Create().Error(ex.ToString()); + TopMostMessageBox.Show(ex.Message, "Error"); + } + else + { + Logger.Create().Error(ex.ToString()); + TopMostMessageBox.Show("General error occured, please check the log", "Error"); + } + } + #endregion + } + + private void viewResult_Refresh(object sender, EventArgs e) + { + Logger.Create().Info("Result table window refresh event."); + TreeNodeData nodeData = (TreeNodeData)e; + Logger.Create().Info("viewResult_Refresh():calling show problem file."); + ShowProblemFile(nodeData); + } + + private void viewResult_SelectedRowChanged(object sender, EventArgs e) + { + try + { + Logger.Create().Info("In result table window selected row changed event."); + ResultData data = (ResultData)e; + CxViewerAction.CxVSWebService.CxWSResultPath resultPath = PerspectiveHelper.GetResultPath(data.ScanId, data.Result.PathId); + Logger.Create().Info("viewResult_SelectedRowChanged():received result path."); + + PerspectiveGraphCtrl viewGraph = null; + if (_graphWin != null) + { + viewGraph = _graphWin.Window as PerspectiveGraphCtrl; + if (viewGraph != null) + { + CxViewerAction.BaseInterfaces.IGraphPath path = viewGraph.FindPath(resultPath); + viewGraph.SelectEdgeGraphByPath(path.DirectFlow[0], path.DirectFlow[1], path); + Logger.Create().Info("viewResult_SelectedRowChanged():calling BindData()."); + viewGraph.BindData(); + viewGraph.PathItemClick = GraphClick; + } + } + + #region [Bind path view] + if (_pathWin != null) + { + IPerspectivePathView viewPath = _pathWin.Window as IPerspectivePathView; + CxViewerAction.Entities.WebServiceEntity.ReportQueryItemResult path = new CxViewerAction.Entities.WebServiceEntity.ReportQueryItemResult() + { + Column = resultPath.Nodes[0].Column, + FileName = resultPath.Nodes[0].FileName, + Line = resultPath.Nodes[0].Line, + NodeId = resultPath.Nodes[0].PathNodeId, + PathId = resultPath.PathId, + Query = data.NodeData.QueryResult + }; + Logger.Create().Info("viewResult_SelectedRowChanged():received query item result."); + Logger.Create().Info("viewResult_SelectedRowChanged():converting nodes to paths."); + path.Paths = GraphHelper.ConvertNodesToPathes(resultPath.Nodes, data.NodeData.QueryResult, path); + viewPath.PathButtonClickHandler = PathButtonClick; + Logger.Create().Info("viewResult_SelectedRowChanged():called path button click event."); + viewPath.QueryItemResult = path; + + Logger.Create().Info("viewResult_SelectedRowChanged():calling BindData() for path window."); + viewPath.BindData(resultPath.Nodes[0].PathNodeId); + Logger.Create().Info("viewResult_SelectedRowChanged():showing path window."); + showView(_pathWin); + } + #endregion + + ShowFile(resultPath.Nodes[0].FileName, resultPath.Nodes[0].Line, resultPath.Nodes[0].Column, resultPath.Nodes[0].Length); + + } + catch (Exception ex) + { + if (ex is System.Net.WebException) + { + Logger.Create().Error(ex.ToString()); + TopMostMessageBox.Show(ex.Message, "Error"); + } + else + { + Logger.Create().Error(ex.ToString()); + TopMostMessageBox.Show("General error occured, please check the log", "Error"); + } + } + } + + private void GraphClick(object sender, EventArgs e) + { + Logger.Create().Info("In graph click event."); + ReportQueryItemPathResult graphItem = ((ReportQueryItemPathResult)sender); + PerspectiveGraphCtrl viewGraph = null; + if (_graphWin != null) + { + viewGraph = _graphWin.Window as PerspectiveGraphCtrl; + if (viewGraph != null) + { + viewGraph.SelectedPath = viewGraph.FindPath(graphItem.QueryItem); + DrawingHelper.SelectedPathItemUniqueID = graphItem.UniqueID; + DrawingHelper.isEdgeSelected = false; + if (viewGraph.MsGalViewer != null) + { + viewGraph.MsGalViewer.Refresh(); + viewGraph.MsGalViewer.ResumeLayout(); + viewGraph.MsGalViewer.Update(); + } + Logger.Create().Info("Calling Bind data for graph."); + viewGraph.BindData(); + } + } + + #region [Bind path view] + if (_pathWin != null) + { + IPerspectivePathView viewPath = _pathWin.Window as IPerspectivePathView; + viewPath.PathButtonClickHandler = PathButtonClick; + + viewPath.QueryItemResult = graphItem.QueryItem; + + viewPath.BindData(graphItem.NodeId); + + showView(_pathWin); + } + #endregion + + PerspectiveResultCtrl viewResult = _resultWin.Window as PerspectiveResultCtrl; + viewResult.MarkRowAsSelected(graphItem.QueryItem.PathId); + + ShowFile(graphItem.FileName, graphItem.Line, graphItem.Column, graphItem.Length); + + } + + private void PathButtonClick(object sender, EventArgs e) + { + ReportQueryItemPathResult reportQueryItemPathResult = ((ColorButton.ColorButton)sender).Tag as ReportQueryItemPathResult; + PerspectiveGraphCtrl viewGraph = null; + if (_graphWin != null) + { + viewGraph = _graphWin.Window as PerspectiveGraphCtrl; + if (viewGraph != null) + { + { + viewGraph.SelectedPath = viewGraph.FindPath(reportQueryItemPathResult.QueryItem); + DrawingHelper.SelectedPathItemUniqueID = reportQueryItemPathResult.UniqueID; + DrawingHelper.isEdgeSelected = false; + } + + viewGraph.BindData(); + + if (viewGraph.MsGalViewer != null) + { + viewGraph.MsGalViewer.Refresh(); + viewGraph.MsGalViewer.ResumeLayout(); + viewGraph.MsGalViewer.Update(); + } + } + } + + ShowFile(reportQueryItemPathResult.FileName, reportQueryItemPathResult.Line, reportQueryItemPathResult.Column, reportQueryItemPathResult.Length); + + } + + private void showView(ToolWindowPane window) + { + if ((null == window) || (null == window.Frame)) + { + throw new NotSupportedException("Cannot create tool window"); + } + + IVsWindowFrame windowFrame = (IVsWindowFrame)window.Frame; + Microsoft.VisualStudio.ErrorHandler.ThrowOnFailure(windowFrame.Show()); + } + + private void closeView(ToolWindowPane window) + { + if ((null == window) || (null == window.Frame)) + { + throw new NotSupportedException("Cannot create tool window"); + } + + IVsWindowFrame windowFrame = (IVsWindowFrame)window.Frame; + Microsoft.VisualStudio.ErrorHandler.ThrowOnFailure(windowFrame.CloseFrame((uint)__FRAMECLOSE.FRAMECLOSE_PromptSave)); + } + + #endregion + + } +} diff --git a/CxActionShared/CommonCustomResourceRequestHandler.cs b/CxActionShared/CommonCustomResourceRequestHandler.cs new file mode 100644 index 00000000..73042f59 --- /dev/null +++ b/CxActionShared/CommonCustomResourceRequestHandler.cs @@ -0,0 +1,79 @@ +using CefSharp; +using CefSharp.Handler; +using Common; +using System; +using System.Web; +using System.Windows.Forms; + +namespace CxActionShared +{ + public class CommonCustomResourceRequestHandler : CefSharp.Handler.ResourceRequestHandler + { + private readonly System.IO.MemoryStream memoryStream = new System.IO.MemoryStream(); + + protected override IResponseFilter GetResourceResponseFilter(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IRequest request, IResponse response) + { + return new CefSharp.ResponseFilter.StreamResponseFilter(memoryStream); + } + + public class NewCustomRequestHandler : RequestHandler + { + private string _token; + public NewCustomRequestHandler(string token) + { + _token = token; + } + + public NewCustomRequestHandler() { } + + protected override IResourceRequestHandler GetResourceRequestHandler(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, + IRequest request, bool isNavigation, bool isDownload, string requestInitiator, ref bool disableDefaultHandling) + { + if (!string.IsNullOrEmpty(_token)) + return new CustomResourceRequestHandler(_token); + else + return new CustomResourceRequestHandler(); + } + } + + public class CustomResourceRequestHandler : ResourceRequestHandler + { + private string _token; + + public CustomResourceRequestHandler(string token) + { + _token = token; + } + + public CustomResourceRequestHandler() { } + + protected override CefReturnValue OnBeforeResourceLoad(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IRequest request, + IRequestCallback callback) + { + Logger.Create().Info("In on before resource load event of chrome browser page."); + var Url = request.Url.ToString(); + Uri myUri = new Uri(request.Url); + + if (!string.IsNullOrEmpty(_token)) + { + var headers = request.Headers; + headers["Authorization"] = $"Bearer {_token}"; + request.Headers = headers; + } + + if (Url.ToLower().Contains("error=")) + { + string error = HttpUtility.ParseQueryString(myUri.Query).Get("error"); + MessageBox.Show(error, "Error", MessageBoxButtons.OK); + Logger.Create().Error(error); + browser.CloseBrowser(false); + } + else + { + Logger.Create().Debug("New url " + Url + "."); + } + return CefReturnValue.Continue; + } + } + } +} \ No newline at end of file diff --git a/CxViewerAction/CommonData.cs b/CxActionShared/CommonData.cs similarity index 94% rename from CxViewerAction/CommonData.cs rename to CxActionShared/CommonData.cs index 6cfb85f9..af20f649 100644 --- a/CxViewerAction/CommonData.cs +++ b/CxActionShared/CommonData.cs @@ -1,53 +1,53 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; - -namespace CxViewerAction -{ - static class CommonData - { - private static bool workingOffline = false; - public static bool IsWorkingOffline - { - get { return workingOffline; } - set { workingOffline = value; } - } - - public static long SelectedScanId - { - get; - set; - } - - public static long ProjectId - { - get; - set; - } - - public static bool IsProjectBound - { - get; - set; - } - - public static bool IsProjectPublic - { - get; - set; - } - - public static string ProjectName - { - get; - set; - } - - public static string ProjectRootPath - { - get; - set; - } - } -} +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace CxViewerAction +{ + static class CommonData + { + private static bool workingOffline = false; + public static bool IsWorkingOffline + { + get { return workingOffline; } + set { workingOffline = value; } + } + + public static long SelectedScanId + { + get; + set; + } + + public static long ProjectId + { + get; + set; + } + + public static bool IsProjectBound + { + get; + set; + } + + public static bool IsProjectPublic + { + get; + set; + } + + public static string ProjectName + { + get; + set; + } + + public static string ProjectRootPath + { + get; + set; + } + } +} diff --git a/CxViewerAction/Connect.cs b/CxActionShared/Connect.cs similarity index 100% rename from CxViewerAction/Connect.cs rename to CxActionShared/Connect.cs diff --git a/CxActionShared/CxActionShared.projitems b/CxActionShared/CxActionShared.projitems new file mode 100644 index 00000000..ff7b83ab --- /dev/null +++ b/CxActionShared/CxActionShared.projitems @@ -0,0 +1,374 @@ + + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) + true + 74fad639-8ff8-41a4-b1df-1930bfba319b + + + CxActionShared + + + + + + + + + + True + True + + + + + + + Code + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Form + + + BindingPrjList.cs + + + Form + + + BrowserForm.cs + + + UserControl + + + ConnectionCtrl.cs + + + + + + + + UserControl + + + OidcLoginCtrl.cs + + + UserControl + + + OptionsAuthCtrl.cs + + + UserControl + + + OptionsZipCtrl.cs + + + UserControl + + + PerspectiveCtrl.cs + + + UserControl + + + PerspectiveGraphCtrl.cs + + + UserControl + + + PerspectivePathCtrl.cs + + + UserControl + + + PerspectiveResultCtrl.cs + + + UserControl + + + ScanProcessCtrl.cs + + + Form + + + EditRemarkPopUp.cs + + + Form + + + ErrorFrm.cs + + + + + + + + Form + + + OidcLoginFrm.cs + + + Form + + + OpenPercspectiveDialog.cs + + + + Form + + + QueryDescriptionForm.cs + + + Form + + + ScanProcessFrm.cs + + + Component + + + Component + + + Form + + + SubmitUserFrm.cs + + + Form + + + UploadFrm.cs + + + Form + + + WaitFrm.cs + + + + + Designer + CommandBar.Designer.cs + ResXFileCodeGenerator + + + + Designer + BindingPrjList.cs + + + BrowserForm.cs + Designer + + + ConnectionCtrl.cs + + + OidcLoginCtrl.cs + + + Designer + OptionsAuthCtrl.cs + + + Designer + OptionsZipCtrl.cs + + + Designer + PerspectiveCtrl.cs + + + Designer + PerspectiveGraphCtrl.cs + + + Designer + PerspectivePathCtrl.cs + + + Designer + PerspectiveResultCtrl.cs + + + Designer + ScanProcessCtrl.cs + + + Designer + EditRemarkPopUp.cs + + + Designer + ErrorFrm.cs + + + OidcLoginFrm.cs + Designer + + + Designer + OpenPercspectiveDialog.cs + + + Designer + QueryDescriptionForm.cs + + + Designer + ScanProcessFrm.cs + + + SubmitUserFrm.cs + + + Designer + UploadFrm.cs + + + Designer + WaitFrm.cs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/CxActionShared/CxActionShared.shproj b/CxActionShared/CxActionShared.shproj new file mode 100644 index 00000000..520cf46e --- /dev/null +++ b/CxActionShared/CxActionShared.shproj @@ -0,0 +1,13 @@ + + + + 74fad639-8ff8-41a4-b1df-1930bfba319b + 14.0 + + + + + + + + diff --git a/CxViewerAction/CxViewerAction.csproj.vspscc b/CxActionShared/CxViewerAction.csproj.vspscc similarity index 96% rename from CxViewerAction/CxViewerAction.csproj.vspscc rename to CxActionShared/CxViewerAction.csproj.vspscc index feffdeca..b6d32892 100644 --- a/CxViewerAction/CxViewerAction.csproj.vspscc +++ b/CxActionShared/CxViewerAction.csproj.vspscc @@ -1,10 +1,10 @@ -"" -{ -"FILE_VERSION" = "9237" -"ENLISTMENT_CHOICE" = "NEVER" -"PROJECT_FILE_RELATIVE_PATH" = "" -"NUMBER_OF_EXCLUDED_FILES" = "0" -"ORIGINAL_PROJECT_FILE_PATH" = "" -"NUMBER_OF_NESTED_PROJECTS" = "0" -"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER" -} +"" +{ +"FILE_VERSION" = "9237" +"ENLISTMENT_CHOICE" = "NEVER" +"PROJECT_FILE_RELATIVE_PATH" = "" +"NUMBER_OF_EXCLUDED_FILES" = "0" +"ORIGINAL_PROJECT_FILE_PATH" = "" +"NUMBER_OF_NESTED_PROJECTS" = "0" +"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER" +} diff --git a/CxActionShared/CxViewerAction.xml b/CxActionShared/CxViewerAction.xml new file mode 100644 index 00000000..84e2d5de --- /dev/null +++ b/CxActionShared/CxViewerAction.xml @@ -0,0 +1,7091 @@ + + + + CxViewerAction + + + + + Represent commandResult class structure + + + + + Execute command + + + + + Execute login command + + + + + + + Execute upload command + + + + + + + Execute scan command + + + + + + + Execute scan command + + + + + + + Execute scan command + + + + + + + Represent dispatcher class structure + + + + + Dispatch command + + + + + + + Handler for excution + + + + + + + Represent dispatcher object + + + + + Dispatch command + + + + + + + Represent base methods-properties graph object + + + + + Gets or sets graph severity + + + + + Gets or sets current selected graph path + + + + + Gets graph horizontal length (max horizontal elements) + + + + + Gets graph vertical length (max vertical elements) + + + + + Gets or sets list of path sequances + + + + + Gets or sets the max node relations comparing to all graph nodes + + + + + Gets item position in graph matrix start from top-left corner + + Grapth element + X-Y position of element inside graph + + + + Perform adding new path to graph and updating item references + + + + + + Represent main methods-properties for path object + + + + + Gets or sets current selected graph item + + + + + Problem sequance length + + + + + Gets or sets problems sequance from begin to end + + + + + Get the position of first path element in comparission + with most top element in all graph paths + + + + + Gets the vertical position of path in graph matrix + + + + + Represent main methods-properties for graph path item object + + + + + Gets or sets problem file name + + + + + Gets or sets item name + + + + + Gets or sets problem line position + + + + + Gets or sets problem column position + + + + + Gets or sets problem text length + + + + + Determine that this item exist in other graph paths. + + + + + Determine that this item exist in other graph paths. + + + + + Gets or sets parent item + + + + + Gets or sets value indicated that current graph item id connection point + for all same items + + + + + Gets or sets column element position in graph object + + + + + Gets or sets row element position in graph object + + + + + Represent presenter class structure + + + + + Represent upload controller object + + + + + Constructor + + + + + + Load event handler + + + + + + + Perform upload project + + Parent view + Upload data + + + + Map upload object data to view + + + + + + Map view data to upload object + + + + + + + Represent main scan view class methods + + + + + Perform scan + + Parent view + data + + + + Represent main login view class methods + + + + + Perform login + + Parent view + Login data + + + + Represent main scan view class methods + + + + + Perform scan + + Parent view + data + + + + Represent main scan view class methods + + + + + Perform scan + + Parent view + Scan data + + + + Represent main upload view class methods + + + + + Perform project upload + + Parent view + Upload data + + + + Represent login controller object + + + + + Constructor + + Related view + + + + Load event handler + + + + + + + Perform login + + Parent view + Login data + + + + Map object data to view + + + + + + Map view data to object + + + + + + Represent scan controller + + + + + Get Related View + + + + + Constructor + + Scan data + + + + Load event handler + + + + + + + Perform scan + + Parent view + Scan data + + + + Represent upload controller object + + + + + Constructor + + + + + + Load event handler + + + + + + + Perform upload project + + Parent view + Upload data + + + + Map upload object data to view + + + + + + Map view data to upload object + + + + + + + Represent View class structure + + + + + View load handler + + + + + Show modal dialog + + + + + + Show modal dialog + + parent view + + + + + Show non-modal view + + + + + Show non-modal view + + parent view + + + + Close view + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized string similar to Aktion. + + + + + Looks up a localized string similar to Add-Ins. + + + + + Looks up a localized string similar to Analyse. + + + + + Looks up a localized string similar to Erstellen. + + + + + Looks up a localized string similar to Klassendiagramm. + + + + + Looks up a localized string similar to Community. + + + + + Looks up a localized string similar to Daten. + + + + + Looks up a localized string similar to Datenbank. + + + + + Looks up a localized string similar to Datenbankdiagramm. + + + + + Looks up a localized string similar to Debuggen. + + + + + Looks up a localized string similar to Diagramm. + + + + + Looks up a localized string similar to Bearbeiten. + + + + + Looks up a localized string similar to Datei. + + + + + Looks up a localized string similar to Format. + + + + + Looks up a localized string similar to Rahmen. + + + + + Looks up a localized string similar to Hilfe. + + + + + Looks up a localized string similar to Bild. + + + + + Looks up a localized string similar to Layout. + + + + + Looks up a localized string similar to Makros. + + + + + Looks up a localized string similar to Projekt. + + + + + Looks up a localized string similar to Query. + + + + + Looks up a localized string similar to Abfrage-Designer. + + + + + Looks up a localized string similar to Umgestalten. + + + + + Looks up a localized string similar to Bericht. + + + + + Looks up a localized string similar to Ressourcen. + + + + + Looks up a localized string similar to Schema. + + + + + Looks up a localized string similar to Formate. + + + + + Looks up a localized string similar to Tabelle. + + + + + Looks up a localized string similar to Tabellen-Designer. + + + + + Looks up a localized string similar to Team. + + + + + Looks up a localized string similar to Test. + + + + + Looks up a localized string similar to Extras. + + + + + Looks up a localized string similar to Ansicht. + + + + + Looks up a localized string similar to Fenster. + + + + + Looks up a localized string similar to XML. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized string similar to Action. + + + + + Looks up a localized string similar to Addins. + + + + + Looks up a localized string similar to Analyze. + + + + + Looks up a localized string similar to Build. + + + + + Looks up a localized string similar to Class Diagram. + + + + + Looks up a localized string similar to Community. + + + + + Looks up a localized string similar to Data. + + + + + Looks up a localized string similar to Database. + + + + + Looks up a localized string similar to Database Diagram. + + + + + Looks up a localized string similar to Debug. + + + + + Looks up a localized string similar to Diagram. + + + + + Looks up a localized string similar to Edit. + + + + + Looks up a localized string similar to File. + + + + + Looks up a localized string similar to Format. + + + + + Looks up a localized string similar to Frames. + + + + + Looks up a localized string similar to Help. + + + + + Looks up a localized string similar to Image. + + + + + Looks up a localized string similar to Layout. + + + + + Looks up a localized string similar to Macros. + + + + + Looks up a localized string similar to Project. + + + + + Looks up a localized string similar to Query. + + + + + Looks up a localized string similar to Query Designer. + + + + + Looks up a localized string similar to Refactor. + + + + + Looks up a localized string similar to Report. + + + + + Looks up a localized string similar to Resources. + + + + + Looks up a localized string similar to Schema. + + + + + Looks up a localized string similar to Styles. + + + + + Looks up a localized string similar to Table. + + + + + Looks up a localized string similar to Table Designer. + + + + + Looks up a localized string similar to Team. + + + + + Looks up a localized string similar to Test. + + + + + Looks up a localized string similar to Tools. + + + + + Looks up a localized string similar to View. + + + + + Looks up a localized string similar to Window. + + + + + Looks up a localized string similar to XML. + + + + + Looks up a localized string similar to Acción. + + + + + Looks up a localized string similar to Complementos. + + + + + Looks up a localized string similar to Analizar. + + + + + Looks up a localized string similar to Generar. + + + + + Looks up a localized string similar to Diagrama de clase. + + + + + Looks up a localized string similar to Comunidad. + + + + + Looks up a localized string similar to Datos. + + + + + Looks up a localized string similar to Base de datos. + + + + + Looks up a localized string similar to Diagrama de base de datos. + + + + + Looks up a localized string similar to Depurar. + + + + + Looks up a localized string similar to Diagrama. + + + + + Looks up a localized string similar to Editar. + + + + + Looks up a localized string similar to Archivo. + + + + + Looks up a localized string similar to Formato. + + + + + Looks up a localized string similar to Marcos. + + + + + Looks up a localized string similar to Ayuda. + + + + + Looks up a localized string similar to Imagen. + + + + + Looks up a localized string similar to Diseño. + + + + + Looks up a localized string similar to Macros. + + + + + Looks up a localized string similar to Proyecto. + + + + + Looks up a localized string similar to Consulta. + + + + + Looks up a localized string similar to Diseñador de consultas. + + + + + Looks up a localized string similar to Refactorizar. + + + + + Looks up a localized string similar to Informe. + + + + + Looks up a localized string similar to Recursos. + + + + + Looks up a localized string similar to Esquema. + + + + + Looks up a localized string similar to Estilos. + + + + + Looks up a localized string similar to Tabla. + + + + + Looks up a localized string similar to Diseñador de tablas. + + + + + Looks up a localized string similar to Equipo. + + + + + Looks up a localized string similar to Prueba. + + + + + Looks up a localized string similar to Herramientas. + + + + + Looks up a localized string similar to Ver. + + + + + Looks up a localized string similar to Ventana. + + + + + Looks up a localized string similar to XML. + + + + + Looks up a localized string similar to Action. + + + + + Looks up a localized string similar to Compléments. + + + + + Looks up a localized string similar to Analyser. + + + + + Looks up a localized string similar to Générer. + + + + + Looks up a localized string similar to Diagramme de classes. + + + + + Looks up a localized string similar to Communauté. + + + + + Looks up a localized string similar to Données. + + + + + Looks up a localized string similar to Base de données. + + + + + Looks up a localized string similar to Schéma de base de données. + + + + + Looks up a localized string similar to Déboguer. + + + + + Looks up a localized string similar to Schéma. + + + + + Looks up a localized string similar to Edition. + + + + + Looks up a localized string similar to Fichier. + + + + + Looks up a localized string similar to Format. + + + + + Looks up a localized string similar to Frames. + + + + + Looks up a localized string similar to ?. + + + + + Looks up a localized string similar to Image. + + + + + Looks up a localized string similar to Disposition. + + + + + Looks up a localized string similar to Macros. + + + + + Looks up a localized string similar to Projet. + + + + + Looks up a localized string similar to Requête. + + + + + Looks up a localized string similar to Concepteur de requêtes. + + + + + Looks up a localized string similar to Refactoriser. + + + + + Looks up a localized string similar to Rapport. + + + + + Looks up a localized string similar to Ressources. + + + + + Looks up a localized string similar to Schéma. + + + + + Looks up a localized string similar to Styles. + + + + + Looks up a localized string similar to Tableau. + + + + + Looks up a localized string similar to Concepteur de tables. + + + + + Looks up a localized string similar to équipe. + + + + + Looks up a localized string similar to Test. + + + + + Looks up a localized string similar to Outils. + + + + + Looks up a localized string similar to Affichage. + + + + + Looks up a localized string similar to Fenêtre. + + + + + Looks up a localized string similar to XML. + + + + + Looks up a localized string similar to Azione. + + + + + Looks up a localized string similar to Componenti aggiuntivi. + + + + + Looks up a localized string similar to Analizza. + + + + + Looks up a localized string similar to Genera. + + + + + Looks up a localized string similar to Diagramma classi. + + + + + Looks up a localized string similar to Comunità. + + + + + Looks up a localized string similar to Dati. + + + + + Looks up a localized string similar to Database. + + + + + Looks up a localized string similar to Diagramma database. + + + + + Looks up a localized string similar to Debug. + + + + + Looks up a localized string similar to Diagramma. + + + + + Looks up a localized string similar to Modifica. + + + + + Looks up a localized string similar to File. + + + + + Looks up a localized string similar to Formato. + + + + + Looks up a localized string similar to Frame. + + + + + Looks up a localized string similar to ?. + + + + + Looks up a localized string similar to Immagine. + + + + + Looks up a localized string similar to Layout. + + + + + Looks up a localized string similar to Macro. + + + + + Looks up a localized string similar to Progetto. + + + + + Looks up a localized string similar to Query. + + + + + Looks up a localized string similar to Progettazione query. + + + + + Looks up a localized string similar to Effettua refactoring. + + + + + Looks up a localized string similar to Report. + + + + + Looks up a localized string similar to Risorse. + + + + + Looks up a localized string similar to Schema. + + + + + Looks up a localized string similar to Stili. + + + + + Looks up a localized string similar to Tabella. + + + + + Looks up a localized string similar to Progettazione tabelle. + + + + + Looks up a localized string similar to Team. + + + + + Looks up a localized string similar to Test. + + + + + Looks up a localized string similar to Strumenti. + + + + + Looks up a localized string similar to Visualizza. + + + + + Looks up a localized string similar to Finestra. + + + + + Looks up a localized string similar to XML. + + + + + Looks up a localized string similar to 操作. + + + + + Looks up a localized string similar to アドイン. + + + + + Looks up a localized string similar to 分析. + + + + + Looks up a localized string similar to ビルド. + + + + + Looks up a localized string similar to クラス ダイアグラム. + + + + + Looks up a localized string similar to コミュニティ. + + + + + Looks up a localized string similar to データ. + + + + + Looks up a localized string similar to データベース. + + + + + Looks up a localized string similar to データベース ダイアグラム. + + + + + Looks up a localized string similar to デバッグ. + + + + + Looks up a localized string similar to ダイアグラム. + + + + + Looks up a localized string similar to 編集. + + + + + Looks up a localized string similar to ファイル. + + + + + Looks up a localized string similar to 書式. + + + + + Looks up a localized string similar to フレーム. + + + + + Looks up a localized string similar to ヘルプ. + + + + + Looks up a localized string similar to イメージ. + + + + + Looks up a localized string similar to レイアウト. + + + + + Looks up a localized string similar to マクロ. + + + + + Looks up a localized string similar to プロジェクト. + + + + + Looks up a localized string similar to クエリ. + + + + + Looks up a localized string similar to クエリ デザイナ. + + + + + Looks up a localized string similar to リファクタ. + + + + + Looks up a localized string similar to レポート. + + + + + Looks up a localized string similar to リソース. + + + + + Looks up a localized string similar to スキーマ. + + + + + Looks up a localized string similar to スタイル. + + + + + Looks up a localized string similar to テーブル. + + + + + Looks up a localized string similar to テーブル デザイナ. + + + + + Looks up a localized string similar to チーム. + + + + + Looks up a localized string similar to テスト. + + + + + Looks up a localized string similar to ツール. + + + + + Looks up a localized string similar to 表示. + + + + + Looks up a localized string similar to ウィンドウ. + + + + + Looks up a localized string similar to XML. + + + + + Looks up a localized string similar to 작업. + + + + + Looks up a localized string similar to 추가 기능. + + + + + Looks up a localized string similar to 분석. + + + + + Looks up a localized string similar to 빌드. + + + + + Looks up a localized string similar to 클래스 다이어그램. + + + + + Looks up a localized string similar to 커뮤니티. + + + + + Looks up a localized string similar to 데이터. + + + + + Looks up a localized string similar to 데이터베이스. + + + + + Looks up a localized string similar to 데이터베이스 다이어그램. + + + + + Looks up a localized string similar to 디버그. + + + + + Looks up a localized string similar to 다이어그램. + + + + + Looks up a localized string similar to 편집. + + + + + Looks up a localized string similar to 파일. + + + + + Looks up a localized string similar to 서식. + + + + + Looks up a localized string similar to 프레임. + + + + + Looks up a localized string similar to 도움말. + + + + + Looks up a localized string similar to 이미지. + + + + + Looks up a localized string similar to 레이아웃. + + + + + Looks up a localized string similar to 매크로. + + + + + Looks up a localized string similar to 프로젝트. + + + + + Looks up a localized string similar to 쿼리. + + + + + Looks up a localized string similar to 쿼리 디자이너. + + + + + Looks up a localized string similar to 리팩터링. + + + + + Looks up a localized string similar to 보고서. + + + + + Looks up a localized string similar to 리소스. + + + + + Looks up a localized string similar to 스키마. + + + + + Looks up a localized string similar to 스타일. + + + + + Looks up a localized string similar to 테이블. + + + + + Looks up a localized string similar to 테이블 디자이너. + + + + + Looks up a localized string similar to 팀. + + + + + Looks up a localized string similar to 테스트. + + + + + Looks up a localized string similar to 도구. + + + + + Looks up a localized string similar to 보기. + + + + + Looks up a localized string similar to 창. + + + + + Looks up a localized string similar to XML. + + + + + Looks up a localized string similar to 操作. + + + + + Looks up a localized string similar to 外接程序. + + + + + Looks up a localized string similar to 分析. + + + + + Looks up a localized string similar to 生成. + + + + + Looks up a localized string similar to 类关系图. + + + + + Looks up a localized string similar to 社区. + + + + + Looks up a localized string similar to 数据. + + + + + Looks up a localized string similar to 数据库. + + + + + Looks up a localized string similar to 数据库关系图. + + + + + Looks up a localized string similar to 调试. + + + + + Looks up a localized string similar to 关系图. + + + + + Looks up a localized string similar to 编辑. + + + + + Looks up a localized string similar to 文件. + + + + + Looks up a localized string similar to 格式. + + + + + Looks up a localized string similar to 框架. + + + + + Looks up a localized string similar to 帮助. + + + + + Looks up a localized string similar to 图像. + + + + + Looks up a localized string similar to 布局. + + + + + Looks up a localized string similar to 宏. + + + + + Looks up a localized string similar to 项目. + + + + + Looks up a localized string similar to 查询. + + + + + Looks up a localized string similar to 查询设计器. + + + + + Looks up a localized string similar to 重构. + + + + + Looks up a localized string similar to 报表. + + + + + Looks up a localized string similar to 资源. + + + + + Looks up a localized string similar to 架构. + + + + + Looks up a localized string similar to 样式. + + + + + Looks up a localized string similar to 表. + + + + + Looks up a localized string similar to 表设计器. + + + + + Looks up a localized string similar to 工作组. + + + + + Looks up a localized string similar to 测试. + + + + + Looks up a localized string similar to 工具. + + + + + Looks up a localized string similar to 视图. + + + + + Looks up a localized string similar to 窗口. + + + + + Looks up a localized string similar to XML. + + + + + Looks up a localized string similar to 動作. + + + + + Looks up a localized string similar to 增益集. + + + + + Looks up a localized string similar to 分析. + + + + + Looks up a localized string similar to 建置. + + + + + Looks up a localized string similar to 類別圖表. + + + + + Looks up a localized string similar to 社群. + + + + + Looks up a localized string similar to 資料. + + + + + Looks up a localized string similar to 資料庫. + + + + + Looks up a localized string similar to 資料庫圖表. + + + + + Looks up a localized string similar to 偵錯. + + + + + Looks up a localized string similar to 圖表. + + + + + Looks up a localized string similar to 編輯. + + + + + Looks up a localized string similar to 檔案. + + + + + Looks up a localized string similar to 格式. + + + + + Looks up a localized string similar to 框架. + + + + + Looks up a localized string similar to 說明. + + + + + Looks up a localized string similar to 影像. + + + + + Looks up a localized string similar to 配置. + + + + + Looks up a localized string similar to 巨集. + + + + + Looks up a localized string similar to 專案. + + + + + Looks up a localized string similar to 查詢. + + + + + Looks up a localized string similar to 查詢設計工具. + + + + + Looks up a localized string similar to 重整. + + + + + Looks up a localized string similar to 報表. + + + + + Looks up a localized string similar to 資源. + + + + + Looks up a localized string similar to 結構描述. + + + + + Looks up a localized string similar to 樣式. + + + + + Looks up a localized string similar to 資料表. + + + + + Looks up a localized string similar to 資料表設計工具. + + + + + Looks up a localized string similar to 小組. + + + + + Looks up a localized string similar to 測試. + + + + + Looks up a localized string similar to 工具. + + + + + Looks up a localized string similar to 檢視. + + + + + Looks up a localized string similar to 視窗. + + + + + Looks up a localized string similar to XML. + + + + + Execute system command, like "Save All", "Close" etc + + + + + + Get project path for current selected project in solution explorer + + + + + + Get problem file from entire project or solution + + + + + + + + + + Show selected project file + + + + + + + + + The object for implementing an Add-in. + OnConnection + + + + Implements the OnConnection method of the IDTExtensibility2 interface. Receives notification that the Add-in is being loaded. + + Root object of the host application. + Describes how the Add-in is being loaded. + Object representing this Add-in. + + + + + Initialize Project and Solution menu. + + + + + Entity data + + + + + Class represent Dicitionary object with serialization capability + + + + + + + Read data xml in serialization process + + + + + + Write data xml in serialization process + + + + + + Represent user choise + + + + + Not selected + + + + + Agree decision + + + + + Disagree deicission + + + + + Represent scanb dialod data + + + + + Scanned project name + + + + + Start position in progress + + + + + End position in progress + + + + + Current progress position + + + + + Current status activity name + + + + + Current stage + + + + + Current stage message + + + + + Current stage complete percent + + + + + Current stage number + + + + + Ordered graph data representation + + + + + Find item dependences in previous paths + + + + + Sequence of graph elements + + + + + Grapth element + + + + + Represent command class structure + + + + + Login data + + + + + Default language code + + + + + Full service path url format + + + + + Get or set server domain + + + + + Get or set server full url + + + + + Gets or sets value indicating that connection must be established throw htts protocol + + + + + Gets or sets value indicating that Authenticationa Type Log in Form Or User Submit Form throw htts protocol + + + + + Get or set Entity prorepty + + + + + Gets or sets interval to call server to get current process state + + + + + Get or set dialog state. If true - dialog validated sucessfull and user hit button go next step + + + + + Get or set status to show scan dialog window + + + + + Get or set status to show open perspective dialog after scan completed + + + + + Stored projects perspective URL + + + + + Gets or sets extensions list to exclude when project compressed before scan + + + + + Gets or sets folder list to exclude when project compressed before scan + + + + + Gets or sets reconnection interval in seconds + + + + + Gets or sets counts to reconnect + + + + + Gets or sets max allowed zip file size in megabites for scan + + + + + Gets or sets the option to disable connection optimizations + This optimization should be disabled when there is a proxy or firewall between the plugin and the server + + + + + Verify if user enter all data to start auth verification + + + + + + Adding project perspective dictionary + + + + + + + + Clear user auth data + + + + + Class represent project entity + + + + + Sulution project name + + + + + Gets or sets solution project name + + + + + Sulution path or single project path + + + + + Gets or sets root solution path or single project path + + + + + Sulution projects full file paths + + + + + Gets or sets solution project full file path + + + + + Represent service perspective object + + + + + Get or set service perform status + + + + + Generated report URL + + + + + Convert PerspectiveResult from xml + + xml string + + + + + Scan Data Class + + + + + Server data that was received on user auth request + + + + + Upload project settings + + + + + Server data that was received on start scan request + + + + + Scan executing now + + + + + Check for cancel button state + + + + + VS-addin scan dock window to represent scan data + + + + + VS-addin scan dock window to represent scan data + + + + + Associated scan project + + + + + Event handler for RunInBackground button + + + + + Event handler for Cancel button + + + + + Event handler for Details button + + + + + Check for cancel button state + + + + + Verify that user press cancel button + + + + + Empty constructor + + + + + Constructor with param + + auth server result + + + + Constructor with param + + auth server result + handler for runInBackground button + handler for cancel button + handler for details button + + + + Verify if Cancel button pressed. Thread sleep until timeout expired or cancel button pressed + + + + + + Upload Data Class + + + + + Entity identifier + + + + + Project name + + + + + Project description + + + + + Gets or sets presets list + + + + + Selected preset + + + + + Gets or sets teams list + + + + + Selected team + + + + + If true - upload form was validated sucessfully and user confirm to start scanning + + + + + Represent service configuration object + + + + + Get or set service perform status + + + + + Get or set configuration property list + + + + + Get first configuration key in list + + + + + Convert ConfigurationResult from xml + + xml string + + + + + Represent service login object + + + + + Get or set service perform status + + + + + Current user session identifier + + + + + User authentification data + + + + + Represent service preset object + + + + + Get or set service perform status + + + + + Get or set list of presets + + + + + Convert PresetResult from xml + + xml string + + + + + Gets or sets query identifier + + + + + Gets or sets value indication that object received succesfull + + + + + Gets or sets query description + + + + + Save query description object to file + + + + + + Read query description from file + + + + + + Get query object from xml + + + + + + + Gets or sets query problem file name + + + + + Gets or sets query problem line position + + + + + Gets or sets query problem column position + + + + + Gets or sets query problem name + + + + + Gets or sets query problem length + + + + + Gets or sets node position + + + + + Gets or sets parent element + + + + + Gets or seta parent container + + + + + Gets or sets query report node identifier + + + + + Gets or sets query report node identifier + + + + + Gets or sets query problem file name + + + + + Gets or sets query problem line position + + + + + Gets or sets query problem column position + + + + + Gets or sets query problem path + + + + + Gets or sets query identifier + + + + + Gets or sets query Cwe identifier + + + + + Gets or sets query name + + + + + Gets or sets query group + + + + + Gets or sets query problem importance + + + + + Gets or sets query report list + + + + + Gets or sets parent element + + + + + Represent report result object + + + + + Get or set list detected source problems + + + + + Get tree list of problems where top level are severity types with personal report list + + + + + Convert ReportResult object from xml + + xml string + + + + + Run scan object + + + + + Get or set service perform status + + + + + Get or set scan identifier + + + + + Get or set status scan result + + + + + Convert RunScanResult from xml + + xml string + + + + + Scan status + + + + + Unknown status + + + + + Scan run + + + + + Scan finished + + + + + Project are queued for scan + + + + + Scan cann't be processed + + + + + Represent remote service status scan object + + + + + Get or set service perform status + + + + + Get or set scan identifier + + + + + Get or set scan status + + + + + Get or set completed work status in percent + + + + + Get or set current stage number + + + + + Get or set current stage name + + + + + Get or set current stage completed work in percent + + + + + Get or set stage message + + + + + Get or set step message + + + + + Get or set scan details + + + + + Get or set scan start time + + + + + Get or set scan end time + + + + + Get or set queue project position in scan status is 'Queue' + + + + + Convert StatusScanResult object from xml + + + + + + + Convert RunStatus object from string + + + + + + + Represent remote service team object + + + + + Service perform request successfully + + + + + Teams dictionary + + + + + Get or set service perform status + + + + + Get or set teams dictionary + + + + + Get first team name + + + + + Convert xml to TeamResult object + + + + + + + Perform background work by parallel threads to improve UI responsibility + + + + + Set the numbers of attempts to execute function in exeception occurs + + + + + Set the delay interval beetween repeat + + + + + Main background worker delegate + + + + + Main background worker funck + + + + + Relogin handler + + + + + Perform background job and show view while process executes + + View title message + If false - cancel buton in supported view was pressed + + + + Wait dialog caption message + + + + + Encrypt the given string using AES. The string can be decrypted using + DecryptStringAES(). The sharedSecret parameters must match. + + The text to encrypt. + A password used to generate a key for encryption. + + + + Decrypt the given string. Assumes the string was encrypted using + EncryptStringAES(), using an identical sharedSecret. + + The text to decrypt. + A password used to generate a key for decryption. + + + + Helper class for downloading content via HTTP + + + + + Download page content + + page url + + + + + File name to store user settings + + + + + Wait dialog progress text + + + + + Load login data + + How many times load method completed with problems + + + + + Save login info + + Login class + + + + Execute login + + + + + + Logout from service + + + + + Load stored user data + + + + + + Helper class for perspective manipulation + + + + + Perspective not exist message + + + + + Execute 'Previous Result' command + + + + + Ask user to open perspective now + + user auth data + + + + + Execute 'Show Stored' command + + + + + + + + Helper class that manipulate with stored problem description + + + + + Find specified problem description + + Problem identifier + If file description was found method returns full path to file, otherwise retutn null + + + + Main storage folder under VS path + + + + + Retutn content of specific file + + + + + + + Save file + + content + file name to save + + + + + Show Message on the top of all windows + + + + + Settings upload project params + + + + + Set upload params + + Auth user data for uploading + Selected solution project data + + + + + Helper class for scan execution + + + + + Execute scan + + Upload project folder + + + + + + + + Execute scan + + Upload project folder + + + + + + + Handler for ScanInBackground button + + + + + + + Handler for Cancel button + + + + + + + Handler for Details button + + + + + + + Class encapsulates methods for transforming XML string to system objects + + + + + Convert XML string into PresetResult object + + xml string + + + + + Convert XML string into TeamResult object + + xml string + + + + + Convert XML string into ConfigurationResult object + + xml string + + + + + Convert XML string into RunScanResult object + + xml string + + + + + Convert XML string into StatusScanResult object + + xml string + + + + + Convert XML string into PerspectiveResult object + + xml string + + + + + Convert XML string into ReportResult object + + xml string + + + + + Convert XML string into ReportQueryItemPathResult list + + + + + + + Convert XML string into QueryDescriptionResult object + + + + + + + Creates ZIP archives + + + + + Regular expression to make selection include file range + + + + + Regular expression to make selection include directory range + + + + + Compress string with Zip technology. If in process of zip generation the archive size + exceed maxAllowedZipFileSize value operation canceled. + + List of projects to zip + List of file extensions to exclude from zip + List of folders to exclude from zip + Max allowed zip file size + If maxAllowedZipFileSize value exceed function return null otherwise zip byte stream + + + + Zip a folder of files in a new zip file + + + + + Writes a single entry (file or folder) to an open zip file + + The open zip file stream + The entry name to be created + The file path of the file to be written + Open mode (share/non share) + + + + Show previous scanned result for selected project + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Icon similar to (Icon). + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to <?xml version="1.0" encoding="utf-8"?> + <root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader n [rest of string was truncated]";. + + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + LoginUserNamePassword Call Rest Api when AuthTypeUsernamePassword + + + + + Wrapper for service client + + + + + Servive client object + + + + + Constructor + + server url + + + + Close client and clear object data + + + + + Return selected problem description + + Problem identifier + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Gets or sets currently selected Node + + + + + Gets or sets currently selected report problem type + + + + + Gets or sets currently selected report + + + + + Bind object data to form controld + + + + + Set form visiblity and show specified loading message if no active + + + + + + + Generating tree view perspective representation + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Interface that represent main report view problem properties and methods + + + + + Event that fired when user binded project and changed a scan by using UI + + + + + Event that fired when user select view problem description inside control + + + + + Gets or sets currently selected problem type + + + + + Gets or sets report + + + + + Bind contols with object values + + + + + Change control activity and set loading message when control perform data binding + + Activity state + Message to show while control is perform data binding + + + + Interface that represent main problematic file entity properties and methods + + + + + Problem file name + + + + + Problem line position + + + + + Problem column position + + + + + Problem source code element name + + + + + Length of name param + + + + + Parent object container + + + + + Represent main method-properties for perspective graph view + + + + + Graph to represent on view + + + + + Find path in graph by query item data + + + + + + + Generate view representation + + + + + Gets or sets event handler on path item button click + + + + + Interface that represent main problematic file options and events + + + + + QueryItem attached to current problem + + + + + Bind view controls with new data + + + + + Event handler, attached to path buttons + + + + + Interface that represent main report view problem properties and methods + + + + + Event that fired when user select Node in tree + + + + + Event that fired when user binded project and changed a scan by using UI + + + + + Event that fired when user select view problem description inside control + + + + + Gets or sets currently selected problem type + + + + + Gets or sets report + + + + + Bind contols with object values + + + + + Change control activity and set loading message when control perform data binding + + Activity state + Message to show while control is perform data binding + + + + Added scan list control to the perspective control + + + + + + Remove scan list control from the perspective control + + + + + Control represent addin custom settings form, available through "Tools" - "Options" menu item + + + + + Login click button handler + + + + + + + Bind object data to form controls + + + + + Bind form contol values to object data + + + + + + Validate server name + + + + + + + "Restore default" button handler + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Control represent addin custom settings form, available through "Tools" - "Options" menu item + + + + + Gets or sets user decision value to open perspective immediately after scan complete + + + + + Save button click handler + + + + + + + Bind object data to form controls + + + + + Bind form control values to object data + + + + + + Validate set of excluded extensions: not empty + + + + + + + Validate set of excluded folders: not empty + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Graph view + + + + + Used for restoring scroll X position aftet rebinding + + + + + Used for restoring scroll Y position after rebinding + + + + + Gets or sets graph object + + + + + Bind object to view representation + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + User control to visualize problem path flow + + + + + Path click handler + + + + + Problem flow paths + + + + + Gets or sets problem flow paths + + + + + Sets handler for path button click event + + + + + Bind object data to form controls. Generate path sequance + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Gets or sets currently selected report problem type + + + + + Gets or sets currently selected report + + + + + Bind object data to form controld + + + + + Set form visiblity and show specified loading message if no active + + + + + + + Generating tree view perspective representation + + + + + + Set form activity + + + + + + + Handler attached to mouse up button in tree control + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represent upload view obligatory methods and properties + + + + + Represent login view obligatory properties and methods + + + + + Get or set entity identitifier + + + + + Gets or sets to use secured connection + + + + + Get or set server domain name (i.e. example.com) + + + + + Represent scan view obligatory properties and methods + + + + + Get or set entity identifier + + + + + Get or set scan progress + + + + + Get or set to run scan in background mode + + + + + Get or set form visibility + + + + + Increment progress for num positions + + position + + + + Clear progress and start from begin + + + + + RunInBackground button handler + + + + + Cancel buttom handler + + + + + Details button handler + + + + + Represent upload view obligatory methods and properties + + + + + Get or set entity identifier + + + + + Get or set project name + + + + + Get or set project description + + + + + Get or set selected preset + + + + + Gets or sets presets list + + + + + Get or set selected team + + + + + Gets or sets teams list + + + + + Gets or sets progress title message + + + + + Gets or sets cancel button handler + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Gets or sets custom entity identifier + + + + + Sets progress bar state + + + + + Gets alwaysInBackground checkbox state + + + + + Gets or sets dialog visibility + + + + + Gets or sets RunInBackground button handler + + + + + Gets or sets cancel button handler + + + + + Gets or sets details button handler + + + + + Show modal dialog + + + + + + Show modal dialog + + Parent view container + + + + + Show non-modal dialog + + + + + Show non-modal dialog + + Parent view container + + + + Close view + + + + + Increment progress state + + increment value + + + + Calculate percent difference by current and max values + + + + + + + + Update project name delegate function. Used for async calls + + + + + + Update project scan progress delegate function. Used for async calls + + + + + + Update project project scan progress delegate function. Used for async calls + + + + + + Update current iteration name delegate function. Used for async calls + + + + + + Update current iteration progress status delegate function. Used for async calls + + + + + + Update progress status delegate function. Used for async calls + + + + + + Increment progress delegate function. Used for async calls + + + + + + Clear progress. Fill by empty values + + + + + Close view + + + + + Set dialog visibility delegate function. Used for async calls + + + + + + Cancel button event handler + + + + + + + Details button event handler + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represent custom button control to place inside graph control + + + + + Execute graph drawing + + + + + Generate sequence of controls for graph path + + + + + + Generate sequence of controls for graph path item + + + + + + + + SubmitUserFrm + + + + + SubmitUserFrm + + + + + CloseForm + + + + + Close dialog + + + + + Show modal dialog + + + + + + Gets or sets User Name + + + + + Gets or sets User Name + + + + + Show modal dialog + + Parent view container + + + + + Show non modal dialog + + + + + Show non modal dialog + + Parent view container + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Project name allowed format RegEx + + + + + Gets or sets custom identity + + + + + Gets or sets project name + + + + + Gets or sets project description + + + + + Gets or sets selected preset + + + + + Gets or sets selected team + + + + + Gets or sets preset list + + + + + Gets or sets team list + + + + + Close dialog + + + + + Show modal dialog + + + + + + Show modal dialog + + Parent view container + + + + + Show non modal dialog + + + + + Show non modal dialog + + Parent view container + + + + Validation handler to control project name entered value + + + + + + + Validation handler to control thar preset item was selected + + + + + + + Validation handler to control thar team item was selected + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Delegate mrthod. Used for async call Cancel handler function + + + + + Gets or sets dialog process name + + + + + Sets cancel button click handler + + + + + Close view + + + + + Show modal dialog view + + + + + + Show modal dialog view + + Parent container view + + + + + Show non-modal dialog view + + + + + Show non-modal dialog view + + Parent container view + + + + Cancel button click handler + + + + + + + Change cancel button state after button pressed + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/CxViewerAction/Dispatchers/Dispatcher.cs b/CxActionShared/Dispatchers/Dispatcher.cs similarity index 96% rename from CxViewerAction/Dispatchers/Dispatcher.cs rename to CxActionShared/Dispatchers/Dispatcher.cs index e46aecfb..696685da 100644 --- a/CxViewerAction/Dispatchers/Dispatcher.cs +++ b/CxActionShared/Dispatchers/Dispatcher.cs @@ -1,44 +1,44 @@ -using System; -using System.Collections.Generic; -using CxViewerAction.Commands; -using CxViewerAction.Entities; - -// using CxViewerAction.CommandExecutors; - -namespace CxViewerAction.Dispatchers -{ - /// - /// Handler for excution - /// - /// - /// - public delegate ICommandResult ExecuteCommandHandler(IEntity entity); - - /// - /// Represent dispatcher object - /// - public class Dispatcher : IDispatcher - { - public static Dictionary CommandExecutors = new Dictionary(); - - #region IDispatcher Members - - /// - /// Dispatch command - /// - /// - /// - public ICommandResult Dispatch(IEntity entity) - { - ExecuteCommandHandler handler; - CommandExecutors.TryGetValue(entity.GetType(), out handler); - - if(handler == null) - throw new ArgumentOutOfRangeException(string.Format("{0} entity is not supported.", entity.GetType())); - - return handler.Invoke(entity); - } - - #endregion - } -} +using System; +using System.Collections.Generic; +using CxViewerAction.Commands; +using CxViewerAction.Entities; + +// using CxViewerAction.CommandExecutors; + +namespace CxViewerAction.Dispatchers +{ + /// + /// Handler for excution + /// + /// + /// + public delegate ICommandResult ExecuteCommandHandler(IEntity entity); + + /// + /// Represent dispatcher object + /// + public class Dispatcher : IDispatcher + { + public static Dictionary CommandExecutors = new Dictionary(); + + #region IDispatcher Members + + /// + /// Dispatch command + /// + /// + /// + public ICommandResult Dispatch(IEntity entity) + { + ExecuteCommandHandler handler; + CommandExecutors.TryGetValue(entity.GetType(), out handler); + + if(handler == null) + throw new ArgumentOutOfRangeException(string.Format("{0} entity is not supported.", entity.GetType())); + + return handler.Invoke(entity); + } + + #endregion + } +} diff --git a/CxViewerAction/Entities/BindProjectEntity.cs b/CxActionShared/Entities/BindProjectEntity.cs similarity index 95% rename from CxViewerAction/Entities/BindProjectEntity.cs rename to CxActionShared/Entities/BindProjectEntity.cs index bb9705e3..d90b228c 100644 --- a/CxViewerAction/Entities/BindProjectEntity.cs +++ b/CxActionShared/Entities/BindProjectEntity.cs @@ -1,54 +1,54 @@ -using System; -using System.Collections.Generic; -using System.Text; -using CxViewerAction.CxVSWebService; -using System.Windows.Forms; - -namespace CxViewerAction.Entities -{ - public class BindProjectEntity : IEntity - { - #region Variables - - static bool isUploading; - CxWSResponseProjectsDisplayData cxProjectsDisplayData; - DialogResult commandResult; - - #endregion - - #region Properties - - public bool IsUploading - { - get { return isUploading; } - set { isUploading = value; } - } - - public CxWSResponseProjectsDisplayData CxProjectsDisplayData - { - get { return cxProjectsDisplayData; } - set { cxProjectsDisplayData = value; } - } - - ProjectDisplayData selectedProject; - public ProjectDisplayData SelectedProject - { - get { return selectedProject; } - set { selectedProject = value; } - } - - public DialogResult CommandResult - { - get { return commandResult; } - set { commandResult = value; } - } - - public bool isPublic - { - get; - set; - } - - #endregion - } -} +using System; +using System.Collections.Generic; +using System.Text; +using CxViewerAction.CxVSWebService; +using System.Windows.Forms; + +namespace CxViewerAction.Entities +{ + public class BindProjectEntity : IEntity + { + #region Variables + + static bool isUploading; + CxWSResponseProjectsDisplayData cxProjectsDisplayData; + DialogResult commandResult; + + #endregion + + #region Properties + + public bool IsUploading + { + get { return isUploading; } + set { isUploading = value; } + } + + public CxWSResponseProjectsDisplayData CxProjectsDisplayData + { + get { return cxProjectsDisplayData; } + set { cxProjectsDisplayData = value; } + } + + ProjectDisplayData selectedProject; + public ProjectDisplayData SelectedProject + { + get { return selectedProject; } + set { selectedProject = value; } + } + + public DialogResult CommandResult + { + get { return commandResult; } + set { commandResult = value; } + } + + public bool isPublic + { + get; + set; + } + + #endregion + } +} diff --git a/CxViewerAction/Entities/EntityId.cs b/CxActionShared/Entities/EntityId.cs similarity index 96% rename from CxViewerAction/Entities/EntityId.cs rename to CxActionShared/Entities/EntityId.cs index eb79533f..21293532 100644 --- a/CxViewerAction/Entities/EntityId.cs +++ b/CxActionShared/Entities/EntityId.cs @@ -1,350 +1,350 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Text; -using System.Globalization; - -namespace CxViewerAction.Entities -{ - /// - /// Entity data - /// - public struct EntityId : IEquatable, IComparable, IComparable, IConvertible - { - object _Id; - - public EntityId(object id) - { - if (id is DBNull) - { - this._Id = null; - return; - } - if (id is EntityId) - { - this._Id = ((EntityId)id)._Id; - return; - } - - this._Id = id; - } - - public EntityId(EntityId id) - { - this._Id = id._Id; - } - - public object Id - { - get - { - return this._Id; - } - } - - public bool IsEmpty - { - get - { - return this._Id == null || this._Id == DBNull.Value; - } - } - - public object DbValue - { - get - { - if (this.IsEmpty) - return DBNull.Value; - else - return this._Id; - } - } - - public T GetId(T nullValue) - { - if (this.IsEmpty) - return nullValue; - else - return (T)this._Id; - } - - public override bool Equals(object right) - { - return this.Equals(new EntityId(right)); - } - - public bool Equals(EntityId id) - { - if (object.ReferenceEquals(this, id)) - return true; - - if (this.IsEmpty && id.IsEmpty) - return true; - - if (this._Id == id._Id) - return true; - - if (this._Id != null && id._Id != null && this._Id.GetType() != id._Id.GetType()) - return false; - - return ((IComparable)this).CompareTo(id) == 0; - } - - public override int GetHashCode() - { - if (!this.IsEmpty) - return this._Id.GetHashCode(); - - return base.GetHashCode(); - } - - public override string ToString() - { - if (this.IsEmpty) - return string.Empty; - else - return Convert.ToString(this._Id.ToString(), CultureInfo.InvariantCulture); - } - - static public bool operator ==(EntityId left, EntityId right) - { - return left.Equals(right); - } - - static public bool operator ==(object left, EntityId right) - { - return right.Equals(left); - } - - static public bool operator ==(EntityId left, object right) - { - return left.Equals(right); - } - - static public bool operator !=(EntityId left, EntityId right) - { - return !left.Equals(right); - } - - static public bool operator !=(object left, EntityId right) - { - return !right.Equals(left); - } - - static public bool operator !=(EntityId left, object right) - { - return !left.Equals(right); - } - - static public bool operator >(EntityId left, EntityId right) - { - return (left as IComparable).CompareTo(right) > 0; - } - - static public bool operator <(EntityId left, EntityId right) - { - return (left as IComparable).CompareTo(right) < 0; - } - - static public bool operator >=(EntityId left, EntityId right) - { - return left > right || left == right; - } - - static public bool operator <=(EntityId left, EntityId right) - { - return left < right || left == right; - } - - static public EntityId Empty - { - get - { - return new EntityId(); - } - } - - static public implicit operator EntityId(int intId) - { - return new EntityId((object)intId); - } - - static public explicit operator int(EntityId entityId) - { - return (int)entityId._Id; - } - - static public string JoinIDs(EntityId[] aIDs) - { - StringBuilder lBuilder = new StringBuilder(); - foreach (EntityId lID in aIDs) - { - if (lID.IsEmpty) - continue; - - if (lBuilder.Length > 0) - { - lBuilder.Append(","); - } - - lBuilder.Append(lID.ToString()); - } - return lBuilder.ToString(); - } - - #region IEquatable Members - - bool IEquatable.Equals(EntityId id) - { - return this.Equals(id); - } - - #endregion - - #region IComparable Members - - int IComparable.CompareTo(EntityId cmpTo) - { - if (this._Id == cmpTo._Id) - return 0; - - if (this.IsEmpty && !cmpTo.IsEmpty) - return -1; - - if (!this.IsEmpty && cmpTo.IsEmpty) - return 1; - - - - if (this._Id is IComparable) - return ((IComparable)this._Id).CompareTo(cmpTo._Id); - else if (cmpTo._Id is IComparable) - return -((IComparable)cmpTo._Id).CompareTo(this._Id); - - throw new ArgumentException( - String.Format("Can't compare EntityID of type {0} with EntityID of type {1}", - this._Id.GetType().ToString(), - cmpTo._Id.GetType().ToString())); - - } - - #endregion - - #region IComparable Members - - int IComparable.CompareTo(object obj) - { - return (this as IComparable).CompareTo(new EntityId(obj)); - - } - - #endregion - - #region IConvertible Members - - TypeCode IConvertible.GetTypeCode() - { - if (this.IsEmpty) - return TypeCode.Object; - - IConvertible lConv; - lConv = this._Id as IConvertible; - if (lConv == null) - return TypeCode.Object; - else return lConv.GetTypeCode(); - } - - bool IConvertible.ToBoolean(IFormatProvider provider) - { - if (this.IsEmpty) - return false; - if (this > 0) - return true; - return false; - } - - byte IConvertible.ToByte(IFormatProvider provider) - { - throw new Exception("The method or operation is not implemented."); - } - - char IConvertible.ToChar(IFormatProvider provider) - { - throw new Exception("The method or operation is not implemented."); - } - - DateTime IConvertible.ToDateTime(IFormatProvider provider) - { - throw new Exception("The method or operation is not implemented."); - } - - decimal IConvertible.ToDecimal(IFormatProvider provider) - { - throw new Exception("The method or operation is not implemented."); - } - - double IConvertible.ToDouble(IFormatProvider provider) - { - throw new Exception("The method or operation is not implemented."); - } - - short IConvertible.ToInt16(IFormatProvider provider) - { - throw new Exception("The method or operation is not implemented."); - } - - int IConvertible.ToInt32(IFormatProvider provider) - { - if (this.IsEmpty) return -1; - - IConvertible lConv; - lConv = this._Id as IConvertible; - if (lConv == null) - return (-1 as IConvertible).ToInt32(provider); - else return lConv.ToInt32(provider); - } - - long IConvertible.ToInt64(IFormatProvider provider) - { - throw new Exception("The method or operation is not implemented."); - } - - sbyte IConvertible.ToSByte(IFormatProvider provider) - { - throw new Exception("The method or operation is not implemented."); - } - - float IConvertible.ToSingle(IFormatProvider provider) - { - throw new Exception("The method or operation is not implemented."); - } - - string IConvertible.ToString(IFormatProvider provider) - { - return this.ToString(); - } - - object IConvertible.ToType(Type conversionType, IFormatProvider provider) - { - throw new Exception("The method or operation is not implemented."); - } - - ushort IConvertible.ToUInt16(IFormatProvider provider) - { - throw new Exception("The method or operation is not implemented."); - } - - uint IConvertible.ToUInt32(IFormatProvider provider) - { - throw new Exception("The method or operation is not implemented."); - } - - ulong IConvertible.ToUInt64(IFormatProvider provider) - { - throw new Exception("The method or operation is not implemented."); - } - - #endregion - } +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Text; +using System.Globalization; + +namespace CxViewerAction.Entities +{ + /// + /// Entity data + /// + public struct EntityId : IEquatable, IComparable, IComparable, IConvertible + { + object _Id; + + public EntityId(object id) + { + if (id is DBNull) + { + this._Id = null; + return; + } + if (id is EntityId) + { + this._Id = ((EntityId)id)._Id; + return; + } + + this._Id = id; + } + + public EntityId(EntityId id) + { + this._Id = id._Id; + } + + public object Id + { + get + { + return this._Id; + } + } + + public bool IsEmpty + { + get + { + return this._Id == null || this._Id == DBNull.Value; + } + } + + public object DbValue + { + get + { + if (this.IsEmpty) + return DBNull.Value; + else + return this._Id; + } + } + + public T GetId(T nullValue) + { + if (this.IsEmpty) + return nullValue; + else + return (T)this._Id; + } + + public override bool Equals(object right) + { + return this.Equals(new EntityId(right)); + } + + public bool Equals(EntityId id) + { + if (object.ReferenceEquals(this, id)) + return true; + + if (this.IsEmpty && id.IsEmpty) + return true; + + if (this._Id == id._Id) + return true; + + if (this._Id != null && id._Id != null && this._Id.GetType() != id._Id.GetType()) + return false; + + return ((IComparable)this).CompareTo(id) == 0; + } + + public override int GetHashCode() + { + if (!this.IsEmpty) + return this._Id.GetHashCode(); + + return base.GetHashCode(); + } + + public override string ToString() + { + if (this.IsEmpty) + return string.Empty; + else + return Convert.ToString(this._Id.ToString(), CultureInfo.InvariantCulture); + } + + static public bool operator ==(EntityId left, EntityId right) + { + return left.Equals(right); + } + + static public bool operator ==(object left, EntityId right) + { + return right.Equals(left); + } + + static public bool operator ==(EntityId left, object right) + { + return left.Equals(right); + } + + static public bool operator !=(EntityId left, EntityId right) + { + return !left.Equals(right); + } + + static public bool operator !=(object left, EntityId right) + { + return !right.Equals(left); + } + + static public bool operator !=(EntityId left, object right) + { + return !left.Equals(right); + } + + static public bool operator >(EntityId left, EntityId right) + { + return (left as IComparable).CompareTo(right) > 0; + } + + static public bool operator <(EntityId left, EntityId right) + { + return (left as IComparable).CompareTo(right) < 0; + } + + static public bool operator >=(EntityId left, EntityId right) + { + return left > right || left == right; + } + + static public bool operator <=(EntityId left, EntityId right) + { + return left < right || left == right; + } + + static public EntityId Empty + { + get + { + return new EntityId(); + } + } + + static public implicit operator EntityId(int intId) + { + return new EntityId((object)intId); + } + + static public explicit operator int(EntityId entityId) + { + return (int)entityId._Id; + } + + static public string JoinIDs(EntityId[] aIDs) + { + StringBuilder lBuilder = new StringBuilder(); + foreach (EntityId lID in aIDs) + { + if (lID.IsEmpty) + continue; + + if (lBuilder.Length > 0) + { + lBuilder.Append(","); + } + + lBuilder.Append(lID.ToString()); + } + return lBuilder.ToString(); + } + + #region IEquatable Members + + bool IEquatable.Equals(EntityId id) + { + return this.Equals(id); + } + + #endregion + + #region IComparable Members + + int IComparable.CompareTo(EntityId cmpTo) + { + if (this._Id == cmpTo._Id) + return 0; + + if (this.IsEmpty && !cmpTo.IsEmpty) + return -1; + + if (!this.IsEmpty && cmpTo.IsEmpty) + return 1; + + + + if (this._Id is IComparable) + return ((IComparable)this._Id).CompareTo(cmpTo._Id); + else if (cmpTo._Id is IComparable) + return -((IComparable)cmpTo._Id).CompareTo(this._Id); + + throw new ArgumentException( + String.Format("Can't compare EntityID of type {0} with EntityID of type {1}", + this._Id.GetType().ToString(), + cmpTo._Id.GetType().ToString())); + + } + + #endregion + + #region IComparable Members + + int IComparable.CompareTo(object obj) + { + return (this as IComparable).CompareTo(new EntityId(obj)); + + } + + #endregion + + #region IConvertible Members + + TypeCode IConvertible.GetTypeCode() + { + if (this.IsEmpty) + return TypeCode.Object; + + IConvertible lConv; + lConv = this._Id as IConvertible; + if (lConv == null) + return TypeCode.Object; + else return lConv.GetTypeCode(); + } + + bool IConvertible.ToBoolean(IFormatProvider provider) + { + if (this.IsEmpty) + return false; + if (this > 0) + return true; + return false; + } + + byte IConvertible.ToByte(IFormatProvider provider) + { + throw new Exception("The method or operation is not implemented."); + } + + char IConvertible.ToChar(IFormatProvider provider) + { + throw new Exception("The method or operation is not implemented."); + } + + DateTime IConvertible.ToDateTime(IFormatProvider provider) + { + throw new Exception("The method or operation is not implemented."); + } + + decimal IConvertible.ToDecimal(IFormatProvider provider) + { + throw new Exception("The method or operation is not implemented."); + } + + double IConvertible.ToDouble(IFormatProvider provider) + { + throw new Exception("The method or operation is not implemented."); + } + + short IConvertible.ToInt16(IFormatProvider provider) + { + throw new Exception("The method or operation is not implemented."); + } + + int IConvertible.ToInt32(IFormatProvider provider) + { + if (this.IsEmpty) return -1; + + IConvertible lConv; + lConv = this._Id as IConvertible; + if (lConv == null) + return (-1 as IConvertible).ToInt32(provider); + else return lConv.ToInt32(provider); + } + + long IConvertible.ToInt64(IFormatProvider provider) + { + throw new Exception("The method or operation is not implemented."); + } + + sbyte IConvertible.ToSByte(IFormatProvider provider) + { + throw new Exception("The method or operation is not implemented."); + } + + float IConvertible.ToSingle(IFormatProvider provider) + { + throw new Exception("The method or operation is not implemented."); + } + + string IConvertible.ToString(IFormatProvider provider) + { + return this.ToString(); + } + + object IConvertible.ToType(Type conversionType, IFormatProvider provider) + { + throw new Exception("The method or operation is not implemented."); + } + + ushort IConvertible.ToUInt16(IFormatProvider provider) + { + throw new Exception("The method or operation is not implemented."); + } + + uint IConvertible.ToUInt32(IFormatProvider provider) + { + throw new Exception("The method or operation is not implemented."); + } + + ulong IConvertible.ToUInt64(IFormatProvider provider) + { + throw new Exception("The method or operation is not implemented."); + } + + #endregion + } } \ No newline at end of file diff --git a/CxViewerAction/Entities/Enum/ProjectScanStatuses.cs b/CxActionShared/Entities/Enum/ProjectScanStatuses.cs similarity index 94% rename from CxViewerAction/Entities/Enum/ProjectScanStatuses.cs rename to CxActionShared/Entities/Enum/ProjectScanStatuses.cs index 4680cc98..b71ce76c 100644 --- a/CxViewerAction/Entities/Enum/ProjectScanStatuses.cs +++ b/CxActionShared/Entities/Enum/ProjectScanStatuses.cs @@ -1,13 +1,13 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace CxViewerAction.Entities.Enum -{ - public enum ProjectScanStatuses - { - CanceledByUser, - Error, - Success - } -} +using System; +using System.Collections.Generic; +using System.Text; + +namespace CxViewerAction.Entities.Enum +{ + public enum ProjectScanStatuses + { + CanceledByUser, + Error, + Success + } +} diff --git a/CxViewerAction/Entities/Enum/SimpleDecision.cs b/CxActionShared/Entities/Enum/SimpleDecision.cs similarity index 94% rename from CxViewerAction/Entities/Enum/SimpleDecision.cs rename to CxActionShared/Entities/Enum/SimpleDecision.cs index 08218c70..f9a5419d 100644 --- a/CxViewerAction/Entities/Enum/SimpleDecision.cs +++ b/CxActionShared/Entities/Enum/SimpleDecision.cs @@ -1,27 +1,27 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace CxViewerAction.Entities.Enum -{ - /// - /// Represent user choise - /// - public enum SimpleDecision - { - /// - /// Not selected - /// - None = 0, - - /// - /// Agree decision - /// - Yes = 1, - - /// - /// Disagree deicission - /// - No = 2 - } -} +using System; +using System.Collections.Generic; +using System.Text; + +namespace CxViewerAction.Entities.Enum +{ + /// + /// Represent user choise + /// + public enum SimpleDecision + { + /// + /// Not selected + /// + None = 0, + + /// + /// Agree decision + /// + Yes = 1, + + /// + /// Disagree deicission + /// + No = 2 + } +} diff --git a/CxViewerAction/Entities/Enumeration/SerializableDictionary.cs b/CxActionShared/Entities/Enumeration/SerializableDictionary.cs similarity index 96% rename from CxViewerAction/Entities/Enumeration/SerializableDictionary.cs rename to CxActionShared/Entities/Enumeration/SerializableDictionary.cs index 7bd85ee2..0907175a 100644 --- a/CxViewerAction/Entities/Enumeration/SerializableDictionary.cs +++ b/CxActionShared/Entities/Enumeration/SerializableDictionary.cs @@ -1,84 +1,84 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Xml.Serialization; - -namespace CxViewerAction.Entities.Enumeration -{ - /// - /// Class represent Dicitionary object with serialization capability - /// - /// - /// - [XmlRoot("dictionary")] - public class SerializableDictionary : Dictionary, IXmlSerializable - { - #region IXmlSerializable Members - public System.Xml.Schema.XmlSchema GetSchema() - { - return null; - } - - /// - /// Read data xml in serialization process - /// - /// - public void ReadXml(System.Xml.XmlReader reader) - { - XmlSerializer keySerializer = new XmlSerializer(typeof(TKey)); - XmlSerializer valueSerializer = new XmlSerializer(typeof(TValue)); - - bool wasEmpty = reader.IsEmptyElement; - reader.Read(); - - if (wasEmpty) - return; - - while (reader.NodeType != System.Xml.XmlNodeType.EndElement) - { - reader.ReadStartElement("item"); - - reader.ReadStartElement("key"); - TKey key = (TKey)keySerializer.Deserialize(reader); - reader.ReadEndElement(); - - reader.ReadStartElement("value"); - TValue value = (TValue)valueSerializer.Deserialize(reader); - reader.ReadEndElement(); - - this.Add(key, value); - - reader.ReadEndElement(); - reader.MoveToContent(); - } - reader.ReadEndElement(); - } - - /// - /// Write data xml in serialization process - /// - /// - public void WriteXml(System.Xml.XmlWriter writer) - { - XmlSerializer keySerializer = new XmlSerializer(typeof(TKey)); - XmlSerializer valueSerializer = new XmlSerializer(typeof(TValue)); - - foreach (TKey key in this.Keys) - { - writer.WriteStartElement("item"); - - writer.WriteStartElement("key"); - keySerializer.Serialize(writer, key); - writer.WriteEndElement(); - - writer.WriteStartElement("value"); - TValue value = this[key]; - valueSerializer.Serialize(writer, value); - writer.WriteEndElement(); - - writer.WriteEndElement(); - } - } - #endregion - } -} +using System; +using System.Collections.Generic; +using System.Text; +using System.Xml.Serialization; + +namespace CxViewerAction.Entities.Enumeration +{ + /// + /// Class represent Dicitionary object with serialization capability + /// + /// + /// + [XmlRoot("dictionary")] + public class SerializableDictionary : Dictionary, IXmlSerializable + { + #region IXmlSerializable Members + public System.Xml.Schema.XmlSchema GetSchema() + { + return null; + } + + /// + /// Read data xml in serialization process + /// + /// + public void ReadXml(System.Xml.XmlReader reader) + { + XmlSerializer keySerializer = new XmlSerializer(typeof(TKey)); + XmlSerializer valueSerializer = new XmlSerializer(typeof(TValue)); + + bool wasEmpty = reader.IsEmptyElement; + reader.Read(); + + if (wasEmpty) + return; + + while (reader.NodeType != System.Xml.XmlNodeType.EndElement) + { + reader.ReadStartElement("item"); + + reader.ReadStartElement("key"); + TKey key = (TKey)keySerializer.Deserialize(reader); + reader.ReadEndElement(); + + reader.ReadStartElement("value"); + TValue value = (TValue)valueSerializer.Deserialize(reader); + reader.ReadEndElement(); + + this.Add(key, value); + + reader.ReadEndElement(); + reader.MoveToContent(); + } + reader.ReadEndElement(); + } + + /// + /// Write data xml in serialization process + /// + /// + public void WriteXml(System.Xml.XmlWriter writer) + { + XmlSerializer keySerializer = new XmlSerializer(typeof(TKey)); + XmlSerializer valueSerializer = new XmlSerializer(typeof(TValue)); + + foreach (TKey key in this.Keys) + { + writer.WriteStartElement("item"); + + writer.WriteStartElement("key"); + keySerializer.Serialize(writer, key); + writer.WriteEndElement(); + + writer.WriteStartElement("value"); + TValue value = this[key]; + valueSerializer.Serialize(writer, value); + writer.WriteEndElement(); + + writer.WriteEndElement(); + } + } + #endregion + } +} diff --git a/CxViewerAction/Entities/FormEntity/ScanProgress.cs b/CxActionShared/Entities/FormEntity/ScanProgress.cs similarity index 96% rename from CxViewerAction/Entities/FormEntity/ScanProgress.cs rename to CxActionShared/Entities/FormEntity/ScanProgress.cs index 38763768..681e34cf 100644 --- a/CxViewerAction/Entities/FormEntity/ScanProgress.cs +++ b/CxActionShared/Entities/FormEntity/ScanProgress.cs @@ -1,147 +1,147 @@ -using System; -using System.Collections.Generic; - -using System.Text; - -namespace CxViewerAction.Entities.FormEntity -{ - /// - /// Represent scanb dialod data - /// - public class ScanProgress - { - #region [Private Members] - - private string _projectName = string.Empty; - private int _startPosition = 0; - private int _endPosition = 0; - private int _currentPosition = 0; - private string _runStatus = string.Empty; - private string _currentStageName = string.Empty; - private string _currentStageMessage = string.Empty; - private int _currentStagePercent = 0; - private int _currentStageNum = 0; - - #endregion - - #region [Public Properties] - - /// - /// Scanned project name - /// - public string ProjectName - { - get { return _projectName; } - set { _projectName = value; } - } - - /// - /// Start position in progress - /// - public int StartPosition - { - get { return _startPosition; } - set { _startPosition = value; } - } - - /// - /// End position in progress - /// - public int EndPosition - { - get { return _endPosition; } - set { _endPosition = value; } - } - - /// - /// Current progress position - /// - public int CurrentPosition - { - get { return _currentPosition; } - set { _currentPosition = value; } - } - - /// - /// Current status activity name - /// - public string RunStatus - { - get { return _runStatus; } - set { _runStatus = value; } - } - - /// - /// Current stage - /// - public string CurrentStageName - { - get { return _currentStageName; } - set { _currentStageName = value; } - } - - /// - /// Current stage message - /// - public string CurrentStageMessage - { - get { return _currentStageMessage; } - set { _currentStageMessage = value; } - } - - /// - /// Current stage complete percent - /// - public int CurrentStagePercent - { - get { return _currentStagePercent; } - set { _currentStagePercent = value; } - } - - /// - /// Current stage number - /// - public int CurrentStageNum - { - get { return _currentStageNum; } - set { _currentStageNum = value; } - } - - #endregion - - public ScanProgress() - { - } - - public ScanProgress(int startPosition, int endPosition, int currentPosition) - { - _startPosition = startPosition; - _endPosition = endPosition; - _currentPosition = currentPosition; - } - - public ScanProgress(string projectName, string runStatus, string currentStageMessage, int startPosition, int endPosition, int currentPosition) - { - _projectName = projectName; - _runStatus = runStatus; - _currentStageMessage = currentStageMessage; - _startPosition = startPosition; - _endPosition = endPosition; - _currentPosition = currentPosition; - - } - - public ScanProgress(string projectName, string runStatus, string currentStageName, string currentStageMessage, int currentStagePercent, int startPosition, int endPosition, int currentPosition) - { - _projectName = projectName; - _runStatus = runStatus; - _currentStageName = currentStageName; - _currentStageMessage = currentStageMessage; - _currentStagePercent = currentStagePercent; - _startPosition = startPosition; - _endPosition = endPosition; - _currentPosition = currentPosition; - - } - } -} +using System; +using System.Collections.Generic; + +using System.Text; + +namespace CxViewerAction.Entities.FormEntity +{ + /// + /// Represent scanb dialod data + /// + public class ScanProgress + { + #region [Private Members] + + private string _projectName = string.Empty; + private int _startPosition = 0; + private int _endPosition = 0; + private int _currentPosition = 0; + private string _runStatus = string.Empty; + private string _currentStageName = string.Empty; + private string _currentStageMessage = string.Empty; + private int _currentStagePercent = 0; + private int _currentStageNum = 0; + + #endregion + + #region [Public Properties] + + /// + /// Scanned project name + /// + public string ProjectName + { + get { return _projectName; } + set { _projectName = value; } + } + + /// + /// Start position in progress + /// + public int StartPosition + { + get { return _startPosition; } + set { _startPosition = value; } + } + + /// + /// End position in progress + /// + public int EndPosition + { + get { return _endPosition; } + set { _endPosition = value; } + } + + /// + /// Current progress position + /// + public int CurrentPosition + { + get { return _currentPosition; } + set { _currentPosition = value; } + } + + /// + /// Current status activity name + /// + public string RunStatus + { + get { return _runStatus; } + set { _runStatus = value; } + } + + /// + /// Current stage + /// + public string CurrentStageName + { + get { return _currentStageName; } + set { _currentStageName = value; } + } + + /// + /// Current stage message + /// + public string CurrentStageMessage + { + get { return _currentStageMessage; } + set { _currentStageMessage = value; } + } + + /// + /// Current stage complete percent + /// + public int CurrentStagePercent + { + get { return _currentStagePercent; } + set { _currentStagePercent = value; } + } + + /// + /// Current stage number + /// + public int CurrentStageNum + { + get { return _currentStageNum; } + set { _currentStageNum = value; } + } + + #endregion + + public ScanProgress() + { + } + + public ScanProgress(int startPosition, int endPosition, int currentPosition) + { + _startPosition = startPosition; + _endPosition = endPosition; + _currentPosition = currentPosition; + } + + public ScanProgress(string projectName, string runStatus, string currentStageMessage, int startPosition, int endPosition, int currentPosition) + { + _projectName = projectName; + _runStatus = runStatus; + _currentStageMessage = currentStageMessage; + _startPosition = startPosition; + _endPosition = endPosition; + _currentPosition = currentPosition; + + } + + public ScanProgress(string projectName, string runStatus, string currentStageName, string currentStageMessage, int currentStagePercent, int startPosition, int endPosition, int currentPosition) + { + _projectName = projectName; + _runStatus = runStatus; + _currentStageName = currentStageName; + _currentStageMessage = currentStageMessage; + _currentStagePercent = currentStagePercent; + _startPosition = startPosition; + _endPosition = endPosition; + _currentPosition = currentPosition; + + } + } +} diff --git a/CxViewerAction/Entities/Graph.cs b/CxActionShared/Entities/Graph.cs similarity index 96% rename from CxViewerAction/Entities/Graph.cs rename to CxActionShared/Entities/Graph.cs index e442808f..82930e23 100644 --- a/CxViewerAction/Entities/Graph.cs +++ b/CxActionShared/Entities/Graph.cs @@ -1,462 +1,462 @@ -using System; -using CxViewerAction.BaseInterfaces; -using System.Collections.Generic; -using CxViewerAction.Entities.WebServiceEntity; -using CxViewerAction.Helpers; - -namespace CxViewerAction.Entities -{ - /// - /// Ordered graph data representation - /// - public class Graph : IGraph - { - #region [Private members] - - private List _paths = null; - private ReportQuerySeverityType _severity = ReportQuerySeverityType.None; - private int _maxRelations = 2; - - #endregion - - #region [Constructors] - - public Graph() - { - } - - public Graph(ReportQueryResult query) - { - IGraph graph = GraphHelper.Convert(query); - - _paths = graph.Paths; - _severity = graph.Severity; - _maxRelations = graph.MaxRelations; - } - - public Graph(ReportQueryItemResult queryItem) - { - _paths = new List(); - _paths.Add((GraphPath)GraphHelper.Convert(queryItem, 0)); - _severity = queryItem.Query.Severity; - } - - public Graph(TreeNodeData treeNode) - { - IGraph graph = GraphHelper.Convert(treeNode); - - _paths = graph.Paths; - _severity = graph.Severity; - _maxRelations = graph.MaxRelations; - } - - - #endregion - - #region [IGraph implementation] - public IGraphPath Current - { - get - { - throw new NotImplementedException(); - } - set - { - throw new NotImplementedException(); - } - } - - public int Width - { - get { return _paths.Count; } - } - - public int Height - { - get - { - int max = 0; - - foreach (IGraphPath path in _paths) - { - if (path.DirectFlow.Count > max) - max = path.DirectFlow.Count; - } - - return max; - } - } - - public List Paths - { - get { return _paths; } - set { _paths = value; } - } - - public int MaxRelations - { - get { return _maxRelations; } - } - - public System.Drawing.Point GetPosition(IGraphItem item) - { - throw new NotImplementedException(); - } - - public void AddNewPath(IGraphPath path) - { - if (_paths == null) - _paths = new List(); - - _paths.Add((GraphPath)path); - - AddRelations(); - } - #endregion - - #region [Private methods] - - /// - /// Find item dependences in previous paths - /// - private void AddRelations() - { - if (_paths.Count <= 1) - return; - - IGraphItem related = null; - foreach (IGraphItem graphItem in _paths[_paths.Count - 1].DirectFlow) - { - for (int i = 0; i < _paths.Count - 1; i++) - { - foreach (IGraphItem prevItem in _paths[i].DirectFlow) - { - if (prevItem.CompareTo(graphItem) == 0) - { - related = prevItem; - - while (related.RelatedTo != null) - related = related.RelatedTo; - - graphItem.IsPrimary = false; - graphItem.RelatedTo = related; - related.RelationsFrom.Add((GraphItem)graphItem); - - if (_maxRelations < related.RelationsFrom.Count) - _maxRelations = related.RelationsFrom.Count; - } - } - } - } - } - - #endregion - - #region IGraph Members - - public ReportQuerySeverityType Severity - { - get { return _severity; } - set { _severity = value; } - } - - #endregion - } - - /// - /// Sequence of graph elements - /// - public class GraphPath : IGraphPath - { - private List _items = null; - - public IGraphItem Current - { - get - { - throw new NotImplementedException(); - } - set - { - throw new NotImplementedException(); - } - } - - public int Width - { - get { throw new NotImplementedException(); } - } - - public List DirectFlow - { - get { return _items; } - set { _items = value; } - } - - public int Top - { - get { return 0; } - } - - public int Left - { - get { return 0; } - } - - #region IComparable Members - - public int CompareTo(object obj) - { - GraphPath path = (GraphPath)obj; - - if (path.DirectFlow.Count == DirectFlow.Count) - { - bool equal = true; - for (int i = 0; i < DirectFlow.Count; i++) - { - if (path.DirectFlow[i].CompareTo(DirectFlow[i]) != 0) - { - equal = false; - break; - } - } - - return equal ? 0 : 1; - } - else - return 1; - } - - #endregion - - #region IGraphPath Members - - - ReportQueryItemResult queryItemResult; - public ReportQueryItemResult QueryItemResult - { - get { return queryItemResult; } - set { queryItemResult = value; } - } - - #endregion - } - - /// - /// Grapth element - /// - public class GraphItem : IGraphItem - { - public GraphItem() - { - guid = Guid.NewGuid().ToString(); - } - - #region [Private members] - private string _name = null; - private string _fileName = null; - private IGraphItem _relatedTo = null; - private List _relationsFrom = new List(); - private IGraphPath _parent = null; - private bool _isPrimary = true; - private int _line = 0; - private int _column = 0; - private int _length = 0; - private int _x = 0; - private int _y = 0; - private string guid; - - private ReportQueryItemResult _queryItem; - #endregion - - #region [Public Properties] - - public string ID - { - get { return string.Format("{0}{1}{2}", Line, Column, FileName); } - } - - public string Name - { - get { return _name; } - set { _name=value; } - } - - public IGraphItem RelatedTo - { - get { return _relatedTo; } - set {_relatedTo = value; } - } - - public List RelationsFrom - { - get { return _relationsFrom; } - set { _relationsFrom = value; } - } - - public IGraphPath Parent - { - get { return _parent; } - set { _parent = value; } - } - - public bool IsPrimary - { - get { return _isPrimary; } - set { _isPrimary = value; } - } - - - public int Line - { - get { return _line; } - set { _line = value; } - } - - public int Column - { - get { return _column; } - set { _column = value; } - } - - public int Length - { - get { return _length; } - set { _length = value; } - } - - public string UniqueID - { - get - { - //return string.Format("{0}_{1}_{2}_{3}", Name, Line, Column, guid); - return string.Format("{0}_{1}_{2}_{3}", Name, Line, Column, FileName); - } - } - - int currentPathIndex = 1; - public int CurrentPathIndex - { - get { return currentPathIndex; } - set { currentPathIndex = value; } - } - - #endregion - - #region IComparable Members - - public int CompareTo(object obj) - { - if (obj is IGraphItem) - { - IGraphItem compareItem = (IGraphItem)obj; - - if (compareItem.Name == Name && - compareItem.Line == Line && - compareItem.FileName == FileName && - compareItem.Column == Column && string.Compare(((GraphItem)compareItem).ID, ID) == 0) - { - return 0; - } - else - return 1; - } - else if (obj is ReportQueryItemPathResult) - { - ReportQueryItemPathResult compareItem = (ReportQueryItemPathResult)obj; - - if (compareItem.Name == Name && - compareItem.FileName == FileName && - compareItem.Line == Line && - compareItem.Column == Column) - { - return 0; - } - else - return 1; - } - else if (obj is CxViewerAction.CxVSWebService.CxWSPathNode) - { - CxViewerAction.CxVSWebService.CxWSPathNode compareItem = (CxViewerAction.CxVSWebService.CxWSPathNode)obj; - - if (compareItem.Name == Name && - compareItem.FileName == FileName && - compareItem.Line == Line && - compareItem.Column == Column) - { - return 0; - } - else - return 1; - } - - return 1; - } - - #endregion - - #region IGraphItem Members - - - public int GraphX - { - get { return _x; } - set { _x = value; } - } - - public int GraphY - { - get { return _y; } - set { _y = value; } - } - - #endregion - - #region IGraphItem Members - - public string FileName - { - get { return _fileName; } - set { _fileName = value; } - } - - #endregion - - #region IPerspectiveProblemFile Members - - - public ReportQueryItemResult QueryItem - { - get { return _queryItem; } - set { _queryItem = value; } - } - - public TreeNodeData NodeData - { - get; - set; - } - - #endregion - - #region IGraphItem Members - - bool isSelected; - public bool IsSelected - { - get { return isSelected; } - set { isSelected = value; } - } - - bool isMultiReletions; - public bool IsMultiReletions - { - get { return isMultiReletions; } - set { isMultiReletions = value; } - } - - #endregion - - - } -} +using System; +using CxViewerAction.BaseInterfaces; +using System.Collections.Generic; +using CxViewerAction.Entities.WebServiceEntity; +using CxViewerAction.Helpers; + +namespace CxViewerAction.Entities +{ + /// + /// Ordered graph data representation + /// + public class Graph : IGraph + { + #region [Private members] + + private List _paths = null; + private ReportQuerySeverityType _severity = ReportQuerySeverityType.None; + private int _maxRelations = 2; + + #endregion + + #region [Constructors] + + public Graph() + { + } + + public Graph(ReportQueryResult query) + { + IGraph graph = GraphHelper.Convert(query); + + _paths = graph.Paths; + _severity = graph.Severity; + _maxRelations = graph.MaxRelations; + } + + public Graph(ReportQueryItemResult queryItem) + { + _paths = new List(); + _paths.Add((GraphPath)GraphHelper.Convert(queryItem, 0)); + _severity = queryItem.Query.Severity; + } + + public Graph(TreeNodeData treeNode) + { + IGraph graph = GraphHelper.Convert(treeNode); + + _paths = graph.Paths; + _severity = graph.Severity; + _maxRelations = graph.MaxRelations; + } + + + #endregion + + #region [IGraph implementation] + public IGraphPath Current + { + get + { + throw new NotImplementedException(); + } + set + { + throw new NotImplementedException(); + } + } + + public int Width + { + get { return _paths.Count; } + } + + public int Height + { + get + { + int max = 0; + + foreach (IGraphPath path in _paths) + { + if (path.DirectFlow.Count > max) + max = path.DirectFlow.Count; + } + + return max; + } + } + + public List Paths + { + get { return _paths; } + set { _paths = value; } + } + + public int MaxRelations + { + get { return _maxRelations; } + } + + public System.Drawing.Point GetPosition(IGraphItem item) + { + throw new NotImplementedException(); + } + + public void AddNewPath(IGraphPath path) + { + if (_paths == null) + _paths = new List(); + + _paths.Add((GraphPath)path); + + AddRelations(); + } + #endregion + + #region [Private methods] + + /// + /// Find item dependences in previous paths + /// + private void AddRelations() + { + if (_paths.Count <= 1) + return; + + IGraphItem related = null; + foreach (IGraphItem graphItem in _paths[_paths.Count - 1].DirectFlow) + { + for (int i = 0; i < _paths.Count - 1; i++) + { + foreach (IGraphItem prevItem in _paths[i].DirectFlow) + { + if (prevItem.CompareTo(graphItem) == 0) + { + related = prevItem; + + while (related.RelatedTo != null) + related = related.RelatedTo; + + graphItem.IsPrimary = false; + graphItem.RelatedTo = related; + related.RelationsFrom.Add((GraphItem)graphItem); + + if (_maxRelations < related.RelationsFrom.Count) + _maxRelations = related.RelationsFrom.Count; + } + } + } + } + } + + #endregion + + #region IGraph Members + + public ReportQuerySeverityType Severity + { + get { return _severity; } + set { _severity = value; } + } + + #endregion + } + + /// + /// Sequence of graph elements + /// + public class GraphPath : IGraphPath + { + private List _items = null; + + public IGraphItem Current + { + get + { + throw new NotImplementedException(); + } + set + { + throw new NotImplementedException(); + } + } + + public int Width + { + get { throw new NotImplementedException(); } + } + + public List DirectFlow + { + get { return _items; } + set { _items = value; } + } + + public int Top + { + get { return 0; } + } + + public int Left + { + get { return 0; } + } + + #region IComparable Members + + public int CompareTo(object obj) + { + GraphPath path = (GraphPath)obj; + + if (path.DirectFlow.Count == DirectFlow.Count) + { + bool equal = true; + for (int i = 0; i < DirectFlow.Count; i++) + { + if (path.DirectFlow[i].CompareTo(DirectFlow[i]) != 0) + { + equal = false; + break; + } + } + + return equal ? 0 : 1; + } + else + return 1; + } + + #endregion + + #region IGraphPath Members + + + ReportQueryItemResult queryItemResult; + public ReportQueryItemResult QueryItemResult + { + get { return queryItemResult; } + set { queryItemResult = value; } + } + + #endregion + } + + /// + /// Grapth element + /// + public class GraphItem : IGraphItem + { + public GraphItem() + { + guid = Guid.NewGuid().ToString(); + } + + #region [Private members] + private string _name = null; + private string _fileName = null; + private IGraphItem _relatedTo = null; + private List _relationsFrom = new List(); + private IGraphPath _parent = null; + private bool _isPrimary = true; + private int _line = 0; + private int _column = 0; + private int _length = 0; + private int _x = 0; + private int _y = 0; + private string guid; + + private ReportQueryItemResult _queryItem; + #endregion + + #region [Public Properties] + + public string ID + { + get { return string.Format("{0}{1}{2}", Line, Column, FileName); } + } + + public string Name + { + get { return _name; } + set { _name=value; } + } + + public IGraphItem RelatedTo + { + get { return _relatedTo; } + set {_relatedTo = value; } + } + + public List RelationsFrom + { + get { return _relationsFrom; } + set { _relationsFrom = value; } + } + + public IGraphPath Parent + { + get { return _parent; } + set { _parent = value; } + } + + public bool IsPrimary + { + get { return _isPrimary; } + set { _isPrimary = value; } + } + + + public int Line + { + get { return _line; } + set { _line = value; } + } + + public int Column + { + get { return _column; } + set { _column = value; } + } + + public int Length + { + get { return _length; } + set { _length = value; } + } + + public string UniqueID + { + get + { + //return string.Format("{0}_{1}_{2}_{3}", Name, Line, Column, guid); + return string.Format("{0}_{1}_{2}_{3}", Name, Line, Column, FileName); + } + } + + int currentPathIndex = 1; + public int CurrentPathIndex + { + get { return currentPathIndex; } + set { currentPathIndex = value; } + } + + #endregion + + #region IComparable Members + + public int CompareTo(object obj) + { + if (obj is IGraphItem) + { + IGraphItem compareItem = (IGraphItem)obj; + + if (compareItem.Name == Name && + compareItem.Line == Line && + compareItem.FileName == FileName && + compareItem.Column == Column && string.Compare(((GraphItem)compareItem).ID, ID) == 0) + { + return 0; + } + else + return 1; + } + else if (obj is ReportQueryItemPathResult) + { + ReportQueryItemPathResult compareItem = (ReportQueryItemPathResult)obj; + + if (compareItem.Name == Name && + compareItem.FileName == FileName && + compareItem.Line == Line && + compareItem.Column == Column) + { + return 0; + } + else + return 1; + } + else if (obj is CxViewerAction.CxVSWebService.CxWSPathNode) + { + CxViewerAction.CxVSWebService.CxWSPathNode compareItem = (CxViewerAction.CxVSWebService.CxWSPathNode)obj; + + if (compareItem.Name == Name && + compareItem.FileName == FileName && + compareItem.Line == Line && + compareItem.Column == Column) + { + return 0; + } + else + return 1; + } + + return 1; + } + + #endregion + + #region IGraphItem Members + + + public int GraphX + { + get { return _x; } + set { _x = value; } + } + + public int GraphY + { + get { return _y; } + set { _y = value; } + } + + #endregion + + #region IGraphItem Members + + public string FileName + { + get { return _fileName; } + set { _fileName = value; } + } + + #endregion + + #region IPerspectiveProblemFile Members + + + public ReportQueryItemResult QueryItem + { + get { return _queryItem; } + set { _queryItem = value; } + } + + public TreeNodeData NodeData + { + get; + set; + } + + #endregion + + #region IGraphItem Members + + bool isSelected; + public bool IsSelected + { + get { return isSelected; } + set { isSelected = value; } + } + + bool isMultiReletions; + public bool IsMultiReletions + { + get { return isMultiReletions; } + set { isMultiReletions = value; } + } + + #endregion + + + } +} diff --git a/CxViewerAction/Entities/IEntity.cs b/CxActionShared/Entities/IEntity.cs similarity index 94% rename from CxViewerAction/Entities/IEntity.cs rename to CxActionShared/Entities/IEntity.cs index 96fe3cbe..82b0eacf 100644 --- a/CxViewerAction/Entities/IEntity.cs +++ b/CxActionShared/Entities/IEntity.cs @@ -1,9 +1,9 @@ -namespace CxViewerAction.Entities -{ - /// - /// Represent command class structure - /// - public interface IEntity - { - } -} +namespace CxViewerAction.Entities +{ + /// + /// Represent command class structure + /// + public interface IEntity + { + } +} diff --git a/CxViewerAction/Entities/LoginData.cs b/CxActionShared/Entities/LoginData.cs similarity index 77% rename from CxViewerAction/Entities/LoginData.cs rename to CxActionShared/Entities/LoginData.cs index a473567d..08596068 100644 --- a/CxViewerAction/Entities/LoginData.cs +++ b/CxActionShared/Entities/LoginData.cs @@ -1,374 +1,433 @@ -using System; -using System.Collections.Generic; -using CxViewerAction.Entities.Enum; -using CxViewerAction.Entities.Enumeration; -using System.Xml.Serialization; -using CxViewerAction.Helpers; - -namespace CxViewerAction.Entities -{ - /// - /// Login data - /// - public class LoginData : IEntity - { - #region [Public Constants] - - /// - /// Default language code - /// - public const int DEFAULT_LANGUAGE_CODE = 1033; - - #endregion - - #region [Private Constants] - - /// - /// Full service path url format - /// - private const string _baseFormat = "http{0}://{1}"; - private const string _servicePathFormat = "{0}/Cxwebinterface/CxWsResolver.asmx"; - - #endregion - - #region [Private Members] - - private string _serverDomain = null; - private string _server = null; - private string _serverBaseUri = null; - private bool _ssl = false; - - private EntityId _id; - private bool _isLogging; - string unboundRunID; - - private int _updateStatusInterval = 10; - private int _maxZipFileSize = 200; - - private SimpleDecision _isRunScanInBackground; - private SimpleDecision _isOpenPerspective; - - private string[] _excludeFileExt = "bak,tmp,aac,aif,iff,m3u,mid,mp3,mpa,ra,wav,wma,3g2,3gp,asf,asx,avi,flv,mov,mp4,mpg,rm,swf,vob,wmv,bmp,gif,jpg,png,psd,tif,swf,jar,zip,rar,exe,dll,pdb,7z,gz,tar.gz,tar,gz,ahtm,ahtml,fhtml,hdm,hdml,hsql,ht,hta,htc,htd,htmls,ihtml,mht,mhtm,mhtml,ssi,stm,stml,ttml,txn,xhtm,xhtml".Split(','); - private string[] _excludeFolder = "bin,obj,.svn,_svn,backup".Split(','); - - private int _reconnectInterval = 15; - private int _reconnectCount = 3; - - private bool _disableConnectionOptimizations = false; - - SerializableDictionary _perspectives; - - private List bindedProjects; - private bool _saveSastScan; - private bool _manageResultsComment; - private bool _manageResultsExploitability; - - #endregion - - #region [ Constructors ] - - private static LoginData loginDataInstance; - - private LoginData() { } - - public static LoginData GetLoginDataInstance - { - get - { - if (loginDataInstance == null) - loginDataInstance = new LoginData(); - return loginDataInstance; - } - } - - #endregion [ Constructors ] - - #region [ Properties ] - - /// - /// Get or set server domain - /// - [XmlIgnore()] - public string ServerDomain - { - get { return _serverDomain; } - set { _serverDomain = value; } - } - - public string ServerDomainEncrypted - { - get - { - if (!String.IsNullOrEmpty(ServerDomain)) - { - return EncryptHelper.EncryptString(ServerDomain); - } - else - { - return null; - } - } - set { _serverDomain = EncryptHelper.DecryptString(value); ; } - } - - /// - /// Get or set server full url - /// - [XmlIgnore()] - public string Server - { - get - { - if (_serverDomain != null) - { - _serverBaseUri = _serverDomain; - string httpServerDomain = _serverDomain.Replace("http://", string.Empty); - if (httpServerDomain.Length != _serverDomain.Length) - - { - return string.Format(_servicePathFormat, _serverBaseUri); - } - - string httpsServerDomain = _serverDomain.Replace("https://", string.Empty); - if (httpsServerDomain.Length != _serverDomain.Length) - { - return string.Format(_servicePathFormat, _serverBaseUri); - } - } - _serverBaseUri = string.Format(_baseFormat, (_ssl ? "s" : ""), _serverDomain); - return string.Format(_servicePathFormat, _serverBaseUri); - } - set { _server = value; } - } - - public string ServerBaseUri - { - get { return _serverBaseUri; } - } - - public string ServerEncrypted - { - get - { - if (!String.IsNullOrEmpty(Server)) - { - return EncryptHelper.EncryptString(Server); - } - else - { - return null; - } - } - set { _server = EncryptHelper.DecryptString(value); } - } - - /// - /// Gets or sets value indicating that connection must be established throw htts protocol - /// - public bool Ssl - { - get { return _ssl; } - set { _ssl = value; } - } - - /// - /// Get or set Entity prorepty - /// - public EntityId ID { get { return _id; } set { _id = value; } } - - /// - /// Gets or sets interval to call server to get current process state - /// - public int UpdateStatusInterval { get { return _updateStatusInterval; } set { _updateStatusInterval = value; } } - - /// - /// Get or set dialog state. If true - dialog validated sucessfull and user hit button go next step - /// - public bool IsLogging { get { return _isLogging; } set { _isLogging = value; } } - - /// - /// Get or set status to show scan dialog window - /// - public SimpleDecision IsRunScanInBackground { get { return _isRunScanInBackground; } set { _isRunScanInBackground = value; } } - - /// - /// Get or set status to show open perspective dialog after scan completed - /// - public SimpleDecision IsOpenPerspective { get { return _isOpenPerspective; } set { _isOpenPerspective = value; } } - - /// - /// Stored projects perspective URL - /// - public SerializableDictionary Perspectives { get { return _perspectives; } set { _perspectives = value; } } - - /// - /// Gets or sets extensions list to exclude when project compressed before scan - /// - public string[] ExcludeFileExt { get { return _excludeFileExt; } set { _excludeFileExt = value; } } - - /// - /// Gets or sets folder list to exclude when project compressed before scan - /// - public string[] ExcludeFolder { get { return _excludeFolder; } set { _excludeFolder = value; } } - - /// - /// Gets or sets reconnection interval in seconds - /// - public int ReconnectInterval - { - get { return _reconnectInterval; } - set { _reconnectInterval = value; } - } - - /// - /// Gets or sets counts to reconnect - /// - public int ReconnectCount - { - get { return _reconnectCount; } - set { _reconnectCount = value; } - } - - public string UnboundRunID - { - get { return unboundRunID; } - set { unboundRunID = value; } - } - - public List BindedProjects - { - get { return bindedProjects; } - set { bindedProjects = value; } - } - - /// - /// Gets or sets max allowed zip file size in megabites for scan - /// - public int MaxZipFileSize - { - get { return _maxZipFileSize; } - set { _maxZipFileSize = value; } - } - - /// - /// Gets or sets the option to disable connection optimizations - /// This optimization should be disabled when there is a proxy or firewall between the plugin and the server - /// - public bool DisableConnectionOptimizations - { - get { return _disableConnectionOptimizations; } - set { _disableConnectionOptimizations = value; } - } - - public bool SaveSastScan { get => _saveSastScan; set => _saveSastScan = value; } - public bool ManageResultsComment { get => _manageResultsComment; set => _manageResultsComment = value; } - public bool ManageResultsExploitability { get => _manageResultsExploitability; set => _manageResultsExploitability = value; } - - #endregion [ Properties ] - - #region [ Public Methods ] - - /// - /// Verify if user enter all data to start auth verification - /// - /// - public bool CanLog() - { - return (String.IsNullOrEmpty(this.Server)) ? false : true; - } - - /// - /// Adding project perspective dictionary - /// - /// - /// - /// - public void AddProjectPerspective(string project, string perspective) - { - if (Perspectives == null) - Perspectives = new SerializableDictionary(); - - if (Perspectives.ContainsKey(project)) - { - string oldPerspective = Perspectives[project]; - Perspectives[project] = perspective; - StorageHelper.Delete(oldPerspective); - } - else - Perspectives.Add(project, perspective); - } - - - - /// - /// Clear user auth data - /// - internal void Clear() - { - _serverDomain = string.Empty; - } - - #endregion [ Publica Methods ] - - public class BindProject - { - public void AddScanReport(ScanReportInfo scanReportInfo) - { - if (scanReports == null) - scanReports = new List(); - - scanReports.Add(scanReportInfo); - } - - public void ClearScanReports() - { - if (scanReports == null) - scanReports = new List(); - - scanReports.Clear(); - } - - List scanReports; - - public string RootPath - { - get; - set; - } - - public string ProjectName - { - get; - set; - } - - - public long BindedProjectId - { - get; - set; - } - - public long SelectedScanId - { - get; - set; - } - - public bool IsBound - { - get; - set; - } - - public bool IsPublic - { - get; - set; - } - - public List ScanReports { get { return scanReports; } set { scanReports = value; } } - } - - } -} +using System; +using System.Collections.Generic; +using CxViewerAction.Entities.Enum; +using CxViewerAction.Entities.Enumeration; +using System.Xml.Serialization; +using CxViewerAction.Helpers; + +namespace CxViewerAction.Entities +{ + /// + /// Login data + /// + public class LoginData : IEntity + { + #region [Public Constants] + + /// + /// Default language code + /// + public const int DEFAULT_LANGUAGE_CODE = 1033; + + /// + /// Proxy type constants + /// + public const string PROXY_TYPE_NONE = "None"; + public const string PROXY_TYPE_HTTP = "http"; + public const string PROXY_TYPE_PAC = "pac"; + + #endregion + + #region [Private Constants] + + /// + /// Full service path url format + /// + private const string _baseFormat = "http{0}://{1}"; + private const string _servicePathFormat = "{0}/Cxwebinterface/CxWsResolver.asmx"; + + #endregion + + #region [Private Members] + + private string _serverDomain = null; + private string _server = null; + private string _serverBaseUri = null; + private bool _ssl = false; + private string _authenticationType = "access_control"; + + private string _proxyType = PROXY_TYPE_NONE; + private string _proxyLocation = null; + private string _noProxyList = null; + + + private EntityId _id; + private bool _isLogging; + string unboundRunID; + + private int _updateStatusInterval = 10; + private int _maxZipFileSize = 200; + + private SimpleDecision _isRunScanInBackground; + private SimpleDecision _isOpenPerspective; + + private string[] _excludeFileExt = "bak,tmp,aac,aif,iff,m3u,mid,mp3,mpa,ra,wav,wma,3g2,3gp,asf,asx,avi,flv,mov,mp4,mpg,rm,swf,vob,wmv,bmp,gif,jpg,png,psd,tif,swf,jar,zip,rar,exe,dll,pdb,7z,gz,tar.gz,tar,gz,ahtm,ahtml,fhtml,hdm,hdml,hsql,ht,hta,htc,htd,htmls,ihtml,mht,mhtm,mhtml,ssi,stm,stml,ttml,txn,xhtm,xhtml,log,CxVsPlugin.conf".Split(','); + private string[] _excludeFolder = "bin,obj,.svn,_svn,backup,GpuCache,DawnCache,.vs".Split(','); + + private int _reconnectInterval = 15; + private int _reconnectCount = 3; + + private bool _disableConnectionOptimizations = false; + + SerializableDictionary _perspectives; + + private List bindedProjects; + private bool _saveSastScan; + private bool _manageResultsComment; + private bool _manageResultsExploitability; + private int _bindProjectCount = -1; + private bool _enableTLSOrSSLServerCertificateValidation = true; + + #endregion + + #region [ Constructors ] + + private static LoginData loginDataInstance; + + private LoginData() { } + + public static LoginData GetLoginDataInstance + { + get + { + if (loginDataInstance == null) + loginDataInstance = new LoginData(); + return loginDataInstance; + } + } + + #endregion [ Constructors ] + + #region [ Properties ] + + /// + /// Get or set server domain + /// + [XmlIgnore()] + public string ServerDomain + { + get { return _serverDomain; } + set { _serverDomain = value; } + } + + public string ServerDomainEncrypted + { + get + { + if (!String.IsNullOrEmpty(ServerDomain)) + { + return EncryptHelper.EncryptString(ServerDomain); + } + else + { + return null; + } + } + set { _serverDomain = EncryptHelper.DecryptString(value); ; } + } + + /// + /// Get or set server full url + /// + [XmlIgnore()] + public string Server + { + get + { + if (_serverDomain != null) + { + _serverBaseUri = _serverDomain; + string httpServerDomain = _serverDomain.Replace("http://", string.Empty); + if (httpServerDomain.Length != _serverDomain.Length) + + { + return string.Format(_servicePathFormat, _serverBaseUri); + } + + string httpsServerDomain = _serverDomain.Replace("https://", string.Empty); + if (httpsServerDomain.Length != _serverDomain.Length) + { + return string.Format(_servicePathFormat, _serverBaseUri); + } + } + _serverBaseUri = string.Format(_baseFormat, (_ssl ? "s" : ""), _serverDomain); + return string.Format(_servicePathFormat, _serverBaseUri); + } + set { _server = value; } + } + + public string ServerBaseUri + { + get { return _serverBaseUri; } + } + + public string ServerEncrypted + { + get + { + if (!String.IsNullOrEmpty(Server)) + { + return EncryptHelper.EncryptString(Server); + } + else + { + return null; + } + } + set { _server = EncryptHelper.DecryptString(value); } + } + + /// + /// Gets or sets value indicating that connection must be established throw htts protocol + /// + public bool Ssl + { + get { return _ssl; } + set { _ssl = value; } + } + + /// + /// Gets or sets value indicating that Authenticationa Type Log in Form Or User Submit Form throw htts protocol + /// + public string AuthenticationType + { + get { return _authenticationType; } + set { _authenticationType = value; } + } + + /// + /// Gets or sets value indicating the type of the proxy server none, http or pac + /// + public string ProxyType + { + get { return _proxyType; } + set { _proxyType = value; } + } + + /// + /// Gets or sets value indicating the url of the http or pac proxy. + /// + public string ProxyLocation + { + get { return _proxyLocation; } + set { _proxyLocation = value; } + } + + /// + /// Gets or sets value indicating the hosts that should be excluded from the proxy + /// + public string NoProxyList + { + get { return _noProxyList; } + set { _noProxyList = value; } + } + + + + + /// + /// Get or set Entity prorepty + /// + public EntityId ID { get { return _id; } set { _id = value; } } + + /// + /// Gets or sets interval to call server to get current process state + /// + public int UpdateStatusInterval { get { return _updateStatusInterval; } set { _updateStatusInterval = value; } } + + /// + /// Get or set dialog state. If true - dialog validated sucessfull and user hit button go next step + /// + public bool IsLogging { get { return _isLogging; } set { _isLogging = value; } } + + /// + /// Get or set status to show scan dialog window + /// + public SimpleDecision IsRunScanInBackground { get { return _isRunScanInBackground; } set { _isRunScanInBackground = value; } } + + /// + /// Get or set status to show open perspective dialog after scan completed + /// + public SimpleDecision IsOpenPerspective { get { return _isOpenPerspective; } set { _isOpenPerspective = value; } } + + /// + /// Stored projects perspective URL + /// + public SerializableDictionary Perspectives { get { return _perspectives; } set { _perspectives = value; } } + + /// + /// Gets or sets extensions list to exclude when project compressed before scan + /// + public string[] ExcludeFileExt { get { return _excludeFileExt; } set { _excludeFileExt = value; } } + + /// + /// Gets or sets folder list to exclude when project compressed before scan + /// + public string[] ExcludeFolder { get { return _excludeFolder; } set { _excludeFolder = value; } } + + /// + /// Gets or sets reconnection interval in seconds + /// + public int ReconnectInterval + { + get { return _reconnectInterval; } + set { _reconnectInterval = value; } + } + + /// + /// Gets or sets counts to reconnect + /// + public int ReconnectCount + { + get { return _reconnectCount; } + set { _reconnectCount = value; } + } + + public string UnboundRunID + { + get { return unboundRunID; } + set { unboundRunID = value; } + } + + public List BindedProjects + { + get { return bindedProjects; } + set { bindedProjects = value; } + } + + /// + /// Gets or sets max allowed zip file size in megabites for scan + /// + public int MaxZipFileSize + { + get { return _maxZipFileSize; } + set { _maxZipFileSize = value; } + } + + /// + /// Gets or sets the option to disable connection optimizations + /// This optimization should be disabled when there is a proxy or firewall between the plugin and the server + /// + public bool DisableConnectionOptimizations + { + get { return _disableConnectionOptimizations; } + set { _disableConnectionOptimizations = value; } + } + + public bool SaveSastScan { get => _saveSastScan; set => _saveSastScan = value; } + public bool ManageResultsComment { get => _manageResultsComment; set => _manageResultsComment = value; } + public bool ManageResultsExploitability { get => _manageResultsExploitability; set => _manageResultsExploitability = value; } + + public int BindProjectCount { get { return _bindProjectCount; } set { _bindProjectCount = value; } } + + public bool EnableTLSOrSSLServerCertificateValidation { get => _enableTLSOrSSLServerCertificateValidation; set => _enableTLSOrSSLServerCertificateValidation = value; } + + #endregion [ Properties ] + + #region [ Public Methods ] + + /// + /// Verify if user enter all data to start auth verification + /// + /// + public bool CanLog() + { + return (String.IsNullOrEmpty(this.Server)) ? false : true; + } + + /// + /// Adding project perspective dictionary + /// + /// + /// + /// + public void AddProjectPerspective(string project, string perspective) + { + if (Perspectives == null) + Perspectives = new SerializableDictionary(); + + if (Perspectives.ContainsKey(project)) + { + string oldPerspective = Perspectives[project]; + Perspectives[project] = perspective; + StorageHelper.Delete(oldPerspective); + } + else + Perspectives.Add(project, perspective); + } + + + + /// + /// Clear user auth data + /// + internal void Clear() + { + _serverDomain = string.Empty; + } + + #endregion [ Publica Methods ] + + public class BindProject + { + public void AddScanReport(ScanReportInfo scanReportInfo) + { + if (scanReports == null) + scanReports = new List(); + + scanReports.Add(scanReportInfo); + } + + public void ClearScanReports() + { + if (scanReports == null) + scanReports = new List(); + + scanReports.Clear(); + } + + List scanReports; + + public string RootPath + { + get; + set; + } + + public string ProjectName + { + get; + set; + } + + + public long BindedProjectId + { + get; + set; + } + + public long SelectedScanId + { + get; + set; + } + + public bool IsBound + { + get; + set; + } + + public bool IsPublic + { + get; + set; + } + + public List ScanReports { get { return scanReports; } set { scanReports = value; } } + } + + + } +} diff --git a/CxViewerAction/Entities/OidcLoginData.cs b/CxActionShared/Entities/OidcLoginData.cs similarity index 96% rename from CxViewerAction/Entities/OidcLoginData.cs rename to CxActionShared/Entities/OidcLoginData.cs index 14048130..55c7df4e 100644 --- a/CxViewerAction/Entities/OidcLoginData.cs +++ b/CxActionShared/Entities/OidcLoginData.cs @@ -1,34 +1,34 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace CxViewerAction.Entities -{ - public class OidcLoginData - { - - private string _accessToken; - private string _refreshToken; - private long _accessTokenExpiration; - private static OidcLoginData oidcLoginDataInstance; - - public static OidcLoginData GetOidcLoginDataInstance() - { - if (oidcLoginDataInstance == null) - oidcLoginDataInstance = new OidcLoginData(); - return oidcLoginDataInstance; - } - - public OidcLoginData() { - } - - public string AccessToken { get => _accessToken; set => _accessToken = value; } - public string RefreshToken { get => _refreshToken; set => _refreshToken = value; } - public long AccessTokenExpiration { get => _accessTokenExpiration; set => _accessTokenExpiration = value; } - - - - } -} +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CxViewerAction.Entities +{ + public class OidcLoginData + { + + private string _accessToken; + private string _refreshToken; + private long _accessTokenExpiration; + private static OidcLoginData oidcLoginDataInstance; + + public static OidcLoginData GetOidcLoginDataInstance() + { + if (oidcLoginDataInstance == null) + oidcLoginDataInstance = new OidcLoginData(); + return oidcLoginDataInstance; + } + + public OidcLoginData() { + } + + public string AccessToken { get => _accessToken; set => _accessToken = value; } + public string RefreshToken { get => _refreshToken; set => _refreshToken = value; } + public long AccessTokenExpiration { get => _accessTokenExpiration; set => _accessTokenExpiration = value; } + + + + } +} diff --git a/CxViewerAction/Entities/Project.cs b/CxActionShared/Entities/Project.cs similarity index 96% rename from CxViewerAction/Entities/Project.cs rename to CxActionShared/Entities/Project.cs index 1611a527..25da9a06 100644 --- a/CxViewerAction/Entities/Project.cs +++ b/CxActionShared/Entities/Project.cs @@ -1,91 +1,91 @@ -using System; -using System.Collections.Generic; - -using System.Text; - -namespace CxViewerAction.Entities -{ - /// - /// Class represent project entity - /// - public class Project - { - #region [Properties] - /// - /// Sulution project name - /// - private string _projectName; - - /// - /// Gets or sets solution project name - /// - public string ProjectName - { - get { return _projectName; } - set { _projectName = value; } - } - - /// - /// Sulution path or single project path - /// - private string _rootPath; - - /// - /// Gets or sets root solution path or single project path - /// - public string RootPath - { - get { return _rootPath; } - set { _rootPath = value; } - } - - /// - /// Sulution projects full file paths - /// - private List _projectPaths; - - /// - /// Gets or sets solution project full file path - /// - public List ProjectPaths - { - get { return _projectPaths; } - set { _projectPaths = value; } - } - #endregion - - #region [Constructors] - - public Project(string projectName, string rootPath, List filePathList, List folderPathList) - { - _projectName = projectName; - _rootPath = rootPath; - _projectPaths = new List(); - FilePathList = filePathList; - FolderPathList = folderPathList; - } - - public Project(string projectName, string rootPath) - { - _projectPaths = new List(); - FilePathList = new List(); - FolderPathList = new List(); - _projectName = projectName; - _rootPath = rootPath; - } - - public List FilePathList - { - get; - set; - } - - public List FolderPathList - { - get; - set; - } - - #endregion - } -} +using System; +using System.Collections.Generic; + +using System.Text; + +namespace CxViewerAction.Entities +{ + /// + /// Class represent project entity + /// + public class Project + { + #region [Properties] + /// + /// Sulution project name + /// + private string _projectName; + + /// + /// Gets or sets solution project name + /// + public string ProjectName + { + get { return _projectName; } + set { _projectName = value; } + } + + /// + /// Sulution path or single project path + /// + private string _rootPath; + + /// + /// Gets or sets root solution path or single project path + /// + public string RootPath + { + get { return _rootPath; } + set { _rootPath = value; } + } + + /// + /// Sulution projects full file paths + /// + private List _projectPaths; + + /// + /// Gets or sets solution project full file path + /// + public List ProjectPaths + { + get { return _projectPaths; } + set { _projectPaths = value; } + } + #endregion + + #region [Constructors] + + public Project(string projectName, string rootPath, List filePathList, List folderPathList) + { + _projectName = projectName; + _rootPath = rootPath; + _projectPaths = new List(); + FilePathList = filePathList; + FolderPathList = folderPathList; + } + + public Project(string projectName, string rootPath) + { + _projectPaths = new List(); + FilePathList = new List(); + FolderPathList = new List(); + _projectName = projectName; + _rootPath = rootPath; + } + + public List FilePathList + { + get; + set; + } + + public List FolderPathList + { + get; + set; + } + + #endregion + } +} diff --git a/CxViewerAction/Entities/RestEntities/AccessTokenDTO.cs b/CxActionShared/Entities/RestEntities/AccessTokenDTO.cs similarity index 96% rename from CxViewerAction/Entities/RestEntities/AccessTokenDTO.cs rename to CxActionShared/Entities/RestEntities/AccessTokenDTO.cs index e301722a..3bf6e6e7 100644 --- a/CxViewerAction/Entities/RestEntities/AccessTokenDTO.cs +++ b/CxActionShared/Entities/RestEntities/AccessTokenDTO.cs @@ -1,28 +1,28 @@ -using Newtonsoft.Json; - -namespace CxViewerAction.Entities.RestEntities -{ - class AccessTokenDTO - { - [JsonProperty("id_token")] - private string idToken; - - [JsonProperty("access_token")] - private string accessToken; - - [JsonProperty("expires_in")] - private int expiresIn; - - [JsonProperty("token_type")] - private string tokenType; - - [JsonProperty("refresh_token")] - private string refreshToken; - - public string IdToken { get => idToken; set => idToken = value; } - public string AccessToken { get => accessToken; set => accessToken = value; } - public int ExpiresIn { get => expiresIn; set => expiresIn = value; } - public string TokenType { get => tokenType; set => tokenType = value; } - public string RefreshToken { get => refreshToken; set => refreshToken = value; } - } -} +using Newtonsoft.Json; + +namespace CxViewerAction.Entities.RestEntities +{ + class AccessTokenDTO + { + [JsonProperty("id_token")] + private string idToken; + + [JsonProperty("access_token")] + private string accessToken; + + [JsonProperty("expires_in")] + private int expiresIn; + + [JsonProperty("token_type")] + private string tokenType; + + [JsonProperty("refresh_token")] + private string refreshToken; + + public string IdToken { get => idToken; set => idToken = value; } + public string AccessToken { get => accessToken; set => accessToken = value; } + public int ExpiresIn { get => expiresIn; set => expiresIn = value; } + public string TokenType { get => tokenType; set => tokenType = value; } + public string RefreshToken { get => refreshToken; set => refreshToken = value; } + } +} diff --git a/CxViewerAction/Entities/RestEntities/UserInfoDTO.cs b/CxActionShared/Entities/RestEntities/UserInfoDTO.cs similarity index 95% rename from CxViewerAction/Entities/RestEntities/UserInfoDTO.cs rename to CxActionShared/Entities/RestEntities/UserInfoDTO.cs index 7b1d67b0..63bc678b 100644 --- a/CxViewerAction/Entities/RestEntities/UserInfoDTO.cs +++ b/CxActionShared/Entities/RestEntities/UserInfoDTO.cs @@ -1,18 +1,18 @@ - -using System.Collections; -using Newtonsoft.Json; - -namespace CxViewerAction.Entities.RestEntities -{ - class UserInfoDTO - { - [JsonProperty("sast-permissions")] - private ArrayList sastPermissions; - - [JsonProperty("sub")] - private string sub; - - public ArrayList SastPermissions { get => sastPermissions; set => sastPermissions = value; } - public string Sub { get => sub; set => sub = value; } - } -} + +using System.Collections; +using Newtonsoft.Json; + +namespace CxViewerAction.Entities.RestEntities +{ + class UserInfoDTO + { + [JsonProperty("sast-permissions")] + private ArrayList sastPermissions; + + [JsonProperty("sub")] + private string sub; + + public ArrayList SastPermissions { get => sastPermissions; set => sastPermissions = value; } + public string Sub { get => sub; set => sub = value; } + } +} diff --git a/CxViewerAction/Entities/ResultEntity.cs b/CxActionShared/Entities/ResultEntity.cs similarity index 96% rename from CxViewerAction/Entities/ResultEntity.cs rename to CxActionShared/Entities/ResultEntity.cs index 38ca9c14..f127839f 100644 --- a/CxViewerAction/Entities/ResultEntity.cs +++ b/CxActionShared/Entities/ResultEntity.cs @@ -1,23 +1,23 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace CxViewerAction.Entities -{ - //public class ResultEntity - //{ - // public int No; - // public string SourceFolder; - // public string SourceFileName; - // public int SourceColumn; - // public string SourceObject; - // public string DistinationFolder; - // public string DestinationFileName; - // public int DestinationColumn; - // public string DestinationObject; - // public string ResultState; - // public string Severity; - // public string Remark; - // public int IsEnabledInt; - //} -} +using System; +using System.Collections.Generic; +using System.Text; + +namespace CxViewerAction.Entities +{ + //public class ResultEntity + //{ + // public int No; + // public string SourceFolder; + // public string SourceFileName; + // public int SourceColumn; + // public string SourceObject; + // public string DistinationFolder; + // public string DestinationFileName; + // public int DestinationColumn; + // public string DestinationObject; + // public string ResultState; + // public string Severity; + // public string Remark; + // public int IsEnabledInt; + //} +} diff --git a/CxViewerAction/Entities/Scan.cs b/CxActionShared/Entities/Scan.cs similarity index 96% rename from CxViewerAction/Entities/Scan.cs rename to CxActionShared/Entities/Scan.cs index 6166d883..d70cc0dc 100644 --- a/CxViewerAction/Entities/Scan.cs +++ b/CxActionShared/Entities/Scan.cs @@ -1,205 +1,205 @@ -using System; -using System.Collections.Generic; - -using System.Text; -using CxViewerAction.Services; -using CxViewerAction.Entities.WebServiceEntity; -using System.Threading; -using CxViewerAction.Views; - -namespace CxViewerAction.Entities -{ - /// - /// Scan Data Class - /// - public class Scan : IEntity - { - #region [Private Variables] - - /// - /// Server data that was received on user auth request - /// - private LoginResult _loginResult; - - /// - /// Upload project settings - /// - private Upload _uploadSettings; - - /// - /// Server data that was received on start scan request - /// - private RunScanResult _runScanResult; - - /// - /// Scan executing now - /// - private bool _inProcess; - - /// - /// Check for cancel button state - /// - private ManualResetEvent _cancelEvent = new ManualResetEvent(false); - - /// - /// VS-addin scan dock window to represent scan data - /// - private IScanView _scanView = null; - - /// - /// VS-addin scan dock window to represent scan data - /// - private IScanView _dockView = null; - - /// - /// Associated scan project - /// - private Project _scanProject = null; - - /// - /// Event handler for RunInBackground button - /// - private EventHandler _runInBackgroundHandler; - - /// - /// Event handler for Cancel button - /// - private EventHandler _cancelHandler; - - /// - /// Event handler for Details button - /// - private EventHandler _detailsHandler; - - #endregion - - #region [Public Properties] - - public LoginResult LoginResult - { - get { return _loginResult; } - set { _loginResult = value; } - } - public Upload UploadSettings - { - set { _uploadSettings = value; } - get { return _uploadSettings; } - } - public RunScanResult RunScanResult - { - get { return _runScanResult; } - set { _runScanResult = value; } - } - public bool InProcess - { - set { _inProcess = value; } - get { return _inProcess; } - } - - public bool IsIncremental { set; get; } - - public IScanView ScanView - { - get { return _scanView; } - set { _scanView = value; } - } - public IScanView DockView - { - get { return _dockView; } - set { _dockView = value; } - } - public Project ScanProject - { - get { return _scanProject; } - set { _scanProject = value; } - } - public bool IsPublic { get; set; } - - /// - /// Check for cancel button state - /// - public ManualResetEvent CancelEvent - { - get { return _cancelEvent; } - } - - /// - /// Verify that user press cancel button - /// - public bool IsCancelPressed - { - get { return _cancelEvent.WaitOne(0, false); } - } - #endregion - - #region [Events] - - public EventHandler RunInBackgroundHandler - { - get { return _runInBackgroundHandler; } - set { _runInBackgroundHandler = value; } - } - - public EventHandler CancelHandler - { - get { return _cancelHandler; } - set { _cancelHandler = value; } - } - - public EventHandler DetailsHandler - { - get { return _detailsHandler; } - set { _detailsHandler = value; } - } - - #endregion - - #region [Constructors] - - /// - /// Empty constructor - /// - public Scan() - { - } - - /// - /// Constructor with param - /// - /// auth server result - public Scan(LoginResult login) - { - _loginResult = login; - } - - /// - /// Constructor with param - /// - /// auth server result - /// handler for runInBackground button - /// handler for cancel button - /// handler for details button - public Scan(LoginResult login, EventHandler runInBackgroundHandler, EventHandler cancelHandler, EventHandler detailsHandler) - { - _loginResult = login; - _runInBackgroundHandler = runInBackgroundHandler; - _cancelHandler = cancelHandler; - _detailsHandler = detailsHandler; - } - - #endregion - - #region [Public Methods] - - /// - /// Verify if Cancel button pressed. Thread sleep until timeout expired or cancel button pressed - /// - /// - public bool WaitForCancel() - { - return _cancelEvent.WaitOne(_loginResult.AuthenticationData.UpdateStatusInterval * 1000, false); - } - - #endregion - } -} +using System; +using System.Collections.Generic; + +using System.Text; +using CxViewerAction.Services; +using CxViewerAction.Entities.WebServiceEntity; +using System.Threading; +using CxViewerAction.Views; + +namespace CxViewerAction.Entities +{ + /// + /// Scan Data Class + /// + public class Scan : IEntity + { + #region [Private Variables] + + /// + /// Server data that was received on user auth request + /// + private LoginResult _loginResult; + + /// + /// Upload project settings + /// + private Upload _uploadSettings; + + /// + /// Server data that was received on start scan request + /// + private RunScanResult _runScanResult; + + /// + /// Scan executing now + /// + private bool _inProcess; + + /// + /// Check for cancel button state + /// + private ManualResetEvent _cancelEvent = new ManualResetEvent(false); + + /// + /// VS-addin scan dock window to represent scan data + /// + private IScanView _scanView = null; + + /// + /// VS-addin scan dock window to represent scan data + /// + private IScanView _dockView = null; + + /// + /// Associated scan project + /// + private Project _scanProject = null; + + /// + /// Event handler for RunInBackground button + /// + private EventHandler _runInBackgroundHandler; + + /// + /// Event handler for Cancel button + /// + private EventHandler _cancelHandler; + + /// + /// Event handler for Details button + /// + private EventHandler _detailsHandler; + + #endregion + + #region [Public Properties] + + public LoginResult LoginResult + { + get { return _loginResult; } + set { _loginResult = value; } + } + public Upload UploadSettings + { + set { _uploadSettings = value; } + get { return _uploadSettings; } + } + public RunScanResult RunScanResult + { + get { return _runScanResult; } + set { _runScanResult = value; } + } + public bool InProcess + { + set { _inProcess = value; } + get { return _inProcess; } + } + + public bool IsIncremental { set; get; } + + public IScanView ScanView + { + get { return _scanView; } + set { _scanView = value; } + } + public IScanView DockView + { + get { return _dockView; } + set { _dockView = value; } + } + public Project ScanProject + { + get { return _scanProject; } + set { _scanProject = value; } + } + public bool IsPublic { get; set; } + + /// + /// Check for cancel button state + /// + public ManualResetEvent CancelEvent + { + get { return _cancelEvent; } + } + + /// + /// Verify that user press cancel button + /// + public bool IsCancelPressed + { + get { return _cancelEvent.WaitOne(0, false); } + } + #endregion + + #region [Events] + + public EventHandler RunInBackgroundHandler + { + get { return _runInBackgroundHandler; } + set { _runInBackgroundHandler = value; } + } + + public EventHandler CancelHandler + { + get { return _cancelHandler; } + set { _cancelHandler = value; } + } + + public EventHandler DetailsHandler + { + get { return _detailsHandler; } + set { _detailsHandler = value; } + } + + #endregion + + #region [Constructors] + + /// + /// Empty constructor + /// + public Scan() + { + } + + /// + /// Constructor with param + /// + /// auth server result + public Scan(LoginResult login) + { + _loginResult = login; + } + + /// + /// Constructor with param + /// + /// auth server result + /// handler for runInBackground button + /// handler for cancel button + /// handler for details button + public Scan(LoginResult login, EventHandler runInBackgroundHandler, EventHandler cancelHandler, EventHandler detailsHandler) + { + _loginResult = login; + _runInBackgroundHandler = runInBackgroundHandler; + _cancelHandler = cancelHandler; + _detailsHandler = detailsHandler; + } + + #endregion + + #region [Public Methods] + + /// + /// Verify if Cancel button pressed. Thread sleep until timeout expired or cancel button pressed + /// + /// + public bool WaitForCancel() + { + return _cancelEvent.WaitOne(_loginResult.AuthenticationData.UpdateStatusInterval * 1000, false); + } + + #endregion + } +} diff --git a/CxViewerAction/Entities/ScanReportInfo.cs b/CxActionShared/Entities/ScanReportInfo.cs similarity index 94% rename from CxViewerAction/Entities/ScanReportInfo.cs rename to CxActionShared/Entities/ScanReportInfo.cs index bf8c925c..db63752a 100644 --- a/CxViewerAction/Entities/ScanReportInfo.cs +++ b/CxActionShared/Entities/ScanReportInfo.cs @@ -1,31 +1,31 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace CxViewerAction.Entities -{ - public class ScanReportInfo - { - long id; - - public long Id - { - get { return id; } - set { id = value; } - } - string name; - - public string Name - { - get { return name; } - set { name = value; } - } - string path; - - public string Path - { - get { return path; } - set { path = value; } - } - } -} +using System; +using System.Collections.Generic; +using System.Text; + +namespace CxViewerAction.Entities +{ + public class ScanReportInfo + { + long id; + + public long Id + { + get { return id; } + set { id = value; } + } + string name; + + public string Name + { + get { return name; } + set { name = value; } + } + string path; + + public string Path + { + get { return path; } + set { path = value; } + } + } +} diff --git a/CxViewerAction/Entities/ScanStatusBar.cs b/CxActionShared/Entities/ScanStatusBar.cs similarity index 97% rename from CxViewerAction/Entities/ScanStatusBar.cs rename to CxActionShared/Entities/ScanStatusBar.cs index d95b21f9..16e9c9da 100644 --- a/CxViewerAction/Entities/ScanStatusBar.cs +++ b/CxActionShared/Entities/ScanStatusBar.cs @@ -1,20 +1,20 @@ -namespace CxViewerAction.Entities -{ - public class ScanStatusBar - { - public ScanStatusBar(bool inProgress, string label, int completed, int total, bool clearBeforeUpdateProgress = false) - { - ClearBeforeUpdateProgress = clearBeforeUpdateProgress; - InProgress = inProgress; - Label = label; - Completed = completed; - Total = total; - } - - public bool ClearBeforeUpdateProgress { get; private set; } - public bool InProgress { get; private set; } - public string Label { get; private set; } - public int Completed { get; private set; } - public int Total { get; private set; } - } -} +namespace CxViewerAction.Entities +{ + public class ScanStatusBar + { + public ScanStatusBar(bool inProgress, string label, int completed, int total, bool clearBeforeUpdateProgress = false) + { + ClearBeforeUpdateProgress = clearBeforeUpdateProgress; + InProgress = inProgress; + Label = label; + Completed = completed; + Total = total; + } + + public bool ClearBeforeUpdateProgress { get; private set; } + public bool InProgress { get; private set; } + public string Label { get; private set; } + public int Completed { get; private set; } + public int Total { get; private set; } + } +} diff --git a/CxViewerAction/Entities/Upload.cs b/CxActionShared/Entities/Upload.cs similarity index 96% rename from CxViewerAction/Entities/Upload.cs rename to CxActionShared/Entities/Upload.cs index 752e22f2..abe98181 100644 --- a/CxViewerAction/Entities/Upload.cs +++ b/CxActionShared/Entities/Upload.cs @@ -1,114 +1,114 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace CxViewerAction.Entities -{ - /// - /// Upload Data Class - /// - public class Upload : IEntity - { - private EntityId _id; - private string _projectName = string.Empty; - private string _description = string.Empty; - private int _preset = 0; - Dictionary _presets = null; - private string _team = Guid.Empty.ToString(); - Dictionary _teams = null; - private bool _isUploading = false; - - /// - /// Entity identifier - /// - public EntityId ID - { - get { return _id; } - set { _id = value; } - } - - /// - /// Project name - /// - public string ProjectName - { - get { return _projectName; } - set { _projectName = value; } - } - - /// - /// Project description - /// - public string Description - { - get { return _description; } - set { _description = value; } - } - - /// - /// Gets or sets presets list - /// - public Dictionary Presets - { - get { return _presets; } - set { _presets = value; } - } - - /// - /// Selected preset - /// - public int Preset - { - get { return _preset; } - set { _preset = value; } - } - - /// - /// Gets or sets teams list - /// - public Dictionary Teams - { - get { return _teams; } - set { _teams = value; } - } - - /// - /// Selected team - /// - public string Team - { - get { return _team; } - set { _team = value; } - } - - /// - /// If true - upload form was validated sucessfully and user confirm to start scanning - /// - public bool IsUploading - { - get { return _isUploading; } - set { _isUploading = value; } - } - - public bool IsPublic - { - get; - set; - } - - public Upload() { } - - public Upload(EntityId id, string name, string description, Dictionary presets, int preset, - Dictionary teams, string team,bool isPublic) - { - this.ID = id; - this.ProjectName = name; - this.Description = description; - this.Presets = presets; - this.Preset = preset; - this.Teams = teams; - this.Team = team; - IsPublic = isPublic; - } - } -} +using System; +using System.Collections.Generic; +using System.Text; + +namespace CxViewerAction.Entities +{ + /// + /// Upload Data Class + /// + public class Upload : IEntity + { + private EntityId _id; + private string _projectName = string.Empty; + private string _description = string.Empty; + private int _preset = 0; + Dictionary _presets = null; + private string _team = Guid.Empty.ToString(); + Dictionary _teams = null; + private bool _isUploading = false; + + /// + /// Entity identifier + /// + public EntityId ID + { + get { return _id; } + set { _id = value; } + } + + /// + /// Project name + /// + public string ProjectName + { + get { return _projectName; } + set { _projectName = value; } + } + + /// + /// Project description + /// + public string Description + { + get { return _description; } + set { _description = value; } + } + + /// + /// Gets or sets presets list + /// + public Dictionary Presets + { + get { return _presets; } + set { _presets = value; } + } + + /// + /// Selected preset + /// + public int Preset + { + get { return _preset; } + set { _preset = value; } + } + + /// + /// Gets or sets teams list + /// + public Dictionary Teams + { + get { return _teams; } + set { _teams = value; } + } + + /// + /// Selected team + /// + public string Team + { + get { return _team; } + set { _team = value; } + } + + /// + /// If true - upload form was validated sucessfully and user confirm to start scanning + /// + public bool IsUploading + { + get { return _isUploading; } + set { _isUploading = value; } + } + + public bool IsPublic + { + get; + set; + } + + public Upload() { } + + public Upload(EntityId id, string name, string description, Dictionary presets, int preset, + Dictionary teams, string team,bool isPublic) + { + this.ID = id; + this.ProjectName = name; + this.Description = description; + this.Presets = presets; + this.Preset = preset; + this.Teams = teams; + this.Team = team; + IsPublic = isPublic; + } + } +} diff --git a/CxViewerAction/Entities/WebServiceEntity/ConfigurationResult.cs b/CxActionShared/Entities/WebServiceEntity/ConfigurationResult.cs similarity index 96% rename from CxViewerAction/Entities/WebServiceEntity/ConfigurationResult.cs rename to CxActionShared/Entities/WebServiceEntity/ConfigurationResult.cs index be26f0b1..414078fb 100644 --- a/CxViewerAction/Entities/WebServiceEntity/ConfigurationResult.cs +++ b/CxActionShared/Entities/WebServiceEntity/ConfigurationResult.cs @@ -1,73 +1,73 @@ -using System; -using System.Collections.Generic; - -using System.Text; -using CxViewerAction.Helpers; - -namespace CxViewerAction.Entities.WebServiceEntity -{ - /// - /// Represent service configuration object - /// - public class ConfigurationResult - { - #region [Private memebers] - private bool _isSuccesfull = false; - private Dictionary _configurations = null; - #endregion - - #region [Public properties] - - /// - /// Get or set service perform status - /// - public bool IsSuccesfull - { - get { return _isSuccesfull; } - set { _isSuccesfull = value; } - } - - /// - /// Get or set configuration property list - /// - public Dictionary Configurations - { - get { return _configurations; } - set { _configurations = value; } - } - - /// - /// Get first configuration key in list - /// - public long FirstConfigurationKey - { - get - { - KeyValuePair first = new KeyValuePair(); - - foreach (KeyValuePair key in _configurations) - { - first = key; - break; - } - - return first.Key; - } - } - #endregion - - #region [Static methods] - - /// - /// Convert ConfigurationResult from xml - /// - /// xml string - /// - public static ConfigurationResult FromXml(string xml) - { - return XmlHelper.ParseConfigurationResult(xml); - } - - #endregion - } -} +using System; +using System.Collections.Generic; + +using System.Text; +using CxViewerAction.Helpers; + +namespace CxViewerAction.Entities.WebServiceEntity +{ + /// + /// Represent service configuration object + /// + public class ConfigurationResult + { + #region [Private memebers] + private bool _isSuccesfull = false; + private Dictionary _configurations = null; + #endregion + + #region [Public properties] + + /// + /// Get or set service perform status + /// + public bool IsSuccesfull + { + get { return _isSuccesfull; } + set { _isSuccesfull = value; } + } + + /// + /// Get or set configuration property list + /// + public Dictionary Configurations + { + get { return _configurations; } + set { _configurations = value; } + } + + /// + /// Get first configuration key in list + /// + public long FirstConfigurationKey + { + get + { + KeyValuePair first = new KeyValuePair(); + + foreach (KeyValuePair key in _configurations) + { + first = key; + break; + } + + return first.Key; + } + } + #endregion + + #region [Static methods] + + /// + /// Convert ConfigurationResult from xml + /// + /// xml string + /// + public static ConfigurationResult FromXml(string xml) + { + return XmlHelper.ParseConfigurationResult(xml); + } + + #endregion + } +} diff --git a/CxViewerAction/Entities/WebServiceEntity/LoginResult.cs b/CxActionShared/Entities/WebServiceEntity/LoginResult.cs similarity index 95% rename from CxViewerAction/Entities/WebServiceEntity/LoginResult.cs rename to CxActionShared/Entities/WebServiceEntity/LoginResult.cs index bfd484ee..3b5e9681 100644 --- a/CxViewerAction/Entities/WebServiceEntity/LoginResult.cs +++ b/CxActionShared/Entities/WebServiceEntity/LoginResult.cs @@ -1,61 +1,61 @@ -using System; -using System.Collections.Generic; - -using System.Text; -using CxViewerAction.Helpers; -using CxViewerAction.CxVSWebService; -using Common; - -namespace CxViewerAction.Entities.WebServiceEntity -{ - /// - /// Represent service login object - /// - public class LoginResult - { - #region [Private memebers] - - private bool _isSuccesfull = false; - private string _sessionId = ""; - private LoginData _auth = null; - #endregion - - #region [Public properties] - - public LoginResultType LoginResultType { get; set; } - - /// - /// Get or set service perform status - /// - public bool IsSuccesfull - { - get { return _isSuccesfull; } - set { _isSuccesfull = value; } - } - - /// - /// Current user session identifier - /// - public string SessionId - { - get { return _sessionId; } - } - - /// - /// User authentification data - /// - public LoginData AuthenticationData - { - get { return _auth; } - set { _auth = value; } - } - - public string LoginResultMessage - { - get; - set; - } - - #endregion - } -} +using System; +using System.Collections.Generic; + +using System.Text; +using CxViewerAction.Helpers; +using CxViewerAction.CxVSWebService; +using Common; + +namespace CxViewerAction.Entities.WebServiceEntity +{ + /// + /// Represent service login object + /// + public class LoginResult + { + #region [Private memebers] + + private bool _isSuccesfull = false; + private string _sessionId = ""; + private LoginData _auth = null; + #endregion + + #region [Public properties] + + public LoginResultType LoginResultType { get; set; } + + /// + /// Get or set service perform status + /// + public bool IsSuccesfull + { + get { return _isSuccesfull; } + set { _isSuccesfull = value; } + } + + /// + /// Current user session identifier + /// + public string SessionId + { + get { return _sessionId; } + } + + /// + /// User authentification data + /// + public LoginData AuthenticationData + { + get { return _auth; } + set { _auth = value; } + } + + public string LoginResultMessage + { + get; + set; + } + + #endregion + } +} diff --git a/CxViewerAction/Entities/WebServiceEntity/PerspectiveResult.cs b/CxActionShared/Entities/WebServiceEntity/PerspectiveResult.cs similarity index 95% rename from CxViewerAction/Entities/WebServiceEntity/PerspectiveResult.cs rename to CxActionShared/Entities/WebServiceEntity/PerspectiveResult.cs index 201daf6a..65bdc73e 100644 --- a/CxViewerAction/Entities/WebServiceEntity/PerspectiveResult.cs +++ b/CxActionShared/Entities/WebServiceEntity/PerspectiveResult.cs @@ -1,53 +1,53 @@ -using System; -using System.Collections.Generic; - -using System.Text; -using CxViewerAction.Helpers; - -namespace CxViewerAction.Entities -{ - /// - /// Represent service perspective object - /// - public class PerspectiveResult - { - #region [Private Members] - - private bool _isSuccesfull = false; - private string _reportUrl = string.Empty; - - #endregion - - #region [Public properties] - - /// - /// Get or set service perform status - /// - public bool IsSuccesfull - { - get { return _isSuccesfull; } - set { _isSuccesfull = value; } - } - - /// - /// Generated report URL - /// - public string ReportUrl - { - get { return _reportUrl; } - set { _reportUrl = value; } - } - - #endregion - - /// - /// Convert PerspectiveResult from xml - /// - /// xml string - /// - public static PerspectiveResult FromXml(string xml) - { - return XmlHelper.ParsePerspectiveResult(xml); - } - } -} +using System; +using System.Collections.Generic; + +using System.Text; +using CxViewerAction.Helpers; + +namespace CxViewerAction.Entities +{ + /// + /// Represent service perspective object + /// + public class PerspectiveResult + { + #region [Private Members] + + private bool _isSuccesfull = false; + private string _reportUrl = string.Empty; + + #endregion + + #region [Public properties] + + /// + /// Get or set service perform status + /// + public bool IsSuccesfull + { + get { return _isSuccesfull; } + set { _isSuccesfull = value; } + } + + /// + /// Generated report URL + /// + public string ReportUrl + { + get { return _reportUrl; } + set { _reportUrl = value; } + } + + #endregion + + /// + /// Convert PerspectiveResult from xml + /// + /// xml string + /// + public static PerspectiveResult FromXml(string xml) + { + return XmlHelper.ParsePerspectiveResult(xml); + } + } +} diff --git a/CxViewerAction/Entities/WebServiceEntity/PresetResult.cs b/CxActionShared/Entities/WebServiceEntity/PresetResult.cs similarity index 95% rename from CxViewerAction/Entities/WebServiceEntity/PresetResult.cs rename to CxActionShared/Entities/WebServiceEntity/PresetResult.cs index 79fe5567..dfc9b133 100644 --- a/CxViewerAction/Entities/WebServiceEntity/PresetResult.cs +++ b/CxActionShared/Entities/WebServiceEntity/PresetResult.cs @@ -1,54 +1,54 @@ -using System; -using System.Collections.Generic; - -using System.Text; -using CxViewerAction.Helpers; - -namespace CxViewerAction.Entities.WebServiceEntity -{ - /// - /// Represent service preset object - /// - public class PresetResult - { - #region [Private memebers] - private bool _isSuccesfull = false; - private Dictionary _presets = null; - #endregion - - #region [Public properties] - - /// - /// Get or set service perform status - /// - public bool IsSuccesfull - { - get { return _isSuccesfull; } - set { _isSuccesfull = value; } - } - - /// - /// Get or set list of presets - /// - public Dictionary Presets - { - get { return _presets; } - set { _presets = value; } - } - #endregion - - #region [Static methods] - - /// - /// Convert PresetResult from xml - /// - /// xml string - /// - public static PresetResult FromXml(string xml) - { - return XmlHelper.ParsePresetResult(xml); - } - - #endregion - } -} +using System; +using System.Collections.Generic; + +using System.Text; +using CxViewerAction.Helpers; + +namespace CxViewerAction.Entities.WebServiceEntity +{ + /// + /// Represent service preset object + /// + public class PresetResult + { + #region [Private memebers] + private bool _isSuccesfull = false; + private Dictionary _presets = null; + #endregion + + #region [Public properties] + + /// + /// Get or set service perform status + /// + public bool IsSuccesfull + { + get { return _isSuccesfull; } + set { _isSuccesfull = value; } + } + + /// + /// Get or set list of presets + /// + public Dictionary Presets + { + get { return _presets; } + set { _presets = value; } + } + #endregion + + #region [Static methods] + + /// + /// Convert PresetResult from xml + /// + /// xml string + /// + public static PresetResult FromXml(string xml) + { + return XmlHelper.ParsePresetResult(xml); + } + + #endregion + } +} diff --git a/CxViewerAction/Entities/WebServiceEntity/QueryDescriptionResult.cs b/CxActionShared/Entities/WebServiceEntity/QueryDescriptionResult.cs similarity index 96% rename from CxViewerAction/Entities/WebServiceEntity/QueryDescriptionResult.cs rename to CxActionShared/Entities/WebServiceEntity/QueryDescriptionResult.cs index ae22293d..846fc31c 100644 --- a/CxViewerAction/Entities/WebServiceEntity/QueryDescriptionResult.cs +++ b/CxActionShared/Entities/WebServiceEntity/QueryDescriptionResult.cs @@ -1,106 +1,106 @@ -using System; -using System.Collections.Generic; - -using System.Text; -using CxViewerAction.Helpers; -using CxViewerAction.Services; -using CxViewerAction.CxVSWebService; - -namespace CxViewerAction.Entities.WebServiceEntity -{ - public class QueryDescriptionResult - { - #region [Private Constants] - - private const string _fileFormat = "cxQuery{0}.htm"; - - #endregion - - #region [Private Members] - - private int _queryId = 0; - private bool _isSuccesfull = false; - private string _description = string.Empty; - - #endregion - - #region [Public Properties] - - /// - /// Gets or sets query identifier - /// - public int QueryId - { - get { return _queryId; } - set { _queryId = value; } - } - - /// - /// Gets or sets value indication that object received succesfull - /// - public bool IsSuccesfull - { - get { return _isSuccesfull; } - set { _isSuccesfull = value; } - } - - /// - /// Gets or sets query description - /// - public string Description - { - get { return _description; } - set { _description = value; } - } - - #endregion - - #region [Public Methods] - - /// - /// Save query description object to file - /// - /// - public bool Save() - { - return StorageHelper.Save(Description, string.Format(_fileFormat, QueryId)); - } - - /// - /// Read query description from file - /// - /// - public void Read() - { - Description = StorageHelper.Read(string.Format(_fileFormat, QueryId)); - } - - public string GetFileDescription() - { - string fileOut; - return (StorageHelper.FileExist(string.Format(_fileFormat, QueryId), out fileOut)) ? fileOut : null; - } - - #endregion - - #region [Static Methods] - - /// - /// Get query object from xml - /// - /// - /// - public static QueryDescriptionResult FromXml(string xml) - { - return XmlHelper.ParseQueryDescriptionResult(xml); - } - - public static CxWSResponseQueryDescription GetById(int queryId) - { - return CxWebServiceClient.GetQueryDesription(queryId); - } - - #endregion - - } -} +using System; +using System.Collections.Generic; + +using System.Text; +using CxViewerAction.Helpers; +using CxViewerAction.Services; +using CxViewerAction.CxVSWebService; + +namespace CxViewerAction.Entities.WebServiceEntity +{ + public class QueryDescriptionResult + { + #region [Private Constants] + + private const string _fileFormat = "cxQuery{0}.htm"; + + #endregion + + #region [Private Members] + + private int _queryId = 0; + private bool _isSuccesfull = false; + private string _description = string.Empty; + + #endregion + + #region [Public Properties] + + /// + /// Gets or sets query identifier + /// + public int QueryId + { + get { return _queryId; } + set { _queryId = value; } + } + + /// + /// Gets or sets value indication that object received succesfull + /// + public bool IsSuccesfull + { + get { return _isSuccesfull; } + set { _isSuccesfull = value; } + } + + /// + /// Gets or sets query description + /// + public string Description + { + get { return _description; } + set { _description = value; } + } + + #endregion + + #region [Public Methods] + + /// + /// Save query description object to file + /// + /// + public bool Save() + { + return StorageHelper.Save(Description, string.Format(_fileFormat, QueryId)); + } + + /// + /// Read query description from file + /// + /// + public void Read() + { + Description = StorageHelper.Read(string.Format(_fileFormat, QueryId)); + } + + public string GetFileDescription() + { + string fileOut; + return (StorageHelper.FileExist(string.Format(_fileFormat, QueryId), out fileOut)) ? fileOut : null; + } + + #endregion + + #region [Static Methods] + + /// + /// Get query object from xml + /// + /// + /// + public static QueryDescriptionResult FromXml(string xml) + { + return XmlHelper.ParseQueryDescriptionResult(xml); + } + + public static CxWSResponseQueryDescription GetById(int queryId) + { + return CxWebServiceClient.GetQueryDesription(queryId); + } + + #endregion + + } +} diff --git a/CxViewerAction/Entities/WebServiceEntity/ReportQueryResult.cs b/CxActionShared/Entities/WebServiceEntity/ReportQueryResult.cs similarity index 95% rename from CxViewerAction/Entities/WebServiceEntity/ReportQueryResult.cs rename to CxActionShared/Entities/WebServiceEntity/ReportQueryResult.cs index 8d669153..e7920378 100644 --- a/CxViewerAction/Entities/WebServiceEntity/ReportQueryResult.cs +++ b/CxActionShared/Entities/WebServiceEntity/ReportQueryResult.cs @@ -1,478 +1,480 @@ -using System; -using System.Collections.Generic; - -using System.Text; -using CxViewerAction.Views.DockedView; - -namespace CxViewerAction.Entities.WebServiceEntity -{ - public enum ReportQuerySeverityType - { - None = -1, - Information = 0, - Low = 1, - Medium = 2, - High = 3 - } - - public enum ViewerTreeNodeType - { - Root = 1, - QueryGroup = 2, - Query = 3, - Uknown = 10000 - } - - public class TreeNodeData : EventArgs - { - public TreeNodeData(ViewerTreeNodeType type, int id, string name, long scanId, ReportQuerySeverityType severity, ReportQueryResult queryResult) - { - Type = type; - Id = id; - Name = name; - ScanId = scanId; - Severity = severity; - QueryResult = queryResult; - } - - public long ScanId - { - get; - set; - } - - public int Id - { - get; - set; - } - - public string Name - { - get; - set; - } - - public ViewerTreeNodeType Type - { - get; - set; - } - - public ReportQuerySeverityType Severity - { - get; - set; - } - - public ReportQueryResult QueryResult - { - get; - set; - } - } - - public class ReportQueryItemPathResult : IPerspectiveProblemFile, IComparable - { - #region [Private Members] - - private string _fileName = string.Empty; - private int _line = 0; - private int _column = 0; - private int _length = 0; - private string _name = string.Empty; - private int _nodeId = 0; - private ReportQueryResult _query = null; - private ReportQueryItemResult _queryItem = null; - - #endregion - - #region [Public Properties] - /// - /// Gets or sets query problem file name - /// - public string FileName - { - get { return _fileName; } - set { _fileName = value; } - } - - /// - /// Gets or sets query problem line position - /// - public int Line - { - get { return _line; } - set { _line = value; } - } - - /// - /// Gets or sets query problem column position - /// - public int Column - { - get { return _column; } - set { _column = value; } - } - - /// - /// Gets or sets query problem name - /// - public string Name - { - get { return _name; } - set { _name = value; } - } - - /// - /// Gets or sets query problem length - /// - public int Length - { - get { return _length; } - set { _length = value; } - } - - /// - /// Gets or sets node position - /// - public int NodeId - { - get { return _nodeId; } - set { _nodeId = value; } - } - - public string UniqueID - { - get - { - return string.Format("{0}_{1}_{2}_{3}", Name, Line, Column, FileName); - } - } - - /// - /// Gets or sets parent element - /// - public ReportQueryResult Query - { - get { return _query; } - set { _query = value; } - } - - /// - /// Gets or seta parent container - /// - public ReportQueryItemResult QueryItem - { - get { return _queryItem; } - set { _queryItem = value; } - } - - #endregion - - #region IComparable Members - - public int CompareTo(object obj) - { - IPerspectiveProblemFile r = (IPerspectiveProblemFile)obj; - - if( - r.Line == Line && - r.Column == Column && - r.FileName == FileName && - r.Length == Length && - r.Name == Name - ) - { - return 0; - } - else - return 1; - } - - #endregion - - #region IPerspectiveProblemFile Members - - int currentPathIndex; - public int CurrentPathIndex - { - get - { - return currentPathIndex; - } - set - { - currentPathIndex = value; - } - } - - public TreeNodeData NodeData - { - get; - set; - } - #endregion - } - - public class ReportQueryItemResult : IComparable - { - #region [Private Members] - - private ReportQueryResult _query = null; - private int _nodeId = 0; - private string _fileName = string.Empty; - private int _line = 0; - private int _column = 0; - private List _paths = null; - - #endregion - - #region [Public Properties] - - /// - /// Gets or sets query report node identifier - /// - public ReportQueryResult Query - { - get { return _query; } - set { _query = value; } - } - - /// - /// Gets or sets query report node identifier - /// - public int NodeId - { - get { return _nodeId; } - set { _nodeId = value; } - } - - bool falsePositive; - public bool FalsePositive - { - get { return falsePositive; } - set { falsePositive = value; } - } - - string remark = string.Empty; - public string Remark - { - get { return remark; } - set { remark = value; } - } - - long pathId = 0; - public long PathId - { - get { return pathId; } - set { pathId = value; } - } - - long resultId = 0; - public long ResultId - { - get { return resultId; } - set { resultId = value; } - } - - /// - /// Gets or sets query problem file name - /// - public string FileName - { - get { return _fileName; } - set { _fileName = value; } - } - - /// - /// Gets or sets query problem line position - /// - public int Line - { - get { return _line; } - set { _line = value; } - } - - /// - /// Gets or sets query problem column position - /// - public int Column - { - get { return _column; } - set { _column = value; } - } - - /// - /// Gets or sets query problem path - /// - public List Paths - { - get { return _paths; } - set { _paths = value; } - } - - #endregion - - #region IComparable Members - - public int CompareTo(object obj) - { - ReportQueryItemResult item = (ReportQueryItemResult)obj; - - if (item.Column == Column && - item.FileName == FileName && - item.Line == Line && - item.Paths.Count == Paths.Count) - { - int compare = 0; - for (int i = 0; i < Paths.Count; i++) - { - ReportQueryItemPathResult r1 = Paths[i]; - ReportQueryItemPathResult r2 = item.Paths[i]; - - if (r1.CompareTo(r2) != 0) - { - compare = 1; - break; - } - } - - return compare; - } - else - return 1; - } - - #endregion - } - - public class ReportQueryResult - { - #region [Private Members] - - private int _id = 0; - private int _cweId = 0; - private string _name = string.Empty; - private string _group = string.Empty; - private ReportQuerySeverityType _severity = ReportQuerySeverityType.None; - private List _paths = null; - private ReportResult _report = null; - - #endregion - - #region [Public Properties] - - /// - /// Gets or sets query identifier - /// - public int Id - { - get { return _id; } - set { _id = value; } - } - - /// - /// Gets or sets query Cwe identifier - /// - public int CweId - { - get { return _cweId; } - set { _cweId = value; } - } - - /// - /// Gets or sets query name - /// - public string Name - { - get { return _name; } - set { _name = value; } - } - - /// - /// Gets or sets query group - /// - public string Group - { - get { return _group; } - set { _group = value; } - } - - /// - /// Gets or sets query problem importance - /// - public ReportQuerySeverityType Severity - { - get { return _severity; } - set { _severity = value; } - } - - /// - /// Gets or sets query report list - /// - public List Paths - { - get { return _paths; } - set { _paths = value; } - } - - /// - /// Gets or sets parent element - /// - public ReportResult Report - { - get { return _report; } - set { _report = value; } - } - - public int AmountOfResults - { - get; - set; - } - - public long ScanId - { - get; - set; - } - - public long QueryVersionCode - { - get; - set; - } - - #endregion - - #region [Static methods] - public static ReportQuerySeverityType SeverityTypeFromString(string str) - { - ReportQuerySeverityType type; - switch (str) - { - case "Information": type = ReportQuerySeverityType.Information; break; - case "Low": type = ReportQuerySeverityType.Low; break; - case "Medium": type = ReportQuerySeverityType.Medium; break; - case "High": type = ReportQuerySeverityType.High; break; - default: type = ReportQuerySeverityType.None; break; - } - - return type; - } - #endregion - } - - public class ReportQueryResultComparer : IComparer - { - #region IComparer Members - - public int Compare(ReportQueryResult x, ReportQueryResult y) - { - return y.Severity.CompareTo(x.Severity); - } - - #endregion - } -} +using System; +using System.Collections.Generic; + +using System.Text; +using CxViewerAction.Views.DockedView; + +namespace CxViewerAction.Entities.WebServiceEntity +{ + public enum ReportQuerySeverityType + { + None = -1, + Information = 0, + Low = 1, + Medium = 2, + High = 3, + Critical = 4 + } + + public enum ViewerTreeNodeType + { + Root = 1, + QueryGroup = 2, + Query = 3, + Uknown = 10000 + } + + public class TreeNodeData : EventArgs + { + public TreeNodeData(ViewerTreeNodeType type, int id, string name, long scanId, ReportQuerySeverityType severity, ReportQueryResult queryResult) + { + Type = type; + Id = id; + Name = name; + ScanId = scanId; + Severity = severity; + QueryResult = queryResult; + } + + public long ScanId + { + get; + set; + } + + public int Id + { + get; + set; + } + + public string Name + { + get; + set; + } + + public ViewerTreeNodeType Type + { + get; + set; + } + + public ReportQuerySeverityType Severity + { + get; + set; + } + + public ReportQueryResult QueryResult + { + get; + set; + } + } + + public class ReportQueryItemPathResult : IPerspectiveProblemFile, IComparable + { + #region [Private Members] + + private string _fileName = string.Empty; + private int _line = 0; + private int _column = 0; + private int _length = 0; + private string _name = string.Empty; + private int _nodeId = 0; + private ReportQueryResult _query = null; + private ReportQueryItemResult _queryItem = null; + + #endregion + + #region [Public Properties] + /// + /// Gets or sets query problem file name + /// + public string FileName + { + get { return _fileName; } + set { _fileName = value; } + } + + /// + /// Gets or sets query problem line position + /// + public int Line + { + get { return _line; } + set { _line = value; } + } + + /// + /// Gets or sets query problem column position + /// + public int Column + { + get { return _column; } + set { _column = value; } + } + + /// + /// Gets or sets query problem name + /// + public string Name + { + get { return _name; } + set { _name = value; } + } + + /// + /// Gets or sets query problem length + /// + public int Length + { + get { return _length; } + set { _length = value; } + } + + /// + /// Gets or sets node position + /// + public int NodeId + { + get { return _nodeId; } + set { _nodeId = value; } + } + + public string UniqueID + { + get + { + return string.Format("{0}_{1}_{2}_{3}", Name, Line, Column, FileName); + } + } + + /// + /// Gets or sets parent element + /// + public ReportQueryResult Query + { + get { return _query; } + set { _query = value; } + } + + /// + /// Gets or seta parent container + /// + public ReportQueryItemResult QueryItem + { + get { return _queryItem; } + set { _queryItem = value; } + } + + #endregion + + #region IComparable Members + + public int CompareTo(object obj) + { + IPerspectiveProblemFile r = (IPerspectiveProblemFile)obj; + + if( + r.Line == Line && + r.Column == Column && + r.FileName == FileName && + r.Length == Length && + r.Name == Name + ) + { + return 0; + } + else + return 1; + } + + #endregion + + #region IPerspectiveProblemFile Members + + int currentPathIndex; + public int CurrentPathIndex + { + get + { + return currentPathIndex; + } + set + { + currentPathIndex = value; + } + } + + public TreeNodeData NodeData + { + get; + set; + } + #endregion + } + + public class ReportQueryItemResult : IComparable + { + #region [Private Members] + + private ReportQueryResult _query = null; + private int _nodeId = 0; + private string _fileName = string.Empty; + private int _line = 0; + private int _column = 0; + private List _paths = null; + + #endregion + + #region [Public Properties] + + /// + /// Gets or sets query report node identifier + /// + public ReportQueryResult Query + { + get { return _query; } + set { _query = value; } + } + + /// + /// Gets or sets query report node identifier + /// + public int NodeId + { + get { return _nodeId; } + set { _nodeId = value; } + } + + bool falsePositive; + public bool FalsePositive + { + get { return falsePositive; } + set { falsePositive = value; } + } + + string remark = string.Empty; + public string Remark + { + get { return remark; } + set { remark = value; } + } + + long pathId = 0; + public long PathId + { + get { return pathId; } + set { pathId = value; } + } + + long resultId = 0; + public long ResultId + { + get { return resultId; } + set { resultId = value; } + } + + /// + /// Gets or sets query problem file name + /// + public string FileName + { + get { return _fileName; } + set { _fileName = value; } + } + + /// + /// Gets or sets query problem line position + /// + public int Line + { + get { return _line; } + set { _line = value; } + } + + /// + /// Gets or sets query problem column position + /// + public int Column + { + get { return _column; } + set { _column = value; } + } + + /// + /// Gets or sets query problem path + /// + public List Paths + { + get { return _paths; } + set { _paths = value; } + } + + #endregion + + #region IComparable Members + + public int CompareTo(object obj) + { + ReportQueryItemResult item = (ReportQueryItemResult)obj; + + if (item.Column == Column && + item.FileName == FileName && + item.Line == Line && + item.Paths.Count == Paths.Count) + { + int compare = 0; + for (int i = 0; i < Paths.Count; i++) + { + ReportQueryItemPathResult r1 = Paths[i]; + ReportQueryItemPathResult r2 = item.Paths[i]; + + if (r1.CompareTo(r2) != 0) + { + compare = 1; + break; + } + } + + return compare; + } + else + return 1; + } + + #endregion + } + + public class ReportQueryResult + { + #region [Private Members] + + private int _id = 0; + private int _cweId = 0; + private string _name = string.Empty; + private string _group = string.Empty; + private ReportQuerySeverityType _severity = ReportQuerySeverityType.None; + private List _paths = null; + private ReportResult _report = null; + + #endregion + + #region [Public Properties] + + /// + /// Gets or sets query identifier + /// + public int Id + { + get { return _id; } + set { _id = value; } + } + + /// + /// Gets or sets query Cwe identifier + /// + public int CweId + { + get { return _cweId; } + set { _cweId = value; } + } + + /// + /// Gets or sets query name + /// + public string Name + { + get { return _name; } + set { _name = value; } + } + + /// + /// Gets or sets query group + /// + public string Group + { + get { return _group; } + set { _group = value; } + } + + /// + /// Gets or sets query problem importance + /// + public ReportQuerySeverityType Severity + { + get { return _severity; } + set { _severity = value; } + } + + /// + /// Gets or sets query report list + /// + public List Paths + { + get { return _paths; } + set { _paths = value; } + } + + /// + /// Gets or sets parent element + /// + public ReportResult Report + { + get { return _report; } + set { _report = value; } + } + + public int AmountOfResults + { + get; + set; + } + + public long ScanId + { + get; + set; + } + + public long QueryVersionCode + { + get; + set; + } + + #endregion + + #region [Static methods] + public static ReportQuerySeverityType SeverityTypeFromString(string str) + { + ReportQuerySeverityType type; + switch (str) + { + case "Information": type = ReportQuerySeverityType.Information; break; + case "Low": type = ReportQuerySeverityType.Low; break; + case "Medium": type = ReportQuerySeverityType.Medium; break; + case "High": type = ReportQuerySeverityType.High; break; + case "Critical": type = ReportQuerySeverityType.Critical; break; + default: type = ReportQuerySeverityType.None; break; + } + + return type; + } + #endregion + } + + public class ReportQueryResultComparer : IComparer + { + #region IComparer Members + + public int Compare(ReportQueryResult x, ReportQueryResult y) + { + return y.Severity.CompareTo(x.Severity); + } + + #endregion + } +} diff --git a/CxViewerAction/Entities/WebServiceEntity/ReportResult.cs b/CxActionShared/Entities/WebServiceEntity/ReportResult.cs similarity index 93% rename from CxViewerAction/Entities/WebServiceEntity/ReportResult.cs rename to CxActionShared/Entities/WebServiceEntity/ReportResult.cs index 628b6429..a2faeb62 100644 --- a/CxViewerAction/Entities/WebServiceEntity/ReportResult.cs +++ b/CxActionShared/Entities/WebServiceEntity/ReportResult.cs @@ -1,92 +1,97 @@ -using System; -using CxViewerAction.Helpers; -using System.Collections.Generic; - -namespace CxViewerAction.Entities.WebServiceEntity -{ - /// - /// Represent report result object - /// - public class ReportResult - { - #region [Private members] - - List _problems = new List(); - Dictionary> _tree; - - #endregion - - - /// - /// Get or set list detected source problems - /// - public List Problems - { - get { return _problems; } - set { _problems = value; } - } - - /// - /// Get tree list of problems where top level are severity types with personal report list - /// - public Dictionary> Tree - { - get - { - if (_tree != null) - return _tree; - - Dictionary> tepmTree = new Dictionary>(); - - _tree = new Dictionary>(); - _problems.Sort(new ReportQueryResultComparer()); - - foreach (ReportQueryResult problem in _problems) - { - if (!tepmTree.ContainsKey(problem.Severity)) - tepmTree.Add(problem.Severity, new List()); - - tepmTree[problem.Severity].Add(problem); - } - - if (tepmTree.ContainsKey(ReportQuerySeverityType.High)) - { - _tree.Add(ReportQuerySeverityType.High, tepmTree[ReportQuerySeverityType.High]); - } - - if (tepmTree.ContainsKey(ReportQuerySeverityType.Medium)) - { - _tree.Add(ReportQuerySeverityType.Medium, tepmTree[ReportQuerySeverityType.Medium]); - } - - if (tepmTree.ContainsKey(ReportQuerySeverityType.Low)) - { - _tree.Add(ReportQuerySeverityType.Low, tepmTree[ReportQuerySeverityType.Low]); - } - - if (tepmTree.ContainsKey(ReportQuerySeverityType.Information)) - { - _tree.Add(ReportQuerySeverityType.Information, tepmTree[ReportQuerySeverityType.Information]); - } - - if (tepmTree.ContainsKey(ReportQuerySeverityType.None)) - { - _tree.Add(ReportQuerySeverityType.None, tepmTree[ReportQuerySeverityType.None]); - } - - return _tree; - } - set { _tree = value; } - } - - /// - /// Convert ReportResult object from xml - /// - /// xml string - /// - public static ReportResult FromXml(string xml) - { - return XmlHelper.ParseReportResult(xml); - } - } -} +using System; +using CxViewerAction.Helpers; +using System.Collections.Generic; + +namespace CxViewerAction.Entities.WebServiceEntity +{ + /// + /// Represent report result object + /// + public class ReportResult + { + #region [Private members] + + List _problems = new List(); + Dictionary> _tree; + + #endregion + + + /// + /// Get or set list detected source problems + /// + public List Problems + { + get { return _problems; } + set { _problems = value; } + } + + /// + /// Get tree list of problems where top level are severity types with personal report list + /// + public Dictionary> Tree + { + get + { + if (_tree != null) + return _tree; + + Dictionary> tepmTree = new Dictionary>(); + + _tree = new Dictionary>(); + _problems.Sort(new ReportQueryResultComparer()); + + foreach (ReportQueryResult problem in _problems) + { + if (!tepmTree.ContainsKey(problem.Severity)) + tepmTree.Add(problem.Severity, new List()); + + tepmTree[problem.Severity].Add(problem); + } + + if (tepmTree.ContainsKey(ReportQuerySeverityType.Critical)) + { + _tree.Add(ReportQuerySeverityType.Critical, tepmTree[ReportQuerySeverityType.Critical]); + } + + if (tepmTree.ContainsKey(ReportQuerySeverityType.High)) + { + _tree.Add(ReportQuerySeverityType.High, tepmTree[ReportQuerySeverityType.High]); + } + + if (tepmTree.ContainsKey(ReportQuerySeverityType.Medium)) + { + _tree.Add(ReportQuerySeverityType.Medium, tepmTree[ReportQuerySeverityType.Medium]); + } + + if (tepmTree.ContainsKey(ReportQuerySeverityType.Low)) + { + _tree.Add(ReportQuerySeverityType.Low, tepmTree[ReportQuerySeverityType.Low]); + } + + if (tepmTree.ContainsKey(ReportQuerySeverityType.Information)) + { + _tree.Add(ReportQuerySeverityType.Information, tepmTree[ReportQuerySeverityType.Information]); + } + + if (tepmTree.ContainsKey(ReportQuerySeverityType.None)) + { + _tree.Add(ReportQuerySeverityType.None, tepmTree[ReportQuerySeverityType.None]); + } + + return _tree; + } + set { _tree = value; } + } + + /// + /// Convert ReportResult object from xml + /// + /// xml string + /// + public static ReportResult FromXml(string xml) + { + return XmlHelper.ParseReportResult(xml); + } + } +} diff --git a/CxViewerAction/Entities/WebServiceEntity/RunScanResult.cs b/CxActionShared/Entities/WebServiceEntity/RunScanResult.cs similarity index 96% rename from CxViewerAction/Entities/WebServiceEntity/RunScanResult.cs rename to CxActionShared/Entities/WebServiceEntity/RunScanResult.cs index 4b28928c..91fb2891 100644 --- a/CxViewerAction/Entities/WebServiceEntity/RunScanResult.cs +++ b/CxActionShared/Entities/WebServiceEntity/RunScanResult.cs @@ -1,64 +1,64 @@ -using System; -using System.Collections.Generic; -using CxViewerAction.Helpers; - -namespace CxViewerAction.Entities.WebServiceEntity -{ - /// - /// Run scan object - /// - public class RunScanResult - { - #region [Private memebers] - private bool _isSuccesfull = false; - private string _scanId = null; - private StatusScanResult _statusResult = null; - #endregion - - #region [Public properties] - - /// - /// Get or set service perform status - /// - public bool IsSuccesfull - { - get { return _isSuccesfull; } - set { _isSuccesfull = value; } - } - - /// - /// Get or set scan identifier - /// - public string ScanId - { - get { return _scanId; } - set { _scanId = value; } - } - - /// - /// Get or set status scan result - /// - public StatusScanResult StatusResult - { - get { return _statusResult; } - set { _statusResult = value; } - } - - public long ProjectId { get; set; } - #endregion - - #region [Static methods] - - /// - /// Convert RunScanResult from xml - /// - /// xml string - /// - public static RunScanResult FromXml(string xml) - { - return XmlHelper.ParseRunScanResult(xml); - } - - #endregion - } -} +using System; +using System.Collections.Generic; +using CxViewerAction.Helpers; + +namespace CxViewerAction.Entities.WebServiceEntity +{ + /// + /// Run scan object + /// + public class RunScanResult + { + #region [Private memebers] + private bool _isSuccesfull = false; + private string _scanId = null; + private StatusScanResult _statusResult = null; + #endregion + + #region [Public properties] + + /// + /// Get or set service perform status + /// + public bool IsSuccesfull + { + get { return _isSuccesfull; } + set { _isSuccesfull = value; } + } + + /// + /// Get or set scan identifier + /// + public string ScanId + { + get { return _scanId; } + set { _scanId = value; } + } + + /// + /// Get or set status scan result + /// + public StatusScanResult StatusResult + { + get { return _statusResult; } + set { _statusResult = value; } + } + + public long ProjectId { get; set; } + #endregion + + #region [Static methods] + + /// + /// Convert RunScanResult from xml + /// + /// xml string + /// + public static RunScanResult FromXml(string xml) + { + return XmlHelper.ParseRunScanResult(xml); + } + + #endregion + } +} diff --git a/CxViewerAction/Entities/WebServiceEntity/StatusScanResult.cs b/CxActionShared/Entities/WebServiceEntity/StatusScanResult.cs similarity index 96% rename from CxViewerAction/Entities/WebServiceEntity/StatusScanResult.cs rename to CxActionShared/Entities/WebServiceEntity/StatusScanResult.cs index 3b8d6470..01a6d02e 100644 --- a/CxViewerAction/Entities/WebServiceEntity/StatusScanResult.cs +++ b/CxActionShared/Entities/WebServiceEntity/StatusScanResult.cs @@ -1,213 +1,213 @@ -using System; -using CxViewerAction.Helpers; -using CxViewerAction.CxVSWebService; - -namespace CxViewerAction.Entities.WebServiceEntity -{ - /// - /// Scan status - /// - public enum RunStatus - { - /// - /// Unknown status - /// - None = 0, - - /// - /// Scan run - /// - Running = 1, - - /// - /// Scan finished - /// - Finished = 2, - - /// - /// Project are queued for scan - /// - Queued = 3, - - /// - /// Scan cann't be processed - /// - Failed = 4 - } - - /// - /// Represent remote service status scan object - /// - public class StatusScanResult - { - #region [Private memebers] - private bool _isSuccesfull = false; - private string _runId = null; - private CurrentStatusEnum _runStatus = CurrentStatusEnum.Unknown; - private int _totalPercent = 0; - private int _currentStage = 0; - private string _stageName = null; - private int _currentStagePercent = 0; - private string _stageMessage = null; - private string _stepMessage = null; - private string _details = null; - private string _timeStarted = null; - private string _timeFinished = null; - private int _queuePosition = 0; - #endregion - - #region [Public properties] - - /// - /// Get or set service perform status - /// - public bool IsSuccesfull - { - get { return _isSuccesfull; } - set { _isSuccesfull = value; } - } - - /// - /// Get or set scan identifier - /// - public string RunId - { - get { return _runId; } - set { _runId = value; } - } - - /// - /// Get or set scan status - /// - public CurrentStatusEnum RunStatus - { - get { return _runStatus; } - set { _runStatus = value; } - } - - /// - /// Get or set completed work status in percent - /// - public int TotalPercent - { - get { return _totalPercent; } - set { _totalPercent = value; } - } - - /// - /// Get or set current stage number - /// - public int CurrentStage - { - get { return _currentStage; } - set { _currentStage = value; } - } - - /// - /// Get or set current stage name - /// - public string StageName - { - get { return _stageName; } - set { _stageName = value; } - } - - /// - /// Get or set current stage completed work in percent - /// - public int CurrentStagePercent - { - get { return _currentStagePercent; } - set { _currentStagePercent = value; } - } - - /// - /// Get or set stage message - /// - public string StageMessage - { - get { return _stageMessage; } - set { _stageMessage = value; } - } - - /// - /// Get or set step message - /// - public string StepMessage - { - get { return _stepMessage; } - set { _stepMessage = value; } - } - - /// - /// Get or set scan details - /// - public string Details - { - get { return _details; } - set { _details = value; } - } - - /// - /// Get or set scan start time - /// - public string TimeStarted - { - get { return _timeStarted; } - set { _timeStarted = value; } - } - - /// - /// Get or set scan end time - /// - public string TimeFinished - { - get { return _timeFinished; } - set { _timeFinished = value; } - } - - /// - /// Get or set queue project position in scan status is 'Queue' - /// - public int QueuePosition - { - get { return _queuePosition; } - set { _queuePosition = value; } - } - #endregion - - #region [Static methods] - /// - /// Convert StatusScanResult object from xml - /// - /// - /// - public static StatusScanResult FromXml(string xml) - { - return XmlHelper.ParseStatusScanResult(xml); - } - - /// - /// Convert RunStatus object from string - /// - /// - /// - public static CurrentStatusEnum GetRunStatus(string xml) - { - CurrentStatusEnum status = CurrentStatusEnum.Unknown; - - switch(xml) - { - case "Finished": status = CurrentStatusEnum.Finished; break; - case "Queued": status = CurrentStatusEnum.Queued; break; - case "Failed": status = CurrentStatusEnum.Failed; break; - case "Canceled": status = CurrentStatusEnum.Canceled; break; - case "Deleted": status = CurrentStatusEnum.Deleted; break; - case "Working": status = CurrentStatusEnum.Working; break; - } - - return status; - } - #endregion - } -} +using System; +using CxViewerAction.Helpers; +using CxViewerAction.CxVSWebService; + +namespace CxViewerAction.Entities.WebServiceEntity +{ + /// + /// Scan status + /// + public enum RunStatus + { + /// + /// Unknown status + /// + None = 0, + + /// + /// Scan run + /// + Running = 1, + + /// + /// Scan finished + /// + Finished = 2, + + /// + /// Project are queued for scan + /// + Queued = 3, + + /// + /// Scan cann't be processed + /// + Failed = 4 + } + + /// + /// Represent remote service status scan object + /// + public class StatusScanResult + { + #region [Private memebers] + private bool _isSuccesfull = false; + private string _runId = null; + private CurrentStatusEnum _runStatus = CurrentStatusEnum.Unknown; + private int _totalPercent = 0; + private int _currentStage = 0; + private string _stageName = null; + private int _currentStagePercent = 0; + private string _stageMessage = null; + private string _stepMessage = null; + private string _details = null; + private string _timeStarted = null; + private string _timeFinished = null; + private int _queuePosition = 0; + #endregion + + #region [Public properties] + + /// + /// Get or set service perform status + /// + public bool IsSuccesfull + { + get { return _isSuccesfull; } + set { _isSuccesfull = value; } + } + + /// + /// Get or set scan identifier + /// + public string RunId + { + get { return _runId; } + set { _runId = value; } + } + + /// + /// Get or set scan status + /// + public CurrentStatusEnum RunStatus + { + get { return _runStatus; } + set { _runStatus = value; } + } + + /// + /// Get or set completed work status in percent + /// + public int TotalPercent + { + get { return _totalPercent; } + set { _totalPercent = value; } + } + + /// + /// Get or set current stage number + /// + public int CurrentStage + { + get { return _currentStage; } + set { _currentStage = value; } + } + + /// + /// Get or set current stage name + /// + public string StageName + { + get { return _stageName; } + set { _stageName = value; } + } + + /// + /// Get or set current stage completed work in percent + /// + public int CurrentStagePercent + { + get { return _currentStagePercent; } + set { _currentStagePercent = value; } + } + + /// + /// Get or set stage message + /// + public string StageMessage + { + get { return _stageMessage; } + set { _stageMessage = value; } + } + + /// + /// Get or set step message + /// + public string StepMessage + { + get { return _stepMessage; } + set { _stepMessage = value; } + } + + /// + /// Get or set scan details + /// + public string Details + { + get { return _details; } + set { _details = value; } + } + + /// + /// Get or set scan start time + /// + public string TimeStarted + { + get { return _timeStarted; } + set { _timeStarted = value; } + } + + /// + /// Get or set scan end time + /// + public string TimeFinished + { + get { return _timeFinished; } + set { _timeFinished = value; } + } + + /// + /// Get or set queue project position in scan status is 'Queue' + /// + public int QueuePosition + { + get { return _queuePosition; } + set { _queuePosition = value; } + } + #endregion + + #region [Static methods] + /// + /// Convert StatusScanResult object from xml + /// + /// + /// + public static StatusScanResult FromXml(string xml) + { + return XmlHelper.ParseStatusScanResult(xml); + } + + /// + /// Convert RunStatus object from string + /// + /// + /// + public static CurrentStatusEnum GetRunStatus(string xml) + { + CurrentStatusEnum status = CurrentStatusEnum.Unknown; + + switch(xml) + { + case "Finished": status = CurrentStatusEnum.Finished; break; + case "Queued": status = CurrentStatusEnum.Queued; break; + case "Failed": status = CurrentStatusEnum.Failed; break; + case "Canceled": status = CurrentStatusEnum.Canceled; break; + case "Deleted": status = CurrentStatusEnum.Deleted; break; + case "Working": status = CurrentStatusEnum.Working; break; + } + + return status; + } + #endregion + } +} diff --git a/CxViewerAction/Entities/WebServiceEntity/TeamResult.cs b/CxActionShared/Entities/WebServiceEntity/TeamResult.cs similarity index 96% rename from CxViewerAction/Entities/WebServiceEntity/TeamResult.cs rename to CxActionShared/Entities/WebServiceEntity/TeamResult.cs index f68d400e..289ca3b1 100644 --- a/CxViewerAction/Entities/WebServiceEntity/TeamResult.cs +++ b/CxActionShared/Entities/WebServiceEntity/TeamResult.cs @@ -1,79 +1,79 @@ -using System; -using System.Collections.Generic; - -using System.Text; -using CxViewerAction.Helpers; - -namespace CxViewerAction.Entities.WebServiceEntity -{ - /// - /// Represent remote service team object - /// - public class TeamResult - { - #region [Private memebers] - /// - /// Service perform request successfully - /// - private bool _isSuccesfull = false; - - /// - /// Teams dictionary - /// - private Dictionary _teams = null; - #endregion - - #region [Public properties] - /// - /// Get or set service perform status - /// - public bool IsSuccesfull - { - get { return _isSuccesfull; } - set { _isSuccesfull = value; } - } - - /// - /// Get or set teams dictionary - /// - public Dictionary Teams - { - get { return _teams; } - set { _teams = value; } - } - - /// - /// Get first team name - /// - public string FirstTeamKey - { - get - { - KeyValuePair fisrt = new KeyValuePair(); - - foreach (KeyValuePair item in _teams) - { - fisrt = item; - break; - } - - return fisrt.Key; - } - } - #endregion - - #region [Static methods] - - /// - /// Convert xml to TeamResult object - /// - /// - /// - public static TeamResult FromXml(string xml) - { - return XmlHelper.ParseTeamResult(xml); - } - - #endregion - } -} +using System; +using System.Collections.Generic; + +using System.Text; +using CxViewerAction.Helpers; + +namespace CxViewerAction.Entities.WebServiceEntity +{ + /// + /// Represent remote service team object + /// + public class TeamResult + { + #region [Private memebers] + /// + /// Service perform request successfully + /// + private bool _isSuccesfull = false; + + /// + /// Teams dictionary + /// + private Dictionary _teams = null; + #endregion + + #region [Public properties] + /// + /// Get or set service perform status + /// + public bool IsSuccesfull + { + get { return _isSuccesfull; } + set { _isSuccesfull = value; } + } + + /// + /// Get or set teams dictionary + /// + public Dictionary Teams + { + get { return _teams; } + set { _teams = value; } + } + + /// + /// Get first team name + /// + public string FirstTeamKey + { + get + { + KeyValuePair fisrt = new KeyValuePair(); + + foreach (KeyValuePair item in _teams) + { + fisrt = item; + break; + } + + return fisrt.Key; + } + } + #endregion + + #region [Static methods] + + /// + /// Convert xml to TeamResult object + /// + /// + /// + public static TeamResult FromXml(string xml) + { + return XmlHelper.ParseTeamResult(xml); + } + + #endregion + } +} diff --git a/CxViewerAction/Helpers/BackgroundWorkerHelper.cs b/CxActionShared/Helpers/BackgroundWorkerHelper.cs similarity index 94% rename from CxViewerAction/Helpers/BackgroundWorkerHelper.cs rename to CxActionShared/Helpers/BackgroundWorkerHelper.cs index 1ebd9ca4..283f8e69 100644 --- a/CxViewerAction/Helpers/BackgroundWorkerHelper.cs +++ b/CxActionShared/Helpers/BackgroundWorkerHelper.cs @@ -1,229 +1,232 @@ -using System; -using System.Collections.Generic; - -using System.Text; -using System.Threading; -using System.Windows.Forms; -using CxViewerAction.Views; -using Common; - -namespace CxViewerAction.Helpers -{ - /// - /// Perform background work by parallel threads to improve UI responsibility - /// - public class BackgroundWorkerHelper - { - #region [Private Constants] - - /// - /// Set the numbers of attempts to execute function in exeception occurs - /// - private int _repeatCountOnException = 3; - - /// - /// Set the delay interval beetween repeat - /// - private int _repeatIntervalOnException = 15000; - - #endregion - - #region [Private Members] - - /// - /// Main background worker delegate - /// - private delegate object _doWorkDelegate(object state); - - /// - /// Main background worker funck - /// - private Action _doWorkFunc = null; - - /// - /// Relogin handler - /// - private EventHandler _doReloginFunc = null; - - #endregion - - #region [Public Properties] - - static bool _isReloginInvoked; - public static bool IsReloginInvoked { get { return _isReloginInvoked; } set { _isReloginInvoked = value; } } - - public Action DoWorkFunc - { - get { return _doWorkFunc; } - set { _doWorkFunc = value; } - } - - public EventHandler DoReloginFunc - { - get { return _doReloginFunc; } - set { _doReloginFunc = value; } - } - - #endregion - - #region [Constructors] - - public BackgroundWorkerHelper(int reconnectInterval, int reconnectCount) - { - _repeatIntervalOnException = reconnectInterval; - _repeatCountOnException = reconnectCount; - } - - public BackgroundWorkerHelper(Action func, int reconnectInterval, int reconnectCount) - { - _doWorkFunc = func; - _repeatIntervalOnException = reconnectInterval; - _repeatCountOnException = reconnectCount; - } - - public BackgroundWorkerHelper(Action func) - { - _doWorkFunc = func; - } - - #endregion - - #region [Public Methods] - - /// - /// Perform background job and show view while process executes - /// - /// View title message - /// If false - cancel buton in supported view was pressed - public bool DoWork(string message) - { - if (_doWorkFunc == null) - return false; - - // Show perform operation dialog - bool canceling = false; - IWaitView waitView = new WaitFrm(message, delegate(object sender, EventArgs e) { canceling = true; }); - - int repeatNum = 1; - string errorMessage = null; - bool success = false; - - do - { - try - { - if (Invoke(message, waitView) || canceling) - { - success = true; - break; - } - } - catch (Exception ex) - { - Logger.Create().Error(ex.ToString()); - LoginHelper.DoLogout(); - errorMessage = ex.Message; - message = string.Format("Reconnection attempt #{0}...", repeatNum.ToString()); - - DateTime waitTo = DateTime.Now.AddMilliseconds(_repeatIntervalOnException); - - while (!(canceling || DateTime.Now > waitTo)) - { - Application.DoEvents(); - Thread.Sleep(10); - } - - if (canceling) - break; - } - } - while (repeatNum++ <= _repeatCountOnException); - - if (success || canceling) - { - if (!string.IsNullOrEmpty(message)) - waitView.CloseView(); - - return !canceling ? success : false; - } - - bool executionResult = false; - - while (true) - { - try - { - ErrorFrm frmError = new ErrorFrm(errorMessage, delegate(object o, EventArgs e) { executionResult = Invoke("Reconnection...", waitView); }, _doReloginFunc); - DialogResult res = frmError.ShowDialog(); - - if (res == DialogResult.Cancel) - break; - - if (res != DialogResult.OK) - { - if (_doReloginFunc != null) - { - IsReloginInvoked = true; - _doReloginFunc.BeginInvoke(null, null, null, null); - - } - break; - } - - if (executionResult) - break; - } - catch (Exception ex) - { - Logger.Create().Error(ex.ToString()); - } - } - - if (!string.IsNullOrEmpty(message)) - waitView.CloseView(); - - return executionResult; - } - - public void DoWork() - { - if (_doWorkFunc == null) - return; - - - try - { - _doWorkFunc.BeginInvoke(null, null, null); - } - catch (Exception ex) - { - Logger.Create().Error(ex.ToString()); - } - - } - - private bool Invoke(string message, IWaitView waitView) - { - if (!string.IsNullOrEmpty(message)) - waitView.ShowView(); - - waitView.ProgressDialogMessage = message; - - // Perform work - IAsyncResult res = _doWorkFunc.BeginInvoke(null, null, null); - - // Whait wail operation complete and this time execute waiting app threads - while (!res.IsCompleted) - { - Application.DoEvents(); - Thread.Sleep(10); - } - - _doWorkFunc.EndInvoke(res); - // Close perform operation dialog - return true; - } - - #endregion - } -} +using System; +using System.Collections.Generic; + +using System.Text; +using System.Threading; +using System.Windows.Forms; +using CxViewerAction.Views; +using Common; + +namespace CxViewerAction.Helpers +{ + /// + /// Perform background work by parallel threads to improve UI responsibility + /// + public class BackgroundWorkerHelper + { + #region [Private Constants] + + /// + /// Set the numbers of attempts to execute function in exeception occurs + /// + private int _repeatCountOnException = 3; + + /// + /// Set the delay interval beetween repeat + /// + private int _repeatIntervalOnException = 15000; + + #endregion + + #region [Private Members] + + /// + /// Main background worker delegate + /// + private delegate object _doWorkDelegate(object state); + + /// + /// Main background worker funck + /// + private Action _doWorkFunc = null; + + /// + /// Relogin handler + /// + private EventHandler _doReloginFunc = null; + + #endregion + + #region [Public Properties] + + static bool _isReloginInvoked; + public static bool IsReloginInvoked { get { return _isReloginInvoked; } set { _isReloginInvoked = value; } } + + public Action DoWorkFunc + { + get { return _doWorkFunc; } + set { _doWorkFunc = value; } + } + + public EventHandler DoReloginFunc + { + get { return _doReloginFunc; } + set { _doReloginFunc = value; } + } + + #endregion + + #region [Constructors] + + public BackgroundWorkerHelper(int reconnectInterval, int reconnectCount) + { + _repeatIntervalOnException = reconnectInterval; + _repeatCountOnException = reconnectCount; + } + + public BackgroundWorkerHelper(Action func, int reconnectInterval, int reconnectCount) + { + _doWorkFunc = func; + _repeatIntervalOnException = reconnectInterval; + _repeatCountOnException = reconnectCount; + } + + public BackgroundWorkerHelper(Action func) + { + _doWorkFunc = func; + } + + #endregion + + #region [Public Methods] + + /// + /// Perform background job and show view while process executes + /// + /// View title message + /// If false - cancel buton in supported view was pressed + public bool DoWork(string message) + { + if (_doWorkFunc == null) + return false; + + // Show perform operation dialog + bool canceling = false; + IWaitView waitView = new WaitFrm(message, delegate(object sender, EventArgs e) { canceling = true; }); + + int repeatNum = 1; + string errorMessage = null; + bool success = false; + + do + { + try + { + Logger.Create().Debug("DoWork" + message); + + if (Invoke(message, waitView) || canceling) + { + success = true; + break; + } + } + catch (Exception ex) + { + Logger.Create().Error(ex.ToString()); + LoginHelper.DoLogout(); + errorMessage = ex.Message; + message = string.Format("Reconnection attempt #{0}...", repeatNum.ToString()); + + DateTime waitTo = DateTime.Now.AddMilliseconds(_repeatIntervalOnException); + + while (!(canceling || DateTime.Now > waitTo)) + { + Application.DoEvents(); + Thread.Sleep(10); + } + + if (canceling) + break; + } + } + while (repeatNum++ <= _repeatCountOnException); + + if (success || canceling) + { + if (!string.IsNullOrEmpty(message)) + waitView.CloseView(); + + return !canceling ? success : false; + } + + bool executionResult = false; + + while (true) + { + try + { + Logger.Create().Debug("DoWork - Reconnection " + message); + ErrorFrm frmError = new ErrorFrm(errorMessage, delegate (object o, EventArgs e) { executionResult = Invoke("Reconnection...", waitView); }, _doReloginFunc); + DialogResult res = frmError.ShowDialog(); + + if (res == DialogResult.Cancel) + break; + + if (res != DialogResult.OK) + { + if (_doReloginFunc != null) + { + IsReloginInvoked = true; + _doReloginFunc.BeginInvoke(null, null, null, null); + + } + break; + } + + if (executionResult) + break; + } + catch (Exception ex) + { + Logger.Create().Error(ex.ToString()); + } + } + + if (!string.IsNullOrEmpty(message)) + waitView.CloseView(); + + return executionResult; + } + + public void DoWork() + { + if (_doWorkFunc == null) + return; + + + try + { + _doWorkFunc.BeginInvoke(null, null, null); + } + catch (Exception ex) + { + Logger.Create().Error(ex.ToString()); + } + + } + + private bool Invoke(string message, IWaitView waitView) + { + if (!string.IsNullOrEmpty(message)) + waitView.ShowView(); + + waitView.ProgressDialogMessage = message; + + // Perform work + IAsyncResult res = _doWorkFunc.BeginInvoke(null, null, null); + + // Whait wail operation complete and this time execute waiting app threads + while (!res.IsCompleted) + { + Application.DoEvents(); + Thread.Sleep(10); + } + + _doWorkFunc.EndInvoke(res); + // Close perform operation dialog + return true; + } + + #endregion + } +} diff --git a/CxViewerAction/Helpers/BindProjectHelper.cs b/CxActionShared/Helpers/BindProjectHelper.cs similarity index 90% rename from CxViewerAction/Helpers/BindProjectHelper.cs rename to CxActionShared/Helpers/BindProjectHelper.cs index 53e6b2aa..8110a681 100644 --- a/CxViewerAction/Helpers/BindProjectHelper.cs +++ b/CxActionShared/Helpers/BindProjectHelper.cs @@ -1,280 +1,286 @@ -using System; -using System.Collections.Generic; -using CxViewerAction.Entities.WebServiceEntity; -using CxViewerAction.Entities; -using CxViewerAction.Entities.Enum; -using CxViewerAction.Dispatchers; -using CxViewerAction.Services; -using CxViewerAction.CxVSWebService; -using Common; -using CxViewerAction.MenuLogic; - -namespace CxViewerAction.Helpers -{ - public class BindProjectHelper - { - #region [Constants] - - /// - /// Wait dialog caption message - /// - private const string RETRIEVE_RESULTS_LOADING_TEXT = "Retrieving data..."; - - #endregion - - #region [Private Members] - - private static IDispatcher _dispatcher; - private static bool _canceled; - static bool isSelectingChanging; - static bool isSelectionBlocked; - - #endregion [Private Members] - - #region [Public Members] - - public static bool IsSelectingChanging - { - get { return isSelectingChanging; } - set { isSelectingChanging = value; } - } - - public static bool IsSelectionBlocked - { - get { return isSelectionBlocked; } - set { isSelectionBlocked = value; } - } - - #endregion - - - #region Private Methods - - internal static ProjectScanStatuses BindProject(Entities.Project project) - { - Logger.Create().Debug("BindProjectByType in"); - ProjectScanStatuses status = ProjectScanStatuses.CanceledByUser; - try - { - - status = LoginAndBindSelectedProject(project); - if (status == ProjectScanStatuses.Success) - { - - ShowResultLogic showResultLogic = new ShowResultLogic(); - showResultLogic.Act(); - - status = ProjectScanStatuses.Success; - } - else if (status == ProjectScanStatuses.CanceledByUser) - { - //Do nothing... - } - else - { - TopMostMessageBox.Show("Unable to retrieve results.", "Error", System.Windows.Forms.MessageBoxButtons.OK); - } - - CommonActionsInstance.getInstance().ClearScanProgressView(); - - CommonActionsInstance.getInstance().CloseScanProgressView(); - - } - catch (Exception err) - { - Logger.Create().Error(err); - } - return status; - } - - static ProjectScanStatuses LoginAndBindSelectedProject(Entities.Project project) - { - - OidcLoginData oidcLoginData = OidcLoginData.GetOidcLoginDataInstance(); - LoginData loginData = LoginHelper.LoadSaved(); - LoginResult loginResult = new LoginResult(); - bool cancelPressed = false; - if (oidcLoginData.AccessToken == null) - { - //Execute login - loginResult = LoginHelper.DoLoginWithoutForm(out cancelPressed, false); - if (!loginResult.IsSuccesfull) - loginResult = LoginHelper.DoLogin(out cancelPressed); - - } - else - { - loginResult.AuthenticationData = loginData; - loginResult.IsSuccesfull = true; - } - - if (loginResult.IsSuccesfull) - { - _canceled = false; - BindSelectedProject(loginResult, project); - if (!_canceled) - return ProjectScanStatuses.Success; - else - return ProjectScanStatuses.CanceledByUser; - } - else if (!cancelPressed) - { - TopMostMessageBox.Show("Unable to connect to server.", "Log in problem"); - return ProjectScanStatuses.Error; - } - - return ProjectScanStatuses.CanceledByUser; - } - - static void BindSelectedProject(LoginResult loginResult, Entities.Project project) - { - CxWSResponseProjectsDisplayData cxWSResponseProjectsDisplayData = null; - // show bind project form - CxWebServiceClient client = null; - bool isThrewError = false; - BackgroundWorkerHelper bg = new BackgroundWorkerHelper(delegate - { - try - { - client = new CxWebServiceClient(loginResult.AuthenticationData); - } - catch (Exception e) - { - Logger.Create().Error(e.ToString()); - System.Windows.Forms.MessageBox.Show(e.Message, "Error", System.Windows.Forms.MessageBoxButtons.OK); - isThrewError = true; - return; - } - - if (client == null) - { - System.Windows.Forms.MessageBox.Show("Cannot connect to server", "Error", System.Windows.Forms.MessageBoxButtons.OK); - isThrewError = true; - return; - } - cxWSResponseProjectsDisplayData = client.ServiceClient.GetProjectsDisplayData(loginResult.SessionId); - - }, loginResult.AuthenticationData.ReconnectInterval * 1000, loginResult.AuthenticationData.ReconnectCount); - - //Show wait dialog and perform server request in different thread to safe UI responsibility - if (!bg.DoWork(RETRIEVE_RESULTS_LOADING_TEXT)) - return; - - if (cxWSResponseProjectsDisplayData == null || !cxWSResponseProjectsDisplayData.IsSuccesfull || isThrewError) - return; - - var bindProjectEntity = new BindProjectEntity {CxProjectsDisplayData = cxWSResponseProjectsDisplayData}; - - #region show Select Project window - - // if (projectID < 0) - // { - if (_dispatcher == null) - _dispatcher = ServiceLocators.ServiceLocator.GetDispatcher(); - - if (_dispatcher != null) - { - _dispatcher.Dispatch(bindProjectEntity); - } - - - if (bindProjectEntity.CommandResult == System.Windows.Forms.DialogResult.Cancel) - { - _canceled = true; - return; - } - // } - - #endregion - - long selectedProjectId = 0; - if (client != null && ((bindProjectEntity.SelectedProject != null && bindProjectEntity.CommandResult == System.Windows.Forms.DialogResult.OK))) - { - Logger.Create().Info("Loading project id: " + bindProjectEntity.SelectedProject.projectID); - bg.DoWorkFunc = delegate(object obj) - { - selectedProjectId = bindProjectEntity.SelectedProject.projectID; - if (loginResult.AuthenticationData.BindedProjects == null) - { - loginResult.AuthenticationData.BindedProjects = new List(); - } - - LoginData.BindProject bindProject = loginResult.AuthenticationData.BindedProjects.Find(delegate(LoginData.BindProject bp) - { - return bp.ProjectName == project.ProjectName && bp.RootPath == project.RootPath; - } - ); - bool isNewProject = true; - if (bindProject != null) - { - bindProject.BindedProjectId = selectedProjectId; - bindProject.ScanReports = new List(); - bindProject.IsBound = true; - bindProject.SelectedScanId = 0; - bindProject.IsPublic = bindProjectEntity.isPublic; - isNewProject = false; - } - else - { - bindProject = new LoginData.BindProject() - { - BindedProjectId = selectedProjectId, - RootPath = project.RootPath, - ProjectName = project.ProjectName, - ScanReports = new List(), - IsPublic = bindProjectEntity.isPublic, - IsBound = true, - }; - isNewProject = true; - } - - - CxWSResponseScansDisplayData cxWSResponseScansDisplayData = PerspectiveHelper.GetScansDisplayData(selectedProjectId); - if (cxWSResponseScansDisplayData.ScanList.Length == 0) - { - // show error about 0 scan list - System.Windows.Forms.MessageBox.Show("The chosen project doesn't contain scans", "Error", System.Windows.Forms.MessageBoxButtons.OK); - isThrewError = true; - return; - } - - foreach (ScanDisplayData item in cxWSResponseScansDisplayData.ScanList) - { - - // Add relation to scanned project and scan report - ScanReportInfo scanReportInfo = new ScanReportInfo { Id = item.ScanID }; - string minutes = item.QueuedDateTime.Minute.ToString().Length > 1 ? item.QueuedDateTime.Minute.ToString() : "0" + item.QueuedDateTime.Minute; - - scanReportInfo.Name = string.Format("{0}/{1}/{2} {3}:{4}", item.QueuedDateTime.Month, - item.QueuedDateTime.Day, - item.QueuedDateTime.Year, - item.QueuedDateTime.Hour, - minutes); - - bindProject.AddScanReport(scanReportInfo); - } - - if (bindProject.ScanReports.Count > 0) - { - CommonData.SelectedScanId = bindProject.ScanReports[0].Id; - bindProject.SelectedScanId = CommonData.SelectedScanId; - } - - if (isNewProject) - { - loginResult.AuthenticationData.BindedProjects.Add(bindProject); - } - }; - bool bCancel = !bg.DoWork("Downloading project data..."); - - if (!bCancel && !isThrewError) - { - CommonData.ProjectId = selectedProjectId; - LoginHelper.Save(loginResult.AuthenticationData); - } - } - } - - #endregion - } -} +using System; +using System.Collections.Generic; +using CxViewerAction.Entities.WebServiceEntity; +using CxViewerAction.Entities; +using CxViewerAction.Entities.Enum; +using CxViewerAction.Dispatchers; +using CxViewerAction.Services; +using CxViewerAction.CxVSWebService; +using Common; +using CxViewerAction.MenuLogic; + +namespace CxViewerAction.Helpers +{ + public class BindProjectHelper + { + #region [Constants] + + /// + /// Wait dialog caption message + /// + private const string RETRIEVE_RESULTS_LOADING_TEXT = "Retrieving data..."; + + #endregion + + #region [Private Members] + + private static IDispatcher _dispatcher; + private static bool _canceled; + static bool isSelectingChanging; + static bool isSelectionBlocked; + + #endregion [Private Members] + + #region [Public Members] + + public static bool IsSelectingChanging + { + get { return isSelectingChanging; } + set { isSelectingChanging = value; } + } + + public static bool IsSelectionBlocked + { + get { return isSelectionBlocked; } + set { isSelectionBlocked = value; } + } + + #endregion + + + #region Private Methods + + internal static ProjectScanStatuses BindProject(Entities.Project project) + { + ProjectScanStatuses status = ProjectScanStatuses.CanceledByUser; + try + { + Logger.Create().Info("Binding selected project."); + status = LoginAndBindSelectedProject(project); + if (status == ProjectScanStatuses.Success) + { + Logger.Create().Info("Bind project operation successful."); + ShowResultLogic showResultLogic = new ShowResultLogic(); + showResultLogic.Act(); + + status = ProjectScanStatuses.Success; + } + else if (status == ProjectScanStatuses.CanceledByUser) + { + //Do nothing... + Logger.Create().Debug("Bind project operation cancelled by user."); + CommonData.IsProjectBound = false; + } + else + { + TopMostMessageBox.Show("Unable to retrieve results.", "Error", System.Windows.Forms.MessageBoxButtons.OK); + } + + CommonActionsInstance.getInstance().ClearScanProgressView(); + + CommonActionsInstance.getInstance().CloseScanProgressView(); + + } + catch (Exception err) + { + Logger.Create().Error(err); + } + return status; + } + + static ProjectScanStatuses LoginAndBindSelectedProject(Entities.Project project) + { + + OidcLoginData oidcLoginData = OidcLoginData.GetOidcLoginDataInstance(); + LoginData loginData = LoginHelper.LoadSaved(); + LoginResult loginResult = new LoginResult(); + bool cancelPressed = false; + if (oidcLoginData.AccessToken == null) + { + //Execute login + Logger.Create().Info("Login for bind project operation as access token is null."); + loginResult = LoginHelper.DoLoginWithoutForm(out cancelPressed, false); + if (!loginResult.IsSuccesfull) + Logger.Create().Info("Login successful for bind project operation."); + loginResult = LoginHelper.DoLogin(out cancelPressed); + + } + else + { + loginResult.AuthenticationData = loginData; + loginResult.IsSuccesfull = true; + } + + if (loginResult.IsSuccesfull) + { + _canceled = false; + BindSelectedProject(loginResult, project); + if (!_canceled) + return ProjectScanStatuses.Success; + else + return ProjectScanStatuses.CanceledByUser; + } + else if (!cancelPressed) + { + TopMostMessageBox.Show("Unable to connect to server.", "Log in problem"); + return ProjectScanStatuses.Error; + } + + return ProjectScanStatuses.CanceledByUser; + } + + static void BindSelectedProject(LoginResult loginResult, Entities.Project project) + { + CxWSResponseProjectsDisplayData cxWSResponseProjectsDisplayData = null; + // show bind project form + CxWebServiceClient client = null; + bool isThrewError = false; + BackgroundWorkerHelper bg = new BackgroundWorkerHelper(delegate + { + try + { + client = new CxWebServiceClient(loginResult.AuthenticationData); + } + catch (Exception e) + { + Logger.Create().Error(e.ToString()); + System.Windows.Forms.MessageBox.Show(e.Message, "Error", System.Windows.Forms.MessageBoxButtons.OK); + isThrewError = true; + return; + } + + if (client == null) + { + System.Windows.Forms.MessageBox.Show("Cannot connect to server", "Error", System.Windows.Forms.MessageBoxButtons.OK); + isThrewError = true; + return; + } + Logger.Create().Info("Getting project display data."); + cxWSResponseProjectsDisplayData = client.ServiceClient.GetProjectsDisplayData(loginResult.SessionId); + Logger.Create().Debug("Received project display data. Count "+ cxWSResponseProjectsDisplayData.projectList.Length); + + }, loginResult.AuthenticationData.ReconnectInterval * 1000, loginResult.AuthenticationData.ReconnectCount); + + //Show wait dialog and perform server request in different thread to safe UI responsibility + if (!bg.DoWork(RETRIEVE_RESULTS_LOADING_TEXT)) + return; + + if (cxWSResponseProjectsDisplayData == null || !cxWSResponseProjectsDisplayData.IsSuccesfull || isThrewError) + return; + + var bindProjectEntity = new BindProjectEntity {CxProjectsDisplayData = cxWSResponseProjectsDisplayData}; + + #region show Select Project window + + // if (projectID < 0) + // { + if (_dispatcher == null) + _dispatcher = ServiceLocators.ServiceLocator.GetDispatcher(); + + if (_dispatcher != null) + { + _dispatcher.Dispatch(bindProjectEntity); + } + + + if (bindProjectEntity.CommandResult == System.Windows.Forms.DialogResult.Cancel) + { + _canceled = true; + return; + } + // } + + #endregion + + long selectedProjectId = 0; + if (client != null && ((bindProjectEntity.SelectedProject != null && bindProjectEntity.CommandResult == System.Windows.Forms.DialogResult.OK))) + { + Logger.Create().Debug("Loading project id: " + bindProjectEntity.SelectedProject.projectID); + bg.DoWorkFunc = delegate(object obj) + { + selectedProjectId = bindProjectEntity.SelectedProject.projectID; + if (loginResult.AuthenticationData.BindedProjects == null) + { + loginResult.AuthenticationData.BindedProjects = new List(); + } + + LoginData.BindProject bindProject = loginResult.AuthenticationData.BindedProjects.Find(delegate(LoginData.BindProject bp) + { + return bp.ProjectName == project.ProjectName && bp.RootPath == project.RootPath; + } + ); + bool isNewProject = true; + if (bindProject != null) + { + bindProject.BindedProjectId = selectedProjectId; + bindProject.ScanReports = new List(); + bindProject.IsBound = true; + bindProject.SelectedScanId = 0; + bindProject.IsPublic = bindProjectEntity.isPublic; + isNewProject = false; + } + else + { + bindProject = new LoginData.BindProject() + { + BindedProjectId = selectedProjectId, + RootPath = project.RootPath, + ProjectName = project.ProjectName, + ScanReports = new List(), + IsPublic = bindProjectEntity.isPublic, + IsBound = true, + }; + isNewProject = true; + } + + Logger.Create().Debug("Getting Scans display data for selected project " + selectedProjectId); + CxWSResponseScansDisplayData cxWSResponseScansDisplayData = PerspectiveHelper.GetScansDisplayData(selectedProjectId); + if (cxWSResponseScansDisplayData.ScanList.Length == 0) + { + // show error about 0 scan list + System.Windows.Forms.MessageBox.Show("The chosen project doesn't contain scans", "Error", System.Windows.Forms.MessageBoxButtons.OK); + isThrewError = true; + return; + } + + Logger.Create().Debug("Received Scans display data for selected project. Count " + cxWSResponseScansDisplayData.ScanList.Length); + foreach (ScanDisplayData item in cxWSResponseScansDisplayData.ScanList) + { + + // Add relation to scanned project and scan report + ScanReportInfo scanReportInfo = new ScanReportInfo { Id = item.ScanID }; + string minutes = item.QueuedDateTime.Minute.ToString().Length > 1 ? item.QueuedDateTime.Minute.ToString() : "0" + item.QueuedDateTime.Minute; + + scanReportInfo.Name = string.Format("{0}/{1}/{2} {3}:{4}", item.QueuedDateTime.Month, + item.QueuedDateTime.Day, + item.QueuedDateTime.Year, + item.QueuedDateTime.Hour, + minutes); + + bindProject.AddScanReport(scanReportInfo); + } + + if (bindProject.ScanReports.Count > 0) + { + CommonData.SelectedScanId = bindProject.ScanReports[0].Id; + bindProject.SelectedScanId = CommonData.SelectedScanId; + } + + if (isNewProject) + { + loginResult.AuthenticationData.BindedProjects.Add(bindProject); + } + }; + bool bCancel = !bg.DoWork("Downloading project data..."); + + if (!bCancel && !isThrewError) + { + CommonData.ProjectId = selectedProjectId; + LoginHelper.Save(loginResult.AuthenticationData); + } + } + } + + #endregion + } +} diff --git a/CxViewerAction/Helpers/ChangeResultHelper.cs b/CxActionShared/Helpers/ChangeResultHelper.cs similarity index 92% rename from CxViewerAction/Helpers/ChangeResultHelper.cs rename to CxActionShared/Helpers/ChangeResultHelper.cs index bacc36f5..4b572450 100644 --- a/CxViewerAction/Helpers/ChangeResultHelper.cs +++ b/CxActionShared/Helpers/ChangeResultHelper.cs @@ -1,108 +1,114 @@ -using System; -using CxViewerAction.Entities.Enum; -using CxViewerAction.Entities.WebServiceEntity; -using CxViewerAction.Services; -using CxViewerAction.CxVSWebService; -using System.Threading; -using CxViewerAction.Entities; - -namespace CxViewerAction.Helpers -{ - public class ChangeResultHelper - { - - public static ProjectScanStatuses EditRemark(long resultId, long pathId, string remark) - { - - LoginData loginData = LoginHelper.LoadSaved(); - OidcLoginData oidcLoginData = OidcLoginData.GetOidcLoginDataInstance(); - LoginResult loginResult = new LoginResult(); - bool cancelPressed = false; - if (oidcLoginData.AccessToken == null) { - //Execute login - loginResult = LoginHelper.DoLoginWithoutForm(out cancelPressed, false); - if (!loginResult.IsSuccesfull) - loginResult = LoginHelper.DoLogin(out cancelPressed); - - if (loginResult.IsSuccesfull) - { - return EditRemark(loginResult, resultId, pathId, remark); - } - else if (!cancelPressed) - { - TopMostMessageBox.Show("Unable to connect to server or user creadentials are invalid. Please verify data", "Log in problem"); - return ProjectScanStatuses.Error; - } - } - else { - loginResult.AuthenticationData = loginData; - loginResult.IsSuccesfull = true; - } - - return ProjectScanStatuses.CanceledByUser; - } - - - static ProjectScanStatuses EditRemark(LoginResult loginResult, long resultId, long pathId, string remark) - { - bool cxWSBasicResponse = false; - // show bind project form - CxWebServiceClient client = null; - bool isThrewError = false; - BackgroundWorkerHelper bg = new BackgroundWorkerHelper(delegate(object obj) - { - try - { - client = new CxWebServiceClient(loginResult.AuthenticationData); - } - catch (Exception e) - { - Common.Logger.Create().Error(e.ToString()); - System.Windows.Forms.MessageBox.Show(e.Message, "Error", System.Windows.Forms.MessageBoxButtons.OK); - isThrewError = true; - return; - } - - if (client == null) - { - System.Windows.Forms.MessageBox.Show("Cannot connect to server", "Error", System.Windows.Forms.MessageBoxButtons.OK); - isThrewError = true; - return; - } - ResultStateData[] dataArr = new ResultStateData[1]; - dataArr[0] = new ResultStateData() - { - data = string.Empty, - PathId = pathId, - Remarks = remark, - ResultLabelType = (int)ResultLabelTypeEnum.Remark, - scanId = resultId - }; - cxWSBasicResponse = PerspectiveHelper.UpdateResultState(dataArr); - - }, loginResult.AuthenticationData.ReconnectInterval * 1000, loginResult.AuthenticationData.ReconnectCount); - - //Show wait dialog and perform server request in different thread to safe UI responsibility - if (!bg.DoWork("Changing remark")) - return ProjectScanStatuses.CanceledByUser; - - if (!cxWSBasicResponse|| isThrewError) - { - return ProjectScanStatuses.Error; - } - - return ProjectScanStatuses.Success; - } - - - } - - public enum ResultLabelTypeEnum - { - IgnorePath = 0, - Remark = 1, - Severity = 2, - State = 3, - Assign = 4 - } -} +using System; +using CxViewerAction.Entities.Enum; +using CxViewerAction.Entities.WebServiceEntity; +using CxViewerAction.Services; +using CxViewerAction.CxVSWebService; +using System.Threading; +using CxViewerAction.Entities; +using Common; + +namespace CxViewerAction.Helpers +{ + public class ChangeResultHelper + { + + public static ProjectScanStatuses EditRemark(long resultId, long pathId, string remark) + { + + LoginData loginData = LoginHelper.LoadSaved(); + OidcLoginData oidcLoginData = OidcLoginData.GetOidcLoginDataInstance(); + LoginResult loginResult = new LoginResult(); + bool cancelPressed = false; + if (oidcLoginData.AccessToken == null) { + //Execute login + Logger.Create().Info("EditRemark():calling login without form."); + loginResult = LoginHelper.DoLoginWithoutForm(out cancelPressed, false); + if (!loginResult.IsSuccesfull) + loginResult = LoginHelper.DoLogin(out cancelPressed); + + if (loginResult.IsSuccesfull) + { + Logger.Create().Info("EditRemark():login successful."); + return EditRemark(loginResult, resultId, pathId, remark); + } + else if (!cancelPressed) + { + TopMostMessageBox.Show("Unable to connect to server or user creadentials are invalid. Please verify data", "Log in problem"); + return ProjectScanStatuses.Error; + } + } + else { + loginResult.AuthenticationData = loginData; + loginResult.IsSuccesfull = true; + return EditRemark(loginResult, resultId, pathId, remark); + + // return ProjectScanStatuses.Success; + } + + return ProjectScanStatuses.CanceledByUser; + } + + + static ProjectScanStatuses EditRemark(LoginResult loginResult, long resultId, long pathId, string remark) + { + bool cxWSBasicResponse = false; + // show bind project form + CxWebServiceClient client = null; + bool isThrewError = false; + BackgroundWorkerHelper bg = new BackgroundWorkerHelper(delegate(object obj) + { + try + { + client = new CxWebServiceClient(loginResult.AuthenticationData); + } + catch (Exception e) + { + Common.Logger.Create().Error(e.ToString()); + System.Windows.Forms.MessageBox.Show(e.Message, "Error", System.Windows.Forms.MessageBoxButtons.OK); + isThrewError = true; + return; + } + + if (client == null) + { + System.Windows.Forms.MessageBox.Show("Cannot connect to server", "Error", System.Windows.Forms.MessageBoxButtons.OK); + isThrewError = true; + return; + } + ResultStateData[] dataArr = new ResultStateData[1]; + dataArr[0] = new ResultStateData() + { + data = string.Empty, + PathId = pathId, + Remarks = remark, + ResultLabelType = (int)ResultLabelTypeEnum.Remark, + scanId = resultId + }; + cxWSBasicResponse = PerspectiveHelper.UpdateResultState(dataArr); + + }, loginResult.AuthenticationData.ReconnectInterval * 1000, loginResult.AuthenticationData.ReconnectCount); + + //Show wait dialog and perform server request in different thread to safe UI responsibility + if (!bg.DoWork("Changing remark")) + return ProjectScanStatuses.CanceledByUser; + + if (!cxWSBasicResponse|| isThrewError) + { + return ProjectScanStatuses.Error; + } + + return ProjectScanStatuses.Success; + } + + + } + + public enum ResultLabelTypeEnum + { + IgnorePath = 0, + Remark = 1, + Severity = 2, + State = 3, + Assign = 4 + } +} diff --git a/CxViewerAction/Helpers/ConfigurationHelper.cs b/CxActionShared/Helpers/ConfigurationHelper.cs similarity index 87% rename from CxViewerAction/Helpers/ConfigurationHelper.cs rename to CxActionShared/Helpers/ConfigurationHelper.cs index 94fd8175..4ba0c070 100644 --- a/CxViewerAction/Helpers/ConfigurationHelper.cs +++ b/CxActionShared/Helpers/ConfigurationHelper.cs @@ -1,37 +1,40 @@ -using CxViewerAction.CxVSWebService; -using CxViewerAction.Entities.WebServiceEntity; -using CxViewerAction.Services; -using System; -using System.Collections.Generic; -using System.Text; - -namespace CxViewerAction.Helpers -{ - internal class ConfigurationHelper : IConfigurationHelper - { - public ConfigurationResult GetConfigurationList(string sessionId, BackgroundWorkerHelper bg, CxWebServiceClient client) - { - ConfigurationResult configuration = null; - bg.DoWorkFunc = delegate(object obj) - { - configuration = new ConfigurationResult(); - CxWSResponseConfigSetList cxWSResponseConfigSetList = client.ServiceClient.GetConfigurationSetList(sessionId); - - configuration.IsSuccesfull = cxWSResponseConfigSetList.IsSuccesfull; - configuration.Configurations = new Dictionary(); - if (cxWSResponseConfigSetList != null && cxWSResponseConfigSetList.ConfigSetList.Length > 0) - { - for (int i = 0; i < cxWSResponseConfigSetList.ConfigSetList.Length; i++) - { - configuration.Configurations.Add(cxWSResponseConfigSetList.ConfigSetList[i].ID, cxWSResponseConfigSetList.ConfigSetList[i].ConfigSetName); - } - } - }; - - if (!bg.DoWork("Receive Configuration list...")) - return null; - - return configuration; - } - } -} +using Common; +using CxViewerAction.CxVSWebService; +using CxViewerAction.Entities.WebServiceEntity; +using CxViewerAction.Services; +using System; +using System.Collections.Generic; +using System.Text; + +namespace CxViewerAction.Helpers +{ + internal class ConfigurationHelper : IConfigurationHelper + { + public ConfigurationResult GetConfigurationList(string sessionId, BackgroundWorkerHelper bg, CxWebServiceClient client) + { + Logger.Create().Info("Getting configuration list."); + ConfigurationResult configuration = null; + bg.DoWorkFunc = delegate(object obj) + { + configuration = new ConfigurationResult(); + CxWSResponseConfigSetList cxWSResponseConfigSetList = client.ServiceClient.GetConfigurationSetList(sessionId); + + configuration.IsSuccesfull = cxWSResponseConfigSetList.IsSuccesfull; + configuration.Configurations = new Dictionary(); + if (cxWSResponseConfigSetList != null && cxWSResponseConfigSetList.ConfigSetList.Length > 0) + { + for (int i = 0; i < cxWSResponseConfigSetList.ConfigSetList.Length; i++) + { + configuration.Configurations.Add(cxWSResponseConfigSetList.ConfigSetList[i].ID, cxWSResponseConfigSetList.ConfigSetList[i].ConfigSetName); + } + } + }; + + if (!bg.DoWork("Receive Configuration list...")) + return null; + + Logger.Create().Debug("Configuration list received. " + configuration.ToString()); + return configuration; + } + } +} diff --git a/CxViewerAction/Helpers/DrawingHelper.cs b/CxActionShared/Helpers/DrawingHelper.cs similarity index 97% rename from CxViewerAction/Helpers/DrawingHelper.cs rename to CxActionShared/Helpers/DrawingHelper.cs index 1a7d3ea9..1e03676a 100644 --- a/CxViewerAction/Helpers/DrawingHelper.cs +++ b/CxActionShared/Helpers/DrawingHelper.cs @@ -1,118 +1,118 @@ -using System; -using System.Windows.Forms; -using System.Drawing; -using CxViewerAction.Views.Shapes; -using System.Drawing.Drawing2D; -using System.Collections.Generic; -using CxViewerAction.Entities.WebServiceEntity; -using CxViewerAction.BaseInterfaces; -using CxViewerAction.Entities; -using CxViewerAction.Views.DockedView; - -namespace CxViewerAction.Helpers -{ - public class DirectLine - { - public NodeButton button; - public GraphicsPath Path; - } - - public class DrawingHelper - { - private static readonly Pen _regularPen = new Pen(System.Drawing.Color.Gray, 1); - private static readonly Pen _selectedPen = new Pen(System.Drawing.Color.Black, 2); - private static readonly Pen _maxRelationsPen = new Pen(System.Drawing.Color.Red, 2); - private static readonly int _arrowSizeX = 3; - private static readonly int _arrowSizeY = 7; - public static List gPathList = new List(); - public static bool IsBuilding; - - public static void DrawArrow(Graphics g, Control startControl, Control endControl, Point distance, TableLayout tableLayout) - { - if (startControl == null || endControl == null) - return; - - NodeButton btnStart = (NodeButton)startControl; - NodeButton btnEnd = (NodeButton)endControl; - - Point point1 = GetMiddlePoint(startControl, true); - Point point2 = GetMiddlePoint(endControl, false); - Pen drawPen = btnStart.Selected && btnEnd.Selected ? _selectedPen : _regularPen; - - GraphicsPath gPath = new GraphicsPath(); - gPath.AddLine(point1, point2); - g.FillPath(drawPen.Brush, gPath); - g.DrawPath(drawPen, gPath); - DirectLine dLine = new DirectLine(); - dLine.Path = gPath; - //if (((btnEnd.Tag as IGraphItem).Parent as IGraphPath).DirectFlow[0].ID != (btnStart.Tag as GraphItem).ID) - //{ - NodeButton btn = new NodeButton(); - btn.Text = btnStart.Text; - btn.TableLayoutInstance = tableLayout; - btn.StartNodeItem = btnStart.Tag as GraphItem; - btn.EndNodeItem = btnEnd.Tag as GraphItem; - btn.Tag = GetNodeByStartEndItems(tableLayout.Graph.Paths, btnStart.Tag as GraphItem, btnEnd.Tag as GraphItem); //btnStart.Tag; - btn.Click += tableLayout.ChangeSelectedFileHandler; - btn.Click += tableLayout.PathItemClick; - dLine.button = btn; - //} - //else - //{ - // dLine.button = btnEnd; - //} - gPathList.Add(dLine); - - DrawArrow(g, drawPen, point2); - } - - static GraphItem GetNodeByStartEndItems(List paths, GraphItem startItem, GraphItem endItem) - { - foreach(GraphPath item in paths) - { - if (item.DirectFlow[0].ID == startItem.ID && item.DirectFlow[1].ID == endItem.ID) - { - return item.DirectFlow[1]; - } - } - return null; - } - - private static void DrawPath(Graphics g, Pen drawPen, Point point1, Point point2) - { - Point middlePoint = new Point(point1.X, point1.Y + (int)Math.Floor((double)(point2.Y - point1.Y) / 2)); - - g.DrawLines(drawPen, new Point[] { point1, middlePoint, new Point(point2.X, middlePoint.Y), point2 }); - DrawArrow(g, drawPen, point2); - } - - private static Point GetMiddlePoint(Control ctrl, bool start) - { - Point loc = ctrl.Location; - - return new Point(loc.X + (int)Math.Floor((decimal)(ctrl.Width / 2)), loc.Y + (start ? ctrl.Height : 0) - (start ? 0 : _arrowSizeY + 5)); - } - - private static void DrawArrow(Graphics g, Pen pen, Point start) - { - Point end = new Point(start.X, start.Y + _arrowSizeY); - g.DrawLine(pen, start, end); - - end = new Point(start.X, start.Y + _arrowSizeY + 5); - g.FillPolygon(new SolidBrush(pen.Color), new Point[] { end, new Point(end.X - _arrowSizeX, end.Y - _arrowSizeY), - new Point(end.X + _arrowSizeX + 1, end.Y - _arrowSizeY)}); - } - - internal static void DrawNode(Graphics g, Control c, bool selected, bool maxRelations) - { - if (selected) - g.DrawRectangle(_selectedPen, c.Bounds); - - if (maxRelations) - { - c.ForeColor = Color.Red; - g.DrawRectangle(_maxRelationsPen, c.Bounds); - } - } - } -} +using System; +using System.Windows.Forms; +using System.Drawing; +using CxViewerAction.Views.Shapes; +using System.Drawing.Drawing2D; +using System.Collections.Generic; +using CxViewerAction.Entities.WebServiceEntity; +using CxViewerAction.BaseInterfaces; +using CxViewerAction.Entities; +using CxViewerAction.Views.DockedView; + +namespace CxViewerAction.Helpers +{ + public class DirectLine + { + public NodeButton button; + public GraphicsPath Path; + } + + public class DrawingHelper + { + private static readonly Pen _regularPen = new Pen(System.Drawing.Color.Gray, 1); + private static readonly Pen _selectedPen = new Pen(System.Drawing.Color.Black, 2); + private static readonly Pen _maxRelationsPen = new Pen(System.Drawing.Color.Red, 2); + private static readonly int _arrowSizeX = 3; + private static readonly int _arrowSizeY = 7; + public static List gPathList = new List(); + public static bool IsBuilding; + + public static void DrawArrow(Graphics g, Control startControl, Control endControl, Point distance, TableLayout tableLayout) + { + if (startControl == null || endControl == null) + return; + + NodeButton btnStart = (NodeButton)startControl; + NodeButton btnEnd = (NodeButton)endControl; + + Point point1 = GetMiddlePoint(startControl, true); + Point point2 = GetMiddlePoint(endControl, false); + Pen drawPen = btnStart.Selected && btnEnd.Selected ? _selectedPen : _regularPen; + + GraphicsPath gPath = new GraphicsPath(); + gPath.AddLine(point1, point2); + g.FillPath(drawPen.Brush, gPath); + g.DrawPath(drawPen, gPath); + DirectLine dLine = new DirectLine(); + dLine.Path = gPath; + //if (((btnEnd.Tag as IGraphItem).Parent as IGraphPath).DirectFlow[0].ID != (btnStart.Tag as GraphItem).ID) + //{ + NodeButton btn = new NodeButton(); + btn.Text = btnStart.Text; + btn.TableLayoutInstance = tableLayout; + btn.StartNodeItem = btnStart.Tag as GraphItem; + btn.EndNodeItem = btnEnd.Tag as GraphItem; + btn.Tag = GetNodeByStartEndItems(tableLayout.Graph.Paths, btnStart.Tag as GraphItem, btnEnd.Tag as GraphItem); //btnStart.Tag; + btn.Click += tableLayout.ChangeSelectedFileHandler; + btn.Click += tableLayout.PathItemClick; + dLine.button = btn; + //} + //else + //{ + // dLine.button = btnEnd; + //} + gPathList.Add(dLine); + + DrawArrow(g, drawPen, point2); + } + + static GraphItem GetNodeByStartEndItems(List paths, GraphItem startItem, GraphItem endItem) + { + foreach(GraphPath item in paths) + { + if (item.DirectFlow[0].ID == startItem.ID && item.DirectFlow[1].ID == endItem.ID) + { + return item.DirectFlow[1]; + } + } + return null; + } + + private static void DrawPath(Graphics g, Pen drawPen, Point point1, Point point2) + { + Point middlePoint = new Point(point1.X, point1.Y + (int)Math.Floor((double)(point2.Y - point1.Y) / 2)); + + g.DrawLines(drawPen, new Point[] { point1, middlePoint, new Point(point2.X, middlePoint.Y), point2 }); + DrawArrow(g, drawPen, point2); + } + + private static Point GetMiddlePoint(Control ctrl, bool start) + { + Point loc = ctrl.Location; + + return new Point(loc.X + (int)Math.Floor((decimal)(ctrl.Width / 2)), loc.Y + (start ? ctrl.Height : 0) - (start ? 0 : _arrowSizeY + 5)); + } + + private static void DrawArrow(Graphics g, Pen pen, Point start) + { + Point end = new Point(start.X, start.Y + _arrowSizeY); + g.DrawLine(pen, start, end); + + end = new Point(start.X, start.Y + _arrowSizeY + 5); + g.FillPolygon(new SolidBrush(pen.Color), new Point[] { end, new Point(end.X - _arrowSizeX, end.Y - _arrowSizeY), + new Point(end.X + _arrowSizeX + 1, end.Y - _arrowSizeY)}); + } + + internal static void DrawNode(Graphics g, Control c, bool selected, bool maxRelations) + { + if (selected) + g.DrawRectangle(_selectedPen, c.Bounds); + + if (maxRelations) + { + c.ForeColor = Color.Red; + g.DrawRectangle(_maxRelationsPen, c.Bounds); + } + } + } +} diff --git a/CxViewerAction/Helpers/DrawingHelper/DirectLine.cs b/CxActionShared/Helpers/DrawingHelper/DirectLine.cs similarity index 95% rename from CxViewerAction/Helpers/DrawingHelper/DirectLine.cs rename to CxActionShared/Helpers/DrawingHelper/DirectLine.cs index a055e502..d8598167 100644 --- a/CxViewerAction/Helpers/DrawingHelper/DirectLine.cs +++ b/CxActionShared/Helpers/DrawingHelper/DirectLine.cs @@ -1,14 +1,14 @@ -using System; -using System.Collections.Generic; -using System.Text; -using CxViewerAction.Views.Shapes; -using System.Drawing.Drawing2D; - -namespace CxViewerAction.Helpers.DrawingHelper -{ - public class DirectLine - { - public NodeButton button; - public GraphicsPath Path; - } -} +using System; +using System.Collections.Generic; +using System.Text; +using CxViewerAction.Views.Shapes; +using System.Drawing.Drawing2D; + +namespace CxViewerAction.Helpers.DrawingHelper +{ + public class DirectLine + { + public NodeButton button; + public GraphicsPath Path; + } +} diff --git a/CxViewerAction/Helpers/DrawingHelper/DrawingHelper.cs b/CxActionShared/Helpers/DrawingHelper/DrawingHelper.cs similarity index 93% rename from CxViewerAction/Helpers/DrawingHelper/DrawingHelper.cs rename to CxActionShared/Helpers/DrawingHelper/DrawingHelper.cs index d3a520c6..9a4b46e8 100644 --- a/CxViewerAction/Helpers/DrawingHelper/DrawingHelper.cs +++ b/CxActionShared/Helpers/DrawingHelper/DrawingHelper.cs @@ -1,696 +1,738 @@ -using System; -using System.Windows.Forms; -using System.Drawing; -using CxViewerAction.Views.Shapes; -using System.Drawing.Drawing2D; -using System.Collections.Generic; -using CxViewerAction.Entities.WebServiceEntity; -using CxViewerAction.BaseInterfaces; -using CxViewerAction.Entities; -using CxViewerAction.Views.DockedView; -using Microsoft.Msagl.GraphViewerGdi; -using Microsoft.Msagl.Drawing; -using P2 = Microsoft.Msagl.Point; -using GeomNode = Microsoft.Msagl.Node; -using System.Reflection; -using CxViewerAction.Resources; -using System.IO; -using System.Drawing.Imaging; - -namespace CxViewerAction.Helpers.DrawingHelper -{ - public class DrawingHelper - { - #region Properties - - private static readonly Pen _regularPen = new Pen(System.Drawing.Color.Gray, 1); - private static readonly Pen _selectedPen = new Pen(System.Drawing.Color.Black, 2); - private static readonly Pen _maxRelationsPen = new Pen(System.Drawing.Color.Red, 2); - public static bool IsBuilding; - static internal PointF PointF(P2 p) { return new PointF((float)p.X, (float)p.Y); } - public static string SelectedPathItemUniqueID; - public static string SelectedNodeUniqueID; - - public static string SelectedPathItem1UniqueID; - public static string SelectedPathItem2UniqueID; - public static bool isEdgeSelected; - public static int maxReletions = 0; - #endregion - - #region Draw Arrows - - public static void DrawArrow(GViewer gLocalViewer, GraphItem nodeId1, GraphItem nodeId2, bool isSelected, Microsoft.Msagl.Drawing.Graph graph, IGraphPath path) - { - ReportQueryItemPathResult prevItem = null; - int index = 1; - bool isSelectedEdgeDrawn = false; - foreach (ReportQueryItemPathResult item in nodeId1.QueryItem.Paths) - { - Node sourceNode = graph.FindNode(item.UniqueID); - if (sourceNode == null) - { - sourceNode = new Node(item.UniqueID); - if (item.Name.Length > 12) - { - sourceNode.Label.Text = string.Format("{0}...", item.Name.Substring(0, 6)); - } - else - { - sourceNode.Label.Text = item.Name; - } - - graph.AddNode(sourceNode); - } - GraphItem newItem = new GraphItem(); - newItem.Column = nodeId1.Column; - newItem.CurrentPathIndex = item.NodeId; - newItem.FileName = nodeId1.FileName; - newItem.GraphX = nodeId1.GraphX; - newItem.GraphY = nodeId1.GraphY; - newItem.IsMultiReletions = nodeId1.IsMultiReletions; - newItem.IsPrimary = nodeId1.IsPrimary; - newItem.IsSelected = nodeId1.IsSelected; - newItem.Length = nodeId1.Length; - newItem.Line = nodeId1.Line; - newItem.Name = nodeId1.Name; - newItem.Parent = nodeId1.Parent; - newItem.QueryItem = nodeId1.QueryItem; - newItem.RelatedTo = nodeId1.RelatedTo; - newItem.RelationsFrom = nodeId1.RelationsFrom; - sourceNode.UserData = newItem; - - - if (isSelected && item.UniqueID == DrawingHelper.SelectedPathItemUniqueID && !isEdgeSelected) - { - newItem.IsSelected = true; - SetDrawDelegateByNode(sourceNode, NodeTypes.NormalSelected); - } - else - { - newItem.IsSelected = false; - SetDrawDelegateByNode(sourceNode, NodeTypes.Normal); - } - - if (prevItem != null) - { - Edge edge = IsEdgeExisted(sourceNode, prevItem.UniqueID); - if (edge == null) - { - edge = graph.AddEdge(prevItem.UniqueID, item.UniqueID); - edge.Attr.ArrowheadAtTarget = ArrowStyle.Normal; - edge.Attr.ArrowheadLength = 10; - edge.Attr.LineWidth = 2; - edge.Attr.Weight = 2; - path.QueryItemResult = nodeId1.QueryItem; - edge.UserData = path; - } - SetMaxReletions(edge); - - if (isSelected && - ((SelectedNodeUniqueID == nodeId1.UniqueID && !isEdgeSelected) || - (IsContainPath(nodeId1.QueryItem.Paths) && isEdgeSelected) || - (DrawingHelper.SelectedNodeUniqueID == null) - )) - { - edge.Attr.Color = Microsoft.Msagl.Drawing.Color.Black; - edge.Attr.Weight = 2; - edge.Attr.LineWidth = 2; - isSelectedEdgeDrawn = true; - } - else - { - edge.Attr.Color = Microsoft.Msagl.Drawing.Color.DarkGray; - edge.Attr.Weight = 2; - edge.Attr.LineWidth = 2; - } - - } - prevItem = item; - index++; - } - - prevItem = null; - index = 1; - foreach (ReportQueryItemPathResult item in nodeId2.QueryItem.Paths) - { - Node sourceNode = graph.FindNode(item.UniqueID); - if (sourceNode == null) - { - sourceNode = new Node(item.UniqueID); - if (item.Name.Length > 12) - { - sourceNode.Label.Text = string.Format("{0}...", item.Name.Substring(0, 6)); - } - else - { - sourceNode.Label.Text = item.Name; - } - graph.AddNode(sourceNode); - } - - GraphItem newItem = new GraphItem(); - newItem.Column = nodeId2.Column; - newItem.CurrentPathIndex = item.NodeId; - newItem.FileName = nodeId2.FileName; - newItem.GraphX = nodeId2.GraphX; - newItem.GraphY = nodeId2.GraphY; - newItem.IsMultiReletions = nodeId2.IsMultiReletions; - newItem.IsPrimary = nodeId2.IsPrimary; - newItem.IsSelected = nodeId2.IsSelected; - newItem.Length = nodeId2.Length; - newItem.Line = nodeId2.Line; - newItem.Name = nodeId2.Name; - newItem.Parent = nodeId2.Parent; - newItem.QueryItem = nodeId2.QueryItem; - newItem.RelatedTo = nodeId2.RelatedTo; - newItem.RelationsFrom = nodeId2.RelationsFrom; - sourceNode.UserData = newItem; - - if (isSelected && item.UniqueID == DrawingHelper.SelectedPathItemUniqueID && !isEdgeSelected) - { - newItem.IsSelected = true; - SetDrawDelegateByNode(sourceNode, NodeTypes.NormalSelected); - } - else - { - newItem.IsSelected = false; - SetDrawDelegateByNode(sourceNode, NodeTypes.Normal); - } - - if (prevItem != null) - { - Edge edge = IsEdgeExisted(sourceNode, prevItem.UniqueID); - if (edge == null) - { - edge = graph.AddEdge(prevItem.UniqueID, item.UniqueID); - edge.Attr.ArrowheadAtTarget = ArrowStyle.Normal; - edge.Attr.ArrowheadLength = 10; - path.QueryItemResult = nodeId2.QueryItem; - edge.UserData = path; - } - SetMaxReletions(edge); - - if (isSelected && - ((SelectedNodeUniqueID == nodeId2.UniqueID && !isEdgeSelected) || - (IsContainPath(nodeId2.QueryItem.Paths) && isEdgeSelected) || - (DrawingHelper.SelectedNodeUniqueID == null) - )) - { - if (!isSelectedEdgeDrawn || isEdgeSelected) - { - edge.Attr.Color = Microsoft.Msagl.Drawing.Color.Black; - edge.Attr.Weight = 2; - edge.Attr.LineWidth = 2; - } - } - else - { - //if (!isSelectedEdgeDrawn || !isEdgeSelected) - if (!isSelectedEdgeDrawn) - { - edge.Attr.Color = Microsoft.Msagl.Drawing.Color.DarkGray; - edge.Attr.Weight = 2; - edge.Attr.LineWidth = 2; - } - } - } - prevItem = item; - index++; - } - - - bool isTopNodeFound = false; - - if (isSelected && - ((IsContainPath(nodeId1.QueryItem.Paths) && isEdgeSelected) || - (DrawingHelper.SelectedNodeUniqueID == null)) - ) - { - Node firstNode = graph.FindNode(nodeId1.QueryItem.Paths[0].UniqueID); - IGraphItem item = firstNode.UserData as IGraphItem; - item.IsSelected = true; - SetDrawDelegateByNode(firstNode, NodeTypes.NormalSelected); - - isTopNodeFound = true; - - SelectedNodeUniqueID = nodeId1.UniqueID; - } - - if (!isTopNodeFound && isSelected && - ((IsContainPath(nodeId2.QueryItem.Paths) && isEdgeSelected) || - (DrawingHelper.SelectedNodeUniqueID == null)) - ) - { - Node firstNode = graph.FindNode(nodeId2.QueryItem.Paths[0].UniqueID); - IGraphItem item = firstNode.UserData as IGraphItem; - item.IsSelected = true; - SetDrawDelegateByNode(firstNode, NodeTypes.NormalSelected); - - SelectedNodeUniqueID = nodeId2.UniqueID; - } - } - - public static void SetColorOfMultiReletionNodes(Microsoft.Msagl.Drawing.Graph graph) - { - foreach (Edge item in graph.Edges) - { - List list = new List(item.SourceNode.Edges); - - if (maxReletions == list.Count && maxReletions != 2) - { - IGraphItem graphItem = item.SourceNode.UserData as IGraphItem; - if (graphItem.IsSelected) - SetDrawDelegateByNode(item.SourceNode, NodeTypes.MultiRelaitionsSelected); - else - SetDrawDelegateByNode(item.SourceNode, NodeTypes.MultiRelaitions); - } - - list = new List(item.TargetNode.Edges); - - if (maxReletions == list.Count && maxReletions != 2) - { - IGraphItem graphItem = item.TargetNode.UserData as IGraphItem; - if (graphItem.IsSelected) - SetDrawDelegateByNode(item.TargetNode, NodeTypes.MultiRelaitionsSelected); - else - SetDrawDelegateByNode(item.TargetNode, NodeTypes.MultiRelaitions); - } - } - } - - static void SetMaxReletions(Edge edge) - { - List list = new List(edge.SourceNode.Edges); - if (maxReletions < list.Count) - { - maxReletions = list.Count; - } - - list = new List(edge.TargetNode.Edges); - if (maxReletions < list.Count) - { - maxReletions = list.Count; - } - } - - static bool IsContainPath(IEnumerable list) - { - int foundIndex = 0; - foreach (ReportQueryItemPathResult item in list) - { - if (item.UniqueID == SelectedPathItem1UniqueID || item.UniqueID == SelectedPathItem2UniqueID) - { - foundIndex++; - } - } - - if (foundIndex == 2) - return true; - return false; - } - - static Edge IsEdgeExisted(Node node, string node2Id) - { - foreach (Edge item in node.Edges) - { - if ((item.Source == node.Id && item.Target == node2Id) || - (item.Source == node2Id && item.Target == node.Id) - ) - { - return item; - } - } - return null; - } - - public static void _DrawArrow(GViewer gLocalViewer, GraphItem nodeId1, GraphItem nodeId2, bool isSelected, Microsoft.Msagl.Drawing.Graph graph, IGraphPath path) - { - #region Set node 1 caption - - bool isNewEdge = false; - //Microsoft.Msagl.Drawing.Graph graph = gLocalViewer.Graph; - Node sourceNode = graph.FindNode(nodeId1.UniqueID); - if (sourceNode == null) - { - isNewEdge = true; - sourceNode = new Node(nodeId1.UniqueID); - if (nodeId1.Name.Length > 12) - { - sourceNode.Label.Text = string.Format("{0}...", nodeId1.Name.Substring(0, 6)); - } - else - { - sourceNode.Label.Text = nodeId1.Name; - } - - } - - #endregion - - #region Set node 2 caption - - Node targetNode = graph.FindNode(nodeId2.UniqueID); - if (targetNode == null) - { - isNewEdge = true; - targetNode = new Node(nodeId2.UniqueID); - if (nodeId2.Name.Length > 12) - { - targetNode.Label.Text = string.Format("{0}...", nodeId2.Name.Substring(0, 6)); - } - else - { - targetNode.Label.Text = nodeId2.Name; - } - } - - #endregion - - #region Set Drawing type - - GraphItem nodeItem1 = sourceNode.UserData as GraphItem; - GraphItem nodeItem2 = targetNode.UserData as GraphItem; - - sourceNode.UserData = nodeId1; - targetNode.UserData = nodeId2; - #endregion - - if (isNewEdge) - { - graph.AddNode(sourceNode); - graph.AddNode(targetNode); - if (nodeId1.UniqueID != nodeId2.UniqueID) - { - Edge edge = graph.AddEdge(nodeId1.UniqueID, nodeId2.UniqueID); - edge.UserData = path; - } - } - else - { - if (!IsNodesConnected(sourceNode, targetNode)) - { - if (nodeId1.UniqueID != nodeId2.UniqueID) - { - Edge edge = graph.AddEdge(nodeId1.UniqueID, nodeId2.UniqueID); - edge.UserData = path; - } - } - } - - SetNodeColor(graph, nodeId1, nodeId2, sourceNode, targetNode, isSelected); - - } - - static bool IsNodesConnected(Node sourceNode, Node targetNode) - { - foreach (Edge edg in sourceNode.Edges) - { - if (edg.SourceNode.UserData != null && - edg.TargetNode.UserData != null && - (edg.SourceNode.UserData as GraphItem).UniqueID != (targetNode.UserData as GraphItem).UniqueID && - (edg.TargetNode.UserData as GraphItem).UniqueID != (targetNode.UserData as GraphItem).UniqueID) - { - foreach (Edge edgT in targetNode.Edges) - { - if (edgT.SourceNode.UserData != null && - edgT.TargetNode.UserData != null && - (edgT.SourceNode.UserData as GraphItem).UniqueID != (sourceNode.UserData as GraphItem).UniqueID && - (edgT.TargetNode.UserData as GraphItem).UniqueID != (sourceNode.UserData as GraphItem).UniqueID) - { - return false; - } - } - } - } - return true; - } - - public static void SetEdgeByNodes(Microsoft.Msagl.Drawing.Graph graph, string sourceId, string targetId) - { - foreach (Edge edge in graph.Edges) - { - if (edge.Source == sourceId && edge.Target == targetId) - { - edge.Attr.Color = Microsoft.Msagl.Drawing.Color.Black; - edge.Attr.Weight = 2; - edge.Attr.LineWidth = 2; - } - else - { - if (edge.Source == targetId && edge.Target == sourceId) - { - edge.Attr.Color = Microsoft.Msagl.Drawing.Color.Black; - edge.Attr.Weight = 2; - edge.Attr.LineWidth = 2; - } - else - { - edge.Attr.Color = Microsoft.Msagl.Drawing.Color.LightGray; - edge.Attr.Weight = 1; - edge.Attr.LineWidth = 1; - } - } - } - } - - public static void SetNodeColor(Microsoft.Msagl.Drawing.Graph graph, GraphItem nodeId1, GraphItem nodeId2, Node sourceNode, Node targetNode, bool isSelected) - { - if (nodeId1 != null && nodeId2 != null && isSelected) - { - if (nodeId1.IsMultiReletions) - SetDrawDelegateByNode(sourceNode, NodeTypes.MultiRelaitionsSelected); - else - SetDrawDelegateByNode(sourceNode, NodeTypes.NormalSelected); - - if (nodeId2.IsMultiReletions) - SetDrawDelegateByNode(targetNode, NodeTypes.MultiRelaitionsSelected); - else - SetDrawDelegateByNode(targetNode, NodeTypes.NormalSelected); - } - else - { - if (nodeId1 != null && nodeId1.IsMultiReletions) - SetDrawDelegateByNode(sourceNode, NodeTypes.MultiRelaitions); - else - SetDrawDelegateByNode(sourceNode, NodeTypes.Normal); - - if (nodeId2 != null && nodeId2.IsMultiReletions) - SetDrawDelegateByNode(targetNode, NodeTypes.MultiRelaitions); - else - SetDrawDelegateByNode(targetNode, NodeTypes.Normal); - } - - if (nodeId1 != null && nodeId2 != null) - SetEdgeByNodes(graph, nodeId1.UniqueID, nodeId2.UniqueID); - } - - #endregion - - #region Draw Nodes - - public static void DrawNode(GViewer gLocalViewer, GraphItem item, bool selected, bool maxRelations) - { - if (gLocalViewer.InvokeRequired) - { - gLocalViewer.Invoke(new MethodInvoker(delegate() { DrawNode(gLocalViewer, item, selected, maxRelations); })); - return; - } - - Microsoft.Msagl.Drawing.Graph graph = gLocalViewer.Graph; - Node node = new Node(item.UniqueID); - if (item.Name.Length > 12) - { - node.Label.Text = string.Format("{0}...", item.Name.Substring(0, 6)); - } - else - { - node.Label.Text = item.Name; - } - node.UserData = item; - - if (selected || maxRelations) - { - if (selected && maxRelations) - { - node.DrawNodeDelegate = new DelegateToOverrideNodeRendering(CustomDrawMultiRelaitionsSelectedNode); - } - else - { - if (selected) - { - node.DrawNodeDelegate = new DelegateToOverrideNodeRendering(CustomDrawNormalSelectedNode); - } - else - { - if (maxRelations) - { - node.DrawNodeDelegate = new DelegateToOverrideNodeRendering(CustomDrawMultiRelaitionsNode); - } - else - { - node.DrawNodeDelegate = new DelegateToOverrideNodeRendering(CustomDrawNormalNode); - } - } - } - } - else - { - node.DrawNodeDelegate = new DelegateToOverrideNodeRendering(CustomDrawNormalNode); - } - graph.AddNode(node); - gLocalViewer.Graph = graph; - } - - private static bool CustomDrawNormalNode(Microsoft.Msagl.Drawing.Node node, object graphics) - { - return CustomDrawNode(node, graphics, NodeTypes.Normal); - } - - private static bool CustomDrawMultiRelaitionsSelectedNode(Microsoft.Msagl.Drawing.Node node, object graphics) - { - return CustomDrawNode(node, graphics, NodeTypes.MultiRelaitionsSelected); - } - - private static bool CustomDrawMultiRelaitionsNode(Microsoft.Msagl.Drawing.Node node, object graphics) - { - return CustomDrawNode(node, graphics, NodeTypes.MultiRelaitions); - } - - private static bool CustomDrawNormalSelectedNode(Microsoft.Msagl.Drawing.Node node, object graphics) - { - return CustomDrawNode(node, graphics, NodeTypes.NormalSelected); - } - - private static bool CustomDrawNode(Microsoft.Msagl.Drawing.Node node, object graphics, NodeTypes nodeType) - { - try - { - double width = 110; - double height = 40; - - Microsoft.Msagl.GeometryGraph geomGraph = new Microsoft.Msagl.GeometryGraph(); - GeomNode geomCreek = new Microsoft.Msagl.Node(node.Id, Microsoft.Msagl.Splines.CurveFactory.CreateBox(width, height, 0, 0, node.Attr.GeometryNode.Center)); - node.Attr.GeometryNode.BoundaryCurve = Microsoft.Msagl.Splines.CurveFactory.CreateBox(width, height, 0, 0, - node.Attr.GeometryNode.Center); - - - Graphics g = (Graphics)graphics; - - MemoryStream ms = new MemoryStream(); - switch (nodeType) - { - case NodeTypes.Normal: - CxViewerResources.NormalNode.Save(ms, ImageFormat.Png); - break; - case NodeTypes.NormalSelected: - CxViewerResources.NormalSelected.Save(ms, ImageFormat.Png); - break; - case NodeTypes.MultiRelaitions: - CxViewerResources.MultiRelaitions.Save(ms, ImageFormat.Png); - break; - case NodeTypes.MultiRelaitionsSelected: - CxViewerResources.MultiRelaitionsSelected.Save(ms, ImageFormat.Png); - break; - } - System.Drawing.Image image = System.Drawing.Image.FromStream(ms); - - //flip the image around its center - using (System.Drawing.Drawing2D.Matrix m = g.Transform) - { - using (System.Drawing.Drawing2D.Matrix saveM = m.Clone()) - { - float c = (float)node.Attr.GeometryNode.Center.Y; - - using (System.Drawing.Drawing2D.Matrix m2 = new System.Drawing.Drawing2D.Matrix(1, 0, 0, -1, 0, 2 * c)) - m.Multiply(m2); - - g.Transform = m; - - g.SetClip(FillTheGraphicsPath(node.Attr.GeometryNode.BoundaryCurve)); - - - g.DrawImage(image, new PointF((float)(node.Attr.GeometryNode.Center.X - node.Attr.GeometryNode.Width / 2), (float)(node.Attr.GeometryNode.Center.Y - node.Attr.GeometryNode.Height / 2))); - - Font myFont = new System.Drawing.Font("Helvetica", 10, System.Drawing.FontStyle.Italic); - System.Drawing.Brush myBrush = new SolidBrush(System.Drawing.Color.Blue); - - Rectangle rectString = new Rectangle(Convert.ToInt32(node.Attr.GeometryNode.Center.X - node.Attr.GeometryNode.Width / 2), Convert.ToInt32(node.Attr.GeometryNode.Center.Y - node.Attr.GeometryNode.Height / 2), Convert.ToInt32(width), Convert.ToInt32(height)); - StringFormat stringFormat = new StringFormat(); - stringFormat.Alignment = StringAlignment.Center; - stringFormat.LineAlignment = StringAlignment.Center; - - g.DrawString(node.Label.Text, myFont, myBrush, - rectString, - stringFormat - // new PointF((float)(node.Attr.GeometryNode.Center.X - node.Attr.GeometryNode.Width / 2), (float)(node.Attr.GeometryNode.Center.Y - 5)) - ); - - g.Transform = saveM; - - } - } - } - catch (Exception err) - { - Common.Logger.Create().Error(err.ToString()); - } - - return true;//returning false would enable the default rendering - } - - public static void SetDrawDelegateByNode(Microsoft.Msagl.Drawing.Node node, NodeTypes nodeType) - { - node.DrawNodeDelegate = null; - switch (nodeType) - { - case NodeTypes.Normal: - node.DrawNodeDelegate = new DelegateToOverrideNodeRendering(CustomDrawNormalNode); - break; - case NodeTypes.NormalSelected: - node.DrawNodeDelegate = new DelegateToOverrideNodeRendering(CustomDrawNormalSelectedNode); - break; - case NodeTypes.MultiRelaitions: - node.DrawNodeDelegate = new DelegateToOverrideNodeRendering(CustomDrawMultiRelaitionsNode); - break; - case NodeTypes.MultiRelaitionsSelected: - node.DrawNodeDelegate = new DelegateToOverrideNodeRendering(CustomDrawMultiRelaitionsSelectedNode); - break; - } - } - - private static System.Drawing.Drawing2D.GraphicsPath FillTheGraphicsPath(Microsoft.Msagl.Splines.ICurve iCurve) - { - Microsoft.Msagl.Splines.Curve curve = iCurve as Microsoft.Msagl.Splines.Curve; - System.Drawing.Drawing2D.GraphicsPath path = new System.Drawing.Drawing2D.GraphicsPath(); - foreach (Microsoft.Msagl.Splines.ICurve seg in curve.Segments) - AddSegmentToPath(seg, ref path); - return path; - } - - private static void AddSegmentToPath(Microsoft.Msagl.Splines.ICurve seg, ref System.Drawing.Drawing2D.GraphicsPath p) - { - const float radiansToDegrees = (float)(180.0 / Math.PI); - Microsoft.Msagl.Splines.LineSegment line = seg as Microsoft.Msagl.Splines.LineSegment; - if (line != null) - p.AddLine(PointF(line.Start), PointF(line.End)); - else - { - Microsoft.Msagl.Splines.CubicBezierSegment cb = seg as Microsoft.Msagl.Splines.CubicBezierSegment; - if (cb != null) - p.AddBezier(PointF(cb.B(0)), PointF(cb.B(1)), PointF(cb.B(2)), PointF(cb.B(3))); - else - { - Microsoft.Msagl.Splines.Ellipse ellipse = seg as Microsoft.Msagl.Splines.Ellipse; - if (ellipse != null) - p.AddArc((float)(ellipse.Center.X - ellipse.AxisA.Length), (float)(ellipse.Center.Y - ellipse.AxisB.Length), - (float)(2 * ellipse.AxisA.Length), (float)(2 * ellipse.AxisB.Length), (float)(ellipse.ParStart * radiansToDegrees), - (float)((ellipse.ParEnd - ellipse.ParStart) * radiansToDegrees)); - - } - } - } - - #endregion - - } -} +using System; +using System.Windows.Forms; +using System.Drawing; +using CxViewerAction.Views.Shapes; +using System.Drawing.Drawing2D; +using System.Collections.Generic; +using CxViewerAction.Entities.WebServiceEntity; +using CxViewerAction.BaseInterfaces; +using CxViewerAction.Entities; +using CxViewerAction.Views.DockedView; +using Microsoft.Msagl.GraphViewerGdi; +using Microsoft.Msagl.Drawing; +using P2 = Microsoft.Msagl.Point; +using GeomNode = Microsoft.Msagl.Node; +using System.Reflection; +using CxViewerAction.Resources; +using System.IO; +using System.Drawing.Imaging; + +namespace CxViewerAction.Helpers.DrawingHelper +{ + public class DrawingHelper + { + #region Properties + + private static readonly Pen _regularPen = new Pen(System.Drawing.Color.Gray, 1); + private static readonly Pen _selectedPen = new Pen(System.Drawing.Color.Black, 2); + private static readonly Pen _maxRelationsPen = new Pen(System.Drawing.Color.Red, 2); + public static bool IsBuilding; + static internal PointF PointF(P2 p) { return new PointF((float)p.X, (float)p.Y); } + public static string SelectedPathItemUniqueID; + public static string SelectedNodeUniqueID; + + public static string SelectedPathItem1UniqueID; + public static string SelectedPathItem2UniqueID; + public static bool isEdgeSelected; + public static int maxReletions = 0; + #endregion + + #region Draw Arrows + + public static void DrawArrow(GViewer gLocalViewer, GraphItem nodeId1, GraphItem nodeId2, bool isSelected, Microsoft.Msagl.Drawing.Graph graph, IGraphPath path) + { + ReportQueryItemPathResult prevItem = null; + int index = 1; + bool isSelectedEdgeDrawn = false; + foreach (ReportQueryItemPathResult item in nodeId1.QueryItem.Paths) + { + Node sourceNode = graph.FindNode(item.UniqueID); + if (sourceNode == null) + { + sourceNode = new Node(item.UniqueID); + if (item.Name.Length > 12) + { + sourceNode.Label.Text = string.Format("{0}...", item.Name.Substring(0, 6)); + } + else + { + sourceNode.Label.Text = item.Name; + } + + graph.AddNode(sourceNode); + } + GraphItem newItem = new GraphItem(); + newItem.Column = nodeId1.Column; + newItem.CurrentPathIndex = item.NodeId; + newItem.FileName = nodeId1.FileName; + newItem.GraphX = nodeId1.GraphX; + newItem.GraphY = nodeId1.GraphY; + newItem.IsMultiReletions = nodeId1.IsMultiReletions; + newItem.IsPrimary = nodeId1.IsPrimary; + newItem.IsSelected = nodeId1.IsSelected; + newItem.Length = nodeId1.Length; + newItem.Line = nodeId1.Line; + newItem.Name = nodeId1.Name; + newItem.Parent = nodeId1.Parent; + newItem.QueryItem = nodeId1.QueryItem; + newItem.RelatedTo = nodeId1.RelatedTo; + newItem.RelationsFrom = nodeId1.RelationsFrom; + sourceNode.UserData = newItem; + + + if (isSelected && item.UniqueID == DrawingHelper.SelectedPathItemUniqueID && !isEdgeSelected) + { + newItem.IsSelected = true; + SetDrawDelegateByNode(sourceNode, NodeTypes.NormalSelected); + } + else + { + newItem.IsSelected = false; + SetDrawDelegateByNode(sourceNode, NodeTypes.Normal); + } + + if (prevItem != null) + { + Edge edge = IsEdgeExisted(sourceNode, prevItem.UniqueID); + if (edge == null) + { + edge = graph.AddEdge(prevItem.UniqueID, item.UniqueID); + edge.Attr.ArrowheadAtTarget = ArrowStyle.Normal; + edge.Attr.ArrowheadLength = 10; + edge.Attr.LineWidth = 2; + edge.Attr.Weight = 2; + path.QueryItemResult = nodeId1.QueryItem; + edge.UserData = path; + } + SetMaxReletions(edge); + + if (isSelected && + ((SelectedNodeUniqueID == nodeId1.UniqueID && !isEdgeSelected) || + (IsContainPath(nodeId1.QueryItem.Paths) && isEdgeSelected) || + (DrawingHelper.SelectedNodeUniqueID == null) + )) + { + edge.Attr.Color = Microsoft.Msagl.Drawing.Color.Black; + edge.Attr.Weight = 2; + edge.Attr.LineWidth = 2; + isSelectedEdgeDrawn = true; + } + else + { + edge.Attr.Color = Microsoft.Msagl.Drawing.Color.DarkGray; + edge.Attr.Weight = 2; + edge.Attr.LineWidth = 2; + } + + } + prevItem = item; + index++; + } + + prevItem = null; + index = 1; + foreach (ReportQueryItemPathResult item in nodeId2.QueryItem.Paths) + { + Node sourceNode = graph.FindNode(item.UniqueID); + if (sourceNode == null) + { + sourceNode = new Node(item.UniqueID); + if (item.Name.Length > 12) + { + sourceNode.Label.Text = string.Format("{0}...", item.Name.Substring(0, 6)); + } + else + { + sourceNode.Label.Text = item.Name; + } + graph.AddNode(sourceNode); + } + + GraphItem newItem = new GraphItem(); + newItem.Column = nodeId2.Column; + newItem.CurrentPathIndex = item.NodeId; + newItem.FileName = nodeId2.FileName; + newItem.GraphX = nodeId2.GraphX; + newItem.GraphY = nodeId2.GraphY; + newItem.IsMultiReletions = nodeId2.IsMultiReletions; + newItem.IsPrimary = nodeId2.IsPrimary; + newItem.IsSelected = nodeId2.IsSelected; + newItem.Length = nodeId2.Length; + newItem.Line = nodeId2.Line; + newItem.Name = nodeId2.Name; + newItem.Parent = nodeId2.Parent; + newItem.QueryItem = nodeId2.QueryItem; + newItem.RelatedTo = nodeId2.RelatedTo; + newItem.RelationsFrom = nodeId2.RelationsFrom; + sourceNode.UserData = newItem; + + if (isSelected && item.UniqueID == DrawingHelper.SelectedPathItemUniqueID && !isEdgeSelected) + { + newItem.IsSelected = true; + SetDrawDelegateByNode(sourceNode, NodeTypes.NormalSelected); + } + else + { + newItem.IsSelected = false; + SetDrawDelegateByNode(sourceNode, NodeTypes.Normal); + } + + if (prevItem != null) + { + Edge edge = IsEdgeExisted(sourceNode, prevItem.UniqueID); + if (edge == null) + { + edge = graph.AddEdge(prevItem.UniqueID, item.UniqueID); + edge.Attr.ArrowheadAtTarget = ArrowStyle.Normal; + edge.Attr.ArrowheadLength = 10; + path.QueryItemResult = nodeId2.QueryItem; + edge.UserData = path; + } + SetMaxReletions(edge); + + if (isSelected && + ((SelectedNodeUniqueID == nodeId2.UniqueID && !isEdgeSelected) || + (IsContainPath(nodeId2.QueryItem.Paths) && isEdgeSelected) || + (DrawingHelper.SelectedNodeUniqueID == null) + )) + { + if (!isSelectedEdgeDrawn || isEdgeSelected) + { + edge.Attr.Color = Microsoft.Msagl.Drawing.Color.Black; + edge.Attr.Weight = 2; + edge.Attr.LineWidth = 2; + } + } + else + { + //if (!isSelectedEdgeDrawn || !isEdgeSelected) + if (!isSelectedEdgeDrawn) + { + edge.Attr.Color = Microsoft.Msagl.Drawing.Color.DarkGray; + edge.Attr.Weight = 2; + edge.Attr.LineWidth = 2; + } + } + } + prevItem = item; + index++; + } + + + bool isTopNodeFound = false; + + if (isSelected && + ((IsContainPath(nodeId1.QueryItem.Paths) && isEdgeSelected) || + (DrawingHelper.SelectedNodeUniqueID == null)) + ) + { + Node firstNode = graph.FindNode(nodeId1.QueryItem.Paths[0].UniqueID); + IGraphItem item = firstNode.UserData as IGraphItem; + item.IsSelected = true; + SetDrawDelegateByNode(firstNode, NodeTypes.NormalSelected); + + isTopNodeFound = true; + + SelectedNodeUniqueID = nodeId1.UniqueID; + } + + if (!isTopNodeFound && isSelected && + ((IsContainPath(nodeId2.QueryItem.Paths) && isEdgeSelected) || + (DrawingHelper.SelectedNodeUniqueID == null)) + ) + { + Node firstNode = graph.FindNode(nodeId2.QueryItem.Paths[0].UniqueID); + IGraphItem item = firstNode.UserData as IGraphItem; + item.IsSelected = true; + SetDrawDelegateByNode(firstNode, NodeTypes.NormalSelected); + + SelectedNodeUniqueID = nodeId2.UniqueID; + } + } + + public static void SetColorOfMultiReletionNodes(Microsoft.Msagl.Drawing.Graph graph) + { + foreach (Edge item in graph.Edges) + { + List list = new List(item.SourceNode.Edges); + + if (maxReletions == list.Count && maxReletions != 2) + { + IGraphItem graphItem = item.SourceNode.UserData as IGraphItem; + if (graphItem.IsSelected) + SetDrawDelegateByNode(item.SourceNode, NodeTypes.MultiRelaitionsSelected); + else + SetDrawDelegateByNode(item.SourceNode, NodeTypes.MultiRelaitions); + } + + list = new List(item.TargetNode.Edges); + + if (maxReletions == list.Count && maxReletions != 2) + { + IGraphItem graphItem = item.TargetNode.UserData as IGraphItem; + if (graphItem.IsSelected) + SetDrawDelegateByNode(item.TargetNode, NodeTypes.MultiRelaitionsSelected); + else + SetDrawDelegateByNode(item.TargetNode, NodeTypes.MultiRelaitions); + } + } + } + + static void SetMaxReletions(Edge edge) + { + List list = new List(edge.SourceNode.Edges); + if (maxReletions < list.Count) + { + maxReletions = list.Count; + } + + list = new List(edge.TargetNode.Edges); + if (maxReletions < list.Count) + { + maxReletions = list.Count; + } + } + + static bool IsContainPath(IEnumerable list) + { + int foundIndex = 0; + foreach (ReportQueryItemPathResult item in list) + { + if (item.UniqueID == SelectedPathItem1UniqueID || item.UniqueID == SelectedPathItem2UniqueID) + { + foundIndex++; + } + } + + if (foundIndex == 2) + return true; + return false; + } + + static Edge IsEdgeExisted(Node node, string node2Id) + { + foreach (Edge item in node.Edges) + { + if ((item.Source == node.Id && item.Target == node2Id) || + (item.Source == node2Id && item.Target == node.Id) + ) + { + return item; + } + } + return null; + } + + public static void _DrawArrow(GViewer gLocalViewer, GraphItem nodeId1, GraphItem nodeId2, bool isSelected, Microsoft.Msagl.Drawing.Graph graph, IGraphPath path) + { + #region Set node 1 caption + + bool isNewEdge = false; + //Microsoft.Msagl.Drawing.Graph graph = gLocalViewer.Graph; + Node sourceNode = graph.FindNode(nodeId1.UniqueID); + if (sourceNode == null) + { + isNewEdge = true; + sourceNode = new Node(nodeId1.UniqueID); + if (nodeId1.Name.Length > 12) + { + sourceNode.Label.Text = string.Format("{0}...", nodeId1.Name.Substring(0, 6)); + } + else + { + sourceNode.Label.Text = nodeId1.Name; + } + + } + + #endregion + + #region Set node 2 caption + + Node targetNode = graph.FindNode(nodeId2.UniqueID); + if (targetNode == null) + { + isNewEdge = true; + targetNode = new Node(nodeId2.UniqueID); + if (nodeId2.Name.Length > 12) + { + targetNode.Label.Text = string.Format("{0}...", nodeId2.Name.Substring(0, 6)); + } + else + { + targetNode.Label.Text = nodeId2.Name; + } + } + + #endregion + + #region Set Drawing type + + GraphItem nodeItem1 = sourceNode.UserData as GraphItem; + GraphItem nodeItem2 = targetNode.UserData as GraphItem; + + sourceNode.UserData = nodeId1; + targetNode.UserData = nodeId2; + #endregion + + if (isNewEdge) + { + graph.AddNode(sourceNode); + graph.AddNode(targetNode); + if (nodeId1.UniqueID != nodeId2.UniqueID) + { + Edge edge = graph.AddEdge(nodeId1.UniqueID, nodeId2.UniqueID); + edge.UserData = path; + } + } + else + { + if (!IsNodesConnected(sourceNode, targetNode)) + { + if (nodeId1.UniqueID != nodeId2.UniqueID) + { + Edge edge = graph.AddEdge(nodeId1.UniqueID, nodeId2.UniqueID); + edge.UserData = path; + } + } + } + + SetNodeColor(graph, nodeId1, nodeId2, sourceNode, targetNode, isSelected); + + } + + static bool IsNodesConnected(Node sourceNode, Node targetNode) + { + foreach (Edge edg in sourceNode.Edges) + { + if (edg.SourceNode.UserData != null && + edg.TargetNode.UserData != null && + (edg.SourceNode.UserData as GraphItem).UniqueID != (targetNode.UserData as GraphItem).UniqueID && + (edg.TargetNode.UserData as GraphItem).UniqueID != (targetNode.UserData as GraphItem).UniqueID) + { + foreach (Edge edgT in targetNode.Edges) + { + if (edgT.SourceNode.UserData != null && + edgT.TargetNode.UserData != null && + (edgT.SourceNode.UserData as GraphItem).UniqueID != (sourceNode.UserData as GraphItem).UniqueID && + (edgT.TargetNode.UserData as GraphItem).UniqueID != (sourceNode.UserData as GraphItem).UniqueID) + { + return false; + } + } + } + } + return true; + } + + public static void SetEdgeByNodes(Microsoft.Msagl.Drawing.Graph graph, string sourceId, string targetId) + { + foreach (Edge edge in graph.Edges) + { + if (edge.Source == sourceId && edge.Target == targetId) + { + edge.Attr.Color = Microsoft.Msagl.Drawing.Color.Black; + edge.Attr.Weight = 2; + edge.Attr.LineWidth = 2; + } + else + { + if (edge.Source == targetId && edge.Target == sourceId) + { + edge.Attr.Color = Microsoft.Msagl.Drawing.Color.Black; + edge.Attr.Weight = 2; + edge.Attr.LineWidth = 2; + } + else + { + edge.Attr.Color = Microsoft.Msagl.Drawing.Color.LightGray; + edge.Attr.Weight = 1; + edge.Attr.LineWidth = 1; + } + } + } + } + + public static void SetNodeColor(Microsoft.Msagl.Drawing.Graph graph, GraphItem nodeId1, GraphItem nodeId2, Node sourceNode, Node targetNode, bool isSelected) + { + if (nodeId1 != null && nodeId2 != null && isSelected) + { + if (nodeId1.IsMultiReletions) + SetDrawDelegateByNode(sourceNode, NodeTypes.MultiRelaitionsSelected); + else + SetDrawDelegateByNode(sourceNode, NodeTypes.NormalSelected); + + if (nodeId2.IsMultiReletions) + SetDrawDelegateByNode(targetNode, NodeTypes.MultiRelaitionsSelected); + else + SetDrawDelegateByNode(targetNode, NodeTypes.NormalSelected); + } + else + { + if (nodeId1 != null && nodeId1.IsMultiReletions) + SetDrawDelegateByNode(sourceNode, NodeTypes.MultiRelaitions); + else + SetDrawDelegateByNode(sourceNode, NodeTypes.Normal); + + if (nodeId2 != null && nodeId2.IsMultiReletions) + SetDrawDelegateByNode(targetNode, NodeTypes.MultiRelaitions); + else + SetDrawDelegateByNode(targetNode, NodeTypes.Normal); + } + + if (nodeId1 != null && nodeId2 != null) + SetEdgeByNodes(graph, nodeId1.UniqueID, nodeId2.UniqueID); + } + + public static Image GetResourceCloseByAssembly() + { + var assemName = Assembly.GetCallingAssembly().GetName(); + if (assemName.Name.Equals("CxViewerAction")) + return global::CxViewerAction.Resources.CxViewerResources.close24; + else + return global::CxViewerAction.Resources.CxViewerResources2019.close24; + } + #endregion + + #region Draw Nodes + + public static void DrawNode(GViewer gLocalViewer, GraphItem item, bool selected, bool maxRelations) + { + if (gLocalViewer.InvokeRequired) + { + gLocalViewer.Invoke(new MethodInvoker(delegate() { DrawNode(gLocalViewer, item, selected, maxRelations); })); + return; + } + + Microsoft.Msagl.Drawing.Graph graph = gLocalViewer.Graph; + Node node = new Node(item.UniqueID); + if (item.Name.Length > 12) + { + node.Label.Text = string.Format("{0}...", item.Name.Substring(0, 6)); + } + else + { + node.Label.Text = item.Name; + } + node.UserData = item; + + if (selected || maxRelations) + { + if (selected && maxRelations) + { + node.DrawNodeDelegate = new DelegateToOverrideNodeRendering(CustomDrawMultiRelaitionsSelectedNode); + } + else + { + if (selected) + { + node.DrawNodeDelegate = new DelegateToOverrideNodeRendering(CustomDrawNormalSelectedNode); + } + else + { + if (maxRelations) + { + node.DrawNodeDelegate = new DelegateToOverrideNodeRendering(CustomDrawMultiRelaitionsNode); + } + else + { + node.DrawNodeDelegate = new DelegateToOverrideNodeRendering(CustomDrawNormalNode); + } + } + } + } + else + { + node.DrawNodeDelegate = new DelegateToOverrideNodeRendering(CustomDrawNormalNode); + } + graph.AddNode(node); + gLocalViewer.Graph = graph; + } + + private static bool CustomDrawNormalNode(Microsoft.Msagl.Drawing.Node node, object graphics) + { + return CustomDrawNode(node, graphics, NodeTypes.Normal); + } + + private static bool CustomDrawMultiRelaitionsSelectedNode(Microsoft.Msagl.Drawing.Node node, object graphics) + { + return CustomDrawNode(node, graphics, NodeTypes.MultiRelaitionsSelected); + } + + private static bool CustomDrawMultiRelaitionsNode(Microsoft.Msagl.Drawing.Node node, object graphics) + { + return CustomDrawNode(node, graphics, NodeTypes.MultiRelaitions); + } + + private static bool CustomDrawNormalSelectedNode(Microsoft.Msagl.Drawing.Node node, object graphics) + { + return CustomDrawNode(node, graphics, NodeTypes.NormalSelected); + } + + private static bool CustomDrawNode(Microsoft.Msagl.Drawing.Node node, object graphics, NodeTypes nodeType) + { + try + { + double width = 110; + double height = 40; + + Microsoft.Msagl.GeometryGraph geomGraph = new Microsoft.Msagl.GeometryGraph(); + GeomNode geomCreek = new Microsoft.Msagl.Node(node.Id, Microsoft.Msagl.Splines.CurveFactory.CreateBox(width, height, 0, 0, node.Attr.GeometryNode.Center)); + node.Attr.GeometryNode.BoundaryCurve = Microsoft.Msagl.Splines.CurveFactory.CreateBox(width, height, 0, 0, + node.Attr.GeometryNode.Center); + + + Graphics g = (Graphics)graphics; + + MemoryStream ms = new MemoryStream(); + + /// + ///Changes for plug-513 unable to see scan results + /// + var assemName = Assembly.GetCallingAssembly().GetName(); + + switch (nodeType) + { + case NodeTypes.Normal: + if (assemName.Name.Equals("CxViewerAction")) + { + CxViewerResources.NormalNode.Save(ms, ImageFormat.Png); + } + else + { + CxViewerResources2019.NormalNode.Save(ms, ImageFormat.Png); + } + break; + case NodeTypes.NormalSelected: + if (assemName.Name.Equals("CxViewerAction")) + { + CxViewerResources.NormalSelected.Save(ms, ImageFormat.Png); + } + else + { + CxViewerResources2019.NormalSelected.Save(ms, ImageFormat.Png); + } + break; + case NodeTypes.MultiRelaitions: + if (assemName.Name.Equals("CxViewerAction")) + { + CxViewerResources.MultiRelaitions.Save(ms, ImageFormat.Png); + } + else + { + CxViewerResources2019.MultiRelaitions.Save(ms, ImageFormat.Png); + } + break; + case NodeTypes.MultiRelaitionsSelected: + if (assemName.Name.Equals("CxViewerAction")) + { + CxViewerResources.MultiRelaitionsSelected.Save(ms, ImageFormat.Png); + } + else + { + CxViewerResources2019.MultiRelaitionsSelected.Save(ms, ImageFormat.Png); + } + break; + } + System.Drawing.Image image = System.Drawing.Image.FromStream(ms); + + //flip the image around its center + using (System.Drawing.Drawing2D.Matrix m = g.Transform) + { + using (System.Drawing.Drawing2D.Matrix saveM = m.Clone()) + { + float c = (float)node.Attr.GeometryNode.Center.Y; + + using (System.Drawing.Drawing2D.Matrix m2 = new System.Drawing.Drawing2D.Matrix(1, 0, 0, -1, 0, 2 * c)) + m.Multiply(m2); + + g.Transform = m; + + g.SetClip(FillTheGraphicsPath(node.Attr.GeometryNode.BoundaryCurve)); + + + g.DrawImage(image, new PointF((float)(node.Attr.GeometryNode.Center.X - node.Attr.GeometryNode.Width / 2), (float)(node.Attr.GeometryNode.Center.Y - node.Attr.GeometryNode.Height / 2))); + + Font myFont = new System.Drawing.Font("Helvetica", 10, System.Drawing.FontStyle.Italic); + System.Drawing.Brush myBrush = new SolidBrush(System.Drawing.Color.Blue); + + Rectangle rectString = new Rectangle(Convert.ToInt32(node.Attr.GeometryNode.Center.X - node.Attr.GeometryNode.Width / 2), Convert.ToInt32(node.Attr.GeometryNode.Center.Y - node.Attr.GeometryNode.Height / 2), Convert.ToInt32(width), Convert.ToInt32(height)); + StringFormat stringFormat = new StringFormat(); + stringFormat.Alignment = StringAlignment.Center; + stringFormat.LineAlignment = StringAlignment.Center; + + g.DrawString(node.Label.Text, myFont, myBrush, + rectString, + stringFormat + // new PointF((float)(node.Attr.GeometryNode.Center.X - node.Attr.GeometryNode.Width / 2), (float)(node.Attr.GeometryNode.Center.Y - 5)) + ); + + g.Transform = saveM; + + } + } + } + catch (Exception err) + { + Common.Logger.Create().Error(err.ToString()); + } + + return true;//returning false would enable the default rendering + } + + public static void SetDrawDelegateByNode(Microsoft.Msagl.Drawing.Node node, NodeTypes nodeType) + { + node.DrawNodeDelegate = null; + switch (nodeType) + { + case NodeTypes.Normal: + node.DrawNodeDelegate = new DelegateToOverrideNodeRendering(CustomDrawNormalNode); + break; + case NodeTypes.NormalSelected: + node.DrawNodeDelegate = new DelegateToOverrideNodeRendering(CustomDrawNormalSelectedNode); + break; + case NodeTypes.MultiRelaitions: + node.DrawNodeDelegate = new DelegateToOverrideNodeRendering(CustomDrawMultiRelaitionsNode); + break; + case NodeTypes.MultiRelaitionsSelected: + node.DrawNodeDelegate = new DelegateToOverrideNodeRendering(CustomDrawMultiRelaitionsSelectedNode); + break; + } + } + + private static System.Drawing.Drawing2D.GraphicsPath FillTheGraphicsPath(Microsoft.Msagl.Splines.ICurve iCurve) + { + Microsoft.Msagl.Splines.Curve curve = iCurve as Microsoft.Msagl.Splines.Curve; + System.Drawing.Drawing2D.GraphicsPath path = new System.Drawing.Drawing2D.GraphicsPath(); + foreach (Microsoft.Msagl.Splines.ICurve seg in curve.Segments) + AddSegmentToPath(seg, ref path); + return path; + } + + private static void AddSegmentToPath(Microsoft.Msagl.Splines.ICurve seg, ref System.Drawing.Drawing2D.GraphicsPath p) + { + const float radiansToDegrees = (float)(180.0 / Math.PI); + Microsoft.Msagl.Splines.LineSegment line = seg as Microsoft.Msagl.Splines.LineSegment; + if (line != null) + p.AddLine(PointF(line.Start), PointF(line.End)); + else + { + Microsoft.Msagl.Splines.CubicBezierSegment cb = seg as Microsoft.Msagl.Splines.CubicBezierSegment; + if (cb != null) + p.AddBezier(PointF(cb.B(0)), PointF(cb.B(1)), PointF(cb.B(2)), PointF(cb.B(3))); + else + { + Microsoft.Msagl.Splines.Ellipse ellipse = seg as Microsoft.Msagl.Splines.Ellipse; + if (ellipse != null) + p.AddArc((float)(ellipse.Center.X - ellipse.AxisA.Length), (float)(ellipse.Center.Y - ellipse.AxisB.Length), + (float)(2 * ellipse.AxisA.Length), (float)(2 * ellipse.AxisB.Length), (float)(ellipse.ParStart * radiansToDegrees), + (float)((ellipse.ParEnd - ellipse.ParStart) * radiansToDegrees)); + + } + } + } + + #endregion + + } +} diff --git a/CxViewerAction/Helpers/DrawingHelper/NodeTypes.cs b/CxActionShared/Helpers/DrawingHelper/NodeTypes.cs similarity index 94% rename from CxViewerAction/Helpers/DrawingHelper/NodeTypes.cs rename to CxActionShared/Helpers/DrawingHelper/NodeTypes.cs index ca15f25b..e3fd06cc 100644 --- a/CxViewerAction/Helpers/DrawingHelper/NodeTypes.cs +++ b/CxActionShared/Helpers/DrawingHelper/NodeTypes.cs @@ -1,14 +1,14 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace CxViewerAction.Helpers.DrawingHelper -{ - public enum NodeTypes - { - Normal, - NormalSelected, - MultiRelaitions, - MultiRelaitionsSelected - } -} +using System; +using System.Collections.Generic; +using System.Text; + +namespace CxViewerAction.Helpers.DrawingHelper +{ + public enum NodeTypes + { + Normal, + NormalSelected, + MultiRelaitions, + MultiRelaitionsSelected + } +} diff --git a/CxViewerAction/Helpers/EncryptHelper.cs b/CxActionShared/Helpers/EncryptHelper.cs similarity index 97% rename from CxViewerAction/Helpers/EncryptHelper.cs rename to CxActionShared/Helpers/EncryptHelper.cs index dbc574ef..9210777f 100644 --- a/CxViewerAction/Helpers/EncryptHelper.cs +++ b/CxActionShared/Helpers/EncryptHelper.cs @@ -1,146 +1,146 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.IO; -using System.Security.Cryptography; - -namespace CxViewerAction.Helpers -{ - public class EncryptHelper - { - #region Public methods - - public static string EncryptString(string plainText) - { - return EncryptStringAES(plainText, _sharedSecret); - } - - public static string DecryptString(string cipherText) - { - return DecryptStringAES(cipherText, _sharedSecret); - } - - #endregion - - #region Private Methods - - private static byte[] _salt = Encoding.ASCII.GetBytes("o6806642kbM7c5"); - static string _sharedSecret = "9e5QRT"; - - /// - /// Encrypt the given string using AES. The string can be decrypted using - /// DecryptStringAES(). The sharedSecret parameters must match. - /// - /// The text to encrypt. - /// A password used to generate a key for encryption. - private static string EncryptStringAES(string plainText, string sharedSecret) - { - if (string.IsNullOrEmpty(plainText)) - throw new ArgumentNullException("plainText"); - if (string.IsNullOrEmpty(sharedSecret)) - throw new ArgumentNullException("sharedSecret"); - - string outStr = null; // Encrypted string to return - RijndaelManaged aesAlg = null; // RijndaelManaged object used to encrypt the data. - - try - { - // generate the key from the shared secret and the salt - Rfc2898DeriveBytes key = new Rfc2898DeriveBytes(sharedSecret, _salt); - - // Create a RijndaelManaged object - // with the specified key and IV. - aesAlg = new RijndaelManaged(); - aesAlg.Key = key.GetBytes(aesAlg.KeySize / 8); - aesAlg.IV = key.GetBytes(aesAlg.BlockSize / 8); - - // Create a decrytor to perform the stream transform. - ICryptoTransform encryptor = aesAlg.CreateEncryptor(aesAlg.Key, aesAlg.IV); - - // Create the streams used for encryption. - using (MemoryStream msEncrypt = new MemoryStream()) - { - using (CryptoStream csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write)) - { - using (StreamWriter swEncrypt = new StreamWriter(csEncrypt)) - { - - //Write all data to the stream. - swEncrypt.Write(plainText); - } - } - outStr = Convert.ToBase64String(msEncrypt.ToArray()); - } - } - finally - { - // Clear the RijndaelManaged object. - if (aesAlg != null) - aesAlg.Clear(); - } - - // Return the encrypted bytes from the memory stream. - return outStr; - } - - /// - /// Decrypt the given string. Assumes the string was encrypted using - /// EncryptStringAES(), using an identical sharedSecret. - /// - /// The text to decrypt. - /// A password used to generate a key for decryption. - private static string DecryptStringAES(string cipherText, string sharedSecret) - { - if (string.IsNullOrEmpty(cipherText)) - throw new ArgumentNullException("cipherText"); - if (string.IsNullOrEmpty(sharedSecret)) - throw new ArgumentNullException("sharedSecret"); - - // Declare the RijndaelManaged object - // used to decrypt the data. - RijndaelManaged aesAlg = null; - - // Declare the string used to hold - // the decrypted text. - string plaintext = null; - - try - { - // generate the key from the shared secret and the salt - Rfc2898DeriveBytes key = new Rfc2898DeriveBytes(sharedSecret, _salt); - - // Create a RijndaelManaged object - // with the specified key and IV. - aesAlg = new RijndaelManaged(); - aesAlg.Key = key.GetBytes(aesAlg.KeySize / 8); - aesAlg.IV = key.GetBytes(aesAlg.BlockSize / 8); - - // Create a decrytor to perform the stream transform. - ICryptoTransform decryptor = aesAlg.CreateDecryptor(aesAlg.Key, aesAlg.IV); - // Create the streams used for decryption. - byte[] bytes = Convert.FromBase64String(cipherText); - using (MemoryStream msDecrypt = new MemoryStream(bytes)) - { - using (CryptoStream csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read)) - { - using (StreamReader srDecrypt = new StreamReader(csDecrypt)) - - // Read the decrypted bytes from the decrypting stream - // and place them in a string. - plaintext = srDecrypt.ReadToEnd(); - } - } - } - finally - { - // Clear the RijndaelManaged object. - if (aesAlg != null) - aesAlg.Clear(); - } - - return plaintext; - } - - #endregion - } -} +using System; +using System.Collections.Generic; +using System.Text; +using System.IO; +using System.Security.Cryptography; + +namespace CxViewerAction.Helpers +{ + public class EncryptHelper + { + #region Public methods + + public static string EncryptString(string plainText) + { + return EncryptStringAES(plainText, _sharedSecret); + } + + public static string DecryptString(string cipherText) + { + return DecryptStringAES(cipherText, _sharedSecret); + } + + #endregion + + #region Private Methods + + private static byte[] _salt = Encoding.ASCII.GetBytes("o6806642kbM7c5"); + static string _sharedSecret = "9e5QRT"; + + /// + /// Encrypt the given string using AES. The string can be decrypted using + /// DecryptStringAES(). The sharedSecret parameters must match. + /// + /// The text to encrypt. + /// A password used to generate a key for encryption. + private static string EncryptStringAES(string plainText, string sharedSecret) + { + if (string.IsNullOrEmpty(plainText)) + throw new ArgumentNullException("plainText"); + if (string.IsNullOrEmpty(sharedSecret)) + throw new ArgumentNullException("sharedSecret"); + + string outStr = null; // Encrypted string to return + RijndaelManaged aesAlg = null; // RijndaelManaged object used to encrypt the data. + + try + { + // generate the key from the shared secret and the salt + Rfc2898DeriveBytes key = new Rfc2898DeriveBytes(sharedSecret, _salt); + + // Create a RijndaelManaged object + // with the specified key and IV. + aesAlg = new RijndaelManaged(); + aesAlg.Key = key.GetBytes(aesAlg.KeySize / 8); + aesAlg.IV = key.GetBytes(aesAlg.BlockSize / 8); + + // Create a decrytor to perform the stream transform. + ICryptoTransform encryptor = aesAlg.CreateEncryptor(aesAlg.Key, aesAlg.IV); + + // Create the streams used for encryption. + using (MemoryStream msEncrypt = new MemoryStream()) + { + using (CryptoStream csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write)) + { + using (StreamWriter swEncrypt = new StreamWriter(csEncrypt)) + { + + //Write all data to the stream. + swEncrypt.Write(plainText); + } + } + outStr = Convert.ToBase64String(msEncrypt.ToArray()); + } + } + finally + { + // Clear the RijndaelManaged object. + if (aesAlg != null) + aesAlg.Clear(); + } + + // Return the encrypted bytes from the memory stream. + return outStr; + } + + /// + /// Decrypt the given string. Assumes the string was encrypted using + /// EncryptStringAES(), using an identical sharedSecret. + /// + /// The text to decrypt. + /// A password used to generate a key for decryption. + private static string DecryptStringAES(string cipherText, string sharedSecret) + { + if (string.IsNullOrEmpty(cipherText)) + throw new ArgumentNullException("cipherText"); + if (string.IsNullOrEmpty(sharedSecret)) + throw new ArgumentNullException("sharedSecret"); + + // Declare the RijndaelManaged object + // used to decrypt the data. + RijndaelManaged aesAlg = null; + + // Declare the string used to hold + // the decrypted text. + string plaintext = null; + + try + { + // generate the key from the shared secret and the salt + Rfc2898DeriveBytes key = new Rfc2898DeriveBytes(sharedSecret, _salt); + + // Create a RijndaelManaged object + // with the specified key and IV. + aesAlg = new RijndaelManaged(); + aesAlg.Key = key.GetBytes(aesAlg.KeySize / 8); + aesAlg.IV = key.GetBytes(aesAlg.BlockSize / 8); + + // Create a decrytor to perform the stream transform. + ICryptoTransform decryptor = aesAlg.CreateDecryptor(aesAlg.Key, aesAlg.IV); + // Create the streams used for decryption. + byte[] bytes = Convert.FromBase64String(cipherText); + using (MemoryStream msDecrypt = new MemoryStream(bytes)) + { + using (CryptoStream csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read)) + { + using (StreamReader srDecrypt = new StreamReader(csDecrypt)) + + // Read the decrypted bytes from the decrypting stream + // and place them in a string. + plaintext = srDecrypt.ReadToEnd(); + } + } + } + finally + { + // Clear the RijndaelManaged object. + if (aesAlg != null) + aesAlg.Clear(); + } + + return plaintext; + } + + #endregion + } +} diff --git a/CxViewerAction/Helpers/GraphHelper.cs b/CxActionShared/Helpers/GraphHelper.cs similarity index 97% rename from CxViewerAction/Helpers/GraphHelper.cs rename to CxActionShared/Helpers/GraphHelper.cs index 424340b5..6649e054 100644 --- a/CxViewerAction/Helpers/GraphHelper.cs +++ b/CxActionShared/Helpers/GraphHelper.cs @@ -1,140 +1,143 @@ -using System; -using CxViewerAction.Entities; -using System.Collections.Generic; -using CxViewerAction.BaseInterfaces; -using CxViewerAction.Entities.WebServiceEntity; - -namespace CxViewerAction.Helpers -{ - public class GraphHelper - { - public static IGraph Convert(ReportQueryResult query) - { - IGraph outputGraph = new Graph(); - - outputGraph.Severity = query.Severity; - outputGraph.Paths = new List(); - - for (int i = 0; i < query.Paths.Count; i++) - { - ReportQueryItemResult path = query.Paths[i]; - outputGraph.AddNewPath(Convert(path, i)); - } - - return outputGraph; - } - - public static IGraph Convert(TreeNodeData treeNode) - { - IGraph outputGraph = new Graph(); - - CxViewerAction.CxVSWebService.CxWSResultPath[] paths = PerspectiveHelper.GetResultPathsForQuery(treeNode.ScanId, treeNode.Id); - treeNode.QueryResult.Paths = ConvertAllNodesToPathes(paths, treeNode.Id, treeNode.QueryResult); - outputGraph.Severity = treeNode.Severity; - outputGraph.Paths = new List(); - - for (int i = 0; i < paths.Length; i++) - { - ReportQueryItemResult path = new ReportQueryItemResult() - { - Column = paths[i].Nodes[0].Column, - FileName = paths[i].Nodes[0].FileName, - Line = paths[i].Nodes[0].Line, - NodeId = paths[i].Nodes[0].PathNodeId, - PathId = paths[i].PathId, - Query = treeNode.QueryResult - }; - path.Paths = ConvertNodesToPathes(paths[i].Nodes, treeNode.QueryResult, path); - outputGraph.AddNewPath(Convert(path, i)); - } - - return outputGraph; - } - - public static List ConvertNodesToPathes(CxViewerAction.CxVSWebService.CxWSPathNode[] cxWSPathNode, ReportQueryResult queryResult, ReportQueryItemResult queryItemResult) - { - List list = new List(); - - foreach (CxViewerAction.CxVSWebService.CxWSPathNode node in cxWSPathNode) - { - list.Add(new ReportQueryItemPathResult() - { - Name = node.Name, - FileName = node.FileName, - Line = node.Line, - NodeId = node.PathNodeId, - Length = node.Length, - Column = node.Column, - Query = queryResult, - QueryItem = queryItemResult - }); - } - return list; - } - - private static List ConvertAllNodesToPathes(CxViewerAction.CxVSWebService.CxWSResultPath[] cxWSPathNode, int resultId, ReportQueryResult queryResult) - { - List list = new List(); - - foreach (CxViewerAction.CxVSWebService.CxWSResultPath node in cxWSPathNode) - { - list.Add(new ReportQueryItemResult() - { - Remark = node.Comment, - FileName = node.Nodes[0].FileName, - Line = node.Nodes[0].Line, - ResultId = resultId, - Query = queryResult, - }); - } - return list; - } - - - public static IGraphPath Convert(ReportQueryItemResult queryItem, int columnNumber) - { - IGraphPath outputPath = new GraphPath(); - outputPath.DirectFlow = new List(); - - for (int i = 0; i < queryItem.Paths.Count; i++) - { - if (i == 0 || i == queryItem.Paths.Count - 1) - { - ReportQueryItemPathResult item = queryItem.Paths[i]; - - GraphItem graphItem = (GraphItem)Convert(item, columnNumber, i == 0 ? 0 : 1); - graphItem.Parent = outputPath; - - outputPath.DirectFlow.Add(graphItem); - } - } - - // To show two nodes in graph view if only one available - if (outputPath.DirectFlow.Count == 1) - { - GraphItem graphItem = (GraphItem)Convert(queryItem.Paths[0], columnNumber, 1); - graphItem.Parent = outputPath; - - outputPath.DirectFlow.Add(graphItem); - } - - return outputPath; - } - - private static IGraphItem Convert(ReportQueryItemPathResult item, int columnNumber, int rowNumber) - { - IGraphItem outputItem = new GraphItem(); - outputItem.Name = item.Name; - outputItem.FileName = item.FileName; - outputItem.Line = item.Line; - outputItem.Column = item.Column; - outputItem.Length = item.Length; - outputItem.GraphX = columnNumber; - outputItem.GraphY = rowNumber; - - outputItem.QueryItem = item.QueryItem; - - return outputItem; - } - } -} +using System; +using CxViewerAction.Entities; +using System.Collections.Generic; +using CxViewerAction.BaseInterfaces; +using CxViewerAction.Entities.WebServiceEntity; +using Common; + +namespace CxViewerAction.Helpers +{ + public class GraphHelper + { + public static IGraph Convert(ReportQueryResult query) + { + IGraph outputGraph = new Graph(); + + outputGraph.Severity = query.Severity; + outputGraph.Paths = new List(); + + for (int i = 0; i < query.Paths.Count; i++) + { + ReportQueryItemResult path = query.Paths[i]; + outputGraph.AddNewPath(Convert(path, i)); + } + + return outputGraph; + } + + public static IGraph Convert(TreeNodeData treeNode) + { + IGraph outputGraph = new Graph(); + + CxViewerAction.CxVSWebService.CxWSResultPath[] paths = PerspectiveHelper.GetResultPathsForQuery(treeNode.ScanId, treeNode.Id); + treeNode.QueryResult.Paths = ConvertAllNodesToPathes(paths, treeNode.Id, treeNode.QueryResult); + outputGraph.Severity = treeNode.Severity; + outputGraph.Paths = new List(); + + for (int i = 0; i < paths.Length; i++) + { + ReportQueryItemResult path = new ReportQueryItemResult() + { + Column = paths[i].Nodes[0].Column, + FileName = paths[i].Nodes[0].FileName, + Line = paths[i].Nodes[0].Line, + NodeId = paths[i].Nodes[0].PathNodeId, + PathId = paths[i].PathId, + Query = treeNode.QueryResult + }; + path.Paths = ConvertNodesToPathes(paths[i].Nodes, treeNode.QueryResult, path); + outputGraph.AddNewPath(Convert(path, i)); + } + + return outputGraph; + } + + public static List ConvertNodesToPathes(CxViewerAction.CxVSWebService.CxWSPathNode[] cxWSPathNode, ReportQueryResult queryResult, ReportQueryItemResult queryItemResult) + { + Logger.Create().Info("Converting nodes to pathes."); + List list = new List(); + + foreach (CxViewerAction.CxVSWebService.CxWSPathNode node in cxWSPathNode) + { + list.Add(new ReportQueryItemPathResult() + { + Name = node.Name, + FileName = node.FileName, + Line = node.Line, + NodeId = node.PathNodeId, + Length = node.Length, + Column = node.Column, + Query = queryResult, + QueryItem = queryItemResult + }); + } + return list; + } + + private static List ConvertAllNodesToPathes(CxViewerAction.CxVSWebService.CxWSResultPath[] cxWSPathNode, int resultId, ReportQueryResult queryResult) + { + Logger.Create().Info("Converting all nodes to pathes."); + List list = new List(); + + foreach (CxViewerAction.CxVSWebService.CxWSResultPath node in cxWSPathNode) + { + list.Add(new ReportQueryItemResult() + { + Remark = node.Comment, + FileName = node.Nodes[0].FileName, + Line = node.Nodes[0].Line, + ResultId = resultId, + Query = queryResult, + }); + } + return list; + } + + + public static IGraphPath Convert(ReportQueryItemResult queryItem, int columnNumber) + { + IGraphPath outputPath = new GraphPath(); + outputPath.DirectFlow = new List(); + + for (int i = 0; i < queryItem.Paths.Count; i++) + { + if (i == 0 || i == queryItem.Paths.Count - 1) + { + ReportQueryItemPathResult item = queryItem.Paths[i]; + + GraphItem graphItem = (GraphItem)Convert(item, columnNumber, i == 0 ? 0 : 1); + graphItem.Parent = outputPath; + + outputPath.DirectFlow.Add(graphItem); + } + } + + // To show two nodes in graph view if only one available + if (outputPath.DirectFlow.Count == 1) + { + GraphItem graphItem = (GraphItem)Convert(queryItem.Paths[0], columnNumber, 1); + graphItem.Parent = outputPath; + + outputPath.DirectFlow.Add(graphItem); + } + + return outputPath; + } + + private static IGraphItem Convert(ReportQueryItemPathResult item, int columnNumber, int rowNumber) + { + IGraphItem outputItem = new GraphItem(); + outputItem.Name = item.Name; + outputItem.FileName = item.FileName; + outputItem.Line = item.Line; + outputItem.Column = item.Column; + outputItem.Length = item.Length; + outputItem.GraphX = columnNumber; + outputItem.GraphY = rowNumber; + + outputItem.QueryItem = item.QueryItem; + + return outputItem; + } + } +} diff --git a/CxViewerAction/Helpers/HttpHelper.cs b/CxActionShared/Helpers/HttpHelper.cs similarity index 83% rename from CxViewerAction/Helpers/HttpHelper.cs rename to CxActionShared/Helpers/HttpHelper.cs index 4ccc63b6..507dbf40 100644 --- a/CxViewerAction/Helpers/HttpHelper.cs +++ b/CxActionShared/Helpers/HttpHelper.cs @@ -1,49 +1,50 @@ -using System; -using System.Net; -using System.IO; -using System.Security.Cryptography.X509Certificates; -using System.Net.Security; - -namespace CxViewerAction.Helpers -{ - /// - /// Helper class for downloading content via HTTP - /// - public class HttpHelper - { - /// - /// Download page content - /// - /// page url - /// - public static string Get(string url) - { - string output; - HttpWebResponse response = null; - - try - { - HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url); - ServicePointManager.ServerCertificateValidationCallback += delegate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return true; }; - response = (HttpWebResponse)request.GetResponse(); - - using (StreamReader responseStream = new StreamReader(response.GetResponseStream())) - { - output = responseStream.ReadToEnd(); - } - } - catch (Exception ex) - { - Common.Logger.Create().Error(ex.ToString()); - output = null; - } - finally - { - if(response != null) - response.Close(); - } - - return output; - } - } -} +using System; +using System.Net; +using System.IO; +using System.Security.Cryptography.X509Certificates; +using System.Net.Security; + +namespace CxViewerAction.Helpers +{ + /// + /// Helper class for downloading content via HTTP + /// + public class HttpHelper + { + /// + /// Download page content + /// + /// page url + /// + public static string Get(string url) + { + string output; + HttpWebResponse response = null; + + try + { + HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url); + //This class is not in use. To avoid SSL_Verification_ByPass vulnarability by default SSL certificate validation enabled + ServicePointManager.ServerCertificateValidationCallback += delegate (object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return false; }; + response = (HttpWebResponse)request.GetResponse(); + + using (StreamReader responseStream = new StreamReader(response.GetResponseStream())) + { + output = responseStream.ReadToEnd(); + } + } + catch (Exception ex) + { + Common.Logger.Create().Error(ex.ToString()); + output = null; + } + finally + { + if(response != null) + response.Close(); + } + + return output; + } + } +} diff --git a/CxViewerAction/Helpers/IConfigurationHelper.cs b/CxActionShared/Helpers/IConfigurationHelper.cs similarity index 96% rename from CxViewerAction/Helpers/IConfigurationHelper.cs rename to CxActionShared/Helpers/IConfigurationHelper.cs index c8756550..74706b3f 100644 --- a/CxViewerAction/Helpers/IConfigurationHelper.cs +++ b/CxActionShared/Helpers/IConfigurationHelper.cs @@ -1,13 +1,13 @@ -using CxViewerAction.Entities.WebServiceEntity; -using CxViewerAction.Services; -using System; -using System.Collections.Generic; -using System.Text; - -namespace CxViewerAction.Helpers -{ - interface IConfigurationHelper - { - ConfigurationResult GetConfigurationList(string sessionId, BackgroundWorkerHelper bg, CxWebServiceClient client); - } -} +using CxViewerAction.Entities.WebServiceEntity; +using CxViewerAction.Services; +using System; +using System.Collections.Generic; +using System.Text; + +namespace CxViewerAction.Helpers +{ + interface IConfigurationHelper + { + ConfigurationResult GetConfigurationList(string sessionId, BackgroundWorkerHelper bg, CxWebServiceClient client); + } +} diff --git a/CxViewerAction/Helpers/IScanHelper.cs b/CxActionShared/Helpers/IScanHelper.cs similarity index 96% rename from CxViewerAction/Helpers/IScanHelper.cs rename to CxActionShared/Helpers/IScanHelper.cs index 72b3beb5..1fc7a4b3 100644 --- a/CxViewerAction/Helpers/IScanHelper.cs +++ b/CxActionShared/Helpers/IScanHelper.cs @@ -1,15 +1,15 @@ -using CxViewerAction.CxVSWebService; -using CxViewerAction.Entities; -using CxViewerAction.Entities.Enum; -using CxViewerAction.Views; -using System; -using System.Collections.Generic; -using System.Text; - -namespace CxViewerAction.Helpers -{ - interface IScanHelper - { - ProjectScanStatuses DoScan(Project project, bool isIncremental, ref CxWSQueryVulnerabilityData[] scanData, ref long scanId); - } -} +using CxViewerAction.CxVSWebService; +using CxViewerAction.Entities; +using CxViewerAction.Entities.Enum; +using CxViewerAction.Views; +using System; +using System.Collections.Generic; +using System.Text; + +namespace CxViewerAction.Helpers +{ + interface IScanHelper + { + ProjectScanStatuses DoScan(Project project, bool isIncremental, ref CxWSQueryVulnerabilityData[] scanData, ref long scanId); + } +} diff --git a/CxViewerAction/Helpers/LoginHelper.cs b/CxActionShared/Helpers/LoginHelper.cs similarity index 68% rename from CxViewerAction/Helpers/LoginHelper.cs rename to CxActionShared/Helpers/LoginHelper.cs index 6f4cf4b4..c429c413 100644 --- a/CxViewerAction/Helpers/LoginHelper.cs +++ b/CxActionShared/Helpers/LoginHelper.cs @@ -1,440 +1,527 @@ -using System; -using System.IO; -using System.Net; -using System.Threading; -using System.Windows.Forms; -using System.Xml.Serialization; -using Common; -using CxViewerAction.CxVSWebService; -using CxViewerAction.Dispatchers; -using CxViewerAction.Entities; -using CxViewerAction.Entities.WebServiceEntity; -using CxViewerAction.Services; -using CxViewerAction.ValueObjects; -using CxViewerAction.WebPortal; - -namespace CxViewerAction.Helpers -{ - public class LoginHelper - { - static readonly object lockObj = new object(); - private static readonly OIDCLoginHelper _oidcLoginHelper = new OIDCLoginHelper(); - - #region [ Constants ] - - /// - /// File name to store user settings - /// - private const string FileName = "CxVSPlugin.conf"; - - private static string studioVersion = ""; - private static bool isScanner = true; - private static CxRESTApi cxRestApi = null; - - - public static bool IsScanner - { - get { return LoginHelper.isScanner; } - } - - public static string StudioVersion - { - get { return LoginHelper.studioVersion; } - set { LoginHelper.studioVersion = value; } - } - - public static string FullConfigPath - { - get - { - if (String.IsNullOrEmpty(studioVersion)) - { - string addinTarget = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), @"Visual Studio 2010\Settings"); //\CxExtention - return Path.Combine(addinTarget, FileName); - } - else - { - string studioYear = "2010"; - switch (studioVersion) - { - case "8.0": studioYear = "2005"; break; - case "9.0": studioYear = "2008"; break; - case "10.0": studioYear = "2010"; break; - case "11.0": studioYear = "2012"; break; - case "12.0": studioYear = "2013"; break; - case "14.0": studioYear = "2015"; break; - case "15.0": studioYear = "2017"; break; - } - string addinTargetPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), string.Format(@"Visual Studio {0}\Settings", studioYear)); //\CxExtention - return Path.Combine(addinTargetPath, FileName); - } - } - } - - public static string FolderPath - { - get { return Path.GetDirectoryName(FullConfigPath); } - } - - /// - /// Wait dialog progress text - /// - private const string WAIT_DIALOG_PROGRESS_TEXT = "Authorizing..."; - - #endregion [ Constants ] - - #region [ Private Members ] - - private static IDispatcher _dispatcher; - private static bool _isLogged = false; - private static bool useCurrentSession = false; - private static LoginResult _loginResult = null; - - #endregion [ Private Members ] - - #region [Public Properties] - - public static LoginResult LoginResult - { - get { return _loginResult; } - } - - public static bool IsLogged - { - get { return _isLogged; } - set { _isLogged = value; } - } - - private static string serverBaseUrl; - - public static string ServerBaseUrl - { - get { return serverBaseUrl; } - } - - private static string server; - - public static string Server - { - get { return server; } - } - - public static CxPortalConfiguration PortalConfiguration { get; set; } - - - #endregion - - /// - /// Load login data - /// - /// How many times load method completed with problems - /// - internal static LoginData Load(int tryNum) - { - Logger.Create().Debug("Load preferences"); - LoginData login = LoginData.GetLoginDataInstance; - - if (tryNum > 2) - return login; - - string fileName = FullConfigPath; // Directory.GetCurrentDirectory() + "\\" + FileName; - - if (!File.Exists(fileName)) - return login; - - XmlSerializer reader = new XmlSerializer(typeof(LoginData)); - - try - { - if (!File.Exists(@fileName)) - { - MessageBox.Show(string.Format("CHECKMARCX Viewer Configuration file is missing. {0}{1}", Environment.NewLine, fileName)); - } - else - { - // load user personal settings - lock (lockObj) - { - using (StreamReader file = new StreamReader(@fileName)) - { - login = (LoginData)reader.Deserialize(file); - } - } - } - } - catch (IOException ex) - { - Logger.Create().Error(ex.ToString()); - if (ex.Message.StartsWith("The process cannot access the file")) - { - Thread.Sleep(1000); - Load(++tryNum); - } - } - catch (Exception ex) - { - Logger.Create().Error(ex); - } - - return login; - } - - /// - /// Save login info - /// - /// Login class - internal static void Save(LoginData login) - { - loginCache = null; - Logger.Create().Debug("Save preferences"); - server = null; // reset server - string fileName = FullConfigPath; // Directory.GetCurrentDirectory() + "\\" + FileName; - Logger.Create().Debug("Save To File : " + fileName); - - try - { - lock (lockObj) - { - if (File.Exists(fileName)) - { - // Create a new FileInfo object. - FileInfo fInfo = new FileInfo(fileName); - - // Set the IsReadOnly property. - if (fInfo.IsReadOnly == true) - { - fInfo.IsReadOnly = false; - } - } - - XmlSerializer writer = new XmlSerializer(typeof(LoginData)); - using (StreamWriter file = new StreamWriter(@fileName)) - { - writer.Serialize(file, login); - } - } - } - catch (Exception ex) - { - Logger.Create().Error("Failed to save preferences"); - Logger.Create().Error(ex); - } - } - - /// - /// Execute login - /// - /// - internal static LoginResult DoLogin(out bool cancelPressed) - { - return TryDoLogin(out cancelPressed, true, true); - } - - internal static LoginResult DoLoginWithoutForm(out bool cancelPressed, bool relogin) - { - //loads the preferences - Entities.LoginData login = LoadSaved(); - if (login == null) - { - cancelPressed = false; - return new LoginResult(); - } - if (string.IsNullOrEmpty(login.Server)) - { - cancelPressed = false; - return new LoginResult(); - } - - return TryDoLogin(out cancelPressed, relogin, false); - } - - static LoginResult TryDoLogin(out bool cancelPressed, bool relogin, bool showForm) - { - cancelPressed = false; - - //TODO check what to do with this - if (_isLogged && !relogin) - { - _loginResult.AuthenticationData = LoadSaved(); - return _loginResult; - } - - LoginData login = null; - - if (_dispatcher == null) - _dispatcher = ServiceLocators.ServiceLocator.GetDispatcher(); - - if (_dispatcher != null) - { - login = LoadSaved(); - - // verify that user hasn't active session and dialog data was validated sucessfull - //TODO check if isLogged neccessary - if (!_isLogged || !login.CanLog() || relogin) - { - if (showForm) - { - try - { - _dispatcher.Dispatch(login); - } - catch (Exception err) - { - Logger.Create().Error(err); - } - } - } - } - login.IsLogging = true; - LoginResult loginResult = ExecuteLogin(login, out cancelPressed, relogin); - - if (loginResult != null && loginResult.IsSuccesfull) - { - isScanner = loginResult.AuthenticationData.SaveSastScan; - } - - _isLogged = !cancelPressed ? loginResult.IsSuccesfull : false; - - Helpers.LoginHelper.Save(login); - - _loginResult = loginResult; - _loginResult.IsSuccesfull = _isLogged; - - return loginResult; - } - - public static LoginResult ExecuteLogin(LoginData login, out bool cancelPressed, bool relogin) - { - LoginResult loginResult = new LoginResult(); - cancelPressed = !login.IsLogging; - - if (login != null && login.IsLogging && (!_isLogged || relogin)) - { - CxWebServiceClient client = null; - - BackgroundWorkerHelper bg = new BackgroundWorkerHelper(delegate - { - try - { - client = new CxWebServiceClient(login); - } - catch (Exception e) - { - Logger.Create().Error(e.ToString()); - System.Windows.Forms.MessageBox.Show(e.Message, "Error", System.Windows.Forms.MessageBoxButtons.OK); - return; - } - - if (client == null) - { - System.Windows.Forms.MessageBox.Show("Cannot connect to server", "Error", System.Windows.Forms.MessageBoxButtons.OK); - return; - } - - // perform login - try - { - serverBaseUrl = login.ServerBaseUri; - - bool loginSucceeded = DolLogin(login, client); - if (loginSucceeded) { - loginResult.IsSuccesfull = true; - loginResult.AuthenticationData = login; - } - _loginResult = loginResult; - } - catch (WebException ex) - { - Logger.Create().Error(ex.Message, ex); - loginResult.LoginResultType = LoginResultType.UnknownServerName; - loginResult.LoginResultMessage = ex.Message; - loginResult.IsSuccesfull = false; - } - catch (Exception ex) - { - Logger.Create().Error(ex.Message, ex); - loginResult.LoginResultType = LoginResultType.UnknownError; - loginResult.LoginResultMessage = ex.Message; - } - finally - { - if (client != null) - client.Close(); - } - - }, - login.ReconnectInterval * 1000, login.ReconnectCount); - - cancelPressed = !bg.DoWork(WAIT_DIALOG_PROGRESS_TEXT); - } - - return loginResult; - } - - - public static bool DolLogin(LoginData login, CxWebServiceClient client) - { - bool loginSucceeded = false; - _oidcLoginHelper.resetLatestResult(); - OidcLoginResult oidcLoginResult = _oidcLoginHelper.ConnectToIdentidyProvider(login.ServerBaseUri); - - if (oidcLoginResult.IsSuccessful) - { - cxRestApi = new CxRESTApi(login); - string accessToken = cxRestApi.Login(oidcLoginResult.Code); - cxRestApi.GetPermissions(accessToken); - loginSucceeded = true; - - } - else - { - _oidcLoginHelper.CloseLoginWindow(); - } - return loginSucceeded; - - } - - /// - /// Logout from service - /// - internal static void DoLogout() - { - Logger.Create().Debug("Logging out, clear authentication data"); - OidcLoginData oidcLoginData = OidcLoginData.GetOidcLoginDataInstance(); - oidcLoginData.AccessToken = null; - oidcLoginData.RefreshToken = null; - oidcLoginData.AccessTokenExpiration = -1; - _isLogged = false; - } - - /// - /// Load stored user data - /// - /// - internal static LoginData LoadSaved() - { - if (loginCache != null) - { - return loginCache; - } - LoginData login = Helpers.LoginHelper.Load(0); - server = login.Server; - loginCache = login; - return login; - } - - static LoginData loginCache = null; - - internal static void ShowLoginErrorMessage(LoginResult loginResult) - { - if (loginResult.LoginResultType == LoginResultType.UnknownServerName) - { - TopMostMessageBox.Show(Constants.ERR_UNKNOWN_SERVER, "Verify authority", MessageBoxButtons.OK); - } - else - { - TopMostMessageBox.Show(Constants.ERR_UNKNOWN_USER_PASSWORD, "Verify authority", MessageBoxButtons.OK); - } - } - } -} +using System; +using System.IO; +using System.Net; +using System.Threading; +using System.Windows.Forms; +using System.Xml.Serialization; +using Common; +using CxViewerAction.CxVSWebService; +using CxViewerAction.Dispatchers; +using CxViewerAction.Entities; +using CxViewerAction.Entities.WebServiceEntity; +using CxViewerAction.Services; +using CxViewerAction.ValueObjects; +using CxViewerAction.Views; +using CxViewerAction.WebPortal; +using CefSharp; +using CxViewerAction.MenuLogic; + +namespace CxViewerAction.Helpers +{ + public class LoginHelper + { + static readonly object lockObj = new object(); + private static readonly OIDCLoginHelper _oidcLoginHelper = new OIDCLoginHelper(); + + #region [ Constants ] + + /// + /// File name to store user settings + /// + private const string FileName = "CxVSPlugin.conf"; + + private static string studioVersion = ""; + private static bool isScanner = true; + private static CxRESTApi cxRestApi = null; + + + public static bool IsScanner + { + get { return LoginHelper.isScanner; } + } + + public static string StudioVersion + { + get { return LoginHelper.studioVersion; } + set { LoginHelper.studioVersion = value; } + } + + public static string FullConfigPath + { + get + { + if (String.IsNullOrEmpty(studioVersion)) + { + string addinTarget = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), @"Visual Studio 2010\Settings"); //\CxExtention + return Path.Combine(addinTarget, FileName); + } + else + { + string studioYear = "2010"; + switch (studioVersion) + { + case "8.0": studioYear = "2005"; break; + case "9.0": studioYear = "2008"; break; + case "10.0": studioYear = "2010"; break; + case "11.0": studioYear = "2012"; break; + case "12.0": studioYear = "2013"; break; + case "14.0": studioYear = "2015"; break; + case "15.0": studioYear = "2017"; break; + case "16.0": studioYear = "2019"; break; + case "17.0": studioYear = "2022"; break; + } + string addinTargetPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), string.Format(@"Visual Studio {0}\Settings", studioYear)); //\CxExtention + return Path.Combine(addinTargetPath, FileName); + } + } + } + + public static string FolderPath + { + get { return Path.GetDirectoryName(FullConfigPath); } + } + + /// + /// Wait dialog progress text + /// + private const string WAIT_DIALOG_PROGRESS_TEXT = "Authorizing..."; + + #endregion [ Constants ] + + #region [ Private Members ] + + private static IDispatcher _dispatcher; + private static bool _isLogged = false; + private static bool useCurrentSession = false; + private static LoginResult _loginResult = null; + + #endregion [ Private Members ] + + #region [Public Properties] + + public static LoginResult LoginResult + { + get { return _loginResult; } + } + + public static bool IsLogged + { + get { return _isLogged; } + set { _isLogged = value; } + } + + private static string serverBaseUrl; + + public static string ServerBaseUrl + { + get { return serverBaseUrl; } + } + + private static string server; + + public static string Server + { + get { return server; } + } + + public static CxPortalConfiguration PortalConfiguration { get; set; } + + + #endregion + + /// + /// Load login data + /// + /// How many times load method completed with problems + /// + internal static LoginData Load(int tryNum) + { + Logger.Create().Info("Loading login data preferences."); + LoginData login = LoginData.GetLoginDataInstance; + + if (tryNum > 2) + return login; + + string fileName = FullConfigPath; // Directory.GetCurrentDirectory() + "\\" + FileName; + + if (!File.Exists(fileName)) + return login; + + XmlSerializer reader = new XmlSerializer(typeof(LoginData)); + + try + { + if (!File.Exists(@fileName)) + { + MessageBox.Show(string.Format("CHECKMARCX Viewer Configuration file is missing. {0}{1}", Environment.NewLine, fileName)); + } + else + { + // load user personal settings + lock (lockObj) + { + using (StreamReader file = new StreamReader(@fileName)) + { + login = (LoginData)reader.Deserialize(file); + } + } + } + } + catch (IOException ex) + { + Logger.Create().Error(ex.ToString()); + if (ex.Message.StartsWith("The process cannot access the file")) + { + Thread.Sleep(1000); + Load(++tryNum); + } + } + catch (Exception ex) + { + Logger.Create().Error(ex); + } + _oidcLoginHelper.PluginConfiguration = login; + + return login; + } + + /// + /// Save login info + /// + /// Login class + internal static void Save(LoginData login) + { + loginCache = null; + Logger.Create().Info("Saving login preferences info."); + server = null; // reset server + string fileName = FullConfigPath; // Directory.GetCurrentDirectory() + "\\" + FileName; + Logger.Create().Debug("Save to file : " + fileName); + + try + { + lock (lockObj) + { + if (File.Exists(fileName)) + { + // Create a new FileInfo object. + FileInfo fInfo = new FileInfo(fileName); + + // Set the IsReadOnly property. + if (fInfo.IsReadOnly == true) + { + fInfo.IsReadOnly = false; + } + } + + XmlSerializer writer = new XmlSerializer(typeof(LoginData)); + using (StreamWriter file = new StreamWriter(@fileName)) + { + writer.Serialize(file, login); + } + } + } + catch (Exception ex) + { + Logger.Create().Error("Failed to save preferences."); + Logger.Create().Error(ex); + } + } + + /// + /// Execute login + /// + /// + internal static LoginResult DoLogin(out bool cancelPressed) + { + return TryDoLogin(out cancelPressed, true, true); + } + + internal static LoginResult DoLoginWithoutForm(out bool cancelPressed, bool relogin) + { + //loads the preferences + Logger.Create().Info("Loading login preferneces."); + Entities.LoginData login = LoadSaved(); + Logger.Create().Debug("Login preferences loaded."); + if (login == null) + { + cancelPressed = false; + return new LoginResult(); + } + if (string.IsNullOrEmpty(login.Server)) + { + cancelPressed = false; + return new LoginResult(); + } + + return TryDoLogin(out cancelPressed, relogin, false); + } + + static LoginResult TryDoLogin(out bool cancelPressed, bool relogin, bool showForm) + { + cancelPressed = false; + + //TODO check what to do with this + if (_isLogged && !relogin) + { + _loginResult.AuthenticationData = LoadSaved(); + return _loginResult; + } + + LoginData login = null; + + if (_dispatcher == null) + _dispatcher = ServiceLocators.ServiceLocator.GetDispatcher(); + + if (_dispatcher != null) + { + login = LoadSaved(); + + // verify that user hasn't active session and dialog data was validated sucessfull + //TODO check if isLogged neccessary + if (!_isLogged || !login.CanLog() || relogin) + { + if (showForm) + { + try + { + _dispatcher.Dispatch(login); + } + catch (Exception err) + { + Logger.Create().Error(err); + } + } + } + } + login.IsLogging = true; + LoginResult loginResult = ExecuteLogin(login, out cancelPressed, relogin); + + if (loginResult != null && loginResult.IsSuccesfull) + { + isScanner = loginResult.AuthenticationData.SaveSastScan; + } + + _isLogged = !cancelPressed ? loginResult.IsSuccesfull : false; + + Helpers.LoginHelper.Save(login); + + _loginResult = loginResult; + _loginResult.IsSuccesfull = _isLogged; + + return loginResult; + } + + public static LoginResult ExecuteLogin(LoginData login, out bool cancelPressed, bool relogin) + { + LoginResult loginResult = new LoginResult(); + cancelPressed = !login.IsLogging; + + if (login != null && login.IsLogging && (!_isLogged || relogin)) + { + CxWebServiceClient client = null; + + BackgroundWorkerHelper bg = new BackgroundWorkerHelper(delegate + { + try + { + Logger.Create().Info("Initializing web service client."); + client = new CxWebServiceClient(login); + } + catch (Exception e) + { + Logger.Create().Error(e.ToString()); + System.Windows.Forms.MessageBox.Show(e.Message, "Error", System.Windows.Forms.MessageBoxButtons.OK); + return; + } + + if (client == null) + { + System.Windows.Forms.MessageBox.Show("Cannot connect to server", "Error", System.Windows.Forms.MessageBoxButtons.OK); + return; + } + + // perform login + try + { + serverBaseUrl = login.ServerBaseUri; + Logger.Create().Info("Do login in background worker helper."); + bool loginSucceeded = DolLogin(login, client); + if (loginSucceeded) + { + loginResult.IsSuccesfull = true; + loginResult.AuthenticationData = login; + } + _loginResult = loginResult; + } + catch (WebException ex) + { + Logger.Create().Error(ex.Message, ex); + loginResult.LoginResultType = LoginResultType.UnknownServerName; + loginResult.LoginResultMessage = ex.Message; + loginResult.IsSuccesfull = false; + } + catch (Exception ex) + { + Logger.Create().Error(ex.Message, ex); + loginResult.LoginResultType = LoginResultType.UnknownError; + loginResult.LoginResultMessage = ex.Message; + } + finally + { + if (client != null) + client.Close(); + } + + }, + login.ReconnectInterval * 1000, login.ReconnectCount); + + cancelPressed = !bg.DoWork(WAIT_DIALOG_PROGRESS_TEXT); + } + + return loginResult; + } + + + public static bool DolLogin(LoginData login, CxWebServiceClient client) + { + bool loginSucceeded = false; + OidcLoginResult oidcLoginResult = null; + + if (!string.IsNullOrWhiteSpace(login.AuthenticationType) && login.AuthenticationType == Constants.AuthenticationaType_DefaultValue) + { + _oidcLoginHelper.resetLatestResult(); + oidcLoginResult = _oidcLoginHelper.ConnectToIdentidyProvider(login.ServerBaseUri, login.AuthenticationType); + } + + else if (!string.IsNullOrWhiteSpace(login.AuthenticationType) && login.AuthenticationType == Constants.AuthenticationaType_IE) + { + _oidcLoginHelper.resetLatestResult(); + oidcLoginResult = _oidcLoginHelper.ConnectToIdentidyProvider(login.ServerBaseUri, login.AuthenticationType); + } + else if (!string.IsNullOrWhiteSpace(login.AuthenticationType) && login.AuthenticationType == Constants.AuthenticationaType_UserNamePassword) + { + SubmitUserFrm submitUser = new SubmitUserFrm(login); + DialogResult dialogResult = submitUser.ShowModalView(); + if (dialogResult == DialogResult.OK) + { + oidcLoginResult = new OidcLoginResult(true, string.Empty, ""); + } + if (dialogResult == DialogResult.Retry) + { + submitUser = null; + SubmitUserFrm submitUser1 = new SubmitUserFrm(login); + dialogResult = submitUser1.ShowModalView(); + if (dialogResult == DialogResult.OK) + { + oidcLoginResult = new OidcLoginResult(true, string.Empty, ""); + Logger.Create().Info("Oidc login successful."); + } + else if (dialogResult == DialogResult.Cancel) + oidcLoginResult = new OidcLoginResult(false, string.Empty, ""); + } + else if (dialogResult == DialogResult.Cancel) + oidcLoginResult = new OidcLoginResult(false, string.Empty, ""); + + } + else + { + MessageBox.Show("Please configure valid Authentication Type", "Information", MessageBoxButtons.OK); + oidcLoginResult = new OidcLoginResult(false, string.Empty, ""); + } + if (oidcLoginResult != null && oidcLoginResult.IsSuccessful) + { + if (!string.IsNullOrWhiteSpace(login.AuthenticationType) && (login.AuthenticationType == Constants.AuthenticationaType_DefaultValue || login.AuthenticationType == Constants.AuthenticationaType_IE)) + { + //Add logs for print Server url and AccessToken + Logger.Create().Debug("Server URL: " + login.ServerBaseUri); + cxRestApi = new CxRESTApi(login); + try + { + string accessToken = cxRestApi.Login(oidcLoginResult.Code); + cxRestApi.GetPermissions(accessToken); + } + catch(Exception ex) + { + Logger.Create().Debug("Failed to get accesstoken. Error: " + ex.ToString()); + } + + } + + loginSucceeded = true; + Logger.Create().Info("Login successful."); + } + else + { + if (!string.IsNullOrWhiteSpace(login.AuthenticationType) && (login.AuthenticationType == Constants.AuthenticationaType_DefaultValue || login.AuthenticationType == Constants.AuthenticationaType_IE) && string.IsNullOrEmpty(oidcLoginResult.ResultMessage)) + { + Logger.Create().Debug("Server URL: " + login.ServerBaseUri); + _oidcLoginHelper.CloseLoginWindow(); + } + else if (!string.IsNullOrWhiteSpace(login.AuthenticationType) && (login.AuthenticationType == Constants.AuthenticationaType_DefaultValue || login.AuthenticationType == Constants.AuthenticationaType_IE)) + { + Logger.Create().Debug("Server URL: " + login.ServerBaseUri); + _oidcLoginHelper.CloseLoginWindow(); + Logger.Create().Info("Login Failed."); + } + + + } + return loginSucceeded; + + } + + /// + /// Logout from service + /// + internal static void DoLogout() + { + Application.DoEvents(); + LoginData login = LoadSaved(); + Logger.Create().Info("Logging out, clearing authentication data."); + OidcLoginData oidcLoginData = OidcLoginData.GetOidcLoginDataInstance(); + BindProjectLogic _logic = new BindProjectLogic(); + _logic.UnBindProject(true); + oidcLoginData.AccessToken = null; + oidcLoginData.RefreshToken = null; + oidcLoginData.AccessTokenExpiration = -1; + _isLogged = false; + if (!string.IsNullOrWhiteSpace(login.AuthenticationType) && (login.AuthenticationType == Constants.AuthenticationaType_DefaultValue)) + { + loginCache = null; + Cef.GetGlobalCookieManager().DeleteCookies("", ""); + } + + } + + /// + /// Load stored user data + /// + /// + internal static LoginData LoadSaved() + { + if (loginCache != null) + { + return loginCache; + } + LoginData login = Helpers.LoginHelper.Load(0); + Logger.Create().Info("Login data loaded."); + server = login.Server; + loginCache = login; + return login; + } + + static LoginData loginCache = null; + + internal static void ShowLoginErrorMessage(LoginResult loginResult) + { + if (loginResult.LoginResultType == LoginResultType.UnknownServerName) + { + TopMostMessageBox.Show(Constants.ERR_UNKNOWN_SERVER, "Verify authority", MessageBoxButtons.OK); + } + else + { + TopMostMessageBox.Show(Constants.ERR_UNKNOWN_USER_PASSWORD, "Verify authority", MessageBoxButtons.OK); + } + } + } +} diff --git a/CxActionShared/Helpers/OIDCLoginHelper.cs b/CxActionShared/Helpers/OIDCLoginHelper.cs new file mode 100644 index 00000000..c4f2fb1a --- /dev/null +++ b/CxActionShared/Helpers/OIDCLoginHelper.cs @@ -0,0 +1,113 @@ +using System; +using System.Threading; +using System.Windows.Forms; +using Common; +using CxViewerAction.Entities; +using CxViewerAction.ValueObjects; +using CxViewerAction.Views; + +namespace CxViewerAction.Helpers +{ + public class OIDCLoginHelper + { + private readonly OidcLoginFrm _oidcLoginFrm = new OidcLoginFrm(); + private readonly AutoResetEvent _oidcLoginEvent = new AutoResetEvent(false); + public static bool errorWasShown = false; + + private OidcLoginResult _latestResult; + private LoginData _pluginConfiguration = null; + + public OIDCLoginHelper() + { + _pluginConfiguration = null; + } + + public void resetLatestResult() + { + _latestResult = new OidcLoginResult(false, string.Empty, null); + } + + private void OnUserClosedForm(object sender, EventArgs e) + { + _latestResult = new OidcLoginResult(false, "Exit", null); + _oidcLoginEvent.Set(); + } + + private void OidcLoginCtrlOnNavigationError(object sender, string errorMessage) + { + errorWasShown = true; + MessageBox.Show(errorMessage, "Error", MessageBoxButtons.OK); + _latestResult = new OidcLoginResult(false, errorMessage, null); + _oidcLoginEvent.Set(); + } + + private void OidcLoginCtrlOnNavigationCompleted(object sender, string code) + { + _latestResult = new OidcLoginResult(true, string.Empty, code); + _oidcLoginEvent.Set(); + } + + private void ConectAndWait(string baseServerUri, string AuthenticationType) + { + if (AuthenticationType == Constants.AuthenticationaType_DefaultValue) + { + Thread.Sleep(3000); + Application.DoEvents(); + var browserForm = new BrowserForm(); + BrowserForm.NavigationCompleted += OidcLoginCtrlOnNavigationCompleted; + BrowserForm.NavigationError += OidcLoginCtrlOnNavigationError; + BrowserForm.IsbrowserIntialized(_pluginConfiguration); + browserForm.Show(); + string txturl = "about:blank"; + browserForm.Invoke(new MethodInvoker(() => + { + browserForm.ConnectToIdentidyProvider(txturl); + Application.Run(browserForm); + + })); + } + else + { + _oidcLoginFrm.OidcLoginCtrl2.NavigationCompleted += OidcLoginCtrlOnNavigationCompleted; + _oidcLoginFrm.OidcLoginCtrl2.NavigationError += OidcLoginCtrlOnNavigationError; + _oidcLoginFrm.UserClosedForm += OnUserClosedForm; + _latestResult = new OidcLoginResult(false, string.Empty, null); + _oidcLoginFrm.OidcLoginCtrl2.Invoke(new MethodInvoker(() => + { + _oidcLoginFrm.Show(); + _oidcLoginFrm.ConnectToIdentidyProvider(baseServerUri); + })); + _oidcLoginEvent.WaitOne(); + } + } + + public OidcLoginResult ConnectToIdentidyProvider(string baseServerUri, string AuthenticationType) + { + + ConectAndWait(baseServerUri, AuthenticationType); + if (AuthenticationType == Constants.AuthenticationaType_IE) + { + _oidcLoginFrm.CloseForm(); + } + + return _latestResult; + } + + public void CloseLoginWindow() + { + if (_oidcLoginFrm.Visible == true) + { + _oidcLoginFrm.CloseForm(); + } + } + + /// + /// plugin's configuration + /// + public LoginData PluginConfiguration + { + get { return _pluginConfiguration; } + set { _pluginConfiguration = value; } + } + } +} diff --git a/CxViewerAction/Helpers/ObserversManager.cs b/CxActionShared/Helpers/ObserversManager.cs similarity index 96% rename from CxViewerAction/Helpers/ObserversManager.cs rename to CxActionShared/Helpers/ObserversManager.cs index 59e6d846..6e347a2d 100644 --- a/CxViewerAction/Helpers/ObserversManager.cs +++ b/CxActionShared/Helpers/ObserversManager.cs @@ -1,82 +1,82 @@ -using System; -using System.Collections.Concurrent; -using System.Collections.Generic; - -namespace CxViewerAction.Helpers -{ - public class ObserversManager : IObserversManager - { - private static IObserversManager _instance; - private readonly ConcurrentDictionary> _dicObservers; - protected ObserversManager() - { - _dicObservers = new ConcurrentDictionary>(); - } - - public static IObserversManager Instance - { - get - { - if (_instance == null) - { - _instance = new ObserversManager(); - } - - return _instance; - } - - } - - public void Subscribe(Type messageType, IPluginObserver observer) - { - IList observersList; - if (!_dicObservers.TryGetValue(messageType, out observersList)) - { - _dicObservers.TryAdd(messageType, new List {observer}); - } - else - { - if (!observersList.Contains(observer)) - { - observersList.Add(observer); - } - } - } - - public void Publish(Type messageType, object data) - { - IList observersList; - if (_dicObservers.TryGetValue(messageType, out observersList)) - { - foreach (var pluginObserver in observersList) - { - pluginObserver.Handle(data); - } - } - } - - public void Unsubscribe(Type messageType, IPluginObserver observer) - { - IList observersList; - if (_dicObservers.TryGetValue(messageType, out observersList)) - { - if (observersList.Contains(observer)) - { - observersList.Remove(observer); - } - } - } - } - - public interface IObserversManager - { - void Subscribe(Type messageType, IPluginObserver observer); - void Publish(Type messageType, object data); - void Unsubscribe(Type messageType, IPluginObserver observer); - } - - public interface IPluginObserver - { - void Handle(object data); - } -} +using System; +using System.Collections.Concurrent; +using System.Collections.Generic; + +namespace CxViewerAction.Helpers +{ + public class ObserversManager : IObserversManager + { + private static IObserversManager _instance; + private readonly ConcurrentDictionary> _dicObservers; + protected ObserversManager() + { + _dicObservers = new ConcurrentDictionary>(); + } + + public static IObserversManager Instance + { + get + { + if (_instance == null) + { + _instance = new ObserversManager(); + } + + return _instance; + } + + } + + public void Subscribe(Type messageType, IPluginObserver observer) + { + IList observersList; + if (!_dicObservers.TryGetValue(messageType, out observersList)) + { + _dicObservers.TryAdd(messageType, new List {observer}); + } + else + { + if (!observersList.Contains(observer)) + { + observersList.Add(observer); + } + } + } + + public void Publish(Type messageType, object data) + { + IList observersList; + if (_dicObservers.TryGetValue(messageType, out observersList)) + { + foreach (var pluginObserver in observersList) + { + pluginObserver.Handle(data); + } + } + } + + public void Unsubscribe(Type messageType, IPluginObserver observer) + { + IList observersList; + if (_dicObservers.TryGetValue(messageType, out observersList)) + { + if (observersList.Contains(observer)) + { + observersList.Remove(observer); + } + } + } + } + + public interface IObserversManager + { + void Subscribe(Type messageType, IPluginObserver observer); + void Publish(Type messageType, object data); + void Unsubscribe(Type messageType, IPluginObserver observer); + } + + public interface IPluginObserver + { + void Handle(object data); + } +} diff --git a/CxViewerAction/Helpers/PerspectiveHelper.cs b/CxActionShared/Helpers/PerspectiveHelper.cs similarity index 92% rename from CxViewerAction/Helpers/PerspectiveHelper.cs rename to CxActionShared/Helpers/PerspectiveHelper.cs index 5a64af6a..8efdcbad 100644 --- a/CxViewerAction/Helpers/PerspectiveHelper.cs +++ b/CxActionShared/Helpers/PerspectiveHelper.cs @@ -1,750 +1,790 @@ -using System; -using System.Threading; -using CxViewerAction.CxVSWebService; -using CxViewerAction.Entities; -using System.Xml.Serialization; -using System.IO; -using CxViewerAction.Services; -using CxViewerAction.Views; -using System.Windows.Forms; -using CxViewerAction.Entities.Enum; -using CxViewerAction.Views.DockedView; -using CxViewerAction.Entities.WebServiceEntity; -using System.Collections.Generic; -using Common; - -namespace CxViewerAction.Helpers -{ - /// - /// Helper class for perspective manipulation - /// - public class PerspectiveHelper - { - #region [ Constants ] - - /// - /// Perspective not exist message - /// - private const string _perspectiveNotExist = "Current project perspective not exist"; - - #endregion [ Constants ] - - /// - /// Execute 'Previous Result' command - /// - public static void DoPrevResult() - { - - Logger.Create().Debug("DoPrevResult in"); - // Get logged user credentials and project relation data - LoginData login = Helpers.LoginHelper.Load(0); - CxWSQueryVulnerabilityData[] perspective = null; - login.IsOpenPerspective = Entities.Enum.SimpleDecision.Yes; - - LoginData.BindProject bindProject = login.BindedProjects.Find(delegate(LoginData.BindProject bp) - { - return bp.BindedProjectId == CommonData.ProjectId && - bp.ProjectName == CommonData.ProjectName && - bp.RootPath == CommonData.ProjectRootPath; - } - ); - - if (bindProject != null && bindProject.ScanReports != null && bindProject.ScanReports.Count > 0) - { - ScanReportInfo tmp = bindProject.ScanReports.Find(delegate(ScanReportInfo sri) - { - return sri.Id == CommonData.SelectedScanId; - } - ); - if (tmp == null || tmp.Id == 0) - { - tmp = bindProject.ScanReports[0]; - CommonData.SelectedScanId = tmp.Id; - } - - perspective = GetScanResultsPath(tmp.Id); - bindProject.SelectedScanId = tmp.Id; - if (!string.IsNullOrEmpty(tmp.Path)) - { - StorageHelper.Delete(tmp.Path); - } - - BackgroundWorkerHelper bgWork = new BackgroundWorkerHelper(delegate - { - tmp.Path = PerspectiveHelper.GetScanXML(CommonData.SelectedScanId); - - LoginHelper.Save(login); - }); - - bgWork.DoWork(); - - - - - Dictionary list = new Dictionary(); - foreach (ScanReportInfo item in bindProject.ScanReports) - { - if (!list.ContainsKey(item.Name)) - { - list.Add(item.Name, item.Id); - } - } - CommonActionsInstance.getInstance().ReportPersepectiveView.SetScanList(list, tmp.Id); - - if (perspective != null) - { - ShowStored(perspective, login, tmp.Id); - } - - } - } - - public static ProjectConfiguration GetProjectConfiguration(long projectId) - { - ProjectConfiguration res = null; - LoginResult loginResult = getLoginResult(); - - CxWebServiceClient client; - try - { - client = new CxWebServiceClient(loginResult.AuthenticationData); - } - catch (Exception e) - { - Logger.Create().Error(e.ToString()); - MessageBox.Show(e.Message, "Error", MessageBoxButtons.OK); - return null; - } - - CxWSResponseProjectConfig cXWSResponseResults = client.ServiceClient.GetProjectConfiguration(loginResult.SessionId, projectId); - if (!cXWSResponseResults.IsSuccesfull) - { - // show error message - MessageBox.Show(cXWSResponseResults.ErrorMessage, "Error", MessageBoxButtons.OK); - return null; - } - - res = cXWSResponseResults.ProjectConfig; - - return res; - } - - public static CxWSQueryVulnerabilityData[] GetScanResultsPath(long scanId) - { - CxWSQueryVulnerabilityData[] res = null; - LoginResult loginResult = getLoginResult(); - - CxWebServiceClient client; - try - { - client = new CxWebServiceClient(loginResult.AuthenticationData); - } - catch (Exception e) - { - Logger.Create().Error(e.ToString()); - MessageBox.Show(e.Message, "Error", MessageBoxButtons.OK); - return null; - } - - CxWSResponceQuerisForScan cXWSResponseResults = client.ServiceClient.GetQueriesForScan(loginResult.SessionId, scanId); - if (!cXWSResponseResults.IsSuccesfull) - { - // show error message - MessageBox.Show(cXWSResponseResults.ErrorMessage, "Error", MessageBoxButtons.OK); - return null; - } - - res = cXWSResponseResults.Queries; - - return res; - } - - private static LoginResult getLoginResult() - { - LoginData loginData = LoginHelper.LoadSaved(); - LoginResult loginResult = new LoginResult(); - OidcLoginData oidcLoginData = OidcLoginData.GetOidcLoginDataInstance(); - bool cancelPressed; - if (oidcLoginData.AccessToken == null) - { - loginResult = LoginHelper.DoLoginWithoutForm(out cancelPressed, false); - if (!loginResult.IsSuccesfull) - loginResult = LoginHelper.DoLogin(out cancelPressed); - } - else - { - loginResult.AuthenticationData = loginData; - loginResult.IsSuccesfull = true; - } - - return loginResult; - } - - public static CxWSQueryVulnerabilityData[] GetScanResultsPaths(string scanTaskId, ref long scaId) - { - CxWSQueryVulnerabilityData[] res = null; - LoginResult loginResult = getLoginResult(); - CxWebServiceClient client; - try - { - client = new CxWebServiceClient(loginResult.AuthenticationData); - } - catch (Exception e) - { - Logger.Create().Error(e.ToString()); - MessageBox.Show(e.Message, "Error", MessageBoxButtons.OK); - return null; - } - - //check for format compatability - scan id should be a long number - long scanTaskIdNum; - bool resParse = long.TryParse(scanTaskId, out scanTaskIdNum); - if (!resParse) - { - // show error message - MessageBox.Show("Scan ID is in wrong format", "Error", MessageBoxButtons.OK); - return null; - } - - CxWSResponceQuerisForScan cXWSResponseResults = client.ServiceClient.GetQueriesForScan(loginResult.SessionId, scanTaskIdNum); - - if (!cXWSResponseResults.IsSuccesfull) - { - // show error message - MessageBox.Show(cXWSResponseResults.ErrorMessage, "Error", MessageBoxButtons.OK); - return null; - } - - res = cXWSResponseResults.Queries; - - scaId = scanTaskIdNum; - - return res; - } - - public static string GetScanXML(long scanId) - { - string path = ""; - LoginResult loginResult = getLoginResult(); - CxWebServiceClient client; - try - { - client = new CxWebServiceClient(loginResult.AuthenticationData); - } - catch (Exception e) - { - Logger.Create().Error(e.ToString()); - return null; - } - - string savedFileName = string.Format("report{0}", Guid.NewGuid()); - // create status report - CxWSReportRequest reportRequest = new CxWSReportRequest(); - reportRequest.ScanID = scanId; - reportRequest.Type = CxWSReportType.XML; - CxWSCreateReportResponse cXWSCreateReportResponse = client.ServiceClient.CreateScanReport(loginResult.SessionId, reportRequest); - long reportID = cXWSCreateReportResponse.ID; - int numOfTrials = 0; - bool resultsObtained = false; - while (!resultsObtained && numOfTrials < 100) - { - CxWSReportStatusResponse cxWSReportStatusResponse = client.ServiceClient.GetScanReportStatus(loginResult.SessionId, reportID); - if (cxWSReportStatusResponse.IsReady) - { - resultsObtained = true; - } - else - { - Thread.Sleep(500); - } - numOfTrials++; - } - - CxWSResponseScanResults cxWSResponseScanResults = client.ServiceClient.GetScanReport(loginResult.SessionId, reportID); - if (!cxWSResponseScanResults.IsSuccesfull) - { - Logger.Create().Error(cxWSResponseScanResults.ErrorMessage); - return null; - } - - StorageHelper.Save(cxWSResponseScanResults.ScanResults, savedFileName); - path = savedFileName; - - - - return path; - } - - /// - /// Ask user to open perspective now - /// - /// user auth data - /// - internal static bool IsOpenNow(LoginData login) - { - OpenPercspectiveDialog dlg = new OpenPercspectiveDialog(); - DialogResult r = dlg.ShowDialog(); - - if (dlg.RememberDecision) - { - login.IsOpenPerspective = (r == DialogResult.OK) ? CxViewerAction.Entities.Enum.SimpleDecision.Yes : Entities.Enum.SimpleDecision.No; - LoginHelper.Save(login); - } - - return r == DialogResult.Yes; - } - - /// - /// Execute 'Show Stored' command - /// - /// - /// - /// - public static void ShowStored(CxWSQueryVulnerabilityData[] queries, LoginData login, long scanId) - { - - Dictionary> queriesGroups = new Dictionary>(); - List sev0 = new List(); - List sev1 = new List(); - List sev2 = new List(); - List sev3 = new List(); - - for (int i = 0; i < queries.Length; i++) - { - CxWSQueryVulnerabilityData cur = queries[i]; - switch (cur.Severity) - { - case 0: - sev0.Add(cur); - break; - case 1: - sev1.Add(cur); - break; - case 2: - sev2.Add(cur); - break; - case 3: - sev3.Add(cur); - break; - } - } - if (sev3.Count > 0) - { - queriesGroups.Add(ReportQuerySeverityType.High, sev3); - } - if (sev2.Count > 0) - { - queriesGroups.Add(ReportQuerySeverityType.Medium, sev2); - } - if (sev1.Count > 0) - { - queriesGroups.Add(ReportQuerySeverityType.Low, sev1); - } - if (sev0.Count > 0) - { - queriesGroups.Add(ReportQuerySeverityType.Information, sev0); - } - - - Dictionary> tree = new Dictionary>(); - - foreach (var queryGroup in queriesGroups) - { - List list = new List(); - - for (int i = 0; i < queryGroup.Value.Count; i++) - { - CxWSQueryVulnerabilityData query = queryGroup.Value[i]; - - ReportQueryResult queryResult = new ReportQueryResult() - { - CweId = (int)query.CWE, - Group = query.GroupName, - Id = (int)query.QueryId, - Name = query.QueryName, - Paths = null, - Report = null, - Severity = (ReportQuerySeverityType)query.Severity, - AmountOfResults = query.AmountOfResults, - ScanId = scanId, - QueryVersionCode = query.QueryVersionCode - }; - - list.Add(queryResult); - } - - tree.Add(queryGroup.Key, list); - } - - ReportResult report = new ReportResult(); - - report.Tree = tree; - - var reportWinObject = CommonActionsInstance.getInstance().ReportPersepectiveView; - - reportWinObject.Report = report; - - reportWinObject.BindData(); - - } - - public static CxWSSingleResultData[] GetScanResultsForQuery(long scanId, long queryId) - { - if (CommonData.IsWorkingOffline) - { - return SavedResultsManager.Instance.GetScanResultsForQuery(scanId, queryId); - } - CxWSSingleResultData[] res = null; - LoginResult loginResult = getLoginResult(); - CxWebServiceClient client; - try - { - client = new CxWebServiceClient(loginResult.AuthenticationData); - } - catch (Exception e) - { - Logger.Create().Error(e.ToString()); - MessageBox.Show(e.Message, "Error", MessageBoxButtons.OK); - return null; - } - - CxWSResponceScanResults cXWSResponseResults = client.ServiceClient.GetResultsForQuery(loginResult.SessionId, scanId, queryId); - if (!cXWSResponseResults.IsSuccesfull) - { - // show error message - MessageBox.Show(cXWSResponseResults.ErrorMessage, "Error", MessageBoxButtons.OK); - return null; - } - - res = cXWSResponseResults.Results; - - return res; - } - - public static CxWSResultPath GetResultPath(long scanId, long pathId) - { - if (CommonData.IsWorkingOffline) - { - return SavedResultsManager.Instance.GetResultPath(scanId, pathId); - } - CxWSResultPath res = null; - LoginResult loginResult = getLoginResult(); - CxWebServiceClient client; - try - { - client = new CxWebServiceClient(loginResult.AuthenticationData); - } - catch (Exception e) - { - Logger.Create().Error(e.ToString()); - MessageBox.Show(e.Message, "Error", MessageBoxButtons.OK); - return null; - } - - CxWSResponceResultPath cXWSResponseResults = client.ServiceClient.GetResultPath(loginResult.SessionId, scanId, pathId); - if (!cXWSResponseResults.IsSuccesfull) - { - // show error message - MessageBox.Show(cXWSResponseResults.ErrorMessage, "Error", MessageBoxButtons.OK); - return null; - } - - res = cXWSResponseResults.Path; - - return res; - } - - public static CxWSResultPath GetPathCommentsHistory(long scanId, long pathId) - { - if (CommonData.IsWorkingOffline) - { - return SavedResultsManager.Instance.GetResultPath(scanId, pathId); - } - CxWSResultPath res = null; - LoginResult loginResult = getLoginResult(); - - CxWebServiceClient client; - try - { - client = new CxWebServiceClient(loginResult.AuthenticationData); - } - catch (Exception e) - { - Logger.Create().Error(e.ToString()); - MessageBox.Show(e.Message, "Error", MessageBoxButtons.OK); - return null; - } - CxWSResponceResultPath cXWSResponseResults = client.ServiceClient.GetPathCommentsHistory(loginResult.SessionId, scanId, pathId, CxVSWebService.ResultLabelTypeEnum.Remark); - if (!cXWSResponseResults.IsSuccesfull) - { - // show error message - MessageBox.Show(cXWSResponseResults.ErrorMessage, "Error", MessageBoxButtons.OK); - return null; - } - - res = cXWSResponseResults.Path; - - return res; - } - - public static CxWSResultPath[] GetResultPathsForQuery(long scanId, long queryId) - { - if (CommonData.IsWorkingOffline) - { - return SavedResultsManager.Instance.GetResultPathsForQuery(scanId, queryId); - } - CxWSResultPath[] res = null; - LoginResult loginResult = getLoginResult(); - - CxWebServiceClient client; - try - { - client = new CxWebServiceClient(loginResult.AuthenticationData); - } - catch (Exception e) - { - Logger.Create().Error(e.ToString()); - MessageBox.Show(e.Message, "Error", MessageBoxButtons.OK); - return null; - } - - CxWSResponseResultPaths cXWSResponseResults = client.ServiceClient.GetResultPathsForQuery(loginResult.SessionId, scanId, queryId); - if (!cXWSResponseResults.IsSuccesfull) - { - // show error message - MessageBox.Show(cXWSResponseResults.ErrorMessage, "Error", MessageBoxButtons.OK); - return null; - } - - res = cXWSResponseResults.Paths; - - return res; - } - - - public static ResultState[] GetResultStateList() - { - ResultState[] res = null; - LoginResult loginResult = getLoginResult(); - CxWebServiceClient client; - try - { - client = new CxWebServiceClient(loginResult.AuthenticationData); - } - catch (Exception e) - { - Logger.Create().Error(e.ToString()); - MessageBox.Show(e.Message, "Error", MessageBoxButtons.OK); - return null; - } - - CxWSResponseResultStateList CxWSResponseResults = client.ServiceClient.GetResultStateList(loginResult.SessionId); - if (!CxWSResponseResults.IsSuccesfull) - { - // show error message - MessageBox.Show(CxWSResponseResults.ErrorMessage, "Error", MessageBoxButtons.OK); - return null; - } - - res = loginResult.AuthenticationData.ManageResultsExploitability ? CxWSResponseResults.ResultStateList : RemoveNotExploitableFromArray(CxWSResponseResults.ResultStateList ); - - - return res; - } - - private static ResultState[] RemoveNotExploitableFromArray(ResultState[] resultStates) - { - ResultState [] statesWithoutNotExploitable = new ResultState[resultStates.Length-1]; - - int currentFreeIndex= 0; - foreach (ResultState resultState in resultStates) - if(resultState.ResultID != 1) - { - statesWithoutNotExploitable[currentFreeIndex] = resultState; - currentFreeIndex++; - } - return statesWithoutNotExploitable; - } - - - public static AssignUser[] GetProjectAssignUsers() - { - if (CommonData.IsWorkingOffline) - { - return new AssignUser[0]; - } - AssignUser[] res = null; - LoginResult loginResult = getLoginResult(); - - CxWebServiceClient client; - try - { - client = new CxWebServiceClient(loginResult.AuthenticationData); - } - catch (Exception e) - { - Logger.Create().Error(e.ToString()); - MessageBox.Show(e.Message, "Error", MessageBoxButtons.OK); - return null; - } - - if (CommonData.IsProjectBound) - { - CxWSResponseAssignUsers CxWSResponseResults = client.ServiceClient.GetProjectAssignUsersList(loginResult.SessionId, CommonData.ProjectId); - if (!CxWSResponseResults.IsSuccesfull) - { - // show error message - MessageBox.Show(CxWSResponseResults.ErrorMessage, "Error", MessageBoxButtons.OK); - return null; - } - - res = CxWSResponseResults.AssignUsers; - } - - return res; - } - - public static bool UpdateResultState(ResultStateData[] dataArr) - { - if (CommonData.IsWorkingOffline) - { - MessageBox.Show("You are working offline. \rCannot update data", "Error", MessageBoxButtons.OK); - return false; - } - - CxWSBasicRepsonse res = null; - try - { - CxWebServiceClient client = null; - LoginResult loginResult = getLoginResult(); - try - { - client = new CxWebServiceClient(loginResult.AuthenticationData); - } - catch (Exception e) - { - Logger.Create().Error(e.ToString()); - MessageBox.Show(e.Message, "Error", MessageBoxButtons.OK); - return false; - } - - foreach (ResultStateData data in dataArr) - { - data.projectId = CommonData.ProjectId; - } - res = client.ServiceClient.UpdateSetOfResultState("", dataArr); - - if (!res.IsSuccesfull) - { - // show error message - MessageBox.Show(res.ErrorMessage, "Error", MessageBoxButtons.OK); - return false; - } - } - catch (Exception ex) - { - Logger.Create().Error(ex.ToString()); - MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK); - return false; - } - return res.IsSuccesfull; - } - - public static CxWSResponseScansDisplayData GetScansDisplayData(long selectedProjectId) - { - CxWSResponseScansDisplayData res = null; - LoginResult loginResult = getLoginResult(); - CxWebServiceClient client; - try - { - client = new CxWebServiceClient(loginResult.AuthenticationData); - } - catch (Exception e) - { - Logger.Create().Error(e.ToString()); - if (!String.IsNullOrEmpty(loginResult.LoginResultMessage)) - { - MessageBox.Show(loginResult.LoginResultMessage, "Error", MessageBoxButtons.OK); - } - else - { - MessageBox.Show(e.Message, "Error", MessageBoxButtons.OK); - } - return null; - } - if (!loginResult.IsSuccesfull) - { - if (!String.IsNullOrEmpty(loginResult.LoginResultMessage)) - { - MessageBox.Show(loginResult.LoginResultMessage, "Error", MessageBoxButtons.OK); - } - else - { - MessageBox.Show("Unknown error", "Error", MessageBoxButtons.OK); - } - return null; - } - - res = client.ServiceClient.GetScansDisplayData(loginResult.SessionId, selectedProjectId); - if (!res.IsSuccesfull) - { - // show error message - MessageBox.Show(res.ErrorMessage, "Error", MessageBoxButtons.OK); - return null; - } - - - return res; - } - - public static LoginResult LoginToServer() - { - LoginData loginData = LoginHelper.LoadSaved(); - OidcLoginData oidcLoginData = OidcLoginData.GetOidcLoginDataInstance(); - LoginResult loginResult = new LoginResult(); - bool cancelPressed = false; - if (oidcLoginData.AccessToken == null) - { - try - { - loginResult = LoginHelper.DoLoginWithoutForm(out cancelPressed, false); - if (!loginResult.IsSuccesfull) - { - loginResult = LoginHelper.DoLogin(out cancelPressed); - } - } - catch (Exception e) - { - Logger.Create().Error(e.ToString()); - MessageBox.Show(e.Message, "Error", MessageBoxButtons.OK); - return null; - } - } - else { - loginResult.AuthenticationData = loginData; - loginResult.IsSuccesfull = true; - } - - if (cancelPressed) - { - return null; - } - if (!loginResult.IsSuccesfull) - { - if (!OIDCLoginHelper.errorWasShown) - { - OIDCLoginHelper.errorWasShown = false; - showErrorMessage("Unable to connect to the server. Please verify data"); - return null; - } - return LoginToServer(); - } - return loginResult; - } - - private static void showErrorMessage(string message) - { - MessageBox.Show(message, "Error", MessageBoxButtons.OK); - } - } -} +using System; +using System.Threading; +using CxViewerAction.CxVSWebService; +using CxViewerAction.Entities; +using System.Xml.Serialization; +using System.IO; +using CxViewerAction.Services; +using CxViewerAction.Views; +using System.Windows.Forms; +using CxViewerAction.Entities.Enum; +using CxViewerAction.Views.DockedView; +using CxViewerAction.Entities.WebServiceEntity; +using System.Collections.Generic; +using Common; +using System.Net; +using System.Text; +using System.Web.Script.Serialization; +using CxViewerAction.ValueObjects; + +namespace CxViewerAction.Helpers +{ + /// + /// Helper class for perspective manipulation + /// + public class PerspectiveHelper + { + #region [ Constants ] + + /// + /// Perspective not exist message + /// + private const string _perspectiveNotExist = "Current project perspective not exist"; + private static string _apiSASTVersionDetails = "system/version"; + #endregion [ Constants ] + + /// + /// Execute 'Previous Result' command + /// + public static void DoPrevResult() + { + + Logger.Create().Debug("Display previous results."); + // Get logged user credentials and project relation data + LoginData login = Helpers.LoginHelper.Load(0); + CxWSQueryVulnerabilityData[] perspective = null; + login.IsOpenPerspective = Entities.Enum.SimpleDecision.Yes; + + LoginData.BindProject bindProject = login.BindedProjects.Find(delegate(LoginData.BindProject bp) + { + return bp.BindedProjectId == CommonData.ProjectId && + bp.ProjectName == CommonData.ProjectName && + bp.RootPath == CommonData.ProjectRootPath; + } + ); + + if (bindProject != null && bindProject.ScanReports != null && bindProject.ScanReports.Count > 0) + { + ScanReportInfo tmp = bindProject.ScanReports.Find(delegate(ScanReportInfo sri) + { + return sri.Id == CommonData.SelectedScanId; + } + ); + if (tmp == null || tmp.Id == 0) + { + tmp = bindProject.ScanReports[0]; + CommonData.SelectedScanId = tmp.Id; + } + + perspective = GetScanResultsPath(tmp.Id); + bindProject.SelectedScanId = tmp.Id; + if (!string.IsNullOrEmpty(tmp.Path)) + { + StorageHelper.Delete(tmp.Path); + } + + Logger.Create().Debug("Getting SCAN XML in backgroundworkerhelper."); + BackgroundWorkerHelper bgWork = new BackgroundWorkerHelper(delegate + { + tmp.Path = PerspectiveHelper.GetScanXML(CommonData.SelectedScanId); + + LoginHelper.Save(login); + }); + + bgWork.DoWork(); + + + + + Dictionary list = new Dictionary(); + Logger.Create().Debug("Scan report list size " + bindProject.ScanReports.Count); + foreach (ScanReportInfo item in bindProject.ScanReports) + { + if (!list.ContainsKey(item.Name)) + { + list.Add(item.Name, item.Id); + } + } + CommonActionsInstance.getInstance().ReportPersepectiveView.SetScanList(list, tmp.Id); + + if (perspective != null) + { + ShowStored(perspective, login, tmp.Id); + } + + } + } + + public static ProjectConfiguration GetProjectConfiguration(long projectId) + { + ProjectConfiguration res = null; + LoginResult loginResult = getLoginResult(); + + CxWebServiceClient client; + try + { + client = new CxWebServiceClient(loginResult.AuthenticationData); + } + catch (Exception e) + { + Logger.Create().Error(e.ToString()); + MessageBox.Show(e.Message, "Error", MessageBoxButtons.OK); + return null; + } + + CxWSResponseProjectConfig cXWSResponseResults = client.ServiceClient.GetProjectConfiguration(loginResult.SessionId, projectId); + if (!cXWSResponseResults.IsSuccesfull) + { + // show error message + MessageBox.Show(cXWSResponseResults.ErrorMessage, "Error", MessageBoxButtons.OK); + return null; + } + + res = cXWSResponseResults.ProjectConfig; + + return res; + } + + public static CxWSQueryVulnerabilityData[] GetScanResultsPath(long scanId) + { + CxWSQueryVulnerabilityData[] res = null; + LoginResult loginResult = getLoginResult(); + + CxWebServiceClient client; + try + { + client = new CxWebServiceClient(loginResult.AuthenticationData); + } + catch (Exception e) + { + Logger.Create().Error(e.ToString()); + MessageBox.Show(e.Message, "Error", MessageBoxButtons.OK); + return null; + } + + CxWSResponceQuerisForScan cXWSResponseResults = client.ServiceClient.GetQueriesForScan(loginResult.SessionId, scanId); + if (!cXWSResponseResults.IsSuccesfull) + { + // show error message + MessageBox.Show(cXWSResponseResults.ErrorMessage, "Error", MessageBoxButtons.OK); + return null; + } + + res = cXWSResponseResults.Queries; + + return res; + } + + private static LoginResult getLoginResult() + { + LoginData loginData = LoginHelper.LoadSaved(); + LoginResult loginResult = new LoginResult(); + OidcLoginData oidcLoginData = OidcLoginData.GetOidcLoginDataInstance(); + bool cancelPressed; + if (oidcLoginData.AccessToken == null) + { + loginResult = LoginHelper.DoLoginWithoutForm(out cancelPressed, false); + if (!loginResult.IsSuccesfull) + loginResult = LoginHelper.DoLogin(out cancelPressed); + } + else + { + loginResult.AuthenticationData = loginData; + loginResult.IsSuccesfull = true; + } + + return loginResult; + } + + public static CxWSQueryVulnerabilityData[] GetScanResultsPaths(string scanTaskId, ref long scaId) + { + CxWSQueryVulnerabilityData[] res = null; + LoginResult loginResult = getLoginResult(); + CxWebServiceClient client; + try + { + client = new CxWebServiceClient(loginResult.AuthenticationData); + } + catch (Exception e) + { + Logger.Create().Error(e.ToString()); + MessageBox.Show(e.Message, "Error", MessageBoxButtons.OK); + return null; + } + + //check for format compatability - scan id should be a long number + long scanTaskIdNum; + bool resParse = long.TryParse(scanTaskId, out scanTaskIdNum); + if (!resParse) + { + // show error message + MessageBox.Show("Scan ID is in wrong format", "Error", MessageBoxButtons.OK); + return null; + } + + CxWSResponceQuerisForScan cXWSResponseResults = client.ServiceClient.GetQueriesForScan(loginResult.SessionId, scanTaskIdNum); + + if (!cXWSResponseResults.IsSuccesfull) + { + // show error message + MessageBox.Show(cXWSResponseResults.ErrorMessage, "Error", MessageBoxButtons.OK); + return null; + } + + res = cXWSResponseResults.Queries; + + scaId = scanTaskIdNum; + + return res; + } + + public static string GetScanXML(long scanId) + { + string path = ""; + LoginResult loginResult = getLoginResult(); + CxWebServiceClient client; + try + { + client = new CxWebServiceClient(loginResult.AuthenticationData); + } + catch (Exception e) + { + Logger.Create().Error(e.ToString()); + return null; + } + + string savedFileName = string.Format("report{0}", Guid.NewGuid()); + // create status report + CxWSReportRequest reportRequest = new CxWSReportRequest(); + reportRequest.ScanID = scanId; + reportRequest.Type = CxWSReportType.XML; + CxWSCreateReportResponse cXWSCreateReportResponse = client.ServiceClient.CreateScanReport(loginResult.SessionId, reportRequest); + long reportID = cXWSCreateReportResponse.ID; + int numOfTrials = 0; + bool resultsObtained = false; + while (!resultsObtained && numOfTrials < 100) + { + CxWSReportStatusResponse cxWSReportStatusResponse = client.ServiceClient.GetScanReportStatus(loginResult.SessionId, reportID); + if (cxWSReportStatusResponse.IsReady) + { + resultsObtained = true; + } + else + { + Thread.Sleep(500); + } + numOfTrials++; + } + + CxWSResponseScanResults cxWSResponseScanResults = client.ServiceClient.GetScanReport(loginResult.SessionId, reportID); + if (!cxWSResponseScanResults.IsSuccesfull) + { + Logger.Create().Error(cxWSResponseScanResults.ErrorMessage); + return null; + } + + StorageHelper.Save(cxWSResponseScanResults.ScanResults, savedFileName); + path = savedFileName; + + + + return path; + } + + /// + /// Ask user to open perspective now + /// + /// user auth data + /// + internal static bool IsOpenNow(LoginData login) + { + OpenPercspectiveDialog dlg = new OpenPercspectiveDialog(); + DialogResult r = dlg.ShowDialog(); + + if (dlg.RememberDecision) + { + login.IsOpenPerspective = (r == DialogResult.OK) ? CxViewerAction.Entities.Enum.SimpleDecision.Yes : Entities.Enum.SimpleDecision.No; + LoginHelper.Save(login); + } + + return r == DialogResult.Yes; + } + + /// + /// Execute 'Show Stored' command + /// + /// + /// + /// + public static void ShowStored(CxWSQueryVulnerabilityData[] queries, LoginData login, long scanId) + { + + Dictionary> queriesGroups = new Dictionary>(); + List sev0 = new List(); + List sev1 = new List(); + List sev2 = new List(); + List sev3 = new List(); + List sev4 = new List(); + + for (int i = 0; i < queries.Length; i++) + { + CxWSQueryVulnerabilityData cur = queries[i]; + switch (cur.Severity) + { + case 0: + sev0.Add(cur); + break; + case 1: + sev1.Add(cur); + break; + case 2: + sev2.Add(cur); + break; + case 3: + sev3.Add(cur); + break; + case 4: + sev4.Add(cur); + break; + } + } + if (sev4.Count > 0) + { + queriesGroups.Add(ReportQuerySeverityType.Critical, sev4); + } + if (sev3.Count > 0) + { + queriesGroups.Add(ReportQuerySeverityType.High, sev3); + } + if (sev2.Count > 0) + { + queriesGroups.Add(ReportQuerySeverityType.Medium, sev2); + } + if (sev1.Count > 0) + { + queriesGroups.Add(ReportQuerySeverityType.Low, sev1); + } + if (sev0.Count > 0) + { + queriesGroups.Add(ReportQuerySeverityType.Information, sev0); + } + + + Dictionary> tree = new Dictionary>(); + + foreach (var queryGroup in queriesGroups) + { + List list = new List(); + + for (int i = 0; i < queryGroup.Value.Count; i++) + { + CxWSQueryVulnerabilityData query = queryGroup.Value[i]; + + ReportQueryResult queryResult = new ReportQueryResult() + { + CweId = (int)query.CWE, + Group = query.GroupName, + Id = (int)query.QueryId, + Name = query.QueryName, + Paths = null, + Report = null, + Severity = (ReportQuerySeverityType)query.Severity, + AmountOfResults = query.AmountOfResults, + ScanId = scanId, + QueryVersionCode = query.QueryVersionCode + }; + + list.Add(queryResult); + } + + tree.Add(queryGroup.Key, list); + } + + ReportResult report = new ReportResult(); + + report.Tree = tree; + + var reportWinObject = CommonActionsInstance.getInstance().ReportPersepectiveView; + + reportWinObject.Report = report; + + reportWinObject.BindData(); + + } + + public static CxWSSingleResultData[] GetScanResultsForQuery(long scanId, long queryId) + { + if (CommonData.IsWorkingOffline) + { + return SavedResultsManager.Instance.GetScanResultsForQuery(scanId, queryId); + } + CxWSSingleResultData[] res = null; + LoginResult loginResult = getLoginResult(); + CxWebServiceClient client; + try + { + client = new CxWebServiceClient(loginResult.AuthenticationData); + } + catch (Exception e) + { + Logger.Create().Error(e.ToString()); + MessageBox.Show(e.Message, "Error", MessageBoxButtons.OK); + return null; + } + + CxWSResponceScanResults cXWSResponseResults = client.ServiceClient.GetResultsForQuery(loginResult.SessionId, scanId, queryId); + if (!cXWSResponseResults.IsSuccesfull) + { + // show error message + MessageBox.Show(cXWSResponseResults.ErrorMessage, "Error", MessageBoxButtons.OK); + return null; + } + + res = cXWSResponseResults.Results; + + return res; + } + + public static CxWSResultPath GetResultPath(long scanId, long pathId) + { + if (CommonData.IsWorkingOffline) + { + return SavedResultsManager.Instance.GetResultPath(scanId, pathId); + } + CxWSResultPath res = null; + LoginResult loginResult = getLoginResult(); + CxWebServiceClient client; + try + { + client = new CxWebServiceClient(loginResult.AuthenticationData); + } + catch (Exception e) + { + Logger.Create().Error(e.ToString()); + MessageBox.Show(e.Message, "Error", MessageBoxButtons.OK); + return null; + } + + CxWSResponceResultPath cXWSResponseResults = client.ServiceClient.GetResultPath(loginResult.SessionId, scanId, pathId); + if (!cXWSResponseResults.IsSuccesfull) + { + // show error message + MessageBox.Show(cXWSResponseResults.ErrorMessage, "Error", MessageBoxButtons.OK); + return null; + } + + res = cXWSResponseResults.Path; + + return res; + } + + public static CxWSResultPath GetPathCommentsHistory(long scanId, long pathId) + { + if (CommonData.IsWorkingOffline) + { + return SavedResultsManager.Instance.GetResultPath(scanId, pathId); + } + CxWSResultPath res = null; + LoginResult loginResult = getLoginResult(); + + CxWebServiceClient client; + try + { + client = new CxWebServiceClient(loginResult.AuthenticationData); + } + catch (Exception e) + { + Logger.Create().Error(e.ToString()); + MessageBox.Show(e.Message, "Error", MessageBoxButtons.OK); + return null; + } + CxWSResponceResultPath cXWSResponseResults = client.ServiceClient.GetPathCommentsHistory(loginResult.SessionId, scanId, pathId, CxVSWebService.ResultLabelTypeEnum.Remark); + if (!cXWSResponseResults.IsSuccesfull) + { + // show error message + MessageBox.Show(cXWSResponseResults.ErrorMessage, "Error", MessageBoxButtons.OK); + return null; + } + + res = cXWSResponseResults.Path; + + return res; + } + + public static CxWSResultPath[] GetResultPathsForQuery(long scanId, long queryId) + { + if (CommonData.IsWorkingOffline) + { + return SavedResultsManager.Instance.GetResultPathsForQuery(scanId, queryId); + } + CxWSResultPath[] res = null; + LoginResult loginResult = getLoginResult(); + + CxWebServiceClient client; + try + { + client = new CxWebServiceClient(loginResult.AuthenticationData); + } + catch (Exception e) + { + Logger.Create().Error(e.ToString()); + MessageBox.Show(e.Message, "Error", MessageBoxButtons.OK); + return null; + } + + CxWSResponseResultPaths cXWSResponseResults = client.ServiceClient.GetResultPathsForQuery(loginResult.SessionId, scanId, queryId); + if (!cXWSResponseResults.IsSuccesfull) + { + // show error message + MessageBox.Show(cXWSResponseResults.ErrorMessage, "Error", MessageBoxButtons.OK); + return null; + } + + res = cXWSResponseResults.Paths; + + return res; + } + + + public static ResultState[] GetResultStateList() + { + ResultState[] res = null; + LoginResult loginResult = getLoginResult(); + CxWebServiceClient client; + try + { + client = new CxWebServiceClient(loginResult.AuthenticationData); + } + catch (Exception e) + { + Logger.Create().Error(e.ToString()); + MessageBox.Show(e.Message, "Error", MessageBoxButtons.OK); + return null; + } + + CxWSResponseResultStateList CxWSResponseResults = client.ServiceClient.GetResultStateList(loginResult.SessionId); + if (!CxWSResponseResults.IsSuccesfull) + { + // show error message + MessageBox.Show(CxWSResponseResults.ErrorMessage, "Error", MessageBoxButtons.OK); + return null; + } + + res = loginResult.AuthenticationData.ManageResultsExploitability ? CxWSResponseResults.ResultStateList : RemoveNotExploitableFromArray(CxWSResponseResults.ResultStateList ); + + + return res; + } + + public static string GetSASTVersionDetails() + { + string responseText = string.Empty; + + if(!string.IsNullOrEmpty(LoginHelper.ServerBaseUrl)) + { + CxRESTApiCommon rESTApiPortalConfiguration = new CxRESTApiCommon(string.Format(_apiSASTVersionDetails)); + HttpWebResponse response = rESTApiPortalConfiguration.InitPortalBaseUrl(); + + if (response != null && response.StatusCode == HttpStatusCode.OK) + { + using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8)) + { + responseText = reader.ReadToEnd(); + } + } + } + + if (!string.IsNullOrEmpty(responseText)) + { + CxVersionInfo versionInfo = new CxVersionInfo(); + JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer(); + versionInfo = (CxVersionInfo)javaScriptSerializer.Deserialize(responseText, typeof(CxVersionInfo)); + return versionInfo.version; + } + return ""; + } + + private static ResultState[] RemoveNotExploitableFromArray(ResultState[] resultStates) + { + ResultState [] statesWithoutNotExploitable = new ResultState[resultStates.Length-1]; + + int currentFreeIndex= 0; + foreach (ResultState resultState in resultStates) + if(resultState.ResultID != 1) + { + statesWithoutNotExploitable[currentFreeIndex] = resultState; + currentFreeIndex++; + } + return statesWithoutNotExploitable; + } + + + public static AssignUser[] GetProjectAssignUsers() + { + if (CommonData.IsWorkingOffline) + { + return new AssignUser[0]; + } + AssignUser[] res = null; + LoginResult loginResult = getLoginResult(); + + CxWebServiceClient client; + try + { + client = new CxWebServiceClient(loginResult.AuthenticationData); + } + catch (Exception e) + { + Logger.Create().Error(e.ToString()); + MessageBox.Show(e.Message, "Error", MessageBoxButtons.OK); + return null; + } + + CxWSResponseAssignUsers CxWSResponseResults = client.ServiceClient.GetProjectAssignUsersList(loginResult.SessionId, CommonData.ProjectId); + if (CommonData.IsProjectBound) + { + if (!CxWSResponseResults.IsSuccesfull) + { + // show error message + MessageBox.Show(CxWSResponseResults.ErrorMessage, "Error", MessageBoxButtons.OK); + return null; + } + } + res = CxWSResponseResults.AssignUsers; + return res; + } + + public static bool UpdateResultState(ResultStateData[] dataArr) + { + if (CommonData.IsWorkingOffline) + { + MessageBox.Show("You are working offline. \rCannot update data", "Error", MessageBoxButtons.OK); + return false; + } + + CxWSBasicRepsonse res = null; + try + { + CxWebServiceClient client = null; + LoginResult loginResult = getLoginResult(); + try + { + client = new CxWebServiceClient(loginResult.AuthenticationData); + } + catch (Exception e) + { + Logger.Create().Error(e.ToString()); + MessageBox.Show(e.Message, "Error", MessageBoxButtons.OK); + return false; + } + + foreach (ResultStateData data in dataArr) + { + data.projectId = CommonData.ProjectId; + } + res = client.ServiceClient.UpdateSetOfResultState("", dataArr); + + if (!res.IsSuccesfull) + { + // show error message + MessageBox.Show(res.ErrorMessage, "Error", MessageBoxButtons.OK); + return false; + } + } + catch (Exception ex) + { + Logger.Create().Error(ex.ToString()); + MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK); + return false; + } + return res.IsSuccesfull; + } + + public static CxWSResponseScansDisplayData GetScansDisplayData(long selectedProjectId) + { + CxWSResponseScansDisplayData res = null; + LoginResult loginResult = getLoginResult(); + CxWebServiceClient client; + try + { + client = new CxWebServiceClient(loginResult.AuthenticationData); + } + catch (Exception e) + { + Logger.Create().Error(e.ToString()); + if (!String.IsNullOrEmpty(loginResult.LoginResultMessage)) + { + MessageBox.Show(loginResult.LoginResultMessage, "Error", MessageBoxButtons.OK); + } + else + { + MessageBox.Show(e.Message, "Error", MessageBoxButtons.OK); + } + return null; + } + if (!loginResult.IsSuccesfull) + { + if (!String.IsNullOrEmpty(loginResult.LoginResultMessage)) + { + MessageBox.Show(loginResult.LoginResultMessage, "Error", MessageBoxButtons.OK); + } + else + { + MessageBox.Show("Unknown error", "Error", MessageBoxButtons.OK); + } + return null; + } + + res = client.ServiceClient.GetScansDisplayData(loginResult.SessionId, selectedProjectId); + if (!res.IsSuccesfull) + { + // show error message + MessageBox.Show(res.ErrorMessage, "Error", MessageBoxButtons.OK); + return null; + } + + + return res; + } + + public static LoginResult LoginToServer() + { + LoginData loginData = LoginHelper.LoadSaved(); + OidcLoginData oidcLoginData = OidcLoginData.GetOidcLoginDataInstance(); + LoginResult loginResult = new LoginResult(); + bool cancelPressed = false; + if (oidcLoginData.AccessToken == null) + { + try + { + loginResult = LoginHelper.DoLoginWithoutForm(out cancelPressed, false); + if (!loginResult.IsSuccesfull) + { + loginResult = LoginHelper.DoLogin(out cancelPressed); + } + } + catch (Exception e) + { + Logger.Create().Error(e.ToString()); + MessageBox.Show(e.Message, "Error", MessageBoxButtons.OK); + return null; + } + } + else { + loginResult.AuthenticationData = loginData; + loginResult.IsSuccesfull = true; + } + + if (cancelPressed) + { + return null; + } + if (!loginResult.IsSuccesfull) + { + if (!OIDCLoginHelper.errorWasShown) + { + OIDCLoginHelper.errorWasShown = false; + showErrorMessage("Unable to connect to the server. Please verify data"); + return null; + } + return LoginToServer(); + } + return loginResult; + } + + private static void showErrorMessage(string message) + { + MessageBox.Show(message, "Error", MessageBoxButtons.OK); + } + } +} diff --git a/CxViewerAction/Helpers/ProblemDescriptionHelper.cs b/CxActionShared/Helpers/ProblemDescriptionHelper.cs similarity index 97% rename from CxViewerAction/Helpers/ProblemDescriptionHelper.cs rename to CxActionShared/Helpers/ProblemDescriptionHelper.cs index c1ecaec8..7ff9fe58 100644 --- a/CxViewerAction/Helpers/ProblemDescriptionHelper.cs +++ b/CxActionShared/Helpers/ProblemDescriptionHelper.cs @@ -1,54 +1,54 @@ -using System; -using System.Collections.Generic; - -using System.Text; -using CxViewerAction.Entities.WebServiceEntity; -using CxViewerAction.CxVSWebService; -using System.Windows.Forms; - -namespace CxViewerAction.Helpers -{ - /// - /// Helper class that manipulate with stored problem description - /// - public class ProblemDescriptionHelper - { - /// - /// Find specified problem description - /// - /// Problem identifier - /// If file description was found method returns full path to file, otherwise retutn null - public static string GetStoredProblem(int queryId) - { - QueryDescriptionResult queryResult = new QueryDescriptionResult(); - queryResult.QueryId = queryId; - - string file = queryResult.GetFileDescription(); - - if (string.IsNullOrEmpty(file)) - { - if (CommonData.IsWorkingOffline) - { - MessageBox.Show("You are working offline. \rCannot get data", "Error", MessageBoxButtons.OK); - return null; - } - BackgroundWorkerHelper bg = new BackgroundWorkerHelper(delegate(object obj) - { - CxWSResponseQueryDescription cxWSResponseQueryDescription = QueryDescriptionResult.GetById(queryResult.QueryId); - queryResult = new QueryDescriptionResult(); - queryResult.Description = cxWSResponseQueryDescription.QueryDescription; - queryResult.IsSuccesfull = cxWSResponseQueryDescription.IsSuccesfull; - queryResult.QueryId = queryId; - }, 0, 0); - - if (!bg.DoWork("Downloading description...")) - return null; - - if (queryResult.IsSuccesfull && queryResult.Save()) - file = queryResult.GetFileDescription(); - } - - return file; - } - } -} +using System; +using System.Collections.Generic; + +using System.Text; +using CxViewerAction.Entities.WebServiceEntity; +using CxViewerAction.CxVSWebService; +using System.Windows.Forms; + +namespace CxViewerAction.Helpers +{ + /// + /// Helper class that manipulate with stored problem description + /// + public class ProblemDescriptionHelper + { + /// + /// Find specified problem description + /// + /// Problem identifier + /// If file description was found method returns full path to file, otherwise retutn null + public static string GetStoredProblem(int queryId) + { + QueryDescriptionResult queryResult = new QueryDescriptionResult(); + queryResult.QueryId = queryId; + + string file = queryResult.GetFileDescription(); + + if (string.IsNullOrEmpty(file)) + { + if (CommonData.IsWorkingOffline) + { + MessageBox.Show("You are working offline. \rCannot get data", "Error", MessageBoxButtons.OK); + return null; + } + BackgroundWorkerHelper bg = new BackgroundWorkerHelper(delegate(object obj) + { + CxWSResponseQueryDescription cxWSResponseQueryDescription = QueryDescriptionResult.GetById(queryResult.QueryId); + queryResult = new QueryDescriptionResult(); + queryResult.Description = cxWSResponseQueryDescription.QueryDescription; + queryResult.IsSuccesfull = cxWSResponseQueryDescription.IsSuccesfull; + queryResult.QueryId = queryId; + }, 0, 0); + + if (!bg.DoWork("Downloading description...")) + return null; + + if (queryResult.IsSuccesfull && queryResult.Save()) + file = queryResult.GetFileDescription(); + } + + return file; + } + } +} diff --git a/CxViewerAction/Helpers/SamlLoginHelper.cs b/CxActionShared/Helpers/SamlLoginHelper.cs similarity index 97% rename from CxViewerAction/Helpers/SamlLoginHelper.cs rename to CxActionShared/Helpers/SamlLoginHelper.cs index fdcf3c98..93c95d9d 100644 --- a/CxViewerAction/Helpers/SamlLoginHelper.cs +++ b/CxActionShared/Helpers/SamlLoginHelper.cs @@ -1,63 +1,63 @@ -using System; -using System.Threading; -using System.Windows.Forms; -using CxViewerAction.ValueObjects; -using CxViewerAction.Views; - -namespace CxViewerAction.Helpers -{ - public class SamlLoginHelper - { - private readonly SamlLoginFrm _samlLoginFrm = new SamlLoginFrm(); - private readonly AutoResetEvent _samlLoginEvent = new AutoResetEvent(false); - public static bool errorWasShown = false; - - private SamlLoginResult _latestResult; - - public SamlLoginHelper() - { - _samlLoginFrm.SamlLoginCtrl.NavigationCompleted += SamlLoginCtrlOnNavigationCompleted; - _samlLoginFrm.SamlLoginCtrl.NavigationError += SamlLoginCtrlOnNavigationError; - _samlLoginFrm.UserClosedForm += OnUserClosedForm; - _latestResult = new SamlLoginResult(false, string.Empty, null); - } - - private void OnUserClosedForm(object sender, EventArgs e) - { - _latestResult = new SamlLoginResult(false, string.Empty, null); - _samlLoginEvent.Set(); - } - - private void SamlLoginCtrlOnNavigationError(object sender, string errorMessage) - { - errorWasShown = true; - MessageBox.Show(errorMessage,"Error", MessageBoxButtons.OK); - _latestResult = new SamlLoginResult(false, errorMessage, null); - _samlLoginEvent.Set(); - } - - private void SamlLoginCtrlOnNavigationCompleted(object sender, string ottValue) - { - _latestResult = new SamlLoginResult(true, string.Empty, ottValue); - _samlLoginEvent.Set(); - } - - private void ConectAndWait(string baseServerUri) - { - _samlLoginFrm.SamlLoginCtrl.Invoke(new MethodInvoker(() => - { - _samlLoginFrm.Show(); - _samlLoginFrm.ConnectToIdentidyProvider(baseServerUri); - })); - _samlLoginEvent.WaitOne(); - } - - public SamlLoginResult ConnectToIdentidyProvider(string baseServerUri) - { - ConectAndWait(baseServerUri); - - _samlLoginFrm.CloseForm(); - return _latestResult; - } - } -} +using System; +using System.Threading; +using System.Windows.Forms; +using CxViewerAction.ValueObjects; +using CxViewerAction.Views; + +namespace CxViewerAction.Helpers +{ + public class SamlLoginHelper + { + private readonly SamlLoginFrm _samlLoginFrm = new SamlLoginFrm(); + private readonly AutoResetEvent _samlLoginEvent = new AutoResetEvent(false); + public static bool errorWasShown = false; + + private SamlLoginResult _latestResult; + + public SamlLoginHelper() + { + _samlLoginFrm.SamlLoginCtrl.NavigationCompleted += SamlLoginCtrlOnNavigationCompleted; + _samlLoginFrm.SamlLoginCtrl.NavigationError += SamlLoginCtrlOnNavigationError; + _samlLoginFrm.UserClosedForm += OnUserClosedForm; + _latestResult = new SamlLoginResult(false, string.Empty, null); + } + + private void OnUserClosedForm(object sender, EventArgs e) + { + _latestResult = new SamlLoginResult(false, string.Empty, null); + _samlLoginEvent.Set(); + } + + private void SamlLoginCtrlOnNavigationError(object sender, string errorMessage) + { + errorWasShown = true; + MessageBox.Show(errorMessage,"Error", MessageBoxButtons.OK); + _latestResult = new SamlLoginResult(false, errorMessage, null); + _samlLoginEvent.Set(); + } + + private void SamlLoginCtrlOnNavigationCompleted(object sender, string ottValue) + { + _latestResult = new SamlLoginResult(true, string.Empty, ottValue); + _samlLoginEvent.Set(); + } + + private void ConectAndWait(string baseServerUri) + { + _samlLoginFrm.SamlLoginCtrl.Invoke(new MethodInvoker(() => + { + _samlLoginFrm.Show(); + _samlLoginFrm.ConnectToIdentidyProvider(baseServerUri); + })); + _samlLoginEvent.WaitOne(); + } + + public SamlLoginResult ConnectToIdentidyProvider(string baseServerUri) + { + ConectAndWait(baseServerUri); + + _samlLoginFrm.CloseForm(); + return _latestResult; + } + } +} diff --git a/CxViewerAction/Helpers/SavedResultsManager.cs b/CxActionShared/Helpers/SavedResultsManager.cs similarity index 97% rename from CxViewerAction/Helpers/SavedResultsManager.cs rename to CxActionShared/Helpers/SavedResultsManager.cs index 4700f859..48b30899 100644 --- a/CxViewerAction/Helpers/SavedResultsManager.cs +++ b/CxActionShared/Helpers/SavedResultsManager.cs @@ -1,467 +1,467 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Xml; -using CxViewerAction.Entities; -using CxViewerAction.CxVSWebService; -using CxViewerAction.Entities.WebServiceEntity; -using System.IO; -using Common; - -namespace CxViewerAction.Helpers -{ - public class SavedResultsManager - { - static readonly object lockObj = new object(); - private static SavedResultsManager instance = new SavedResultsManager(); - private static long scanId; - private static XmlDocument xml = null; - public const string RESULT_STATUS_NEW_TEXT = "New"; - public const string RESULT_STATUS_RECURRENT_TEXT = "Recurrent"; - public const string RESULT_STATUS_FIXED_TEXT = "Fixed"; - - public const string RESULT_COMMENT_DETAILS_SEPARATOR = "]:"; - - public static SavedResultsManager Instance - { - get - { - lock (lockObj) - { - if (instance == null) - { - instance = new SavedResultsManager(); - } - return instance; - } - } - } - - - internal CxWSQueryVulnerabilityData[] LoadStoredScanData(long id) - { - if (scanId != id) - { - XML = null; - scanId = id; - } - List list = new List(); - if (XML != null) - { - XmlNodeList queryNodes = XML.SelectNodes("/CxXMLResults/Query"); - foreach (XmlNode xmlNode in queryNodes) - { - - CxWSQueryVulnerabilityData query = new CxWSQueryVulnerabilityData(); - string idValue = xmlNode.Attributes["id"].Value ?? xmlNode.Attributes["Id"].Value; - if (idValue != null) - query.QueryId = int.Parse(idValue); - - string cweIdValue = xmlNode.Attributes["cweId"].Value ?? xmlNode.Attributes["CweId"].Value; - if (cweIdValue != null) - query.CWE = int.Parse(cweIdValue); - - query.QueryName = xmlNode.Attributes["name"].Value ?? xmlNode.Attributes["Name"].Value; - query.GroupName = xmlNode.Attributes["group"].Value ?? xmlNode.Attributes["Group"].Value; - XmlAttribute severityAttribute = xmlNode.Attributes["severity"] ?? xmlNode.Attributes["Severity"]; - if (severityAttribute.Value != null) - query.Severity = (int)ReportQueryResult.SeverityTypeFromString(severityAttribute.Value); - - query.AmountOfResults = xmlNode.ChildNodes.Count; - - list.Add(query); - - } - } - - return list.ToArray(); - } - - private XmlDocument XML - { - get - { - if (xml != null) - { - return xml; - } - else - { - string xmlFile = ""; - LoginData login = LoginHelper.LoadSaved(); - LoginData.BindProject bindPro = login.BindedProjects.Find(delegate(LoginData.BindProject bp) - { - return bp.BindedProjectId == CommonData.ProjectId; - }); - - if (bindPro != null) - { - Dictionary list = new Dictionary(); - ScanReportInfo item = bindPro.ScanReports.Find(delegate(ScanReportInfo sri) - { - return sri.Id == scanId; - }); - if (item != null && !String.IsNullOrEmpty(item.Path)) - { - xmlFile = StorageHelper.Read(item.Path); - } - if (!String.IsNullOrEmpty(xmlFile)) - { - xml = new XmlDocument(); - xml.LoadXml(xmlFile); - } - } - - return xml; - } - - } - set - { - xml = value; - } - } - - internal CxWSSingleResultData[] GetScanResultsForQuery(long id, long queryId) - { - if (scanId != id) - { - XML = null; - scanId = id; - } - String query = "/CxXMLResults/Query[@id=" + queryId + "]"; - XmlNodeList list = XML.SelectNodes(query); - - if (list != null && list.Count > 0) - { - return ParseQueryItemPathResult(list[0]).ToArray(); - } - - return null; - } - - internal static List ParseQueryItemPathResult(XmlNode xmlNode) - { - List outputItems = new List(); - - foreach (XmlNode resultNode in xmlNode.ChildNodes) - { - int severity = 0; - string assignedUser = string.Empty; - string status = string.Empty; - string fullSourceFileName = resultNode.FirstChild.FirstChild.ChildNodes[0].InnerText; - string sourceFile = fullSourceFileName; - string sourceFolder = Path.DirectorySeparatorChar.ToString(); - string fullDestinationFileName = resultNode.FirstChild.LastChild.ChildNodes[0].InnerText; - string destinationFile = fullDestinationFileName; - string destinationFolder = Path.DirectorySeparatorChar.ToString(); - int state = 0; - string lineValue = resultNode.Attributes["Line"].Value ?? resultNode.Attributes["line"].Value; - string falsePositiveValue = resultNode.Attributes["FalsePositive"].Value ?? resultNode.Attributes["falsePositive"].Value; - string pathIdValue = resultNode.FirstChild.Attributes["PathId"].Value ?? resultNode.FirstChild.Attributes["pathId"].Value; - try - { - XmlAttribute severityAttribute = xmlNode.Attributes["severity"] ?? xmlNode.Attributes["Severity"]; - if (severityAttribute.Value != null) - { - severity = (int)ReportQueryResult.SeverityTypeFromString(severityAttribute.Value); - } - } - catch (Exception ex) - { - Logger.Create().Error(ex.ToString()); - } - try - { - sourceFolder = Path.GetDirectoryName(fullSourceFileName); - if (string.IsNullOrEmpty(sourceFolder)) - { - sourceFolder = Path.DirectorySeparatorChar.ToString(); - } - } - catch (Exception ex) - { - Logger.Create().Error(ex.ToString()); - } - try - { - sourceFile = Path.GetFileName(fullSourceFileName); - } - catch (Exception ex) - { - Logger.Create().Error(ex.ToString()); - } - - try - { - destinationFolder = Path.GetDirectoryName(fullDestinationFileName); - if (string.IsNullOrEmpty(destinationFolder)) - { - destinationFolder = Path.DirectorySeparatorChar.ToString(); - } - } - catch (Exception ex) - { - Logger.Create().Error(ex.ToString()); - } - try - { - destinationFile = Path.GetFileName(fullDestinationFileName); - } - catch (Exception ex) - { - Logger.Create().Error(ex.ToString()); - } - - try - { - assignedUser = resultNode.Attributes["AssignToUser"].Value; - } - catch (Exception ex) - { - Logger.Create().Error(ex.ToString()); - } - try - { - status = resultNode.Attributes["Status"].Value ?? resultNode.Attributes["status"].Value; - } - catch (Exception ex) - { - Logger.Create().Error(ex.ToString()); - } - - try - { - state = Convert.ToInt32(resultNode.Attributes["state"].Value); - } - catch (Exception ex) - { - Logger.Create().Error(ex.ToString()); - try - { - state = falsePositiveValue != null ? Convert.ToInt32(Convert.ToBoolean(falsePositiveValue)) : 0; - } - catch (Exception exc) - { - Logger.Create().Error(exc.ToString()); - } - } - - - CxWSSingleResultData reportQueryItemResult = new CxWSSingleResultData - { - SourceFile = sourceFile, - SourceFolder = sourceFolder, - SourceLine = lineValue != null ? Convert.ToInt32(lineValue) : 0, - SourceObject = resultNode.FirstChild.FirstChild.ChildNodes[4].InnerText, - Comment = resultNode.Attributes["Remark"].Value ?? resultNode.Attributes["remark"].Value, - PathId = pathIdValue != null ? Convert.ToInt32(pathIdValue) : 0, - Severity = severity, - AssignedUser = assignedUser, - ResultStatus = ConvertResultStatusToEnum(status), - State = state, - DestFile = destinationFile, - DestFolder = destinationFolder, - DestLine = Convert.ToInt64(resultNode.FirstChild.LastChild.ChildNodes[1].InnerText), - DestObject = resultNode.FirstChild.LastChild.ChildNodes[4].InnerText, - }; - - outputItems.Add(reportQueryItemResult); - - } - - - return outputItems; - } - - - internal CxWSResultPath[] GetResultPathsForQuery(long id, long queryId) - { - if (scanId != id) - { - XML = null; - scanId = id; - } - String query = "/CxXMLResults/Query[@id=" + queryId + "]"; - XmlNodeList list = XML.SelectNodes(query); - - if (list != null && list.Count > 0) - { - return GetResultPathsForQuery(list[0]); - } - - return null; - } - - private CxWSResultPath[] GetResultPathsForQuery(XmlNode xmlNode) - { - List outputItems = new List(); - - foreach (XmlNode resultNode in xmlNode.ChildNodes) - { - CxWSResultPath reportQueryItemResult = GetResultPath(resultNode); - - outputItems.Add(reportQueryItemResult); - - } - - - return outputItems.ToArray(); - } - - private CxWSPathNode[] GetNodesForPath(XmlNode Path) - { - List outputItems = new List(); - - if (Path.FirstChild == null) - return outputItems.ToArray(); - - foreach (XmlNode pathNode in Path.ChildNodes) - { - CxWSPathNode node = new CxWSPathNode(); - foreach (XmlNode pathSubNode in pathNode.ChildNodes) - { - switch (pathSubNode.Name.ToLower()) - { - case "filename": node.FileName = pathSubNode.InnerText; break; - case "line": node.Line = int.Parse(pathSubNode.InnerText); break; - case "column": node.Column = int.Parse(pathSubNode.InnerText); break; - case "name": node.Name = pathSubNode.InnerText; break; - case "length": node.Length = int.Parse(pathSubNode.InnerText); break; - case "nodeid": node.PathNodeId = int.Parse(pathSubNode.InnerText); break; - } - } - outputItems.Add(node); - } - - return outputItems.ToArray(); - } - - internal CxWSResultPath GetResultPath(long id, long pathId) - { - if (scanId != id) - { - XML = null; - scanId = id; - } - String query = "/CxXMLResults/Query/Result/Path[@PathId=" + pathId + "]"; - XmlNodeList list = XML.SelectNodes(query); - if (list != null && list.Count > 0) - { - return GetResultPath(list[0].ParentNode); - } - - return null; - } - - private CxWSResultPath GetResultPath(XmlNode resultNode) - { - int severity = 0; - string assignedUser = ""; - int state = 0; - string lineValue = resultNode.Attributes["Line"].Value ?? resultNode.Attributes["line"].Value; - string falsePositiveValue = resultNode.Attributes["FalsePositive"].Value ?? resultNode.Attributes["falsePositive"].Value; - string pathIdValue = resultNode.FirstChild.Attributes["PathId"].Value ?? resultNode.FirstChild.Attributes["pathId"].Value; - string resultIdValue = resultNode.FirstChild.Attributes["ResultId"].Value ?? resultNode.FirstChild.Attributes["resultId"].Value; - try - { - XmlAttribute severityAttribute = resultNode.Attributes["severity"] ?? resultNode.Attributes["Severity"]; - if (severityAttribute.Value != null) - { - severity = (int)ReportQueryResult.SeverityTypeFromString(severityAttribute.Value); - } - } - catch (Exception ex) - { - Logger.Create().Error(ex.ToString()); - } - try - { - assignedUser = resultNode.Attributes["AssignToUser"].Value; - } - catch (Exception ex) - { - Logger.Create().Error(ex.ToString()); - } - - try - { - state = Convert.ToInt32(resultNode.Attributes["state"].Value); - } - catch (Exception ex) - { - Logger.Create().Error(ex.ToString()); - try - { - state = falsePositiveValue != null ? Convert.ToInt32(Convert.ToBoolean(falsePositiveValue)) : 0; - } - catch (Exception exc) - { - Logger.Create().Error(exc.ToString()); - } - } - - CxWSPathNode[] nodes = GetNodesForPath(resultNode.FirstChild); - - CxWSResultPath reportQueryItemResult = new CxWSResultPath - { - Comment = resultNode.Attributes["Remark"].Value ?? resultNode.Attributes["remark"].Value, - PathId = pathIdValue != null ? Convert.ToInt32(pathIdValue) : 0, - Severity = severity, - AssignedUser = assignedUser, - State = state, - SimilarityId = Convert.ToInt64(resultNode.FirstChild.Attributes["SimilarityId"].Value), - Nodes = nodes, - }; - - return reportQueryItemResult; - } - - public static string ConvertResultStatusToString(CompareStatusType paramState) - { - string result = string.Empty; - switch (paramState) - { - case CompareStatusType.New: - result = RESULT_STATUS_NEW_TEXT; - break; - case CompareStatusType.Reoccured: - result = RESULT_STATUS_RECURRENT_TEXT; - break; - case CompareStatusType.Fixed: - result = RESULT_STATUS_FIXED_TEXT; - break; - default: - result = string.Empty; - Logger.Create().Error("Unknown result state exists"); - break; - } - return result; - } - - public static CompareStatusType ConvertResultStatusToEnum(string paramState) - { - CompareStatusType result = CompareStatusType.New; //the default is a new result - if (paramState != null) - { - switch (paramState) - { - case RESULT_STATUS_NEW_TEXT: - result = CompareStatusType.New; - break; - case RESULT_STATUS_RECURRENT_TEXT: - result = CompareStatusType.Reoccured; - break; - case RESULT_STATUS_FIXED_TEXT: - result = CompareStatusType.Fixed; - break; - default: - Logger.Create().Error("Unknown result state exists"); - result = CompareStatusType.New; - break; - } - } - return result; - } - } -} +using System; +using System.Collections.Generic; +using System.Text; +using System.Xml; +using CxViewerAction.Entities; +using CxViewerAction.CxVSWebService; +using CxViewerAction.Entities.WebServiceEntity; +using System.IO; +using Common; + +namespace CxViewerAction.Helpers +{ + public class SavedResultsManager + { + static readonly object lockObj = new object(); + private static SavedResultsManager instance = new SavedResultsManager(); + private static long scanId; + private static XmlDocument xml = null; + public const string RESULT_STATUS_NEW_TEXT = "New"; + public const string RESULT_STATUS_RECURRENT_TEXT = "Recurrent"; + public const string RESULT_STATUS_FIXED_TEXT = "Fixed"; + + public const string RESULT_COMMENT_DETAILS_SEPARATOR = "]:"; + + public static SavedResultsManager Instance + { + get + { + lock (lockObj) + { + if (instance == null) + { + instance = new SavedResultsManager(); + } + return instance; + } + } + } + + + internal CxWSQueryVulnerabilityData[] LoadStoredScanData(long id) + { + if (scanId != id) + { + XML = null; + scanId = id; + } + List list = new List(); + if (XML != null) + { + XmlNodeList queryNodes = XML.SelectNodes("/CxXMLResults/Query"); + foreach (XmlNode xmlNode in queryNodes) + { + + CxWSQueryVulnerabilityData query = new CxWSQueryVulnerabilityData(); + string idValue = xmlNode.Attributes["id"].Value ?? xmlNode.Attributes["Id"].Value; + if (idValue != null) + query.QueryId = int.Parse(idValue); + + string cweIdValue = xmlNode.Attributes["cweId"].Value ?? xmlNode.Attributes["CweId"].Value; + if (cweIdValue != null) + query.CWE = int.Parse(cweIdValue); + + query.QueryName = xmlNode.Attributes["name"].Value ?? xmlNode.Attributes["Name"].Value; + query.GroupName = xmlNode.Attributes["group"].Value ?? xmlNode.Attributes["Group"].Value; + XmlAttribute severityAttribute = xmlNode.Attributes["severity"] ?? xmlNode.Attributes["Severity"]; + if (severityAttribute.Value != null) + query.Severity = (int)ReportQueryResult.SeverityTypeFromString(severityAttribute.Value); + + query.AmountOfResults = xmlNode.ChildNodes.Count; + + list.Add(query); + + } + } + + return list.ToArray(); + } + + private XmlDocument XML + { + get + { + if (xml != null) + { + return xml; + } + else + { + string xmlFile = ""; + LoginData login = LoginHelper.LoadSaved(); + LoginData.BindProject bindPro = login.BindedProjects.Find(delegate(LoginData.BindProject bp) + { + return bp.BindedProjectId == CommonData.ProjectId; + }); + + if (bindPro != null) + { + Dictionary list = new Dictionary(); + ScanReportInfo item = bindPro.ScanReports.Find(delegate(ScanReportInfo sri) + { + return sri.Id == scanId; + }); + if (item != null && !String.IsNullOrEmpty(item.Path)) + { + xmlFile = StorageHelper.Read(item.Path); + } + if (!String.IsNullOrEmpty(xmlFile)) + { + xml = new XmlDocument(); + xml.LoadXml(xmlFile); + } + } + + return xml; + } + + } + set + { + xml = value; + } + } + + internal CxWSSingleResultData[] GetScanResultsForQuery(long id, long queryId) + { + if (scanId != id) + { + XML = null; + scanId = id; + } + String query = "/CxXMLResults/Query[@id=" + queryId + "]"; + XmlNodeList list = XML.SelectNodes(query); + + if (list != null && list.Count > 0) + { + return ParseQueryItemPathResult(list[0]).ToArray(); + } + + return null; + } + + internal static List ParseQueryItemPathResult(XmlNode xmlNode) + { + List outputItems = new List(); + + foreach (XmlNode resultNode in xmlNode.ChildNodes) + { + int severity = 0; + string assignedUser = string.Empty; + string status = string.Empty; + string fullSourceFileName = resultNode.FirstChild.FirstChild.ChildNodes[0].InnerText; + string sourceFile = fullSourceFileName; + string sourceFolder = Path.DirectorySeparatorChar.ToString(); + string fullDestinationFileName = resultNode.FirstChild.LastChild.ChildNodes[0].InnerText; + string destinationFile = fullDestinationFileName; + string destinationFolder = Path.DirectorySeparatorChar.ToString(); + int state = 0; + string lineValue = resultNode.Attributes["Line"].Value ?? resultNode.Attributes["line"].Value; + string falsePositiveValue = resultNode.Attributes["FalsePositive"].Value ?? resultNode.Attributes["falsePositive"].Value; + string pathIdValue = resultNode.FirstChild.Attributes["PathId"].Value ?? resultNode.FirstChild.Attributes["pathId"].Value; + try + { + XmlAttribute severityAttribute = xmlNode.Attributes["severity"] ?? xmlNode.Attributes["Severity"]; + if (severityAttribute.Value != null) + { + severity = (int)ReportQueryResult.SeverityTypeFromString(severityAttribute.Value); + } + } + catch (Exception ex) + { + Logger.Create().Error(ex.ToString()); + } + try + { + sourceFolder = Path.GetDirectoryName(fullSourceFileName); + if (string.IsNullOrEmpty(sourceFolder)) + { + sourceFolder = Path.DirectorySeparatorChar.ToString(); + } + } + catch (Exception ex) + { + Logger.Create().Error(ex.ToString()); + } + try + { + sourceFile = Path.GetFileName(fullSourceFileName); + } + catch (Exception ex) + { + Logger.Create().Error(ex.ToString()); + } + + try + { + destinationFolder = Path.GetDirectoryName(fullDestinationFileName); + if (string.IsNullOrEmpty(destinationFolder)) + { + destinationFolder = Path.DirectorySeparatorChar.ToString(); + } + } + catch (Exception ex) + { + Logger.Create().Error(ex.ToString()); + } + try + { + destinationFile = Path.GetFileName(fullDestinationFileName); + } + catch (Exception ex) + { + Logger.Create().Error(ex.ToString()); + } + + try + { + assignedUser = resultNode.Attributes["AssignToUser"].Value; + } + catch (Exception ex) + { + Logger.Create().Error(ex.ToString()); + } + try + { + status = resultNode.Attributes["Status"].Value ?? resultNode.Attributes["status"].Value; + } + catch (Exception ex) + { + Logger.Create().Error(ex.ToString()); + } + + try + { + state = Convert.ToInt32(resultNode.Attributes["state"].Value); + } + catch (Exception ex) + { + Logger.Create().Error(ex.ToString()); + try + { + state = falsePositiveValue != null ? Convert.ToInt32(Convert.ToBoolean(falsePositiveValue)) : 0; + } + catch (Exception exc) + { + Logger.Create().Error(exc.ToString()); + } + } + + + CxWSSingleResultData reportQueryItemResult = new CxWSSingleResultData + { + SourceFile = sourceFile, + SourceFolder = sourceFolder, + SourceLine = lineValue != null ? Convert.ToInt32(lineValue) : 0, + SourceObject = resultNode.FirstChild.FirstChild.ChildNodes[4].InnerText, + Comment = resultNode.Attributes["Remark"].Value ?? resultNode.Attributes["remark"].Value, + PathId = pathIdValue != null ? Convert.ToInt32(pathIdValue) : 0, + Severity = severity, + AssignedUser = assignedUser, + ResultStatus = ConvertResultStatusToEnum(status), + State = state, + DestFile = destinationFile, + DestFolder = destinationFolder, + DestLine = Convert.ToInt64(resultNode.FirstChild.LastChild.ChildNodes[1].InnerText), + DestObject = resultNode.FirstChild.LastChild.ChildNodes[4].InnerText, + }; + + outputItems.Add(reportQueryItemResult); + + } + + + return outputItems; + } + + + internal CxWSResultPath[] GetResultPathsForQuery(long id, long queryId) + { + if (scanId != id) + { + XML = null; + scanId = id; + } + String query = "/CxXMLResults/Query[@id=" + queryId + "]"; + XmlNodeList list = XML.SelectNodes(query); + + if (list != null && list.Count > 0) + { + return GetResultPathsForQuery(list[0]); + } + + return null; + } + + private CxWSResultPath[] GetResultPathsForQuery(XmlNode xmlNode) + { + List outputItems = new List(); + + foreach (XmlNode resultNode in xmlNode.ChildNodes) + { + CxWSResultPath reportQueryItemResult = GetResultPath(resultNode); + + outputItems.Add(reportQueryItemResult); + + } + + + return outputItems.ToArray(); + } + + private CxWSPathNode[] GetNodesForPath(XmlNode Path) + { + List outputItems = new List(); + + if (Path.FirstChild == null) + return outputItems.ToArray(); + + foreach (XmlNode pathNode in Path.ChildNodes) + { + CxWSPathNode node = new CxWSPathNode(); + foreach (XmlNode pathSubNode in pathNode.ChildNodes) + { + switch (pathSubNode.Name.ToLower()) + { + case "filename": node.FileName = pathSubNode.InnerText; break; + case "line": node.Line = int.Parse(pathSubNode.InnerText); break; + case "column": node.Column = int.Parse(pathSubNode.InnerText); break; + case "name": node.Name = pathSubNode.InnerText; break; + case "length": node.Length = int.Parse(pathSubNode.InnerText); break; + case "nodeid": node.PathNodeId = int.Parse(pathSubNode.InnerText); break; + } + } + outputItems.Add(node); + } + + return outputItems.ToArray(); + } + + internal CxWSResultPath GetResultPath(long id, long pathId) + { + if (scanId != id) + { + XML = null; + scanId = id; + } + String query = "/CxXMLResults/Query/Result/Path[@PathId=" + pathId + "]"; + XmlNodeList list = XML.SelectNodes(query); + if (list != null && list.Count > 0) + { + return GetResultPath(list[0].ParentNode); + } + + return null; + } + + private CxWSResultPath GetResultPath(XmlNode resultNode) + { + int severity = 0; + string assignedUser = ""; + int state = 0; + string lineValue = resultNode.Attributes["Line"].Value ?? resultNode.Attributes["line"].Value; + string falsePositiveValue = resultNode.Attributes["FalsePositive"].Value ?? resultNode.Attributes["falsePositive"].Value; + string pathIdValue = resultNode.FirstChild.Attributes["PathId"].Value ?? resultNode.FirstChild.Attributes["pathId"].Value; + string resultIdValue = resultNode.FirstChild.Attributes["ResultId"].Value ?? resultNode.FirstChild.Attributes["resultId"].Value; + try + { + XmlAttribute severityAttribute = resultNode.Attributes["severity"] ?? resultNode.Attributes["Severity"]; + if (severityAttribute.Value != null) + { + severity = (int)ReportQueryResult.SeverityTypeFromString(severityAttribute.Value); + } + } + catch (Exception ex) + { + Logger.Create().Error(ex.ToString()); + } + try + { + assignedUser = resultNode.Attributes["AssignToUser"].Value; + } + catch (Exception ex) + { + Logger.Create().Error(ex.ToString()); + } + + try + { + state = Convert.ToInt32(resultNode.Attributes["state"].Value); + } + catch (Exception ex) + { + Logger.Create().Error(ex.ToString()); + try + { + state = falsePositiveValue != null ? Convert.ToInt32(Convert.ToBoolean(falsePositiveValue)) : 0; + } + catch (Exception exc) + { + Logger.Create().Error(exc.ToString()); + } + } + + CxWSPathNode[] nodes = GetNodesForPath(resultNode.FirstChild); + + CxWSResultPath reportQueryItemResult = new CxWSResultPath + { + Comment = resultNode.Attributes["Remark"].Value ?? resultNode.Attributes["remark"].Value, + PathId = pathIdValue != null ? Convert.ToInt32(pathIdValue) : 0, + Severity = severity, + AssignedUser = assignedUser, + State = state, + SimilarityId = Convert.ToInt64(resultNode.FirstChild.Attributes["SimilarityId"].Value), + Nodes = nodes, + }; + + return reportQueryItemResult; + } + + public static string ConvertResultStatusToString(CompareStatusType paramState) + { + string result = string.Empty; + switch (paramState) + { + case CompareStatusType.New: + result = RESULT_STATUS_NEW_TEXT; + break; + case CompareStatusType.Reoccured: + result = RESULT_STATUS_RECURRENT_TEXT; + break; + case CompareStatusType.Fixed: + result = RESULT_STATUS_FIXED_TEXT; + break; + default: + result = string.Empty; + Logger.Create().Error("Unknown result state exists"); + break; + } + return result; + } + + public static CompareStatusType ConvertResultStatusToEnum(string paramState) + { + CompareStatusType result = CompareStatusType.New; //the default is a new result + if (paramState != null) + { + switch (paramState) + { + case RESULT_STATUS_NEW_TEXT: + result = CompareStatusType.New; + break; + case RESULT_STATUS_RECURRENT_TEXT: + result = CompareStatusType.Reoccured; + break; + case RESULT_STATUS_FIXED_TEXT: + result = CompareStatusType.Fixed; + break; + default: + Logger.Create().Error("Unknown result state exists"); + result = CompareStatusType.New; + break; + } + } + return result; + } + } +} diff --git a/CxViewerAction/Helpers/ScanHelper.cs b/CxActionShared/Helpers/ScanHelper.cs similarity index 87% rename from CxViewerAction/Helpers/ScanHelper.cs rename to CxActionShared/Helpers/ScanHelper.cs index f67b7550..805de12e 100644 --- a/CxViewerAction/Helpers/ScanHelper.cs +++ b/CxActionShared/Helpers/ScanHelper.cs @@ -1,717 +1,773 @@ -using System; -using System.Collections.Generic; -using CxViewerAction.Dispatchers; -using CxViewerAction.Entities.WebServiceEntity; -using CxViewerAction.Commands; -using CxViewerAction.Entities; -using CxViewerAction.Services; -using CxViewerAction.Presenters; -using CxViewerAction.Views; -using System.Windows.Forms; -using CxViewerAction.Entities.Enum; -using CxViewerAction.Entities.FormEntity; -using System.Threading; -using CxViewerAction.CxVSWebService; -using Common; - -namespace CxViewerAction.Helpers -{ - /// - /// Helper class for scan execution - /// - internal class ScanHelper : IScanHelper - { - - static IDispatcher _dispatcher; - static Scan _scan; - static bool _cancelPressed; - static Upload _uploadSettings; - readonly IConfigurationHelper _configurationHelper; - - - public ScanHelper(IConfigurationHelper configurationHelper) - { - _configurationHelper = configurationHelper; - } - - /// - /// Execute scan - /// - /// Upload project folder - /// - /// - /// - /// - public ProjectScanStatuses DoScan(Project project, bool isIncremental, ref CxWSQueryVulnerabilityData[] scanData, ref long scanId) - { - if (_scan != null && _scan.InProcess) - { - return ProjectScanStatuses.CanceledByUser; - } - LoginResult loginResult = new LoginResult(); - try - { - //Release old view data - - CommonActionsInstance.getInstance().ClearScanProgressView(); - - LoginData logindata = LoginHelper.LoadSaved(); - OidcLoginData oidcLoginData = OidcLoginData.GetOidcLoginDataInstance(); - //Execute login - if (oidcLoginData.AccessToken == null) - { - loginResult = Login(); - if (loginResult == null || loginResult.AuthenticationData == null) - { - LoginHelper.ShowLoginErrorMessage(loginResult); - return ProjectScanStatuses.Error; - } - } - else - { - loginResult.AuthenticationData = logindata; - loginResult.IsSuccesfull = true; - } - - if (_cancelPressed) - { - return ProjectScanStatuses.CanceledByUser; - } - - if (loginResult.IsSuccesfull) - { - _scan = new Scan(loginResult, onScanInBackground, onCancel, onDetails) - { - InProcess = true, - DockView = CommonActionsInstance.getInstance().ScanProgressView, - ScanProject = project, - IsIncremental = isIncremental - }; - - //Execute setting upload project properties - _uploadSettings = GetUploadSettings(project, loginResult); - - if (_uploadSettings == null || _cancelPressed) - return ProjectScanStatuses.CanceledByUser; - - if (_uploadSettings.IsUploading) - { - _scan.UploadSettings = _uploadSettings; - - return ExecuteScan(project, ref scanData, ref scanId); - } - } - else if (!_cancelPressed) - { - TopMostMessageBox.Show("Unable to connect to server or user creadentials are invalid. Please verify data", "Log in problem"); - return ProjectScanStatuses.Error; - } - } - finally - { - if (_scan != null) - _scan.InProcess = false; - } - - return ProjectScanStatuses.CanceledByUser; - } - - private Upload GetUploadSettings(Project project, LoginResult loginResult) - { - Upload uploadSettings; - - if (!CommonData.IsProjectBound) - { - uploadSettings = UploadHelper.SetUploadSettings(loginResult, project, _cancelPressed); - - if (uploadSettings == null) - { - LoginHelper.DoLogout(); - _scan.InProcess = false; - } - } - else - { - uploadSettings = new Upload - { - ProjectName = CommonData.ProjectName, - IsUploading = true, - IsPublic = CommonData.IsProjectPublic - }; - } - return uploadSettings; - } - - private LoginResult Login() - { - LoginResult loginResult = LoginHelper.DoLoginWithoutForm(out _cancelPressed, true); - - if (!loginResult.IsSuccesfull) - { - loginResult = LoginHelper.DoLogin(out _cancelPressed); - } - - return loginResult; - } - - private bool SetScanPrivacy() - { - bool isPublic = false; - DialogResult result = TopMostMessageBox.Show("Make scan results visible to other users", "Results visibility", MessageBoxButtons.YesNo); - - if (result == DialogResult.Yes) - { - isPublic = true; - } - - return isPublic; - } - - /// - /// Execute scan - /// - /// Upload project folder - /// - /// - /// - private ProjectScanStatuses ExecuteScan(Project project, ref CxWSQueryVulnerabilityData[] scanData, ref long scanId) - { - Logger.Create().Debug("DoScan in"); - bool bCancel = false; - bool backgroundMode = _scan.LoginResult.AuthenticationData.IsRunScanInBackground == SimpleDecision.Yes; - - if (_dispatcher == null) - _dispatcher = ServiceLocators.ServiceLocator.GetDispatcher(); - - if (_dispatcher != null) - { - IScanView view = null; - var waitEnd = new ManualResetEvent(false); - - //if was selected "always run in background" checkbox - hide dialog - if (!backgroundMode) - { - ICommandResult commandResult = _dispatcher.Dispatch(_scan); - view = ((ScanPresenter)commandResult).View; - } - - _scan.ScanView = view; - - BackgroundWorkerHelper bg = new BackgroundWorkerHelper(_scan.LoginResult.AuthenticationData.ReconnectInterval * 1000, _scan.LoginResult.AuthenticationData.ReconnectCount); - - CxWebServiceClient client = new CxWebServiceClient(_scan.LoginResult.AuthenticationData); - client.ServiceClient.Timeout = 1800000; - - bool isIISStoped = false; - bool isScanningEror = false; - - //User click cancel while info dialog was showed - if (!bCancel) - { - ShowScanProgressBar(); - - ConfigurationResult configuration = _configurationHelper.GetConfigurationList(_scan.LoginResult.SessionId, bg, client); - - if (configuration == null) - _cancelPressed = true; - - if (!configuration.IsSuccesfull) - { - LoginHelper.DoLogout(); - if (client != null) - client.Close(); - if (view != null) - view.CloseView(); - - _scan.InProcess = false; - return ProjectScanStatuses.CanceledByUser; - } - - //User click cancel while info dialog was showed - if (!bCancel) - { - byte[] zippedProject = ZipProject(_scan, project, bg); - - if (!_scan.IsCancelPressed && zippedProject != null) - { - if (configuration.Configurations.Count > 0) - { - RunScanResult runScanResult = null; - - if (!CommonData.IsProjectBound) - { - if (_uploadSettings.IsPublic) - { - _scan.IsPublic = SetScanPrivacy(); - } - - runScanResult = RunScan(bg, client, configuration, zippedProject); - - } - else - { - if (_scan.UploadSettings.IsPublic) - { - _scan.IsPublic = SetScanPrivacy(); - } - - runScanResult = RunBoundedProjectScan(_scan, bg, client, zippedProject); - } - - if (runScanResult == null || !runScanResult.IsSuccesfull) - { - bCancel = true; - isIISStoped = true; - isScanningEror = true; - } - - // Continue if project uploaded succesfull and cancel button while process wasn't pressed - if (runScanResult != null && runScanResult.IsSuccesfull) - { - _scan.RunScanResult = runScanResult; - - //perform scan work in separated thread to improve UI responsibility - System.Threading.ThreadPool.QueueUserWorkItem(delegate(object stateInfo) - { - try - { - // Wait while scan operation complete - while (true) - { - StatusScanResult statusScan = UpdateScanStatus(ref bCancel, backgroundMode, view, bg, client, ref isIISStoped); - - // if scan complete with sucess or failure or cancel button was pressed - // operation complete - bCancel = bCancel ? bCancel : _scan.WaitForCancel(); - - if (isIISStoped || bCancel || - (statusScan != null && statusScan.RunStatus == CurrentStatusEnum.Finished) || - (statusScan != null && statusScan.RunStatus == CurrentStatusEnum.Failed)) - { - break; - } - } - - waitEnd.Set(); - } - catch (Exception err) - { - Logger.Create().Error(err.ToString()); - // show error - waitEnd.Set(); - isIISStoped = true; - Logger.Create().Debug(err); - - } - - if (_scan.ScanView == null || _scan.ScanView.Visibility == false) - { - var scanStatusBar = new ScanStatusBar(false, "", 0, 0, true); - - CommonActionsInstance.getInstance().UpdateScanProgress(scanStatusBar); - - //ObserversManager.Instance.Publish(typeof (ScanStatusBar), scanStatusBar); - } - }); - - while (!waitEnd.WaitOne(0, false)) - { - Application.DoEvents(); - Thread.Sleep(10); - } - } - } - - #region [Scan completed. Open perspective] - - if (!bCancel && !isIISStoped) - { - ShowScanData(ref scanData, ref scanId, client); - } - else - { - #region [Stop scan in cancel pressed] - if (_scan.RunScanResult != null && !isIISStoped) - { - bg.DoWorkFunc = delegate - { - if (!isIISStoped) - { - client.ServiceClient.CancelScan(_scan.LoginResult.SessionId, _scan.RunScanResult.ScanId); - } - }; - bg.DoWork("Stop scan..."); - } - #endregion - } - - #endregion - - client.Close(); - } - else - { - client.Close(); - bCancel = true; - } - } - else - { - } - - } - else - { - } - if (!backgroundMode && view != null) - view.CloseView(); - - if (isIISStoped) - { - - if (isScanningEror) - return ProjectScanStatuses.Error; - else - return ProjectScanStatuses.CanceledByUser; - } - - if (!bCancel) - return ProjectScanStatuses.Success; - else - { - if (isScanningEror) - return ProjectScanStatuses.Error; - else - return ProjectScanStatuses.CanceledByUser; - } - } - - return ProjectScanStatuses.CanceledByUser; - } - - private void ShowScanData(ref CxWSQueryVulnerabilityData[] scanData, ref long scanId, CxWebServiceClient client) - { - // Get url to scanned project result - string savedFileName = string.Format("report{0}", Guid.NewGuid()); - long id = 0; - CxWSResponseScanStatus scanStatus = client.ServiceClient.GetStatusOfSingleScan(_scan.LoginResult.SessionId, _scan.RunScanResult.ScanId); - string ScanTaskId = scanStatus.ScanId.ToString();//after scan is finished the server replaces the scan id with task scan id - scanData = PerspectiveHelper.GetScanResultsPaths(ScanTaskId, ref scanId); - id = scanId; - LoginData.BindProject bindProject = _scan.LoginResult.AuthenticationData.BindedProjects.Find(project => project.BindedProjectId == CommonData.ProjectId && - project.ProjectName == CommonData.ProjectName && - project.RootPath == CommonData.ProjectRootPath); - - if (bindProject == null) // scaned for the first time - { - bindProject = new LoginData.BindProject(); - bindProject.ProjectName = CommonData.ProjectName; - bindProject.RootPath = CommonData.ProjectRootPath; - bindProject.IsBound = true; - _scan.LoginResult.AuthenticationData.BindedProjects.Add(bindProject); - } - if (!CommonData.IsProjectBound) // its new project - { - - bindProject.BindedProjectId = scanStatus.ProjectId; - CommonData.ProjectId = scanStatus.ProjectId; - CommonData.IsProjectPublic = scanStatus.IsPublic; - bindProject.IsPublic = scanStatus.IsPublic; - bindProject.IsBound = true; - } - bindProject.SelectedScanId = id; - bindProject.ScanReports = new List(); - LoginHelper.Save(_scan.LoginResult.AuthenticationData); - - - BackgroundWorkerHelper bgWork = new BackgroundWorkerHelper(delegate - { - - CommonData.SelectedScanId = id; - String path = PerspectiveHelper.GetScanXML(id); - ScanReportInfo scanReportInfo = new ScanReportInfo(); - scanReportInfo.Path = path; - scanReportInfo.Id = id; - LoginData.BindProject projectToUpdate = _scan.LoginResult.AuthenticationData.BindedProjects.Find(delegate(LoginData.BindProject bp) - { - return bp.BindedProjectId == CommonData.ProjectId; - } - ); - - projectToUpdate.ScanReports = new List(); - projectToUpdate.ScanReports.Add(scanReportInfo); - - LoginHelper.Save(_scan.LoginResult.AuthenticationData); - }); - - bgWork.DoWork(); - } - - private StatusScanResult UpdateScanStatus(ref bool bCancel, bool backgroundMode, IScanView view, BackgroundWorkerHelper bg, CxWebServiceClient client, ref bool isIISStoped) - { - // Get current scan status - CxWSResponseScanStatus cxWSResponseScanStatus = null; - StatusScanResult statusScan = null; - - bg.DoWorkFunc = delegate(object obj) - { - cxWSResponseScanStatus = client.ServiceClient.GetStatusOfSingleScan(_scan.LoginResult.SessionId, _scan.RunScanResult.ScanId); - statusScan = new StatusScanResult(); - statusScan.CurrentStage = cxWSResponseScanStatus.CurrentStage; - statusScan.CurrentStagePercent = cxWSResponseScanStatus.CurrentStagePercent; - statusScan.Details = cxWSResponseScanStatus.StepDetails; - statusScan.IsSuccesfull = cxWSResponseScanStatus.IsSuccesfull; - statusScan.QueuePosition = cxWSResponseScanStatus.QueuePosition; - statusScan.RunId = cxWSResponseScanStatus.RunId; - statusScan.RunStatus = cxWSResponseScanStatus.CurrentStatus; - statusScan.StageMessage = cxWSResponseScanStatus.StageMessage; - statusScan.StageName = cxWSResponseScanStatus.StageName; - statusScan.StepMessage = cxWSResponseScanStatus.StepMessage; - statusScan.TimeFinished = cxWSResponseScanStatus.TimeFinished != null ? cxWSResponseScanStatus.TimeFinished.ToString() : null; - statusScan.TimeStarted = cxWSResponseScanStatus.TimeScheduled != null ? cxWSResponseScanStatus.TimeScheduled.ToString() : null; - statusScan.TotalPercent = cxWSResponseScanStatus.TotalPercent; - }; - bCancel = !bg.DoWork(null); - - if (!BackgroundWorkerHelper.IsReloginInvoked) - { - isIISStoped = !_scan.LoginResult.AuthenticationData.SaveSastScan; - } - else - { - BackgroundWorkerHelper.IsReloginInvoked = false; - } - - if (!bCancel && cxWSResponseScanStatus != null && !isIISStoped) - { - ScanProgress progress = new ScanProgress( - _scan.UploadSettings.ProjectName, - statusScan.RunStatus.ToString(), - statusScan.StageName, - statusScan.StepMessage, - statusScan.CurrentStagePercent, - 0, - 100, - statusScan.TotalPercent); - - if (!backgroundMode) - view.Progress = progress; - try { - CommonActionsInstance.getInstance().ScanProgressView.Progress = progress; - } - catch (Exception ex) { - - Logger.Create().Error(ex.ToString()); - } - - if (statusScan.RunStatus == CurrentStatusEnum.Failed) - { - TopMostMessageBox.Show(statusScan.StageMessage, "Scan Error"); - bCancel = true; - } - - if (_scan.ScanView == null || _scan.ScanView.Visibility == false) - { - var scanStatusBar = new ScanStatusBar(true, string.Format("Scaning project {0}: {1} {2}", - _scan.UploadSettings.ProjectName, - statusScan.StepMessage, statusScan.RunStatus), statusScan.TotalPercent, 100); - - CommonActionsInstance.getInstance().UpdateScanProgress(scanStatusBar); - } - } - return statusScan; - } - - private RunScanResult RunBoundedProjectScan(Scan scan, BackgroundWorkerHelper bg, CxWebServiceClient client, byte[] zippedProject) - { - RunScanResult runScanResult = null; - bg.DoWorkFunc = delegate(object obj) - { - ProjectSettings projectSettings = new ProjectSettings(); - projectSettings.projectID = CommonData.ProjectId; - LocalCodeContainer localCodeContainer = new LocalCodeContainer(); - localCodeContainer.FileName = "zipCxViewer"; - localCodeContainer.ZippedFile = zippedProject; - try - { - CxWSResponseRunID cxWSResponseRunID; - - if (_scan.IsIncremental) - { - cxWSResponseRunID = client.ServiceClient.RunIncrementalScan( - scan.LoginResult.SessionId, - projectSettings, - localCodeContainer - , CommonData.IsProjectPublic, - scan.IsPublic - ); - } - else - { - cxWSResponseRunID = client.ServiceClient.RunScanAndAddToProject( - scan.LoginResult.SessionId, - projectSettings, - localCodeContainer - , CommonData.IsProjectPublic, - scan.IsPublic - ); - } - - runScanResult = new RunScanResult(); // RunScanResult.FromXml(scanZipedSource); - runScanResult.IsSuccesfull = cxWSResponseRunID.IsSuccesfull; - runScanResult.ScanId = cxWSResponseRunID.RunId;//Server actually returns the scanId which is a long number (and not the runID) - scan.LoginResult.AuthenticationData.UnboundRunID = cxWSResponseRunID.RunId; - CommonData.ProjectId = cxWSResponseRunID.ProjectID; - _scan.RunScanResult = runScanResult; - if (!cxWSResponseRunID.IsSuccesfull) - { - TopMostMessageBox.Show(string.Format("Scan Error: {0}", cxWSResponseRunID.ErrorMessage), "Scanning Error", MessageBoxButtons.OK); - } - else - { - LoginHelper.Save(scan.LoginResult.AuthenticationData); - } - } - catch (Exception err) - { - Logger.Create().Error(err.ToString()); - TopMostMessageBox.Show(string.Format("Scan Error: {0}", err.Message), "Scanning Error", MessageBoxButtons.OK); - } - - }; - if (!bg.DoWork("Upload project zipped source for scanning...")) - return null; - - return runScanResult; - } - - private void ShowScanProgressBar() - { - if (_scan != null && _scan.UploadSettings != null && (_scan.ScanView == null || _scan.ScanView.Visibility == false)) - { - var scanStatusBar = new ScanStatusBar(true, - string.Format("Scaning project {0}: {1}", - _scan.UploadSettings.ProjectName, - "..."), 0, 100); - - CommonActionsInstance.getInstance().UpdateScanProgress(scanStatusBar); - } - } - - private byte[] ZipProject(Scan scan, Project project, BackgroundWorkerHelper bg) - { - byte[] zippedProject = null; - bg.DoWorkFunc = delegate(object obj) - { - string error = string.Empty; - zippedProject = ZipHelper.Compress(project, scan.LoginResult.AuthenticationData.ExcludeFileExt, scan.LoginResult.AuthenticationData.ExcludeFolder, scan.LoginResult.AuthenticationData.MaxZipFileSize * 1048576, out error); - if (zippedProject == null) - { - TopMostMessageBox.Show(string.Format("Zip Error: {0}", error), "Zip Error", MessageBoxButtons.OK); - } - - }; //Convert mb to byte - bg.DoWork("Zip project before sending..."); - - return zippedProject; - } - - private RunScanResult RunScan(BackgroundWorkerHelper bg, CxWebServiceClient client, ConfigurationResult configuration, byte[] zippedProject) - { - RunScanResult runScanResult = null; - - bg.DoWorkFunc = delegate(object obj) - { - ProjectSettings projectSettings = new ProjectSettings(); - projectSettings.AssociatedGroupID = _scan.UploadSettings.Team.ToString(); - projectSettings.PresetID = _scan.UploadSettings.Preset; - projectSettings.ProjectName = _scan.UploadSettings.ProjectName; - projectSettings.ScanConfigurationID = configuration.FirstConfigurationKey; - LocalCodeContainer localCodeContainer = new LocalCodeContainer(); - localCodeContainer.FileName = "zipCxViewer"; - localCodeContainer.ZippedFile = zippedProject; - try - { - CxWSResponseRunID cxWSResponseRunID; - if (_scan.IsIncremental) - { - cxWSResponseRunID = client.ServiceClient.RunIncrementalScan( - _scan.LoginResult.SessionId, - projectSettings, - localCodeContainer - , _scan.UploadSettings.IsPublic, _scan.IsPublic - ); - } - else - { - cxWSResponseRunID = client.ServiceClient.CreateAndRunProject( - _scan.LoginResult.SessionId, - projectSettings, - localCodeContainer - , _scan.UploadSettings.IsPublic, _scan.IsPublic - ); - } - - - runScanResult = new RunScanResult(); - runScanResult.IsSuccesfull = cxWSResponseRunID.IsSuccesfull; - runScanResult.ScanId = cxWSResponseRunID.RunId;//Server actually returns the scanId which is a long number (and not the runID) - _scan.LoginResult.AuthenticationData.UnboundRunID = cxWSResponseRunID.RunId; - runScanResult.ProjectId = cxWSResponseRunID.ProjectID; - _scan.RunScanResult = runScanResult; - if (!cxWSResponseRunID.IsSuccesfull) - { - TopMostMessageBox.Show(string.Format("Scan Error: {0}", cxWSResponseRunID.ErrorMessage), "Scanning Error", MessageBoxButtons.OK); - } - else - { - LoginHelper.Save(_scan.LoginResult.AuthenticationData); - } - } - catch (Exception err) - { - Logger.Create().Error(err.ToString()); - - TopMostMessageBox.Show(string.Format("Scan Error: {0}", err.Message), "Scanning Error", MessageBoxButtons.OK); - } - - }; - - if (!bg.DoWork("Upload project zipped source for scanning...")) - return null; - - return runScanResult; - } - - /// - /// Handler for ScanInBackground button - /// - /// - /// - internal void onScanInBackground(object sender, EventArgs e) - { - if (_scan != null && _scan.ScanView != null) - _scan.ScanView.Visibility = false; - } - - /// - /// Handler for Cancel button - /// - /// - /// - internal void onCancel(object sender, EventArgs e) - { - _scan.CancelEvent.Set(); - } - - /// - /// Handler for Details button - /// - /// - /// - internal void onDetails(object sender, EventArgs e) - { - } - - } -} +using System; +using System.Collections.Generic; +using CxViewerAction.Dispatchers; +using CxViewerAction.Entities.WebServiceEntity; +using CxViewerAction.Commands; +using CxViewerAction.Entities; +using CxViewerAction.Services; +using CxViewerAction.Presenters; +using CxViewerAction.Views; +using System.Windows.Forms; +using CxViewerAction.Entities.Enum; +using CxViewerAction.Entities.FormEntity; +using System.Threading; +using CxViewerAction.CxVSWebService; +using Common; +using System.Net; +using System.IO; +using System.Text; +using CxViewerAction.ValueObjects; +using System.Web.Script.Serialization; + +namespace CxViewerAction.Helpers +{ + /// + /// Helper class for scan execution + /// + internal class ScanHelper : IScanHelper + { + + static IDispatcher _dispatcher; + static Scan _scan; + static bool _cancelPressed; + static Upload _uploadSettings; + readonly IConfigurationHelper _configurationHelper; + private string _apiProjectDetails = "projects/{0}"; + + public ScanHelper(IConfigurationHelper configurationHelper) + { + _configurationHelper = configurationHelper; + } + + /// + /// Execute scan + /// + /// Upload project folder + /// + /// + /// + /// + public ProjectScanStatuses DoScan(Project project, bool isIncremental, ref CxWSQueryVulnerabilityData[] scanData, ref long scanId) + { + Logger.Create().Info("DoScan():"); + if (_scan != null && _scan.InProcess) + { + return ProjectScanStatuses.CanceledByUser; + } + LoginResult loginResult = new LoginResult(); + try + { + //Release old view data + + CommonActionsInstance.getInstance().ClearScanProgressView(); + Logger.Create().Info("Released old view data."); + LoginData logindata = LoginHelper.LoadSaved(); + OidcLoginData oidcLoginData = OidcLoginData.GetOidcLoginDataInstance(); + //Execute login + if (oidcLoginData.AccessToken == null) + { + loginResult = Login(); + if (loginResult == null || loginResult.AuthenticationData == null) + { + LoginHelper.ShowLoginErrorMessage(loginResult); + return ProjectScanStatuses.Error; + } + } + else + { + loginResult.AuthenticationData = logindata; + loginResult.IsSuccesfull = true; + } + + if (_cancelPressed) + { + return ProjectScanStatuses.CanceledByUser; + } + + if (loginResult.IsSuccesfull) + { + _scan = new Scan(loginResult, onScanInBackground, onCancel, onDetails) + { + InProcess = true, + DockView = CommonActionsInstance.getInstance().ScanProgressView, + ScanProject = project, + IsIncremental = isIncremental + }; + + //Execute setting upload project properties + _uploadSettings = GetUploadSettings(project, loginResult); + + if (_uploadSettings == null || _cancelPressed) + return ProjectScanStatuses.CanceledByUser; + + if (_uploadSettings.IsUploading) + { + _scan.UploadSettings = _uploadSettings; + + return ExecuteScan(project, ref scanData, ref scanId); + + } + } + else if (!_cancelPressed) + { + TopMostMessageBox.Show("Unable to connect to server or user creadentials are invalid. Please verify data", "Log in problem"); + return ProjectScanStatuses.Error; + } + } + finally + { + if (_scan != null) + _scan.InProcess = false; + } + + return ProjectScanStatuses.CanceledByUser; + } + + private Upload GetUploadSettings(Project project, LoginResult loginResult) + { + Upload uploadSettings; + Logger.Create().Info("Getting upload settings."); + if (!CommonData.IsProjectBound) + { + uploadSettings = UploadHelper.SetUploadSettings(loginResult, project, _cancelPressed); + + if (uploadSettings == null) + { + LoginHelper.DoLogout(); + _scan.InProcess = false; + } + } + else + { + uploadSettings = new Upload + { + ProjectName = CommonData.ProjectName, + IsUploading = true, + IsPublic = CommonData.IsProjectPublic + }; + } + return uploadSettings; + } + + private LoginResult Login() + { + Logger.Create().Info("Login for scan operation."); + LoginResult loginResult = LoginHelper.DoLoginWithoutForm(out _cancelPressed, true); + + if (!loginResult.IsSuccesfull) + { + loginResult = LoginHelper.DoLogin(out _cancelPressed); + } + + return loginResult; + } + + private bool SetScanPrivacy() + { + bool isPublic = false; + DialogResult result = TopMostMessageBox.Show("Make scan results visible to other users", "Results visibility", MessageBoxButtons.YesNo); + + if (result == DialogResult.Yes) + { + isPublic = true; + } + + return isPublic; + } + + /// + /// Execute scan + /// + /// Upload project folder + /// + /// + /// + private ProjectScanStatuses ExecuteScan(Project project, ref CxWSQueryVulnerabilityData[] scanData, ref long scanId) + { + Logger.Create().Info("DoScan in"); + bool bCancel = false; + bool backgroundMode = _scan.LoginResult.AuthenticationData.IsRunScanInBackground == SimpleDecision.Yes; + + if (_dispatcher == null) + _dispatcher = ServiceLocators.ServiceLocator.GetDispatcher(); + + if (_dispatcher != null) + { + IScanView view = null; + var waitEnd = new ManualResetEvent(false); + + //if was selected "always run in background" checkbox - hide dialog + if (!backgroundMode) + { + ICommandResult commandResult = _dispatcher.Dispatch(_scan); + view = ((ScanPresenter)commandResult).View; + } + + _scan.ScanView = view; + + BackgroundWorkerHelper bg = new BackgroundWorkerHelper(_scan.LoginResult.AuthenticationData.ReconnectInterval * 1000, _scan.LoginResult.AuthenticationData.ReconnectCount); + + CxWebServiceClient client = new CxWebServiceClient(_scan.LoginResult.AuthenticationData); + client.ServiceClient.Timeout = 1800000; + + bool isIISStoped = false; + bool isScanningEror = false; + + //User click cancel while info dialog was showed + if (!bCancel) + { + ShowScanProgressBar(); + + ConfigurationResult configuration = _configurationHelper.GetConfigurationList(_scan.LoginResult.SessionId, bg, client); + + if (configuration == null) + _cancelPressed = true; + + if (!configuration.IsSuccesfull) + { + LoginHelper.DoLogout(); + if (client != null) + client.Close(); + if (view != null) + view.CloseView(); + + _scan.InProcess = false; + return ProjectScanStatuses.CanceledByUser; + } + + //User click cancel while info dialog was showed + if (!bCancel) + { + Logger.Create().Info("Zipping the proeject."); + byte[] zippedProject = ZipProject(_scan, project, bg); + Logger.Create().Info("Zipping is complete."); + + if (!_scan.IsCancelPressed && zippedProject != null) + { + if (configuration.Configurations.Count > 0) + { + RunScanResult runScanResult = null; + + if (!CommonData.IsProjectBound) + { + if (_uploadSettings.IsPublic) + { + _scan.IsPublic = SetScanPrivacy(); + } + + runScanResult = RunScan(bg, client, configuration, zippedProject); + + } + else + { + if (_scan.UploadSettings.IsPublic) + { + _scan.IsPublic = SetScanPrivacy(); + } + + runScanResult = RunBoundedProjectScan(_scan, bg, client, zippedProject); + } + + if (runScanResult == null || !runScanResult.IsSuccesfull) + { + bCancel = true; + isIISStoped = true; + isScanningEror = true; + } + + // Continue if project uploaded succesfull and cancel button while process wasn't pressed + if (runScanResult != null && runScanResult.IsSuccesfull) + { + _scan.RunScanResult = runScanResult; + + //perform scan work in separated thread to improve UI responsibility + System.Threading.ThreadPool.QueueUserWorkItem(delegate (object stateInfo) + { + try + { + // Wait while scan operation complete + Logger.Create().Info("Wait till scan operation complete."); + while (true) + { + StatusScanResult statusScan = UpdateScanStatus(ref bCancel, backgroundMode, view, bg, client, ref isIISStoped); + + // if scan complete with sucess or failure or cancel button was pressed + // operation complete + Logger.Create().Info("If scan complete with sucess or failure or cancel button was pressed operation complete."); + bCancel = bCancel ? bCancel : _scan.WaitForCancel(); + + if (isIISStoped || bCancel || + (statusScan != null && statusScan.RunStatus == CurrentStatusEnum.Finished) || + (statusScan != null && statusScan.RunStatus == CurrentStatusEnum.Failed)) + { + break; + } + } + + waitEnd.Set(); + } + catch (Exception err) + { + Logger.Create().Error(err.ToString()); + // show error + waitEnd.Set(); + isIISStoped = true; + Logger.Create().Debug("Error: " + err); + + } + + if (_scan.ScanView == null || _scan.ScanView.Visibility == false) + { + var scanStatusBar = new ScanStatusBar(false, "", 0, 0, true); + + CommonActionsInstance.getInstance().UpdateScanProgress(scanStatusBar); + + //ObserversManager.Instance.Publish(typeof (ScanStatusBar), scanStatusBar); + } + }); + + while (!waitEnd.WaitOne(0, false)) + { + Application.DoEvents(); + Thread.Sleep(10); + } + } + } + + #region [Scan completed. Open perspective] + + if (!bCancel && !isIISStoped) + { + ShowScanData(ref scanData, ref scanId, client); + } + else + { + #region [Stop scan in cancel pressed] + if (_scan.RunScanResult != null && !isIISStoped) + { + bg.DoWorkFunc = delegate + { + if (!isIISStoped) + { + client.ServiceClient.CancelScan(_scan.LoginResult.SessionId, _scan.RunScanResult.ScanId); + } + }; + bg.DoWork("Stop scan..."); + } + #endregion + } + + #endregion + + client.Close(); + } + else + { + client.Close(); + bCancel = true; + } + } + else + { + } + + } + else + { + } + if (!backgroundMode && view != null) + { + view.CloseView(); + } + if (scanData != null && scanData.Length == 0) + { + TopMostMessageBox.Show("There are no vulnerabilities to show."); + } + if (isIISStoped) + { + + if (isScanningEror) + return ProjectScanStatuses.Error; + else + return ProjectScanStatuses.CanceledByUser; + } + + if (!bCancel) + return ProjectScanStatuses.Success; + else + { + if (isScanningEror) + return ProjectScanStatuses.Error; + else + return ProjectScanStatuses.CanceledByUser; + } + } + + return ProjectScanStatuses.CanceledByUser; + } + + private void ShowScanData(ref CxWSQueryVulnerabilityData[] scanData, ref long scanId, CxWebServiceClient client) + { + // Get url to scanned project result + string savedFileName = string.Format("report{0}", Guid.NewGuid()); + long id = 0; + CxWSResponseScanStatus scanStatus = client.ServiceClient.GetStatusOfSingleScan(_scan.LoginResult.SessionId, _scan.RunScanResult.ScanId); + string ScanTaskId = scanStatus.ScanId.ToString();//after scan is finished the server replaces the scan id with task scan id + scanData = PerspectiveHelper.GetScanResultsPaths(ScanTaskId, ref scanId); + id = scanId; + LoginData.BindProject bindProject = _scan.LoginResult.AuthenticationData.BindedProjects.Find(project => project.BindedProjectId == CommonData.ProjectId && + project.ProjectName == CommonData.ProjectName && + project.RootPath == CommonData.ProjectRootPath); + + if (bindProject == null) // scaned for the first time + { + bindProject = new LoginData.BindProject(); + bindProject.ProjectName = CommonData.ProjectName; + bindProject.RootPath = CommonData.ProjectRootPath; + bindProject.IsBound = true; + _scan.LoginResult.AuthenticationData.BindedProjects.Add(bindProject); + } + if (!CommonData.IsProjectBound) // its new project + { + + bindProject.BindedProjectId = scanStatus.ProjectId; + CommonData.ProjectId = scanStatus.ProjectId; + bool isPublic= GetProjectDetails(scanStatus.ProjectId); + CommonData.IsProjectPublic = isPublic; + bindProject.IsPublic = isPublic; + bindProject.IsBound = true; + } + bindProject.SelectedScanId = id; + bindProject.ScanReports = new List(); + LoginHelper.Save(_scan.LoginResult.AuthenticationData); + + + BackgroundWorkerHelper bgWork = new BackgroundWorkerHelper(delegate + { + + CommonData.SelectedScanId = id; + String path = PerspectiveHelper.GetScanXML(id); + + LoginData.BindProject projectToUpdate = _scan.LoginResult.AuthenticationData.BindedProjects.Find(delegate (LoginData.BindProject bp) + { + return bp.BindedProjectId == CommonData.ProjectId; + } + ); + + CxWSResponseScansDisplayData cxWSResponseScansDisplayData = PerspectiveHelper.GetScansDisplayData(CommonData.ProjectId); + foreach (ScanDisplayData item in cxWSResponseScansDisplayData.ScanList) + { + + // Add relation to scanned project and scan report + ScanReportInfo scanReportInfo = new ScanReportInfo { Id = item.ScanID }; + string minutes = item.QueuedDateTime.Minute.ToString().Length > 1 ? item.QueuedDateTime.Minute.ToString() : "0" + item.QueuedDateTime.Minute; + + scanReportInfo.Name = string.Format("{0}/{1}/{2} {3}:{4}", item.QueuedDateTime.Month, + item.QueuedDateTime.Day, + item.QueuedDateTime.Year, + item.QueuedDateTime.Hour, + minutes); + + bindProject.AddScanReport(scanReportInfo); + } + LoginHelper.Save(_scan.LoginResult.AuthenticationData); + CommonActionsInstance.getInstance().ReportDoPrevResults(); + }); + + bgWork.DoWork(); + } + + private bool GetProjectDetails(long projectId) + { + string responseText = string.Empty; + + CxRESTApiCommon rESTApiPortalConfiguration = new CxRESTApiCommon(string.Format(_apiProjectDetails, projectId)); + HttpWebResponse response = rESTApiPortalConfiguration.InitPortalBaseUrl(); + + if (response != null && response.StatusCode == HttpStatusCode.OK) + { + using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8)) + { + responseText = reader.ReadToEnd(); + } + } + + if (!string.IsNullOrEmpty(responseText)) + { + CxProjectDetails projectDetails = new CxProjectDetails(); + JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer(); + projectDetails = (CxProjectDetails)javaScriptSerializer.Deserialize(responseText, typeof(CxProjectDetails)); + return projectDetails.isPublic; + } + return false; + } + private StatusScanResult UpdateScanStatus(ref bool bCancel, bool backgroundMode, IScanView view, BackgroundWorkerHelper bg, CxWebServiceClient client, ref bool isIISStoped) + { + // Get current scan status + CxWSResponseScanStatus cxWSResponseScanStatus = null; + StatusScanResult statusScan = null; + + bg.DoWorkFunc = delegate (object obj) + { + cxWSResponseScanStatus = client.ServiceClient.GetStatusOfSingleScan(_scan.LoginResult.SessionId, _scan.RunScanResult.ScanId); + statusScan = new StatusScanResult(); + statusScan.CurrentStage = cxWSResponseScanStatus.CurrentStage; + statusScan.CurrentStagePercent = cxWSResponseScanStatus.CurrentStagePercent; + statusScan.Details = cxWSResponseScanStatus.StepDetails; + statusScan.IsSuccesfull = cxWSResponseScanStatus.IsSuccesfull; + statusScan.QueuePosition = cxWSResponseScanStatus.QueuePosition; + statusScan.RunId = cxWSResponseScanStatus.RunId; + statusScan.RunStatus = cxWSResponseScanStatus.CurrentStatus; + statusScan.StageMessage = cxWSResponseScanStatus.StageMessage; + statusScan.StageName = cxWSResponseScanStatus.StageName; + statusScan.StepMessage = cxWSResponseScanStatus.StepMessage; + statusScan.TimeFinished = cxWSResponseScanStatus.TimeFinished != null ? cxWSResponseScanStatus.TimeFinished.ToString() : null; + statusScan.TimeStarted = cxWSResponseScanStatus.TimeScheduled != null ? cxWSResponseScanStatus.TimeScheduled.ToString() : null; + statusScan.TotalPercent = cxWSResponseScanStatus.TotalPercent; + }; + bCancel = !bg.DoWork(null); + + if (!BackgroundWorkerHelper.IsReloginInvoked) + { + isIISStoped = !_scan.LoginResult.AuthenticationData.SaveSastScan; + } + else + { + BackgroundWorkerHelper.IsReloginInvoked = false; + } + + if (!bCancel && cxWSResponseScanStatus != null && !isIISStoped) + { + ScanProgress progress = new ScanProgress( + _scan.UploadSettings.ProjectName, + statusScan.RunStatus.ToString(), + statusScan.StageName, + statusScan.StepMessage, + statusScan.CurrentStagePercent, + 0, + 100, + statusScan.TotalPercent); + + if (!backgroundMode) + view.Progress = progress; + try + { + CommonActionsInstance.getInstance().ScanProgressView.Progress = progress; + } + catch (Exception ex) + { + + Logger.Create().Error(ex.ToString()); + } + + if (statusScan.RunStatus == CurrentStatusEnum.Failed) + { + TopMostMessageBox.Show(statusScan.StageMessage, "Scan Error"); + bCancel = true; + } + + if (_scan.ScanView == null || _scan.ScanView.Visibility == false) + { + var scanStatusBar = new ScanStatusBar(true, string.Format("Scaning project {0}: {1} {2}", + _scan.UploadSettings.ProjectName, + statusScan.StepMessage, statusScan.RunStatus), statusScan.TotalPercent, 100); + + CommonActionsInstance.getInstance().UpdateScanProgress(scanStatusBar); + } + } + return statusScan; + } + + private RunScanResult RunBoundedProjectScan(Scan scan, BackgroundWorkerHelper bg, CxWebServiceClient client, byte[] zippedProject) + { + RunScanResult runScanResult = null; + bg.DoWorkFunc = delegate (object obj) + { + ProjectSettings projectSettings = new ProjectSettings(); + projectSettings.projectID = CommonData.ProjectId; + LocalCodeContainer localCodeContainer = new LocalCodeContainer(); + localCodeContainer.FileName = "zipCxViewer"; + localCodeContainer.ZippedFile = zippedProject; + try + { + CxWSResponseRunID cxWSResponseRunID; + + if (_scan.IsIncremental) + { + cxWSResponseRunID = client.ServiceClient.RunIncrementalScan( + scan.LoginResult.SessionId, + projectSettings, + localCodeContainer + , CommonData.IsProjectPublic, + scan.IsPublic + ); + } + else + { + cxWSResponseRunID = client.ServiceClient.RunScanAndAddToProject( + scan.LoginResult.SessionId, + projectSettings, + localCodeContainer + , CommonData.IsProjectPublic, + scan.IsPublic + ); + } + + runScanResult = new RunScanResult(); // RunScanResult.FromXml(scanZipedSource); + runScanResult.IsSuccesfull = cxWSResponseRunID.IsSuccesfull; + runScanResult.ScanId = cxWSResponseRunID.RunId;//Server actually returns the scanId which is a long number (and not the runID) + scan.LoginResult.AuthenticationData.UnboundRunID = cxWSResponseRunID.RunId; + CommonData.ProjectId = cxWSResponseRunID.ProjectID; + _scan.RunScanResult = runScanResult; + if (!cxWSResponseRunID.IsSuccesfull) + { + TopMostMessageBox.Show(string.Format("Scan Error: {0}", cxWSResponseRunID.ErrorMessage), "Scanning Error", MessageBoxButtons.OK); + } + else + { + LoginHelper.Save(scan.LoginResult.AuthenticationData); + } + } + catch (Exception err) + { + Logger.Create().Error(err.ToString()); + TopMostMessageBox.Show(string.Format("Scan Error: {0}", err.Message), "Scanning Error", MessageBoxButtons.OK); + } + + }; + if (!bg.DoWork("Upload project zipped source for scanning...")) + return null; + + return runScanResult; + } + + private void ShowScanProgressBar() + { + if (_scan != null && _scan.UploadSettings != null && (_scan.ScanView == null || _scan.ScanView.Visibility == false)) + { + var scanStatusBar = new ScanStatusBar(true, + string.Format("Scaning project {0}: {1}", + _scan.UploadSettings.ProjectName, + "..."), 0, 100); + + CommonActionsInstance.getInstance().UpdateScanProgress(scanStatusBar); + } + } + + private byte[] ZipProject(Scan scan, Project project, BackgroundWorkerHelper bg) + { + byte[] zippedProject = null; + bg.DoWorkFunc = delegate (object obj) + { + string error = string.Empty; + zippedProject = ZipHelper.Compress(project, scan.LoginResult.AuthenticationData.ExcludeFileExt, scan.LoginResult.AuthenticationData.ExcludeFolder, scan.LoginResult.AuthenticationData.MaxZipFileSize * 1048576, out error); + if (zippedProject == null) + { + TopMostMessageBox.Show(string.Format("Zip Error: {0}", error), "Zip Error", MessageBoxButtons.OK); + } + + }; //Convert mb to byte + bg.DoWork("Zip project before sending..."); + + return zippedProject; + } + + private RunScanResult RunScan(BackgroundWorkerHelper bg, CxWebServiceClient client, ConfigurationResult configuration, byte[] zippedProject) + { + RunScanResult runScanResult = null; + + bg.DoWorkFunc = delegate (object obj) + { + ProjectSettings projectSettings = new ProjectSettings(); + projectSettings.AssociatedGroupID = _scan.UploadSettings.Team.ToString(); + projectSettings.PresetID = _scan.UploadSettings.Preset; + projectSettings.ProjectName = _scan.UploadSettings.ProjectName; + projectSettings.ScanConfigurationID = configuration.FirstConfigurationKey; + LocalCodeContainer localCodeContainer = new LocalCodeContainer(); + localCodeContainer.FileName = "zipCxViewer"; + localCodeContainer.ZippedFile = zippedProject; + try + { + CxWSResponseRunID cxWSResponseRunID; + if (_scan.IsIncremental) + { + cxWSResponseRunID = client.ServiceClient.RunIncrementalScan( + _scan.LoginResult.SessionId, + projectSettings, + localCodeContainer + , _scan.UploadSettings.IsPublic, _scan.IsPublic + ); + } + else + { + cxWSResponseRunID = client.ServiceClient.CreateAndRunProject( + _scan.LoginResult.SessionId, + projectSettings, + localCodeContainer + , _scan.UploadSettings.IsPublic, _scan.IsPublic + ); + } + + + runScanResult = new RunScanResult(); + runScanResult.IsSuccesfull = cxWSResponseRunID.IsSuccesfull; + runScanResult.ScanId = cxWSResponseRunID.RunId;//Server actually returns the scanId which is a long number (and not the runID) + _scan.LoginResult.AuthenticationData.UnboundRunID = cxWSResponseRunID.RunId; + runScanResult.ProjectId = cxWSResponseRunID.ProjectID; + _scan.RunScanResult = runScanResult; + if (!cxWSResponseRunID.IsSuccesfull) + { + TopMostMessageBox.Show(string.Format("Scan Error: {0}", cxWSResponseRunID.ErrorMessage), "Scanning Error", MessageBoxButtons.OK); + } + else + { + LoginHelper.Save(_scan.LoginResult.AuthenticationData); + } + } + catch (Exception err) + { + Logger.Create().Error(err.ToString()); + + TopMostMessageBox.Show(string.Format("Scan Error: {0}", err.Message), "Scanning Error", MessageBoxButtons.OK); + } + + }; + Logger.Create().Info("Uploading project zipped source for scanning."); + if (!bg.DoWork("Upload project zipped source for scanning...")) + return null; + + return runScanResult; + } + + /// + /// Handler for ScanInBackground button + /// + /// + /// + internal void onScanInBackground(object sender, EventArgs e) + { + if (_scan != null && _scan.ScanView != null) + _scan.ScanView.Visibility = false; + } + + /// + /// Handler for Cancel button + /// + /// + /// + internal void onCancel(object sender, EventArgs e) + { + _scan.CancelEvent.Set(); + } + + /// + /// Handler for Details button + /// + /// + /// + internal void onDetails(object sender, EventArgs e) + { + } + + } +} diff --git a/CxViewerAction/Helpers/StorageHelper.cs b/CxActionShared/Helpers/StorageHelper.cs similarity index 96% rename from CxViewerAction/Helpers/StorageHelper.cs rename to CxActionShared/Helpers/StorageHelper.cs index 55357e13..014c846c 100644 --- a/CxViewerAction/Helpers/StorageHelper.cs +++ b/CxActionShared/Helpers/StorageHelper.cs @@ -1,138 +1,138 @@ -using System; -using System.IO; -using Common; - -namespace CxViewerAction.Helpers -{ - public class StorageHelper - { - #region [Private constants] - - /// - /// Main storage folder under VS path - /// - //private static readonly string _baseDir = "CxViewerActionStore"; - - static string BaseDir - { - get - { - string addinTargetPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), @"Checkmarx\Visual Studio Plugin\CxViewerActionStore"); - return addinTargetPath; - } - } - - #endregion - - #region [Static Methods] - - /// - /// Retutn content of specific file - /// - /// - /// - public static string Read(string fileName) - { - string content = null; - - try - { - string fullFileName = GetFullPath(fileName); - Logger.Create().Debug("Read XML File : " + fullFileName); - FileInfo fileInfo = new FileInfo(fullFileName); - - if (fileInfo.Exists) - { - using (StreamReader reader = new StreamReader(fullFileName)) - { - content = reader.ReadToEnd(); - } - } - } - catch (Exception ex) - { - Logger.Create().Error(ex); - } - return content; - } - - /// - /// Save file - /// - /// content - /// file name to save - /// - public static bool Save(byte[] fileContent, string fileName) - { - FileStream fs = null; - BinaryWriter bw = null; - bool res = false; - - try - { - if (!Directory.Exists(BaseDir)) - Directory.CreateDirectory(BaseDir); - - string fullFileName = GetFullPath(fileName); - Logger.Create().Debug("Save XML File : " + fullFileName); - fs = new FileStream(fullFileName, FileMode.Create, FileAccess.ReadWrite); - bw = new BinaryWriter(fs); - - bw.Write(fileContent); - - res = true; - } - catch (Exception ex) - { - Logger.Create().Error(ex); - res = false; - } - finally - { - if (bw != null) - bw.Close(); - - if (fs != null) - fs.Close(); - } - - return res; - } - - public static bool Save(string fileContent, string fileName) - { - byte[] content = System.Text.Encoding.UTF8.GetBytes(fileContent); - return Save(content, fileName); - } - - public static bool FileExist(string fileName, out string fileOut) - { - fileOut = GetFullPath(fileName); - FileInfo fileInfo = new FileInfo(fileOut); - - return fileInfo.Exists; - } - - private static string GetFullPath(string file) - { - return BaseDir + "\\" + file; - } - - public static void Delete(string perspective) - { - string fullFileName = GetFullPath(perspective); - try - { - if (File.Exists(fullFileName)) - File.Delete(fullFileName); - } - catch (Exception ex) - { - Logger.Create().Error(ex); - } - - } - - #endregion - } -} +using System; +using System.IO; +using Common; + +namespace CxViewerAction.Helpers +{ + public class StorageHelper + { + #region [Private constants] + + /// + /// Main storage folder under VS path + /// + //private static readonly string _baseDir = "CxViewerActionStore"; + + static string BaseDir + { + get + { + string addinTargetPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), @"Checkmarx\Visual Studio Plugin\CxViewerActionStore"); + return addinTargetPath; + } + } + + #endregion + + #region [Static Methods] + + /// + /// Retutn content of specific file + /// + /// + /// + public static string Read(string fileName) + { + string content = null; + + try + { + string fullFileName = GetFullPath(fileName); + Logger.Create().Debug("Read XML File : " + fullFileName); + FileInfo fileInfo = new FileInfo(fullFileName); + + if (fileInfo.Exists) + { + using (StreamReader reader = new StreamReader(fullFileName)) + { + content = reader.ReadToEnd(); + } + } + } + catch (Exception ex) + { + Logger.Create().Error(ex); + } + return content; + } + + /// + /// Save file + /// + /// content + /// file name to save + /// + public static bool Save(byte[] fileContent, string fileName) + { + FileStream fs = null; + BinaryWriter bw = null; + bool res = false; + + try + { + if (!Directory.Exists(BaseDir)) + Directory.CreateDirectory(BaseDir); + + string fullFileName = GetFullPath(fileName); + Logger.Create().Debug("Save XML File : " + fullFileName); + fs = new FileStream(fullFileName, FileMode.Create, FileAccess.ReadWrite); + bw = new BinaryWriter(fs); + + bw.Write(fileContent); + + res = true; + } + catch (Exception ex) + { + Logger.Create().Error(ex); + res = false; + } + finally + { + if (bw != null) + bw.Close(); + + if (fs != null) + fs.Close(); + } + + return res; + } + + public static bool Save(string fileContent, string fileName) + { + byte[] content = System.Text.Encoding.UTF8.GetBytes(fileContent); + return Save(content, fileName); + } + + public static bool FileExist(string fileName, out string fileOut) + { + fileOut = GetFullPath(fileName); + FileInfo fileInfo = new FileInfo(fileOut); + + return fileInfo.Exists; + } + + private static string GetFullPath(string file) + { + return BaseDir + "\\" + file; + } + + public static void Delete(string perspective) + { + string fullFileName = GetFullPath(perspective); + try + { + if (File.Exists(fullFileName)) + File.Delete(fullFileName); + } + catch (Exception ex) + { + Logger.Create().Error(ex); + } + + } + + #endregion + } +} diff --git a/CxViewerAction/Helpers/TopMostMessageBox.cs b/CxActionShared/Helpers/TopMostMessageBox.cs similarity index 97% rename from CxViewerAction/Helpers/TopMostMessageBox.cs rename to CxActionShared/Helpers/TopMostMessageBox.cs index ee11ebbb..d601ada6 100644 --- a/CxViewerAction/Helpers/TopMostMessageBox.cs +++ b/CxActionShared/Helpers/TopMostMessageBox.cs @@ -1,49 +1,49 @@ -using System; -using System.Collections.Generic; - -using System.Text; -using System.Windows.Forms; - -namespace CxViewerAction.Helpers -{ - /// - /// Show Message on the top of all windows - /// - static public class TopMostMessageBox - { - static public DialogResult Show(string message) - { - return Show(message, string.Empty, MessageBoxButtons.OK); - } - - static public DialogResult Show(string message, string title) - { - return Show(message, title, MessageBoxButtons.OK); - } - - static public DialogResult Show(string message, string title, - MessageBoxButtons buttons) - { - Form topmostForm = new Form(); - // We do not want anyone to see this window so position it off the - // visible screen and make it as small as possible - topmostForm.Size = new System.Drawing.Size(1, 1); - topmostForm.StartPosition = FormStartPosition.Manual; - System.Drawing.Rectangle rect = SystemInformation.VirtualScreen; - topmostForm.Location = new System.Drawing.Point(rect.Bottom + 10, - rect.Right + 10); - topmostForm.Show(); - // Make this form the active form and make it TopMost - topmostForm.Focus(); - topmostForm.BringToFront(); - topmostForm.TopMost = true; - // Finally show the MessageBox with the form just created as its owner - DialogResult result = MessageBox.Show(topmostForm, message, title, - buttons); - // clean it up all the way - topmostForm.Dispose(); - - return result; - } - } -} +using System; +using System.Collections.Generic; + +using System.Text; +using System.Windows.Forms; + +namespace CxViewerAction.Helpers +{ + /// + /// Show Message on the top of all windows + /// + static public class TopMostMessageBox + { + static public DialogResult Show(string message) + { + return Show(message, string.Empty, MessageBoxButtons.OK); + } + + static public DialogResult Show(string message, string title) + { + return Show(message, title, MessageBoxButtons.OK); + } + + static public DialogResult Show(string message, string title, + MessageBoxButtons buttons) + { + Form topmostForm = new Form(); + // We do not want anyone to see this window so position it off the + // visible screen and make it as small as possible + topmostForm.Size = new System.Drawing.Size(1, 1); + topmostForm.StartPosition = FormStartPosition.Manual; + System.Drawing.Rectangle rect = SystemInformation.VirtualScreen; + topmostForm.Location = new System.Drawing.Point(rect.Bottom + 10, + rect.Right + 10); + topmostForm.Show(); + // Make this form the active form and make it TopMost + topmostForm.Focus(); + topmostForm.BringToFront(); + topmostForm.TopMost = true; + // Finally show the MessageBox with the form just created as its owner + DialogResult result = MessageBox.Show(topmostForm, message, title, + buttons); + // clean it up all the way + topmostForm.Dispose(); + + return result; + } + } +} diff --git a/CxViewerAction/Helpers/UploadHelper.cs b/CxActionShared/Helpers/UploadHelper.cs similarity index 97% rename from CxViewerAction/Helpers/UploadHelper.cs rename to CxActionShared/Helpers/UploadHelper.cs index 231b746a..4abd50fc 100644 --- a/CxViewerAction/Helpers/UploadHelper.cs +++ b/CxActionShared/Helpers/UploadHelper.cs @@ -1,128 +1,128 @@ -using System; -using CxViewerAction.Dispatchers; -using CxViewerAction.Commands; -using CxViewerAction.Entities.WebServiceEntity; -using CxViewerAction.Entities; -using CxViewerAction.Services; -using CxViewerAction.CxVSWebService; -using System.Collections.Generic; - -namespace CxViewerAction.Helpers -{ - /// - /// Settings upload project params - /// - public class UploadHelper - { - // Wait dialog caption message - const string PRESETS_LOADING_TEXT = "Project settings form initializing..."; - - static CxWebServiceClient _client; - static IDispatcher _dispatcher; - - /// - /// Set upload params - /// - /// Auth user data for uploading - /// Selected solution project data - /// - internal static Upload SetUploadSettings(LoginResult loginResult, Project project, bool cancelStatus) - { - cancelStatus = false; - PresetResult presetResult = null; - TeamResult teamResult = null; - - BackgroundWorkerHelper bg = new BackgroundWorkerHelper(delegate(object obj) - { - _client = InitCxClient(loginResult); - if (_client == null) - return; - - presetResult = GetPresets(loginResult, presetResult); - - CxWSResponseGroupList teamXmlList = _client.ServiceClient.GetAssociatedGroupsList(loginResult.SessionId); - - teamResult = new TeamResult(); - teamResult.IsSuccesfull = teamXmlList.IsSuccesfull; - teamResult.Teams = new Dictionary(); - if (teamXmlList.GroupList != null && teamXmlList.GroupList.Length > 0) - { - for (int i = 0; i < teamXmlList.GroupList.Length; i++) - { - teamResult.Teams.Add(teamXmlList.GroupList[i].ID, teamXmlList.GroupList[i].GroupName); - } - } - - if (_client != null) - _client.Close(); - }, loginResult.AuthenticationData.ReconnectInterval * 1000, loginResult.AuthenticationData.ReconnectCount); - - //Show wait dialog and perform server request in different thread to safe UI responsibility - if (!bg.DoWork(PRESETS_LOADING_TEXT)) - { - cancelStatus = true; - return null; - } - - if (!presetResult.IsSuccesfull) - return null; - - var uploadData = new Upload(new EntityId(loginResult), project.ProjectName, - string.Format("{0} Description", project.ProjectName), presetResult.Presets, 0, - teamResult.Teams,Guid.Empty.ToString(),true); - - if (_dispatcher == null) - _dispatcher = ServiceLocators.ServiceLocator.GetDispatcher(); - - if (_dispatcher != null) - { - _dispatcher.Dispatch(uploadData); - } - - return uploadData; - } - - static PresetResult GetPresets(LoginResult loginResult, PresetResult presetResult) - { - CxWSResponsePresetList cxWSResponsePresetList = _client.ServiceClient.GetPresetList(loginResult.SessionId); - - presetResult = new PresetResult(); - - presetResult.IsSuccesfull = cxWSResponsePresetList.IsSuccesfull; - presetResult.Presets = new Dictionary(); - if (cxWSResponsePresetList.PresetList != null) - { - foreach (Preset item in cxWSResponsePresetList.PresetList) - { - presetResult.Presets.Add(Convert.ToInt32(item.ID), item.PresetName); - } - } - return presetResult; - } - - static CxWebServiceClient InitCxClient(LoginResult loginResult) - { - CxWebServiceClient client; - - try - { - client = new CxWebServiceClient(loginResult.AuthenticationData); - } - catch (Exception e) - { - Common.Logger.Create().Error(e.ToString()); - LoginHelper.DoLogout(); - System.Windows.Forms.MessageBox.Show(e.Message, "Error", System.Windows.Forms.MessageBoxButtons.OK); - return null; - } - - if (client == null) - { - LoginHelper.DoLogout(); - System.Windows.Forms.MessageBox.Show("Cannot connect to server", "Error", System.Windows.Forms.MessageBoxButtons.OK); - } - - return client; - } - } -} +using System; +using CxViewerAction.Dispatchers; +using CxViewerAction.Commands; +using CxViewerAction.Entities.WebServiceEntity; +using CxViewerAction.Entities; +using CxViewerAction.Services; +using CxViewerAction.CxVSWebService; +using System.Collections.Generic; + +namespace CxViewerAction.Helpers +{ + /// + /// Settings upload project params + /// + public class UploadHelper + { + // Wait dialog caption message + const string PRESETS_LOADING_TEXT = "Project settings form initializing..."; + + static CxWebServiceClient _client; + static IDispatcher _dispatcher; + + /// + /// Set upload params + /// + /// Auth user data for uploading + /// Selected solution project data + /// + internal static Upload SetUploadSettings(LoginResult loginResult, Project project, bool cancelStatus) + { + cancelStatus = false; + PresetResult presetResult = null; + TeamResult teamResult = null; + + BackgroundWorkerHelper bg = new BackgroundWorkerHelper(delegate(object obj) + { + _client = InitCxClient(loginResult); + if (_client == null) + return; + + presetResult = GetPresets(loginResult, presetResult); + + CxWSResponseGroupList teamXmlList = _client.ServiceClient.GetAssociatedGroupsList(loginResult.SessionId); + + teamResult = new TeamResult(); + teamResult.IsSuccesfull = teamXmlList.IsSuccesfull; + teamResult.Teams = new Dictionary(); + if (teamXmlList.GroupList != null && teamXmlList.GroupList.Length > 0) + { + for (int i = 0; i < teamXmlList.GroupList.Length; i++) + { + teamResult.Teams.Add(teamXmlList.GroupList[i].ID, teamXmlList.GroupList[i].GroupName); + } + } + + if (_client != null) + _client.Close(); + }, loginResult.AuthenticationData.ReconnectInterval * 1000, loginResult.AuthenticationData.ReconnectCount); + + //Show wait dialog and perform server request in different thread to safe UI responsibility + if (!bg.DoWork(PRESETS_LOADING_TEXT)) + { + cancelStatus = true; + return null; + } + + if (!presetResult.IsSuccesfull) + return null; + + var uploadData = new Upload(new EntityId(loginResult), project.ProjectName, + string.Format("{0} Description", project.ProjectName), presetResult.Presets, 0, + teamResult.Teams,Guid.Empty.ToString(),true); + + if (_dispatcher == null) + _dispatcher = ServiceLocators.ServiceLocator.GetDispatcher(); + + if (_dispatcher != null) + { + _dispatcher.Dispatch(uploadData); + } + + return uploadData; + } + + static PresetResult GetPresets(LoginResult loginResult, PresetResult presetResult) + { + CxWSResponsePresetList cxWSResponsePresetList = _client.ServiceClient.GetPresetList(loginResult.SessionId); + + presetResult = new PresetResult(); + + presetResult.IsSuccesfull = cxWSResponsePresetList.IsSuccesfull; + presetResult.Presets = new Dictionary(); + if (cxWSResponsePresetList.PresetList != null) + { + foreach (Preset item in cxWSResponsePresetList.PresetList) + { + presetResult.Presets.Add(Convert.ToInt32(item.ID), item.PresetName); + } + } + return presetResult; + } + + static CxWebServiceClient InitCxClient(LoginResult loginResult) + { + CxWebServiceClient client; + + try + { + client = new CxWebServiceClient(loginResult.AuthenticationData); + } + catch (Exception e) + { + Common.Logger.Create().Error(e.ToString()); + LoginHelper.DoLogout(); + System.Windows.Forms.MessageBox.Show(e.Message, "Error", System.Windows.Forms.MessageBoxButtons.OK); + return null; + } + + if (client == null) + { + LoginHelper.DoLogout(); + System.Windows.Forms.MessageBox.Show("Cannot connect to server", "Error", System.Windows.Forms.MessageBoxButtons.OK); + } + + return client; + } + } +} diff --git a/CxViewerAction/Helpers/XmlHelper.cs b/CxActionShared/Helpers/XmlHelper.cs similarity index 97% rename from CxViewerAction/Helpers/XmlHelper.cs rename to CxActionShared/Helpers/XmlHelper.cs index 2278cb2b..e60f8d2e 100644 --- a/CxViewerAction/Helpers/XmlHelper.cs +++ b/CxActionShared/Helpers/XmlHelper.cs @@ -1,397 +1,397 @@ -using System; -using System.Collections.Generic; - -using System.Text; -using CxViewerAction.Entities.WebServiceEntity; -using System.Xml; -using CxViewerAction.Entities; - -namespace CxViewerAction.Helpers -{ - /// - /// Class encapsulates methods for transforming XML string to system objects - /// - public class XmlHelper - { - - /// - /// Convert XML string into PresetResult object - /// - /// xml string - /// - public static PresetResult ParsePresetResult(string response) - { - PresetResult r = new PresetResult(); - r.Presets = new Dictionary(); - - try - { - XmlDocument xmlDoc = new XmlDocument(); - xmlDoc.LoadXml(response); - - foreach (XmlNode xmlNode in xmlDoc.ChildNodes[1].ChildNodes) - { - switch (xmlNode.Name) - { - case "IsSuccesfull": r.IsSuccesfull = bool.Parse(xmlNode.InnerText); break; - case "ReturnValue": - foreach (XmlNode presetNode in xmlNode.ChildNodes) - { - r.Presets.Add(int.Parse(presetNode.Attributes["Id"].Value), presetNode.Attributes["Name"].Value); - } - break; - } - } - - xmlDoc = null; - } - catch (Exception ex) - { - Common.Logger.Create().Error(ex.ToString()); - } - - return r; - } - - /// - /// Convert XML string into TeamResult object - /// - /// xml string - /// - public static TeamResult ParseTeamResult(string response) - { - TeamResult t = new TeamResult(); - t.Teams = new Dictionary(); - - try - { - XmlDocument xmlDoc = new XmlDocument(); - xmlDoc.LoadXml(response); - - foreach (XmlNode xmlNode in xmlDoc.ChildNodes[1].ChildNodes) - { - switch (xmlNode.Name) - { - case "IsSuccesfull": t.IsSuccesfull = bool.Parse(xmlNode.InnerText); break; - case "ReturnValue": - foreach (XmlNode presetNode in xmlNode.ChildNodes) - { - t.Teams.Add(presetNode.Attributes["Id"].Value, presetNode.Attributes["Name"].Value); - } - break; - } - } - - xmlDoc = null; - } - catch (Exception ex) - { - Common.Logger.Create().Error(ex.ToString()); - } - - return t; - } - - /// - /// Convert XML string into ConfigurationResult object - /// - /// xml string - /// - public static ConfigurationResult ParseConfigurationResult(string response) - { - ConfigurationResult r = new ConfigurationResult(); - r.Configurations = new Dictionary(); - - try - { - XmlDocument xmlDoc = new XmlDocument(); - xmlDoc.LoadXml(response); - - foreach (XmlNode xmlNode in xmlDoc.ChildNodes[1].ChildNodes) - { - switch (xmlNode.Name) - { - case "IsSuccesfull": r.IsSuccesfull = bool.Parse(xmlNode.InnerText); break; - case "ReturnValue": - foreach (XmlNode presetNode in xmlNode.ChildNodes) - { - r.Configurations.Add(int.Parse(presetNode.Attributes["Id"].Value), presetNode.Attributes["Name"].Value); - } - break; - } - } - - xmlDoc = null; - } - catch (Exception ex) - { - Common.Logger.Create().Error(ex.ToString()); - } - - return r; - } - - /// - /// Convert XML string into RunScanResult object - /// - /// xml string - /// - public static RunScanResult ParseRunScanResult(string response) - { - RunScanResult r = new RunScanResult(); - - try - { - XmlDocument xmlDoc = new XmlDocument(); - xmlDoc.LoadXml(response); - - foreach (XmlNode xmlNode in xmlDoc.ChildNodes[1].ChildNodes) - { - switch (xmlNode.Name) - { - case "IsSuccesfull": r.IsSuccesfull = bool.Parse(xmlNode.InnerText); break; - case "ReturnValue": r.ScanId = xmlNode.InnerText; break; - } - } - - xmlDoc = null; - } - catch (Exception ex) - { - Common.Logger.Create().Error(ex.ToString()); - } - - return r; - } - - /// - /// Convert XML string into StatusScanResult object - /// - /// xml string - /// - internal static StatusScanResult ParseStatusScanResult(string response) - { - StatusScanResult r = new StatusScanResult(); - - try - { - XmlDocument xmlDoc = new XmlDocument(); - xmlDoc.LoadXml(response); - - foreach (XmlNode xmlNode in xmlDoc.ChildNodes[1].ChildNodes) - { - switch (xmlNode.Name) - { - case "IsSuccesfull": r.IsSuccesfull = bool.Parse(xmlNode.InnerText); break; - case "ReturnValue": - r.RunId = xmlNode.ChildNodes[0].Attributes["RunId"].Value; - r.RunStatus = StatusScanResult.GetRunStatus(xmlNode.ChildNodes[0].Attributes["RunStatus"].Value); - r.TotalPercent = int.Parse(xmlNode.ChildNodes[0].Attributes["TotalPercent"].Value); - r.CurrentStage = int.Parse(xmlNode.ChildNodes[0].Attributes["CurrentStage"].Value); - r.StageName = xmlNode.ChildNodes[0].Attributes["StageName"].Value; - r.CurrentStagePercent = int.Parse(xmlNode.ChildNodes[0].Attributes["CurrentStagePercent"].Value); - r.StageMessage = xmlNode.ChildNodes[0].Attributes["StageMessage"].Value; - r.StepMessage = xmlNode.ChildNodes[0].Attributes["StepMessage"].Value; - r.Details = xmlNode.ChildNodes[0].Attributes["Details"].Value; - r.TimeStarted = xmlNode.ChildNodes[0].Attributes["TimeStarted"].Value; - r.TimeFinished = xmlNode.ChildNodes[0].Attributes["TimeFinished"].Value; - r.QueuePosition = int.Parse(xmlNode.ChildNodes[0].Attributes["QueuePosition"].Value); - break; - } - } - - xmlDoc = null; - } - catch (Exception ex) - { - Common.Logger.Create().Error(ex.ToString()); - } - - return r; - } - - /// - /// Convert XML string into PerspectiveResult object - /// - /// xml string - /// - internal static PerspectiveResult ParsePerspectiveResult(string response) - { - PerspectiveResult r = new PerspectiveResult(); - - try - { - XmlDocument xmlDoc = new XmlDocument(); - xmlDoc.LoadXml(response); - - foreach (XmlNode xmlNode in xmlDoc.ChildNodes[1].ChildNodes) - { - switch (xmlNode.Name) - { - case "IsSuccesfull": r.IsSuccesfull = bool.Parse(xmlNode.InnerText); break; - case "ReturnValue": r.ReportUrl = xmlNode.InnerText; break; - } - } - - xmlDoc = null; - } - catch (Exception ex) - { - Common.Logger.Create().Error(ex.ToString()); - } - - return r; - } - - /// - /// Convert XML string into ReportResult object - /// - /// xml string - /// - internal static ReportResult ParseReportResult(string response) - { - ReportResult r = new ReportResult(); - r.Problems = new List(); - - try - { - XmlDocument xmlDoc = new XmlDocument(); - xmlDoc.LoadXml(response); - - foreach (XmlNode xmlNode in xmlDoc.ChildNodes[1].ChildNodes) - { - if (xmlNode.Name.ToLower() == "query") - { - ReportQueryResult query = new ReportQueryResult(); - string idValue = xmlNode.Attributes["id"].Value ?? xmlNode.Attributes["Id"].Value; - if (idValue != null) - query.Id = int.Parse(idValue); - - string cweIdValue = xmlNode.Attributes["cweId"].Value ?? xmlNode.Attributes["CweId"].Value; - if (cweIdValue != null) - query.CweId = int.Parse(cweIdValue); - - query.Name = xmlNode.Attributes["name"].Value ?? xmlNode.Attributes["Name"].Value; - query.Group = xmlNode.Attributes["group"].Value ?? xmlNode.Attributes["Group"].Value; - XmlAttribute severityAttribute = xmlNode.Attributes["severity"]?? xmlNode.Attributes["Severity"]; - if (severityAttribute.Value != null) - query.Severity = ReportQueryResult.SeverityTypeFromString(severityAttribute.Value); - - query.Paths = ParseQueryResult(xmlNode); - query.Report = r; - - query.Paths.ForEach(delegate(ReportQueryItemResult p) { p.Query = query; }); - r.Problems.Add(query); - } - } - - xmlDoc = null; - } - catch (Exception ex) - { - Common.Logger.Create().Error(ex.ToString()); - } - - return r; - } - - /// - /// Convert XML string into ReportQueryItemPathResult list - /// - /// - /// - private static List ParseQueryResult(XmlNode xmlNode) - { - List outputItems = new List(); - - if (xmlNode.FirstChild == null) - return outputItems; - foreach (XmlNode resultNode in xmlNode.ChildNodes) - { - string lineValue = resultNode.Attributes["Line"].Value ?? resultNode.Attributes["line"].Value; - string columnValue = resultNode.Attributes["Column"].Value ?? resultNode.Attributes["column"].Value; - string nodeIdValue = resultNode.Attributes["NodeId"].Value ?? resultNode.Attributes["nodeId"].Value; - string falsePositiveValue = resultNode.Attributes["FalsePositive"].Value ?? resultNode.Attributes["falsePositive"].Value; - string pathIdValue = resultNode.FirstChild.Attributes["PathId"].Value ?? resultNode.FirstChild.Attributes["pathId"].Value; - string resultIdValue = resultNode.FirstChild.Attributes["ResultId"].Value ?? resultNode.FirstChild.Attributes["resultId"].Value; - ReportQueryItemResult reportQueryItemResult = new ReportQueryItemResult - { - FileName = resultNode.Attributes["FileName"].Value ?? resultNode.Attributes["fileName"].Value, - Line = lineValue != null ? Convert.ToInt32(lineValue) : 0, - Column = columnValue != null ? Convert.ToInt32(columnValue) : 0, - NodeId = nodeIdValue != null ? Convert.ToInt32(nodeIdValue) : 0, - FalsePositive = falsePositiveValue != null ? Convert.ToBoolean(falsePositiveValue) : false, - Remark = resultNode.Attributes["Remark"].Value ?? resultNode.Attributes["remark"].Value, - PathId = pathIdValue != null ? Convert.ToInt32(pathIdValue) : 0, - ResultId = resultIdValue != null ? Convert.ToInt32(resultIdValue) : 0 - }; - reportQueryItemResult.Paths = ParseQueryItemPathResult(resultNode.FirstChild, reportQueryItemResult); - if (outputItems.Find(r => r.CompareTo(reportQueryItemResult) == 0) == null) - outputItems.Add(reportQueryItemResult); - } - - return outputItems; - } - - internal static List ParseQueryItemPathResult(XmlNode xmlNode, ReportQueryItemResult parent) - { - List outputItems = new List(); - - - foreach (XmlNode pathNode in xmlNode.ChildNodes) - { - ReportQueryItemPathResult reportQueryItemPathResult = new ReportQueryItemPathResult(); - reportQueryItemPathResult.QueryItem = parent; - foreach (XmlNode pathSubNode in pathNode.ChildNodes) - { - switch (pathSubNode.Name.ToLower()) - { - case "filename": reportQueryItemPathResult.FileName = pathSubNode.InnerText; break; - case "line": reportQueryItemPathResult.Line = int.Parse(pathSubNode.InnerText); break; - case "column": reportQueryItemPathResult.Column = int.Parse(pathSubNode.InnerText); break; - case "name": reportQueryItemPathResult.Name = pathSubNode.InnerText; break; - case "length": reportQueryItemPathResult.Length = int.Parse(pathSubNode.InnerText); break; - case "nodeid": reportQueryItemPathResult.NodeId = int.Parse(pathSubNode.InnerText); break; - } - } - outputItems.Add(reportQueryItemPathResult); - } - - - return outputItems; - } - - /// - /// Convert XML string into QueryDescriptionResult object - /// - /// - /// - internal static QueryDescriptionResult ParseQueryDescriptionResult(string response) - { - QueryDescriptionResult r = new QueryDescriptionResult(); - - try - { - XmlDocument xmlDoc = new XmlDocument(); - xmlDoc.LoadXml(response); - - foreach (XmlNode xmlNode in xmlDoc.ChildNodes[1].ChildNodes) - { - switch (xmlNode.Name) - { - case "IsSuccesfull": r.IsSuccesfull = bool.Parse(xmlNode.InnerText); break; - case "ReturnValue": r.Description = xmlNode.InnerText; break; - } - } - - xmlDoc = null; - } - catch (Exception ex) - { - Common.Logger.Create().Error(ex.ToString()); - } - - return r; - } - } -} +using System; +using System.Collections.Generic; + +using System.Text; +using CxViewerAction.Entities.WebServiceEntity; +using System.Xml; +using CxViewerAction.Entities; + +namespace CxViewerAction.Helpers +{ + /// + /// Class encapsulates methods for transforming XML string to system objects + /// + public class XmlHelper + { + + /// + /// Convert XML string into PresetResult object + /// + /// xml string + /// + public static PresetResult ParsePresetResult(string response) + { + PresetResult r = new PresetResult(); + r.Presets = new Dictionary(); + + try + { + XmlDocument xmlDoc = new XmlDocument(); + xmlDoc.LoadXml(response); + + foreach (XmlNode xmlNode in xmlDoc.ChildNodes[1].ChildNodes) + { + switch (xmlNode.Name) + { + case "IsSuccesfull": r.IsSuccesfull = bool.Parse(xmlNode.InnerText); break; + case "ReturnValue": + foreach (XmlNode presetNode in xmlNode.ChildNodes) + { + r.Presets.Add(int.Parse(presetNode.Attributes["Id"].Value), presetNode.Attributes["Name"].Value); + } + break; + } + } + + xmlDoc = null; + } + catch (Exception ex) + { + Common.Logger.Create().Error(ex.ToString()); + } + + return r; + } + + /// + /// Convert XML string into TeamResult object + /// + /// xml string + /// + public static TeamResult ParseTeamResult(string response) + { + TeamResult t = new TeamResult(); + t.Teams = new Dictionary(); + + try + { + XmlDocument xmlDoc = new XmlDocument(); + xmlDoc.LoadXml(response); + + foreach (XmlNode xmlNode in xmlDoc.ChildNodes[1].ChildNodes) + { + switch (xmlNode.Name) + { + case "IsSuccesfull": t.IsSuccesfull = bool.Parse(xmlNode.InnerText); break; + case "ReturnValue": + foreach (XmlNode presetNode in xmlNode.ChildNodes) + { + t.Teams.Add(presetNode.Attributes["Id"].Value, presetNode.Attributes["Name"].Value); + } + break; + } + } + + xmlDoc = null; + } + catch (Exception ex) + { + Common.Logger.Create().Error(ex.ToString()); + } + + return t; + } + + /// + /// Convert XML string into ConfigurationResult object + /// + /// xml string + /// + public static ConfigurationResult ParseConfigurationResult(string response) + { + ConfigurationResult r = new ConfigurationResult(); + r.Configurations = new Dictionary(); + + try + { + XmlDocument xmlDoc = new XmlDocument(); + xmlDoc.LoadXml(response); + + foreach (XmlNode xmlNode in xmlDoc.ChildNodes[1].ChildNodes) + { + switch (xmlNode.Name) + { + case "IsSuccesfull": r.IsSuccesfull = bool.Parse(xmlNode.InnerText); break; + case "ReturnValue": + foreach (XmlNode presetNode in xmlNode.ChildNodes) + { + r.Configurations.Add(int.Parse(presetNode.Attributes["Id"].Value), presetNode.Attributes["Name"].Value); + } + break; + } + } + + xmlDoc = null; + } + catch (Exception ex) + { + Common.Logger.Create().Error(ex.ToString()); + } + + return r; + } + + /// + /// Convert XML string into RunScanResult object + /// + /// xml string + /// + public static RunScanResult ParseRunScanResult(string response) + { + RunScanResult r = new RunScanResult(); + + try + { + XmlDocument xmlDoc = new XmlDocument(); + xmlDoc.LoadXml(response); + + foreach (XmlNode xmlNode in xmlDoc.ChildNodes[1].ChildNodes) + { + switch (xmlNode.Name) + { + case "IsSuccesfull": r.IsSuccesfull = bool.Parse(xmlNode.InnerText); break; + case "ReturnValue": r.ScanId = xmlNode.InnerText; break; + } + } + + xmlDoc = null; + } + catch (Exception ex) + { + Common.Logger.Create().Error(ex.ToString()); + } + + return r; + } + + /// + /// Convert XML string into StatusScanResult object + /// + /// xml string + /// + internal static StatusScanResult ParseStatusScanResult(string response) + { + StatusScanResult r = new StatusScanResult(); + + try + { + XmlDocument xmlDoc = new XmlDocument(); + xmlDoc.LoadXml(response); + + foreach (XmlNode xmlNode in xmlDoc.ChildNodes[1].ChildNodes) + { + switch (xmlNode.Name) + { + case "IsSuccesfull": r.IsSuccesfull = bool.Parse(xmlNode.InnerText); break; + case "ReturnValue": + r.RunId = xmlNode.ChildNodes[0].Attributes["RunId"].Value; + r.RunStatus = StatusScanResult.GetRunStatus(xmlNode.ChildNodes[0].Attributes["RunStatus"].Value); + r.TotalPercent = int.Parse(xmlNode.ChildNodes[0].Attributes["TotalPercent"].Value); + r.CurrentStage = int.Parse(xmlNode.ChildNodes[0].Attributes["CurrentStage"].Value); + r.StageName = xmlNode.ChildNodes[0].Attributes["StageName"].Value; + r.CurrentStagePercent = int.Parse(xmlNode.ChildNodes[0].Attributes["CurrentStagePercent"].Value); + r.StageMessage = xmlNode.ChildNodes[0].Attributes["StageMessage"].Value; + r.StepMessage = xmlNode.ChildNodes[0].Attributes["StepMessage"].Value; + r.Details = xmlNode.ChildNodes[0].Attributes["Details"].Value; + r.TimeStarted = xmlNode.ChildNodes[0].Attributes["TimeStarted"].Value; + r.TimeFinished = xmlNode.ChildNodes[0].Attributes["TimeFinished"].Value; + r.QueuePosition = int.Parse(xmlNode.ChildNodes[0].Attributes["QueuePosition"].Value); + break; + } + } + + xmlDoc = null; + } + catch (Exception ex) + { + Common.Logger.Create().Error(ex.ToString()); + } + + return r; + } + + /// + /// Convert XML string into PerspectiveResult object + /// + /// xml string + /// + internal static PerspectiveResult ParsePerspectiveResult(string response) + { + PerspectiveResult r = new PerspectiveResult(); + + try + { + XmlDocument xmlDoc = new XmlDocument(); + xmlDoc.LoadXml(response); + + foreach (XmlNode xmlNode in xmlDoc.ChildNodes[1].ChildNodes) + { + switch (xmlNode.Name) + { + case "IsSuccesfull": r.IsSuccesfull = bool.Parse(xmlNode.InnerText); break; + case "ReturnValue": r.ReportUrl = xmlNode.InnerText; break; + } + } + + xmlDoc = null; + } + catch (Exception ex) + { + Common.Logger.Create().Error(ex.ToString()); + } + + return r; + } + + /// + /// Convert XML string into ReportResult object + /// + /// xml string + /// + internal static ReportResult ParseReportResult(string response) + { + ReportResult r = new ReportResult(); + r.Problems = new List(); + + try + { + XmlDocument xmlDoc = new XmlDocument(); + xmlDoc.LoadXml(response); + + foreach (XmlNode xmlNode in xmlDoc.ChildNodes[1].ChildNodes) + { + if (xmlNode.Name.ToLower() == "query") + { + ReportQueryResult query = new ReportQueryResult(); + string idValue = xmlNode.Attributes["id"].Value ?? xmlNode.Attributes["Id"].Value; + if (idValue != null) + query.Id = int.Parse(idValue); + + string cweIdValue = xmlNode.Attributes["cweId"].Value ?? xmlNode.Attributes["CweId"].Value; + if (cweIdValue != null) + query.CweId = int.Parse(cweIdValue); + + query.Name = xmlNode.Attributes["name"].Value ?? xmlNode.Attributes["Name"].Value; + query.Group = xmlNode.Attributes["group"].Value ?? xmlNode.Attributes["Group"].Value; + XmlAttribute severityAttribute = xmlNode.Attributes["severity"]?? xmlNode.Attributes["Severity"]; + if (severityAttribute.Value != null) + query.Severity = ReportQueryResult.SeverityTypeFromString(severityAttribute.Value); + + query.Paths = ParseQueryResult(xmlNode); + query.Report = r; + + query.Paths.ForEach(delegate(ReportQueryItemResult p) { p.Query = query; }); + r.Problems.Add(query); + } + } + + xmlDoc = null; + } + catch (Exception ex) + { + Common.Logger.Create().Error(ex.ToString()); + } + + return r; + } + + /// + /// Convert XML string into ReportQueryItemPathResult list + /// + /// + /// + private static List ParseQueryResult(XmlNode xmlNode) + { + List outputItems = new List(); + + if (xmlNode.FirstChild == null) + return outputItems; + foreach (XmlNode resultNode in xmlNode.ChildNodes) + { + string lineValue = resultNode.Attributes["Line"].Value ?? resultNode.Attributes["line"].Value; + string columnValue = resultNode.Attributes["Column"].Value ?? resultNode.Attributes["column"].Value; + string nodeIdValue = resultNode.Attributes["NodeId"].Value ?? resultNode.Attributes["nodeId"].Value; + string falsePositiveValue = resultNode.Attributes["FalsePositive"].Value ?? resultNode.Attributes["falsePositive"].Value; + string pathIdValue = resultNode.FirstChild.Attributes["PathId"].Value ?? resultNode.FirstChild.Attributes["pathId"].Value; + string resultIdValue = resultNode.FirstChild.Attributes["ResultId"].Value ?? resultNode.FirstChild.Attributes["resultId"].Value; + ReportQueryItemResult reportQueryItemResult = new ReportQueryItemResult + { + FileName = resultNode.Attributes["FileName"].Value ?? resultNode.Attributes["fileName"].Value, + Line = lineValue != null ? Convert.ToInt32(lineValue) : 0, + Column = columnValue != null ? Convert.ToInt32(columnValue) : 0, + NodeId = nodeIdValue != null ? Convert.ToInt32(nodeIdValue) : 0, + FalsePositive = falsePositiveValue != null ? Convert.ToBoolean(falsePositiveValue) : false, + Remark = resultNode.Attributes["Remark"].Value ?? resultNode.Attributes["remark"].Value, + PathId = pathIdValue != null ? Convert.ToInt32(pathIdValue) : 0, + ResultId = resultIdValue != null ? Convert.ToInt32(resultIdValue) : 0 + }; + reportQueryItemResult.Paths = ParseQueryItemPathResult(resultNode.FirstChild, reportQueryItemResult); + if (outputItems.Find(r => r.CompareTo(reportQueryItemResult) == 0) == null) + outputItems.Add(reportQueryItemResult); + } + + return outputItems; + } + + internal static List ParseQueryItemPathResult(XmlNode xmlNode, ReportQueryItemResult parent) + { + List outputItems = new List(); + + + foreach (XmlNode pathNode in xmlNode.ChildNodes) + { + ReportQueryItemPathResult reportQueryItemPathResult = new ReportQueryItemPathResult(); + reportQueryItemPathResult.QueryItem = parent; + foreach (XmlNode pathSubNode in pathNode.ChildNodes) + { + switch (pathSubNode.Name.ToLower()) + { + case "filename": reportQueryItemPathResult.FileName = pathSubNode.InnerText; break; + case "line": reportQueryItemPathResult.Line = int.Parse(pathSubNode.InnerText); break; + case "column": reportQueryItemPathResult.Column = int.Parse(pathSubNode.InnerText); break; + case "name": reportQueryItemPathResult.Name = pathSubNode.InnerText; break; + case "length": reportQueryItemPathResult.Length = int.Parse(pathSubNode.InnerText); break; + case "nodeid": reportQueryItemPathResult.NodeId = int.Parse(pathSubNode.InnerText); break; + } + } + outputItems.Add(reportQueryItemPathResult); + } + + + return outputItems; + } + + /// + /// Convert XML string into QueryDescriptionResult object + /// + /// + /// + internal static QueryDescriptionResult ParseQueryDescriptionResult(string response) + { + QueryDescriptionResult r = new QueryDescriptionResult(); + + try + { + XmlDocument xmlDoc = new XmlDocument(); + xmlDoc.LoadXml(response); + + foreach (XmlNode xmlNode in xmlDoc.ChildNodes[1].ChildNodes) + { + switch (xmlNode.Name) + { + case "IsSuccesfull": r.IsSuccesfull = bool.Parse(xmlNode.InnerText); break; + case "ReturnValue": r.Description = xmlNode.InnerText; break; + } + } + + xmlDoc = null; + } + catch (Exception ex) + { + Common.Logger.Create().Error(ex.ToString()); + } + + return r; + } + } +} diff --git a/CxViewerAction/Helpers/ZipHelper.cs b/CxActionShared/Helpers/ZipHelper.cs similarity index 81% rename from CxViewerAction/Helpers/ZipHelper.cs rename to CxActionShared/Helpers/ZipHelper.cs index 6650c08f..3e57f430 100644 --- a/CxViewerAction/Helpers/ZipHelper.cs +++ b/CxActionShared/Helpers/ZipHelper.cs @@ -1,300 +1,320 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.IO; -using System.Linq; -using System.Text.RegularExpressions; -using CxViewerAction.Entities; -using Common; -using Ionic.Zip; - -namespace CxViewerAction.Helpers -{ - /// - /// Creates ZIP archives - /// - public class ZipHelper - { - /// - /// Regular expression to make selection include file range - /// - private const string _fileFilter = "^((?!((exe$)|(dll$)|(pdb$))).)*$"; - - /// - /// Regular expression to make selection include directory range - /// - private const string _directoryFilter = "^((?!((bin)|(obj)|(.svn))).)*$"; - - /// - /// Compress string with Zip technology. If in process of zip generation the archive size - /// exceed maxAllowedZipFileSize value operation canceled. - /// - /// List of projects to zip - /// List of file extensions to exclude from zip - /// List of folders to exclude from zip - /// Max allowed zip file size - /// If maxAllowedZipFileSize value exceed function return null otherwise zip byte stream - public static byte[] Compress(Project project, string[] fileExtToExclude, string[] foldersToExclude, long maxAllowedZipFileSize, out string error) - { - byte[] data; - - Project[] projectList = project.ProjectPaths.Count == 0 ? new Project[] { project } : project.ProjectPaths.ToArray(); - - - - - - data = Compress(projectList, GetFileExcludeRegex(fileExtToExclude), GetFolderToExcludeRegex(foldersToExclude), - project.ProjectPaths.Count > 0, maxAllowedZipFileSize, out error); - - if (data != null && data.Length < maxAllowedZipFileSize) - { - return data; - } - - return null; - - } - - - private static string GetFileExcludeRegex(string[] filesExtToExclude) - { - if (filesExtToExclude.Length == 0) - return null; - - StringBuilder part = new StringBuilder(); - - foreach (string ext in filesExtToExclude) - part.AppendFormat("({0}$)|", ext.Trim()); - - part = part.Remove(part.Length - 1, 1); - part = part.Replace("*", ".*"); - - return string.Format("^((?!({0})).)*$", part); - } - - private static string GetFolderToExcludeRegex(string[] foldersToExclude) - { - if (foldersToExclude.Length == 0) - return null; - - StringBuilder part = new StringBuilder(); - - foreach (string ext in foldersToExclude) - part.AppendFormat("({0})|", ext.Trim()); - - part = part.Remove(part.Length - 1, 1); - part = part.Replace("*", ".*"); - - return string.Format("^((?!({0})).)*$", part); - } - - private static byte[] Compress(Project[] projects, string sExcludeFile, string sExcludePath, bool createRootDir, long maxAllowedZipFileSize, out string error) - { - error = string.Empty; - byte[] compressed = null; - - try - { - using (MemoryStream outputStream = new MemoryStream()) - { - using (ZipOutputStream oZip = new ZipOutputStream(outputStream)) - { - //Compress Level - oZip.CompressionLevel = Ionic.Zlib.CompressionLevel.Level9; - - int commonPathLength = 0; - - if (projects.Count() > 1) - { - commonPathLength = GetCommonPathLength(projects.Select(l => l.RootPath).ToList()); - } - else if (Directory.GetParent(projects[0].RootPath) != null) - { - - commonPathLength = Directory.GetParent(projects[0].RootPath).FullName.Length + 1; // +1 remove '\' - } - - Regex dirMatch = new Regex(sExcludePath, RegexOptions.IgnoreCase); - - - foreach (Project p in projects) - { - - int subProjects = projects.Where(p2 => p.RootPath.Contains(p2.RootPath)).Count(); - - if (subProjects == 1 && dirMatch.IsMatch(Path.GetFileName(p.RootPath))) //If the project is not a subProject and not excluded - { - foreach (string filePath in p.FilePathList) // scan only the file selected - { - if (Directory.Exists(p.RootPath)) - { - // find number of chars to remove from orginal file path - Logger.Create().Info("Zip file: " + p.FilePathList); - WriteEntryToZip(oZip, filePath.Remove(0, p.RootPath.Length).TrimStart(new[] { '/', '\\' }), filePath); - } - } - - - foreach (string folderPath in p.FolderPathList) // scan only the Folder selected - { - Logger.Create().Info("Zip Folder: " + p.FolderPathList); - if (!WriteDirectoryToZip(oZip, folderPath.TrimEnd('\\'), sExcludeFile, sExcludePath, maxAllowedZipFileSize, commonPathLength)) - { - error = string.Format("allowable archive size {0}mb exceeded", Convert.ToInt32(maxAllowedZipFileSize / 1024 / 1204)); - break; - } - } - if (!p.FilePathList.Any() && !p.FolderPathList.Any() && Directory.Exists(p.RootPath)) - { - //in case there are no selected files and folders - scan the whi - Logger.Create().Info("Zip Root Path: " + p.RootPath); - if (!WriteDirectoryToZip(oZip, p.RootPath.TrimEnd('\\'), sExcludeFile, sExcludePath, maxAllowedZipFileSize, commonPathLength)) - { - error = string.Format("allowable archive size {0}mb exceeded", Convert.ToInt32(maxAllowedZipFileSize / 1024 / 1204)); - break; - } - - } - } - } - - oZip.Flush(); - oZip.Close(); - compressed = outputStream.ToArray(); - } - } - } - catch (Exception err) - { - Common.Logger.Create().Error(err.ToString()); - error = err.Message; - } - - return compressed; - } - - private static int GetCommonPathLength(List Files) - { - string LongestDir = string.Empty; - try - { - var MatchingChars = - from len in Enumerable.Range(0, Files.Min(s => s.Length)).Reverse() - let possibleMatch = Files.First().Substring(0, len) - where Files.All(f => f.StartsWith(possibleMatch)) - select possibleMatch; - - LongestDir = Path.GetDirectoryName(MatchingChars.First()); - } - catch (Exception err) - { - Common.Logger.Create().Error("Failed to get project common path. error: " + err.Message); - LongestDir = string.Empty; - } - return LongestDir == string.Empty ? 0 : LongestDir.Length + 1;// +1 remove '\' - } - - - /// - /// Zip a folder of files in a new zip file - /// - public static bool WriteDirectoryToZip(ZipOutputStream zipStream, string inputFolderPath, string sExcludeFile, string sExcludePath, long maxAllowedZipFileSize, int trimLength) - - { - Regex fileMatch = new Regex(sExcludeFile, RegexOptions.IgnoreCase); - Regex dirMatch = new Regex(sExcludePath, RegexOptions.IgnoreCase); - - List filesToZip = GenerateFileList(inputFolderPath, fileMatch, dirMatch); - - int entryCounter = 0; - - foreach (string file in filesToZip) - { - WriteEntryToZip(zipStream, file.Remove(0, trimLength), file); - - entryCounter++; - - // Flush every 20 entries - if (entryCounter % 20 == 0) - { - zipStream.Flush(); - } - - if (zipStream.Position >= maxAllowedZipFileSize) - { - return false; - } - } - - zipStream.Flush(); - - return true; - } - - /// - /// Writes a single entry (file or folder) to an open zip file - /// - /// The open zip file stream - /// The entry name to be created - /// The file path of the file to be written - /// Open mode (share/non share) - private static void WriteEntryToZip(ZipOutputStream zipStream, string entryName, string file) - { - ZipEntry zipEntry = zipStream.PutNextEntry(entryName); - - if (!file.EndsWith(@"/")) // if a file ends with '/' its a directory - { - using (FileStream ostream = File.OpenRead(file)) - { - if (ostream.Length > 0) - { - // Init the buffer - byte[] obuffer = new byte[ostream.Length]; - - // Read all file to buffer and write to zip stream - ostream.Read(obuffer, 0, obuffer.Length); - zipStream.Write(obuffer, 0, obuffer.Length); - } - } - } - } - - - private static List GenerateFileList(string Dir, Regex fileMatch, Regex dirMatch) - { - List items = new List(); - bool empty = true; - foreach (string file in Directory.GetFiles(Dir)) - { - if (fileMatch.IsMatch(file)) - { - items.Add(file); - } - - empty = false; - } - - if (empty) - { - if (Directory.GetDirectories(Dir).Length == 0) - { - items.Add(Dir + @"/"); - } - } - - foreach (string dirs in Directory.GetDirectories(Dir)) - { - if (dirMatch.IsMatch(Path.GetFileName(dirs))) - { - foreach (string item in GenerateFileList(dirs, fileMatch, dirMatch)) - { - items.Add(item); - } - } - } - return items; - } - } -} - +using System; +using System.Collections.Generic; +using System.Text; +using System.IO; +using System.Linq; +using System.Text.RegularExpressions; +using CxViewerAction.Entities; +using Common; +using Ionic.Zip; + +namespace CxViewerAction.Helpers +{ + /// + /// Creates ZIP archives + /// + public class ZipHelper + { + /// + /// Regular expression to make selection include file range + /// + private const string _fileFilter = "^((?!((exe$)|(dll$)|(pdb$))).)*$"; + + /// + /// Regular expression to make selection include directory range + /// + private const string _directoryFilter = "^((?!((bin)|(obj)|(.svn))).)*$"; + + /// + /// Compress string with Zip technology. If in process of zip generation the archive size + /// exceed maxAllowedZipFileSize value operation canceled. + /// + /// List of projects to zip + /// List of file extensions to exclude from zip + /// List of folders to exclude from zip + /// Max allowed zip file size + /// If maxAllowedZipFileSize value exceed function return null otherwise zip byte stream + public static byte[] Compress(Project project, string[] fileExtToExclude, string[] foldersToExclude, long maxAllowedZipFileSize, out string error) + { + byte[] data; + + Project[] projectList = project.ProjectPaths.Count == 0 ? new Project[] { project } : project.ProjectPaths.ToArray(); + + + + + + data = Compress(projectList, GetFileExcludeRegex(fileExtToExclude), GetFolderToExcludeRegex(foldersToExclude), + project.ProjectPaths.Count > 0, maxAllowedZipFileSize, out error); + Logger.Create().Info("Checking for zip generation the archive size exceed max allowed zip file size value."); + if (data != null && data.Length < maxAllowedZipFileSize) + { + Logger.Create().Info("Zip generation the archive size not exceeded max allowed zip file size value."); + return data; + } + Logger.Create().Info("Zip generation the archive size exceeded max allowed zip file size value so operation cancelled."); + return null; + + } + + + private static string GetFileExcludeRegex(string[] filesExtToExclude) + { + Logger.Create().Info("Excluding file extensions from zip operation."); + if (filesExtToExclude.Length == 0) + return null; + + StringBuilder part = new StringBuilder(); + + foreach (string ext in filesExtToExclude) + { + part.AppendFormat("({0}$)|", ext.Trim()); + } + part = part.Remove(part.Length - 1, 1); + part = part.Replace("*", ".*"); + + Logger.Create().Info("Excluded file extensions from zip operation are : " + part); + return string.Format("^((?!({0})).)*$", part); + } + + private static string GetFolderToExcludeRegex(string[] foldersToExclude) + { + Logger.Create().Info("Excluding folders from zip operation."); + if (foldersToExclude.Length == 0) + return null; + + StringBuilder part = new StringBuilder(); + + foreach (string ext in foldersToExclude) + part.AppendFormat("({0})|", ext.Trim()); + + part = part.Remove(part.Length - 1, 1); + part = part.Replace("*", ".*"); + + Logger.Create().Debug("Excluded folders are : " + part); + return string.Format("^((?!({0})).)*$", part); + } + + private static byte[] Compress(Project[] projects, string sExcludeFile, string sExcludePath, bool createRootDir, long maxAllowedZipFileSize, out string error) + { + error = string.Empty; + byte[] compressed = null; + + try + { + using (MemoryStream outputStream = new MemoryStream()) + { + using (ZipOutputStream oZip = new ZipOutputStream(outputStream)) + { + //Compress Level + oZip.CompressionLevel = Ionic.Zlib.CompressionLevel.Level9; + //fix for update zip32 to zip64 + oZip.EnableZip64 = Zip64Option.Always; + int commonPathLength = 0; + + if (projects.Count() > 1) + { + commonPathLength = GetCommonPathLength(projects.Select(l => l.RootPath).ToList()); + } + else if (Directory.GetParent(projects[0].RootPath) != null) + { + + commonPathLength = Directory.GetParent(projects[0].RootPath).FullName.Length + 1; // +1 remove '\' + } + + Regex dirMatch = new Regex(sExcludePath, RegexOptions.IgnoreCase); + Logger.Create().Info("Compress():looping through projects to compress."); + + + foreach (Project p in projects) + { + + int subProjects = projects.Where(p2 => p.RootPath.Contains(p2.RootPath)).Count(); + + if (subProjects >= 1 && dirMatch.IsMatch(Path.GetFileName(p.RootPath))) //If the project is not a subProject and not excluded + { + foreach (string filePath in p.FilePathList) // scan only the file selected + { + if (Directory.Exists(p.RootPath) && !oZip.ContainsEntry(filePath)) + { + Logger.Create().Debug("Zip file: " + p.FilePathList); + WriteEntryToZip(oZip, Path.GetFileName(filePath), filePath); + } + } + + + foreach (string folderPath in p.FolderPathList) // scan only the Folder selected + { + Logger.Create().Info("Zip Folder: " + p.FolderPathList); + if (!WriteDirectoryToZip(oZip, folderPath.TrimEnd('\\'), sExcludeFile, sExcludePath, maxAllowedZipFileSize, commonPathLength)) + { + error = string.Format("allowable archive size {0}mb exceeded", Convert.ToInt32(maxAllowedZipFileSize / 1024 / 1204)); + break; + } + } + if (!p.FilePathList.Any() && !p.FolderPathList.Any() && Directory.Exists(p.RootPath)) + { + //in case there are no selected files and folders - scan the whi + Logger.Create().Debug("Zip Root Path: " + p.RootPath); + if (!WriteDirectoryToZip(oZip, p.RootPath.TrimEnd('\\'), sExcludeFile, sExcludePath, maxAllowedZipFileSize, commonPathLength)) + { + error = string.Format("allowable archive size {0}mb exceeded", Convert.ToInt32(maxAllowedZipFileSize / 1024 / 1204)); + break; + } + + } + } + } + + oZip.Flush(); + oZip.Close(); + compressed = outputStream.ToArray(); + } + } + } + catch (Exception err) + { + Common.Logger.Create().Error(err.ToString()); + error = err.Message; + } + + return compressed; + } + + private static int GetCommonPathLength(List Files) + { + string LongestDir = string.Empty; + try + { + var MatchingChars = + from len in Enumerable.Range(0, Files.Min(s => s.Length)).Reverse() + let possibleMatch = Files.First().Substring(0, len) + where Files.All(f => f.StartsWith(possibleMatch)) + select possibleMatch; + + LongestDir = Path.GetDirectoryName(MatchingChars.First()); + } + catch (Exception err) + { + Common.Logger.Create().Error("Failed to get project common path. error: " + err.Message); + LongestDir = string.Empty; + } + return LongestDir == string.Empty ? 0 : LongestDir.Length + 1;// +1 remove '\' + } + + + /// + /// Zip a folder of files in a new zip file + /// + public static bool WriteDirectoryToZip(ZipOutputStream zipStream, string inputFolderPath, string sExcludeFile, string sExcludePath, long maxAllowedZipFileSize, int trimLength) + + { + Logger.Create().Info("For compression looping through directories."); + Regex fileMatch = new Regex(sExcludeFile, RegexOptions.IgnoreCase); + Regex dirMatch = new Regex(sExcludePath, RegexOptions.IgnoreCase); + + List filesToZip = GenerateFileList(inputFolderPath, fileMatch, dirMatch); + + int entryCounter = 0; + + Logger.Create().Info("Looping through directory files."); + Logger.Create().Info("Read all file to buffer and write to zip stream."); + + foreach (string file in filesToZip) + { + bool isEntryExists = zipStream.ContainsEntry(file.Remove(0, trimLength)); // checking is entry already exists in zipoutputsteam or not + if (!isEntryExists) + { + WriteEntryToZip(zipStream, file.Remove(0, trimLength), file); + entryCounter++; + } + + // Flush every 20 entries + if (entryCounter % 20 == 0) + { + zipStream.Flush(); + } + + if (zipStream.Position >= maxAllowedZipFileSize) + { + return false; + } + } + + zipStream.Flush(); + + return true; + } + + /// + /// Writes a single entry (file or folder) to an open zip file + /// + /// The open zip file stream + /// The entry name to be created + /// The file path of the file to be written + /// Open mode (share/non share) + private static void WriteEntryToZip(ZipOutputStream zipStream, string entryName, string file) + { + Logger.Create().Debug("Zipping individual file of directory:" + file + "."); + ZipEntry zipEntry = zipStream.PutNextEntry(entryName); + + if (!file.EndsWith(@"/")) // if a file ends with '/' its a directory + { + using (FileStream ostream = File.OpenRead(file)) + { + if (ostream.Length > 0) + { + // Init the buffer + byte[] obuffer = new byte[ostream.Length]; + + // Read all file to buffer and write to zip stream + ostream.Read(obuffer, 0, obuffer.Length); + zipStream.Write(obuffer, 0, obuffer.Length); + } + } + } + } + + + private static List GenerateFileList(string Dir, Regex fileMatch, Regex dirMatch) + { + List items = new List(); + bool empty = true; + Logger.Create().Debug("Extracting files from directories and adding in it items list."); + foreach (string file in Directory.GetFiles(Dir)) + { + if (fileMatch.IsMatch(file)) + { + Logger.Create().Debug("Extracted " + file + "from directory " + Dir + " and adding it in items list."); + items.Add(file); + } + + empty = false; + } + + if (empty) + { + if (Directory.GetDirectories(Dir).Length == 0) + { + items.Add(Dir + @"/"); + } + } + + Logger.Create().Debug("Extracting sub directories from directories and adding it in items list."); + + foreach (string dirs in Directory.GetDirectories(Dir)) + { + if (dirMatch.IsMatch(Path.GetFileName(dirs))) + { + Logger.Create().Debug("Extracted " + dirs + "sub directory from directory " + Dir + " and adding it in items list."); + foreach (string item in GenerateFileList(dirs, fileMatch, dirMatch)) + { + items.Add(item); + } + } + } + return items; + } + } +} + diff --git a/CxViewerAction/MenuLogic/ActionStatus.cs b/CxActionShared/MenuLogic/ActionStatus.cs similarity index 93% rename from CxViewerAction/MenuLogic/ActionStatus.cs rename to CxActionShared/MenuLogic/ActionStatus.cs index e35d000a..f098ba2f 100644 --- a/CxViewerAction/MenuLogic/ActionStatus.cs +++ b/CxActionShared/MenuLogic/ActionStatus.cs @@ -1,13 +1,13 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; - -namespace CxViewerAction.MenuLogic -{ - public enum ActionStatus - { - Success, - Failed - } -} +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace CxViewerAction.MenuLogic +{ + public enum ActionStatus + { + Success, + Failed + } +} diff --git a/CxViewerAction/MenuLogic/BindProjectLogic.cs b/CxActionShared/MenuLogic/BindProjectLogic.cs similarity index 65% rename from CxViewerAction/MenuLogic/BindProjectLogic.cs rename to CxActionShared/MenuLogic/BindProjectLogic.cs index 4560e689..ec9310d4 100644 --- a/CxViewerAction/MenuLogic/BindProjectLogic.cs +++ b/CxActionShared/MenuLogic/BindProjectLogic.cs @@ -1,127 +1,172 @@ -using System; -using EnvDTE; -using CxViewerAction.Helpers; -using CxViewerAction.Entities; -using Common; -using EnvDTE80; -using Microsoft.VisualStudio.Shell; - -namespace CxViewerAction.MenuLogic -{ - public class BindProjectLogic : IMenuLogic - { - private bool _isBinded = false; - public bool IsBinded - { - get { return _isBinded; } - } - - public ActionStatus Act() - { - if (!_isBinded) - { - //bind - if (PerspectiveHelper.LoginToServer() == null) - { - return ActionStatus.Failed; - } - Entities.Project project = CommonActionsInstance.getInstance().GetSelectedProject(); - CommonData.ProjectName = project.ProjectName; - CommonData.ProjectRootPath = project.RootPath; - if (!setBindProject(true)) - { - return ActionStatus.Failed; - } - CommonData.IsProjectBound = true; - DoRetrieveResults(project); - CommonData.IsWorkingOffline = false; - return ActionStatus.Success; - } - else - { - //unbind - if (!setBindProject(false)) - { - return ActionStatus.Failed; - } - CommonData.IsProjectBound = false; - CommonData.IsWorkingOffline = false; - return ActionStatus.Success; - } - } - - private bool setBindProject(bool isBound) - { - LoginData login = LoginHelper.LoadSaved(); - Entities.Project selectedProject = CommonActionsInstance.getInstance().GetSelectedProject(); - if (selectedProject == null) - { - return false; - } - foreach (LoginData.BindProject project in login.BindedProjects) - { - if (selectedProject.RootPath == project.RootPath && selectedProject.ProjectName == project.ProjectName) - { - project.IsBound = isBound; - } - } - LoginHelper.Save(login); - return true; - } - - void DoRetrieveResults(Entities.Project project) - { - try - { - - // First call save all command to save project changes - CommonActionsInstance.getInstance().ExecuteSystemCommand("File.SaveAll", string.Empty); - - // verify that was selected correct project - System.Threading.ThreadPool.QueueUserWorkItem(delegate (object state) - { - try - { - Helpers.BindProjectHelper.BindProject(project); - } - catch (Exception ex) - { - Logger.Create().Error(ex.ToString()); - } - }); - } - catch (Exception ex) - { - Logger.Create().Error(ex.ToString()); - } - } - - public CommandStatus GetStatus() - { - CommandStatus status = CommandStatus.CommandStatusNull; - _isBinded = false; - status = (CommandStatus)CommandStatus.CommandStatusSupported | - CommandStatus.CommandStatusEnabled; - LoginData login = LoginHelper.LoadSaved(); - Entities.Project selectedProject = CommonActionsInstance.getInstance().GetSelectedProject(); - if (selectedProject == null) - { - return CommandStatus.CommandStatusNull; - } - if (login != null && login.BindedProjects != null) - { - LoginData.BindProject bindPro = login.BindedProjects.Find(project => project.ProjectName == selectedProject.ProjectName && - project.RootPath == selectedProject.RootPath && - project.IsBound == true); - - if (bindPro != null) - { - _isBinded = true; - status = (CommandStatus)CommandStatus.CommandStatusUnsupported; - //bind is unsupported -> unbind is supported - } - } - return status; - } - } -} +using System; +using EnvDTE; +using CxViewerAction.Helpers; +using CxViewerAction.Entities; +using Common; +using EnvDTE80; +using Microsoft.VisualStudio.Shell; + +namespace CxViewerAction.MenuLogic +{ + public class BindProjectLogic : IMenuLogic + { + private bool _isBinded = false; + public bool IsBinded + { + get { return _isBinded; } + } + + public ActionStatus Act() + { + if (!_isBinded) + { + Logger.Create().Debug("Project has not been binded yet."); + //bind + if (PerspectiveHelper.LoginToServer() == null) + { + return ActionStatus.Failed; + } + Entities.Project project = CommonActionsInstance.getInstance().GetSelectedProject(); + CommonData.ProjectName = project.ProjectName; + CommonData.ProjectRootPath = project.RootPath; + DoRetrieveResults(project); + if (CommonData.IsProjectBound) + { + if (!setBindProject(true)) + { + return ActionStatus.Failed; + } + } + CommonData.IsWorkingOffline = false; + return ActionStatus.Success; + } + else + { + //unbind + if (!setBindProject(false)) + { + return ActionStatus.Failed; + } + CommonData.IsProjectBound = false; + CommonData.IsWorkingOffline = false; + return ActionStatus.Success; + } + } + + private bool setBindProject(bool isBound) + { + LoginData login = LoginHelper.LoadSaved(); + Entities.Project selectedProject = CommonActionsInstance.getInstance().GetSelectedProject(); + if (selectedProject == null) + { + return false; + } + foreach (LoginData.BindProject project in login.BindedProjects) + { + if (selectedProject.RootPath == project.RootPath && selectedProject.ProjectName == project.ProjectName) + { + project.IsBound = isBound; + } + } + LoginHelper.Save(login); + return true; + } + + void DoRetrieveResults(Entities.Project project) + { + try + { + + // First call save all command to save project changes + CommonActionsInstance.getInstance().ExecuteSystemCommand("File.SaveAll", string.Empty); + + // verify that was selected correct project + System.Threading.ThreadPool.QueueUserWorkItem(delegate (object state) + { + try + { + Helpers.BindProjectHelper.BindProject(project); + } + catch (Exception ex) + { + Logger.Create().Error(ex.ToString()); + } + }); + } + catch (Exception ex) + { + Logger.Create().Error(ex.ToString()); + } + } + + public void UnBindProject(bool unBindAllData = false) + { + LoginData login = LoginHelper.LoadSaved(); + LoginData.BindProject unBindProject = null; + if (login.BindedProjects != null) + { + if (unBindAllData) + { + login.BindedProjects.Clear(); + CommonData.IsProjectBound = false; + LoginHelper.IsLogged = false; + CommonData.IsWorkingOffline = false; + Logger.Create().Info("Clearing for current solution bound projects."); + } + else + { + Logger.Create().Info("GetSatus():Checking bound projects not empty."); + Entities.Project selectedProject2 = CommonActionsInstance.getInstance().GetSelectedProject(); + foreach (LoginData.BindProject project in login.BindedProjects) + { + Logger.Create().Info("Checking for current solution bound projects."); + if (selectedProject2.RootPath == project.RootPath && selectedProject2.ProjectName == project.ProjectName) + { + unBindProject = project; + } + } + + if (unBindProject != null) + { + login.BindedProjects.Remove(unBindProject); + } + } + LoginHelper.Save(login); + Logger.Create().Info("Saving data in conf file."); + } + } + + public CommandStatus GetStatus() + { + Logger.Create().Info("Bind operation getting status."); + CommandStatus status = CommandStatus.CommandStatusNull; + _isBinded = false; + status = (CommandStatus)CommandStatus.CommandStatusSupported | + CommandStatus.CommandStatusEnabled; + LoginData login = LoginHelper.LoadSaved(); + Logger.Create().Debug("For bind operation saved login data loaded."); + Logger.Create().Info("Bind logic getting selected project."); + Entities.Project selectedProject = CommonActionsInstance.getInstance().GetSelectedProject(); + if (selectedProject == null) + { + Logger.Create().Info("Bind logic getting selected project returned null."); + return CommandStatus.CommandStatusNull; + } + if (login != null && login.BindedProjects != null) + { + LoginData.BindProject bindPro = login.BindedProjects.Find(project => project.ProjectName == selectedProject.ProjectName && + project.RootPath == selectedProject.RootPath && + project.IsBound == true); + + if (bindPro != null) + { + Logger.Create().Debug("BindLogic project is found " + bindPro.ProjectName); + _isBinded = true; + status = (CommandStatus)CommandStatus.CommandStatusUnsupported; + //bind is unsupported -> unbind is supported + } + } + return status; + } + } +} diff --git a/CxViewerAction/MenuLogic/CommandStatus.cs b/CxActionShared/MenuLogic/CommandStatus.cs similarity index 95% rename from CxViewerAction/MenuLogic/CommandStatus.cs rename to CxActionShared/MenuLogic/CommandStatus.cs index 31d2c4c8..0c81f3a4 100644 --- a/CxViewerAction/MenuLogic/CommandStatus.cs +++ b/CxActionShared/MenuLogic/CommandStatus.cs @@ -1,15 +1,15 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; - -namespace CxViewerAction.MenuLogic -{ - public enum CommandStatus - { - CommandStatusUnsupported = 0, - CommandStatusSupported = 1, - CommandStatusEnabled = 2, - CommandStatusNull = 4, - } -} +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace CxViewerAction.MenuLogic +{ + public enum CommandStatus + { + CommandStatusUnsupported = 0, + CommandStatusSupported = 1, + CommandStatusEnabled = 2, + CommandStatusNull = 4, + } +} diff --git a/CxViewerAction/MenuLogic/IMenuLogic.cs b/CxActionShared/MenuLogic/IMenuLogic.cs similarity index 94% rename from CxViewerAction/MenuLogic/IMenuLogic.cs rename to CxActionShared/MenuLogic/IMenuLogic.cs index 31a58fb8..8653d2bf 100644 --- a/CxViewerAction/MenuLogic/IMenuLogic.cs +++ b/CxActionShared/MenuLogic/IMenuLogic.cs @@ -1,10 +1,10 @@ -using EnvDTE; - -namespace CxViewerAction.MenuLogic -{ - public interface IMenuLogic - { - ActionStatus Act(); - CommandStatus GetStatus(); - } -} +using EnvDTE; + +namespace CxViewerAction.MenuLogic +{ + public interface IMenuLogic + { + ActionStatus Act(); + CommandStatus GetStatus(); + } +} diff --git a/CxViewerAction/MenuLogic/IncrementalScanLogic.cs b/CxActionShared/MenuLogic/IncrementalScanLogic.cs similarity index 89% rename from CxViewerAction/MenuLogic/IncrementalScanLogic.cs rename to CxActionShared/MenuLogic/IncrementalScanLogic.cs index ade65e5b..f8eee47c 100644 --- a/CxViewerAction/MenuLogic/IncrementalScanLogic.cs +++ b/CxActionShared/MenuLogic/IncrementalScanLogic.cs @@ -1,50 +1,53 @@ -using CxViewerAction.Entities; -using CxViewerAction.Helpers; -using EnvDTE; - -namespace CxViewerAction.MenuLogic -{ - public class IncrementalScanLogic : IMenuLogic - { - #region Properties - - private readonly ScanLogic _logic; - - #endregion Properties - - public IncrementalScanLogic() - { - _logic = new ScanLogic(); - } - - public ActionStatus Act() - { - _logic.IsIncremental = true; - return _logic.Act(); - } - - public CommandStatus GetStatus() - { - LoginData login = LoginHelper.LoadSaved(); - Entities.Project selectedProject = CommonActionsInstance.getInstance().GetSelectedProject(); - if (selectedProject == null) - { - return CommandStatus.CommandStatusUnsupported; - } - if (login != null && login.BindedProjects != null) - { - LoginData.BindProject bindPro = login.BindedProjects.Find(delegate (LoginData.BindProject bp) - { - return bp.ProjectName == selectedProject.ProjectName && bp.RootPath == selectedProject.RootPath && bp.IsBound == true; - } - ); - if (bindPro != null) - { - return CommandStatus.CommandStatusSupported | - CommandStatus.CommandStatusEnabled; - } - } - return CommandStatus.CommandStatusUnsupported; - } - } -} +using CxViewerAction.Entities; +using CxViewerAction.Helpers; +using EnvDTE; +using Common; + +namespace CxViewerAction.MenuLogic +{ + public class IncrementalScanLogic : IMenuLogic + { + #region Properties + + private readonly ScanLogic _logic; + + #endregion Properties + + public IncrementalScanLogic() + { + _logic = new ScanLogic(); + } + + public ActionStatus Act() + { + _logic.IsIncremental = true; + return _logic.Act(); + } + + public CommandStatus GetStatus() + { + Logger.Create().Info("For incremental scan getting saved login data from conf file."); + LoginData login = LoginHelper.LoadSaved(); + Logger.Create().Info("Getting selected project."); + Entities.Project selectedProject = CommonActionsInstance.getInstance().GetSelectedProject(); + if (selectedProject == null) + { + return CommandStatus.CommandStatusUnsupported; + } + if (login != null && login.BindedProjects != null) + { + LoginData.BindProject bindPro = login.BindedProjects.Find(delegate (LoginData.BindProject bp) + { + return bp.ProjectName == selectedProject.ProjectName && bp.RootPath == selectedProject.RootPath && bp.IsBound == true; + } + ); + if (bindPro != null) + { + return CommandStatus.CommandStatusSupported | + CommandStatus.CommandStatusEnabled; + } + } + return CommandStatus.CommandStatusUnsupported; + } + } +} diff --git a/CxViewerAction/MenuLogic/RetrievedScanResultLogic.cs b/CxActionShared/MenuLogic/RetrievedScanResultLogic.cs similarity index 90% rename from CxViewerAction/MenuLogic/RetrievedScanResultLogic.cs rename to CxActionShared/MenuLogic/RetrievedScanResultLogic.cs index fc4ff8df..94282852 100644 --- a/CxViewerAction/MenuLogic/RetrievedScanResultLogic.cs +++ b/CxActionShared/MenuLogic/RetrievedScanResultLogic.cs @@ -1,114 +1,120 @@ -using EnvDTE; -using CxViewerAction.Entities; -using CxViewerAction.Helpers; -using CxViewerAction.CxVSWebService; -using EnvDTE80; -using Microsoft.VisualStudio.Shell; - -namespace CxViewerAction.MenuLogic -{ - public class RetrievedScanResultLogic : IMenuLogic - { - public ActionStatus Act() - { - if (PerspectiveHelper.LoginToServer() == null) - { - return ActionStatus.Failed; - } - LoginData login = LoginHelper.LoadSaved(); - Entities.Project selectedProject = CommonActionsInstance.getInstance().GetSelectedProject(); - if (selectedProject == null) - { - return ActionStatus.Failed; - } - LoginData.BindProject bindPro = null; - if (login != null && login.BindedProjects != null) - { - bindPro = login.BindedProjects.Find(delegate (LoginData.BindProject bp) - { - return bp.ProjectName == selectedProject.ProjectName && bp.RootPath == selectedProject.RootPath && bp.IsBound == true; - } - ); - - if (bindPro != null) - { - CommonData.ProjectId = bindPro.BindedProjectId; - CommonData.ProjectName = selectedProject.ProjectName; - CommonData.ProjectRootPath = selectedProject.RootPath; - } - else - { - return ActionStatus.Failed; - } - } - - RetrieveResultsFromServer(bindPro, login); - - return ActionStatus.Success; - } - - private void RetrieveResultsFromServer(LoginData.BindProject bindPro, LoginData login) - { - CxWSResponseScansDisplayData cxWSResponseScansDisplayData = PerspectiveHelper.GetScansDisplayData(CommonData.ProjectId); - if (cxWSResponseScansDisplayData == null) - { //error occured - return; - } - if (cxWSResponseScansDisplayData.ScanList.Length == 0) - { - // show error about 0 scan list - System.Windows.Forms.MessageBox.Show("The chosen project doesn't contain scans", "Error", System.Windows.Forms.MessageBoxButtons.OK); - return; - } - bindPro.ScanReports.Clear(); - foreach (ScanDisplayData item in cxWSResponseScansDisplayData.ScanList) - { - - // Add relation to scanned project and scan report - ScanReportInfo scanReportInfo = new ScanReportInfo { Id = item.ScanID }; - string minutes = item.QueuedDateTime.Minute.ToString().Length > 1 ? item.QueuedDateTime.Minute.ToString() : "0" + item.QueuedDateTime.Minute; - - scanReportInfo.Name = string.Format("{0}/{1}/{2} {3}:{4}", item.QueuedDateTime.Month, - item.QueuedDateTime.Day, - item.QueuedDateTime.Year, - item.QueuedDateTime.Hour, - minutes); - - bindPro.AddScanReport(scanReportInfo); - } - LoginHelper.Save(login); - - - ShowResultLogic showResultLogic = new ShowResultLogic(); - - showResultLogic.Act(); - - - return; - } - - public CommandStatus GetStatus() - { - LoginData login = LoginHelper.LoadSaved(); - Entities.Project selectedProject = CommonActionsInstance.getInstance().GetSelectedProject(); - if (selectedProject == null) - { - return CommandStatus.CommandStatusNull; - } - if (login != null && login.BindedProjects != null) - { - LoginData.BindProject bindPro = login.BindedProjects.Find(delegate (LoginData.BindProject bp) - { - return bp.ProjectName == selectedProject.ProjectName && bp.RootPath == selectedProject.RootPath && bp.IsBound == true; - } - ); - if (bindPro != null) - { - return (CommandStatus)CommandStatus.CommandStatusSupported | - CommandStatus.CommandStatusEnabled; - } - } - return (CommandStatus)CommandStatus.CommandStatusSupported; - } - } -} +using EnvDTE; +using CxViewerAction.Entities; +using CxViewerAction.Helpers; +using CxViewerAction.CxVSWebService; +using EnvDTE80; +using Microsoft.VisualStudio.Shell; +using Common; + +namespace CxViewerAction.MenuLogic +{ + public class RetrievedScanResultLogic : IMenuLogic + { + public ActionStatus Act() + { + if (PerspectiveHelper.LoginToServer() == null) + { + return ActionStatus.Failed; + } + Logger.Create().Info("For retrieve results getting saved login data from conf file."); + LoginData login = LoginHelper.LoadSaved(); + Logger.Create().Info("Getting selected project."); + Entities.Project selectedProject = CommonActionsInstance.getInstance().GetSelectedProject(); + Logger.Create().Debug("Found selected project " + selectedProject.ProjectName) ; + if (selectedProject == null) + { + return ActionStatus.Failed; + } + LoginData.BindProject bindPro = null; + if (login != null && login.BindedProjects != null) + { + bindPro = login.BindedProjects.Find(delegate (LoginData.BindProject bp) + { + return bp.ProjectName == selectedProject.ProjectName && bp.RootPath == selectedProject.RootPath && bp.IsBound == true; + } + ); + + if (bindPro != null) + { + CommonData.ProjectId = bindPro.BindedProjectId; + CommonData.ProjectName = selectedProject.ProjectName; + CommonData.ProjectRootPath = selectedProject.RootPath; + } + else + { + return ActionStatus.Failed; + } + } + + RetrieveResultsFromServer(bindPro, login); + + return ActionStatus.Success; + } + + private void RetrieveResultsFromServer(LoginData.BindProject bindPro, LoginData login) + { + Logger.Create().Info("Retrieving results from server."); + CxWSResponseScansDisplayData cxWSResponseScansDisplayData = PerspectiveHelper.GetScansDisplayData(CommonData.ProjectId); + if (cxWSResponseScansDisplayData == null) + { //error occured + return; + } + if (cxWSResponseScansDisplayData.ScanList.Length == 0) + { + // show error about 0 scan list + System.Windows.Forms.MessageBox.Show("The chosen project doesn't contain scans", "Error", System.Windows.Forms.MessageBoxButtons.OK); + return; + } + bindPro.ScanReports.Clear(); + Logger.Create().Debug("Received scan results data. Size=" + cxWSResponseScansDisplayData.ScanList.Length); + foreach (ScanDisplayData item in cxWSResponseScansDisplayData.ScanList) + { + + // Add relation to scanned project and scan report + ScanReportInfo scanReportInfo = new ScanReportInfo { Id = item.ScanID }; + string minutes = item.QueuedDateTime.Minute.ToString().Length > 1 ? item.QueuedDateTime.Minute.ToString() : "0" + item.QueuedDateTime.Minute; + + scanReportInfo.Name = string.Format("{0}/{1}/{2} {3}:{4}", item.QueuedDateTime.Month, + item.QueuedDateTime.Day, + item.QueuedDateTime.Year, + item.QueuedDateTime.Hour, + minutes); + + bindPro.AddScanReport(scanReportInfo); + } + LoginHelper.Save(login); + + + ShowResultLogic showResultLogic = new ShowResultLogic(); + + showResultLogic.Act(); + + + return; + } + + public CommandStatus GetStatus() + { + LoginData login = LoginHelper.LoadSaved(); + Entities.Project selectedProject = CommonActionsInstance.getInstance().GetSelectedProject(); + if (selectedProject == null) + { + return CommandStatus.CommandStatusNull; + } + if (login != null && login.BindedProjects != null) + { + LoginData.BindProject bindPro = login.BindedProjects.Find(delegate (LoginData.BindProject bp) + { + return bp.ProjectName == selectedProject.ProjectName && bp.RootPath == selectedProject.RootPath && bp.IsBound == true; + } + ); + if (bindPro != null) + { + return (CommandStatus)CommandStatus.CommandStatusSupported | + CommandStatus.CommandStatusEnabled; + } + } + return (CommandStatus)CommandStatus.CommandStatusSupported; + } + } +} diff --git a/CxViewerAction/MenuLogic/ScanLogic.cs b/CxActionShared/MenuLogic/ScanLogic.cs similarity index 85% rename from CxViewerAction/MenuLogic/ScanLogic.cs rename to CxActionShared/MenuLogic/ScanLogic.cs index 108de37b..4f5aab4d 100644 --- a/CxViewerAction/MenuLogic/ScanLogic.cs +++ b/CxActionShared/MenuLogic/ScanLogic.cs @@ -1,128 +1,142 @@ -using Common; -using CxViewerAction.Entities; -using CxViewerAction.Entities.Enum; -using CxViewerAction.Helpers; -using CxViewerAction.Views; -using CxViewerAction.Views.DockedView; -using EnvDTE; -using EnvDTE80; -using System; -using Microsoft.VisualStudio.Shell; - -namespace CxViewerAction.MenuLogic -{ - public class ScanLogic : IMenuLogic - { - #region Properties - - public bool IsIncremental { get; set; } - - IScanHelper _scanHelper; - - #endregion Properties - - public ScanLogic() - { - _scanHelper = new ScanHelper(new ConfigurationHelper()); - } - - public ActionStatus Act() - { - if (PerspectiveHelper.LoginToServer() == null) - { - return ActionStatus.Failed; - } - LoginData login = LoginHelper.LoadSaved(); - Entities.Project selectedProject = CommonActionsInstance.getInstance().GetSelectedProject(); - if (selectedProject == null) - { - return ActionStatus.Failed; - } - CommonData.ProjectName = selectedProject.ProjectName; - CommonData.ProjectRootPath = selectedProject.RootPath; - if (login != null && login.BindedProjects != null) - { - LoginData.BindProject bindPro = login.BindedProjects.Find(delegate (LoginData.BindProject bp) - { - return bp.ProjectName == selectedProject.ProjectName && bp.RootPath == selectedProject.RootPath; - } - ); - - if (bindPro != null) - { - CommonData.ProjectId = bindPro.BindedProjectId; - CommonData.SelectedScanId = bindPro.SelectedScanId; - CommonData.IsProjectBound = bindPro.IsBound; - CommonData.IsProjectPublic = bindPro.IsPublic; - } - } - CommonActionsInstance.getInstance().BuildFileMapping(); - CommonActionsInstance.getInstance().ExecuteSystemCommand("File.SaveAll", string.Empty); - DoScan(selectedProject); - CommonData.IsWorkingOffline = false; - return ActionStatus.Success; - } - - private void DoScan(Entities.Project project) - { - try - { - if (!LoginHelper.IsScanner) - { - TopMostMessageBox.Show("User is not allowed to scan", "Error"); - return; - } - - // verify that was selected correct project - if (!string.IsNullOrEmpty(project.RootPath)) - { - System.Threading.ThreadPool.QueueUserWorkItem(delegate (object state) - { - try - { - CxViewerAction.CxVSWebService.CxWSQueryVulnerabilityData[] scanData = null; - long scanId = 0; - - ProjectScanStatuses status = _scanHelper.DoScan(project, IsIncremental, ref scanData, ref scanId); - - if (status == ProjectScanStatuses.Success) - { - LoginData login = LoginHelper.LoadSaved(); - PerspectiveHelper.ShowStored(scanData, login, scanId); - CommonActionsInstance.getInstance().ShowReportView(); - } - - CommonActionsInstance.getInstance().ClearScanProgressView(); - CommonActionsInstance.getInstance().CloseScanProgressView(); - } - catch (Exception err) - { - Logger.Create().Error(err); - LoginHelper.DoLogout(); - } - }); - } - } - catch (Exception ex) - { - TopMostMessageBox.Show(ex.Message, "Error"); - Logger.Create().Error(ex.ToString()); - } - } - - public CommandStatus GetStatus() - { - CommandStatus status; - if (LoginHelper.IsScanner) - { - status = (CommandStatus)CommandStatus.CommandStatusSupported | - CommandStatus.CommandStatusEnabled; - } - else - { - status = (CommandStatus)CommandStatus.CommandStatusSupported; - } - return status; - } - } -} +using Common; +using CxViewerAction.Entities; +using CxViewerAction.Entities.Enum; +using CxViewerAction.Helpers; +using CxViewerAction.Views; +using CxViewerAction.Views.DockedView; +using EnvDTE; +using EnvDTE80; +using System; +using Microsoft.VisualStudio.Shell; + +namespace CxViewerAction.MenuLogic +{ + public class ScanLogic : IMenuLogic + { + #region Properties + + public bool IsIncremental { get; set; } + + IScanHelper _scanHelper; + + #endregion Properties + + public ScanLogic() + { + _scanHelper = new ScanHelper(new ConfigurationHelper()); + } + + public ActionStatus Act() + { + Logger.Create().Info("Scan logic Act()."); + if (PerspectiveHelper.LoginToServer() == null) + { + Logger.Create().Info("LoginToServer() returned null."); + return ActionStatus.Failed; + } + Logger.Create().Info("LoginToServer() return success."); + LoginData login = LoginHelper.LoadSaved(); + Logger.Create().Debug("Load Saved " + login.ToString()); + Entities.Project selectedProject = CommonActionsInstance.getInstance().GetSelectedProject(); + if (selectedProject == null) + { + Logger.Create().Info("Selected project is null."); + return ActionStatus.Failed; + } + Logger.Create().Debug("Selected project is not null" + selectedProject.ProjectName); + CommonData.ProjectName = selectedProject.ProjectName; + CommonData.ProjectRootPath = selectedProject.RootPath; + if (login != null && login.BindedProjects != null) + { + LoginData.BindProject bindPro = login.BindedProjects.Find(delegate (LoginData.BindProject bp) + { + return bp.ProjectName == selectedProject.ProjectName && bp.RootPath == selectedProject.RootPath; + } + ); + + if (bindPro != null) + { + CommonData.ProjectId = bindPro.BindedProjectId; + CommonData.SelectedScanId = bindPro.SelectedScanId; + CommonData.IsProjectBound = bindPro.IsBound; + CommonData.IsProjectPublic = bindPro.IsPublic; + } + else + { + CommonData.IsProjectBound = false; + } + } + Logger.Create().Info("Calling BuildFileMapping()."); + CommonActionsInstance.getInstance().BuildFileMapping(); + Logger.Create().Info("Calling File.SaveAll."); + CommonActionsInstance.getInstance().ExecuteSystemCommand("File.SaveAll", string.Empty); + Logger.Create().Info("Initiating scan...."); + DoScan(selectedProject); + CommonData.IsWorkingOffline = false; + return ActionStatus.Success; + } + + private void DoScan(Entities.Project project) + { + try + { + if (!LoginHelper.IsScanner) + { + TopMostMessageBox.Show("User is not allowed to scan", "Error"); + return; + } + + // verify that was selected correct project + if (!string.IsNullOrEmpty(project.RootPath)) + { + System.Threading.ThreadPool.QueueUserWorkItem(delegate (object state) + { + try + { + CxViewerAction.CxVSWebService.CxWSQueryVulnerabilityData[] scanData = null; + long scanId = 0; + + ProjectScanStatuses status = _scanHelper.DoScan(project, IsIncremental, ref scanData, ref scanId); + + if (status == ProjectScanStatuses.Success) + { + Logger.Create().Info("Scan completed successfully."); + LoginData login = LoginHelper.LoadSaved(); + PerspectiveHelper.ShowStored(scanData, login, scanId); + CommonActionsInstance.getInstance().ShowReportView(); + } + + CommonActionsInstance.getInstance().ClearScanProgressView(); + CommonActionsInstance.getInstance().CloseScanProgressView(); + } + catch (Exception err) + { + Logger.Create().Error(err); + LoginHelper.DoLogout(); + } + }); + } + } + catch (Exception ex) + { + TopMostMessageBox.Show(ex.Message, "Error"); + Logger.Create().Error(ex.ToString()); + } + } + + public CommandStatus GetStatus() + { + CommandStatus status; + if (LoginHelper.IsScanner) + { + status = (CommandStatus)CommandStatus.CommandStatusSupported | + CommandStatus.CommandStatusEnabled; + } + else + { + status = (CommandStatus)CommandStatus.CommandStatusSupported; + } + return status; + } + } +} diff --git a/CxViewerAction/MenuLogic/ShowResultLogic.cs b/CxActionShared/MenuLogic/ShowResultLogic.cs similarity index 96% rename from CxViewerAction/MenuLogic/ShowResultLogic.cs rename to CxActionShared/MenuLogic/ShowResultLogic.cs index ced0d9a0..073fbff5 100644 --- a/CxViewerAction/MenuLogic/ShowResultLogic.cs +++ b/CxActionShared/MenuLogic/ShowResultLogic.cs @@ -1,52 +1,52 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using EnvDTE; -using CxViewerAction.Views.DockedView; -using CxViewerAction.Helpers; -using Common; -using Microsoft.VisualStudio.Shell; - -namespace CxViewerAction.MenuLogic -{ - public class ShowResultLogic : IMenuLogic - { - - public ActionStatus Act() - { - CommonActionsInstance.getInstance().BuildFileMapping(); - DoPrevResult(); - CommonData.IsWorkingOffline = false; - return ActionStatus.Success; - } - - /// - /// Show previous scanned result for selected project - /// - private void DoPrevResult() - { - - System.Threading.ThreadPool.QueueUserWorkItem(delegate (object state) - { - try - { - - CommonActionsInstance.getInstance().ReportDoPrevResults(); - CommonActionsInstance.getInstance().ShowReportView(); - } - catch (Exception ex) - { - Logger.Create().Error(ex.ToString()); - } - - }); - } - - public CommandStatus GetStatus() - { - return (CommandStatus)CommandStatus.CommandStatusSupported | - CommandStatus.CommandStatusEnabled; - } - } -} +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using EnvDTE; +using CxViewerAction.Views.DockedView; +using CxViewerAction.Helpers; +using Common; +using Microsoft.VisualStudio.Shell; + +namespace CxViewerAction.MenuLogic +{ + public class ShowResultLogic : IMenuLogic + { + + public ActionStatus Act() + { + CommonActionsInstance.getInstance().BuildFileMapping(); + DoPrevResult(); + CommonData.IsWorkingOffline = false; + return ActionStatus.Success; + } + + /// + /// Show previous scanned result for selected project + /// + private void DoPrevResult() + { + + System.Threading.ThreadPool.QueueUserWorkItem(delegate (object state) + { + try + { + + CommonActionsInstance.getInstance().ReportDoPrevResults(); + CommonActionsInstance.getInstance().ShowReportView(); + } + catch (Exception ex) + { + Logger.Create().Error(ex.ToString()); + } + + }); + } + + public CommandStatus GetStatus() + { + return (CommandStatus)CommandStatus.CommandStatusSupported | + CommandStatus.CommandStatusEnabled; + } + } +} diff --git a/CxViewerAction/MenuLogic/ShowSavedScanResultLogic.cs b/CxActionShared/MenuLogic/ShowSavedScanResultLogic.cs similarity index 95% rename from CxViewerAction/MenuLogic/ShowSavedScanResultLogic.cs rename to CxActionShared/MenuLogic/ShowSavedScanResultLogic.cs index 3863a3b6..72e182f8 100644 --- a/CxViewerAction/MenuLogic/ShowSavedScanResultLogic.cs +++ b/CxActionShared/MenuLogic/ShowSavedScanResultLogic.cs @@ -1,98 +1,101 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using EnvDTE; -using CxViewerAction.Entities; -using CxViewerAction.Helpers; -using CxViewerAction.Views; -using CxViewerAction.Views.DockedView; -using EnvDTE80; -using Microsoft.VisualStudio.Shell; - -namespace CxViewerAction.MenuLogic -{ - public class ShowSavedScanResultLogic : IMenuLogic - { - #region Properties - - #endregion Properties - - public ActionStatus Act() - { - LoginData login = LoginHelper.LoadSaved(); - Entities.Project selectedProject = CommonActionsInstance.getInstance().GetSelectedProject(); - if (selectedProject == null) - { - return ActionStatus.Failed; - } - if (login != null && login.BindedProjects != null) - { - LoginData.BindProject bindPro = login.BindedProjects.Find(delegate (LoginData.BindProject bp) - { - return bp.ProjectName == selectedProject.ProjectName && bp.RootPath == selectedProject.RootPath; - } - ); - - if (bindPro != null) - { - CommonData.ProjectId = bindPro.BindedProjectId; - CommonData.SelectedScanId = bindPro.SelectedScanId; - } - } - CommonActionsInstance.getInstance().BuildFileMapping(); - ShowSavedResults(); - CommonData.IsWorkingOffline = true; - return ActionStatus.Success; - } - - private void ShowSavedResults() - { - LoginData login = LoginHelper.LoadSaved(); - - CxViewerAction.CxVSWebService.CxWSQueryVulnerabilityData[] scanData = null; - long scanId = 0; - - scanId = CommonData.SelectedScanId; - if (scanId == 0) - { - TopMostMessageBox.Show("No Stored Results Found", "Information"); - return; - } - scanData = SavedResultsManager.Instance.LoadStoredScanData(scanId); - - if (scanData.Length > 0) - { - PerspectiveHelper.ShowStored(scanData, login, scanId); - CommonActionsInstance.getInstance().ShowReportView(); - } - else - { - TopMostMessageBox.Show("No Stored Results Found", "Information"); - } - } - - public CommandStatus GetStatus() - { - LoginData login = LoginHelper.LoadSaved(); - Entities.Project selectedProject = CommonActionsInstance.getInstance().GetSelectedProject(); - if (selectedProject == null) - { - return CommandStatus.CommandStatusNull; - } - if (login != null && login.BindedProjects != null) - { - LoginData.BindProject bindPro = login.BindedProjects.Find(delegate (LoginData.BindProject bp) - { - return bp.ProjectName == selectedProject.ProjectName && bp.RootPath == selectedProject.RootPath; - }); - if (bindPro != null) - { - return (CommandStatus)CommandStatus.CommandStatusSupported | - CommandStatus.CommandStatusEnabled; - } - } - return (CommandStatus)CommandStatus.CommandStatusSupported; - } - } -} +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using EnvDTE; +using CxViewerAction.Entities; +using CxViewerAction.Helpers; +using CxViewerAction.Views; +using CxViewerAction.Views.DockedView; +using EnvDTE80; +using Microsoft.VisualStudio.Shell; +using Common; + +namespace CxViewerAction.MenuLogic +{ + public class ShowSavedScanResultLogic : IMenuLogic + { + #region Properties + + #endregion Properties + + public ActionStatus Act() + { + LoginData login = LoginHelper.LoadSaved(); + Entities.Project selectedProject = CommonActionsInstance.getInstance().GetSelectedProject(); + if (selectedProject == null) + { + return ActionStatus.Failed; + } + if (login != null && login.BindedProjects != null) + { + LoginData.BindProject bindPro = login.BindedProjects.Find(delegate (LoginData.BindProject bp) + { + return bp.ProjectName == selectedProject.ProjectName && bp.RootPath == selectedProject.RootPath; + } + ); + + if (bindPro != null) + { + CommonData.ProjectId = bindPro.BindedProjectId; + CommonData.SelectedScanId = bindPro.SelectedScanId; + } + } + CommonActionsInstance.getInstance().BuildFileMapping(); + ShowSavedResults(); + CommonData.IsWorkingOffline = true; + return ActionStatus.Success; + } + + private void ShowSavedResults() + { + LoginData login = LoginHelper.LoadSaved(); + + CxViewerAction.CxVSWebService.CxWSQueryVulnerabilityData[] scanData = null; + long scanId = 0; + + scanId = CommonData.SelectedScanId; + if (scanId == 0) + { + TopMostMessageBox.Show("No Stored Results Found", "Information"); + return; + } + scanData = SavedResultsManager.Instance.LoadStoredScanData(scanId); + + if (scanData.Length > 0) + { + PerspectiveHelper.ShowStored(scanData, login, scanId); + CommonActionsInstance.getInstance().ShowReportView(); + } + else + { + TopMostMessageBox.Show("No Stored Results Found", "Information"); + } + } + + public CommandStatus GetStatus() + { + Logger.Create().Info("For retrieve results getting saved login data from conf file."); + LoginData login = LoginHelper.LoadSaved(); + Logger.Create().Info("Getting selected project."); + Entities.Project selectedProject = CommonActionsInstance.getInstance().GetSelectedProject(); + if (selectedProject == null) + { + return CommandStatus.CommandStatusNull; + } + if (login != null && login.BindedProjects != null) + { + LoginData.BindProject bindPro = login.BindedProjects.Find(delegate (LoginData.BindProject bp) + { + return bp.ProjectName == selectedProject.ProjectName && bp.RootPath == selectedProject.RootPath; + }); + if (bindPro != null) + { + return (CommandStatus)CommandStatus.CommandStatusSupported | + CommandStatus.CommandStatusEnabled; + } + } + return (CommandStatus)CommandStatus.CommandStatusSupported; + } + } +} diff --git a/CxViewerAction/Presenters/BindProjectPresenter.cs b/CxActionShared/Presenters/BindProjectPresenter.cs similarity index 96% rename from CxViewerAction/Presenters/BindProjectPresenter.cs rename to CxActionShared/Presenters/BindProjectPresenter.cs index 1a38958e..49416da1 100644 --- a/CxViewerAction/Presenters/BindProjectPresenter.cs +++ b/CxActionShared/Presenters/BindProjectPresenter.cs @@ -1,109 +1,109 @@ -using System; - -// using CxViewerAction.Managers; -using CxViewerAction.Entities; -using CxViewerAction.Dispatchers; -using CxViewerAction.ServiceLocators; -using CxViewerAction.Views; - -namespace CxViewerAction.Presenters -{ - /// - /// Represent upload controller object - /// - public class BindProjectPresenter : IBindProjectPresenter - { - #region [ Private Members ] - - private IDispatcher _dispatcher; - private IBindProjectView _view; - - #endregion [ Private Members ] - - #region [ Events Handlers ] - - /// - /// Constructor - /// - /// - public BindProjectPresenter(IBindProjectView view) - { - this._view = view; - this._view.Load += View_Load; - - _dispatcher = ServiceLocator.GetDispatcher(); - } - - /// - /// Load event handler - /// - /// - /// - private void View_Load(object sender, EventArgs args) - { - - } - - #endregion [ Event Handlers ] - - #region [ Public Methods ] - - /// - /// Perform upload project - /// - /// Parent view - /// Upload data - public void BindProject(IView parentView, BindProjectEntity upload) - { - MapViewData(upload); - if (!upload.IsUploading) - { - upload.IsUploading = true; - try - { - bool isConfirmed = _view.ShowModalView(parentView) == System.Windows.Forms.DialogResult.OK; - MapObjectData(ref upload, isConfirmed); - upload.CommandResult = (isConfirmed) ? System.Windows.Forms.DialogResult.OK : System.Windows.Forms.DialogResult.Cancel; - return; - } - finally - { - upload.IsUploading = false; - } - } - upload.SelectedProject = null; - upload.CommandResult = System.Windows.Forms.DialogResult.Cancel; - - } - - /// - /// Map upload object data to view - /// - /// - private void MapViewData(BindProjectEntity upload) - { - _view.ProjectList = upload.CxProjectsDisplayData.projectList; - } - - /// - /// Map view data to upload object - /// - /// - /// - private void MapObjectData(ref BindProjectEntity upload, bool isUploading) - { - if (isUploading) - { - upload.SelectedProject = _view.SelectedProject; - upload.isPublic = _view.SelectedProject.IsPublic; - } - else - { - upload.SelectedProject = null; - } - } - - #endregion - } -} - +using System; + +// using CxViewerAction.Managers; +using CxViewerAction.Entities; +using CxViewerAction.Dispatchers; +using CxViewerAction.ServiceLocators; +using CxViewerAction.Views; + +namespace CxViewerAction.Presenters +{ + /// + /// Represent upload controller object + /// + public class BindProjectPresenter : IBindProjectPresenter + { + #region [ Private Members ] + + private IDispatcher _dispatcher; + private IBindProjectView _view; + + #endregion [ Private Members ] + + #region [ Events Handlers ] + + /// + /// Constructor + /// + /// + public BindProjectPresenter(IBindProjectView view) + { + this._view = view; + this._view.Load += View_Load; + + _dispatcher = ServiceLocator.GetDispatcher(); + } + + /// + /// Load event handler + /// + /// + /// + private void View_Load(object sender, EventArgs args) + { + + } + + #endregion [ Event Handlers ] + + #region [ Public Methods ] + + /// + /// Perform upload project + /// + /// Parent view + /// Upload data + public void BindProject(IView parentView, BindProjectEntity upload) + { + MapViewData(upload); + if (!upload.IsUploading) + { + upload.IsUploading = true; + try + { + bool isConfirmed = _view.ShowModalView(parentView) == System.Windows.Forms.DialogResult.OK; + MapObjectData(ref upload, isConfirmed); + upload.CommandResult = (isConfirmed) ? System.Windows.Forms.DialogResult.OK : System.Windows.Forms.DialogResult.Cancel; + return; + } + finally + { + upload.IsUploading = false; + } + } + upload.SelectedProject = null; + upload.CommandResult = System.Windows.Forms.DialogResult.Cancel; + + } + + /// + /// Map upload object data to view + /// + /// + private void MapViewData(BindProjectEntity upload) + { + _view.ProjectList = upload.CxProjectsDisplayData.projectList; + } + + /// + /// Map view data to upload object + /// + /// + /// + private void MapObjectData(ref BindProjectEntity upload, bool isUploading) + { + if (isUploading) + { + upload.SelectedProject = _view.SelectedProject; + upload.isPublic = _view.SelectedProject.IsPublic; + } + else + { + upload.SelectedProject = null; + } + } + + #endregion + } +} + diff --git a/CxViewerAction/Presenters/IBindProjectPresenter.cs b/CxActionShared/Presenters/IBindProjectPresenter.cs similarity index 96% rename from CxViewerAction/Presenters/IBindProjectPresenter.cs rename to CxActionShared/Presenters/IBindProjectPresenter.cs index 10e5e5cf..d4fc248b 100644 --- a/CxViewerAction/Presenters/IBindProjectPresenter.cs +++ b/CxActionShared/Presenters/IBindProjectPresenter.cs @@ -1,19 +1,19 @@ -using System; -using CxViewerAction.Entities; -using CxViewerAction.Commands; - -namespace CxViewerAction.Presenters -{ - /// - /// Represent main scan view class methods - /// - public interface IBindProjectPresenter : IPresenter, ICommandResult - { - /// - /// Perform scan - /// - /// Parent view - /// data - void BindProject(IView parentView, BindProjectEntity upload); - } +using System; +using CxViewerAction.Entities; +using CxViewerAction.Commands; + +namespace CxViewerAction.Presenters +{ + /// + /// Represent main scan view class methods + /// + public interface IBindProjectPresenter : IPresenter, ICommandResult + { + /// + /// Perform scan + /// + /// Parent view + /// data + void BindProject(IView parentView, BindProjectEntity upload); + } } \ No newline at end of file diff --git a/CxViewerAction/Presenters/ILoginPresenter.cs b/CxActionShared/Presenters/ILoginPresenter.cs similarity index 96% rename from CxViewerAction/Presenters/ILoginPresenter.cs rename to CxActionShared/Presenters/ILoginPresenter.cs index 59039c9c..7760a025 100644 --- a/CxViewerAction/Presenters/ILoginPresenter.cs +++ b/CxActionShared/Presenters/ILoginPresenter.cs @@ -1,18 +1,18 @@ -using CxViewerAction.Entities; -using CxViewerAction.Commands; - -namespace CxViewerAction.Presenters -{ - /// - /// Represent main login view class methods - /// - public interface ILoginPresenter : IPresenter, ICommandResult - { - /// - /// Perform login - /// - /// Parent view - /// Login data - void Login(IView parentView, ref LoginData login); - } -} +using CxViewerAction.Entities; +using CxViewerAction.Commands; + +namespace CxViewerAction.Presenters +{ + /// + /// Represent main login view class methods + /// + public interface ILoginPresenter : IPresenter, ICommandResult + { + /// + /// Perform login + /// + /// Parent view + /// Login data + void Login(IView parentView, ref LoginData login); + } +} diff --git a/CxViewerAction/Presenters/IRetrieveResultsFromServerPresenter.cs b/CxActionShared/Presenters/IRetrieveResultsFromServerPresenter.cs similarity index 96% rename from CxViewerAction/Presenters/IRetrieveResultsFromServerPresenter.cs rename to CxActionShared/Presenters/IRetrieveResultsFromServerPresenter.cs index 23d4aedc..38821822 100644 --- a/CxViewerAction/Presenters/IRetrieveResultsFromServerPresenter.cs +++ b/CxActionShared/Presenters/IRetrieveResultsFromServerPresenter.cs @@ -1,19 +1,19 @@ -using System; -using CxViewerAction.Entities; -using CxViewerAction.Commands; - -namespace CxViewerAction.Presenters -{ - /// - /// Represent main scan view class methods - /// - public interface IRetrieveResultsFromServerPresenter : IPresenter, ICommandResult - { - /// - /// Perform scan - /// - /// Parent view - /// data - void BindProject(IView parentView, string data); - } +using System; +using CxViewerAction.Entities; +using CxViewerAction.Commands; + +namespace CxViewerAction.Presenters +{ + /// + /// Represent main scan view class methods + /// + public interface IRetrieveResultsFromServerPresenter : IPresenter, ICommandResult + { + /// + /// Perform scan + /// + /// Parent view + /// data + void BindProject(IView parentView, string data); + } } \ No newline at end of file diff --git a/CxViewerAction/Presenters/IScanPresenter.cs b/CxActionShared/Presenters/IScanPresenter.cs similarity index 96% rename from CxViewerAction/Presenters/IScanPresenter.cs rename to CxActionShared/Presenters/IScanPresenter.cs index bd3d259c..4d7568ea 100644 --- a/CxViewerAction/Presenters/IScanPresenter.cs +++ b/CxActionShared/Presenters/IScanPresenter.cs @@ -1,19 +1,19 @@ -using System; -using CxViewerAction.Entities; -using CxViewerAction.Commands; - -namespace CxViewerAction.Presenters -{ - /// - /// Represent main scan view class methods - /// - public interface IScanPresenter : IPresenter, ICommandResult - { - /// - /// Perform scan - /// - /// Parent view - /// Scan data - void Scan(IView parentView, Scan scanData); - } -} +using System; +using CxViewerAction.Entities; +using CxViewerAction.Commands; + +namespace CxViewerAction.Presenters +{ + /// + /// Represent main scan view class methods + /// + public interface IScanPresenter : IPresenter, ICommandResult + { + /// + /// Perform scan + /// + /// Parent view + /// Scan data + void Scan(IView parentView, Scan scanData); + } +} diff --git a/CxViewerAction/Presenters/IUploadPresenter.cs b/CxActionShared/Presenters/IUploadPresenter.cs similarity index 96% rename from CxViewerAction/Presenters/IUploadPresenter.cs rename to CxActionShared/Presenters/IUploadPresenter.cs index 96ddb1d3..ba7aa442 100644 --- a/CxViewerAction/Presenters/IUploadPresenter.cs +++ b/CxActionShared/Presenters/IUploadPresenter.cs @@ -1,18 +1,18 @@ -using CxViewerAction.Entities; -using CxViewerAction.Commands; - -namespace CxViewerAction.Presenters -{ - /// - /// Represent main upload view class methods - /// - public interface IUploadPresenter : IPresenter, ICommandResult - { - /// - /// Perform project upload - /// - /// Parent view - /// Upload data - void Upload(IView parentView, Upload upload); - } -} +using CxViewerAction.Entities; +using CxViewerAction.Commands; + +namespace CxViewerAction.Presenters +{ + /// + /// Represent main upload view class methods + /// + public interface IUploadPresenter : IPresenter, ICommandResult + { + /// + /// Perform project upload + /// + /// Parent view + /// Upload data + void Upload(IView parentView, Upload upload); + } +} diff --git a/CxViewerAction/Presenters/LoginPresenter.cs b/CxActionShared/Presenters/LoginPresenter.cs similarity index 96% rename from CxViewerAction/Presenters/LoginPresenter.cs rename to CxActionShared/Presenters/LoginPresenter.cs index c3146b29..cb16fc53 100644 --- a/CxViewerAction/Presenters/LoginPresenter.cs +++ b/CxActionShared/Presenters/LoginPresenter.cs @@ -1,119 +1,119 @@ -using System; - -// using CxViewerAction.Managers; -using CxViewerAction.Entities; -using CxViewerAction.Dispatchers; -using CxViewerAction.ServiceLocators; -using CxViewerAction.Views; -using CxViewerAction.Services; -using CxViewerAction.Helpers; - -namespace CxViewerAction.Presenters -{ - /// - /// Represent login controller object - /// - public class LoginPresenter : ILoginPresenter - { - #region Private Members - - private IDispatcher _dispatcher; - private static ILoginView _view; - - #endregion - - #region Events Handlers - - /// - /// Constructor - /// - /// Related view - public LoginPresenter(ILoginView view) - { - string url = string.Empty; - string userName = string.Empty; - string password = string.Empty; - - if (_view != null) - { - url = _view.ServerDomain; - } - _view = view; - if (string.IsNullOrEmpty(_view.ServerDomain)) - _view.ServerDomain = url; - _view.Load += View_Load; - - _dispatcher = ServiceLocator.GetDispatcher(); - } - - /// - /// Load event handler - /// - /// - /// - private void View_Load(object sender, EventArgs args) - { - - } - - #endregion Event Handlers - - #region Public Methods - - /// - /// Perform login - /// - /// Parent view - /// Login data - public void Login(IView parentView, ref LoginData login) - { - MapToView(login); - - System.Windows.Forms.DialogResult dialogResult = _view.ShowModalView(parentView); - - MapFromView(ref login); - login.IsLogging = (dialogResult == System.Windows.Forms.DialogResult.OK); - string sessionId = string.Empty; - - if (login.IsLogging) - { - LoginToRESTAPI(login); - } - - } - #endregion - - #region Private Methods - - private void LoginToRESTAPI(LoginData login) - { - CxRESTApi cxRestApiLogin = new CxRESTApi(login); - bool cancelPressed = false; - LoginHelper.DoLogin(out cancelPressed); - } - - /// - /// Map object data to view - /// - /// - private void MapToView(LoginData login) - { - _view.EntityId = login.ID; - if (!string.IsNullOrEmpty(login.ServerDomain)) - _view.ServerDomain = login.ServerDomain; - } - - /// - /// Map view data to object - /// - /// - private void MapFromView(ref LoginData login) - { - login.Ssl = _view.Ssl; - login.ServerDomain = _view.ServerDomain; - } - - #endregion - } -} - +using System; + +// using CxViewerAction.Managers; +using CxViewerAction.Entities; +using CxViewerAction.Dispatchers; +using CxViewerAction.ServiceLocators; +using CxViewerAction.Views; +using CxViewerAction.Services; +using CxViewerAction.Helpers; + +namespace CxViewerAction.Presenters +{ + /// + /// Represent login controller object + /// + public class LoginPresenter : ILoginPresenter + { + #region Private Members + + private IDispatcher _dispatcher; + private static ILoginView _view; + + #endregion + + #region Events Handlers + + /// + /// Constructor + /// + /// Related view + public LoginPresenter(ILoginView view) + { + string url = string.Empty; + string userName = string.Empty; + string password = string.Empty; + + if (_view != null) + { + url = _view.ServerDomain; + } + _view = view; + if (string.IsNullOrEmpty(_view.ServerDomain)) + _view.ServerDomain = url; + _view.Load += View_Load; + + _dispatcher = ServiceLocator.GetDispatcher(); + } + + /// + /// Load event handler + /// + /// + /// + private void View_Load(object sender, EventArgs args) + { + + } + + #endregion Event Handlers + + #region Public Methods + + /// + /// Perform login + /// + /// Parent view + /// Login data + public void Login(IView parentView, ref LoginData login) + { + MapToView(login); + + System.Windows.Forms.DialogResult dialogResult = _view.ShowModalView(parentView); + + MapFromView(ref login); + login.IsLogging = (dialogResult == System.Windows.Forms.DialogResult.OK); + string sessionId = string.Empty; + + if (login.IsLogging) + { + LoginToRESTAPI(login); + } + + } + #endregion + + #region Private Methods + + private void LoginToRESTAPI(LoginData login) + { + CxRESTApi cxRestApiLogin = new CxRESTApi(login); + bool cancelPressed = false; + LoginHelper.DoLogin(out cancelPressed); + } + + /// + /// Map object data to view + /// + /// + private void MapToView(LoginData login) + { + _view.EntityId = login.ID; + if (!string.IsNullOrEmpty(login.ServerDomain)) + _view.ServerDomain = login.ServerDomain; + } + + /// + /// Map view data to object + /// + /// + private void MapFromView(ref LoginData login) + { + login.Ssl = _view.Ssl; + login.ServerDomain = _view.ServerDomain; + } + + #endregion + } +} + diff --git a/CxViewerAction/Presenters/ScanPresenter.cs b/CxActionShared/Presenters/ScanPresenter.cs similarity index 96% rename from CxViewerAction/Presenters/ScanPresenter.cs rename to CxActionShared/Presenters/ScanPresenter.cs index cac7a471..24ce242a 100644 --- a/CxViewerAction/Presenters/ScanPresenter.cs +++ b/CxActionShared/Presenters/ScanPresenter.cs @@ -1,72 +1,72 @@ -using System; -using System.Collections.Generic; - -using System.Text; -using CxViewerAction.Views; -using CxViewerAction.ServiceLocators; -using CxViewerAction.Dispatchers; -using CxViewerAction.Entities; - -namespace CxViewerAction.Presenters -{ - /// - /// Represent scan controller - /// - public class ScanPresenter : IScanPresenter - { - #region [Private Members] - - private IDispatcher _dispatcher; - private IScanView _view; - - #endregion - - #region [Public Properties] - - /// - /// Get Related View - /// - public IScanView View { get { return _view; } } - - #endregion - - #region [Events Handlers] - - /// - /// Constructor - /// - /// Scan data - public ScanPresenter(IScanView view) - { - this._view = view; - this._view.Load += View_Load; - - _dispatcher = ServiceLocator.GetDispatcher(); - } - - /// - /// Load event handler - /// - /// - /// - private void View_Load(object sender, EventArgs args) - { - } - - #endregion - - /// - /// Perform scan - /// - /// Parent view - /// Scan data - void IScanPresenter.Scan(IView parentView, Scan scanData) - { - _view.RunInBackgroundHandler = scanData.RunInBackgroundHandler; - _view.CancelHandler = scanData.CancelHandler; - _view.DetailsHandler = scanData.DetailsHandler; - - _view.ShowView(); - } - } -} +using System; +using System.Collections.Generic; + +using System.Text; +using CxViewerAction.Views; +using CxViewerAction.ServiceLocators; +using CxViewerAction.Dispatchers; +using CxViewerAction.Entities; + +namespace CxViewerAction.Presenters +{ + /// + /// Represent scan controller + /// + public class ScanPresenter : IScanPresenter + { + #region [Private Members] + + private IDispatcher _dispatcher; + private IScanView _view; + + #endregion + + #region [Public Properties] + + /// + /// Get Related View + /// + public IScanView View { get { return _view; } } + + #endregion + + #region [Events Handlers] + + /// + /// Constructor + /// + /// Scan data + public ScanPresenter(IScanView view) + { + this._view = view; + this._view.Load += View_Load; + + _dispatcher = ServiceLocator.GetDispatcher(); + } + + /// + /// Load event handler + /// + /// + /// + private void View_Load(object sender, EventArgs args) + { + } + + #endregion + + /// + /// Perform scan + /// + /// Parent view + /// Scan data + void IScanPresenter.Scan(IView parentView, Scan scanData) + { + _view.RunInBackgroundHandler = scanData.RunInBackgroundHandler; + _view.CancelHandler = scanData.CancelHandler; + _view.DetailsHandler = scanData.DetailsHandler; + + _view.ShowView(); + } + } +} diff --git a/CxViewerAction/Presenters/UploadPresenter.cs b/CxActionShared/Presenters/UploadPresenter.cs similarity index 96% rename from CxViewerAction/Presenters/UploadPresenter.cs rename to CxActionShared/Presenters/UploadPresenter.cs index ad9ded69..44065404 100644 --- a/CxViewerAction/Presenters/UploadPresenter.cs +++ b/CxActionShared/Presenters/UploadPresenter.cs @@ -1,95 +1,95 @@ -using System; - -// using CxViewerAction.Managers; -using CxViewerAction.Entities; -using CxViewerAction.Dispatchers; -using CxViewerAction.ServiceLocators; -using CxViewerAction.Views; - -namespace CxViewerAction.Presenters -{ - /// - /// Represent upload controller object - /// - public class UploadPresenter : IUploadPresenter - { - #region [ Private Members ] - - private IDispatcher _dispatcher; - private IUploadView _view; - - #endregion [ Private Members ] - - #region [ Events Handlers ] - - /// - /// Constructor - /// - /// - public UploadPresenter(IUploadView view) - { - this._view = view; - this._view.Load += View_Load; - - _dispatcher = ServiceLocator.GetDispatcher(); - } - - /// - /// Load event handler - /// - /// - /// - private void View_Load(object sender, EventArgs args) - { - - } - - #endregion [ Event Handlers ] - - #region [ Public Methods ] - - /// - /// Perform upload project - /// - /// Parent view - /// Upload data - public void Upload(IView parentView, Upload upload) - { - MapViewData(upload); - if (!upload.IsUploading) - MapObjectData(ref upload, _view.ShowModalView(parentView) == System.Windows.Forms.DialogResult.OK); - } - - /// - /// Map upload object data to view - /// - /// - private void MapViewData(Upload upload) - { - _view.EntityId = upload.ID; - _view.ProjectName = upload.ProjectName; - _view.Description = upload.Description; - _view.Presets = upload.Presets; - _view.Preset = upload.Preset; - _view.Team = upload.Team; - _view.Teams = upload.Teams; - } - - /// - /// Map view data to upload object - /// - /// - /// - private void MapObjectData(ref Upload upload, bool isUploading) - { - upload.ProjectName = _view.ProjectName; - upload.Description = _view.Description; - upload.Preset = _view.Preset; - upload.Team = _view.Team; - upload.IsUploading = isUploading; - upload.IsPublic = _view.IsPublic; - } - - #endregion - } -} +using System; + +// using CxViewerAction.Managers; +using CxViewerAction.Entities; +using CxViewerAction.Dispatchers; +using CxViewerAction.ServiceLocators; +using CxViewerAction.Views; + +namespace CxViewerAction.Presenters +{ + /// + /// Represent upload controller object + /// + public class UploadPresenter : IUploadPresenter + { + #region [ Private Members ] + + private IDispatcher _dispatcher; + private IUploadView _view; + + #endregion [ Private Members ] + + #region [ Events Handlers ] + + /// + /// Constructor + /// + /// + public UploadPresenter(IUploadView view) + { + this._view = view; + this._view.Load += View_Load; + + _dispatcher = ServiceLocator.GetDispatcher(); + } + + /// + /// Load event handler + /// + /// + /// + private void View_Load(object sender, EventArgs args) + { + + } + + #endregion [ Event Handlers ] + + #region [ Public Methods ] + + /// + /// Perform upload project + /// + /// Parent view + /// Upload data + public void Upload(IView parentView, Upload upload) + { + MapViewData(upload); + if (!upload.IsUploading) + MapObjectData(ref upload, _view.ShowModalView(parentView) == System.Windows.Forms.DialogResult.OK); + } + + /// + /// Map upload object data to view + /// + /// + private void MapViewData(Upload upload) + { + _view.EntityId = upload.ID; + _view.ProjectName = upload.ProjectName; + _view.Description = upload.Description; + _view.Presets = upload.Presets; + _view.Preset = upload.Preset; + _view.Team = upload.Team; + _view.Teams = upload.Teams; + } + + /// + /// Map view data to upload object + /// + /// + /// + private void MapObjectData(ref Upload upload, bool isUploading) + { + upload.ProjectName = _view.ProjectName; + upload.Description = _view.Description; + upload.Preset = _view.Preset; + upload.Team = _view.Team; + upload.IsUploading = isUploading; + upload.IsPublic = _view.IsPublic; + } + + #endregion + } +} diff --git a/CxViewerAction/QueryDescription/QueryDescriptionUrlBuilder.cs b/CxActionShared/QueryDescription/QueryDescriptionUrlBuilder.cs similarity index 82% rename from CxViewerAction/QueryDescription/QueryDescriptionUrlBuilder.cs rename to CxActionShared/QueryDescription/QueryDescriptionUrlBuilder.cs index be5a228a..48d68a74 100644 --- a/CxViewerAction/QueryDescription/QueryDescriptionUrlBuilder.cs +++ b/CxActionShared/QueryDescription/QueryDescriptionUrlBuilder.cs @@ -1,21 +1,20 @@ -using CxViewerAction.Helpers; - -namespace CxViewerAction.QueryDescription -{ - public class QueryDescriptionUrlBuilder - { - #region API - - public string Build(int queryId, string queryName, long queryVersionCode, string scheme = null) - { - return string.Format("{0}/CxWebClient/ScanQueryDescription.aspx?cxsid={1}&queryVersionCode={2}&queryID={3}&queryTitle={4}", - Common.Text.Text.RemoveTrailingSlash(LoginHelper.PortalConfiguration.WebServer), - "", - queryVersionCode, - queryId, - queryName); - } - - #endregion - } -} +using CxViewerAction.Helpers; + +namespace CxViewerAction.QueryDescription +{ + public class QueryDescriptionUrlBuilder + { + #region API + + public string Build(int queryId, string queryName, long queryVersionCode, string scheme = null) + { + return string.Format("{0}/CxWebClient/ScanQueryDescription.aspx?queryVersionCode={1}&queryID={2}&queryTitle={3}", + Common.Text.Text.RemoveTrailingSlash(LoginHelper.PortalConfiguration.WebServer), + queryVersionCode, + queryId, + queryName); + } + + #endregion + } +} diff --git a/CxActionShared/Resources/1.ico b/CxActionShared/Resources/1.ico new file mode 100644 index 00000000..460e091f Binary files /dev/null and b/CxActionShared/Resources/1.ico differ diff --git a/CxActionShared/Resources/Checkmarx-X.ico b/CxActionShared/Resources/Checkmarx-X.ico new file mode 100644 index 00000000..92a980b0 Binary files /dev/null and b/CxActionShared/Resources/Checkmarx-X.ico differ diff --git a/CxActionShared/Resources/Checkmarx-X1.ico b/CxActionShared/Resources/Checkmarx-X1.ico new file mode 100644 index 00000000..92a980b0 Binary files /dev/null and b/CxActionShared/Resources/Checkmarx-X1.ico differ diff --git a/CxActionShared/Resources/Checkmarx-X2.ico b/CxActionShared/Resources/Checkmarx-X2.ico new file mode 100644 index 00000000..92a980b0 Binary files /dev/null and b/CxActionShared/Resources/Checkmarx-X2.ico differ diff --git a/CxActionShared/Resources/Checkmarx-X3.ico b/CxActionShared/Resources/Checkmarx-X3.ico new file mode 100644 index 00000000..92a980b0 Binary files /dev/null and b/CxActionShared/Resources/Checkmarx-X3.ico differ diff --git a/CxActionShared/Resources/Checkmarx-X31.ico b/CxActionShared/Resources/Checkmarx-X31.ico new file mode 100644 index 00000000..92a980b0 Binary files /dev/null and b/CxActionShared/Resources/Checkmarx-X31.ico differ diff --git a/CxActionShared/Resources/CxViewerResources.Designer.cs b/CxActionShared/Resources/CxViewerResources.Designer.cs new file mode 100644 index 00000000..771c84fe --- /dev/null +++ b/CxActionShared/Resources/CxViewerResources.Designer.cs @@ -0,0 +1,371 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace CxViewerAction.Resources { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class CxViewerResources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal CxViewerResources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("CxViewerAction.Resources.CxViewerResources", typeof(CxViewerResources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to <?xml version="1.0" encoding="utf-8"?> + ///<root> + /// <!-- + /// Microsoft ResX Schema + /// + /// Version 2.0 + /// + /// The primary goals of this format is to allow a simple XML format + /// that is mostly human readable. The generation and parsing of the + /// various data types are done through the TypeConverter classes + /// associated with the data types. + /// + /// Example: + /// + /// ... ado.net/XML headers & schema ... + /// <resheader name="resmimetype">text/microsoft-resx</resheader> + /// <resheader n [rest of string was truncated]";. + /// + internal static string GetCxViewerResources() + { + return ResourceManager.GetString("CxViewerResources", resourceCulture); + } + + /// + /// Looks up a localized string similar to //------------------------------------------------------------------------------ + ///// <auto-generated> + ///// This code was generated by a tool. + ///// Runtime Version:4.0.30319.42000 + ///// + ///// Changes to this file may cause incorrect behavior and will be lost if + ///// the code is regenerated. + ///// </auto-generated> + /////------------------------------------------------------------------------------ + /// + ///namespace CxViewerAction.Resources { + /// using System; + /// + /// + /// /// <summary> + /// /// A stron [rest of string was truncated]";. + /// + internal static string CxViewerResources_Designer { + get { + return ResourceManager.GetString("CxViewerResources_Designer", resourceCulture); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Disabled { + get { + object obj = ResourceManager.GetObject("Disabled", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Enabled { + get { + object obj = ResourceManager.GetObject("Enabled", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap MultiRelaitions { + get { + object obj = ResourceManager.GetObject("MultiRelaitions", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap MultiRelaitionsSelected { + get { + object obj = ResourceManager.GetObject("MultiRelaitionsSelected", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap NormalNode { + get { + object obj = ResourceManager.GetObject("NormalNode", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap NormalSelected { + get { + object obj = ResourceManager.GetObject("NormalSelected", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap close24 + { + get + { + object obj = ResourceManager.GetObject("close24", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } + + /// + ///Changes for bug Plug-513 unable to see scan results + /// + //Created new resource class for CxViewerACtion2019 + //Start + internal class CxViewerResources2019 + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal CxViewerResources2019() + { + var type = typeof(CxViewerResources).Assembly; + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if (object.ReferenceEquals(resourceMan, null)) + { + + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("CxViewerAction2019.Resources.CxViewerResources", typeof(CxViewerResources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to <?xml version="1.0" encoding="utf-8"?> + ///<root> + /// <!-- + /// Microsoft ResX Schema + /// + /// Version 2.0 + /// + /// The primary goals of this format is to allow a simple XML format + /// that is mostly human readable. The generation and parsing of the + /// various data types are done through the TypeConverter classes + /// associated with the data types. + /// + /// Example: + /// + /// ... ado.net/XML headers & schema ... + /// <resheader name="resmimetype">text/microsoft-resx</resheader> + /// <resheader n [rest of string was truncated]";. + /// + internal static string GetCxViewerResources() + { + return ResourceManager.GetString("CxViewerResources", resourceCulture); + } + + /// + /// Looks up a localized string similar to //------------------------------------------------------------------------------ + ///// <auto-generated> + ///// This code was generated by a tool. + ///// Runtime Version:4.0.30319.42000 + ///// + ///// Changes to this file may cause incorrect behavior and will be lost if + ///// the code is regenerated. + ///// </auto-generated> + /////------------------------------------------------------------------------------ + /// + ///namespace CxViewerAction.Resources { + /// using System; + /// + /// + /// /// <summary> + /// /// A stron [rest of string was truncated]";. + /// + internal static string CxViewerResources_Designer + { + get + { + return ResourceManager.GetString("CxViewerResources_Designer", resourceCulture); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Disabled + { + get + { + object obj = ResourceManager.GetObject("Disabled", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Enabled + { + get + { + object obj = ResourceManager.GetObject("Enabled", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap MultiRelaitions + { + get + { + object obj = ResourceManager.GetObject("MultiRelaitions", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap MultiRelaitionsSelected + { + get + { + object obj = ResourceManager.GetObject("MultiRelaitionsSelected", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap NormalNode + { + get + { + object obj = ResourceManager.GetObject("NormalNode", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap NormalSelected + { + get + { + object obj = ResourceManager.GetObject("NormalSelected", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap close24 + { + get + { + object obj = ResourceManager.GetObject("close24", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } + //End +} diff --git a/CxActionShared/Resources/CxViewerResources.resx b/CxActionShared/Resources/CxViewerResources.resx new file mode 100644 index 00000000..a4b77bfe --- /dev/null +++ b/CxActionShared/Resources/CxViewerResources.resx @@ -0,0 +1,148 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + cxviewerresources.resx;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 + + + cxviewerresources.designer.cs;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 + + + Disabled.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Enabled.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + MultiRelaitions.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + MultiRelaitionsSelected.PNG;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + NormalNode.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + NormalSelected.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + close24.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/CxActionShared/Resources/Disabled.png b/CxActionShared/Resources/Disabled.png new file mode 100644 index 00000000..24919d51 Binary files /dev/null and b/CxActionShared/Resources/Disabled.png differ diff --git a/CxActionShared/Resources/Enabled.png b/CxActionShared/Resources/Enabled.png new file mode 100644 index 00000000..739fe759 Binary files /dev/null and b/CxActionShared/Resources/Enabled.png differ diff --git a/CxActionShared/Resources/High.png b/CxActionShared/Resources/High.png new file mode 100644 index 00000000..d7f3062c Binary files /dev/null and b/CxActionShared/Resources/High.png differ diff --git a/CxActionShared/Resources/Low.png b/CxActionShared/Resources/Low.png new file mode 100644 index 00000000..13244dd0 Binary files /dev/null and b/CxActionShared/Resources/Low.png differ diff --git a/CxActionShared/Resources/Medium.png b/CxActionShared/Resources/Medium.png new file mode 100644 index 00000000..9a2c76bd Binary files /dev/null and b/CxActionShared/Resources/Medium.png differ diff --git a/CxActionShared/Resources/MultiRelaitions.png b/CxActionShared/Resources/MultiRelaitions.png new file mode 100644 index 00000000..0f04adc7 Binary files /dev/null and b/CxActionShared/Resources/MultiRelaitions.png differ diff --git a/CxActionShared/Resources/MultiRelaitionsSelected.PNG b/CxActionShared/Resources/MultiRelaitionsSelected.PNG new file mode 100644 index 00000000..9498b011 Binary files /dev/null and b/CxActionShared/Resources/MultiRelaitionsSelected.PNG differ diff --git a/CxActionShared/Resources/NormalNode.png b/CxActionShared/Resources/NormalNode.png new file mode 100644 index 00000000..28e44c5b Binary files /dev/null and b/CxActionShared/Resources/NormalNode.png differ diff --git a/CxActionShared/Resources/NormalSelected.png b/CxActionShared/Resources/NormalSelected.png new file mode 100644 index 00000000..a00248ff Binary files /dev/null and b/CxActionShared/Resources/NormalSelected.png differ diff --git a/CxActionShared/Resources/checkmarx-80.png b/CxActionShared/Resources/checkmarx-80.png new file mode 100644 index 00000000..20f2eebd Binary files /dev/null and b/CxActionShared/Resources/checkmarx-80.png differ diff --git a/CxActionShared/Resources/close24.png b/CxActionShared/Resources/close24.png new file mode 100644 index 00000000..6756dfb4 Binary files /dev/null and b/CxActionShared/Resources/close24.png differ diff --git a/CxActionShared/Resources/cx.gif b/CxActionShared/Resources/cx.gif new file mode 100644 index 00000000..f8d7b7ff Binary files /dev/null and b/CxActionShared/Resources/cx.gif differ diff --git a/CxActionShared/Resources/cx.ico b/CxActionShared/Resources/cx.ico new file mode 100644 index 00000000..460e091f Binary files /dev/null and b/CxActionShared/Resources/cx.ico differ diff --git a/CxActionShared/Resources/down.gif b/CxActionShared/Resources/down.gif new file mode 100644 index 00000000..cdda0912 Binary files /dev/null and b/CxActionShared/Resources/down.gif differ diff --git a/CxActionShared/Resources/empty.gif b/CxActionShared/Resources/empty.gif new file mode 100644 index 00000000..22d4a724 Binary files /dev/null and b/CxActionShared/Resources/empty.gif differ diff --git a/CxViewerAction/ServiceLocator/ServiceLocator.cs b/CxActionShared/ServiceLocator/ServiceLocator.cs similarity index 97% rename from CxViewerAction/ServiceLocator/ServiceLocator.cs rename to CxActionShared/ServiceLocator/ServiceLocator.cs index 6dab97ce..0874baf6 100644 --- a/CxViewerAction/ServiceLocator/ServiceLocator.cs +++ b/CxActionShared/ServiceLocator/ServiceLocator.cs @@ -1,37 +1,37 @@ -using System; -using CxViewerAction.Dispatchers; -using CxViewerAction.Presenters; -using CxViewerAction.Views; - -namespace CxViewerAction.ServiceLocators -{ - public static class ServiceLocator - { - public static IDispatcher GetDispatcher() - { - return new Dispatcher(); - } - - public static T GetObject(params object[] objs) where T : class - { - Type type = typeof(T); - - if (type == typeof(ILoginPresenter)) - return new LoginPresenter((ILoginView)objs[0]) as T; - if (type == typeof(IUploadPresenter)) - return new UploadPresenter((IUploadView)objs[0]) as T; - if (type == typeof(IScanPresenter)) - return new ScanPresenter((IScanView)objs[0]) as T; - if (type == typeof(IBindProjectPresenter)) - return new BindProjectPresenter((IBindProjectView)objs[0]) as T; - if (type == typeof(IUploadView)) - return new UploadFrm((string)objs[0]) as T; - if (type == typeof(IScanView)) - return new ScanProcessFrm() as T; - if (type == typeof(IBindProjectView)) - return new frmBindingPrjList() as T; - - return null; - } - } -} +using System; +using CxViewerAction.Dispatchers; +using CxViewerAction.Presenters; +using CxViewerAction.Views; + +namespace CxViewerAction.ServiceLocators +{ + public static class ServiceLocator + { + public static IDispatcher GetDispatcher() + { + return new Dispatcher(); + } + + public static T GetObject(params object[] objs) where T : class + { + Type type = typeof(T); + + if (type == typeof(ILoginPresenter)) + return new LoginPresenter((ILoginView)objs[0]) as T; + if (type == typeof(IUploadPresenter)) + return new UploadPresenter((IUploadView)objs[0]) as T; + if (type == typeof(IScanPresenter)) + return new ScanPresenter((IScanView)objs[0]) as T; + if (type == typeof(IBindProjectPresenter)) + return new BindProjectPresenter((IBindProjectView)objs[0]) as T; + if (type == typeof(IUploadView)) + return new UploadFrm((string)objs[0]) as T; + if (type == typeof(IScanView)) + return new ScanProcessFrm() as T; + if (type == typeof(IBindProjectView)) + return new frmBindingPrjList() as T; + + return null; + } + } +} diff --git a/CxViewerAction/Services/CxVSWebServiceWrapper.cs b/CxActionShared/Services/CxVSWebServiceWrapper.cs similarity index 75% rename from CxViewerAction/Services/CxVSWebServiceWrapper.cs rename to CxActionShared/Services/CxVSWebServiceWrapper.cs index 64f19397..16399a3e 100644 --- a/CxViewerAction/Services/CxVSWebServiceWrapper.cs +++ b/CxActionShared/Services/CxVSWebServiceWrapper.cs @@ -1,51 +1,58 @@ -using System; -using Common; -using System.Net; -using CxViewerAction.Entities; -using CxViewerAction.Helpers; - -namespace CxViewerAction.Services -{ - public class CxVSWebServiceWrapper : CxVSWebService.CxVSWebService - { - public bool DisableConnectionOptimizations = false; - - protected override WebRequest GetWebRequest(Uri uri) - { - OidcLoginData oidcLoginData = OidcLoginData.GetOidcLoginDataInstance(); - if (IsTokenExpired(oidcLoginData)) - { - //get the login data again with the new access token - oidcLoginData = OidcLoginData.GetOidcLoginDataInstance(); - } - WebRequest request = base.GetWebRequest(uri); - request.Headers.Clear(); - request.Headers.Add(Constants.AUTHORIZATION_HEADER, Constants.BEARER + oidcLoginData.AccessToken); - if (DisableConnectionOptimizations) - { - ((HttpWebRequest)request).ServicePoint.UseNagleAlgorithm = false; - ((HttpWebRequest)request).ServicePoint.Expect100Continue = false; - ((HttpWebRequest)request).KeepAlive = false; - ((HttpWebRequest)request).ServicePoint.ConnectionLimit = 10; - } - return request; - } - - public static bool IsTokenExpired(OidcLoginData oidcLoginData) - { - bool isExpired = false; - if (oidcLoginData.AccessToken != null) - { - long currentTimeInMilli = DateTime.Now.Ticks; - isExpired = DateTime.Compare(new DateTime(currentTimeInMilli), DateTimeOffset.FromUnixTimeMilliseconds(oidcLoginData.AccessTokenExpiration).UtcDateTime) > 0 ? false : true; - if (isExpired) - { - LoginData loginData = LoginHelper.LoadSaved(); - CxRESTApi cxRestApi = new CxRESTApi(loginData); - cxRestApi.getAccessTokenFromRefreshToken(oidcLoginData.RefreshToken); - } - } - return isExpired; - } - } -} +using System; +using Common; +using System.Net; +using CxViewerAction.Entities; +using CxViewerAction.Helpers; + +namespace CxViewerAction.Services +{ + public class CxVSWebServiceWrapper : CxVSWebService.CxVSWebService + { + public bool DisableConnectionOptimizations = false; + + protected override WebRequest GetWebRequest(Uri uri) + { + OidcLoginData oidcLoginData = OidcLoginData.GetOidcLoginDataInstance(); + if (IsTokenExpired(oidcLoginData)) + { + //get the login data again with the new access token + oidcLoginData = OidcLoginData.GetOidcLoginDataInstance(); + } + WebRequest request = base.GetWebRequest(uri); + request.Headers.Clear(); + request.Headers.Add(Constants.AUTHORIZATION_HEADER, Constants.BEARER + oidcLoginData.AccessToken); + if (DisableConnectionOptimizations) + { + ((HttpWebRequest)request).ServicePoint.UseNagleAlgorithm = false; + ((HttpWebRequest)request).ServicePoint.Expect100Continue = false; + ((HttpWebRequest)request).KeepAlive = false; + ((HttpWebRequest)request).ServicePoint.ConnectionLimit = 10; + } + return request; + } + + public static bool IsTokenExpired(OidcLoginData oidcLoginData) + { + bool isExpired = false; + if (oidcLoginData.AccessToken != null) + { + Logger.Create().Info("IsTokenExpired: Token is not null."); + DateTime tokenTime = DateTimeOffset.FromUnixTimeMilliseconds(oidcLoginData.AccessTokenExpiration).UtcDateTime; + isExpired = DateTime.Compare(DateTime.UtcNow, tokenTime ) > 0 ? true : false; + if (isExpired) + { + Logger.Create().Info("Access token has expired. Renewing."); + LoginData loginData = LoginHelper.LoadSaved(); + CxRESTApi cxRestApi = new CxRESTApi(loginData); + cxRestApi.getAccessTokenFromRefreshToken(oidcLoginData.RefreshToken); + Logger.Create().Info("Access token has expired. Renewed."); + } + } + else + { + Logger.Create().Info("IsTokenExpired: access token is null."); + } + return isExpired; + } + } +} diff --git a/CxViewerAction/Services/CxWSResolverWrapper.cs b/CxActionShared/Services/CxWSResolverWrapper.cs similarity index 97% rename from CxViewerAction/Services/CxWSResolverWrapper.cs rename to CxActionShared/Services/CxWSResolverWrapper.cs index a0eb780b..eb555021 100644 --- a/CxViewerAction/Services/CxWSResolverWrapper.cs +++ b/CxActionShared/Services/CxWSResolverWrapper.cs @@ -1,25 +1,25 @@ -using System; -using System.Collections.Generic; -using System.Net; -using System.Text; - -namespace CxViewerAction.Services -{ - public class CxWSResolverWrapper : CxViewerAction.CxWsResolver.CxWSResolver - { - public bool DisableConnectionOptimizations = false; - - protected override WebRequest GetWebRequest(Uri uri) - { - WebRequest request = base.GetWebRequest(uri); - if (DisableConnectionOptimizations) - { - ((HttpWebRequest)request).ServicePoint.UseNagleAlgorithm = false; - ((HttpWebRequest)request).ServicePoint.Expect100Continue = false; - ((HttpWebRequest)request).KeepAlive = false; - ((HttpWebRequest)request).ServicePoint.ConnectionLimit = 10; - } - return request; - } - } -} +using System; +using System.Collections.Generic; +using System.Net; +using System.Text; + +namespace CxViewerAction.Services +{ + public class CxWSResolverWrapper : CxViewerAction.CxWsResolver.CxWSResolver + { + public bool DisableConnectionOptimizations = false; + + protected override WebRequest GetWebRequest(Uri uri) + { + WebRequest request = base.GetWebRequest(uri); + if (DisableConnectionOptimizations) + { + ((HttpWebRequest)request).ServicePoint.UseNagleAlgorithm = false; + ((HttpWebRequest)request).ServicePoint.Expect100Continue = false; + ((HttpWebRequest)request).KeepAlive = false; + ((HttpWebRequest)request).ServicePoint.ConnectionLimit = 10; + } + return request; + } + } +} diff --git a/CxViewerAction/Services/CxWebServiceClient.cs b/CxActionShared/Services/CxWebServiceClient.cs similarity index 82% rename from CxViewerAction/Services/CxWebServiceClient.cs rename to CxActionShared/Services/CxWebServiceClient.cs index eb2bdfff..29bce916 100644 --- a/CxViewerAction/Services/CxWebServiceClient.cs +++ b/CxActionShared/Services/CxWebServiceClient.cs @@ -1,122 +1,137 @@ -using System; -using System.Net; -using CxViewerAction.Helpers; -using CxViewerAction.Entities; -using System.Security.Cryptography.X509Certificates; -using System.Net.Security; -using CxViewerAction.CxVSWebService; -using CxViewerAction.Entities.WebServiceEntity; - -namespace CxViewerAction.Services -{ - /// - /// Wrapper for service client - /// - public class CxWebServiceClient - { - #region [Private Members] - private readonly CxViewerAction.Services.CxVSWebServiceWrapper _client; - private const int INTERFACE_VERSION = 1; - #endregion - - #region [Public Properties] - - /// - /// Servive client object - /// - public CxViewerAction.Services.CxVSWebServiceWrapper ServiceClient { get { return _client; } } - - #endregion - - #region [Private Memebers] - - /// - /// Constract service endpoint binding configuration. Used to control service on transort layer - /// - /// - //private BasicHttpBinding GetBindingConfiguration(bool ssl) - //{ - // BasicHttpBinding binding; - - // if (ssl) - // binding = new BasicHttpBinding(System.ServiceModel.BasicHttpSecurityMode.Transport); - // else - // binding = new BasicHttpBinding(); - - // binding.ReaderQuotas = new System.Xml.XmlDictionaryReaderQuotas(); - // binding.ReaderQuotas.MaxArrayLength = 16384; - // binding.ReaderQuotas.MaxStringContentLength = 655360; - // binding.SendTimeout = TimeSpan.FromHours(1); - // binding.MaxReceivedMessageSize = 655360; - - // return binding; - //} - - #endregion - - #region [Constructors] - /// - /// Constructor - /// - /// server url - public CxWebServiceClient(LoginData pLogin) - { - ServicePointManager.ServerCertificateValidationCallback += delegate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return true; }; - - CxViewerAction.Services.CxWSResolverWrapper resolver = new CxViewerAction.Services.CxWSResolverWrapper { Url = pLogin.Server }; - resolver.DisableConnectionOptimizations = pLogin.DisableConnectionOptimizations; - resolver.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials; - resolver.UseDefaultCredentials = true; - CxWsResolver.CxWSResponseDiscovery discoveryResponse = resolver.GetWebServiceUrl(CxViewerAction.CxWsResolver.CxClientType.VS, INTERFACE_VERSION); - - if (!discoveryResponse.IsSuccesfull) - { - string errorMsg = "Internal Server Error - Resolver Returned: \r\n" + discoveryResponse.ErrorMessage; - throw new Exception(errorMsg); - } - - _client = new CxVSWebServiceWrapper { Url = discoveryResponse.ServiceURL }; - _client.DisableConnectionOptimizations = pLogin.DisableConnectionOptimizations; - _client.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials; - _client.UseDefaultCredentials = true; - - } - - #endregion - - #region [Public methods] - /// - /// Close client and clear object data - /// - public void Close() - { - _client.Dispose(); - } - - /// - /// Return selected problem description - /// - /// Problem identifier - /// - public static CxWSResponseQueryDescription GetQueryDesription(int queryId) - { - LoginData login = LoginHelper.Load(0); - CxWebServiceClient client = null; - if (login != null) - { - client = new CxWebServiceClient(login); - } - if (client == null || client.ServiceClient == null) - { - return null; - } - - CxWSResponseQueryDescription cxWSResponseQueryDescription = client.ServiceClient.GetQueryDescriptionByQueryId("", queryId); - - client.Close(); - return cxWSResponseQueryDescription; - } - - #endregion - } -} +using System; +using System.Net; +using CxViewerAction.Helpers; +using CxViewerAction.Entities; +using System.Security.Cryptography.X509Certificates; +using System.Net.Security; +using CxViewerAction.CxVSWebService; +using CxViewerAction.Entities.WebServiceEntity; +using Common; + +namespace CxViewerAction.Services +{ + /// + /// Wrapper for service client + /// + public class CxWebServiceClient + { + #region [Private Members] + private readonly CxViewerAction.Services.CxVSWebServiceWrapper _client; + private const int INTERFACE_VERSION = 1; + #endregion + + #region [Public Properties] + + /// + /// Servive client object + /// + public CxViewerAction.Services.CxVSWebServiceWrapper ServiceClient { get { return _client; } } + + #endregion + + #region [Private Memebers] + + /// + /// Constract service endpoint binding configuration. Used to control service on transort layer + /// + /// + //private BasicHttpBinding GetBindingConfiguration(bool ssl) + //{ + // BasicHttpBinding binding; + + // if (ssl) + // binding = new BasicHttpBinding(System.ServiceModel.BasicHttpSecurityMode.Transport); + // else + // binding = new BasicHttpBinding(); + + // binding.ReaderQuotas = new System.Xml.XmlDictionaryReaderQuotas(); + // binding.ReaderQuotas.MaxArrayLength = 16384; + // binding.ReaderQuotas.MaxStringContentLength = 655360; + // binding.SendTimeout = TimeSpan.FromHours(1); + // binding.MaxReceivedMessageSize = 655360; + + // return binding; + //} + + #endregion + + #region [Constructors] + /// + /// Constructor + /// + /// server url + public CxWebServiceClient(LoginData pLogin) + { + ServicePointManager. ServerCertificateValidationCallback += delegate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) + { + // No SSL policy errors, certificate is considered valid Or Certificate validation is disabled + if (!pLogin.EnableTLSOrSSLServerCertificateValidation || sslPolicyErrors == SslPolicyErrors.None) + return true; + else + { + // Log or handle SSL policy errors + Logger.Create().Error("Certificate error: " + sslPolicyErrors.ToString()); + + // Example: Check if the certificate is issued by a specific CA or meets specific criteria + // Return false to reject the certificate + return false; + } + }; + + CxViewerAction.Services.CxWSResolverWrapper resolver = new CxViewerAction.Services.CxWSResolverWrapper { Url = pLogin.Server }; + resolver.DisableConnectionOptimizations = pLogin.DisableConnectionOptimizations; + resolver.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials; + resolver.UseDefaultCredentials = true; + CxWsResolver.CxWSResponseDiscovery discoveryResponse = resolver.GetWebServiceUrl(CxViewerAction.CxWsResolver.CxClientType.VS, INTERFACE_VERSION); + + if (!discoveryResponse.IsSuccesfull) + { + string errorMsg = "Internal Server Error - Resolver Returned: \r\n" + discoveryResponse.ErrorMessage; + throw new Exception(errorMsg); + } + + _client = new CxVSWebServiceWrapper { Url = discoveryResponse.ServiceURL }; + _client.DisableConnectionOptimizations = pLogin.DisableConnectionOptimizations; + _client.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials; + _client.UseDefaultCredentials = true; + + } + + #endregion + + #region [Public methods] + /// + /// Close client and clear object data + /// + public void Close() + { + _client.Dispose(); + } + + /// + /// Return selected problem description + /// + /// Problem identifier + /// + public static CxWSResponseQueryDescription GetQueryDesription(int queryId) + { + LoginData login = LoginHelper.Load(0); + CxWebServiceClient client = null; + if (login != null) + { + client = new CxWebServiceClient(login); + } + if (client == null || client.ServiceClient == null) + { + return null; + } + + CxWSResponseQueryDescription cxWSResponseQueryDescription = client.ServiceClient.GetQueryDescriptionByQueryId("", queryId); + + client.Close(); + return cxWSResponseQueryDescription; + } + + #endregion + } +} diff --git a/CxViewerAction/Services/EnvDTEConstants.cs b/CxActionShared/Services/EnvDTEConstants.cs similarity index 97% rename from CxViewerAction/Services/EnvDTEConstants.cs rename to CxActionShared/Services/EnvDTEConstants.cs index 6423147b..ea3e2b5c 100644 --- a/CxViewerAction/Services/EnvDTEConstants.cs +++ b/CxActionShared/Services/EnvDTEConstants.cs @@ -1,14 +1,14 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; - -namespace CxViewerAction.Services -{ - class EnvDTEConstants - { - public const string vsProjectItemKindPhysicalFolder = "{6BB5F8EF-4483-11D3-8BCF-00C04F8EC28C}"; - public const string vsProjectItemKindPhysicalFile = "{6BB5F8EE-4483-11D3-8BCF-00C04F8EC28C}"; - public const string vsViewKindCode = "{7651A701-06E5-11D1-8EBD-00A0C90F26EA}"; - } -} +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace CxViewerAction.Services +{ + class EnvDTEConstants + { + public const string vsProjectItemKindPhysicalFolder = "{6BB5F8EF-4483-11D3-8BCF-00C04F8EC28C}"; + public const string vsProjectItemKindPhysicalFile = "{6BB5F8EE-4483-11D3-8BCF-00C04F8EC28C}"; + public const string vsViewKindCode = "{7651A701-06E5-11D1-8EBD-00A0C90F26EA}"; + } +} diff --git a/CxActionShared/Services/RESTApi/CxRESTApi.cs b/CxActionShared/Services/RESTApi/CxRESTApi.cs new file mode 100644 index 00000000..d106887f --- /dev/null +++ b/CxActionShared/Services/RESTApi/CxRESTApi.cs @@ -0,0 +1,286 @@ +using System; +using Common; +using System.IO; +using System.Net; +using System.Text; +using CxViewerAction.Entities; +using System.Web.Script.Serialization; +using CxViewerAction.Entities.RestEntities; +using System.Collections; +using Newtonsoft.Json; + +namespace CxViewerAction.Services +{ + public class CxRESTApi + { + #region Fields + + private LoginData _login; + private const string requestContentType = "application/x-www-form-urlencoded; charset=UTF-8"; + private const string _messageBodyTemplateTokenFromCode = Constants.GRANT_TYPE_KEY + "={0}&" + Constants.CLIENT_ID_KEY + "={1}&" + + Constants.REDIRECT_URI_KEY + "={2}/&" + Constants.CODE_KEY +"={3}"; + private const string _messageBodyTemplateTokenFromRefreshToken = Constants.GRANT_TYPE_KEY + "={0}&" + Constants.CLIENT_ID_KEY + "={1}&" + + Constants.REFRESH_TOKEN + "={2}" ; + + private const string _messageBodyTemplateTokenFromRefreshTokenUP = Constants.GRANT_TYPE_KEY + "={0}&" + Constants.CLIENT_ID_KEY + "={1}&" + + Constants.REFRESH_TOKEN + "={2}&" + Constants.CLIENT_SECRET_KEY + "={3}"; + + private const string _messageBodyTemplateTokenFromUsernamePassword = Constants.USERNAME_KEY + "={0}&" + Constants.PASSWORD_KEY + "={1}&" + + Constants.GRANT_TYPE_KEY + "={2}&" + Constants.CLIENT_ID_KEY + "=" + Constants.CLIENT_VALUE_ROPC + "&" + + Constants.REDIRECT_URI_KEY + "={3}/&" + Constants.CLIENT_SECRET_KEY + "="+ Constants.CLIENT_SECRET_ROPC + "&" + Constants.SCOPE_KEY + "=" + Constants.SCOPE_VALUE_CREDS; + + #endregion + + #region Ctor + + public CxRESTApi(LoginData login) + { + _login = login; + } + + #endregion + + #region API + + public string Login(string code) + { + Uri uri = GetTokenEndpointUri(); + string messageBody = GetLoginMesageBody(code); + byte[] messageBodyAsByteArray = GetMesageBodyEncoded(code); + HttpWebRequest webRequest = CreateWebRequest(uri, messageBody, messageBodyAsByteArray, null); + HttpWebResponse webResponse = HandleWebResponse(webRequest, "CxRESTApiLogin->Login->Rest API, status message: ", "Login Failed"); + OidcLoginData oidcLoginData = ParseOidcInfo(webResponse); + return oidcLoginData.AccessToken; + + } + + #region AuthTypeUsernamePassword + /// + /// LoginUserNamePassword Call Rest Api when AuthTypeUsernamePassword + /// + public string LoginUserNamePassword(string username, string password) + { + Uri uri = GetTokenEndpointUri(); + string messageBody = GetLoginUsernamePasswordMesageBody(username, password); + byte[] messageBodyAsByteArray = GetMesageBodyEncoded(username, password); + HttpWebRequest webRequest = CreateWebRequest(uri, messageBody, messageBodyAsByteArray, null); + HttpWebResponse webResponse = HandleWebResponse(webRequest, "CxRESTApiLogin->Login->Rest API, status message: ", "Login Failed"); + OidcLoginData oidcLoginData = ParseOidcInfo(webResponse); + return oidcLoginData.AccessToken; + } + private string GetLoginUsernamePasswordMesageBody(string username, string password) + { + string redirectUri = _login.ServerBaseUri; + if (redirectUri.EndsWith("/")) + { + redirectUri = redirectUri.Substring(0, redirectUri.Length - 1); + } + return string.Format(_messageBodyTemplateTokenFromUsernamePassword, username, password, Constants.PASSWORD_GRANT_TYPE, redirectUri); + } + private byte[] GetMesageBodyEncoded(string username, string password) + { + string messageBody = GetLoginUsernamePasswordMesageBody(username, password); + return Encoding.UTF8.GetBytes(messageBody); + } + #endregion AuthTypeUsernamePassword + + internal void getAccessTokenFromRefreshToken(string refreshToken) + { + OidcLoginData oidcLoginData = null; + Uri uri = GetTokenEndpointUri(); + string messageBody; + if (!string.IsNullOrWhiteSpace(_login.AuthenticationType) && _login.AuthenticationType == Constants.AuthenticationaType_UserNamePassword) + { + messageBody = GetAccessTokenFromRefreshTokenMessageBodyUP(refreshToken); + } + else + { + messageBody = GetAccessTokenFromRefreshTokenMessageBody(refreshToken); + } + byte[] messageBodyAsByteArray = GetRefTokenMessageBodyEncoded(refreshToken); + HttpWebRequest webRequest = CreateWebRequest(uri, messageBody, messageBodyAsByteArray, null); + HttpWebResponse webResponse = HandleWebResponse(webRequest, "CxRESTApiLogin->getAccessTokenFromRefreshToken->Rest API, status message: ", "Session expired. Please login."); + oidcLoginData = ParseOidcInfo(webResponse); + } + + private byte[] GetRefTokenMessageBodyEncoded(string refreshToken) + { + string messageBody; + if (!string.IsNullOrWhiteSpace(_login.AuthenticationType) && _login.AuthenticationType == Constants.AuthenticationaType_UserNamePassword) + { + messageBody = GetAccessTokenFromRefreshTokenMessageBodyUP(refreshToken); + } + else + { + messageBody = GetAccessTokenFromRefreshTokenMessageBody(refreshToken); + } + return Encoding.UTF8.GetBytes(messageBody); + } + + private string GetAccessTokenFromRefreshTokenMessageBody(string refreshToken) + { + return string.Format(_messageBodyTemplateTokenFromRefreshToken, Constants.REFRESH_TOKEN, Constants.CLIENT_VALUE, refreshToken); + } + private string GetAccessTokenFromRefreshTokenMessageBodyUP(string refreshToken) + { + return string.Format(_messageBodyTemplateTokenFromRefreshTokenUP, Constants.REFRESH_TOKEN, Constants.CLIENT_VALUE_ROPC, refreshToken, Constants.CLIENT_SECRET_ROPC); + } + + private OidcLoginData ParseOidcInfo(HttpWebResponse webResponse) + { + AccessTokenDTO jsonResponse = ParseAccessTokenJsonFromResponse(webResponse); + long accessTokenExpirationInMillis = GetAccessTokenExpirationInMillis(jsonResponse.ExpiresIn); + OidcLoginData oidcLoginData = OidcLoginData.GetOidcLoginDataInstance(); + oidcLoginData.AccessToken = jsonResponse.AccessToken; + oidcLoginData.RefreshToken = jsonResponse.RefreshToken; + oidcLoginData.AccessTokenExpiration = accessTokenExpirationInMillis; + return oidcLoginData; + } + + internal void GetPermissions(string accessToken) + { + if (!string.IsNullOrWhiteSpace(_login.AuthenticationType) && _login.AuthenticationType == Constants.AuthenticationaType_UserNamePassword) + { + //Caveat of username+password + //GetPermissions requires 'openid' scope which is not relevant for username+password scenario + // because in this case we use resource_owner_client oauth client. + // Impact is that during traigging, VS plugin will still show UI fileds like Change State, Assign User editable + // but SAST server will return error if logged-in user does not have those permissions. + //Assume permission, which may be denied by the server. + _login.SaveSastScan = true; + _login.ManageResultsComment = true; + _login.ManageResultsExploitability = true; + return; + } + + Uri uri = GetUserInfoUri(); + byte[] messageEmptyBody = Encoding.UTF8.GetBytes(""); + HttpWebRequest webRequest = CreateWebRequest(uri, "", messageEmptyBody, accessToken); + HttpWebResponse webResponse = HandleWebResponse(webRequest, "CxRESTApiLogin->GetPermissions->Rest API, status message: ", "Login Failed"); + ArrayList sastPermissions = ParseJsonPermissionsFromResponse(webResponse); + _login.SaveSastScan = sastPermissions.Contains(Constants.SAVE_SAST_SCAN); + _login.ManageResultsComment = sastPermissions.Contains(Constants.MANAGE_RESULTS_COMMENT); + _login.ManageResultsExploitability = sastPermissions.Contains(Constants.MANAGE_RESULTS_EXPLOITABILITY); + } + + private ArrayList ParseJsonPermissionsFromResponse(HttpWebResponse webResponse) + { + ArrayList sastPermissions = null; + string json; + using (StreamReader readStream = new StreamReader(webResponse.GetResponseStream(), Encoding.UTF8)) + { + json = readStream.ReadToEnd(); + JsonSerializerSettings settings = new JsonSerializerSettings(); + settings.TypeNameHandling = TypeNameHandling.None; + UserInfoDTO userInfoDTO = JsonConvert.DeserializeObject(json, settings); + sastPermissions = userInfoDTO.SastPermissions; + } + return sastPermissions; + } + + + #endregion + + #region Private methods + + private HttpWebRequest GetWebRequest(Uri uri, string messageBody, string accessToken) + { + HttpWebRequest webRequest = new CxRESTApiWebRequestCore().Create(uri, "POST"); + webRequest.ContentType = requestContentType; + webRequest.ContentLength = messageBody.Length; + if (!string.IsNullOrEmpty(accessToken)) + { + webRequest.Headers[Constants.AUTHORIZATION_HEADER] = Constants.BEARER + accessToken; + } + return webRequest; + } + + private HttpWebRequest CreateWebRequest(Uri uri, string messageBody, byte[] messageBodyAsByteArray, string accessToken) + { + HttpWebRequest webRequest = GetWebRequest(uri, messageBody, accessToken); + + using (Stream requestStream = webRequest.GetRequestStream()) + { + requestStream.Write(messageBodyAsByteArray, 0, messageBody.Length); + requestStream.Close(); + } + + return webRequest; + } + + private HttpWebResponse HandleWebResponse(HttpWebRequest webRequest, string logErrorMessage, string errorMessage) + { + HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse(); + + if (webResponse.StatusCode != HttpStatusCode.OK) + { + string message = logErrorMessage + webResponse.StatusDescription; + Logger.Create().Error(message); + System.Windows.Forms.MessageBox.Show(errorMessage, "Error", System.Windows.Forms.MessageBoxButtons.OK); + throw new WebException(message); + } + return webResponse; + } + + private long GetAccessTokenExpirationInMillis(int accessTokenExpInSec) + { + long currentTimeInMillis = DateTimeOffset.Now.ToUnixTimeMilliseconds(); + long accessTokenExpInMilli = accessTokenExpInSec * 1000; + return currentTimeInMillis + accessTokenExpInMilli; + } + + private AccessTokenDTO ParseAccessTokenJsonFromResponse(HttpWebResponse webResponse) + { + AccessTokenDTO accessTokenDTO = null; + string json; + using (StreamReader readStream = new StreamReader(webResponse.GetResponseStream(), Encoding.UTF8)) + { + json = readStream.ReadToEnd(); + JsonSerializerSettings settings = new JsonSerializerSettings(); + settings.TypeNameHandling = TypeNameHandling.None; + accessTokenDTO = JsonConvert.DeserializeObject(json, settings); + } + return accessTokenDTO; + } + + private string GetLoginMesageBody(string code) + { + string redirectUri = _login.ServerBaseUri; + if (redirectUri.EndsWith("/")) + { + redirectUri = redirectUri.Substring(0, redirectUri.Length - 1); + } + return string.Format(_messageBodyTemplateTokenFromCode, Constants.AUTHORIZATION_CODE_GRANT_TYPE, Constants.CLIENT_VALUE, redirectUri, code); + } + + private byte[] GetMesageBodyEncoded(string code) + { + string messageBody = GetLoginMesageBody(code); + return Encoding.UTF8.GetBytes(messageBody); + } + + private Uri GetTokenEndpointUri() + { + string url = string.Format("{0}{1}", Common.Text.Text.RemoveTrailingSlash(_login.ServerBaseUri), Constants.TOKEN_ENDPOINT); + + Uri uri = new Uri(url); + + return uri; + } + + private Uri GetUserInfoUri() + { + string url = string.Format("{0}{1}", Common.Text.Text.RemoveTrailingSlash(_login.ServerBaseUri), Constants.USER_INFO_ENDPOINT); + + Uri uri = new Uri(url); + + return uri; + } + + #endregion + } + + + + +} diff --git a/CxActionShared/Services/RESTApi/CxRESTApiCommon.cs b/CxActionShared/Services/RESTApi/CxRESTApiCommon.cs new file mode 100644 index 00000000..475a6e19 --- /dev/null +++ b/CxActionShared/Services/RESTApi/CxRESTApiCommon.cs @@ -0,0 +1,95 @@ +using CefSharp.DevTools.Network; +using Common; +using CxViewerAction.Entities; +using CxViewerAction.Helpers; +using CxViewerAction.WebPortal; +using System; +using System.Net; + +namespace CxViewerAction.Services +{ + public class CxRESTApiCommon + { + #region Fields + + private string _restAPIRelativePath = "/cxrestapi/"; + private string _apiCallingPath; + private const string requestContentType = "application/json, text/plain, */*"; + + #endregion + + #region ctor + public CxRESTApiCommon(string apiCallingPath) + { + _apiCallingPath = apiCallingPath; + } + #endregion + + #region API + + public HttpWebResponse InitPortalBaseUrl() + { + try + { + LoginHelper.PortalConfiguration = new CxPortalConfiguration(); + Uri uri = GetLoginUri(); + HttpWebRequest webRequest = GetWebRequest(uri); + return GetWebResponse(webRequest); + } + catch (System.Net.WebException ex) + { + var response = (System.Net.HttpWebResponse)ex.Response; + + if (response.StatusCode == HttpStatusCode.NotFound) + { + LoginHelper.PortalConfiguration.WebServer = LoginHelper.ServerBaseUrl; + } + else + { + Logger.Create().Error("CxRESTApiCommon-> " + _apiCallingPath + ": " + ex.ToString()); + } + } + return null; + } + + #endregion + + #region Private methods + + private HttpWebRequest GetWebRequest(Uri uri) + { + HttpWebRequest webRequest = new CxRESTApiWebRequestCore().Create(uri, "GET"); + webRequest.Accept = requestContentType; + OidcLoginData oidcLoginData = OidcLoginData.GetOidcLoginDataInstance(); + if (CxVSWebServiceWrapper.IsTokenExpired(oidcLoginData)) + { + oidcLoginData = OidcLoginData.GetOidcLoginDataInstance(); + }; + webRequest.Headers.Clear(); + webRequest.Headers.Add(Constants.AUTHORIZATION_HEADER, Constants.BEARER + oidcLoginData.AccessToken); + return webRequest; + } + + private HttpWebResponse GetWebResponse(HttpWebRequest webRequest) + { + HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse(); + + if (webResponse.StatusCode != HttpStatusCode.OK) + { + Logger.Create().Error("CxRESTApiCoomon->HandleWebResponse->Rest API, status message: " + webResponse.StatusDescription); + } + return webResponse; + } + + private Uri GetLoginUri() + { + string url = string.Format("{0}{1}", + Common.Text.Text.RemoveTrailingSlash(LoginHelper.ServerBaseUrl), + _restAPIRelativePath + _apiCallingPath); + + return new Uri(url); + } + + #endregion + } +} diff --git a/CxViewerAction/Services/RESTApi/CxRESTApiLogin.cs b/CxActionShared/Services/RESTApi/CxRESTApiLogin.cs similarity index 97% rename from CxViewerAction/Services/RESTApi/CxRESTApiLogin.cs rename to CxActionShared/Services/RESTApi/CxRESTApiLogin.cs index efbb2478..bbb9445e 100644 --- a/CxViewerAction/Services/RESTApi/CxRESTApiLogin.cs +++ b/CxActionShared/Services/RESTApi/CxRESTApiLogin.cs @@ -1,128 +1,128 @@ -using System; -using Common; -using System.IO; -using System.Net; -using System.Text; -using CxViewerAction.Entities; -using CxViewerAction.ValueObjects; -using Common.Code.Web; -using CxViewerAction.Helpers; - -namespace CxViewerAction.Services -{ - public class CxRESTApiLogin - { - #region Fields - - private LoginData _login; - private string _restapiRelativeUrl; - private const string requestContentType = "application/x-www-form-urlencoded; charset=UTF-8"; - private const string _messageBodyTemplate = "username={0}&password={1}"; - - #endregion - - #region Ctor - - public CxRESTApiLogin(LoginData login, string restapiRelativeUrl) - { - _login = login; - _restapiRelativeUrl = restapiRelativeUrl; - } - - #endregion - - #region API - - public CxRESTApiLoginResponse Login() - { - CxRESTApiLoginResponse cxRESTApiLoginResponse = new CxRESTApiLoginResponse(); - - try - { - Uri uri = GetLoginUri(); - string messageBody = GetMesageBody(); - byte[] messageBodyAsByteArray = GetMesageBodyEncoded(); - HttpWebRequest webRequest = CreateWebRequest(uri, messageBody, messageBodyAsByteArray); - HandleWebResponse(cxRESTApiLoginResponse, webRequest); - } - catch (Exception ex) - { - Logger.Create().Error("CxRESTApiLogin->Login: " + ex.ToString()); - throw new WebException(ex.ToString()); - } - - return cxRESTApiLoginResponse; - } - - #endregion - - #region Private methods - - private HttpWebRequest GetWebRequest(Uri uri, string messageBody) - { - HttpWebRequest webRequest = new CxRESTApiWebRequestCore().Create(uri, "POST"); - webRequest.ContentType = requestContentType; - webRequest.ContentLength = messageBody.Length; - - return webRequest; - } - - private HttpWebRequest CreateWebRequest(Uri uri, string messageBody, byte[] messageBodyAsByteArray) - { - HttpWebRequest webRequest = GetWebRequest(uri, messageBody); - - using (Stream requestStream = webRequest.GetRequestStream()) - { - requestStream.Write(messageBodyAsByteArray, 0, messageBody.Length); - requestStream.Close(); - } - - return webRequest; - } - - private void HandleWebResponse(CxRESTApiLoginResponse cxRESTApiLoginResponse, HttpWebRequest webRequest) - { - HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse(); - cxRESTApiLoginResponse.ResponseStatusCode = webResponse.StatusCode; - - if (webResponse.StatusCode != HttpStatusCode.OK) - { - Logger.Create().Error("CxRESTApiLogin->Login->Rest API, status message: " + webResponse.StatusDescription); - } - else - { - cxRESTApiLoginResponse.IsSuccessful = true; - } - - Common.Web.Cookies.FillWebReponseCookies(webRequest, webResponse); - LoginHelper.RESTApiCookies = webResponse.Cookies; - new CxRESTApiPortalConfiguration().InitPortalBaseUrl(); - - Common.Web.Cookies.SetCookiesInTheInternalBrowser(webResponse, LoginHelper.PortalConfiguration.WebServer); - } - - private string GetMesageBody() - { - string userName = WebUtilities.GetUrlEncodedString(_login.UserName); - string password = WebUtilities.GetUrlEncodedString(_login.Password); - return string.Format(_messageBodyTemplate, userName, password); - } - - private byte[] GetMesageBodyEncoded() - { - string messageBody = GetMesageBody(); - return Encoding.UTF8.GetBytes(messageBody); - } - - private Uri GetLoginUri() - { - string url = string.Format("{0}{1}", Common.Text.Text.RemoveTrailingSlash(_login.ServerBaseUri), _restapiRelativeUrl); - - Uri uri = new Uri(url); - - return uri; - } - - #endregion - } -} +using System; +using Common; +using System.IO; +using System.Net; +using System.Text; +using CxViewerAction.Entities; +using CxViewerAction.ValueObjects; +using Common.Code.Web; +using CxViewerAction.Helpers; + +namespace CxViewerAction.Services +{ + public class CxRESTApiLogin + { + #region Fields + + private LoginData _login; + private string _restapiRelativeUrl; + private const string requestContentType = "application/x-www-form-urlencoded; charset=UTF-8"; + private const string _messageBodyTemplate = "username={0}&password={1}"; + + #endregion + + #region Ctor + + public CxRESTApiLogin(LoginData login, string restapiRelativeUrl) + { + _login = login; + _restapiRelativeUrl = restapiRelativeUrl; + } + + #endregion + + #region API + + public CxRESTApiLoginResponse Login() + { + CxRESTApiLoginResponse cxRESTApiLoginResponse = new CxRESTApiLoginResponse(); + + try + { + Uri uri = GetLoginUri(); + string messageBody = GetMesageBody(); + byte[] messageBodyAsByteArray = GetMesageBodyEncoded(); + HttpWebRequest webRequest = CreateWebRequest(uri, messageBody, messageBodyAsByteArray); + HandleWebResponse(cxRESTApiLoginResponse, webRequest); + } + catch (Exception ex) + { + Logger.Create().Error("CxRESTApiLogin->Login: " + ex.ToString()); + throw new WebException(ex.ToString()); + } + + return cxRESTApiLoginResponse; + } + + #endregion + + #region Private methods + + private HttpWebRequest GetWebRequest(Uri uri, string messageBody) + { + HttpWebRequest webRequest = new CxRESTApiWebRequestCore().Create(uri, "POST"); + webRequest.ContentType = requestContentType; + webRequest.ContentLength = messageBody.Length; + + return webRequest; + } + + private HttpWebRequest CreateWebRequest(Uri uri, string messageBody, byte[] messageBodyAsByteArray) + { + HttpWebRequest webRequest = GetWebRequest(uri, messageBody); + + using (Stream requestStream = webRequest.GetRequestStream()) + { + requestStream.Write(messageBodyAsByteArray, 0, messageBody.Length); + requestStream.Close(); + } + + return webRequest; + } + + private void HandleWebResponse(CxRESTApiLoginResponse cxRESTApiLoginResponse, HttpWebRequest webRequest) + { + HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse(); + cxRESTApiLoginResponse.ResponseStatusCode = webResponse.StatusCode; + + if (webResponse.StatusCode != HttpStatusCode.OK) + { + Logger.Create().Error("CxRESTApiLogin->Login->Rest API, status message: " + webResponse.StatusDescription); + } + else + { + cxRESTApiLoginResponse.IsSuccessful = true; + } + + Common.Web.Cookies.FillWebReponseCookies(webRequest, webResponse); + LoginHelper.RESTApiCookies = webResponse.Cookies; + new CxRESTApiPortalConfiguration().InitPortalBaseUrl(); + + Common.Web.Cookies.SetCookiesInTheInternalBrowser(webResponse, LoginHelper.PortalConfiguration.WebServer); + } + + private string GetMesageBody() + { + string userName = WebUtilities.GetUrlEncodedString(_login.UserName); + string password = WebUtilities.GetUrlEncodedString(_login.Password); + return string.Format(_messageBodyTemplate, userName, password); + } + + private byte[] GetMesageBodyEncoded() + { + string messageBody = GetMesageBody(); + return Encoding.UTF8.GetBytes(messageBody); + } + + private Uri GetLoginUri() + { + string url = string.Format("{0}{1}", Common.Text.Text.RemoveTrailingSlash(_login.ServerBaseUri), _restapiRelativeUrl); + + Uri uri = new Uri(url); + + return uri; + } + + #endregion + } +} diff --git a/CxActionShared/Services/RESTApi/CxRESTApiNoneConfiguration.cs b/CxActionShared/Services/RESTApi/CxRESTApiNoneConfiguration.cs new file mode 100644 index 00000000..35f15dea --- /dev/null +++ b/CxActionShared/Services/RESTApi/CxRESTApiNoneConfiguration.cs @@ -0,0 +1,145 @@ +using Common; +using CxViewerAction.Entities; +using CxViewerAction.Helpers; +using CxViewerAction.WebPortal; +using System; +using System.IO; +using System.Net; +using System.Text; +using System.Web.Script.Serialization; + +namespace CxViewerAction.Services +{ + public class CxRESTApiNoneConfiguration + { + #region Fields + + private string _restAPIRelativePath = "/cxrestapi/Configurations/None"; + private const string requestContentType = "application/json, text/plain, */*"; + + #endregion + + #region API + + public void InitNoneBaseUrl() + { + try + { + LoginHelper.PortalConfiguration = new CxPortalConfiguration(); + Uri uri = GetLoginUri(); + HttpWebRequest webRequest = GetWebRequest(uri); + CxPortalConfiguration result = GetWebResponse(webRequest); + LoginHelper.PortalConfiguration.WebServer = GetWebServerBaseUrl(result.WebServer); + } + catch (System.Net.WebException ex) + { + var response = (System.Net.HttpWebResponse)ex.Response; + + if (response.StatusCode == HttpStatusCode.NotFound) + { + LoginHelper.PortalConfiguration.WebServer = LoginHelper.ServerBaseUrl; + } + else + { + Logger.Create().Error("CxRESTApiPortalConfiguration->GetPortalBaseUrl: " + ex.ToString()); + } + } + } + + public CxPortalConfiguration InitNoneConfigurationDetails() + { + try + { + LoginHelper.PortalConfiguration = new CxPortalConfiguration(); + Uri uri = GetLoginUri(); + HttpWebRequest webRequest = GetWebRequest(uri); + return GetWebResponse(webRequest); + } + catch (System.Net.WebException ex) + { + var response = (System.Net.HttpWebResponse)ex.Response; + + if (response.StatusCode == HttpStatusCode.NotFound) + { + LoginHelper.PortalConfiguration.WebServer = LoginHelper.ServerBaseUrl; + } + else + { + Logger.Create().Error("CxRESTApiPortalConfiguration->InitPortalConfigurationDetails: " + ex.ToString()); + } + } + return null; + } + #endregion + + #region Private methods + + private string GetWebServerBaseUrl(string url) + { + if (string.IsNullOrEmpty(url)) + { + return LoginHelper.ServerBaseUrl; + } + + Uri uri = new Uri(LoginHelper.ServerBaseUrl); + + if (!url.StartsWith(uri.Scheme)) + { + return string.Format("{0}://{1}", uri.Scheme, url); + } + + return url; + } + + private HttpWebRequest GetWebRequest(Uri uri) + { + HttpWebRequest webRequest = new CxRESTApiWebRequestCore().Create(uri, "GET"); + webRequest.Accept = requestContentType; + OidcLoginData oidcLoginData = OidcLoginData.GetOidcLoginDataInstance(); + if (CxVSWebServiceWrapper.IsTokenExpired(oidcLoginData)) + { + //get the login data again with the new access token + oidcLoginData = OidcLoginData.GetOidcLoginDataInstance(); + }; + webRequest.Headers.Clear(); + webRequest.Headers.Add(Constants.AUTHORIZATION_HEADER, Constants.BEARER + oidcLoginData.AccessToken); + return webRequest; + } + + private CxPortalConfiguration GetWebResponse(HttpWebRequest webRequest) + { + string responseText = string.Empty; + CxPortalConfiguration portalConfiguration = new CxPortalConfiguration(); + HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse(); + + if (webResponse.StatusCode != HttpStatusCode.OK) + { + Logger.Create().Error("CxRESTApiPortalConfiguration->HandleWebResponse->Rest API, status message: " + webResponse.StatusDescription); + } + + using (StreamReader reader = new StreamReader(webResponse.GetResponseStream(), ASCIIEncoding.ASCII)) + { + responseText = reader.ReadToEnd(); + } + + if (!string.IsNullOrEmpty(responseText)) + { + JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer(); + portalConfiguration = (CxPortalConfiguration)javaScriptSerializer.Deserialize(responseText, typeof(CxPortalConfiguration)); + } + + return portalConfiguration; + } + + private Uri GetLoginUri() + { + string url = string.Format("{0}{1}", + Common.Text.Text.RemoveTrailingSlash(LoginHelper.ServerBaseUrl), + _restAPIRelativePath); + + return new Uri(url); + } + + #endregion + } +} diff --git a/CxViewerAction/Services/RESTApi/CxRESTApiPortalConfiguration.cs b/CxActionShared/Services/RESTApi/CxRESTApiPortalConfiguration.cs similarity index 81% rename from CxViewerAction/Services/RESTApi/CxRESTApiPortalConfiguration.cs rename to CxActionShared/Services/RESTApi/CxRESTApiPortalConfiguration.cs index 9641d722..9776ec33 100644 --- a/CxViewerAction/Services/RESTApi/CxRESTApiPortalConfiguration.cs +++ b/CxActionShared/Services/RESTApi/CxRESTApiPortalConfiguration.cs @@ -1,121 +1,145 @@ -using Common; -using CxViewerAction.Entities; -using CxViewerAction.Helpers; -using CxViewerAction.WebPortal; -using System; -using System.IO; -using System.Net; -using System.Text; -using System.Web.Script.Serialization; - -namespace CxViewerAction.Services -{ - public class CxRESTApiPortalConfiguration - { - #region Fields - - private string _restAPIRelativePath = "/cxrestapi/Configurations/Portal"; - private const string requestContentType = "application/json, text/plain, */*"; - - #endregion - - #region API - - public void InitPortalBaseUrl() - { - try - { - LoginHelper.PortalConfiguration = new CxPortalConfiguration(); - Uri uri = GetLoginUri(); - HttpWebRequest webRequest = GetWebRequest(uri); - CxPortalConfiguration result = GetWebResponse(webRequest); - LoginHelper.PortalConfiguration.WebServer = GetWebServerBaseUrl(result.WebServer); - } - catch (System.Net.WebException ex) - { - var response = (System.Net.HttpWebResponse)ex.Response; - - if (response.StatusCode == HttpStatusCode.NotFound) - { - LoginHelper.PortalConfiguration.WebServer = LoginHelper.ServerBaseUrl; - } - else - { - Logger.Create().Error("CxRESTApiPortalConfiguration->GetPortalBaseUrl: " + ex.ToString()); - } - } - } - - #endregion - - #region Private methods - - private string GetWebServerBaseUrl(string url) - { - if (string.IsNullOrEmpty(url)) - { - return LoginHelper.ServerBaseUrl; - } - - Uri uri = new Uri(LoginHelper.ServerBaseUrl); - - if (!url.StartsWith(uri.Scheme)) - { - return string.Format("{0}://{1}", uri.Scheme, url); - } - - return url; - } - - private HttpWebRequest GetWebRequest(Uri uri) - { - HttpWebRequest webRequest = new CxRESTApiWebRequestCore().Create(uri, "GET"); - webRequest.Accept = requestContentType; - OidcLoginData oidcLoginData = OidcLoginData.GetOidcLoginDataInstance(); - if (CxVSWebServiceWrapper.IsTokenExpired(oidcLoginData)) - { - //get the login data again with the new access token - oidcLoginData = OidcLoginData.GetOidcLoginDataInstance(); - }; - webRequest.Headers.Clear(); - webRequest.Headers.Add(Constants.AUTHORIZATION_HEADER, Constants.BEARER + oidcLoginData.AccessToken); - return webRequest; - } - - private CxPortalConfiguration GetWebResponse(HttpWebRequest webRequest) - { - string responseText = string.Empty; - CxPortalConfiguration portalConfiguration = new CxPortalConfiguration(); - HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse(); - - if (webResponse.StatusCode != HttpStatusCode.OK) - { - Logger.Create().Error("CxRESTApiPortalConfiguration->HandleWebResponse->Rest API, status message: " + webResponse.StatusDescription); - } - - using (StreamReader reader = new StreamReader(webResponse.GetResponseStream(), ASCIIEncoding.ASCII)) - { - responseText = reader.ReadToEnd(); - } - - if (!string.IsNullOrEmpty(responseText)) - { - JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer(); - portalConfiguration = (CxPortalConfiguration)javaScriptSerializer.Deserialize(responseText, typeof(CxPortalConfiguration)); - } - - return portalConfiguration; - } - - private Uri GetLoginUri() - { - string url = string.Format("{0}{1}", - Common.Text.Text.RemoveTrailingSlash(LoginHelper.ServerBaseUrl), - _restAPIRelativePath); - - return new Uri(url); - } - - #endregion - } -} +using Common; +using CxViewerAction.Entities; +using CxViewerAction.Helpers; +using CxViewerAction.WebPortal; +using System; +using System.IO; +using System.Net; +using System.Text; +using System.Web.Script.Serialization; + +namespace CxViewerAction.Services +{ + public class CxRESTApiPortalConfiguration + { + #region Fields + + private string _restAPIRelativePath = "/cxrestapi/Configurations/Portal"; + private const string requestContentType = "application/json, text/plain, */*"; + + #endregion + + #region API + + public void InitPortalBaseUrl() + { + try + { + LoginHelper.PortalConfiguration = new CxPortalConfiguration(); + Uri uri = GetLoginUri(); + HttpWebRequest webRequest = GetWebRequest(uri); + CxPortalConfiguration result = GetWebResponse(webRequest); + LoginHelper.PortalConfiguration.WebServer = GetWebServerBaseUrl(result.WebServer); + } + catch (System.Net.WebException ex) + { + var response = (System.Net.HttpWebResponse)ex.Response; + + if (response.StatusCode == HttpStatusCode.NotFound) + { + LoginHelper.PortalConfiguration.WebServer = LoginHelper.ServerBaseUrl; + } + else + { + Logger.Create().Error("CxRESTApiPortalConfiguration->GetPortalBaseUrl: " + ex.ToString()); + } + } + } + + public CxPortalConfiguration InitPortalConfigurationDetails() + { + try + { + LoginHelper.PortalConfiguration = new CxPortalConfiguration(); + Uri uri = GetLoginUri(); + HttpWebRequest webRequest = GetWebRequest(uri); + return GetWebResponse(webRequest); + } + catch (System.Net.WebException ex) + { + var response = (System.Net.HttpWebResponse)ex.Response; + + if (response.StatusCode == HttpStatusCode.NotFound) + { + LoginHelper.PortalConfiguration.WebServer = LoginHelper.ServerBaseUrl; + } + else + { + Logger.Create().Error("CxRESTApiPortalConfiguration->InitPortalConfigurationDetails: " + ex.ToString()); + } + } + return null; + } + #endregion + + #region Private methods + + private string GetWebServerBaseUrl(string url) + { + if (string.IsNullOrEmpty(url)) + { + return LoginHelper.ServerBaseUrl; + } + + Uri uri = new Uri(LoginHelper.ServerBaseUrl); + + if (!url.StartsWith(uri.Scheme)) + { + return string.Format("{0}://{1}", uri.Scheme, url); + } + + return url; + } + + private HttpWebRequest GetWebRequest(Uri uri) + { + HttpWebRequest webRequest = new CxRESTApiWebRequestCore().Create(uri, "GET"); + webRequest.Accept = requestContentType; + OidcLoginData oidcLoginData = OidcLoginData.GetOidcLoginDataInstance(); + if (CxVSWebServiceWrapper.IsTokenExpired(oidcLoginData)) + { + //get the login data again with the new access token + oidcLoginData = OidcLoginData.GetOidcLoginDataInstance(); + }; + webRequest.Headers.Clear(); + webRequest.Headers.Add(Constants.AUTHORIZATION_HEADER, Constants.BEARER + oidcLoginData.AccessToken); + return webRequest; + } + + private CxPortalConfiguration GetWebResponse(HttpWebRequest webRequest) + { + string responseText = string.Empty; + CxPortalConfiguration portalConfiguration = new CxPortalConfiguration(); + HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse(); + + if (webResponse.StatusCode != HttpStatusCode.OK) + { + Logger.Create().Error("CxRESTApiPortalConfiguration->HandleWebResponse->Rest API, status message: " + webResponse.StatusDescription); + } + + using (StreamReader reader = new StreamReader(webResponse.GetResponseStream(), ASCIIEncoding.ASCII)) + { + responseText = reader.ReadToEnd(); + } + + if (!string.IsNullOrEmpty(responseText)) + { + JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer(); + portalConfiguration = (CxPortalConfiguration)javaScriptSerializer.Deserialize(responseText, typeof(CxPortalConfiguration)); + } + + return portalConfiguration; + } + + private Uri GetLoginUri() + { + string url = string.Format("{0}{1}", + Common.Text.Text.RemoveTrailingSlash(LoginHelper.ServerBaseUrl), + _restAPIRelativePath); + + return new Uri(url); + } + + #endregion + } +} diff --git a/CxViewerAction/Services/RESTApi/CxRESTApiWebRequestBase.cs b/CxActionShared/Services/RESTApi/CxRESTApiWebRequestBase.cs similarity index 96% rename from CxViewerAction/Services/RESTApi/CxRESTApiWebRequestBase.cs rename to CxActionShared/Services/RESTApi/CxRESTApiWebRequestBase.cs index 6db0bc63..c7cf62c9 100644 --- a/CxViewerAction/Services/RESTApi/CxRESTApiWebRequestBase.cs +++ b/CxActionShared/Services/RESTApi/CxRESTApiWebRequestBase.cs @@ -1,49 +1,49 @@ -using System; -using System.Net; - -namespace CxViewerAction.Services -{ - public class CxRESTApiWebRequestCore - { - #region Fields - - public const string CX_ORIGIN_CUSTOM_HEADER_NAME = "cxOrigin"; - public string _visualStudioPluginName = "cx-VS"; - - #endregion - - #region API - - public HttpWebRequest Create(Uri uri) - { - return CreateRequest(uri); - } - - public HttpWebRequest Create(Uri uri, string httpMethod) - { - return CreateRequest(uri, httpMethod); - } - - #endregion - - #region Private methods - - private HttpWebRequest CreateRequest(Uri uri, string httpMethod = null) - { - HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(uri); - webRequest.Headers[CX_ORIGIN_CUSTOM_HEADER_NAME] = _visualStudioPluginName; - webRequest.CookieContainer = new CookieContainer(); - webRequest.Credentials = CredentialCache.DefaultNetworkCredentials; - webRequest.UseDefaultCredentials = true; - - if (!string.IsNullOrEmpty(httpMethod)) - { - webRequest.Method = httpMethod; - } - - return webRequest; - } - - #endregion - } -} +using System; +using System.Net; + +namespace CxViewerAction.Services +{ + public class CxRESTApiWebRequestCore + { + #region Fields + + public const string CX_ORIGIN_CUSTOM_HEADER_NAME = "cxOrigin"; + public string _visualStudioPluginName = "cx-VS"; + + #endregion + + #region API + + public HttpWebRequest Create(Uri uri) + { + return CreateRequest(uri); + } + + public HttpWebRequest Create(Uri uri, string httpMethod) + { + return CreateRequest(uri, httpMethod); + } + + #endregion + + #region Private methods + + private HttpWebRequest CreateRequest(Uri uri, string httpMethod = null) + { + HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(uri); + webRequest.Headers[CX_ORIGIN_CUSTOM_HEADER_NAME] = _visualStudioPluginName; + webRequest.CookieContainer = new CookieContainer(); + webRequest.Credentials = CredentialCache.DefaultNetworkCredentials; + webRequest.UseDefaultCredentials = true; + + if (!string.IsNullOrEmpty(httpMethod)) + { + webRequest.Method = httpMethod; + } + + return webRequest; + } + + #endregion + } +} diff --git a/CxViewerAction/Services/WinCookieHelper.cs b/CxActionShared/Services/WinCookieHelper.cs similarity index 95% rename from CxViewerAction/Services/WinCookieHelper.cs rename to CxActionShared/Services/WinCookieHelper.cs index f441aa53..c707e65f 100644 --- a/CxViewerAction/Services/WinCookieHelper.cs +++ b/CxActionShared/Services/WinCookieHelper.cs @@ -1,47 +1,47 @@ -using System; -using System.Runtime.InteropServices; - -namespace CxViewerAction.Services -{ - public static class WinCookieHelper - { - //A helper class to clear the cookies before navigating to a URL - public static bool SupressCookiePersist() - { - // 3 = INTERNET_SUPPRESS_COOKIE_PERSIST - // 81 = INTERNET_OPTION_SUPPRESS_BEHAVIOR - return SetOption(81, 3); - } - - public static bool EndBrowserSession() - { - // 42 = INTERNET_OPTION_END_BROWSER_SESSION - return SetOption(42, null); - } - - static bool SetOption(int settingCode, int? option) - { - IntPtr optionPtr = IntPtr.Zero; - int size = 0; - if (option.HasValue) - { - size = sizeof(int); - optionPtr = Marshal.AllocCoTaskMem(size); - Marshal.WriteInt32(optionPtr, option.Value); - } - - bool success = InternetSetOption(0, settingCode, optionPtr, size); - - if (optionPtr != IntPtr.Zero) Marshal.Release(optionPtr); - return success; - } - - [DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)] - private static extern bool InternetSetOption( - int hInternet, - int dwOption, - IntPtr lpBuffer, - int dwBufferLength - ); - } -} +using System; +using System.Runtime.InteropServices; + +namespace CxViewerAction.Services +{ + public static class WinCookieHelper + { + //A helper class to clear the cookies before navigating to a URL + public static bool SupressCookiePersist() + { + // 3 = INTERNET_SUPPRESS_COOKIE_PERSIST + // 81 = INTERNET_OPTION_SUPPRESS_BEHAVIOR + return SetOption(81, 3); + } + + public static bool EndBrowserSession() + { + // 42 = INTERNET_OPTION_END_BROWSER_SESSION + return SetOption(42, null); + } + + static bool SetOption(int settingCode, int? option) + { + IntPtr optionPtr = IntPtr.Zero; + int size = 0; + if (option.HasValue) + { + size = sizeof(int); + optionPtr = Marshal.AllocCoTaskMem(size); + Marshal.WriteInt32(optionPtr, option.Value); + } + + bool success = InternetSetOption(0, settingCode, optionPtr, size); + + if (optionPtr != IntPtr.Zero) Marshal.Release(optionPtr); + return success; + } + + [DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)] + private static extern bool InternetSetOption( + int hInternet, + int dwOption, + IntPtr lpBuffer, + int dwBufferLength + ); + } +} diff --git a/CxViewerAction/ValueObjects/OidcLoginResult.cs b/CxActionShared/ValueObjects/OidcLoginResult.cs similarity index 95% rename from CxViewerAction/ValueObjects/OidcLoginResult.cs rename to CxActionShared/ValueObjects/OidcLoginResult.cs index b69947cf..40753522 100644 --- a/CxViewerAction/ValueObjects/OidcLoginResult.cs +++ b/CxActionShared/ValueObjects/OidcLoginResult.cs @@ -1,25 +1,25 @@ -namespace CxViewerAction.ValueObjects -{ - public class OidcLoginResult : Results - { - #region Ctor - - public OidcLoginResult(string code) - : this(true, string.Empty, code) { } - - public OidcLoginResult(bool isSuccessful, string resultMessage, string code) - { - IsSuccessful = isSuccessful; - ResultMessage = resultMessage; - Code = code; - } - - #endregion - - #region Properties - - public string Code { get; private set; } - - #endregion - } -} +namespace CxViewerAction.ValueObjects +{ + public class OidcLoginResult : Results + { + #region Ctor + + public OidcLoginResult(string code) + : this(true, string.Empty, code) { } + + public OidcLoginResult(bool isSuccessful, string resultMessage, string code) + { + IsSuccessful = isSuccessful; + ResultMessage = resultMessage; + Code = code; + } + + #endregion + + #region Properties + + public string Code { get; private set; } + + #endregion + } +} diff --git a/CxActionShared/ValueObjects/RESTApi/CxAppSecCodbashing.cs b/CxActionShared/ValueObjects/RESTApi/CxAppSecCodbashing.cs new file mode 100644 index 00000000..b650a6aa --- /dev/null +++ b/CxActionShared/ValueObjects/RESTApi/CxAppSecCodbashing.cs @@ -0,0 +1,16 @@ +namespace CxViewerAction.ValueObjects +{ + public class CxAppSecCodbashing + { + public string url { get; set; } + public Paramteres paramteres { get; set; } + } + + public class Paramteres + { + public string serviceProviderId { get; set; } + public string utm_source { get; set; } + public string utm_campaign { get; set; } + public string queryId { get; set; } + } +} diff --git a/CxActionShared/ValueObjects/RESTApi/CxProjectDetails.cs b/CxActionShared/ValueObjects/RESTApi/CxProjectDetails.cs new file mode 100644 index 00000000..6d9f6c14 --- /dev/null +++ b/CxActionShared/ValueObjects/RESTApi/CxProjectDetails.cs @@ -0,0 +1,10 @@ +namespace CxViewerAction.ValueObjects +{ + public class CxProjectDetails + { + public long id { get; set; } + public string name { get; set; } + public bool isPublic { get; set; } + public long teamId { get; set; } + } +} diff --git a/CxActionShared/ValueObjects/RESTApi/CxQueryDescription.cs b/CxActionShared/ValueObjects/RESTApi/CxQueryDescription.cs new file mode 100644 index 00000000..50ab7fa0 --- /dev/null +++ b/CxActionShared/ValueObjects/RESTApi/CxQueryDescription.cs @@ -0,0 +1,7 @@ +namespace CxViewerAction.ValueObjects +{ + public class CxQueryShortDescription + { + public string shortDescription { get; set; } + } +} diff --git a/CxViewerAction/ValueObjects/RESTApi/CxRESTApiLoginResponse.cs b/CxActionShared/ValueObjects/RESTApi/CxRESTApiLoginResponse.cs similarity index 95% rename from CxViewerAction/ValueObjects/RESTApi/CxRESTApiLoginResponse.cs rename to CxActionShared/ValueObjects/RESTApi/CxRESTApiLoginResponse.cs index 660a6a53..b3581851 100644 --- a/CxViewerAction/ValueObjects/RESTApi/CxRESTApiLoginResponse.cs +++ b/CxActionShared/ValueObjects/RESTApi/CxRESTApiLoginResponse.cs @@ -1,13 +1,13 @@ -using System.Net; - -namespace CxViewerAction.ValueObjects -{ - public class CxRESTApiLoginResponse : Results - { - #region Properties - - public HttpStatusCode ResponseStatusCode { get; set; } - - #endregion - } +using System.Net; + +namespace CxViewerAction.ValueObjects +{ + public class CxRESTApiLoginResponse : Results + { + #region Properties + + public HttpStatusCode ResponseStatusCode { get; set; } + + #endregion + } } \ No newline at end of file diff --git a/CxActionShared/ValueObjects/RESTApi/CxVersionInfo.cs b/CxActionShared/ValueObjects/RESTApi/CxVersionInfo.cs new file mode 100644 index 00000000..b1ddd657 --- /dev/null +++ b/CxActionShared/ValueObjects/RESTApi/CxVersionInfo.cs @@ -0,0 +1,9 @@ +namespace CxViewerAction.ValueObjects +{ + public class CxVersionInfo + { + public string version { get; set; } + public string hotFix { get; set; } + public string enginePackVersion { get; set; } + } +} diff --git a/CxActionShared/ValueObjects/RESTApi/Enum/ResultStates.cs b/CxActionShared/ValueObjects/RESTApi/Enum/ResultStates.cs new file mode 100644 index 00000000..2197ddb7 --- /dev/null +++ b/CxActionShared/ValueObjects/RESTApi/Enum/ResultStates.cs @@ -0,0 +1,11 @@ +namespace CxViewerAction.ValueObjects +{ + public enum ResultStates + { + ToVerify, + NotExploitable, + Confirmed, + Urgent, + ProposedNotExploitable + } +} \ No newline at end of file diff --git a/CxViewerAction/ValueObjects/Results.cs b/CxActionShared/ValueObjects/Results.cs similarity index 94% rename from CxViewerAction/ValueObjects/Results.cs rename to CxActionShared/ValueObjects/Results.cs index e0af9405..f07782a0 100644 --- a/CxViewerAction/ValueObjects/Results.cs +++ b/CxActionShared/ValueObjects/Results.cs @@ -1,13 +1,13 @@ -namespace CxViewerAction.ValueObjects -{ - public class Results - { - #region Properties - - public bool IsSuccessful { get; set; } - - public string ResultMessage { get; set; } - - #endregion - } -} +namespace CxViewerAction.ValueObjects +{ + public class Results + { + #region Properties + + public bool IsSuccessful { get; set; } + + public string ResultMessage { get; set; } + + #endregion + } +} diff --git a/CxActionShared/ValueObjects/WebPortal/Models/CxPortalConfiguration.cs b/CxActionShared/ValueObjects/WebPortal/Models/CxPortalConfiguration.cs new file mode 100644 index 00000000..d92e0185 --- /dev/null +++ b/CxActionShared/ValueObjects/WebPortal/Models/CxPortalConfiguration.cs @@ -0,0 +1,16 @@ +namespace CxViewerAction.WebPortal +{ + public class CxPortalConfiguration + { + #region Properties + + public string WebServer { get; set; } + + public bool MandatoryCommentOnChangeResultState { get; set; } + + public bool MandatoryCommentOnChangeResultStateToNE { get; set; } + + public bool MandatoryCommentOnChangeResultStateToPNE { get; set; } + #endregion + } +} diff --git a/CxViewerAction/Views/BindingPrjList.Designer.cs b/CxActionShared/Views/BindingPrjList.Designer.cs similarity index 55% rename from CxViewerAction/Views/BindingPrjList.Designer.cs rename to CxActionShared/Views/BindingPrjList.Designer.cs index 876ee5fa..ea7ebcd1 100644 --- a/CxViewerAction/Views/BindingPrjList.Designer.cs +++ b/CxActionShared/Views/BindingPrjList.Designer.cs @@ -1,190 +1,272 @@ -namespace CxViewerAction.Views -{ - partial class frmBindingPrjList - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.groupBox1 = new System.Windows.Forms.GroupBox(); - this.dgvProjects = new System.Windows.Forms.DataGridView(); - this.ProjectID = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.ProjectName = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.Owner = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.Group = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.btnCancel = new System.Windows.Forms.Button(); - this.panel1 = new System.Windows.Forms.Panel(); - this.cbPublic = new System.Windows.Forms.CheckBox(); - this.panel2 = new System.Windows.Forms.Panel(); - this.btnBind = new System.Windows.Forms.Button(); - this.groupBox1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.dgvProjects)).BeginInit(); - this.panel1.SuspendLayout(); - this.panel2.SuspendLayout(); - this.SuspendLayout(); - // - // groupBox1 - // - this.groupBox1.Controls.Add(this.dgvProjects); - this.groupBox1.Dock = System.Windows.Forms.DockStyle.Fill; - this.groupBox1.Location = new System.Drawing.Point(0, 0); - this.groupBox1.Name = "groupBox1"; - this.groupBox1.Size = new System.Drawing.Size(454, 218); - this.groupBox1.TabIndex = 3; - this.groupBox1.TabStop = false; - this.groupBox1.Text = "Please select project:"; - // - // dgvProjects - // - this.dgvProjects.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill; - this.dgvProjects.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.DisplayedHeaders; - this.dgvProjects.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; - this.dgvProjects.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.dgvProjects.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { - this.ProjectID, - this.ProjectName, - this.Owner, - this.Group}); - this.dgvProjects.Dock = System.Windows.Forms.DockStyle.Fill; - this.dgvProjects.Location = new System.Drawing.Point(3, 16); - this.dgvProjects.MultiSelect = false; - this.dgvProjects.Name = "dgvProjects"; - this.dgvProjects.ReadOnly = true; - this.dgvProjects.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; - this.dgvProjects.Size = new System.Drawing.Size(448, 199); - this.dgvProjects.TabIndex = 0; - // - // ProjectID - // - this.ProjectID.HeaderText = "ProjectID"; - this.ProjectID.Name = "ProjectID"; - this.ProjectID.ReadOnly = true; - this.ProjectID.Visible = false; - // - // ProjectName - // - this.ProjectName.HeaderText = "ProjectName"; - this.ProjectName.Name = "ProjectName"; - this.ProjectName.ReadOnly = true; - // - // Owner - // - this.Owner.HeaderText = "Owner"; - this.Owner.Name = "Owner"; - this.Owner.ReadOnly = true; - // - // Group - // - this.Group.HeaderText = "Group"; - this.Group.Name = "Group"; - this.Group.ReadOnly = true; - // - // btnCancel - // - this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.btnCancel.Location = new System.Drawing.Point(84, 3); - this.btnCancel.Name = "btnCancel"; - this.btnCancel.Size = new System.Drawing.Size(75, 23); - this.btnCancel.TabIndex = 5; - this.btnCancel.Text = "Cancel"; - this.btnCancel.UseVisualStyleBackColor = true; - // - // panel1 - // - this.panel1.Controls.Add(this.cbPublic); - this.panel1.Controls.Add(this.panel2); - this.panel1.Dock = System.Windows.Forms.DockStyle.Bottom; - this.panel1.Location = new System.Drawing.Point(0, 218); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(454, 32); - this.panel1.TabIndex = 6; - // - // cbPublic - // - this.cbPublic.AutoSize = true; - this.cbPublic.Location = new System.Drawing.Point(13, 7); - this.cbPublic.Name = "cbPublic"; - this.cbPublic.Size = new System.Drawing.Size(118, 17); - this.cbPublic.TabIndex = 8; - this.cbPublic.Text = "Make Scans Public"; - this.cbPublic.UseVisualStyleBackColor = true; - this.cbPublic.Visible = false; - // - // panel2 - // - this.panel2.Controls.Add(this.btnBind); - this.panel2.Controls.Add(this.btnCancel); - this.panel2.Dock = System.Windows.Forms.DockStyle.Right; - this.panel2.Location = new System.Drawing.Point(286, 0); - this.panel2.Name = "panel2"; - this.panel2.Size = new System.Drawing.Size(168, 32); - this.panel2.TabIndex = 7; - // - // btnBind - // - this.btnBind.DialogResult = System.Windows.Forms.DialogResult.OK; - this.btnBind.Location = new System.Drawing.Point(3, 4); - this.btnBind.Name = "btnBind"; - this.btnBind.Size = new System.Drawing.Size(75, 23); - this.btnBind.TabIndex = 6; - this.btnBind.Text = "Bind"; - this.btnBind.UseVisualStyleBackColor = true; - // - // frmBindingPrjList - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(454, 250); - this.Controls.Add(this.groupBox1); - this.Controls.Add(this.panel1); - this.Name = "frmBindingPrjList"; - this.ShowIcon = false; - this.Text = "Bind to project"; - this.TopMost = true; - this.Load += new System.EventHandler(this.BindingPrjList_Load); - this.groupBox1.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.dgvProjects)).EndInit(); - this.panel1.ResumeLayout(false); - this.panel1.PerformLayout(); - this.panel2.ResumeLayout(false); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.GroupBox groupBox1; - private System.Windows.Forms.Button btnCancel; - private System.Windows.Forms.Panel panel1; - private System.Windows.Forms.Button btnBind; - private System.Windows.Forms.DataGridViewTextBoxColumn ProjectID; - private System.Windows.Forms.DataGridViewTextBoxColumn ProjectName; - private System.Windows.Forms.DataGridViewTextBoxColumn Owner; - private System.Windows.Forms.DataGridViewTextBoxColumn Group; - private System.Windows.Forms.DataGridView dgvProjects; - private System.Windows.Forms.Panel panel2; - private System.Windows.Forms.CheckBox cbPublic; - } +using CxViewerAction.Helpers.DrawingHelper; +using System.Drawing; +using System.Windows.Forms; + +namespace CxViewerAction.Views +{ + partial class frmBindingPrjList + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.btnCancel = new System.Windows.Forms.Button(); + this.panel1 = new System.Windows.Forms.Panel(); + this.cbPublic = new System.Windows.Forms.CheckBox(); + this.panel2 = new System.Windows.Forms.Panel(); + this.btnBind = new System.Windows.Forms.Button(); + this.label1 = new System.Windows.Forms.Label(); + this.checkBox1 = new System.Windows.Forms.CheckBox(); + this.textBox1 = new System.Windows.Forms.TextBox(); + this.pictureBox1 = new System.Windows.Forms.PictureBox(); + this.panel4 = new System.Windows.Forms.Panel(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.dgvProjects = new System.Windows.Forms.DataGridView(); + this.ProjectID = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.ProjectName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Owner = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Group = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.panel1.SuspendLayout(); + this.panel2.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); + this.panel4.SuspendLayout(); + this.groupBox1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dgvProjects)).BeginInit(); + this.SuspendLayout(); + // + // btnCancel + // + this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.btnCancel.Location = new System.Drawing.Point(126, 5); + this.btnCancel.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.btnCancel.Name = "btnCancel"; + this.btnCancel.Size = new System.Drawing.Size(112, 35); + this.btnCancel.TabIndex = 5; + this.btnCancel.Text = "Cancel"; + this.btnCancel.UseVisualStyleBackColor = true; + // + // panel1 + // + this.panel1.Controls.Add(this.cbPublic); + this.panel1.Controls.Add(this.panel2); + this.panel1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.panel1.Location = new System.Drawing.Point(0, 514); + this.panel1.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(912, 47); + this.panel1.TabIndex = 6; + // + // cbPublic + // + this.cbPublic.AutoSize = true; + this.cbPublic.Location = new System.Drawing.Point(20, 11); + this.cbPublic.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.cbPublic.Name = "cbPublic"; + this.cbPublic.Size = new System.Drawing.Size(169, 24); + this.cbPublic.TabIndex = 8; + this.cbPublic.Text = "Make Scans Public"; + this.cbPublic.UseVisualStyleBackColor = true; + this.cbPublic.Visible = false; + // + // panel2 + // + this.panel2.Controls.Add(this.btnBind); + this.panel2.Controls.Add(this.btnCancel); + this.panel2.Dock = System.Windows.Forms.DockStyle.Right; + this.panel2.Location = new System.Drawing.Point(660, 0); + this.panel2.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.panel2.Name = "panel2"; + this.panel2.Size = new System.Drawing.Size(252, 47); + this.panel2.TabIndex = 7; + // + // btnBind + // + this.btnBind.DialogResult = System.Windows.Forms.DialogResult.OK; + this.btnBind.Location = new System.Drawing.Point(4, 6); + this.btnBind.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.btnBind.Name = "btnBind"; + this.btnBind.Size = new System.Drawing.Size(112, 35); + this.btnBind.TabIndex = 6; + this.btnBind.Text = "Bind"; + this.btnBind.UseVisualStyleBackColor = true; + // + // label1 + // + this.label1.Location = new System.Drawing.Point(12, 9); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(187, 20); + this.label1.TabIndex = 7; + this.label1.Text = "Search by Project Name: "; + // + // checkBox1 + // + this.checkBox1.Location = new System.Drawing.Point(522, 12); + this.checkBox1.Name = "checkBox1"; + this.checkBox1.Size = new System.Drawing.Size(154, 24); + this.checkBox1.TabIndex = 9; + this.checkBox1.Text = "Show all projects"; + this.checkBox1.UseVisualStyleBackColor = true; + this.checkBox1.CheckedChanged += new System.EventHandler(this.checkBox1_CheckedChanged); + // + // textBox1 + // + this.textBox1.Location = new System.Drawing.Point(205, 9); + this.textBox1.Name = "textBox1"; + this.textBox1.Size = new System.Drawing.Size(181, 26); + this.textBox1.TabIndex = 8; + this.textBox1.TextChanged += new System.EventHandler(this.textBox1_TextChanged); + // + // pictureBox1 + // + this.pictureBox1.Image = DrawingHelper.GetResourceCloseByAssembly(); + this.pictureBox1.BackColor = System.Drawing.Color.White; + this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.pictureBox1.Location = new System.Drawing.Point(386, 9); + this.pictureBox1.Name = "pictureBox1"; + this.pictureBox1.Size = new System.Drawing.Size(25, 26); + this.pictureBox1.TabIndex = 12; + this.pictureBox1.TabStop = false; + this.pictureBox1.Click += new System.EventHandler(this.pictureBox1_Click); + // + // panel4 + // + this.panel4.Controls.Add(this.pictureBox1); + this.panel4.Controls.Add(this.label1); + this.panel4.Controls.Add(this.checkBox1); + this.panel4.Controls.Add(this.textBox1); + this.panel4.Dock = System.Windows.Forms.DockStyle.Top; + this.panel4.Location = new System.Drawing.Point(0, 0); + this.panel4.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.panel4.Name = "panel4"; + this.panel4.Size = new System.Drawing.Size(912, 49); + this.panel4.TabIndex = 13; + // + // groupBox1 + // + this.groupBox1.Controls.Add(this.dgvProjects); + this.groupBox1.Dock = System.Windows.Forms.DockStyle.Fill; + this.groupBox1.Location = new System.Drawing.Point(0, 49); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(912, 465); + this.groupBox1.TabIndex = 14; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Please select project:"; + // + // dgvProjects + // + this.dgvProjects.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill; + this.dgvProjects.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.DisplayedHeaders; + this.dgvProjects.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.dgvProjects.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgvProjects.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.ProjectID, + this.ProjectName, + this.Owner, + this.Group}); + this.dgvProjects.Dock = System.Windows.Forms.DockStyle.Fill; + this.dgvProjects.Location = new System.Drawing.Point(3, 22); + this.dgvProjects.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.dgvProjects.MultiSelect = false; + this.dgvProjects.Name = "dgvProjects"; + this.dgvProjects.ReadOnly = true; + this.dgvProjects.RowHeadersWidth = 62; + this.dgvProjects.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; + this.dgvProjects.Size = new System.Drawing.Size(906, 440); + this.dgvProjects.TabIndex = 1; + // + // ProjectID + // + this.ProjectID.HeaderText = "ProjectID"; + this.ProjectID.MinimumWidth = 8; + this.ProjectID.Name = "ProjectID"; + this.ProjectID.ReadOnly = true; + this.ProjectID.Visible = false; + // + // ProjectName + // + this.ProjectName.HeaderText = "ProjectName"; + this.ProjectName.MinimumWidth = 8; + this.ProjectName.Name = "ProjectName"; + this.ProjectName.ReadOnly = true; + // + // Owner + // + this.Owner.HeaderText = "Owner"; + this.Owner.MinimumWidth = 8; + this.Owner.Name = "Owner"; + this.Owner.ReadOnly = true; + // + // Group + // + this.Group.HeaderText = "Team"; + this.Group.MinimumWidth = 8; + this.Group.Name = "Group"; + this.Group.ReadOnly = true; + // + // frmBindingPrjList + // + this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(912, 561); + this.Controls.Add(this.groupBox1); + this.Controls.Add(this.panel4); + this.Controls.Add(this.panel1); + this.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.Name = "frmBindingPrjList"; + this.ShowIcon = false; + this.Text = "Bind to project"; + this.TopMost = true; + this.Load += new System.EventHandler(this.BindingPrjList_Load); + this.panel1.ResumeLayout(false); + this.panel1.PerformLayout(); + this.panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); + this.panel4.ResumeLayout(false); + this.panel4.PerformLayout(); + this.groupBox1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.dgvProjects)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + private System.Windows.Forms.Button btnCancel; + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.Button btnBind; + private System.Windows.Forms.Panel panel2; + private System.Windows.Forms.CheckBox cbPublic; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.CheckBox checkBox1; + private System.Windows.Forms.TextBox textBox1; + private System.Windows.Forms.PictureBox pictureBox1; + private Panel panel4; + private GroupBox groupBox1; + private DataGridView dgvProjects; + private DataGridViewTextBoxColumn ProjectID; + private DataGridViewTextBoxColumn ProjectName; + private DataGridViewTextBoxColumn Owner; + private DataGridViewTextBoxColumn Group; + } } \ No newline at end of file diff --git a/CxActionShared/Views/BindingPrjList.cs b/CxActionShared/Views/BindingPrjList.cs new file mode 100644 index 00000000..433eea67 --- /dev/null +++ b/CxActionShared/Views/BindingPrjList.cs @@ -0,0 +1,186 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; +using CxViewerAction.CxVSWebService; +using Common; +using CefSharp.DevTools.CSS; +using System.Linq; +using CxViewerAction.Entities; +using CxViewerAction.Helpers; +using System.Web.UI.WebControls; + +namespace CxViewerAction.Views +{ + public partial class frmBindingPrjList : Form, IBindProjectView + { + private int defaultProjectDisplayCount = 100; + public frmBindingPrjList() + { + Logger.Create().Debug("Loading bind Project list form."); + InitializeComponent(); + } + + private void BindingPrjList_Load(object sender, EventArgs e) + { + dgvProjects.MultiSelect = false; + } + + ProjectDisplayData[] _projectList; + + public ProjectDisplayData[] ProjectList + { + get { return _projectList; } + set + { + Array.Reverse(value); + _projectList = value; + DisplayProjectLists(value); + } + } + + public ProjectDisplayData SelectedProject + { + get + { + if (dgvProjects.SelectedRows.Count > 0 && _projectList != null) + { + foreach (ProjectDisplayData item in _projectList) + { + if (item.projectID == Convert.ToInt64(dgvProjects.SelectedRows[0].Cells[0].Value)) + { + return item; + } + } + } + return null; + } + } + + public bool isPublic + { + get + { + return cbPublic.Checked; + } + } + + + #region IView Members + + public DialogResult ShowModalView() + { + return this.ShowDialog(); + } + + public DialogResult ShowModalView(IView parent) + { + return this.ShowDialog((IWin32Window)parent); + } + + public void ShowView() + { + this.Show(); + } + + public void ShowView(IView parent) + { + this.Show((IWin32Window)parent); + } + + public void CloseView() + { + this.Close(); + } + + private void DisplayProjectLists(ProjectDisplayData[] projectList) + { + dgvProjects.Rows.Clear(); + if (projectList != null && projectList.Length > 0) + { + LoginData _loginResult = LoginHelper.Load(0); + if(_loginResult.BindProjectCount == -1) + { + checkBox1.Show(); + if (checkBox1.Checked == false && string.IsNullOrEmpty(textBox1.Text)) + { + addInBindProjectsList(projectList, defaultProjectDisplayCount); + } + else if (checkBox1.Checked == true && string.IsNullOrEmpty(textBox1.Text)) + { + addInBindProjectsList(projectList); + } + else if (!string.IsNullOrEmpty(textBox1.Text)) + { + if (checkBox1.Checked == true) + { + addInBindProjectsList(searchProjectsByName(_projectList)); + } + else + { + addInBindProjectsList(searchProjectsByName(_projectList), defaultProjectDisplayCount); + } + } + } + else + { + checkBox1.Hide(); + if(string.IsNullOrEmpty(textBox1.Text)) + { + addInBindProjectsList(_projectList, _loginResult.BindProjectCount); + } + else if (!string.IsNullOrEmpty(textBox1.Text)) + { + addInBindProjectsList(searchProjectsByName(_projectList), _loginResult.BindProjectCount); + } + } + dgvProjects.Rows[0].Selected = true; + dgvProjects.Refresh(); + } + } + + private ProjectDisplayData[] searchProjectsByName(ProjectDisplayData[] _projectList) + { + return Array.FindAll(_projectList, element => element.ProjectName.Contains(textBox1.Text)).ToArray(); + } + + private void addInBindProjectsList(ProjectDisplayData[] _projectList,int projectDisplayCount=-1) + { + if(projectDisplayCount == -1) + { + foreach (ProjectDisplayData item in _projectList) + { + dgvProjects.Rows.Add(item.projectID, item.ProjectName, item.Owner, item.Group); + } + } + else + { + for (int j = 0; j < _projectList.Count() && j < projectDisplayCount; j++) + { + dgvProjects.Rows.Add(_projectList[j].projectID, _projectList[j].ProjectName, _projectList[j].Owner, + _projectList[j].Group); + } + } + + } + + private void checkBox1_CheckedChanged(object sender, EventArgs e) + { + DisplayProjectLists(_projectList); + } + + private void pictureBox1_Click(object sender, EventArgs e) + { + textBox1.Text = ""; + } + + private void textBox1_TextChanged(object sender, EventArgs e) + { + DisplayProjectLists(_projectList); + } + #endregion + } +} \ No newline at end of file diff --git a/CxViewerAction/Views/BindingPrjList.resx b/CxActionShared/Views/BindingPrjList.resx similarity index 92% rename from CxViewerAction/Views/BindingPrjList.resx rename to CxActionShared/Views/BindingPrjList.resx index 89a18253..9c7dd0fb 100644 --- a/CxViewerAction/Views/BindingPrjList.resx +++ b/CxActionShared/Views/BindingPrjList.resx @@ -1,132 +1,132 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - True - - - True - - - True - - - True - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + True + + + True + + + True + + + True + \ No newline at end of file diff --git a/CxActionShared/Views/BrowserForm.Designer.cs b/CxActionShared/Views/BrowserForm.Designer.cs new file mode 100644 index 00000000..d156f632 --- /dev/null +++ b/CxActionShared/Views/BrowserForm.Designer.cs @@ -0,0 +1,82 @@ + +namespace CxViewerAction.Views +{ + partial class BrowserForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + //protected override void Dispose(bool disposing) + //{ + // if (disposing && (components != null)) + // { + // components.Dispose(); + // } + // base.Dispose(disposing); + //} + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(BrowserForm)); + this.txtUrl = new System.Windows.Forms.TextBox(); + this.pContainer = new System.Windows.Forms.Panel(); + this.SuspendLayout(); + // + // txtUrl + // + this.txtUrl.Location = new System.Drawing.Point(2, 1); + this.txtUrl.Name = "txtUrl"; + this.txtUrl.Size = new System.Drawing.Size(795, 20); + this.txtUrl.TabIndex = 0; + this.txtUrl.Visible = false; + // + // pContainer + // + this.pContainer.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.pContainer.Location = new System.Drawing.Point(2, 1); + this.pContainer.Name = "pContainer"; + this.pContainer.Size = new System.Drawing.Size(505, 607); + this.pContainer.TabIndex = 1; + + // + // BrowserForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(506, 609); + this.Controls.Add(this.pContainer); + this.Controls.Add(this.txtUrl); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "BrowserForm"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Login"; + this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.BrowserForm_FormClosed); + this.Load += new System.EventHandler(this.BrowserForm_Load); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + + private System.Windows.Forms.TextBox txtUrl; + private System.Windows.Forms.Panel pContainer; + } +} \ No newline at end of file diff --git a/CxActionShared/Views/BrowserForm.cs b/CxActionShared/Views/BrowserForm.cs new file mode 100644 index 00000000..e850bdc6 --- /dev/null +++ b/CxActionShared/Views/BrowserForm.cs @@ -0,0 +1,322 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +using CefSharp; +using CefSharp.Web; +using CefSharp.Handler; +using Common; +using System.Web; +using CxViewerAction.Helpers; +using CefSharp.WinForms; +using System.Collections.Specialized; +using static CxViewerAction.Views.BrowserForm.MyCustomResourceRequestHandler; +using CxViewerAction.Entities; + +//This code is using CefSharp Browser for Login. +// Use of this source code is governed by a BSD-style license that can be found in the CxViewerVSIX Resource LICENSE file. +namespace CxViewerAction.Views +{ + public partial class BrowserForm : Form + { + public static event EventHandler NavigationCompleted; + public static event EventHandler NavigationError; + public event EventHandler UserClosedForm; + public const string ERROR_QUERY_KEY = "Error"; + public const string BLANK_PAGE = "about:blank"; + public const String CODE_KEY = "code="; + public BrowserForm() + { + InitializeComponent(); + } + ChromiumWebBrowser browser; + static bool IsIntialized = false; + public static void IsbrowserIntialized() + { + CefSettings settings = new CefSettings(); + initializeCefBrowserWithSettings(settings); + } + + public static void IsbrowserIntialized(LoginData pluginConfiguration) + { + CefSettings settings = new CefSettings(); + + if (!string.IsNullOrEmpty(pluginConfiguration.ProxyType) && + pluginConfiguration.ProxyType != LoginData.PROXY_TYPE_NONE) + { + if (pluginConfiguration.ProxyType == LoginData.PROXY_TYPE_HTTP) + { + settings.CefCommandLineArgs.Add("proxy-server", pluginConfiguration.ProxyLocation); + + if (!string.IsNullOrEmpty(pluginConfiguration.NoProxyList)) + { + settings.CefCommandLineArgs.Add("proxy-bypass-list", pluginConfiguration.NoProxyList); + } + } + else if (pluginConfiguration.ProxyType == LoginData.PROXY_TYPE_PAC) + { + settings.CefCommandLineArgs.Add("proxy-pac-url", pluginConfiguration.ProxyLocation); + } + } + + initializeCefBrowserWithSettings(settings); + } + + private static void initializeCefBrowserWithSettings(CefSettings settings) + { + if (IsIntialized == false) + { + CefSharpSettings.ShutdownOnExit = false; + Cef.Initialize(settings); + IsIntialized = true; + } + } + + private void BrowserForm_Load(object sender, EventArgs e) + { + + browser = new ChromiumWebBrowser(); + this.pContainer.Controls.Add(browser); + Logger.Create().Info("BrowserForm() " + browser); + browser.Dock = DockStyle.Fill; + Logger.Create().Info("In browser form load calling address changed event."); + browser.AddressChanged += OnBrowserAddressChanged; + Logger.Create().Info("On browser form load calling load end event."); + browser.FrameLoadEnd += chromium_FrameLoadEnd; + browser.RequestHandler = new NewCustomRequestHandler(); + + } + + public void LoadUrl(string url) + { + + } + + private void OnBrowserAddressChanged(object sender, AddressChangedEventArgs e) + { + browser.ExecuteScriptAsync("document.oncontextmenu = function() { return false; };"); + + Uri urlAddress = new Uri(browser.Address.ToString()); + if (!urlAddress.ToString().ToLower().Contains("code=")) + { + + if (urlAddress.ToString() == "about:blank") + { + string uri = LoginHelper.ServerBaseUrl; + string redirectUri = uri; + string contentType = " application/x-www-form-urlencoded"; + string header = string.Format("application/x-www-form-urlencoded", Environment.NewLine); + if (!redirectUri.EndsWith("/")) + { + redirectUri = redirectUri + "/"; + } + string serverurl = redirectUri + Constants.AUTHORIZATION_ENDPOINT_BROWSER; + string postData = Constants.CLIENT_ID_KEY + "=" + Constants.CLIENT_VALUE + "&" + + Constants.SCOPE_KEY + "=" + Constants.SCOPE_VALUE + "&" + + Constants.RESPONSE_TYPE_KEY + "=" + Constants.RESPONSE_TYPE_VALUE + "&" + + Constants.REDIRECT_URI_KEY + "=" + redirectUri; + System.Text.Encoding encoding = System.Text.Encoding.UTF8; + byte[] postDataBytes = encoding.GetBytes(postData); + browser.LoadUrlWithPostData(serverurl, postDataBytes, contentType); + Logger.Create().Debug("Navigating to " + serverurl + " with PostData: " + postData + " and headers: " + header); + + } + else + { + Logger.Create().Debug("Navigating to " + browser.Address.ToString()); + } + + } + + string queryString = urlAddress.Query; + + if (string.IsNullOrWhiteSpace(queryString)) + { + + return; + + } + + string errorMessage = TryGetErrorFromQueryString(queryString); + if (errorMessage == null) + { + return; + } + errorMessage = string.IsNullOrWhiteSpace(errorMessage) ? "Internal server error" : errorMessage; + Logger.Create().Debug("Navigation complete with error " + errorMessage); + if (NavigationError != null) + { + + browser.LoadUrl(BLANK_PAGE); + NavigationError(this, errorMessage); + + } + } + private void chromium_FrameLoadEnd(object sender, CefSharp.FrameLoadEndEventArgs e) + { + // Was the loaded page the first page load? + browser.ExecuteScriptAsync("document.oncontextmenu = function() { return false; };"); + + if (!validateUrlResponse(e)) + { + if (e.Url.ToString().Contains("CxRestAPI")) + { + Logger.Create().Debug("Navigation complete for " + e.Url.ToString()); + Logger.Create().Debug("Checking for presence of authorization code in the URL. " + e.Url.ToLower()); + } + + return; + } + Logger.Create().Info("Authorization code found. Extracting authorization code from the URL. "); + string code = ExtractCodeFromUrl(e.Url); + + if (NavigationCompleted != null) + { + + NavigationCompleted(this, code); + browser.LoadUrl(BLANK_PAGE); + browser.FrameLoadEnd -= chromium_FrameLoadEnd; + browser.Invoke(new MethodInvoker(() => + { + Application.DoEvents(); + this.Close(); + + })); + } + Cef.GetGlobalCookieManager().DeleteCookies("", ""); + Application.ExitThread(); + } + + private Boolean validateUrlResponse(CefSharp.FrameLoadEndEventArgs eventArgs) + { + try + { + LoginData loginData = LoginHelper.LoadSaved(); + Uri myUri = new Uri(loginData.ServerBaseUri); + String host = myUri.Host; + return eventArgs.Url.Contains(host) && eventArgs.Url.ToLower().Contains(CODE_KEY); + } + catch (Exception ex) + { + throw new Exception(ex.ToString()); + } + } + private string ExtractCodeFromUrl(string absoluteUri) + { + Uri myUri = new Uri(absoluteUri); + return HttpUtility.ParseQueryString(myUri.Query).Get("code"); + } + private string TryGetErrorFromQueryString(string queryString) + { + string errorMessage = string.Empty; + var queryParameters = HttpUtility.ParseQueryString(queryString); + if (queryParameters.HasKeys()) + { + errorMessage = queryParameters[ERROR_QUERY_KEY]; + } + return errorMessage; + } + + public void ConnectToIdentidyProvider(String serverUri) + { + if (InvokeRequired) + { + Invoke(new MethodInvoker(() => ConnectToIdentidyProvider(serverUri))); + return; + } + + NavigateToOidcLogin(serverUri); + } + private void NavigateToOidcLogin(String serverUri) + { + + browser.LoadUrl(serverUri); + + } + + private void BrowserForm_FormClosed(object sender, FormClosedEventArgs e) + { + + CloseForm(); + if (e.CloseReason == CloseReason.UserClosing) + { + if (UserClosedForm != null) + { + UserClosedForm(this, new EventArgs()); + } + } + + } + public void CloseForm() + { + if (InvokeRequired) + { + Invoke(new MethodInvoker(CloseForm)); + return; + } + Application.DoEvents(); + Hide(); + } + + public class MyCustomResourceRequestHandler : CefSharp.Handler.ResourceRequestHandler + { + private readonly System.IO.MemoryStream memoryStream = new System.IO.MemoryStream(); + + protected override IResponseFilter GetResourceResponseFilter(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IRequest request, IResponse response) + { + return new CefSharp.ResponseFilter.StreamResponseFilter(memoryStream); + } + + public class NewCustomRequestHandler : RequestHandler + { + protected override IResourceRequestHandler GetResourceRequestHandler(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, + IRequest request, bool isNavigation, bool isDownload, string requestInitiator, ref bool disableDefaultHandling) + { + return new CustomResourceRequestHandler(); + } + } + + public class CustomResourceRequestHandler : ResourceRequestHandler + { + + protected override CefReturnValue OnBeforeResourceLoad(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IRequest request, + IRequestCallback callback) + { + Logger.Create().Info("In on before resource load event of chrome browser login page."); + var Url = request.Url.ToString(); + Uri myUri = new Uri(request.Url); + + if (Url.ToLower().Contains("code=")) + { + + string code = HttpUtility.ParseQueryString(myUri.Query).Get("code"); + NavigationCompleted(this, code); + Logger.Create().Info("Authorization code found. Extracting authorization code from the URL."); + browser.CloseBrowser(false); + + } + else if (Url.ToLower().Contains("error=")) + { + + string error = HttpUtility.ParseQueryString(myUri.Query).Get("error"); + NavigationError(this, error); + browser.CloseBrowser(false); + + } + else + { + Logger.Create().Debug("New url " + Url + "."); + } + + return CefReturnValue.Continue; + } + } + } + } +} + diff --git a/CxActionShared/Views/BrowserForm.resx b/CxActionShared/Views/BrowserForm.resx new file mode 100644 index 00000000..09f1779d --- /dev/null +++ b/CxActionShared/Views/BrowserForm.resx @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\Checkmarx-X.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/CxViewerAction/Views/DockedView/ConnectionCtrl.Designer.cs b/CxActionShared/Views/DockedView/ConnectionCtrl.Designer.cs similarity index 97% rename from CxViewerAction/Views/DockedView/ConnectionCtrl.Designer.cs rename to CxActionShared/Views/DockedView/ConnectionCtrl.Designer.cs index 41c62644..5dd90a98 100644 --- a/CxViewerAction/Views/DockedView/ConnectionCtrl.Designer.cs +++ b/CxActionShared/Views/DockedView/ConnectionCtrl.Designer.cs @@ -1,222 +1,222 @@ -namespace CxViewerAction.Views.DockedView -{ - partial class ConnectionCtrl - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.groupBox1 = new System.Windows.Forms.GroupBox(); - this.txtTimeoutInterval = new System.Windows.Forms.TextBox(); - this.txtReconnectCount = new System.Windows.Forms.TextBox(); - this.label2 = new System.Windows.Forms.Label(); - this.label1 = new System.Windows.Forms.Label(); - this.groupBox2 = new System.Windows.Forms.GroupBox(); - this.txtUpdateStatusInterval = new System.Windows.Forms.TextBox(); - this.checkInBackground = new System.Windows.Forms.CheckBox(); - this.label5 = new System.Windows.Forms.Label(); - this.label3 = new System.Windows.Forms.Label(); - this.btnRestore = new System.Windows.Forms.Button(); - this.btnSave = new System.Windows.Forms.Button(); - this.disableConnectionOptimizationsCheckBox = new System.Windows.Forms.CheckBox(); - this.groupBox1.SuspendLayout(); - this.groupBox2.SuspendLayout(); - this.SuspendLayout(); - // - // groupBox1 - // - this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.groupBox1.Controls.Add(this.txtTimeoutInterval); - this.groupBox1.Controls.Add(this.txtReconnectCount); - this.groupBox1.Controls.Add(this.label2); - this.groupBox1.Controls.Add(this.label1); - this.groupBox1.Location = new System.Drawing.Point(0, 3); - this.groupBox1.Name = "groupBox1"; - this.groupBox1.Size = new System.Drawing.Size(457, 87); - this.groupBox1.TabIndex = 0; - this.groupBox1.TabStop = false; - this.groupBox1.Text = "Reconnection settings"; - // - // txtTimeoutInterval - // - this.txtTimeoutInterval.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.txtTimeoutInterval.Location = new System.Drawing.Point(236, 22); - this.txtTimeoutInterval.MaxLength = 3; - this.txtTimeoutInterval.Name = "txtTimeoutInterval"; - this.txtTimeoutInterval.Size = new System.Drawing.Size(33, 20); - this.txtTimeoutInterval.TabIndex = 2; - this.txtTimeoutInterval.KeyDown += new System.Windows.Forms.KeyEventHandler(this.txtTimeoutInterval_KeyDown); - // - // txtReconnectCount - // - this.txtReconnectCount.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.txtReconnectCount.Location = new System.Drawing.Point(236, 53); - this.txtReconnectCount.MaxLength = 3; - this.txtReconnectCount.Name = "txtReconnectCount"; - this.txtReconnectCount.Size = new System.Drawing.Size(33, 20); - this.txtReconnectCount.TabIndex = 3; - this.txtReconnectCount.KeyDown += new System.Windows.Forms.KeyEventHandler(this.txtTimeoutInterval_KeyDown); - // - // label2 - // - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(17, 55); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(93, 13); - this.label2.TabIndex = 1; - this.label2.Text = "Reconnect count:"; - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(17, 24); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(152, 13); - this.label1.TabIndex = 0; - this.label1.Text = "Reconnect timeout (seconds):"; - // - // groupBox2 - // - this.groupBox2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.groupBox2.Controls.Add(this.txtUpdateStatusInterval); - this.groupBox2.Controls.Add(this.checkInBackground); - this.groupBox2.Controls.Add(this.label5); - this.groupBox2.Controls.Add(this.label3); - this.groupBox2.Location = new System.Drawing.Point(0, 96); - this.groupBox2.Name = "groupBox2"; - this.groupBox2.Size = new System.Drawing.Size(457, 76); - this.groupBox2.TabIndex = 1; - this.groupBox2.TabStop = false; - this.groupBox2.Text = "Scan settings"; - // - // txtUpdateStatusInterval - // - this.txtUpdateStatusInterval.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.txtUpdateStatusInterval.Location = new System.Drawing.Point(236, 23); - this.txtUpdateStatusInterval.MaxLength = 3; - this.txtUpdateStatusInterval.Name = "txtUpdateStatusInterval"; - this.txtUpdateStatusInterval.Size = new System.Drawing.Size(33, 20); - this.txtUpdateStatusInterval.TabIndex = 4; - this.txtUpdateStatusInterval.KeyDown += new System.Windows.Forms.KeyEventHandler(this.txtTimeoutInterval_KeyDown); - // - // checkInBackground - // - this.checkInBackground.AutoSize = true; - this.checkInBackground.Location = new System.Drawing.Point(236, 55); - this.checkInBackground.Name = "checkInBackground"; - this.checkInBackground.Size = new System.Drawing.Size(148, 17); - this.checkInBackground.TabIndex = 7; - this.checkInBackground.Text = "Always run in background"; - this.checkInBackground.UseVisualStyleBackColor = true; - // - // label5 - // - this.label5.AutoSize = true; - this.label5.Location = new System.Drawing.Point(17, 55); - this.label5.Name = "label5"; - this.label5.Size = new System.Drawing.Size(78, 13); - this.label5.TabIndex = 5; - this.label5.Text = "Scan progress:"; - // - // label3 - // - this.label3.AutoSize = true; - this.label3.Location = new System.Drawing.Point(17, 25); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(188, 13); - this.label3.TabIndex = 2; - this.label3.Text = "Update scan status interval (seconds):"; - // - // btnRestore - // - this.btnRestore.CausesValidation = false; - this.btnRestore.Location = new System.Drawing.Point(0, 211); - this.btnRestore.Name = "btnRestore"; - this.btnRestore.Size = new System.Drawing.Size(108, 23); - this.btnRestore.TabIndex = 14; - this.btnRestore.Text = "Restore Defaults"; - this.btnRestore.UseVisualStyleBackColor = true; - this.btnRestore.Click += new System.EventHandler(this.btnRestore_Click); - // - // btnSave - // - this.btnSave.DialogResult = System.Windows.Forms.DialogResult.OK; - this.btnSave.Location = new System.Drawing.Point(117, 211); - this.btnSave.Name = "btnSave"; - this.btnSave.Size = new System.Drawing.Size(88, 23); - this.btnSave.TabIndex = 13; - this.btnSave.Text = "Apply"; - this.btnSave.UseVisualStyleBackColor = true; - this.btnSave.Click += new System.EventHandler(this.btnSave_Click); - // - // disableConnectionOptimizationsCheckBox - // - this.disableConnectionOptimizationsCheckBox.AutoSize = true; - this.disableConnectionOptimizationsCheckBox.Location = new System.Drawing.Point(3, 178); - this.disableConnectionOptimizationsCheckBox.Name = "disableConnectionOptimizationsCheckBox"; - this.disableConnectionOptimizationsCheckBox.Size = new System.Drawing.Size(180, 17); - this.disableConnectionOptimizationsCheckBox.TabIndex = 0; - this.disableConnectionOptimizationsCheckBox.Text = "Disable connection optimizations"; - this.disableConnectionOptimizationsCheckBox.UseVisualStyleBackColor = true; - // - // ConnectionCtrl - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.Controls.Add(this.disableConnectionOptimizationsCheckBox); - this.Controls.Add(this.groupBox1); - this.Controls.Add(this.groupBox2); - this.Controls.Add(this.btnRestore); - this.Controls.Add(this.btnSave); - this.Name = "ConnectionCtrl"; - this.Size = new System.Drawing.Size(460, 263); - this.groupBox1.ResumeLayout(false); - this.groupBox1.PerformLayout(); - this.groupBox2.ResumeLayout(false); - this.groupBox2.PerformLayout(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.GroupBox groupBox1; - private System.Windows.Forms.TextBox txtReconnectCount; - private System.Windows.Forms.TextBox txtTimeoutInterval; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.GroupBox groupBox2; - private System.Windows.Forms.TextBox txtUpdateStatusInterval; - private System.Windows.Forms.Label label5; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.CheckBox checkInBackground; - private System.Windows.Forms.Button btnRestore; - private System.Windows.Forms.Button btnSave; - private System.Windows.Forms.CheckBox disableConnectionOptimizationsCheckBox; - } -} +namespace CxViewerAction.Views.DockedView +{ + partial class ConnectionCtrl + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.txtTimeoutInterval = new System.Windows.Forms.TextBox(); + this.txtReconnectCount = new System.Windows.Forms.TextBox(); + this.label2 = new System.Windows.Forms.Label(); + this.label1 = new System.Windows.Forms.Label(); + this.groupBox2 = new System.Windows.Forms.GroupBox(); + this.txtUpdateStatusInterval = new System.Windows.Forms.TextBox(); + this.checkInBackground = new System.Windows.Forms.CheckBox(); + this.label5 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.btnRestore = new System.Windows.Forms.Button(); + this.btnSave = new System.Windows.Forms.Button(); + this.disableConnectionOptimizationsCheckBox = new System.Windows.Forms.CheckBox(); + this.groupBox1.SuspendLayout(); + this.groupBox2.SuspendLayout(); + this.SuspendLayout(); + // + // groupBox1 + // + this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.groupBox1.Controls.Add(this.txtTimeoutInterval); + this.groupBox1.Controls.Add(this.txtReconnectCount); + this.groupBox1.Controls.Add(this.label2); + this.groupBox1.Controls.Add(this.label1); + this.groupBox1.Location = new System.Drawing.Point(0, 3); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(457, 87); + this.groupBox1.TabIndex = 0; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Reconnection settings"; + // + // txtTimeoutInterval + // + this.txtTimeoutInterval.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.txtTimeoutInterval.Location = new System.Drawing.Point(236, 22); + this.txtTimeoutInterval.MaxLength = 3; + this.txtTimeoutInterval.Name = "txtTimeoutInterval"; + this.txtTimeoutInterval.Size = new System.Drawing.Size(33, 20); + this.txtTimeoutInterval.TabIndex = 2; + this.txtTimeoutInterval.KeyDown += new System.Windows.Forms.KeyEventHandler(this.txtTimeoutInterval_KeyDown); + // + // txtReconnectCount + // + this.txtReconnectCount.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.txtReconnectCount.Location = new System.Drawing.Point(236, 53); + this.txtReconnectCount.MaxLength = 3; + this.txtReconnectCount.Name = "txtReconnectCount"; + this.txtReconnectCount.Size = new System.Drawing.Size(33, 20); + this.txtReconnectCount.TabIndex = 3; + this.txtReconnectCount.KeyDown += new System.Windows.Forms.KeyEventHandler(this.txtTimeoutInterval_KeyDown); + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(17, 55); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(93, 13); + this.label2.TabIndex = 1; + this.label2.Text = "Reconnect count:"; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(17, 24); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(152, 13); + this.label1.TabIndex = 0; + this.label1.Text = "Reconnect timeout (seconds):"; + // + // groupBox2 + // + this.groupBox2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.groupBox2.Controls.Add(this.txtUpdateStatusInterval); + this.groupBox2.Controls.Add(this.checkInBackground); + this.groupBox2.Controls.Add(this.label5); + this.groupBox2.Controls.Add(this.label3); + this.groupBox2.Location = new System.Drawing.Point(0, 96); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.Size = new System.Drawing.Size(457, 76); + this.groupBox2.TabIndex = 1; + this.groupBox2.TabStop = false; + this.groupBox2.Text = "Scan settings"; + // + // txtUpdateStatusInterval + // + this.txtUpdateStatusInterval.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.txtUpdateStatusInterval.Location = new System.Drawing.Point(236, 23); + this.txtUpdateStatusInterval.MaxLength = 3; + this.txtUpdateStatusInterval.Name = "txtUpdateStatusInterval"; + this.txtUpdateStatusInterval.Size = new System.Drawing.Size(33, 20); + this.txtUpdateStatusInterval.TabIndex = 4; + this.txtUpdateStatusInterval.KeyDown += new System.Windows.Forms.KeyEventHandler(this.txtTimeoutInterval_KeyDown); + // + // checkInBackground + // + this.checkInBackground.AutoSize = true; + this.checkInBackground.Location = new System.Drawing.Point(236, 55); + this.checkInBackground.Name = "checkInBackground"; + this.checkInBackground.Size = new System.Drawing.Size(148, 17); + this.checkInBackground.TabIndex = 7; + this.checkInBackground.Text = "Always run in background"; + this.checkInBackground.UseVisualStyleBackColor = true; + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Location = new System.Drawing.Point(17, 55); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(78, 13); + this.label5.TabIndex = 5; + this.label5.Text = "Scan progress:"; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(17, 25); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(188, 13); + this.label3.TabIndex = 2; + this.label3.Text = "Update scan status interval (seconds):"; + // + // btnRestore + // + this.btnRestore.CausesValidation = false; + this.btnRestore.Location = new System.Drawing.Point(0, 211); + this.btnRestore.Name = "btnRestore"; + this.btnRestore.Size = new System.Drawing.Size(108, 23); + this.btnRestore.TabIndex = 14; + this.btnRestore.Text = "Restore Defaults"; + this.btnRestore.UseVisualStyleBackColor = true; + this.btnRestore.Click += new System.EventHandler(this.btnRestore_Click); + // + // btnSave + // + this.btnSave.DialogResult = System.Windows.Forms.DialogResult.OK; + this.btnSave.Location = new System.Drawing.Point(117, 211); + this.btnSave.Name = "btnSave"; + this.btnSave.Size = new System.Drawing.Size(88, 23); + this.btnSave.TabIndex = 13; + this.btnSave.Text = "Apply"; + this.btnSave.UseVisualStyleBackColor = true; + this.btnSave.Click += new System.EventHandler(this.btnSave_Click); + // + // disableConnectionOptimizationsCheckBox + // + this.disableConnectionOptimizationsCheckBox.AutoSize = true; + this.disableConnectionOptimizationsCheckBox.Location = new System.Drawing.Point(3, 178); + this.disableConnectionOptimizationsCheckBox.Name = "disableConnectionOptimizationsCheckBox"; + this.disableConnectionOptimizationsCheckBox.Size = new System.Drawing.Size(180, 17); + this.disableConnectionOptimizationsCheckBox.TabIndex = 0; + this.disableConnectionOptimizationsCheckBox.Text = "Disable connection optimizations"; + this.disableConnectionOptimizationsCheckBox.UseVisualStyleBackColor = true; + // + // ConnectionCtrl + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.disableConnectionOptimizationsCheckBox); + this.Controls.Add(this.groupBox1); + this.Controls.Add(this.groupBox2); + this.Controls.Add(this.btnRestore); + this.Controls.Add(this.btnSave); + this.Name = "ConnectionCtrl"; + this.Size = new System.Drawing.Size(460, 263); + this.groupBox1.ResumeLayout(false); + this.groupBox1.PerformLayout(); + this.groupBox2.ResumeLayout(false); + this.groupBox2.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.TextBox txtReconnectCount; + private System.Windows.Forms.TextBox txtTimeoutInterval; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.GroupBox groupBox2; + private System.Windows.Forms.TextBox txtUpdateStatusInterval; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.CheckBox checkInBackground; + private System.Windows.Forms.Button btnRestore; + private System.Windows.Forms.Button btnSave; + private System.Windows.Forms.CheckBox disableConnectionOptimizationsCheckBox; + } +} diff --git a/CxViewerAction/Views/DockedView/ConnectionCtrl.cs b/CxActionShared/Views/DockedView/ConnectionCtrl.cs similarity index 96% rename from CxViewerAction/Views/DockedView/ConnectionCtrl.cs rename to CxActionShared/Views/DockedView/ConnectionCtrl.cs index 05450722..82170745 100644 --- a/CxViewerAction/Views/DockedView/ConnectionCtrl.cs +++ b/CxActionShared/Views/DockedView/ConnectionCtrl.cs @@ -1,141 +1,141 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Drawing; -using System.Data; -using System.Text; -using System.Windows.Forms; -using CxViewerAction.Entities; -using CxViewerAction.Helpers; -using CxViewerAction.Entities.Enum; -using EnvDTE; -using Common; - -namespace CxViewerAction.Views.DockedView -{ - public partial class ConnectionCtrl : UserControl - { - public ConnectionCtrl() - { - InitializeComponent(); - if (Connect.IsLoaded) - { - BindDataToView(); - } - } - - private void BindDataToView() - { - LoginData currentLogin = LoginHelper.Load(0); - if (currentLogin == null) - { - btnRestore_Click(null, null); - } - else - { - txtTimeoutInterval.Text = currentLogin.ReconnectInterval.ToString(); - txtReconnectCount.Text = currentLogin.ReconnectCount.ToString(); - checkInBackground.Checked = (currentLogin.IsRunScanInBackground == SimpleDecision.Yes) ? true : false; - txtUpdateStatusInterval.Text = currentLogin.UpdateStatusInterval.ToString(); - disableConnectionOptimizationsCheckBox.Checked = currentLogin.DisableConnectionOptimizations; - } - } - - private void btnSave_Click(object sender, EventArgs e) - { - save(); - } - - private void save() - { - if (!Connect.IsLoaded) - { - MessageBox.Show("Checkmarx Visual Studio Plugin is disable. \r\nPlease enable the plugin in Tools->Add-In Manager", "Information", MessageBoxButtons.OK); - return; - } - try - { - if (ValidateValues()) - { - LoginData currentLogin = BindDataFromView(); - LoginHelper.Save(currentLogin); - } - } - catch (Exception ex) - { - Logger.Create().Error(ex); - MessageBox.Show(ex.ToString(), "Error", MessageBoxButtons.OK); - } - } - - private LoginData BindDataFromView() - { - LoginData currentLogin = LoginHelper.Load(0); - currentLogin.ReconnectInterval = int.Parse(txtTimeoutInterval.Text); - currentLogin.ReconnectCount = int.Parse(txtReconnectCount.Text); - currentLogin.IsRunScanInBackground = checkInBackground.Checked ? SimpleDecision.Yes : SimpleDecision.None; - currentLogin.UpdateStatusInterval = int.Parse(txtUpdateStatusInterval.Text); - currentLogin.DisableConnectionOptimizations = disableConnectionOptimizationsCheckBox.Checked; - return currentLogin; - } - - private bool ValidateValues() - { - string errors = string.Empty; - int val = 0; - - if (!int.TryParse(txtTimeoutInterval.Text, out val)) - errors += FormatError("Reconnect timeout: Please specify value."); - - if (!int.TryParse(txtReconnectCount.Text, out val)) - errors += FormatError("Reconnect count: Please specify value."); - - if (!int.TryParse(txtUpdateStatusInterval.Text, out val)) - errors += (FormatError("Scan interval: Please specify value.")); - - if (!string.IsNullOrEmpty(errors)) - { - MessageBox.Show(errors, "Error", MessageBoxButtons.OK); - } - - return errors.Length == 0; - } - - private string FormatError(string text) - { - return string.Format("{0}{1}", text, Environment.NewLine); - } - - private void btnRestore_Click(object sender, EventArgs e) - { - txtUpdateStatusInterval.Text = "20"; - txtTimeoutInterval.Text = "15"; - txtReconnectCount.Text = "3"; - checkInBackground.Checked = false; - disableConnectionOptimizationsCheckBox.Checked = false; - } - - private void txtTimeoutInterval_KeyDown(object sender, KeyEventArgs e) - { - switch (e.KeyData) - { - case Keys.Back: - case Keys.Left: - case Keys.Return: - case Keys.Right: - case Keys.Space: - case Keys.Tab: - case Keys.U: - break; - default: - e.SuppressKeyPress = !(e.KeyValue >= 48 && e.KeyValue <= 57); - break; - } - } - - public void OnOK() - { - save(); - } - } -} +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Data; +using System.Text; +using System.Windows.Forms; +using CxViewerAction.Entities; +using CxViewerAction.Helpers; +using CxViewerAction.Entities.Enum; +using EnvDTE; +using Common; + +namespace CxViewerAction.Views.DockedView +{ + public partial class ConnectionCtrl : UserControl + { + public ConnectionCtrl() + { + InitializeComponent(); + if (Connect.IsLoaded) + { + BindDataToView(); + } + } + + private void BindDataToView() + { + LoginData currentLogin = LoginHelper.Load(0); + if (currentLogin == null) + { + btnRestore_Click(null, null); + } + else + { + txtTimeoutInterval.Text = currentLogin.ReconnectInterval.ToString(); + txtReconnectCount.Text = currentLogin.ReconnectCount.ToString(); + checkInBackground.Checked = (currentLogin.IsRunScanInBackground == SimpleDecision.Yes) ? true : false; + txtUpdateStatusInterval.Text = currentLogin.UpdateStatusInterval.ToString(); + disableConnectionOptimizationsCheckBox.Checked = currentLogin.DisableConnectionOptimizations; + } + } + + private void btnSave_Click(object sender, EventArgs e) + { + save(); + } + + private void save() + { + if (!Connect.IsLoaded) + { + MessageBox.Show("Checkmarx Visual Studio Plugin is disable. \r\nPlease enable the plugin in Tools->Add-In Manager", "Information", MessageBoxButtons.OK); + return; + } + try + { + if (ValidateValues()) + { + LoginData currentLogin = BindDataFromView(); + LoginHelper.Save(currentLogin); + } + } + catch (Exception ex) + { + Logger.Create().Error(ex); + MessageBox.Show(ex.ToString(), "Error", MessageBoxButtons.OK); + } + } + + private LoginData BindDataFromView() + { + LoginData currentLogin = LoginHelper.Load(0); + currentLogin.ReconnectInterval = int.Parse(txtTimeoutInterval.Text); + currentLogin.ReconnectCount = int.Parse(txtReconnectCount.Text); + currentLogin.IsRunScanInBackground = checkInBackground.Checked ? SimpleDecision.Yes : SimpleDecision.None; + currentLogin.UpdateStatusInterval = int.Parse(txtUpdateStatusInterval.Text); + currentLogin.DisableConnectionOptimizations = disableConnectionOptimizationsCheckBox.Checked; + return currentLogin; + } + + private bool ValidateValues() + { + string errors = string.Empty; + int val = 0; + + if (!int.TryParse(txtTimeoutInterval.Text, out val)) + errors += FormatError("Reconnect timeout: Please specify value."); + + if (!int.TryParse(txtReconnectCount.Text, out val)) + errors += FormatError("Reconnect count: Please specify value."); + + if (!int.TryParse(txtUpdateStatusInterval.Text, out val)) + errors += (FormatError("Scan interval: Please specify value.")); + + if (!string.IsNullOrEmpty(errors)) + { + MessageBox.Show(errors, "Error", MessageBoxButtons.OK); + } + + return errors.Length == 0; + } + + private string FormatError(string text) + { + return string.Format("{0}{1}", text, Environment.NewLine); + } + + private void btnRestore_Click(object sender, EventArgs e) + { + txtUpdateStatusInterval.Text = "20"; + txtTimeoutInterval.Text = "15"; + txtReconnectCount.Text = "3"; + checkInBackground.Checked = false; + disableConnectionOptimizationsCheckBox.Checked = false; + } + + private void txtTimeoutInterval_KeyDown(object sender, KeyEventArgs e) + { + switch (e.KeyData) + { + case Keys.Back: + case Keys.Left: + case Keys.Return: + case Keys.Right: + case Keys.Space: + case Keys.Tab: + case Keys.U: + break; + default: + e.SuppressKeyPress = !(e.KeyValue >= 48 && e.KeyValue <= 57); + break; + } + } + + public void OnOK() + { + save(); + } + } +} diff --git a/CxViewerAction/Views/DockedView/ConnectionCtrl.resx b/CxActionShared/Views/DockedView/ConnectionCtrl.resx similarity index 97% rename from CxViewerAction/Views/DockedView/ConnectionCtrl.resx rename to CxActionShared/Views/DockedView/ConnectionCtrl.resx index c7e0d4bd..d58980a3 100644 --- a/CxViewerAction/Views/DockedView/ConnectionCtrl.resx +++ b/CxActionShared/Views/DockedView/ConnectionCtrl.resx @@ -1,120 +1,120 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + \ No newline at end of file diff --git a/CxViewerAction/Views/DockedView/IPerspectiveEntity.cs b/CxActionShared/Views/DockedView/IPerspectiveEntity.cs similarity index 95% rename from CxViewerAction/Views/DockedView/IPerspectiveEntity.cs rename to CxActionShared/Views/DockedView/IPerspectiveEntity.cs index d5f78686..6ea991de 100644 --- a/CxViewerAction/Views/DockedView/IPerspectiveEntity.cs +++ b/CxActionShared/Views/DockedView/IPerspectiveEntity.cs @@ -1,52 +1,52 @@ -using System; -using CxViewerAction.Entities.WebServiceEntity; - -namespace CxViewerAction.Views.DockedView -{ - /// - /// Interface that represent main problematic file entity properties and methods - /// - public interface IPerspectiveProblemFile : IComparable - { - /// - /// Problem file name - /// - string FileName { get; set; } - - /// - /// Problem line position - /// - int Line { get; set; } - - /// - /// Problem column position - /// - int Column { get; set; } - - /// - /// Problem source code element name - /// - string Name { get; set; } - - /// - /// Length of name param - /// - int Length { get; set; } - - int CurrentPathIndex - { - get; - set; - } - - TreeNodeData NodeData - { - get; - set; - } - /// - /// Parent object container - /// - ReportQueryItemResult QueryItem { get; set; } - } -} +using System; +using CxViewerAction.Entities.WebServiceEntity; + +namespace CxViewerAction.Views.DockedView +{ + /// + /// Interface that represent main problematic file entity properties and methods + /// + public interface IPerspectiveProblemFile : IComparable + { + /// + /// Problem file name + /// + string FileName { get; set; } + + /// + /// Problem line position + /// + int Line { get; set; } + + /// + /// Problem column position + /// + int Column { get; set; } + + /// + /// Problem source code element name + /// + string Name { get; set; } + + /// + /// Length of name param + /// + int Length { get; set; } + + int CurrentPathIndex + { + get; + set; + } + + TreeNodeData NodeData + { + get; + set; + } + /// + /// Parent object container + /// + ReportQueryItemResult QueryItem { get; set; } + } +} diff --git a/CxViewerAction/Views/DockedView/IPerspectiveGraphView.cs b/CxActionShared/Views/DockedView/IPerspectiveGraphView.cs similarity index 96% rename from CxViewerAction/Views/DockedView/IPerspectiveGraphView.cs rename to CxActionShared/Views/DockedView/IPerspectiveGraphView.cs index 5532a95a..3f028775 100644 --- a/CxViewerAction/Views/DockedView/IPerspectiveGraphView.cs +++ b/CxActionShared/Views/DockedView/IPerspectiveGraphView.cs @@ -1,36 +1,36 @@ -using System; -using CxViewerAction.BaseInterfaces; -using CxViewerAction.Entities.WebServiceEntity; -using CxViewerAction.Entities; -using CxViewerAction.CxVSWebService; - -namespace CxViewerAction.Views.DockedView -{ - /// - /// Represent main method-properties for perspective graph view - /// - public interface IPerspectiveGraphView : ISelectableProblem - { - /// - /// Graph to represent on view - /// - IGraph Graph { get; set; } - - /// - /// Find path in graph by query item data - /// - /// - /// - IGraphPath FindPath(CxWSResultPath queryItem); - - /// - /// Generate view representation - /// - void BindData(); - - /// - /// Gets or sets event handler on path item button click - /// - EventHandler PathItemClick { get; set; } - } -} +using System; +using CxViewerAction.BaseInterfaces; +using CxViewerAction.Entities.WebServiceEntity; +using CxViewerAction.Entities; +using CxViewerAction.CxVSWebService; + +namespace CxViewerAction.Views.DockedView +{ + /// + /// Represent main method-properties for perspective graph view + /// + public interface IPerspectiveGraphView : ISelectableProblem + { + /// + /// Graph to represent on view + /// + IGraph Graph { get; set; } + + /// + /// Find path in graph by query item data + /// + /// + /// + IGraphPath FindPath(CxWSResultPath queryItem); + + /// + /// Generate view representation + /// + void BindData(); + + /// + /// Gets or sets event handler on path item button click + /// + EventHandler PathItemClick { get; set; } + } +} diff --git a/CxViewerAction/Views/DockedView/IPerspectivePath.cs b/CxActionShared/Views/DockedView/IPerspectivePath.cs similarity index 96% rename from CxViewerAction/Views/DockedView/IPerspectivePath.cs rename to CxActionShared/Views/DockedView/IPerspectivePath.cs index af861d46..6fdd9dc5 100644 --- a/CxViewerAction/Views/DockedView/IPerspectivePath.cs +++ b/CxActionShared/Views/DockedView/IPerspectivePath.cs @@ -1,33 +1,33 @@ -using System; -using System.Collections.Generic; -using CxViewerAction.Entities.WebServiceEntity; -using CxViewerAction.BaseInterfaces; - -namespace CxViewerAction.Views.DockedView -{ - /// - /// Interface that represent main problematic file options and events - /// - public interface IPerspectivePathView : ISelectableProblem - { - /// - /// QueryItem attached to current problem - /// - ReportQueryItemResult QueryItemResult { get; set; } - - /// - /// Bind view controls with new data - /// - void BindData(int index); - - void SetZoom(); - - void ClearView(); - /// - /// Event handler, attached to path buttons - /// - EventHandler PathButtonClickHandler { set; } - - - } -} +using System; +using System.Collections.Generic; +using CxViewerAction.Entities.WebServiceEntity; +using CxViewerAction.BaseInterfaces; + +namespace CxViewerAction.Views.DockedView +{ + /// + /// Interface that represent main problematic file options and events + /// + public interface IPerspectivePathView : ISelectableProblem + { + /// + /// QueryItem attached to current problem + /// + ReportQueryItemResult QueryItemResult { get; set; } + + /// + /// Bind view controls with new data + /// + void BindData(int index); + + void SetZoom(); + + void ClearView(); + /// + /// Event handler, attached to path buttons + /// + EventHandler PathButtonClickHandler { set; } + + + } +} diff --git a/CxViewerAction/Views/DockedView/IPerspectiveResultView.cs b/CxActionShared/Views/DockedView/IPerspectiveResultView.cs similarity index 96% rename from CxViewerAction/Views/DockedView/IPerspectiveResultView.cs rename to CxActionShared/Views/DockedView/IPerspectiveResultView.cs index 08f83cf5..ae33db08 100644 --- a/CxViewerAction/Views/DockedView/IPerspectiveResultView.cs +++ b/CxActionShared/Views/DockedView/IPerspectiveResultView.cs @@ -1,61 +1,61 @@ -using System; -using System.Collections.Generic; - -using System.Text; -using CxViewerAction.Entities.WebServiceEntity; - -namespace CxViewerAction.Views.DockedView -{ - /// - /// Interface that represent main report view problem properties and methods - /// - public interface IPerspectiveResultView - { - #region [Public Events] - - /// - /// Event that fired when user binded project and changed a scan by using UI - /// - event Action SelectedScanChanged; - - /// - /// Event that fired when user select view problem description inside control - /// - event EventHandler SelectedReportItemChanged; - #endregion - - #region [Public Properties] - - bool IsActive { get;set;} - - IPerspectiveView PerspectiveView { get;set;} - - /// - /// Gets or sets currently selected problem type - /// - ReportQueryResult SelectedReportItem { get; set; } - - /// - /// Gets or sets report - /// - ReportResult Report { get; set; } - - #endregion - - #region[Public Methods] - - /// - /// Bind contols with object values - /// - void BindData(); - - /// - /// Change control activity and set loading message when control perform data binding - /// - /// Activity state - /// Message to show while control is perform data binding - void SetActivity(bool active, string loadingMessage); - - #endregion - } -} +using System; +using System.Collections.Generic; + +using System.Text; +using CxViewerAction.Entities.WebServiceEntity; + +namespace CxViewerAction.Views.DockedView +{ + /// + /// Interface that represent main report view problem properties and methods + /// + public interface IPerspectiveResultView + { + #region [Public Events] + + /// + /// Event that fired when user binded project and changed a scan by using UI + /// + event Action SelectedScanChanged; + + /// + /// Event that fired when user select view problem description inside control + /// + event EventHandler SelectedReportItemChanged; + #endregion + + #region [Public Properties] + + bool IsActive { get;set;} + + IPerspectiveView PerspectiveView { get;set;} + + /// + /// Gets or sets currently selected problem type + /// + ReportQueryResult SelectedReportItem { get; set; } + + /// + /// Gets or sets report + /// + ReportResult Report { get; set; } + + #endregion + + #region[Public Methods] + + /// + /// Bind contols with object values + /// + void BindData(); + + /// + /// Change control activity and set loading message when control perform data binding + /// + /// Activity state + /// Message to show while control is perform data binding + void SetActivity(bool active, string loadingMessage); + + #endregion + } +} diff --git a/CxViewerAction/Views/DockedView/IPerspectiveView.cs b/CxActionShared/Views/DockedView/IPerspectiveView.cs similarity index 96% rename from CxViewerAction/Views/DockedView/IPerspectiveView.cs rename to CxActionShared/Views/DockedView/IPerspectiveView.cs index 4e069bd4..41be0fb2 100644 --- a/CxViewerAction/Views/DockedView/IPerspectiveView.cs +++ b/CxActionShared/Views/DockedView/IPerspectiveView.cs @@ -1,74 +1,74 @@ -using System; -using System.Collections.Generic; - -using System.Text; -using CxViewerAction.Entities.WebServiceEntity; - -namespace CxViewerAction.Views.DockedView -{ - /// - /// Interface that represent main report view problem properties and methods - /// - public interface IPerspectiveView - { - #region [Public Events] - - /// - /// Event that fired when user select Node in tree - /// - event Action SelectedNodeChanged; - - /// - /// Event that fired when user binded project and changed a scan by using UI - /// - event Action SelectedScanChanged; - - /// - /// Event that fired when user select view problem description inside control - /// - event EventHandler SelectedReportItemChanged; - #endregion - - #region [Public Properties] - - /// - /// Gets or sets currently selected problem type - /// - ReportQueryResult SelectedReportItem { get; set; } - - /// - /// Gets or sets report - /// - ReportResult Report { get; set; } - - #endregion - - #region[Public Methods] - - void UpdateTreeItemInfo(); - /// - /// Bind contols with object values - /// - void BindData(); - - /// - /// Change control activity and set loading message when control perform data binding - /// - /// Activity state - /// Message to show while control is perform data binding - void SetActivity(bool active, string loadingMessage); - - /// - /// Added scan list control to the perspective control - /// - /// - void SetScanList(Dictionary scanList, long selectedValue); - - /// - /// Remove scan list control from the perspective control - /// - void RemoveScanList(); - - #endregion - } -} +using System; +using System.Collections.Generic; + +using System.Text; +using CxViewerAction.Entities.WebServiceEntity; + +namespace CxViewerAction.Views.DockedView +{ + /// + /// Interface that represent main report view problem properties and methods + /// + public interface IPerspectiveView + { + #region [Public Events] + + /// + /// Event that fired when user select Node in tree + /// + event Action SelectedNodeChanged; + + /// + /// Event that fired when user binded project and changed a scan by using UI + /// + event Action SelectedScanChanged; + + /// + /// Event that fired when user select view problem description inside control + /// + event EventHandler SelectedReportItemChanged; + #endregion + + #region [Public Properties] + + /// + /// Gets or sets currently selected problem type + /// + ReportQueryResult SelectedReportItem { get; set; } + + /// + /// Gets or sets report + /// + ReportResult Report { get; set; } + + #endregion + + #region[Public Methods] + + void UpdateTreeItemInfo(); + /// + /// Bind contols with object values + /// + void BindData(); + + /// + /// Change control activity and set loading message when control perform data binding + /// + /// Activity state + /// Message to show while control is perform data binding + void SetActivity(bool active, string loadingMessage); + + /// + /// Added scan list control to the perspective control + /// + /// + void SetScanList(Dictionary scanList, long selectedValue); + + /// + /// Remove scan list control from the perspective control + /// + void RemoveScanList(); + + #endregion + } +} diff --git a/CxViewerAction/Views/DockedView/OidcLoginCtrl.Designer.cs b/CxActionShared/Views/DockedView/OidcLoginCtrl.Designer.cs similarity index 97% rename from CxViewerAction/Views/DockedView/OidcLoginCtrl.Designer.cs rename to CxActionShared/Views/DockedView/OidcLoginCtrl.Designer.cs index 90ac7504..8bf0427c 100644 --- a/CxViewerAction/Views/DockedView/OidcLoginCtrl.Designer.cs +++ b/CxActionShared/Views/DockedView/OidcLoginCtrl.Designer.cs @@ -1,71 +1,71 @@ -using System; - -namespace CxViewerAction.Views.DockedView -{ - partial class OidcLoginCtrl - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - [STAThread] - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.webBrowserIdentityProvider = new System.Windows.Forms.WebBrowser(); - this.SuspendLayout(); - // - // webBrowserIdentityProvider - // - this.webBrowserIdentityProvider.Dock = System.Windows.Forms.DockStyle.Fill; - this.webBrowserIdentityProvider.Location = new System.Drawing.Point(0, 0); - this.webBrowserIdentityProvider.MinimumSize = new System.Drawing.Size(20, 20); - this.webBrowserIdentityProvider.Name = "webBrowserIdentityProvider"; - this.webBrowserIdentityProvider.Size = new System.Drawing.Size(388, 572); - this.webBrowserIdentityProvider.TabIndex = 0; - // - // OidcLoginCtrl - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.Controls.Add(this.webBrowserIdentityProvider); - this.Name = "OidcLoginCtrl"; - this.Size = new System.Drawing.Size(388, 572); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.WebBrowser webBrowserIdentityProvider; - public System.Windows.Forms.WebBrowser WebBrowserIdentityProvider - { - get - { - return webBrowserIdentityProvider; - } - set - { - webBrowserIdentityProvider = value; - } - } - } -} +using System; + +namespace CxViewerAction.Views.DockedView +{ + partial class OidcLoginCtrl + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + [STAThread] + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.webBrowserIdentityProvider = new System.Windows.Forms.WebBrowser(); + this.SuspendLayout(); + // + // webBrowserIdentityProvider + // + this.webBrowserIdentityProvider.Dock = System.Windows.Forms.DockStyle.Fill; + this.webBrowserIdentityProvider.Location = new System.Drawing.Point(0, 0); + this.webBrowserIdentityProvider.MinimumSize = new System.Drawing.Size(20, 20); + this.webBrowserIdentityProvider.Name = "webBrowserIdentityProvider"; + this.webBrowserIdentityProvider.Size = new System.Drawing.Size(388, 572); + this.webBrowserIdentityProvider.TabIndex = 0; + // + // OidcLoginCtrl + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.webBrowserIdentityProvider); + this.Name = "OidcLoginCtrl"; + this.Size = new System.Drawing.Size(388, 572); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.WebBrowser webBrowserIdentityProvider; + public System.Windows.Forms.WebBrowser WebBrowserIdentityProvider + { + get + { + return webBrowserIdentityProvider; + } + set + { + webBrowserIdentityProvider = value; + } + } + } +} diff --git a/CxViewerAction/Views/DockedView/OidcLoginCtrl.cs b/CxActionShared/Views/DockedView/OidcLoginCtrl.cs similarity index 67% rename from CxViewerAction/Views/DockedView/OidcLoginCtrl.cs rename to CxActionShared/Views/DockedView/OidcLoginCtrl.cs index 8de7b901..868289fa 100644 --- a/CxViewerAction/Views/DockedView/OidcLoginCtrl.cs +++ b/CxActionShared/Views/DockedView/OidcLoginCtrl.cs @@ -1,138 +1,168 @@ -using CxViewerAction.Services; -using System; -using System.Web; -using System.Windows.Forms; -using Common; -using Microsoft.Win32; - - -namespace CxViewerAction.Views.DockedView -{ - - public partial class OidcLoginCtrl : UserControl - { - #region Fields - - public event EventHandler NavigationError; - public event EventHandler NavigationCompleted; - public const string ERROR_QUERY_KEY = "Error"; - public const string BLANK_PAGE = "about:blank"; - - #endregion - - #region Ctor - - public OidcLoginCtrl() - { - InitializeComponent(); - webBrowserIdentityProvider.ScriptErrorsSuppressed = true; - ChangeIeVersion(); - webBrowserIdentityProvider.DocumentCompleted += OnDocumentCompleted; - webBrowserIdentityProvider.Navigated += OnNavigated; - } - - private void ChangeIeVersion() { - int RegVal; - - // set the appropriate IE 11 version - RegVal = 11001; - - // set the actual key - using (RegistryKey Key = Registry.CurrentUser.CreateSubKey(@"SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION", RegistryKeyPermissionCheck.ReadWriteSubTree)) - Key.SetValue(System.Diagnostics.Process.GetCurrentProcess().ProcessName + ".exe", RegVal, RegistryValueKind.DWord); - } - - #endregion - - #region Private methods - - private void OnNavigated(object sender, WebBrowserNavigatedEventArgs eventArgs) - { - webBrowserIdentityProvider.AllowNavigation = true; - - Uri urlAddress = new Uri(eventArgs.Url.ToString()); - string queryString = urlAddress.Query; - if (string.IsNullOrWhiteSpace(queryString)) - { - return; - } - string errorMessage = TryGetErrorFromQueryString(queryString); - if (errorMessage == null) - { - return; - } - errorMessage = string.IsNullOrWhiteSpace(errorMessage) ? "Internal server error" : errorMessage; - if (NavigationError != null) - { - webBrowserIdentityProvider.Navigate(BLANK_PAGE); - NavigationError(this, errorMessage); - } - } - - private string TryGetErrorFromQueryString(string queryString) - { - string errorMessage = string.Empty; - var queryParameters = HttpUtility.ParseQueryString(queryString); - if (queryParameters.HasKeys()) - { - errorMessage = queryParameters[ERROR_QUERY_KEY]; - } - return errorMessage; - } - - private void OnDocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs eventArgs) - { - if (!eventArgs.Url.AbsoluteUri.ToLower().Contains("code=")) - { - return; - } - - string code = ExtractCodeFromUrl(eventArgs.Url.AbsoluteUri); - - if (NavigationCompleted != null) - { - webBrowserIdentityProvider.Navigate(BLANK_PAGE); - NavigationCompleted(this, code); - } - } - - private string ExtractCodeFromUrl(string absoluteUri) - { - Uri myUri = new Uri(absoluteUri); - return HttpUtility.ParseQueryString(myUri.Query).Get("code"); - } - - public void ConnectToIdentidyProvider(String serverUri) - { - if (InvokeRequired) - { - Invoke(new MethodInvoker(() => ConnectToIdentidyProvider(serverUri))); - return; - } - NavigateToOidcLogin(serverUri); - } - - private void NavigateToOidcLogin(String serverUri) - { - string serverURL = serverUri + Constants.AUTHORIZATION_ENDPOINT; - string header = string.Format("Content-Type: application/x-www-form-urlencoded", Environment.NewLine); - string redirectUri = serverUri; - if (!redirectUri.EndsWith("/")) - { - redirectUri = redirectUri + "/"; - } - string postData = Constants.CLIENT_ID_KEY + "=" + Constants.CLIENT_VALUE + "&" + - Constants.SCOPE_KEY + "=" + Constants.SCOPE_VALUE + "&" + - Constants.RESPONSE_TYPE_KEY + "=" + Constants.RESPONSE_TYPE_VALUE + "&" + - Constants.REDIRECT_URI_KEY + "=" + redirectUri; - System.Text.Encoding encoding = System.Text.Encoding.UTF8; - byte[] postDataBytes = encoding.GetBytes(postData); - - WinCookieHelper.SupressCookiePersist(); - ChangeIeVersion(); - webBrowserIdentityProvider.Navigate(serverURL, string.Empty, postDataBytes, header); - } - - #endregion - } -} +using CxViewerAction.Services; +using System; +using System.Web; +using System.Windows.Forms; +using Common; +using Microsoft.Win32; +using CxViewerAction.Entities; +using CxViewerAction.Helpers; + +namespace CxViewerAction.Views.DockedView +{ + + public partial class OidcLoginCtrl : UserControl + { + #region Fields + + public event EventHandler NavigationError; + public event EventHandler NavigationCompleted; + public const string ERROR_QUERY_KEY = "Error"; + public const string BLANK_PAGE = "about:blank"; + public const String CODE_KEY = "code="; + + #endregion + + #region Ctor + + public OidcLoginCtrl() + { + InitializeComponent(); + webBrowserIdentityProvider.ScriptErrorsSuppressed = true; + ChangeIeVersion(); + webBrowserIdentityProvider.DocumentCompleted += OnDocumentCompleted; + webBrowserIdentityProvider.Navigated += OnNavigated; + } + + private void ChangeIeVersion() { + int RegVal; + + // set the appropriate IE 11 version + RegVal = 11001; + + // set the actual key + using (RegistryKey Key = Registry.CurrentUser.CreateSubKey(@"SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION", RegistryKeyPermissionCheck.ReadWriteSubTree)) + Key.SetValue(System.Diagnostics.Process.GetCurrentProcess().ProcessName + ".exe", RegVal, RegistryValueKind.DWord); + Logger.Create().Debug("Registry update for IE11 for Process Name " + System.Diagnostics.Process.GetCurrentProcess().ProcessName); + } + + #endregion + + #region Private methods + + private void OnNavigated(object sender, WebBrowserNavigatedEventArgs eventArgs) + { + webBrowserIdentityProvider.AllowNavigation = true; + + Uri urlAddress = new Uri(eventArgs.Url.ToString()); + if (!urlAddress.ToString().Contains("code=")) + { + Logger.Create().Debug("Navigation complete for " + urlAddress.ToString() + "."); + } + string queryString = urlAddress.Query; + if (string.IsNullOrWhiteSpace(queryString)) + { + return; + } + string errorMessage = TryGetErrorFromQueryString(queryString); + if (errorMessage == null) + { + return; + } + errorMessage = string.IsNullOrWhiteSpace(errorMessage) ? "Internal server error" : errorMessage; + Logger.Create().Debug("Navigation complete with error " + errorMessage + "."); + if (NavigationError != null) + { + webBrowserIdentityProvider.Navigate(BLANK_PAGE); + NavigationError(this, errorMessage); + } + } + + private string TryGetErrorFromQueryString(string queryString) + { + string errorMessage = string.Empty; + var queryParameters = HttpUtility.ParseQueryString(queryString); + if (queryParameters.HasKeys()) + { + errorMessage = queryParameters[ERROR_QUERY_KEY]; + } + return errorMessage; + } + + private void OnDocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs eventArgs) + { + + if (!validateUrlResponse(eventArgs)) + { + Logger.Create().Debug("Checking for presence of authorization code in the URL. " + eventArgs.Url.AbsoluteUri.ToLower()); + return; + } + + Logger.Create().Info("Authorization code found.Extracting authorization code from the URL. "); + string code = ExtractCodeFromUrl(eventArgs.Url.AbsoluteUri); + + if (NavigationCompleted != null) + { + webBrowserIdentityProvider.Navigate(BLANK_PAGE); + NavigationCompleted(this, code); + Logger.Create().Debug("Navigation completed with authorization code."); + } + } + + private Boolean validateUrlResponse(WebBrowserDocumentCompletedEventArgs eventArgs) + { + try + { + LoginData loginData = LoginHelper.LoadSaved(); + Uri myUri = new Uri(loginData.ServerBaseUri); + String host = myUri.Host; + return eventArgs.Url.AbsoluteUri.Contains(host) && eventArgs.Url.AbsoluteUri.ToLower().Contains(CODE_KEY); + } + catch (Exception ex) + { + throw new Exception(ex.ToString()); + } + } + + private string ExtractCodeFromUrl(string absoluteUri) + { + Uri myUri = new Uri(absoluteUri); + return HttpUtility.ParseQueryString(myUri.Query).Get("code"); + } + + public void ConnectToIdentidyProvider(String serverUri) + { + if (InvokeRequired) + { + Invoke(new MethodInvoker(() => ConnectToIdentidyProvider(serverUri))); + return; + } + Logger.Create().Debug("Initiating navigation to OIDC authorization endpoint "+serverUri); + NavigateToOidcLogin(serverUri); + } + + private void NavigateToOidcLogin(String serverUri) + { + string serverURL = serverUri + Constants.AUTHORIZATION_ENDPOINT; + string header = string.Format("Content-Type: application/x-www-form-urlencoded", Environment.NewLine); + string redirectUri = serverUri; + if (!redirectUri.EndsWith("/")) + { + redirectUri = redirectUri + "/"; + } + string postData = Constants.CLIENT_ID_KEY + "=" + Constants.CLIENT_VALUE + "&" + + Constants.SCOPE_KEY + "=" + Constants.SCOPE_VALUE + "&" + + Constants.RESPONSE_TYPE_KEY + "=" + Constants.RESPONSE_TYPE_VALUE + "&" + + Constants.REDIRECT_URI_KEY + "=" + redirectUri; + System.Text.Encoding encoding = System.Text.Encoding.UTF8; + byte[] postDataBytes = encoding.GetBytes(postData); + + WinCookieHelper.SupressCookiePersist(); + Logger.Create().Debug("Changing IE version to IE11."); + ChangeIeVersion(); + Logger.Create().Debug("Navigating to " + serverURL + " headers " + header); + webBrowserIdentityProvider.Navigate(serverURL, string.Empty, postDataBytes, header); + } + + #endregion + } +} diff --git a/CxViewerAction/Views/DockedView/OidcLoginCtrl.resx b/CxActionShared/Views/DockedView/OidcLoginCtrl.resx similarity index 97% rename from CxViewerAction/Views/DockedView/OidcLoginCtrl.resx rename to CxActionShared/Views/DockedView/OidcLoginCtrl.resx index 29dcb1b3..1af7de15 100644 --- a/CxViewerAction/Views/DockedView/OidcLoginCtrl.resx +++ b/CxActionShared/Views/DockedView/OidcLoginCtrl.resx @@ -1,120 +1,120 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + \ No newline at end of file diff --git a/CxViewerAction/Views/DockedView/OptionsAuthCtrl.Designer.cs b/CxActionShared/Views/DockedView/OptionsAuthCtrl.Designer.cs similarity index 83% rename from CxViewerAction/Views/DockedView/OptionsAuthCtrl.Designer.cs rename to CxActionShared/Views/DockedView/OptionsAuthCtrl.Designer.cs index eb68ad7f..dd95f950 100644 --- a/CxViewerAction/Views/DockedView/OptionsAuthCtrl.Designer.cs +++ b/CxActionShared/Views/DockedView/OptionsAuthCtrl.Designer.cs @@ -1,140 +1,152 @@ -using System; - -namespace CxViewerAction.Views.DockedView -{ - partial class OptionsAuthCtrl - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - [STAThread] - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - this.groupAuth = new System.Windows.Forms.GroupBox(); - this.logoutBtn = new System.Windows.Forms.Button(); - this.txtServer = new System.Windows.Forms.TextBox(); - this.loginBtn = new System.Windows.Forms.Button(); - this.label1 = new System.Windows.Forms.Label(); - this.errorProvider = new System.Windows.Forms.ErrorProvider(this.components); - this.applyButton = new System.Windows.Forms.Button(); - this.groupAuth.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit(); - this.SuspendLayout(); - // - // groupAuth - // - this.groupAuth.AutoSize = true; - this.groupAuth.Controls.Add(this.logoutBtn); - this.groupAuth.Controls.Add(this.txtServer); - this.groupAuth.Controls.Add(this.loginBtn); - this.groupAuth.Controls.Add(this.label1); - this.groupAuth.Location = new System.Drawing.Point(3, 3); - this.groupAuth.Name = "groupAuth"; - this.groupAuth.Size = new System.Drawing.Size(474, 179); - this.groupAuth.TabIndex = 0; - this.groupAuth.TabStop = false; - this.groupAuth.Text = "Authentication"; - // - // logoutBtn - // - this.logoutBtn.DialogResult = System.Windows.Forms.DialogResult.OK; - this.logoutBtn.Enabled = false; - this.logoutBtn.Location = new System.Drawing.Point(121, 95); - this.logoutBtn.Name = "logoutBtn"; - this.logoutBtn.Size = new System.Drawing.Size(218, 23); - this.logoutBtn.TabIndex = 2; - this.logoutBtn.Text = "Logout"; - this.logoutBtn.UseVisualStyleBackColor = true; - this.logoutBtn.Click += new System.EventHandler(this.logoutBtn_Click); - // - // txtServer - // - this.txtServer.Location = new System.Drawing.Point(121, 17); - this.txtServer.Name = "txtServer"; - this.txtServer.Size = new System.Drawing.Size(218, 20); - this.txtServer.TabIndex = 1; - // - // loginBtn - // - this.loginBtn.DialogResult = System.Windows.Forms.DialogResult.OK; - this.loginBtn.Location = new System.Drawing.Point(121, 55); - this.loginBtn.Name = "loginBtn"; - this.loginBtn.Size = new System.Drawing.Size(218, 23); - this.loginBtn.TabIndex = 1; - this.loginBtn.Text = "Login"; - this.loginBtn.UseVisualStyleBackColor = true; - this.loginBtn.Click += new System.EventHandler(this.btnSave_Click); - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(7, 20); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(41, 13); - this.label1.TabIndex = 0; - this.label1.Text = "Server:"; - // - // errorProvider - // - this.errorProvider.ContainerControl = this; - // - // applyButton - // - this.applyButton.DialogResult = System.Windows.Forms.DialogResult.OK; - this.applyButton.Location = new System.Drawing.Point(13, 188); - this.applyButton.Name = "applyButton"; - this.applyButton.Size = new System.Drawing.Size(150, 22); - this.applyButton.TabIndex = 3; - this.applyButton.Text = "Apply"; - this.applyButton.UseVisualStyleBackColor = true; - this.applyButton.Click += new System.EventHandler(this.button1_Click); - // - // OptionsAuthCtrl - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.Controls.Add(this.applyButton); - this.Controls.Add(this.groupAuth); - this.Name = "OptionsAuthCtrl"; - this.Size = new System.Drawing.Size(598, 250); - this.VisibleChanged += new System.EventHandler(this.OptionsAuthCtrl_VisibleChanged); - this.groupAuth.ResumeLayout(false); - this.groupAuth.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.GroupBox groupAuth; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.TextBox txtServer; - private System.Windows.Forms.Button loginBtn; - private System.Windows.Forms.ErrorProvider errorProvider; - private System.Windows.Forms.Button logoutBtn; - private System.Windows.Forms.Button applyButton; - } -} +using System; + +namespace CxViewerAction.Views.DockedView +{ + partial class OptionsAuthCtrl + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + [STAThread] + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.groupAuth = new System.Windows.Forms.GroupBox(); + this.logoutBtn = new System.Windows.Forms.Button(); + this.txtServer = new System.Windows.Forms.TextBox(); + this.loginBtn = new System.Windows.Forms.Button(); + this.label1 = new System.Windows.Forms.Label(); + this.errorProvider = new System.Windows.Forms.ErrorProvider(this.components); + this.applyButton = new System.Windows.Forms.Button(); + this.lblNote = new System.Windows.Forms.Label(); + this.groupAuth.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit(); + this.SuspendLayout(); + // + // groupAuth + // + this.groupAuth.AutoSize = true; + this.groupAuth.Controls.Add(this.logoutBtn); + this.groupAuth.Controls.Add(this.txtServer); + this.groupAuth.Controls.Add(this.loginBtn); + this.groupAuth.Controls.Add(this.label1); + this.groupAuth.Location = new System.Drawing.Point(3, 3); + this.groupAuth.Name = "groupAuth"; + this.groupAuth.Size = new System.Drawing.Size(474, 179); + this.groupAuth.TabIndex = 0; + this.groupAuth.TabStop = false; + this.groupAuth.Text = "Authentication"; + // + // logoutBtn + // + this.logoutBtn.DialogResult = System.Windows.Forms.DialogResult.OK; + this.logoutBtn.Enabled = false; + this.logoutBtn.Location = new System.Drawing.Point(121, 95); + this.logoutBtn.Name = "logoutBtn"; + this.logoutBtn.Size = new System.Drawing.Size(218, 23); + this.logoutBtn.TabIndex = 2; + this.logoutBtn.Text = "Logout"; + this.logoutBtn.UseVisualStyleBackColor = true; + this.logoutBtn.Click += new System.EventHandler(this.logoutBtn_Click); + // + // txtServer + // + this.txtServer.Location = new System.Drawing.Point(121, 17); + this.txtServer.Name = "txtServer"; + this.txtServer.Size = new System.Drawing.Size(218, 20); + this.txtServer.TabIndex = 1; + // + // loginBtn + // + this.loginBtn.DialogResult = System.Windows.Forms.DialogResult.OK; + this.loginBtn.Location = new System.Drawing.Point(121, 55); + this.loginBtn.Name = "loginBtn"; + this.loginBtn.Size = new System.Drawing.Size(218, 23); + this.loginBtn.TabIndex = 1; + this.loginBtn.Text = "Login"; + this.loginBtn.UseVisualStyleBackColor = true; + this.loginBtn.Click += new System.EventHandler(this.btnSave_Click); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(7, 20); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(41, 13); + this.label1.TabIndex = 0; + this.label1.Text = "Server:"; + // + // lblNote + // + this.lblNote.AutoSize = true; + this.lblNote.Location = new System.Drawing.Point(7, 225); + this.lblNote.Name = "lblNote"; + this.lblNote.Size = new System.Drawing.Size(41, 13); + this.lblNote.TabIndex = 0; + this.lblNote.Text = "Note that for Visual Studio 2019, uncheck the\n'Optimize rendering for screens with different pixel densities (requires restart)'\ncheckbox located under: Tools > Options > Environment > General,\nin order to optimize visualization."; + // + // errorProvider + // + this.errorProvider.ContainerControl = this; + // + // applyButton + // + this.applyButton.DialogResult = System.Windows.Forms.DialogResult.OK; + this.applyButton.Location = new System.Drawing.Point(13, 188); + this.applyButton.Name = "applyButton"; + this.applyButton.Size = new System.Drawing.Size(150, 22); + this.applyButton.TabIndex = 3; + this.applyButton.Text = "Apply"; + this.applyButton.UseVisualStyleBackColor = true; + this.applyButton.Click += new System.EventHandler(this.button1_Click); + // + // OptionsAuthCtrl + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.applyButton); + this.Controls.Add(this.groupAuth); + this.Controls.Add(this.lblNote); + this.Name = "OptionsAuthCtrl"; + this.Size = new System.Drawing.Size(598, 250); + this.VisibleChanged += new System.EventHandler(this.OptionsAuthCtrl_VisibleChanged); + this.groupAuth.ResumeLayout(false); + this.groupAuth.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.GroupBox groupAuth; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.TextBox txtServer; + private System.Windows.Forms.Button loginBtn; + private System.Windows.Forms.ErrorProvider errorProvider; + private System.Windows.Forms.Button logoutBtn; + private System.Windows.Forms.Button applyButton; + private System.Windows.Forms.Label lblNote; + } +} diff --git a/CxActionShared/Views/DockedView/OptionsAuthCtrl.cs b/CxActionShared/Views/DockedView/OptionsAuthCtrl.cs new file mode 100644 index 00000000..85d77628 --- /dev/null +++ b/CxActionShared/Views/DockedView/OptionsAuthCtrl.cs @@ -0,0 +1,233 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Data; +using System.Text; +using System.Windows.Forms; +using CxViewerAction.Helpers; +using CxViewerAction.Entities; +using CxViewerAction.Entities.Enum; +using CxViewerAction.Entities.WebServiceEntity; +using Common; +using EnvDTE; +using CefSharp; + +namespace CxViewerAction.Views.DockedView +{ + /// + /// Control represent addin custom settings form, available through "Tools" - "Options" menu item + /// + public partial class OptionsAuthCtrl : UserControl + { + #region [Private Members] + private string _server = ""; + #endregion + + private LoginData currentLogin = null; + private LoginResult loginResult = null; + + #region [Public Properties] + + #endregion + + #region [Constructors] + + public OptionsAuthCtrl() + { + InitializeComponent(); + if (Connect.IsLoaded) + { + BindDataToView(); + } + } + #endregion + + #region [Public Methods] + + + + + /// + /// Login click button handler + /// + /// + /// + private void btnSave_Click(object sender, EventArgs e) + { + save(); + currentLogin = BindDataFromView(); + if (currentLogin.BindedProjects != null) + { + currentLogin.BindedProjects.Clear(); + } + + CommonData.IsProjectBound = false; + LoginHelper.IsLogged = false; + LoginHelper.Save(currentLogin); + try + { + bool cancelPressed; + loginResult = LoginHelper.DoLoginWithoutForm(out cancelPressed, true); + if (loginResult.IsSuccesfull) + { + MessageBox.Show("Login Successful", "Information", MessageBoxButtons.OK); + loginBtn.Enabled = false; + logoutBtn.Enabled = true; + } + + else if (!string.IsNullOrWhiteSpace(currentLogin.AuthenticationType) && (currentLogin.AuthenticationType == (Common.Constants.AuthenticationaType_DefaultValue) || (currentLogin.AuthenticationType == Common.Constants.AuthenticationaType_IE)) && loginResult.LoginResultMessage != null && !loginResult.LoginResultMessage.Equals("Exit")) + { + MessageBox.Show("Login Failed", "Information", MessageBoxButtons.OK); + loginBtn.Enabled = true; + logoutBtn.Enabled = false; + } + else if (!string.IsNullOrWhiteSpace(currentLogin.AuthenticationType) && loginResult.LoginResultType == Common.LoginResultType.UnknownError && !loginResult.IsSuccesfull && loginResult.LoginResultMessage == null) + { + MessageBox.Show("Invalid credentials", "Error", MessageBoxButtons.OK); + loginBtn.Enabled = true; + logoutBtn.Enabled = false; + } + } + catch (Exception ex) + { + Logger.Create().Error(ex); + } + } + + private void save() + { + if (!Connect.IsLoaded) + { + MessageBox.Show("Checkmarx Visual Studio Plugin is disabled. \r\nPlease enable the plugin in Tools->Add-In Manager", "Information", MessageBoxButtons.OK); + return; + } + try + { + txtServer_Validating(txtServer, new CancelEventArgs()); + if (!string.IsNullOrEmpty(errorProvider.GetError(txtServer)) || string.IsNullOrEmpty(txtServer.Text)) + { + return; + } + } + catch (Exception ex) + { + Logger.Create().Error(ex); + MessageBox.Show(ex.ToString(), "Error", MessageBoxButtons.OK); + } + } + + void CheckValidation() + { + txtServer_Validating(txtServer, new CancelEventArgs()); + } + + #endregion + + #region [Private Methods] + + /// + /// Bind object data to form controls + /// + private void BindDataToView() + { + OidcLoginData oidcLoginData = OidcLoginData.GetOidcLoginDataInstance(); + currentLogin = LoginHelper.Load(0); + txtServer.Text = currentLogin.ServerDomain; + if (oidcLoginData.AccessToken == null) + { + loginBtn.Enabled = true; + logoutBtn.Enabled = false; + } + else + { + loginBtn.Enabled = false; + logoutBtn.Enabled = true; + } + } + + /// + /// Bind form contol values to object data + /// + /// + private LoginData BindDataFromView() + { + currentLogin = LoginHelper.Load(0); + + currentLogin.ServerDomain = txtServer.Text; + + return currentLogin; + } + + /// + /// Validate server name + /// + /// + /// + private void txtServer_Validating(object sender, CancelEventArgs e) + { + if (string.IsNullOrEmpty(txtServer.Text)) + { + errorProvider.SetError(txtServer, "Enter server domain"); + e.Cancel = true; + } + else + errorProvider.SetError(txtServer, string.Empty); + } + + + + + /// + /// "Restore default" button handler + /// + /// + /// + private void btnRestore_Click(object sender, EventArgs e) + { + txtServer.Text = _server; + } + #endregion + + private void OptionsAuthCtrl_VisibleChanged(object sender, EventArgs e) + { + if (Connect.IsLoaded) + { + BindDataToView(); + errorProvider.Clear(); + } + } + + + public void OnOK() + { + save(); + if (Connect.IsLoaded && (string.IsNullOrEmpty(txtServer.Text))) + { + MessageBox.Show("Cannot save. Data is not valid.", "Error", MessageBoxButtons.OK); + } + } + + // Logout button + private void logoutBtn_Click(object sender, EventArgs e) + { + if (loginResult != null) + { + loginResult.IsSuccesfull = false; + } + LoginHelper.DoLogout(); + MessageBox.Show("Logout Successful", "Information", MessageBoxButtons.OK); + loginBtn.Enabled = true; + logoutBtn.Enabled = false; + currentLogin.Clear(); + } + + + // Apply button + private void button1_Click(object sender, EventArgs e) + { + OnOK(); + } + + } +} diff --git a/CxViewerAction/Views/DockedView/OptionsAuthCtrl.resx b/CxActionShared/Views/DockedView/OptionsAuthCtrl.resx similarity index 97% rename from CxViewerAction/Views/DockedView/OptionsAuthCtrl.resx rename to CxActionShared/Views/DockedView/OptionsAuthCtrl.resx index 2bc0d49e..29a1e5cd 100644 --- a/CxViewerAction/Views/DockedView/OptionsAuthCtrl.resx +++ b/CxActionShared/Views/DockedView/OptionsAuthCtrl.resx @@ -1,123 +1,123 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + \ No newline at end of file diff --git a/CxViewerAction/Views/DockedView/OptionsCtrl.Designer.cs b/CxActionShared/Views/DockedView/OptionsCtrl.Designer.cs similarity index 97% rename from CxViewerAction/Views/DockedView/OptionsCtrl.Designer.cs rename to CxActionShared/Views/DockedView/OptionsCtrl.Designer.cs index 0e611b3c..eeaca2f2 100644 --- a/CxViewerAction/Views/DockedView/OptionsCtrl.Designer.cs +++ b/CxActionShared/Views/DockedView/OptionsCtrl.Designer.cs @@ -1,202 +1,202 @@ -namespace CxViewerAction.Views.DockedView -{ - partial class OptionsCtrl - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - this.groupAuth = new System.Windows.Forms.GroupBox(); - this.txtPassword = new System.Windows.Forms.TextBox(); - this.txtUserName = new System.Windows.Forms.TextBox(); - this.txtServer = new System.Windows.Forms.TextBox(); - this.label3 = new System.Windows.Forms.Label(); - this.label2 = new System.Windows.Forms.Label(); - this.label1 = new System.Windows.Forms.Label(); - this.groupProgress = new System.Windows.Forms.GroupBox(); - this.checkInBackground = new System.Windows.Forms.CheckBox(); - this.btnSave = new System.Windows.Forms.Button(); - this.errorProvider = new System.Windows.Forms.ErrorProvider(this.components); - this.btnRestore = new System.Windows.Forms.Button(); - this.groupAuth.SuspendLayout(); - this.groupProgress.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit(); - this.SuspendLayout(); - // - // groupAuth - // - this.groupAuth.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.groupAuth.Controls.Add(this.txtPassword); - this.groupAuth.Controls.Add(this.txtUserName); - this.groupAuth.Controls.Add(this.txtServer); - this.groupAuth.Controls.Add(this.label3); - this.groupAuth.Controls.Add(this.label2); - this.groupAuth.Controls.Add(this.label1); - this.groupAuth.Location = new System.Drawing.Point(4, 4); - this.groupAuth.Name = "groupAuth"; - this.groupAuth.Size = new System.Drawing.Size(443, 116); - this.groupAuth.TabIndex = 0; - this.groupAuth.TabStop = false; - this.groupAuth.Text = "Authentication"; - // - // txtPassword - // - this.txtPassword.Location = new System.Drawing.Point(123, 83); - this.txtPassword.Name = "txtPassword"; - this.txtPassword.Size = new System.Drawing.Size(218, 20); - this.txtPassword.TabIndex = 5; - this.txtPassword.UseSystemPasswordChar = true; - this.txtPassword.Validating += new System.ComponentModel.CancelEventHandler(this.txtPassword_Validating); - // - // txtUserName - // - this.txtUserName.Location = new System.Drawing.Point(123, 50); - this.txtUserName.Name = "txtUserName"; - this.txtUserName.Size = new System.Drawing.Size(218, 20); - this.txtUserName.TabIndex = 4; - this.txtUserName.Validating += new System.ComponentModel.CancelEventHandler(this.txtUserName_Validating); - // - // txtServer - // - this.txtServer.Location = new System.Drawing.Point(123, 17); - this.txtServer.Name = "txtServer"; - this.txtServer.Size = new System.Drawing.Size(218, 20); - this.txtServer.TabIndex = 3; - this.txtServer.Validating += new System.ComponentModel.CancelEventHandler(this.txtServer_Validating); - // - // label3 - // - this.label3.AutoSize = true; - this.label3.Location = new System.Drawing.Point(7, 86); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(56, 13); - this.label3.TabIndex = 2; - this.label3.Text = "Password:"; - // - // label2 - // - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(7, 53); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(63, 13); - this.label2.TabIndex = 1; - this.label2.Text = "User Name:"; - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(7, 20); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(41, 13); - this.label1.TabIndex = 0; - this.label1.Text = "Server:"; - // - // groupProgress - // - this.groupProgress.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.groupProgress.Controls.Add(this.checkInBackground); - this.groupProgress.Location = new System.Drawing.Point(4, 127); - this.groupProgress.Name = "groupProgress"; - this.groupProgress.Size = new System.Drawing.Size(443, 72); - this.groupProgress.TabIndex = 1; - this.groupProgress.TabStop = false; - this.groupProgress.Text = "Scan progress"; - // - // checkInBackground - // - this.checkInBackground.AutoSize = true; - this.checkInBackground.Location = new System.Drawing.Point(10, 28); - this.checkInBackground.Name = "checkInBackground"; - this.checkInBackground.Size = new System.Drawing.Size(177, 17); - this.checkInBackground.TabIndex = 0; - this.checkInBackground.Text = "Always run in background mode"; - this.checkInBackground.UseVisualStyleBackColor = true; - // - // btnSave - // - this.btnSave.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.btnSave.DialogResult = System.Windows.Forms.DialogResult.OK; - this.btnSave.Location = new System.Drawing.Point(4, 206); - this.btnSave.Name = "btnSave"; - this.btnSave.Size = new System.Drawing.Size(88, 23); - this.btnSave.TabIndex = 2; - this.btnSave.Text = "Apply"; - this.btnSave.UseVisualStyleBackColor = true; - this.btnSave.Click += new System.EventHandler(this.btnSave_Click); - // - // errorProvider - // - this.errorProvider.ContainerControl = this; - // - // btnRestore - // - this.btnRestore.Location = new System.Drawing.Point(98, 206); - this.btnRestore.Name = "btnRestore"; - this.btnRestore.Size = new System.Drawing.Size(117, 23); - this.btnRestore.TabIndex = 3; - this.btnRestore.Text = "Restore defaults"; - this.btnRestore.UseVisualStyleBackColor = true; - this.btnRestore.Visible = false; - this.btnRestore.Click += new System.EventHandler(this.btnRestore_Click); - // - // OptionsCtrl - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.AutoSize = true; - this.Controls.Add(this.btnRestore); - this.Controls.Add(this.btnSave); - this.Controls.Add(this.groupProgress); - this.Controls.Add(this.groupAuth); - this.Name = "OptionsCtrl"; - this.Size = new System.Drawing.Size(450, 360); - this.groupAuth.ResumeLayout(false); - this.groupAuth.PerformLayout(); - this.groupProgress.ResumeLayout(false); - this.groupProgress.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit(); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.GroupBox groupAuth; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.TextBox txtPassword; - private System.Windows.Forms.TextBox txtUserName; - private System.Windows.Forms.TextBox txtServer; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.GroupBox groupProgress; - private System.Windows.Forms.CheckBox checkInBackground; - private System.Windows.Forms.Button btnSave; - private System.Windows.Forms.ErrorProvider errorProvider; - private System.Windows.Forms.Button btnRestore; - } -} +namespace CxViewerAction.Views.DockedView +{ + partial class OptionsCtrl + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.groupAuth = new System.Windows.Forms.GroupBox(); + this.txtPassword = new System.Windows.Forms.TextBox(); + this.txtUserName = new System.Windows.Forms.TextBox(); + this.txtServer = new System.Windows.Forms.TextBox(); + this.label3 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.label1 = new System.Windows.Forms.Label(); + this.groupProgress = new System.Windows.Forms.GroupBox(); + this.checkInBackground = new System.Windows.Forms.CheckBox(); + this.btnSave = new System.Windows.Forms.Button(); + this.errorProvider = new System.Windows.Forms.ErrorProvider(this.components); + this.btnRestore = new System.Windows.Forms.Button(); + this.groupAuth.SuspendLayout(); + this.groupProgress.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit(); + this.SuspendLayout(); + // + // groupAuth + // + this.groupAuth.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.groupAuth.Controls.Add(this.txtPassword); + this.groupAuth.Controls.Add(this.txtUserName); + this.groupAuth.Controls.Add(this.txtServer); + this.groupAuth.Controls.Add(this.label3); + this.groupAuth.Controls.Add(this.label2); + this.groupAuth.Controls.Add(this.label1); + this.groupAuth.Location = new System.Drawing.Point(4, 4); + this.groupAuth.Name = "groupAuth"; + this.groupAuth.Size = new System.Drawing.Size(443, 116); + this.groupAuth.TabIndex = 0; + this.groupAuth.TabStop = false; + this.groupAuth.Text = "Authentication"; + // + // txtPassword + // + this.txtPassword.Location = new System.Drawing.Point(123, 83); + this.txtPassword.Name = "txtPassword"; + this.txtPassword.Size = new System.Drawing.Size(218, 20); + this.txtPassword.TabIndex = 5; + this.txtPassword.UseSystemPasswordChar = true; + this.txtPassword.Validating += new System.ComponentModel.CancelEventHandler(this.txtPassword_Validating); + // + // txtUserName + // + this.txtUserName.Location = new System.Drawing.Point(123, 50); + this.txtUserName.Name = "txtUserName"; + this.txtUserName.Size = new System.Drawing.Size(218, 20); + this.txtUserName.TabIndex = 4; + this.txtUserName.Validating += new System.ComponentModel.CancelEventHandler(this.txtUserName_Validating); + // + // txtServer + // + this.txtServer.Location = new System.Drawing.Point(123, 17); + this.txtServer.Name = "txtServer"; + this.txtServer.Size = new System.Drawing.Size(218, 20); + this.txtServer.TabIndex = 3; + this.txtServer.Validating += new System.ComponentModel.CancelEventHandler(this.txtServer_Validating); + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(7, 86); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(56, 13); + this.label3.TabIndex = 2; + this.label3.Text = "Password:"; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(7, 53); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(63, 13); + this.label2.TabIndex = 1; + this.label2.Text = "User Name:"; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(7, 20); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(41, 13); + this.label1.TabIndex = 0; + this.label1.Text = "Server:"; + // + // groupProgress + // + this.groupProgress.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.groupProgress.Controls.Add(this.checkInBackground); + this.groupProgress.Location = new System.Drawing.Point(4, 127); + this.groupProgress.Name = "groupProgress"; + this.groupProgress.Size = new System.Drawing.Size(443, 72); + this.groupProgress.TabIndex = 1; + this.groupProgress.TabStop = false; + this.groupProgress.Text = "Scan progress"; + // + // checkInBackground + // + this.checkInBackground.AutoSize = true; + this.checkInBackground.Location = new System.Drawing.Point(10, 28); + this.checkInBackground.Name = "checkInBackground"; + this.checkInBackground.Size = new System.Drawing.Size(177, 17); + this.checkInBackground.TabIndex = 0; + this.checkInBackground.Text = "Always run in background mode"; + this.checkInBackground.UseVisualStyleBackColor = true; + // + // btnSave + // + this.btnSave.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnSave.DialogResult = System.Windows.Forms.DialogResult.OK; + this.btnSave.Location = new System.Drawing.Point(4, 206); + this.btnSave.Name = "btnSave"; + this.btnSave.Size = new System.Drawing.Size(88, 23); + this.btnSave.TabIndex = 2; + this.btnSave.Text = "Apply"; + this.btnSave.UseVisualStyleBackColor = true; + this.btnSave.Click += new System.EventHandler(this.btnSave_Click); + // + // errorProvider + // + this.errorProvider.ContainerControl = this; + // + // btnRestore + // + this.btnRestore.Location = new System.Drawing.Point(98, 206); + this.btnRestore.Name = "btnRestore"; + this.btnRestore.Size = new System.Drawing.Size(117, 23); + this.btnRestore.TabIndex = 3; + this.btnRestore.Text = "Restore defaults"; + this.btnRestore.UseVisualStyleBackColor = true; + this.btnRestore.Visible = false; + this.btnRestore.Click += new System.EventHandler(this.btnRestore_Click); + // + // OptionsCtrl + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.AutoSize = true; + this.Controls.Add(this.btnRestore); + this.Controls.Add(this.btnSave); + this.Controls.Add(this.groupProgress); + this.Controls.Add(this.groupAuth); + this.Name = "OptionsCtrl"; + this.Size = new System.Drawing.Size(450, 360); + this.groupAuth.ResumeLayout(false); + this.groupAuth.PerformLayout(); + this.groupProgress.ResumeLayout(false); + this.groupProgress.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.GroupBox groupAuth; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.TextBox txtPassword; + private System.Windows.Forms.TextBox txtUserName; + private System.Windows.Forms.TextBox txtServer; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.GroupBox groupProgress; + private System.Windows.Forms.CheckBox checkInBackground; + private System.Windows.Forms.Button btnSave; + private System.Windows.Forms.ErrorProvider errorProvider; + private System.Windows.Forms.Button btnRestore; + } +} diff --git a/CxViewerAction/Views/DockedView/OptionsCtrl.cs b/CxActionShared/Views/DockedView/OptionsCtrl.cs similarity index 96% rename from CxViewerAction/Views/DockedView/OptionsCtrl.cs rename to CxActionShared/Views/DockedView/OptionsCtrl.cs index 3af42609..b0203fb1 100644 --- a/CxViewerAction/Views/DockedView/OptionsCtrl.cs +++ b/CxActionShared/Views/DockedView/OptionsCtrl.cs @@ -1,98 +1,98 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Drawing; -using System.Data; -using System.Text; -using System.Windows.Forms; -using CxViewerAction.Helpers; -using CxViewerAction.Entities; -using CxViewerAction.Entities.Enum; - -namespace CxViewerAction.Views.DockedView -{ - public partial class OptionsCtrl : UserControl - { - private string _server = ""; - private string _userName = ""; - private string _password = ""; - - public OptionsCtrl() - { - InitializeComponent(); - BindDataToView(); - } - - private void btnSave_Click(object sender, EventArgs e) - { - if (string.IsNullOrEmpty(txtServer.Text) || string.IsNullOrEmpty(txtUserName.Text) || string.IsNullOrEmpty(txtPassword.Text)) - return; - - Login currentLogin = BindDataFromView(); - LoginHelper.Save(currentLogin); - } - - private void BindDataToView() - { - Login currentLogin = LoginHelper.Load(0); - - txtServer.Text = currentLogin.ServerDomain; - txtUserName.Text = currentLogin.UserName; - txtPassword.Text = currentLogin.Password; - checkInBackground.Checked = currentLogin.IsRunScanInBackground == CxViewerAction.Entities.Enum.SimpleDecision.Yes; - } - - private Login BindDataFromView() - { - Login currentLogin = LoginHelper.Load(0); - - currentLogin.Server = txtServer.Text; - currentLogin.UserName = txtUserName.Text; - currentLogin.Password = txtPassword.Text; - currentLogin.IsRunScanInBackground = checkInBackground.Checked ? SimpleDecision.Yes : SimpleDecision.None; - - return currentLogin; - } - - private void txtServer_Validating(object sender, CancelEventArgs e) - { - if (string.IsNullOrEmpty(txtServer.Text)) - { - errorProvider.SetError(txtServer, "Enter server domain"); - e.Cancel = true; - } - else - errorProvider.SetError(txtServer, string.Empty); - } - - private void txtUserName_Validating(object sender, CancelEventArgs e) - { - if (string.IsNullOrEmpty(txtUserName.Text)) - { - errorProvider.SetError(txtUserName, "Enter user name"); - e.Cancel = true; - } - else - errorProvider.SetError(txtUserName, string.Empty); - } - - private void txtPassword_Validating(object sender, CancelEventArgs e) - { - if (string.IsNullOrEmpty(txtPassword.Text)) - { - errorProvider.SetError(txtPassword, "Enter password"); - e.Cancel = true; - } - else - errorProvider.SetError(txtPassword, string.Empty); - } - - private void btnRestore_Click(object sender, EventArgs e) - { - txtServer.Text = _server; - txtUserName.Text = _userName; - txtPassword.Text = _password; - checkInBackground.Checked = false; - } - } -} +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Data; +using System.Text; +using System.Windows.Forms; +using CxViewerAction.Helpers; +using CxViewerAction.Entities; +using CxViewerAction.Entities.Enum; + +namespace CxViewerAction.Views.DockedView +{ + public partial class OptionsCtrl : UserControl + { + private string _server = ""; + private string _userName = ""; + private string _password = ""; + + public OptionsCtrl() + { + InitializeComponent(); + BindDataToView(); + } + + private void btnSave_Click(object sender, EventArgs e) + { + if (string.IsNullOrEmpty(txtServer.Text) || string.IsNullOrEmpty(txtUserName.Text) || string.IsNullOrEmpty(txtPassword.Text)) + return; + + Login currentLogin = BindDataFromView(); + LoginHelper.Save(currentLogin); + } + + private void BindDataToView() + { + Login currentLogin = LoginHelper.Load(0); + + txtServer.Text = currentLogin.ServerDomain; + txtUserName.Text = currentLogin.UserName; + txtPassword.Text = currentLogin.Password; + checkInBackground.Checked = currentLogin.IsRunScanInBackground == CxViewerAction.Entities.Enum.SimpleDecision.Yes; + } + + private Login BindDataFromView() + { + Login currentLogin = LoginHelper.Load(0); + + currentLogin.Server = txtServer.Text; + currentLogin.UserName = txtUserName.Text; + currentLogin.Password = txtPassword.Text; + currentLogin.IsRunScanInBackground = checkInBackground.Checked ? SimpleDecision.Yes : SimpleDecision.None; + + return currentLogin; + } + + private void txtServer_Validating(object sender, CancelEventArgs e) + { + if (string.IsNullOrEmpty(txtServer.Text)) + { + errorProvider.SetError(txtServer, "Enter server domain"); + e.Cancel = true; + } + else + errorProvider.SetError(txtServer, string.Empty); + } + + private void txtUserName_Validating(object sender, CancelEventArgs e) + { + if (string.IsNullOrEmpty(txtUserName.Text)) + { + errorProvider.SetError(txtUserName, "Enter user name"); + e.Cancel = true; + } + else + errorProvider.SetError(txtUserName, string.Empty); + } + + private void txtPassword_Validating(object sender, CancelEventArgs e) + { + if (string.IsNullOrEmpty(txtPassword.Text)) + { + errorProvider.SetError(txtPassword, "Enter password"); + e.Cancel = true; + } + else + errorProvider.SetError(txtPassword, string.Empty); + } + + private void btnRestore_Click(object sender, EventArgs e) + { + txtServer.Text = _server; + txtUserName.Text = _userName; + txtPassword.Text = _password; + checkInBackground.Checked = false; + } + } +} diff --git a/CxViewerAction/Views/DockedView/OptionsCtrl.resx b/CxActionShared/Views/DockedView/OptionsCtrl.resx similarity index 97% rename from CxViewerAction/Views/DockedView/OptionsCtrl.resx rename to CxActionShared/Views/DockedView/OptionsCtrl.resx index c1f9cdef..38d368e6 100644 --- a/CxViewerAction/Views/DockedView/OptionsCtrl.resx +++ b/CxActionShared/Views/DockedView/OptionsCtrl.resx @@ -1,123 +1,123 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + \ No newline at end of file diff --git a/CxViewerAction/Views/DockedView/OptionsZipCtrl.Designer.cs b/CxActionShared/Views/DockedView/OptionsZipCtrl.Designer.cs similarity index 97% rename from CxViewerAction/Views/DockedView/OptionsZipCtrl.Designer.cs rename to CxActionShared/Views/DockedView/OptionsZipCtrl.Designer.cs index ebd6ea5c..ae6e1e11 100644 --- a/CxViewerAction/Views/DockedView/OptionsZipCtrl.Designer.cs +++ b/CxActionShared/Views/DockedView/OptionsZipCtrl.Designer.cs @@ -1,157 +1,157 @@ -namespace CxViewerAction.Views.DockedView -{ - partial class OptionsZipCtrl - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - this.groupBox2 = new System.Windows.Forms.GroupBox(); - this.txtExcludeFileExt = new System.Windows.Forms.TextBox(); - this.txtExcludeFolder = new System.Windows.Forms.TextBox(); - this.txtZipMazSize = new System.Windows.Forms.TextBox(); - this.label8 = new System.Windows.Forms.Label(); - this.label7 = new System.Windows.Forms.Label(); - this.label6 = new System.Windows.Forms.Label(); - this.btnSave = new System.Windows.Forms.Button(); - this.errorProvider = new System.Windows.Forms.ErrorProvider(this.components); - this.groupBox2.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit(); - this.SuspendLayout(); - // - // groupBox2 - // - this.groupBox2.Controls.Add(this.txtExcludeFileExt); - this.groupBox2.Controls.Add(this.txtExcludeFolder); - this.groupBox2.Controls.Add(this.txtZipMazSize); - this.groupBox2.Controls.Add(this.label8); - this.groupBox2.Controls.Add(this.label7); - this.groupBox2.Controls.Add(this.label6); - this.groupBox2.Location = new System.Drawing.Point(0, 1); - this.groupBox2.Name = "groupBox2"; - this.groupBox2.Size = new System.Drawing.Size(390, 251); - this.groupBox2.TabIndex = 0; - this.groupBox2.TabStop = false; - this.groupBox2.Text = "Pack sources"; - // - // txtExcludeFileExt - // - this.txtExcludeFileExt.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.txtExcludeFileExt.Location = new System.Drawing.Point(22, 41); - this.txtExcludeFileExt.Multiline = true; - this.txtExcludeFileExt.Name = "txtExcludeFileExt"; - this.txtExcludeFileExt.Size = new System.Drawing.Size(352, 73); - this.txtExcludeFileExt.TabIndex = 1; - // - // txtExcludeFolder - // - this.txtExcludeFolder.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.txtExcludeFolder.Location = new System.Drawing.Point(22, 133); - this.txtExcludeFolder.Multiline = true; - this.txtExcludeFolder.Name = "txtExcludeFolder"; - this.txtExcludeFolder.Size = new System.Drawing.Size(352, 77); - this.txtExcludeFolder.TabIndex = 2; - // - // txtZipMazSize - // - this.txtZipMazSize.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.txtZipMazSize.Location = new System.Drawing.Point(159, 216); - this.txtZipMazSize.Name = "txtZipMazSize"; - this.txtZipMazSize.Size = new System.Drawing.Size(59, 20); - this.txtZipMazSize.TabIndex = 3; - this.txtZipMazSize.Validating += new System.ComponentModel.CancelEventHandler(this.txtZipMazSize_Validating); - // - // label8 - // - this.label8.AutoSize = true; - this.label8.Location = new System.Drawing.Point(20, 219); - this.label8.Name = "label8"; - this.label8.Size = new System.Drawing.Size(109, 13); - this.label8.TabIndex = 4; - this.label8.Text = "Max ZIP file size (MB)"; - // - // label7 - // - this.label7.AutoSize = true; - this.label7.Location = new System.Drawing.Point(19, 117); - this.label7.Name = "label7"; - this.label7.Size = new System.Drawing.Size(148, 13); - this.label7.TabIndex = 1; - this.label7.Text = "Exclude folders: (comma sep.)"; - // - // label6 - // - this.label6.AutoSize = true; - this.label6.Location = new System.Drawing.Point(19, 25); - this.label6.Name = "label6"; - this.label6.Size = new System.Drawing.Size(135, 13); - this.label6.TabIndex = 0; - this.label6.Text = "Exclude files: (comma sep.)"; - // - // btnSave - // - this.btnSave.DialogResult = System.Windows.Forms.DialogResult.OK; - this.btnSave.Location = new System.Drawing.Point(0, 258); - this.btnSave.Name = "btnSave"; - this.btnSave.Size = new System.Drawing.Size(88, 23); - this.btnSave.TabIndex = 11; - this.btnSave.Text = "Apply"; - this.btnSave.UseVisualStyleBackColor = true; - this.btnSave.Click += new System.EventHandler(this.btnSave_Click); - // - // errorProvider - // - this.errorProvider.ContainerControl = this; - // - // OptionsZipCtrl - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.Controls.Add(this.groupBox2); - this.Controls.Add(this.btnSave); - this.Name = "OptionsZipCtrl"; - this.Size = new System.Drawing.Size(460, 284); - this.VisibleChanged += new System.EventHandler(this.OptionsZipCtrl_VisibleChanged); - this.groupBox2.ResumeLayout(false); - this.groupBox2.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit(); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.GroupBox groupBox2; - private System.Windows.Forms.TextBox txtExcludeFolder; - private System.Windows.Forms.TextBox txtExcludeFileExt; - private System.Windows.Forms.Label label7; - private System.Windows.Forms.Label label6; - private System.Windows.Forms.Button btnSave; - private System.Windows.Forms.ErrorProvider errorProvider; - private System.Windows.Forms.TextBox txtZipMazSize; - private System.Windows.Forms.Label label8; - } -} +namespace CxViewerAction.Views.DockedView +{ + partial class OptionsZipCtrl + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.groupBox2 = new System.Windows.Forms.GroupBox(); + this.txtExcludeFileExt = new System.Windows.Forms.TextBox(); + this.txtExcludeFolder = new System.Windows.Forms.TextBox(); + this.txtZipMazSize = new System.Windows.Forms.TextBox(); + this.label8 = new System.Windows.Forms.Label(); + this.label7 = new System.Windows.Forms.Label(); + this.label6 = new System.Windows.Forms.Label(); + this.btnSave = new System.Windows.Forms.Button(); + this.errorProvider = new System.Windows.Forms.ErrorProvider(this.components); + this.groupBox2.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit(); + this.SuspendLayout(); + // + // groupBox2 + // + this.groupBox2.Controls.Add(this.txtExcludeFileExt); + this.groupBox2.Controls.Add(this.txtExcludeFolder); + this.groupBox2.Controls.Add(this.txtZipMazSize); + this.groupBox2.Controls.Add(this.label8); + this.groupBox2.Controls.Add(this.label7); + this.groupBox2.Controls.Add(this.label6); + this.groupBox2.Location = new System.Drawing.Point(0, 1); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.Size = new System.Drawing.Size(390, 251); + this.groupBox2.TabIndex = 0; + this.groupBox2.TabStop = false; + this.groupBox2.Text = "Pack sources"; + // + // txtExcludeFileExt + // + this.txtExcludeFileExt.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.txtExcludeFileExt.Location = new System.Drawing.Point(22, 41); + this.txtExcludeFileExt.Multiline = true; + this.txtExcludeFileExt.Name = "txtExcludeFileExt"; + this.txtExcludeFileExt.Size = new System.Drawing.Size(352, 73); + this.txtExcludeFileExt.TabIndex = 1; + // + // txtExcludeFolder + // + this.txtExcludeFolder.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.txtExcludeFolder.Location = new System.Drawing.Point(22, 133); + this.txtExcludeFolder.Multiline = true; + this.txtExcludeFolder.Name = "txtExcludeFolder"; + this.txtExcludeFolder.Size = new System.Drawing.Size(352, 77); + this.txtExcludeFolder.TabIndex = 2; + // + // txtZipMazSize + // + this.txtZipMazSize.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.txtZipMazSize.Location = new System.Drawing.Point(159, 216); + this.txtZipMazSize.Name = "txtZipMazSize"; + this.txtZipMazSize.Size = new System.Drawing.Size(59, 20); + this.txtZipMazSize.TabIndex = 3; + this.txtZipMazSize.Validating += new System.ComponentModel.CancelEventHandler(this.txtZipMazSize_Validating); + // + // label8 + // + this.label8.AutoSize = true; + this.label8.Location = new System.Drawing.Point(20, 219); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(109, 13); + this.label8.TabIndex = 4; + this.label8.Text = "Max ZIP file size (MB)"; + // + // label7 + // + this.label7.AutoSize = true; + this.label7.Location = new System.Drawing.Point(19, 117); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(148, 13); + this.label7.TabIndex = 1; + this.label7.Text = "Exclude folders: (comma sep.)"; + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Location = new System.Drawing.Point(19, 25); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(135, 13); + this.label6.TabIndex = 0; + this.label6.Text = "Exclude files: (comma sep.)"; + // + // btnSave + // + this.btnSave.DialogResult = System.Windows.Forms.DialogResult.OK; + this.btnSave.Location = new System.Drawing.Point(0, 258); + this.btnSave.Name = "btnSave"; + this.btnSave.Size = new System.Drawing.Size(88, 23); + this.btnSave.TabIndex = 11; + this.btnSave.Text = "Apply"; + this.btnSave.UseVisualStyleBackColor = true; + this.btnSave.Click += new System.EventHandler(this.btnSave_Click); + // + // errorProvider + // + this.errorProvider.ContainerControl = this; + // + // OptionsZipCtrl + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.groupBox2); + this.Controls.Add(this.btnSave); + this.Name = "OptionsZipCtrl"; + this.Size = new System.Drawing.Size(460, 284); + this.VisibleChanged += new System.EventHandler(this.OptionsZipCtrl_VisibleChanged); + this.groupBox2.ResumeLayout(false); + this.groupBox2.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.GroupBox groupBox2; + private System.Windows.Forms.TextBox txtExcludeFolder; + private System.Windows.Forms.TextBox txtExcludeFileExt; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.Button btnSave; + private System.Windows.Forms.ErrorProvider errorProvider; + private System.Windows.Forms.TextBox txtZipMazSize; + private System.Windows.Forms.Label label8; + } +} diff --git a/CxViewerAction/Views/DockedView/OptionsZipCtrl.cs b/CxActionShared/Views/DockedView/OptionsZipCtrl.cs similarity index 96% rename from CxViewerAction/Views/DockedView/OptionsZipCtrl.cs rename to CxActionShared/Views/DockedView/OptionsZipCtrl.cs index e278e2da..6882fe53 100644 --- a/CxViewerAction/Views/DockedView/OptionsZipCtrl.cs +++ b/CxActionShared/Views/DockedView/OptionsZipCtrl.cs @@ -1,242 +1,242 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Drawing; -using System.Data; -using System.Text; -using System.Windows.Forms; -using CxViewerAction.Entities; -using CxViewerAction.Helpers; -using CxViewerAction.Entities.Enum; -using EnvDTE; - -namespace CxViewerAction.Views.DockedView -{ - /// - /// Control represent addin custom settings form, available through "Tools" - "Options" menu item - /// - public partial class OptionsZipCtrl : UserControl - { - #region [Public Properties] - - /// - /// Gets or sets user decision value to open perspective immediately after scan complete - /// - public SimpleDecision IsOpenPerspectiveNow - { - get - { - //if (radioPrompt.Checked) - // return SimpleDecision.None; - //else if (radioAlways.Checked) - // return SimpleDecision.Yes; - //else - return SimpleDecision.No; - } - - set - { - //if (value == SimpleDecision.None) - // radioPrompt.Checked = true; - //else if (value == SimpleDecision.Yes) - // radioAlways.Checked = true; - //else - // radioNever.Checked = true; - } - } - - #endregion - - #region [Constructors] - public OptionsZipCtrl() - { - InitializeComponent(); - if (Connect.IsLoaded) - { - BindDataToView(); - } - } - #endregion - - #region [Private Methods] - - /// - /// Save button click handler - /// - /// - /// - private void btnSave_Click(object sender, EventArgs e) - { - save(); - } - - private void save() - { - try - { - if (!Connect.IsLoaded) - { - MessageBox.Show("Checkmarx Visual Studio Plugin is disable. \r\nPlease enable the plugin in Tools->Add-In Manager", "Information", MessageBoxButtons.OK); - return; - } - string errorMessage; - if (txtExcludeFileExtValidating(out errorMessage) && txtExcludeFolderValidating(out errorMessage) - && txtZipMazSizeValidating(out errorMessage)) - { - LoginData currentLogin = BindDataFromView(); - LoginHelper.Save(currentLogin); - } - else - { - TopMostMessageBox.Show(errorMessage, "Error"); - } - } - catch (Exception ex) - { - Common.Logger.Create().Error(ex.ToString()); - MessageBox.Show(ex.ToString(), "Error", MessageBoxButtons.OK); - } - } - - /// - /// Bind object data to form controls - /// - private void BindDataToView() - { - LoginData currentLogin = LoginHelper.Load(0); - - StringBuilder ext = new StringBuilder(); - foreach (string s in currentLogin.ExcludeFileExt) - ext.Append(s + ","); - - StringBuilder folder = new StringBuilder(); - foreach (string s in currentLogin.ExcludeFolder) - folder.Append(s + ","); - - txtExcludeFileExt.Text = ext.Remove(ext.Length - 1, 1).ToString(); - txtExcludeFolder.Text = folder.Remove(folder.Length - 1, 1).ToString(); - txtZipMazSize.Text = currentLogin.MaxZipFileSize.ToString(); - IsOpenPerspectiveNow = currentLogin.IsOpenPerspective; - } - - /// - /// Bind form control values to object data - /// - /// - private LoginData BindDataFromView() - { - LoginData currentLogin = LoginHelper.Load(0); - currentLogin.ExcludeFileExt = txtExcludeFileExt.Text.Split(','); - currentLogin.ExcludeFolder = txtExcludeFolder.Text.Split(','); - currentLogin.MaxZipFileSize = int.Parse(txtZipMazSize.Text); - currentLogin.IsOpenPerspective = IsOpenPerspectiveNow; - return currentLogin; - } - - /// - /// Validate set of excluded extensions: not empty - /// - /// - /// - private void txtExcludeFileExt_Validating(object sender, CancelEventArgs e) - { - string errorMessage; - if (!txtExcludeFileExtValidating(out errorMessage)) - { - errorProvider.SetError(txtExcludeFileExt, errorMessage); - e.Cancel = true; - } - else - errorProvider.SetError(txtExcludeFileExt, string.Empty); - } - - private bool txtExcludeFileExtValidating(out string errorMessage) - { - errorMessage = null; - if (string.IsNullOrEmpty(txtExcludeFileExt.Text)) - { - errorMessage = "Enter extensions to exclude"; - return false; - } - else - return true; - } - - /// - /// Validate set of excluded folders: not empty - /// - /// - /// - private void txtExcludeFolder_Validating(object sender, CancelEventArgs e) - { - string errorMessage; - if (!txtExcludeFolderValidating(out errorMessage)) - { - errorProvider.SetError(txtExcludeFolder, errorMessage); - e.Cancel = true; - } - else - errorProvider.SetError(txtExcludeFolder, string.Empty); - } - - private bool txtExcludeFolderValidating(out string errorMessage) - { - errorMessage = null; - - if (string.IsNullOrEmpty(txtExcludeFolder.Text)) - { - errorMessage = "Enter folders to exclude"; - return false; - } - else - return true; - - } - - private void txtZipMazSize_Validating(object sender, CancelEventArgs e) - { - string errorMessage; - if (!txtZipMazSizeValidating(out errorMessage)) - { - errorProvider.SetError(txtZipMazSize, errorMessage); - e.Cancel = true; - } - else - errorProvider.SetError(txtZipMazSize, string.Empty); - } - - private bool txtZipMazSizeValidating(out string errorMessage) - { - errorMessage = null; - if (string.IsNullOrEmpty(txtZipMazSize.Text)) - { - errorMessage = "Enter max ZIP file size"; - return false; - } - - int size; - if (!int.TryParse(txtZipMazSize.Text, out size) || size < 1) - { - errorMessage = "ZIP file size is numeric value more then 1"; - return false; - } - - return true; - } - #endregion - - private void OptionsZipCtrl_VisibleChanged(object sender, EventArgs e) - { - if (Connect.IsLoaded) - { - BindDataToView(); - errorProvider.Clear(); - } - } - - public void OnOK() - { - save(); - } - } -} +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Data; +using System.Text; +using System.Windows.Forms; +using CxViewerAction.Entities; +using CxViewerAction.Helpers; +using CxViewerAction.Entities.Enum; +using EnvDTE; + +namespace CxViewerAction.Views.DockedView +{ + /// + /// Control represent addin custom settings form, available through "Tools" - "Options" menu item + /// + public partial class OptionsZipCtrl : UserControl + { + #region [Public Properties] + + /// + /// Gets or sets user decision value to open perspective immediately after scan complete + /// + public SimpleDecision IsOpenPerspectiveNow + { + get + { + //if (radioPrompt.Checked) + // return SimpleDecision.None; + //else if (radioAlways.Checked) + // return SimpleDecision.Yes; + //else + return SimpleDecision.No; + } + + set + { + //if (value == SimpleDecision.None) + // radioPrompt.Checked = true; + //else if (value == SimpleDecision.Yes) + // radioAlways.Checked = true; + //else + // radioNever.Checked = true; + } + } + + #endregion + + #region [Constructors] + public OptionsZipCtrl() + { + InitializeComponent(); + if (Connect.IsLoaded) + { + BindDataToView(); + } + } + #endregion + + #region [Private Methods] + + /// + /// Save button click handler + /// + /// + /// + private void btnSave_Click(object sender, EventArgs e) + { + save(); + } + + private void save() + { + try + { + if (!Connect.IsLoaded) + { + MessageBox.Show("Checkmarx Visual Studio Plugin is disable. \r\nPlease enable the plugin in Tools->Add-In Manager", "Information", MessageBoxButtons.OK); + return; + } + string errorMessage; + if (txtExcludeFileExtValidating(out errorMessage) && txtExcludeFolderValidating(out errorMessage) + && txtZipMazSizeValidating(out errorMessage)) + { + LoginData currentLogin = BindDataFromView(); + LoginHelper.Save(currentLogin); + } + else + { + TopMostMessageBox.Show(errorMessage, "Error"); + } + } + catch (Exception ex) + { + Common.Logger.Create().Error(ex.ToString()); + MessageBox.Show(ex.ToString(), "Error", MessageBoxButtons.OK); + } + } + + /// + /// Bind object data to form controls + /// + private void BindDataToView() + { + LoginData currentLogin = LoginHelper.Load(0); + + StringBuilder ext = new StringBuilder(); + foreach (string s in currentLogin.ExcludeFileExt) + ext.Append(s + ","); + + StringBuilder folder = new StringBuilder(); + foreach (string s in currentLogin.ExcludeFolder) + folder.Append(s + ","); + + txtExcludeFileExt.Text = ext.Remove(ext.Length - 1, 1).ToString(); + txtExcludeFolder.Text = folder.Remove(folder.Length - 1, 1).ToString(); + txtZipMazSize.Text = currentLogin.MaxZipFileSize.ToString(); + IsOpenPerspectiveNow = currentLogin.IsOpenPerspective; + } + + /// + /// Bind form control values to object data + /// + /// + private LoginData BindDataFromView() + { + LoginData currentLogin = LoginHelper.Load(0); + currentLogin.ExcludeFileExt = txtExcludeFileExt.Text.Split(','); + currentLogin.ExcludeFolder = txtExcludeFolder.Text.Split(','); + currentLogin.MaxZipFileSize = int.Parse(txtZipMazSize.Text); + currentLogin.IsOpenPerspective = IsOpenPerspectiveNow; + return currentLogin; + } + + /// + /// Validate set of excluded extensions: not empty + /// + /// + /// + private void txtExcludeFileExt_Validating(object sender, CancelEventArgs e) + { + string errorMessage; + if (!txtExcludeFileExtValidating(out errorMessage)) + { + errorProvider.SetError(txtExcludeFileExt, errorMessage); + e.Cancel = true; + } + else + errorProvider.SetError(txtExcludeFileExt, string.Empty); + } + + private bool txtExcludeFileExtValidating(out string errorMessage) + { + errorMessage = null; + if (string.IsNullOrEmpty(txtExcludeFileExt.Text)) + { + errorMessage = "Enter extensions to exclude"; + return false; + } + else + return true; + } + + /// + /// Validate set of excluded folders: not empty + /// + /// + /// + private void txtExcludeFolder_Validating(object sender, CancelEventArgs e) + { + string errorMessage; + if (!txtExcludeFolderValidating(out errorMessage)) + { + errorProvider.SetError(txtExcludeFolder, errorMessage); + e.Cancel = true; + } + else + errorProvider.SetError(txtExcludeFolder, string.Empty); + } + + private bool txtExcludeFolderValidating(out string errorMessage) + { + errorMessage = null; + + if (string.IsNullOrEmpty(txtExcludeFolder.Text)) + { + errorMessage = "Enter folders to exclude"; + return false; + } + else + return true; + + } + + private void txtZipMazSize_Validating(object sender, CancelEventArgs e) + { + string errorMessage; + if (!txtZipMazSizeValidating(out errorMessage)) + { + errorProvider.SetError(txtZipMazSize, errorMessage); + e.Cancel = true; + } + else + errorProvider.SetError(txtZipMazSize, string.Empty); + } + + private bool txtZipMazSizeValidating(out string errorMessage) + { + errorMessage = null; + if (string.IsNullOrEmpty(txtZipMazSize.Text)) + { + errorMessage = "Enter max ZIP file size"; + return false; + } + + int size; + if (!int.TryParse(txtZipMazSize.Text, out size) || size < 1) + { + errorMessage = "ZIP file size is numeric value more then 1"; + return false; + } + + return true; + } + #endregion + + private void OptionsZipCtrl_VisibleChanged(object sender, EventArgs e) + { + if (Connect.IsLoaded) + { + BindDataToView(); + errorProvider.Clear(); + } + } + + public void OnOK() + { + save(); + } + } +} diff --git a/CxViewerAction/Views/DockedView/OptionsZipCtrl.resx b/CxActionShared/Views/DockedView/OptionsZipCtrl.resx similarity index 97% rename from CxViewerAction/Views/DockedView/OptionsZipCtrl.resx rename to CxActionShared/Views/DockedView/OptionsZipCtrl.resx index c1f9cdef..38d368e6 100644 --- a/CxViewerAction/Views/DockedView/OptionsZipCtrl.resx +++ b/CxActionShared/Views/DockedView/OptionsZipCtrl.resx @@ -1,123 +1,123 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + \ No newline at end of file diff --git a/CxViewerAction/Views/DockedView/PerspectiveCtrl.Designer.cs b/CxActionShared/Views/DockedView/PerspectiveCtrl.Designer.cs similarity index 94% rename from CxViewerAction/Views/DockedView/PerspectiveCtrl.Designer.cs rename to CxActionShared/Views/DockedView/PerspectiveCtrl.Designer.cs index 22aef916..918d9c66 100644 --- a/CxViewerAction/Views/DockedView/PerspectiveCtrl.Designer.cs +++ b/CxActionShared/Views/DockedView/PerspectiveCtrl.Designer.cs @@ -1,166 +1,167 @@ -namespace CxViewerAction.Views.DockedView -{ - partial class PerspectiveCtrl - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PerspectiveCtrl)); - this.tvPerspective = new System.Windows.Forms.TreeView(); - this.lblLoading = new System.Windows.Forms.Label(); - this.contextTreeViewMenu = new System.Windows.Forms.ContextMenuStrip(this.components); - this.menuItemShowDescription = new System.Windows.Forms.ToolStripMenuItem(); - this.menuItemExpand = new System.Windows.Forms.ToolStripMenuItem(); - this.menuItemCollapse = new System.Windows.Forms.ToolStripMenuItem(); - this.tvImages = new System.Windows.Forms.ImageList(this.components); - this.cbScans = new System.Windows.Forms.ComboBox(); - this.pnlScans = new System.Windows.Forms.Panel(); - this.panel2 = new System.Windows.Forms.Panel(); - this.contextTreeViewMenu.SuspendLayout(); - this.pnlScans.SuspendLayout(); - this.panel2.SuspendLayout(); - this.SuspendLayout(); - // - // tvPerspective - // - this.tvPerspective.Dock = System.Windows.Forms.DockStyle.Fill; - this.tvPerspective.Location = new System.Drawing.Point(0, 0); - this.tvPerspective.Name = "tvPerspective"; - this.tvPerspective.Size = new System.Drawing.Size(572, 342); - this.tvPerspective.TabIndex = 0; - this.tvPerspective.Visible = false; - this.tvPerspective.NodeMouseDoubleClick += new System.Windows.Forms.TreeNodeMouseClickEventHandler(this.tvPerspective_NodeMouseDoubleClick); - this.tvPerspective.MouseUp += new System.Windows.Forms.MouseEventHandler(this.tvPerspective_MouseUp); - this.tvPerspective.NodeMouseClick += new System.Windows.Forms.TreeNodeMouseClickEventHandler(this.tvPerspective_NodeMouseClick); - // - // lblLoading - // - this.lblLoading.AutoSize = true; - this.lblLoading.Location = new System.Drawing.Point(9, 3); - this.lblLoading.Name = "lblLoading"; - this.lblLoading.Size = new System.Drawing.Size(0, 13); - this.lblLoading.TabIndex = 1; - // - // contextTreeViewMenu - // - this.contextTreeViewMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.menuItemShowDescription, - this.menuItemExpand, - this.menuItemCollapse}); - this.contextTreeViewMenu.Name = "contextTreeViewMneu"; - this.contextTreeViewMenu.Size = new System.Drawing.Size(167, 92); - // - // menuItemShowDescription - // - this.menuItemShowDescription.Name = "menuItemShowDescription"; - this.menuItemShowDescription.Size = new System.Drawing.Size(166, 22); - this.menuItemShowDescription.Text = "Show Description"; - this.menuItemShowDescription.Click += new System.EventHandler(this.menuItemShowDescription_Click); - // - // menuItemExpand - // - this.menuItemExpand.Name = "menuItemExpand"; - this.menuItemExpand.Size = new System.Drawing.Size(166, 22); - this.menuItemExpand.Text = "Expand All"; - this.menuItemExpand.Click += new System.EventHandler(this.menuItemExpand_Click); - // - // menuItemCollapse - // - this.menuItemCollapse.Name = "menuItemCollapse"; - this.menuItemCollapse.Size = new System.Drawing.Size(166, 22); - this.menuItemCollapse.Text = "Collapse All"; - this.menuItemCollapse.Click += new System.EventHandler(this.menuItemCollapse_Click); - // - // tvImages - // - this.tvImages.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("tvImages.ImageStream"))); - this.tvImages.TransparentColor = System.Drawing.Color.Transparent; - this.tvImages.Images.SetKeyName(0, "help_16x16.gif"); - this.tvImages.Images.SetKeyName(1, "exclamation.png"); - this.tvImages.Images.SetKeyName(2, "attention2_16x16.gif"); - this.tvImages.Images.SetKeyName(3, "middle.jpg"); - this.tvImages.Images.SetKeyName(4, "cross_octagon.png"); - // - // cbScans - // - this.cbScans.FormattingEnabled = true; - this.cbScans.Location = new System.Drawing.Point(12, 2); - this.cbScans.Name = "cbScans"; - this.cbScans.Size = new System.Drawing.Size(165, 21); - this.cbScans.TabIndex = 2; - this.cbScans.SelectedValueChanged += new System.EventHandler(this.cbScans_SelectedValueChanged); - // - // pnlScans - // - this.pnlScans.Controls.Add(this.cbScans); - this.pnlScans.Dock = System.Windows.Forms.DockStyle.Top; - this.pnlScans.Location = new System.Drawing.Point(0, 0); - this.pnlScans.Name = "pnlScans"; - this.pnlScans.Size = new System.Drawing.Size(572, 26); - this.pnlScans.TabIndex = 3; - this.pnlScans.Visible = false; - // - // panel2 - // - this.panel2.Controls.Add(this.tvPerspective); - this.panel2.Controls.Add(this.lblLoading); - this.panel2.Dock = System.Windows.Forms.DockStyle.Fill; - this.panel2.Location = new System.Drawing.Point(0, 26); - this.panel2.Name = "panel2"; - this.panel2.Size = new System.Drawing.Size(572, 342); - this.panel2.TabIndex = 4; - // - // PerspectiveCtrl - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.Controls.Add(this.panel2); - this.Controls.Add(this.pnlScans); - this.Name = "PerspectiveCtrl"; - this.Size = new System.Drawing.Size(572, 368); - this.contextTreeViewMenu.ResumeLayout(false); - this.pnlScans.ResumeLayout(false); - this.panel2.ResumeLayout(false); - this.panel2.PerformLayout(); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.TreeView tvPerspective; - private System.Windows.Forms.Label lblLoading; - private System.Windows.Forms.ContextMenuStrip contextTreeViewMenu; - private System.Windows.Forms.ToolStripMenuItem menuItemShowDescription; - private System.Windows.Forms.ToolStripMenuItem menuItemExpand; - private System.Windows.Forms.ToolStripMenuItem menuItemCollapse; - private System.Windows.Forms.ImageList tvImages; - private System.Windows.Forms.ComboBox cbScans; - private System.Windows.Forms.Panel pnlScans; - private System.Windows.Forms.Panel panel2; - } -} +namespace CxViewerAction.Views.DockedView +{ + partial class PerspectiveCtrl + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PerspectiveCtrl)); + this.tvPerspective = new System.Windows.Forms.TreeView(); + this.lblLoading = new System.Windows.Forms.Label(); + this.contextTreeViewMenu = new System.Windows.Forms.ContextMenuStrip(this.components); + this.menuItemShowDescription = new System.Windows.Forms.ToolStripMenuItem(); + this.menuItemExpand = new System.Windows.Forms.ToolStripMenuItem(); + this.menuItemCollapse = new System.Windows.Forms.ToolStripMenuItem(); + this.tvImages = new System.Windows.Forms.ImageList(this.components); + this.cbScans = new System.Windows.Forms.ComboBox(); + this.pnlScans = new System.Windows.Forms.Panel(); + this.panel2 = new System.Windows.Forms.Panel(); + this.contextTreeViewMenu.SuspendLayout(); + this.pnlScans.SuspendLayout(); + this.panel2.SuspendLayout(); + this.SuspendLayout(); + // + // tvPerspective + // + this.tvPerspective.Dock = System.Windows.Forms.DockStyle.Fill; + this.tvPerspective.Location = new System.Drawing.Point(0, 0); + this.tvPerspective.Name = "tvPerspective"; + this.tvPerspective.Size = new System.Drawing.Size(572, 342); + this.tvPerspective.TabIndex = 0; + this.tvPerspective.Visible = false; + this.tvPerspective.NodeMouseDoubleClick += new System.Windows.Forms.TreeNodeMouseClickEventHandler(this.tvPerspective_NodeMouseDoubleClick); + this.tvPerspective.MouseUp += new System.Windows.Forms.MouseEventHandler(this.tvPerspective_MouseUp); + this.tvPerspective.NodeMouseClick += new System.Windows.Forms.TreeNodeMouseClickEventHandler(this.tvPerspective_NodeMouseClick); + // + // lblLoading + // + this.lblLoading.AutoSize = true; + this.lblLoading.Location = new System.Drawing.Point(9, 3); + this.lblLoading.Name = "lblLoading"; + this.lblLoading.Size = new System.Drawing.Size(0, 13); + this.lblLoading.TabIndex = 1; + // + // contextTreeViewMenu + // + this.contextTreeViewMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.menuItemShowDescription, + this.menuItemExpand, + this.menuItemCollapse}); + this.contextTreeViewMenu.Name = "contextTreeViewMneu"; + this.contextTreeViewMenu.Size = new System.Drawing.Size(167, 92); + // + // menuItemShowDescription + // + this.menuItemShowDescription.Name = "menuItemShowDescription"; + this.menuItemShowDescription.Size = new System.Drawing.Size(166, 22); + this.menuItemShowDescription.Text = "Show Description"; + this.menuItemShowDescription.Click += new System.EventHandler(this.menuItemShowDescription_Click); + // + // menuItemExpand + // + this.menuItemExpand.Name = "menuItemExpand"; + this.menuItemExpand.Size = new System.Drawing.Size(166, 22); + this.menuItemExpand.Text = "Expand All"; + this.menuItemExpand.Click += new System.EventHandler(this.menuItemExpand_Click); + // + // menuItemCollapse + // + this.menuItemCollapse.Name = "menuItemCollapse"; + this.menuItemCollapse.Size = new System.Drawing.Size(166, 22); + this.menuItemCollapse.Text = "Collapse All"; + this.menuItemCollapse.Click += new System.EventHandler(this.menuItemCollapse_Click); + // + // tvImages + // + this.tvImages.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("tvImages.ImageStream"))); + this.tvImages.TransparentColor = System.Drawing.Color.Transparent; + this.tvImages.Images.SetKeyName(0, "help_16x16.gif"); + this.tvImages.Images.SetKeyName(1, "Information.png"); + this.tvImages.Images.SetKeyName(2, "Low.png"); + this.tvImages.Images.SetKeyName(3, "Medium.png"); + this.tvImages.Images.SetKeyName(4, "High.png"); + this.tvImages.Images.SetKeyName(5, "Critical.png"); + // + // cbScans + // + this.cbScans.FormattingEnabled = true; + this.cbScans.Location = new System.Drawing.Point(12, 2); + this.cbScans.Name = "cbScans"; + this.cbScans.Size = new System.Drawing.Size(165, 21); + this.cbScans.TabIndex = 2; + this.cbScans.SelectedValueChanged += new System.EventHandler(this.cbScans_SelectedValueChanged); + // + // pnlScans + // + this.pnlScans.Controls.Add(this.cbScans); + this.pnlScans.Dock = System.Windows.Forms.DockStyle.Top; + this.pnlScans.Location = new System.Drawing.Point(0, 0); + this.pnlScans.Name = "pnlScans"; + this.pnlScans.Size = new System.Drawing.Size(572, 26); + this.pnlScans.TabIndex = 3; + this.pnlScans.Visible = false; + // + // panel2 + // + this.panel2.Controls.Add(this.tvPerspective); + this.panel2.Controls.Add(this.lblLoading); + this.panel2.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel2.Location = new System.Drawing.Point(0, 26); + this.panel2.Name = "panel2"; + this.panel2.Size = new System.Drawing.Size(572, 342); + this.panel2.TabIndex = 4; + // + // PerspectiveCtrl + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.panel2); + this.Controls.Add(this.pnlScans); + this.Name = "PerspectiveCtrl"; + this.Size = new System.Drawing.Size(572, 368); + this.contextTreeViewMenu.ResumeLayout(false); + this.pnlScans.ResumeLayout(false); + this.panel2.ResumeLayout(false); + this.panel2.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.TreeView tvPerspective; + private System.Windows.Forms.Label lblLoading; + private System.Windows.Forms.ContextMenuStrip contextTreeViewMenu; + private System.Windows.Forms.ToolStripMenuItem menuItemShowDescription; + private System.Windows.Forms.ToolStripMenuItem menuItemExpand; + private System.Windows.Forms.ToolStripMenuItem menuItemCollapse; + private System.Windows.Forms.ImageList tvImages; + private System.Windows.Forms.ComboBox cbScans; + private System.Windows.Forms.Panel pnlScans; + private System.Windows.Forms.Panel panel2; + } +} diff --git a/CxViewerAction/Views/DockedView/PerspectiveCtrl.cs b/CxActionShared/Views/DockedView/PerspectiveCtrl.cs similarity index 96% rename from CxViewerAction/Views/DockedView/PerspectiveCtrl.cs rename to CxActionShared/Views/DockedView/PerspectiveCtrl.cs index 9ca8492d..686a75de 100644 --- a/CxViewerAction/Views/DockedView/PerspectiveCtrl.cs +++ b/CxActionShared/Views/DockedView/PerspectiveCtrl.cs @@ -1,393 +1,393 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Drawing; -using System.Data; - -using System.Text; -using System.Windows.Forms; -using CxViewerAction.Entities.WebServiceEntity; -using System.Collections; -using CxViewerAction.Helpers; -using CxViewerAction.Helpers.DrawingHelper; -using CxViewerAction.Entities; - -namespace CxViewerAction.Views.DockedView -{ - public partial class PerspectiveCtrl : UserControl, IPerspectiveView - { - #region [Delegates] - private delegate void SetActiveDelegate(bool active, string loadingMessage); - private delegate void AddTreeViewItemDelegate(ReportResult report); - #endregion - - #region [Private Variables] - private ReportQueryResult _selectedReportItem = null; - private ReportResult _report = null; - - #endregion - - #region [Constructors] - public PerspectiveCtrl() - { - InitializeComponent(); - tvPerspective.ImageList = tvImages; - } - #endregion - - public event Action SelectedNodeChanged; - public event EventHandler SelectedReportItemChanged; - public event Action SelectedScanChanged; - - #region [Public Properties] - - /// - /// Gets or sets currently selected report problem type - /// - public ReportQueryResult SelectedReportItem - { - get - { - return _selectedReportItem; - } - set - { - _selectedReportItem = value; - SelectedReportItemChanged(this, null); - } - } - - /// - /// Gets or sets currently selected report - /// - public ReportResult Report - { - get - { - return _report; - } - set - { - _report = value; - } - } - #endregion - - #region [Public Methods] - - public void UpdateTreeItemInfo() - { - if (tvPerspective.SelectedNode != null) - { - ReportQueryResult reportProblem = (ReportQueryResult)tvPerspective.SelectedNode.Tag; - int numberOfVulnerabilities = 0; - foreach (ReportQueryItemResult item in reportProblem.Paths) - { - if (!item.FalsePositive) - numberOfVulnerabilities++; - } - - string nodeText = string.Format("{0} ({1} found)", reportProblem.Name, numberOfVulnerabilities); - tvPerspective.SelectedNode.Text = nodeText; - } - } - - /// - /// Bind object data to form controld - /// - public void BindData() - { - AddTreeViewItemDelegate del1 = AddTreeViewItem; - Invoke(del1, _report); - - SetActiveDelegate del2 = SetActive; - Invoke(del2, new object[] { true, null }); - } - - /// - /// Set form visiblity and show specified loading message if no active - /// - /// - /// - public void SetActivity(bool active, string loadingMessage) - { - SetActiveDelegate del2 = SetActive; - Invoke(del2, new object[] { active, loadingMessage }); - } - - public void SetScanList(Dictionary scanList, long selectedValue) - { - if (pnlScans.InvokeRequired) - { - pnlScans.Invoke(new MethodInvoker(delegate() { SetScanList(scanList, selectedValue); ; })); - return; - } - - try - { - BindProjectHelper.IsSelectionBlocked = true; - cbScans.DataSource = null; - foreach (KeyValuePair item in scanList) - { - cbScans.Items.Add(new DictionaryEntry(item.Key, item.Value)); - } - cbScans.DisplayMember = "Key"; - cbScans.ValueMember = "Value"; - cbScans.DataSource = cbScans.Items; - cbScans.Refresh(); - cbScans.SelectedValue = selectedValue; - - ChangePanelStatus(true); - - } - finally - { - BindProjectHelper.IsSelectionBlocked = false; - } - } - - void ChangePanelStatus(bool isVisible) - { - pnlScans.Visible = isVisible; - } - - public void RemoveScanList() - { - if (pnlScans.InvokeRequired) - { - pnlScans.Invoke(new MethodInvoker(delegate() { RemoveScanList(); ; })); - return; - } - - cbScans.DataSource = null; - cbScans.Items.Clear(); - ChangePanelStatus(false); - } - - #endregion - - #region [Private Methods] - /// - /// Generating tree view perspective representation - /// - /// - private void AddTreeViewItem(ReportResult report) - { - tvPerspective.Nodes.Clear(); - - foreach (KeyValuePair> problem in report.Tree) - { - TreeNode node = new TreeNode(problem.Key.ToString(), (int)problem.Key +1, (int)problem.Key +1) ; - node.Tag = new TreeNodeData(ViewerTreeNodeType.Root, (int)problem.Key, problem.Key.ToString(), problem.Value[0].ScanId, ReportQuerySeverityType.None, null); ; - - foreach (ReportQueryResult reportProblem in problem.Value) - { - TreeNode problemTypeNode = new TreeNode(string.Format("{0} ({1} found)", reportProblem.Name, reportProblem.AmountOfResults), (int)reportProblem.Severity +1, (int)reportProblem.Severity +1); - problemTypeNode.Tag = new TreeNodeData(ViewerTreeNodeType.Query, reportProblem.Id, reportProblem.Name, reportProblem.ScanId, reportProblem.Severity, reportProblem); - - SortNodes(problemTypeNode.Nodes); - node.Nodes.Add(problemTypeNode); - } - SortNodes(node.Nodes); - - tvPerspective.Nodes.Add(node); - - } - - //tvPerspective.Sort(); - } - - //SortNodes is a recursive method enumerating and sorting all node levels - private void SortNodes(TreeNodeCollection collection) - { - Sort(collection); - foreach (TreeNode node in collection) - { - if (node.Nodes.Count > 0) - { - SortNodes(node.Nodes); - } - } - } - - //The Sort method is called for each node level sorting the child nodes - public void Sort(TreeNodeCollection collection) - { - TreeNode[] nodes = new TreeNode[collection.Count]; - collection.CopyTo(nodes, 0); - Array.Sort(nodes, new TreeNodeComparer()); - collection.Clear(); - collection.AddRange(nodes); - } - - //The TreeNodeComparer class defines the sorting criteria - class TreeNodeComparer : IComparer - { - #region IComparer Members - - public int Compare(object x, object y) - { - TreeNode firstNode = (TreeNode)x; - TreeNode secondNode = (TreeNode)y; - - return firstNode.Text.ToString().CompareTo(secondNode.Text); - } - - #endregion - } - - /// - /// Set form activity - /// - /// - /// - private void SetActive(bool active, string loadingMessage) - { - if (active) - { - lblLoading.Visible = false; - tvPerspective.Visible = true; - } - else - { - if (!string.IsNullOrEmpty(loadingMessage)) - lblLoading.Text = loadingMessage; - - lblLoading.Visible = true; - tvPerspective.Visible = false; - } - } - - private void tvPerspective_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e) - { - } - - /// - /// Handler attached to mouse up button in tree control - /// - /// - /// - private void tvPerspective_MouseUp(object sender, MouseEventArgs e) - { - // Show menu only if the right mouse button is clicked. - if (e.Button == MouseButtons.Right) - { - // Point where the mouse is clicked. - Point p = new Point(e.X, e.Y); - - // Get the node that the user has clicked. - TreeNode node = tvPerspective.GetNodeAt(p); - if (node != null) - { - // Select the node the user has clicked. - // The node appears selected until the menu is displayed on the screen. - tvPerspective.SelectedNode = node; - - if (node.Parent != null) - { - if (node.Parent.Parent == null) - EnableMenuItems(1); - else - EnableMenuItems(2); - } - else - EnableMenuItems(0); - - contextTreeViewMenu.Show(tvPerspective, p); - } - } - } - - private void EnableMenuItems(byte level) - { - contextTreeViewMenu.Items[0].Enabled = true; - contextTreeViewMenu.Items[1].Enabled = true; - contextTreeViewMenu.Items[2].Enabled = true; - - if (level == 0) - { - contextTreeViewMenu.Items[0].Enabled = false; - } - else if (level == 1) - { - - } - else if (level == 2) - { - - } - } - - private void menuItemShowDescription_Click(object sender, EventArgs e) - { - object tag = tvPerspective.SelectedNode.Tag; - - if (tag is TreeNodeData) - { - int queryId = ((TreeNodeData)tag).QueryResult.Id; - string queryName = ((TreeNodeData)tag).QueryResult.Name; - long queryVersionCode = ((TreeNodeData)tag).QueryResult.QueryVersionCode; - QueryDescriptionEventArg eventArgs = new QueryDescriptionEventArg(queryId, queryName, queryVersionCode); - SelectedReportItemChanged(this, eventArgs); - } - } - - private void menuItemExpand_Click(object sender, EventArgs e) - { - tvPerspective.ExpandAll(); - } - - private void menuItemCollapse_Click(object sender, EventArgs e) - { - tvPerspective.CollapseAll(); - } - - private void tvPerspective_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) - { - - if (e.Node.Parent != null && e.Button == MouseButtons.Left) - { - TreeNode tNode = e.Node; - TreeViewHitTestInfo hit = tvPerspective.HitTest(e.Location); - DrawingHelper.SelectedNodeUniqueID = null; - DrawingHelper.isEdgeSelected = false; - SelectedNodeChanged((TreeNodeData)tNode.Tag); - - } - } - - #endregion - - private void cbScans_SelectedValueChanged(object sender, EventArgs e) - { - if (SelectedScanChanged != null && cbScans.SelectedIndex > -1 && !BindProjectHelper.IsSelectionBlocked) - { - SelectedScanChanged(Convert.ToInt64(cbScans.SelectedValue)); - } - } - } - - public class QueryDescriptionEventArg : EventArgs - { - #region Properties - - public int QueryId { get; set; } - - public string QueryName { get; set; } - - public long QueryVersionCode { get; set; } - - #endregion - - #region Ctor - - public QueryDescriptionEventArg(int queryId, string queryName, long queryVersionCode) - { - QueryId = queryId; - QueryName = queryName; - QueryVersionCode = queryVersionCode; - } - - #endregion - } -} +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Data; + +using System.Text; +using System.Windows.Forms; +using CxViewerAction.Entities.WebServiceEntity; +using System.Collections; +using CxViewerAction.Helpers; +using CxViewerAction.Helpers.DrawingHelper; +using CxViewerAction.Entities; + +namespace CxViewerAction.Views.DockedView +{ + public partial class PerspectiveCtrl : UserControl, IPerspectiveView + { + #region [Delegates] + private delegate void SetActiveDelegate(bool active, string loadingMessage); + private delegate void AddTreeViewItemDelegate(ReportResult report); + #endregion + + #region [Private Variables] + private ReportQueryResult _selectedReportItem = null; + private ReportResult _report = null; + + #endregion + + #region [Constructors] + public PerspectiveCtrl() + { + InitializeComponent(); + tvPerspective.ImageList = tvImages; + } + #endregion + + public event Action SelectedNodeChanged; + public event EventHandler SelectedReportItemChanged; + public event Action SelectedScanChanged; + + #region [Public Properties] + + /// + /// Gets or sets currently selected report problem type + /// + public ReportQueryResult SelectedReportItem + { + get + { + return _selectedReportItem; + } + set + { + _selectedReportItem = value; + SelectedReportItemChanged(this, null); + } + } + + /// + /// Gets or sets currently selected report + /// + public ReportResult Report + { + get + { + return _report; + } + set + { + _report = value; + } + } + #endregion + + #region [Public Methods] + + public void UpdateTreeItemInfo() + { + if (tvPerspective.SelectedNode != null) + { + ReportQueryResult reportProblem = (ReportQueryResult)tvPerspective.SelectedNode.Tag; + int numberOfVulnerabilities = 0; + foreach (ReportQueryItemResult item in reportProblem.Paths) + { + if (!item.FalsePositive) + numberOfVulnerabilities++; + } + + string nodeText = string.Format("{0} ({1} found)", reportProblem.Name, numberOfVulnerabilities); + tvPerspective.SelectedNode.Text = nodeText; + } + } + + /// + /// Bind object data to form controld + /// + public void BindData() + { + AddTreeViewItemDelegate del1 = AddTreeViewItem; + Invoke(del1, _report); + + SetActiveDelegate del2 = SetActive; + Invoke(del2, new object[] { true, null }); + } + + /// + /// Set form visiblity and show specified loading message if no active + /// + /// + /// + public void SetActivity(bool active, string loadingMessage) + { + SetActiveDelegate del2 = SetActive; + Invoke(del2, new object[] { active, loadingMessage }); + } + + public void SetScanList(Dictionary scanList, long selectedValue) + { + if (pnlScans.InvokeRequired) + { + pnlScans.Invoke(new MethodInvoker(delegate() { SetScanList(scanList, selectedValue); ; })); + return; + } + + try + { + BindProjectHelper.IsSelectionBlocked = true; + cbScans.DataSource = null; + foreach (KeyValuePair item in scanList) + { + cbScans.Items.Add(new DictionaryEntry(item.Key, item.Value)); + } + cbScans.DisplayMember = "Key"; + cbScans.ValueMember = "Value"; + cbScans.DataSource = cbScans.Items; + cbScans.Refresh(); + cbScans.SelectedValue = selectedValue; + + ChangePanelStatus(true); + + } + finally + { + BindProjectHelper.IsSelectionBlocked = false; + } + } + + void ChangePanelStatus(bool isVisible) + { + pnlScans.Visible = isVisible; + } + + public void RemoveScanList() + { + if (pnlScans.InvokeRequired) + { + pnlScans.Invoke(new MethodInvoker(delegate() { RemoveScanList(); ; })); + return; + } + + cbScans.DataSource = null; + cbScans.Items.Clear(); + ChangePanelStatus(false); + } + + #endregion + + #region [Private Methods] + /// + /// Generating tree view perspective representation + /// + /// + private void AddTreeViewItem(ReportResult report) + { + tvPerspective.Nodes.Clear(); + + foreach (KeyValuePair> problem in report.Tree) + { + TreeNode node = new TreeNode(problem.Key.ToString(), (int)problem.Key +1, (int)problem.Key +1) ; + node.Tag = new TreeNodeData(ViewerTreeNodeType.Root, (int)problem.Key, problem.Key.ToString(), problem.Value[0].ScanId, ReportQuerySeverityType.None, null); ; + + foreach (ReportQueryResult reportProblem in problem.Value) + { + TreeNode problemTypeNode = new TreeNode(string.Format("{0} ({1} found)", reportProblem.Name, reportProblem.AmountOfResults), (int)reportProblem.Severity +1, (int)reportProblem.Severity +1); + problemTypeNode.Tag = new TreeNodeData(ViewerTreeNodeType.Query, reportProblem.Id, reportProblem.Name, reportProblem.ScanId, reportProblem.Severity, reportProblem); + + SortNodes(problemTypeNode.Nodes); + node.Nodes.Add(problemTypeNode); + } + SortNodes(node.Nodes); + + tvPerspective.Nodes.Add(node); + + } + + //tvPerspective.Sort(); + } + + //SortNodes is a recursive method enumerating and sorting all node levels + private void SortNodes(TreeNodeCollection collection) + { + Sort(collection); + foreach (TreeNode node in collection) + { + if (node.Nodes.Count > 0) + { + SortNodes(node.Nodes); + } + } + } + + //The Sort method is called for each node level sorting the child nodes + public void Sort(TreeNodeCollection collection) + { + TreeNode[] nodes = new TreeNode[collection.Count]; + collection.CopyTo(nodes, 0); + Array.Sort(nodes, new TreeNodeComparer()); + collection.Clear(); + collection.AddRange(nodes); + } + + //The TreeNodeComparer class defines the sorting criteria + class TreeNodeComparer : IComparer + { + #region IComparer Members + + public int Compare(object x, object y) + { + TreeNode firstNode = (TreeNode)x; + TreeNode secondNode = (TreeNode)y; + + return firstNode.Text.ToString().CompareTo(secondNode.Text); + } + + #endregion + } + + /// + /// Set form activity + /// + /// + /// + private void SetActive(bool active, string loadingMessage) + { + if (active) + { + lblLoading.Visible = false; + tvPerspective.Visible = true; + } + else + { + if (!string.IsNullOrEmpty(loadingMessage)) + lblLoading.Text = loadingMessage; + + lblLoading.Visible = true; + tvPerspective.Visible = false; + } + } + + private void tvPerspective_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e) + { + } + + /// + /// Handler attached to mouse up button in tree control + /// + /// + /// + private void tvPerspective_MouseUp(object sender, MouseEventArgs e) + { + // Show menu only if the right mouse button is clicked. + if (e.Button == MouseButtons.Right) + { + // Point where the mouse is clicked. + Point p = new Point(e.X, e.Y); + + // Get the node that the user has clicked. + TreeNode node = tvPerspective.GetNodeAt(p); + if (node != null) + { + // Select the node the user has clicked. + // The node appears selected until the menu is displayed on the screen. + tvPerspective.SelectedNode = node; + + if (node.Parent != null) + { + if (node.Parent.Parent == null) + EnableMenuItems(1); + else + EnableMenuItems(2); + } + else + EnableMenuItems(0); + + contextTreeViewMenu.Show(tvPerspective, p); + } + } + } + + private void EnableMenuItems(byte level) + { + contextTreeViewMenu.Items[0].Enabled = true; + contextTreeViewMenu.Items[1].Enabled = true; + contextTreeViewMenu.Items[2].Enabled = true; + + if (level == 0) + { + contextTreeViewMenu.Items[0].Enabled = false; + } + else if (level == 1) + { + + } + else if (level == 2) + { + + } + } + + private void menuItemShowDescription_Click(object sender, EventArgs e) + { + object tag = tvPerspective.SelectedNode.Tag; + + if (tag is TreeNodeData) + { + int queryId = ((TreeNodeData)tag).QueryResult.Id; + string queryName = ((TreeNodeData)tag).QueryResult.Name; + long queryVersionCode = ((TreeNodeData)tag).QueryResult.QueryVersionCode; + QueryDescriptionEventArg eventArgs = new QueryDescriptionEventArg(queryId, queryName, queryVersionCode); + SelectedReportItemChanged(this, eventArgs); + } + } + + private void menuItemExpand_Click(object sender, EventArgs e) + { + tvPerspective.ExpandAll(); + } + + private void menuItemCollapse_Click(object sender, EventArgs e) + { + tvPerspective.CollapseAll(); + } + + private void tvPerspective_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) + { + + if (e.Node.Parent != null && e.Button == MouseButtons.Left) + { + TreeNode tNode = e.Node; + TreeViewHitTestInfo hit = tvPerspective.HitTest(e.Location); + DrawingHelper.SelectedNodeUniqueID = null; + DrawingHelper.isEdgeSelected = false; + SelectedNodeChanged((TreeNodeData)tNode.Tag); + + } + } + + #endregion + + private void cbScans_SelectedValueChanged(object sender, EventArgs e) + { + if (SelectedScanChanged != null && cbScans.SelectedIndex > -1 && !BindProjectHelper.IsSelectionBlocked) + { + SelectedScanChanged(Convert.ToInt64(cbScans.SelectedValue)); + } + } + } + + public class QueryDescriptionEventArg : EventArgs + { + #region Properties + + public int QueryId { get; set; } + + public string QueryName { get; set; } + + public long QueryVersionCode { get; set; } + + #endregion + + #region Ctor + + public QueryDescriptionEventArg(int queryId, string queryName, long queryVersionCode) + { + QueryId = queryId; + QueryName = queryName; + QueryVersionCode = queryVersionCode; + } + + #endregion + } +} diff --git a/CxViewerAction/Views/DockedView/PerspectiveCtrl.resx b/CxActionShared/Views/DockedView/PerspectiveCtrl.resx similarity index 73% rename from CxViewerAction/Views/DockedView/PerspectiveCtrl.resx rename to CxActionShared/Views/DockedView/PerspectiveCtrl.resx index 40b8fb6e..009c2310 100644 --- a/CxViewerAction/Views/DockedView/PerspectiveCtrl.resx +++ b/CxActionShared/Views/DockedView/PerspectiveCtrl.resx @@ -1,189 +1,197 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - - 190, 17 - - - - AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w - LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 - ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADg - DAAAAk1TRnQBSQFMAgEBBQEAASABAAEgAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo - AwABQAMAASADAAEBAQABCAYAAQgYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA - AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 - AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA - AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm - AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM - AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA - ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz - AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ - AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM - AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA - AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA - AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ - AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/ - AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA - AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm - ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ - Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz - AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA - AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM - AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM - ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM - Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA - AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM - AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ - AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz - AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm - AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw - AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD/wEABf8B8gHvAu0B7wHw - AfQE/zAABP8BBwHqAUUC6QFFAeoB7wHzA/8wAAP/Ae8BRQEgBPkBIAFFAfcB9AL/MAAC/wHwAUUBIAEl - ASAC+QEgASUBIAFFAQcC/zAAAv8B7AEgAUYB8gFvAiABbwHyAUYBIAHsAfQB/zAAAf8B8wFFAUcBFwH0 - Af8CbwH/AfQBRgFHAUUBvAH/MAAB/wG8AUUB4wEXAW8E9AFvAkcBRQEHAf8wAAH/AQcBbgLjARcBkwL/ - AZMBRgJHAUUBBwH/MAAB/wG8AW4BFgHjAW8B8AL/AfABbwIXAUUBBwH/MAAB/wHyAW4CFgEaAf8CkwH/ - ARoBFgHjAW4B8AH/MAAC/wHsAW8BlAH0AQcCbwEHAfQBlAFvAewC/zAAAv8BvAFuARYBkwQWAZMBFgFu - AbwC/zAAA/8B9wFuARYElAEWAW4B9wP/MAAE/wH3AW4EbwFuAe8E/zAABf8B8gH3AuwB9wHyBf8wABD/ - NQAGpgkAAf8BvAGuAoYBrgEHAf8EABf/AfAB9wHwAfQF/wMAAqYG0wKmBgABvAGGAYsErQGLAYYBBwMA - Av8B8wq8AfIB9Af/AfABSgEkAesB8AH0BP8CAAGmAtMCrALHAqwC0wGmBAABuwGLCK0BiwG7AgAB/wEH - AUoESwFKBEsBSgHrAfEG/wHyAeoBKwEsAUUB6wHxBP8BAAGmAdQDrAHHAv8BxwOsAdQBpgIAAbwBiwqt - AYsBBwEAAf8B7AExAzgBNwF5AVgEOAFLAQcF/wHzAW0BTANNAUUB7AHyA/8BAAGmAdQDrAHHAv8BxwOs - AdQBpgEAAf8BiwWtAv8FrQGLAfQB/wHtATEDOAF5Af8BmQQ4AUsBvAT/AfQB6wFMAk0BdQJNAUUB7QHz - Av8BrAHUA6wBsgGsAscFrAHUAawBvAatAv8GrQEHAf8B8AF0A1kBWAEaAXkDOAExAewB9AT/AewBSwFN - AZoBkwEaAZMBdQFNAUsBkgHzAf8BrAHUAawD0wHHAf8BxwWsAdQBrAG0Aa0FswL/BbMBrQG0Av8B7wF5 - A3oBUgFYAzgBUQEHBP8BkgFLAVMBUgGZAv8B9AF0AVMBTQHqAe8B9AGsAdoE0wHHAv8BxwSsAdoBrAGu - BrMC/wazAYsC/wHwARwCegF5AfABmQJZATcB7AT/AfABSwJ1ARoB9gP/AfMBlAF1AUwB6wHzAawB2wLT - AawDxwL/AccDrAHbAawBrga0Av8GtAGuA/8B7wF5AXoBeQH/AZkBegFZAVEBvAT/AbwBSwJ1AXQE/wHx - AXQBdQF0AesB9AGsAdsC0wHHAv8CxwL/AccCrAHbAawBtQa0ArMHtAP/AfEBHAHlAXkB/wGZAXoBeQHs - Bv8B7AFuAZQBGgHzA/8B8gGaAXUB6gEHAf8BrAHbAtMBxwL/AscC/wHHAqwB2wGsAbwGtAL/BrQBvAT/ - Ae8BeQGZAf8BmQF6AXMBvAb/AfQB7AF0AXUBBwLzAfEBkwF1AW4B7wL/AQABrAHbAdMBrQHHBP8BxwGs - AbIB2wGsAQAB/wHPAQkEtAL/BLQBCQHPBf8B8AEcAXkB8wGZAVgB7Qj/AfMB6wF0AZoBkwG8AZMBmgFu - AfcD/wEAAawB2wHTAdoBrATHAawC0wHbAawCAAHwAbQBCQO0ArMDtAEJAbQBvAEABf8B7wF5AZkBeQFz - AbwJ/wHxAW0BdAOaAW4B7QT/AgABrAHcAtoE0wHUAtwBrAQAAbwBtAIJAbsCtAG7AgkBtAG8AgAF/wHx - AXMB5QFSAe0L/wG8AW0CmgFzAewF/wMAAqwGCQKsBgAB8AG0AbUECQG1AbQB8AMABv8B7wFzAewB8wz/ - AQcB6wFuAewB9AX/BQAGrAkAAf8B8QEJArQBCQHwAf8EAAf/AfMP/wG8Ae8B9Ab/AUIBTQE+BwABPgMA - ASgDAAFAAwABIAMAAQEBAAEBBgABARYAA/+BAAH4AR8B8AEPBAAB4AEHAeABBwQAAcABAwHAAQMEAAGA - AQEBgAEBBAABgAEBNgABgAEBBgABgAEBAYABAQQAAcABAwHAAQMEAAHgAQcB4AEHBAAB+AEfAfABDwQA - Cw== - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 190, 17 + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w + LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 + ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADE + DgAAAk1TRnQBSQFMAgEBBgEAASgBAAEoAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + AwABQAMAASADAAEBAQABCAYAAQgYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA + AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 + AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA + AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm + AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM + AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA + ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz + AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ + AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM + AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA + AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA + AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ + AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/ + AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA + AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm + ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ + Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz + AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA + AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM + AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM + ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM + Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA + AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM + AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ + AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz + AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm + AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw + AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD/wUAAfQBvQGTAhYBkwG9 + AfUIAAH1AQcBjgJGAW8B7gH0JgAB/wG9ARYC4wJMAuMBFgEaBQAB/wHuCEYB7gH/IwAB/wG9AeMBkwHz + Af8CAAH/AfMBkwHjAb0DAAH/AY4CRgEHAfQCAAH0Ab0BaQFGAY4B/yIAAb0B4wGTAf8GAAH/AZMB4wEa + AgAB7gFGAW8B9QEAAf8C9AH/AQAB9QFvAUYB7iEAAfUBFgGTAf8IAAH/AZMBFgH1AfQBRgFpAfUBAAEa + AW8DRgG9AQAB9QJGAfUgAAG9AeMB8wIAARoBmQH1AfQBmQEaAgAB8wHjAb0B7gFGAb0BAAH0AkYBkwEH + AWkBRgEaAQABBwFGAQcgAAGTAUwB/wIAAQcBTAIWAUwBmQIAAf8B4wGTAW8BRgH0AQABBwFGAQcCAAEa + AW8BBwEAAfQBRgGOIAABFgFMAwAB9AHjAkwB4wH0AwABTAEWAkYCAAGTAUYBGgcAAkYgAAEWAUwDAAH/ + AZMCTAGTBAABTAEWAkYCAAGTAUYB8wcAAkYgAAGTAUwB/wIAAQcBTALjAUwBmQIAAf8B4wGTAY4BRgH0 + AQABBwFGAQcCAAG9AUYBkwEAAfQBRgFvIAABmQHjAfMCAAEHAeMBGwEaAeMBmQIAAfMB4wG9AQcBRgEH + AQAB9QJGApMCRgEaAQABvQFGAe4gAAH0ARYBkwH/CAAB/wGTARYC9QJGAfUBAAHyAWkDRgG9AQAB9QFp + AUYB9CEAAb0B4wGTAf8GAAH/AZMB4wEaAgAB7gFGAW8B9QEAAf8C9AH1AQAB9QFvAUYB7iMAAQcB4wGT + AfMB/wIAAf8B8wGTAeMBvQH/AgAB/wGOAUYBaQG9AfQCAAH0AQcCRgGOAf8jAAH/Ab0BFgLjAkwC4wEW + Ab0B/wQAAf8B7ghGAe4B/yUAAf8B9AG9AZMCFgGTAb0B9QgAAfQB7gFvAkYBjgEHAfUpAAamCQAB9QEZ + BAABGQH1CAACOAsAAZoMUwGaBAACpgbTAqYFAAH/ARkDAALbAgAB2wHiBwACOAoAAZoOUwGaAgABpgLT + AqwCxwKsAtMBpgMAAf8B4gIAAeIB/wIAAf8B4gIAARkGAAI4CgABdQFTAf8KAAH2AVMBlAEAAaYB1AOs + AccC/wHHA6wB1AGmAgABGQIAAf8GAAH/AgAB4gUAAjgKAAG9AVMBvQQAAjIEAAGaAVMBvQEAAaYB1AOs + AccC/wHHA6wB1AGmAQAB9QHbAQAB/wgAAf8BAAHbAfUEAAI4CgAB/wJTAf8DAAIyAwAB9gJTAf8BrAHU + A6wBsgGsAscFrAHUAawBGQEAAeIKAAHiAQABGQQAAjgLAAG9AVMBvQgAAZoBUwHzAQABrAHUAawD0wHH + Af8BxwWsAdQBrAIAAf8KAAH/BgACOAsAAf8CUwH/AgACMgIAAfYCUwH/AQABrAHaBNMBxwL/AccErAHa + AawB2w0AAdsFAAI4AXoBOAGaAfYIAAG9AVMBvQIAAjICAAGaAVMB8wIAAawB2wLTAawDxwL/AccDrAHb + AawB2w0AAdsFAAI4AXoDOAGaAfQGAAH/AlMB/wEAAjIBAAH2AlMB/wIAAawB2wLTAccC/wLHAv8BxwKs + AdsBrAIAAf8KAAH/BgACOAEAAfQBWQM4AVkB9AH/BAABvQFTAb0BAAIyAQABmgFTAfMDAAGsAdsC0wHH + Av8CxwL/AccCrAHbAawBGQEAAeIKAAHiAQABGQQAAjgCAAH/AfQBegM4AZoEAAH/AlMB/wIyAfYCUwH/ + BAABrAHbAdMBrQHHBP8BxwGsAbIB2wGsAQAB9QHbAQAB/wgAAf8CAAH1BAACOAMAAf8BwwFZAjgBmgUA + AZoBUwG9AgABmgFTAfMFAAGsAdsB0wHaAawExwGsAtMB2wGsAgABGQIAAf8GAAH/AQAB2wEZBQACOAIA + AfQBWQI4AVkBmgH1BQAB9gJTAf8B9gJTAf8GAAGsAdwC2gTTAdQC3AGsBAABGQIAAeIB/wIAAf8B4gIA + AeIB/wUAAjgB9AFZAzgBmgH1CAABmgFTAb0BmgFTAb0IAAKsBgkCrAUAAf8BGQHbAwAB2wIAAdsBGQH/ + BgAFOAGaAfYKAAH1BFMB/woABqwIAAH/AfUBGQQAARkB9QgAAjgBWQG9AfYNAAH1AXUBlAH/BgABQgFN + AT4HAAE+AwABKAMAAUADAAEgAwABAQEAAQEGAAEBFgAD/wEAAfABDwHwAQ8EAAHAAQcBwAEDBAABgQGD + AoEEAAGHAeEBhAEhBAABDwHwAQgBEAQAAhgBEAEIBAACGAERAYgEAAE4ARwBMQH8BAABOAE8ATEB/AQA + AhgBEQGIBAACGAEQAQgEAAEPAfABCAEQBAABhwHhAYQBIQQAAcEDgQQAAcABAwHAAQMEAAHgAQ8B8AEP + BAAB+AEfAfABDwHzAf8BgAEBAeABBwHAAQcB8wH/AgABwAEDAYEBgwHzAf8BHwH4AYABAQGHAeEB8wH/ + AR4BeAGAAQEBDgFwAfMB/wEOAXACAAEeAXgB8wH/AY8B8QIAAR4BeAHzAf8BhgFhAgABPgF8AfABPwHG + AWMCAAE+AXwB8AEPAcIBQwIAAR8B+AHyAQEB4gFHAgABHgF4AfMBAQHgAQcBgAEBAQ4BcAHzAYEB8QGP + AYABAQGHAeEB8wEBAfABDwHAAQMBwQGBAfABBwH4AR8B4AEHAcABAwHwAR8B+AEfAfgBHwHgAQ8B8AF/ + AfwBPws= + + \ No newline at end of file diff --git a/CxViewerAction/Views/DockedView/PerspectiveGraphCtrl.Designer.cs b/CxActionShared/Views/DockedView/PerspectiveGraphCtrl.Designer.cs similarity index 97% rename from CxViewerAction/Views/DockedView/PerspectiveGraphCtrl.Designer.cs rename to CxActionShared/Views/DockedView/PerspectiveGraphCtrl.Designer.cs index 5183b17b..4082e764 100644 --- a/CxViewerAction/Views/DockedView/PerspectiveGraphCtrl.Designer.cs +++ b/CxActionShared/Views/DockedView/PerspectiveGraphCtrl.Designer.cs @@ -1,103 +1,103 @@ -using System.Windows.Forms; -using CxViewerAction.Views.Shapes; -namespace CxViewerAction.Views.DockedView -{ - partial class PerspectiveGraphCtrl - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PerspectiveGraphCtrl)); - this.gViewer1 = new Microsoft.Msagl.GraphViewerGdi.GViewer(); - this.tblLayout = new CxViewerAction.Views.Shapes.TableLayout(); - this.SuspendLayout(); - // - // gViewer1 - // - this.gViewer1.AsyncLayout = false; - this.gViewer1.AutoScroll = true; - this.gViewer1.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; - this.gViewer1.BackColor = System.Drawing.Color.Transparent; - this.gViewer1.BackwardEnabled = false; - this.gViewer1.BuildHitTree = true; - this.gViewer1.CurrentLayoutMethod = Microsoft.Msagl.GraphViewerGdi.LayoutMethod.SugiyamaScheme; - this.gViewer1.ForwardEnabled = false; - this.gViewer1.Graph = null; - this.gViewer1.LayoutAlgorithmSettingsButtonVisible = true; - this.gViewer1.LayoutEditingEnabled = false; - this.gViewer1.Location = new System.Drawing.Point(0, 0); - this.gViewer1.MouseHitDistance = 0.05; - this.gViewer1.Name = "gViewer1"; - this.gViewer1.NavigationVisible = true; - this.gViewer1.NeedToCalculateLayout = true; - this.gViewer1.PanButtonPressed = false; - this.gViewer1.SaveAsImageEnabled = true; - this.gViewer1.SaveAsMsaglEnabled = true; - this.gViewer1.SaveButtonVisible = true; - this.gViewer1.SaveGraphButtonVisible = true; - this.gViewer1.SaveInVectorFormatEnabled = true; - this.gViewer1.Size = new System.Drawing.Size(100, 100); - this.gViewer1.TabIndex = 0; - this.gViewer1.ToolBarIsVisible = false; - this.gViewer1.ZoomF = 1; - this.gViewer1.ZoomFraction = 0.5; - this.gViewer1.ZoomWindowThreshold = 0.05; - // - // tblLayout - // - this.tblLayout.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F)); - this.tblLayout.Graph = null; - this.tblLayout.Location = new System.Drawing.Point(20, 20); - this.tblLayout.Name = "tblLayout"; - this.tblLayout.PathItemClick = null; - this.tblLayout.SelectedPath = null; - this.tblLayout.Size = new System.Drawing.Size(100, 100); - this.tblLayout.TabIndex = 0; - // - // PerspectiveGraphCtrl - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.AutoScroll = true; - this.AutoScrollMinSize = new System.Drawing.Size(100, 30); - this.AutoSize = true; - this.Controls.Add(this.gViewer1); - this.Name = "PerspectiveGraphCtrl"; - this.Size = new System.Drawing.Size(637, 590); - this.Scroll += new System.Windows.Forms.ScrollEventHandler(this.PerspectiveGraphCtrl_Scroll); - this.Resize += new System.EventHandler(this.PerspectiveGraphCtrl_Resize); - this.SizeChanged += new System.EventHandler(this.PerspectiveGraphCtrl_SizeChanged); - this.ResumeLayout(false); - - } - - #endregion - - private Microsoft.Msagl.GraphViewerGdi.GViewer gViewer1; - private TableLayout tblLayout; - - } -} +using System.Windows.Forms; +using CxViewerAction.Views.Shapes; +namespace CxViewerAction.Views.DockedView +{ + partial class PerspectiveGraphCtrl + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PerspectiveGraphCtrl)); + this.gViewer1 = new Microsoft.Msagl.GraphViewerGdi.GViewer(); + this.tblLayout = new CxViewerAction.Views.Shapes.TableLayout(); + this.SuspendLayout(); + // + // gViewer1 + // + this.gViewer1.AsyncLayout = false; + this.gViewer1.AutoScroll = true; + this.gViewer1.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.gViewer1.BackColor = System.Drawing.Color.Transparent; + this.gViewer1.BackwardEnabled = false; + this.gViewer1.BuildHitTree = true; + this.gViewer1.CurrentLayoutMethod = Microsoft.Msagl.GraphViewerGdi.LayoutMethod.SugiyamaScheme; + this.gViewer1.ForwardEnabled = false; + this.gViewer1.Graph = null; + this.gViewer1.LayoutAlgorithmSettingsButtonVisible = true; + this.gViewer1.LayoutEditingEnabled = false; + this.gViewer1.Location = new System.Drawing.Point(0, 0); + this.gViewer1.MouseHitDistance = 0.05; + this.gViewer1.Name = "gViewer1"; + this.gViewer1.NavigationVisible = true; + this.gViewer1.NeedToCalculateLayout = true; + this.gViewer1.PanButtonPressed = false; + this.gViewer1.SaveAsImageEnabled = true; + this.gViewer1.SaveAsMsaglEnabled = true; + this.gViewer1.SaveButtonVisible = true; + this.gViewer1.SaveGraphButtonVisible = true; + this.gViewer1.SaveInVectorFormatEnabled = true; + this.gViewer1.Size = new System.Drawing.Size(100, 100); + this.gViewer1.TabIndex = 0; + this.gViewer1.ToolBarIsVisible = false; + this.gViewer1.ZoomF = 1; + this.gViewer1.ZoomFraction = 0.5; + this.gViewer1.ZoomWindowThreshold = 0.05; + // + // tblLayout + // + this.tblLayout.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tblLayout.Graph = null; + this.tblLayout.Location = new System.Drawing.Point(20, 20); + this.tblLayout.Name = "tblLayout"; + this.tblLayout.PathItemClick = null; + this.tblLayout.SelectedPath = null; + this.tblLayout.Size = new System.Drawing.Size(100, 100); + this.tblLayout.TabIndex = 0; + // + // PerspectiveGraphCtrl + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.AutoScroll = true; + this.AutoScrollMinSize = new System.Drawing.Size(100, 30); + this.AutoSize = true; + this.Controls.Add(this.gViewer1); + this.Name = "PerspectiveGraphCtrl"; + this.Size = new System.Drawing.Size(637, 590); + this.Scroll += new System.Windows.Forms.ScrollEventHandler(this.PerspectiveGraphCtrl_Scroll); + this.Resize += new System.EventHandler(this.PerspectiveGraphCtrl_Resize); + this.SizeChanged += new System.EventHandler(this.PerspectiveGraphCtrl_SizeChanged); + this.ResumeLayout(false); + + } + + #endregion + + private Microsoft.Msagl.GraphViewerGdi.GViewer gViewer1; + private TableLayout tblLayout; + + } +} diff --git a/CxViewerAction/Views/DockedView/PerspectiveGraphCtrl.cs b/CxActionShared/Views/DockedView/PerspectiveGraphCtrl.cs similarity index 96% rename from CxViewerAction/Views/DockedView/PerspectiveGraphCtrl.cs rename to CxActionShared/Views/DockedView/PerspectiveGraphCtrl.cs index d1fc4db4..e5b02159 100644 --- a/CxViewerAction/Views/DockedView/PerspectiveGraphCtrl.cs +++ b/CxActionShared/Views/DockedView/PerspectiveGraphCtrl.cs @@ -1,217 +1,217 @@ -using System; -using System.Diagnostics; -using System.Drawing; -using System.Windows.Forms; -using CxViewerAction.BaseInterfaces; -using CxViewerAction.Entities; -using CxViewerAction.Helpers; -using CxViewerAction.Views.Shapes; -using Microsoft.Msagl.GraphViewerGdi; -using CxViewerAction.CxVSWebService; - -namespace CxViewerAction.Views.DockedView -{ - /// - /// Graph view - /// - public partial class PerspectiveGraphCtrl : UserControl, IPerspectiveGraphView - { - #region [Delegates] - delegate void UpdateDelegate(); - #endregion - - #region [Private Members] - - /// - /// Used for restoring scroll X position aftet rebinding - /// - private int _scroll_pos_x = 0; - - /// - /// Used for restoring scroll Y position after rebinding - /// - - private int _scroll_pos_y = 0; - - #endregion - - #region [Public Properties] - - public IGraphPath SelectedPath - { - get { return tblLayout.SelectedPath; } - set { tblLayout.SelectedPath = value; } - } - - public int Scroll_pos_x - { - get { return _scroll_pos_x; } - } - - public int Scroll_pos_y - { - get { return _scroll_pos_y; } - } - - /// - /// Gets or sets graph object - /// - public IGraph Graph - { - get { return tblLayout.Graph; } - set { tblLayout.Graph = value; } - } - - public GViewer MsGalViewer; - - public EventHandler PathItemClick - { - get { return tblLayout.PathItemClick; } - set { tblLayout.PathItemClick = value; } - } - - #endregion - - #region [Constructors] - - public PerspectiveGraphCtrl() - { - InitializeComponent(); - - this.SetStyle(ControlStyles.AllPaintingInWmPaint | - ControlStyles.UserPaint | - ControlStyles.DoubleBuffer, true); - - this.SetStyle(ControlStyles.Selectable, false); - gViewer1.Dock = DockStyle.Fill; - ResumeLayout(); - gViewer1.LayoutAlgorithmSettingsButtonVisible = true; - gViewer1.AutoScroll = true; - gViewer1.AutoSize = false; - gViewer1.AutoSizeMode = AutoSizeMode.GrowOnly; - gViewer1.BackColor = Color.LightGray; - //gViewer1.ClientSize; - gViewer1.Dock = DockStyle.Fill; - gViewer1.FitGraphBoundingBox(); - gViewer1.ToolBarIsVisible = true; - gViewer1.ZoomF = 1; - tblLayout.SetGViewer(gViewer1); - MsGalViewer = gViewer1; - Microsoft.Msagl.Drawing.Graph graph = new Microsoft.Msagl.Drawing.Graph("graph"); - graph.Attr.NodeSeparation = 100; - graph.Attr.Margin = 100; - - try - { - graph.GeometryGraph = new Microsoft.Msagl.GeometryGraph(); - graph.GeometryGraph.SimpleStretch = false; - graph.GeometryGraph.AspectRatio = 1; - graph.GeometryGraph.CalculateLayout(); - } - catch(Exception err) - { - Common.Logger.Create().Error(err.ToString()); - } - //graph.Attr.BackgroundColor = Microsoft.Msagl.Drawing.Color.LightGray; - tblLayout.gLocalViewer.Graph = graph; - tblLayout.gLocalViewer.Size = new Size(100, 100); - } - - #endregion - - #region [Public Methods] - - public void ClearGraphView() - { - if (tblLayout != null && tblLayout.gLocalViewer != null && tblLayout.gLocalViewer.Graph != null) - { - tblLayout.gLocalViewer.Graph.Edges.Clear(); - tblLayout.gLocalViewer.Graph.NodeMap.Clear(); - } - } - - public void SetZoom() - { - if (tblLayout != null && tblLayout.gLocalViewer != null && tblLayout.gLocalViewer.ClientSize != null && tblLayout.gLocalViewer.Graph.NodeCount == 1) - { - //tblLayout.gLocalViewer.ZoomF = 1; - double zoomRatioHeight = tblLayout.gLocalViewer.GraphHeight / tblLayout.gLocalViewer.ClientSize.Height; - double zoomRatioWidth = tblLayout.gLocalViewer.GraphWidth / tblLayout.gLocalViewer.ClientSize.Width; - if (zoomRatioHeight > zoomRatioWidth) - tblLayout.gLocalViewer.ZoomF = zoomRatioHeight; - else - tblLayout.gLocalViewer.ZoomF = zoomRatioWidth; - } - } - - /// - /// Bind object to view representation - /// - - public void BindData() - { - if (tblLayout.Graph == null) - return; - - DrawGraph(); - - } - - private void DrawGraph() - { - tblLayout.DrawGraph(); - tblLayout.DrawConnectors(); - } - - #endregion - - #region [Private Methods] - - - #endregion - - public IGraphPath FindPath(CxWSResultPath queryItem) - { - return tblLayout.FindPath(queryItem); - } - - public IGraphPath FindPath(Entities.WebServiceEntity.ReportQueryItemResult queryItem) - { - return tblLayout.FindPath(queryItem); - } - - - public void SelectEdgeGraphByPath(GraphItem itemSource, GraphItem item, IGraphPath selectedPath) - { - tblLayout.SelectEdgeGraphByPath(itemSource, item, selectedPath); - } - - private void PerspectiveGraphCtrl_Scroll(object sender, ScrollEventArgs e) - { - if (e.ScrollOrientation == ScrollOrientation.HorizontalScroll) - _scroll_pos_x = e.NewValue; - else - _scroll_pos_y = e.NewValue; - } - - private void UpdateScrollPosition() - { - HorizontalScroll.Value = _scroll_pos_x; - VerticalScroll.Value = _scroll_pos_y; - - //OnScroll(new ScrollEventArgs(ScrollEventType.ThumbPosition, _scroll_pos_x, ScrollOrientation.HorizontalScroll)); - //OnScroll(new ScrollEventArgs(ScrollEventType.ThumbPosition, _scroll_pos_y, ScrollOrientation.VerticalScroll)); - - } - - private void PerspectiveGraphCtrl_Resize(object sender, EventArgs e) - { - //gViewer1.Size = this.Size; - } - - private void PerspectiveGraphCtrl_SizeChanged(object sender, EventArgs e) - { - //gViewer1.Size = this.Size; - } - } -} +using System; +using System.Diagnostics; +using System.Drawing; +using System.Windows.Forms; +using CxViewerAction.BaseInterfaces; +using CxViewerAction.Entities; +using CxViewerAction.Helpers; +using CxViewerAction.Views.Shapes; +using Microsoft.Msagl.GraphViewerGdi; +using CxViewerAction.CxVSWebService; + +namespace CxViewerAction.Views.DockedView +{ + /// + /// Graph view + /// + public partial class PerspectiveGraphCtrl : UserControl, IPerspectiveGraphView + { + #region [Delegates] + delegate void UpdateDelegate(); + #endregion + + #region [Private Members] + + /// + /// Used for restoring scroll X position aftet rebinding + /// + private int _scroll_pos_x = 0; + + /// + /// Used for restoring scroll Y position after rebinding + /// + + private int _scroll_pos_y = 0; + + #endregion + + #region [Public Properties] + + public IGraphPath SelectedPath + { + get { return tblLayout.SelectedPath; } + set { tblLayout.SelectedPath = value; } + } + + public int Scroll_pos_x + { + get { return _scroll_pos_x; } + } + + public int Scroll_pos_y + { + get { return _scroll_pos_y; } + } + + /// + /// Gets or sets graph object + /// + public IGraph Graph + { + get { return tblLayout.Graph; } + set { tblLayout.Graph = value; } + } + + public GViewer MsGalViewer; + + public EventHandler PathItemClick + { + get { return tblLayout.PathItemClick; } + set { tblLayout.PathItemClick = value; } + } + + #endregion + + #region [Constructors] + + public PerspectiveGraphCtrl() + { + InitializeComponent(); + + this.SetStyle(ControlStyles.AllPaintingInWmPaint | + ControlStyles.UserPaint | + ControlStyles.DoubleBuffer, true); + + this.SetStyle(ControlStyles.Selectable, false); + gViewer1.Dock = DockStyle.Fill; + ResumeLayout(); + gViewer1.LayoutAlgorithmSettingsButtonVisible = true; + gViewer1.AutoScroll = true; + gViewer1.AutoSize = false; + gViewer1.AutoSizeMode = AutoSizeMode.GrowOnly; + gViewer1.BackColor = Color.LightGray; + //gViewer1.ClientSize; + gViewer1.Dock = DockStyle.Fill; + gViewer1.FitGraphBoundingBox(); + gViewer1.ToolBarIsVisible = true; + gViewer1.ZoomF = 1; + tblLayout.SetGViewer(gViewer1); + MsGalViewer = gViewer1; + Microsoft.Msagl.Drawing.Graph graph = new Microsoft.Msagl.Drawing.Graph("graph"); + graph.Attr.NodeSeparation = 100; + graph.Attr.Margin = 100; + + try + { + graph.GeometryGraph = new Microsoft.Msagl.GeometryGraph(); + graph.GeometryGraph.SimpleStretch = false; + graph.GeometryGraph.AspectRatio = 1; + graph.GeometryGraph.CalculateLayout(); + } + catch(Exception err) + { + Common.Logger.Create().Error(err.ToString()); + } + //graph.Attr.BackgroundColor = Microsoft.Msagl.Drawing.Color.LightGray; + tblLayout.gLocalViewer.Graph = graph; + tblLayout.gLocalViewer.Size = new Size(100, 100); + } + + #endregion + + #region [Public Methods] + + public void ClearGraphView() + { + if (tblLayout != null && tblLayout.gLocalViewer != null && tblLayout.gLocalViewer.Graph != null) + { + tblLayout.gLocalViewer.Graph.Edges.Clear(); + tblLayout.gLocalViewer.Graph.NodeMap.Clear(); + } + } + + public void SetZoom() + { + if (tblLayout != null && tblLayout.gLocalViewer != null && tblLayout.gLocalViewer.ClientSize != null && tblLayout.gLocalViewer.Graph.NodeCount == 1) + { + //tblLayout.gLocalViewer.ZoomF = 1; + double zoomRatioHeight = tblLayout.gLocalViewer.GraphHeight / tblLayout.gLocalViewer.ClientSize.Height; + double zoomRatioWidth = tblLayout.gLocalViewer.GraphWidth / tblLayout.gLocalViewer.ClientSize.Width; + if (zoomRatioHeight > zoomRatioWidth) + tblLayout.gLocalViewer.ZoomF = zoomRatioHeight; + else + tblLayout.gLocalViewer.ZoomF = zoomRatioWidth; + } + } + + /// + /// Bind object to view representation + /// + + public void BindData() + { + if (tblLayout.Graph == null) + return; + + DrawGraph(); + + } + + private void DrawGraph() + { + tblLayout.DrawGraph(); + tblLayout.DrawConnectors(); + } + + #endregion + + #region [Private Methods] + + + #endregion + + public IGraphPath FindPath(CxWSResultPath queryItem) + { + return tblLayout.FindPath(queryItem); + } + + public IGraphPath FindPath(Entities.WebServiceEntity.ReportQueryItemResult queryItem) + { + return tblLayout.FindPath(queryItem); + } + + + public void SelectEdgeGraphByPath(GraphItem itemSource, GraphItem item, IGraphPath selectedPath) + { + tblLayout.SelectEdgeGraphByPath(itemSource, item, selectedPath); + } + + private void PerspectiveGraphCtrl_Scroll(object sender, ScrollEventArgs e) + { + if (e.ScrollOrientation == ScrollOrientation.HorizontalScroll) + _scroll_pos_x = e.NewValue; + else + _scroll_pos_y = e.NewValue; + } + + private void UpdateScrollPosition() + { + HorizontalScroll.Value = _scroll_pos_x; + VerticalScroll.Value = _scroll_pos_y; + + //OnScroll(new ScrollEventArgs(ScrollEventType.ThumbPosition, _scroll_pos_x, ScrollOrientation.HorizontalScroll)); + //OnScroll(new ScrollEventArgs(ScrollEventType.ThumbPosition, _scroll_pos_y, ScrollOrientation.VerticalScroll)); + + } + + private void PerspectiveGraphCtrl_Resize(object sender, EventArgs e) + { + //gViewer1.Size = this.Size; + } + + private void PerspectiveGraphCtrl_SizeChanged(object sender, EventArgs e) + { + //gViewer1.Size = this.Size; + } + } +} diff --git a/CxViewerAction/Views/DockedView/PerspectiveGraphCtrl.resx b/CxActionShared/Views/DockedView/PerspectiveGraphCtrl.resx similarity index 97% rename from CxViewerAction/Views/DockedView/PerspectiveGraphCtrl.resx rename to CxActionShared/Views/DockedView/PerspectiveGraphCtrl.resx index 5ea0895e..7080a7d1 100644 --- a/CxViewerAction/Views/DockedView/PerspectiveGraphCtrl.resx +++ b/CxActionShared/Views/DockedView/PerspectiveGraphCtrl.resx @@ -1,120 +1,120 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + \ No newline at end of file diff --git a/CxViewerAction/Views/DockedView/PerspectivePathCtrl.Designer.cs b/CxActionShared/Views/DockedView/PerspectivePathCtrl.Designer.cs similarity index 97% rename from CxViewerAction/Views/DockedView/PerspectivePathCtrl.Designer.cs rename to CxActionShared/Views/DockedView/PerspectivePathCtrl.Designer.cs index a5fcddca..1e8a0388 100644 --- a/CxViewerAction/Views/DockedView/PerspectivePathCtrl.Designer.cs +++ b/CxActionShared/Views/DockedView/PerspectivePathCtrl.Designer.cs @@ -1,65 +1,65 @@ -namespace CxViewerAction.Views.DockedView -{ - partial class PerspectivePathCtrl - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.pnlPath = new System.Windows.Forms.TableLayoutPanel(); - this.SuspendLayout(); - // - // pnlPath - // - this.AutoScroll = true; - this.AutoScrollMinSize = new System.Drawing.Size(200, 400); - this.pnlPath.ColumnCount = 1; - this.pnlPath.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.pnlPath.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.pnlPath.Dock = System.Windows.Forms.DockStyle.Fill; - this.pnlPath.Location = new System.Drawing.Point(0, 0); - this.pnlPath.Name = "pnlPath"; - this.pnlPath.RowCount = 1; - this.pnlPath.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 303F)); - this.pnlPath.Size = new System.Drawing.Size(390, 303); - this.pnlPath.TabIndex = 0; - // - // PerspectivePathCtrl - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.Controls.Add(this.pnlPath); - this.Name = "PerspectivePathCtrl"; - this.Size = new System.Drawing.Size(390, 303); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.TableLayoutPanel pnlPath; - - } -} +namespace CxViewerAction.Views.DockedView +{ + partial class PerspectivePathCtrl + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.pnlPath = new System.Windows.Forms.TableLayoutPanel(); + this.SuspendLayout(); + // + // pnlPath + // + this.AutoScroll = true; + this.AutoScrollMinSize = new System.Drawing.Size(200, 400); + this.pnlPath.ColumnCount = 1; + this.pnlPath.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.pnlPath.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.pnlPath.Dock = System.Windows.Forms.DockStyle.Fill; + this.pnlPath.Location = new System.Drawing.Point(0, 0); + this.pnlPath.Name = "pnlPath"; + this.pnlPath.RowCount = 1; + this.pnlPath.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 303F)); + this.pnlPath.Size = new System.Drawing.Size(390, 303); + this.pnlPath.TabIndex = 0; + // + // PerspectivePathCtrl + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.pnlPath); + this.Name = "PerspectivePathCtrl"; + this.Size = new System.Drawing.Size(390, 303); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.TableLayoutPanel pnlPath; + + } +} diff --git a/CxViewerAction/Views/DockedView/PerspectivePathCtrl.cs b/CxActionShared/Views/DockedView/PerspectivePathCtrl.cs similarity index 84% rename from CxViewerAction/Views/DockedView/PerspectivePathCtrl.cs rename to CxActionShared/Views/DockedView/PerspectivePathCtrl.cs index 06c4f3ac..85d1d273 100644 --- a/CxViewerAction/Views/DockedView/PerspectivePathCtrl.cs +++ b/CxActionShared/Views/DockedView/PerspectivePathCtrl.cs @@ -1,168 +1,186 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Drawing; -using System.Data; -using System.Text; -using System.Windows.Forms; -using CxViewerAction.Entities.WebServiceEntity; -using System.Resources; -using System.Reflection; -using CxViewerAction.Helpers.DrawingHelper; - -namespace CxViewerAction.Views.DockedView -{ - /// - /// User control to visualize problem path flow - /// - public partial class PerspectivePathCtrl : UserControl, IPerspectivePathView - { - #region [Private Members] - /// - /// Path click handler - /// - private EventHandler _pathButtonClickHandler = null; - - /// - /// Problem flow paths - /// - private ReportQueryItemResult _queryItemResult = null; - - ColorButton.ColorButton selectedBtnPath = null; - - #endregion - - #region [Public Properties] - /// - /// Gets or sets problem flow paths - /// - public ReportQueryItemResult QueryItemResult - { - get { return _queryItemResult; } - set { _queryItemResult = value; } - } - - /// - /// Sets handler for path button click event - /// - public EventHandler PathButtonClickHandler - { - set { _pathButtonClickHandler = value; } - } - #endregion - - #region [Constructors] - public PerspectivePathCtrl() - { - InitializeComponent(); - } - #endregion - - #region [Public Methods] - - public void SetZoom() - { - } - - public void ClearView() - { - pnlPath.Controls.Clear(); - pnlPath.Width = 200; - } - - /// - /// Bind object data to form controls. Generate path sequance - /// - public void BindData(int index) - { - pnlPath.Controls.Clear(); - pnlPath.Width = 200; - - if (_queryItemResult.Paths == null) - return; - - pnlPath.RowCount = _queryItemResult.Paths.Count; - - System.IO.Stream file = Assembly.GetExecutingAssembly().GetManifestResourceStream("CxViewerAction.Resources.down.gif"); - System.IO.Stream fileEmpty = Assembly.GetExecutingAssembly().GetManifestResourceStream("CxViewerAction.Resources.empty.gif"); - - - for (int i = 0; i < _queryItemResult.Paths.Count; i++) - { - int row = 2 * i; - ReportQueryItemPathResult path = _queryItemResult.Paths[i]; - - ColorButton.ColorButton btnPath = new ColorButton.ColorButton(); - btnPath.ButtonStyle = ColorButton.ColorButton.ButtonStyles.Rectangle; - btnPath.SmoothingQuality = ColorButton.ColorButton.SmoothingQualities.HighQuality; - btnPath.HoverColorA = Color.WhiteSmoke; - btnPath.HoverColorB = Color.WhiteSmoke; - btnPath.Text = path.Name; - //btnPath.Width = 100; - //btnPath.Height = 40; - btnPath.Anchor = AnchorStyles.Top; - btnPath.Tag = path; - btnPath.Click += btnPath_Click; - btnPath.Click += _pathButtonClickHandler; - if (index == path.NodeId) - { - btnPath.IsSelected = true; - selectedBtnPath = btnPath; - } - - pnlPath.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 40F)); - pnlPath.Controls.Add(btnPath, 0, row); - pnlPath.RowStyles[row].Height = 40F; - - PictureBox imgDown = new PictureBox(); - imgDown.Width = 16; - imgDown.Height = 16; - imgDown.SizeMode = PictureBoxSizeMode.StretchImage; - // Add arrow to all buttons instead of last - if (i != _queryItemResult.Paths.Count - 1) - { - imgDown.Image = Image.FromStream(file); - } - else - { - //imgDown.Image = Image.FromStream(fileEmpty); - } - imgDown.Anchor = AnchorStyles.Top; - - pnlPath.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 23F)); - pnlPath.Controls.Add(imgDown, 0, row + 1); - pnlPath.RowStyles[row + 1].Height = 20F; - } - - this.AutoScrollMinSize = new System.Drawing.Size(200, _queryItemResult.Paths.Count * 61); - pnlPath.Refresh(); - if (selectedBtnPath != null) - { - selectedBtnPath.Select(); - pnlPath.ScrollControlIntoView(selectedBtnPath); - this.ScrollControlIntoView(selectedBtnPath); - - } - } - #endregion - - private void btnPath_Click(object sender, EventArgs e) - { - ReportQueryItemPathResult reportQueryItemPathResult = ((ColorButton.ColorButton)sender).Tag as ReportQueryItemPathResult; - ColorButton.ColorButton selected = ((ColorButton.ColorButton)sender); - - if (selectedBtnPath != null) - { - selectedBtnPath.IsSelected = false; - selectedBtnPath.SetNormalState(); - selectedBtnPath.Invalidate(); - } - - selected.IsSelected = true; - pnlPath.ScrollControlIntoView(selected); - this.ScrollControlIntoView(selected); - selectedBtnPath = selected; - } - - } -} +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Data; +using System.Text; +using System.Windows.Forms; +using CxViewerAction.Entities.WebServiceEntity; +using System.Resources; +using System.Reflection; +using CxViewerAction.Helpers.DrawingHelper; + +namespace CxViewerAction.Views.DockedView +{ + /// + /// User control to visualize problem path flow + /// + public partial class PerspectivePathCtrl : UserControl, IPerspectivePathView + { + #region [Private Members] + /// + /// Path click handler + /// + private EventHandler _pathButtonClickHandler = null; + + /// + /// Problem flow paths + /// + private ReportQueryItemResult _queryItemResult = null; + + ColorButton.ColorButton selectedBtnPath = null; + + #endregion + + #region [Public Properties] + /// + /// Gets or sets problem flow paths + /// + public ReportQueryItemResult QueryItemResult + { + get { return _queryItemResult; } + set { _queryItemResult = value; } + } + + /// + /// Sets handler for path button click event + /// + public EventHandler PathButtonClickHandler + { + set { _pathButtonClickHandler = value; } + } + #endregion + + #region [Constructors] + public PerspectivePathCtrl() + { + InitializeComponent(); + } + #endregion + + #region [Public Methods] + + public void SetZoom() + { + } + + public void ClearView() + { + pnlPath.Controls.Clear(); + pnlPath.Width = 200; + } + + /// + /// Bind object data to form controls. Generate path sequance + /// + public void BindData(int index) + { + pnlPath.Controls.Clear(); + pnlPath.Width = 200; + + if (_queryItemResult.Paths == null) + return; + + pnlPath.RowCount = _queryItemResult.Paths.Count; + + /// + /// Changes for bug Plug-513 unable to see scan results + /// + //Start + System.IO.Stream file; + System.IO.Stream fileEmpty; + + var data = this.GetType().Assembly.GetManifestResourceNames(); + var assemName = this.GetType().Assembly.GetName(); + + if (assemName.Name.Equals("CxViewerAction2019")) + { + file = Assembly.GetExecutingAssembly().GetManifestResourceStream("CxViewerAction2019.Resources.down.gif"); + fileEmpty = Assembly.GetExecutingAssembly().GetManifestResourceStream("CxViewerAction2019.Resources.empty.gif"); + } + else + { + file = Assembly.GetExecutingAssembly().GetManifestResourceStream("CxViewerAction.Resources.down.gif"); + fileEmpty = Assembly.GetExecutingAssembly().GetManifestResourceStream("CxViewerAction.Resources.empty.gif"); + } + //End + + for (int i = 0; i < _queryItemResult.Paths.Count; i++) + { + int row = 2 * i; + ReportQueryItemPathResult path = _queryItemResult.Paths[i]; + + ColorButton.ColorButton btnPath = new ColorButton.ColorButton(); + btnPath.ButtonStyle = ColorButton.ColorButton.ButtonStyles.Rectangle; + btnPath.SmoothingQuality = ColorButton.ColorButton.SmoothingQualities.HighQuality; + btnPath.HoverColorA = Color.WhiteSmoke; + btnPath.HoverColorB = Color.WhiteSmoke; + btnPath.Text = path.Name; + //btnPath.Width = 100; + //btnPath.Height = 40; + btnPath.Anchor = AnchorStyles.Top; + btnPath.Tag = path; + btnPath.Click += btnPath_Click; + btnPath.Click += _pathButtonClickHandler; + if (index == path.NodeId) + { + btnPath.IsSelected = true; + selectedBtnPath = btnPath; + } + + pnlPath.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 40F)); + pnlPath.Controls.Add(btnPath, 0, row); + pnlPath.RowStyles[row].Height = 40F; + + PictureBox imgDown = new PictureBox(); + imgDown.Width = 16; + imgDown.Height = 16; + imgDown.SizeMode = PictureBoxSizeMode.StretchImage; + // Add arrow to all buttons instead of last + if (i != _queryItemResult.Paths.Count - 1) + { + imgDown.Image = Image.FromStream(file); + } + else + { + //imgDown.Image = Image.FromStream(fileEmpty); + } + imgDown.Anchor = AnchorStyles.Top; + + pnlPath.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 23F)); + pnlPath.Controls.Add(imgDown, 0, row + 1); + pnlPath.RowStyles[row + 1].Height = 20F; + } + + this.AutoScrollMinSize = new System.Drawing.Size(200, _queryItemResult.Paths.Count * 61); + pnlPath.Refresh(); + if (selectedBtnPath != null) + { + selectedBtnPath.Select(); + pnlPath.ScrollControlIntoView(selectedBtnPath); + this.ScrollControlIntoView(selectedBtnPath); + + } + } + #endregion + + private void btnPath_Click(object sender, EventArgs e) + { + ReportQueryItemPathResult reportQueryItemPathResult = ((ColorButton.ColorButton)sender).Tag as ReportQueryItemPathResult; + ColorButton.ColorButton selected = ((ColorButton.ColorButton)sender); + + if (selectedBtnPath != null) + { + selectedBtnPath.IsSelected = false; + selectedBtnPath.SetNormalState(); + selectedBtnPath.Invalidate(); + } + + selected.IsSelected = true; + pnlPath.ScrollControlIntoView(selected); + this.ScrollControlIntoView(selected); + selectedBtnPath = selected; + } + + } +} diff --git a/CxViewerAction/Views/DockedView/PerspectivePathCtrl.resx b/CxActionShared/Views/DockedView/PerspectivePathCtrl.resx similarity index 97% rename from CxViewerAction/Views/DockedView/PerspectivePathCtrl.resx rename to CxActionShared/Views/DockedView/PerspectivePathCtrl.resx index ff31a6db..19dc0dd8 100644 --- a/CxViewerAction/Views/DockedView/PerspectivePathCtrl.resx +++ b/CxActionShared/Views/DockedView/PerspectivePathCtrl.resx @@ -1,120 +1,120 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + \ No newline at end of file diff --git a/CxViewerAction/Views/DockedView/PerspectiveResultCtrl.Designer.cs b/CxActionShared/Views/DockedView/PerspectiveResultCtrl.Designer.cs similarity index 60% rename from CxViewerAction/Views/DockedView/PerspectiveResultCtrl.Designer.cs rename to CxActionShared/Views/DockedView/PerspectiveResultCtrl.Designer.cs index 017916c1..57cced8a 100644 --- a/CxViewerAction/Views/DockedView/PerspectiveResultCtrl.Designer.cs +++ b/CxActionShared/Views/DockedView/PerspectiveResultCtrl.Designer.cs @@ -1,238 +1,334 @@ -namespace CxViewerAction.Views.DockedView -{ - partial class PerspectiveResultCtrl - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PerspectiveResultCtrl)); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle(); - this.tvImages = new System.Windows.Forms.ImageList(this.components); - this.panel2 = new System.Windows.Forms.Panel(); - this.panel1 = new System.Windows.Forms.Panel(); - this.dgvProjects = new System.Windows.Forms.DataGridView(); - this.checkBoxesColumn = new System.Windows.Forms.DataGridViewCheckBoxColumn(); - this.panel3 = new System.Windows.Forms.Panel(); - this.cbAssign = new System.Windows.Forms.ComboBox(); - this.label3 = new System.Windows.Forms.Label(); - this.cbSeverity = new System.Windows.Forms.ComboBox(); - this.label2 = new System.Windows.Forms.Label(); - this.label1 = new System.Windows.Forms.Label(); - this.cbState = new System.Windows.Forms.ComboBox(); - this.panel2.SuspendLayout(); - this.panel1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.dgvProjects)).BeginInit(); - this.panel3.SuspendLayout(); - this.SuspendLayout(); - // - // tvImages - // - this.tvImages.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("tvImages.ImageStream"))); - this.tvImages.TransparentColor = System.Drawing.Color.Transparent; - this.tvImages.Images.SetKeyName(0, "help_16x16.gif"); - this.tvImages.Images.SetKeyName(1, "exclamation.png"); - this.tvImages.Images.SetKeyName(2, "attention2_16x16.gif"); - this.tvImages.Images.SetKeyName(3, "middle.jpg"); - this.tvImages.Images.SetKeyName(4, "cross_octagon.png"); - // - // panel2 - // - this.panel2.Controls.Add(this.panel1); - this.panel2.Dock = System.Windows.Forms.DockStyle.Fill; - this.panel2.Location = new System.Drawing.Point(0, 0); - this.panel2.Name = "panel2"; - this.panel2.Size = new System.Drawing.Size(665, 368); - this.panel2.TabIndex = 4; - // - // panel1 - // - this.panel1.Controls.Add(this.dgvProjects); - this.panel1.Controls.Add(this.panel3); - this.panel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.panel1.Location = new System.Drawing.Point(0, 0); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(665, 368); - this.panel1.TabIndex = 3; - // - // dgvProjects - // - this.dgvProjects.AllowUserToAddRows = false; - this.dgvProjects.AllowUserToDeleteRows = false; - this.dgvProjects.AllowUserToOrderColumns = true; - this.dgvProjects.BackgroundColor = System.Drawing.SystemColors.Window; - this.dgvProjects.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; - dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; - dataGridViewCellStyle1.BackColor = System.Drawing.SystemColors.Control; - dataGridViewCellStyle1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - dataGridViewCellStyle1.ForeColor = System.Drawing.SystemColors.WindowText; - dataGridViewCellStyle1.SelectionBackColor = System.Drawing.SystemColors.Highlight; - dataGridViewCellStyle1.SelectionForeColor = System.Drawing.SystemColors.HighlightText; - dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.dgvProjects.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1; - this.dgvProjects.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.dgvProjects.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { - this.checkBoxesColumn}); - dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; - dataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.Window; - dataGridViewCellStyle2.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - dataGridViewCellStyle2.ForeColor = System.Drawing.SystemColors.ControlText; - dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight; - dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText; - dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.False; - this.dgvProjects.DefaultCellStyle = dataGridViewCellStyle2; - this.dgvProjects.Dock = System.Windows.Forms.DockStyle.Fill; - this.dgvProjects.Location = new System.Drawing.Point(0, 25); - this.dgvProjects.MultiSelect = false; - this.dgvProjects.Name = "dgvProjects"; - this.dgvProjects.ReadOnly = true; - dataGridViewCellStyle3.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; - dataGridViewCellStyle3.BackColor = System.Drawing.SystemColors.Control; - dataGridViewCellStyle3.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - dataGridViewCellStyle3.ForeColor = System.Drawing.SystemColors.WindowText; - dataGridViewCellStyle3.SelectionBackColor = System.Drawing.SystemColors.Highlight; - dataGridViewCellStyle3.SelectionForeColor = System.Drawing.SystemColors.HighlightText; - dataGridViewCellStyle3.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.dgvProjects.RowHeadersDefaultCellStyle = dataGridViewCellStyle3; - this.dgvProjects.RowHeadersVisible = false; - this.dgvProjects.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; - this.dgvProjects.Size = new System.Drawing.Size(665, 343); - this.dgvProjects.TabIndex = 2; - this.dgvProjects.Sorted += new System.EventHandler(this.dataGridView1_Sorted); - // - // checkBoxesColumn - // - this.checkBoxesColumn.HeaderText = ""; - this.checkBoxesColumn.Name = "checkBoxesColumn"; - this.checkBoxesColumn.ReadOnly = true; - this.checkBoxesColumn.Width = 30; - // - // panel3 - // - this.panel3.BackColor = System.Drawing.SystemColors.Control; - this.panel3.Controls.Add(this.cbAssign); - this.panel3.Controls.Add(this.label3); - this.panel3.Controls.Add(this.cbSeverity); - this.panel3.Controls.Add(this.label2); - this.panel3.Controls.Add(this.label1); - this.panel3.Controls.Add(this.cbState); - this.panel3.Dock = System.Windows.Forms.DockStyle.Top; - this.panel3.Location = new System.Drawing.Point(0, 0); - this.panel3.Name = "panel3"; - this.panel3.Size = new System.Drawing.Size(665, 25); - this.panel3.TabIndex = 3; - // - // cbAssign - // - this.cbAssign.BackColor = System.Drawing.SystemColors.Control; - this.cbAssign.FormattingEnabled = true; - this.cbAssign.Location = new System.Drawing.Point(515, 2); - this.cbAssign.Name = "cbAssign"; - this.cbAssign.Size = new System.Drawing.Size(121, 21); - this.cbAssign.TabIndex = 5; - this.cbAssign.SelectionChangeCommitted += new System.EventHandler(this.cbAssign_SelectionChangeCommitted); - // - // label3 - // - this.label3.AutoSize = true; - this.label3.Location = new System.Drawing.Point(433, 7); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(82, 13); - this.label3.TabIndex = 4; - this.label3.Text = "Assign To User:"; - // - // cbSeverity - // - this.cbSeverity.BackColor = System.Drawing.SystemColors.Control; - this.cbSeverity.FormattingEnabled = true; - this.cbSeverity.Location = new System.Drawing.Point(312, 2); - this.cbSeverity.Name = "cbSeverity"; - this.cbSeverity.Size = new System.Drawing.Size(121, 21); - this.cbSeverity.TabIndex = 3; - this.cbSeverity.SelectionChangeCommitted += new System.EventHandler(this.cbSeverity_SelectionChangeCommitted); - // - // label2 - // - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(212, 7); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(100, 13); - this.label2.TabIndex = 2; - this.label2.Text = "Set Result Severity:"; - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(4, 7); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(87, 13); - this.label1.TabIndex = 1; - this.label1.Text = "Set Result State:"; - // - // cbState - // - this.cbState.BackColor = System.Drawing.SystemColors.Control; - this.cbState.FormattingEnabled = true; - this.cbState.Location = new System.Drawing.Point(91, 2); - this.cbState.Name = "cbState"; - this.cbState.Size = new System.Drawing.Size(121, 21); - this.cbState.TabIndex = 0; - this.cbState.SelectionChangeCommitted += new System.EventHandler(this.cbState_SelectionChangeCommitted); - // - // PerspectiveResultCtrl - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.Controls.Add(this.panel2); - this.Name = "PerspectiveResultCtrl"; - this.Size = new System.Drawing.Size(665, 368); - this.panel2.ResumeLayout(false); - this.panel1.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.dgvProjects)).EndInit(); - this.panel3.ResumeLayout(false); - this.panel3.PerformLayout(); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.ImageList tvImages; - private System.Windows.Forms.Panel panel2; - private System.Windows.Forms.DataGridView dgvProjects; - private System.Windows.Forms.Panel panel1; - private System.Windows.Forms.Panel panel3; - private System.Windows.Forms.ComboBox cbState; - private System.Windows.Forms.DataGridViewCheckBoxColumn checkBoxesColumn; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.ComboBox cbSeverity; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.ComboBox cbAssign; - } -} +namespace CxViewerAction.Views.DockedView +{ + partial class PerspectiveResultCtrl + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PerspectiveResultCtrl)); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle(); + this.tvImages = new System.Windows.Forms.ImageList(this.components); + this.panel2 = new System.Windows.Forms.Panel(); + this.panel1 = new System.Windows.Forms.Panel(); + this.dgvProjects = new System.Windows.Forms.DataGridView(); + this.checkBoxesColumn = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.panel4 = new System.Windows.Forms.Panel(); + this.cbAssign = new System.Windows.Forms.ComboBox(); + this.label4 = new System.Windows.Forms.Label(); + this.cbSeverity = new System.Windows.Forms.ComboBox(); + this.label5 = new System.Windows.Forms.Label(); + this.label6 = new System.Windows.Forms.Label(); + this.cbState = new System.Windows.Forms.ComboBox(); + this.panel3 = new System.Windows.Forms.Panel(); + this.panel6 = new System.Windows.Forms.Panel(); + this.label2 = new System.Windows.Forms.Label(); + this.label1 = new System.Windows.Forms.Label(); + this.linkLabel1 = new System.Windows.Forms.LinkLabel(); + this.toolTip1 = new System.Windows.Forms.ToolTip(this.components); + this.panel2.SuspendLayout(); + this.panel1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dgvProjects)).BeginInit(); + this.panel4.SuspendLayout(); + this.panel3.SuspendLayout(); + this.panel6.SuspendLayout(); + this.SuspendLayout(); + // + // tvImages + // + this.tvImages.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("tvImages.ImageStream"))); + this.tvImages.TransparentColor = System.Drawing.Color.Transparent; + this.tvImages.Images.SetKeyName(0, "help_16x16.gif"); + this.tvImages.Images.SetKeyName(1, "exclamation.png"); + this.tvImages.Images.SetKeyName(2, "attention2_16x16.gif"); + this.tvImages.Images.SetKeyName(3, "middle.jpg"); + this.tvImages.Images.SetKeyName(4, "cross_octagon.png"); + // + // panel2 + // + this.panel2.Controls.Add(this.panel1); + this.panel2.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel2.Location = new System.Drawing.Point(0, 0); + this.panel2.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.panel2.Name = "panel2"; + this.panel2.Size = new System.Drawing.Size(998, 566); + this.panel2.TabIndex = 4; + // + // panel1 + // + this.panel1.Controls.Add(this.dgvProjects); + this.panel1.Controls.Add(this.panel4); + this.panel1.Controls.Add(this.panel3); + this.panel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel1.Location = new System.Drawing.Point(0, 0); + this.panel1.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(998, 566); + this.panel1.TabIndex = 3; + // + // dgvProjects + // + this.dgvProjects.AllowUserToAddRows = false; + this.dgvProjects.AllowUserToDeleteRows = false; + this.dgvProjects.AllowUserToOrderColumns = true; + this.dgvProjects.BackgroundColor = System.Drawing.SystemColors.Window; + this.dgvProjects.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle1.BackColor = System.Drawing.SystemColors.Control; + dataGridViewCellStyle1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + dataGridViewCellStyle1.ForeColor = System.Drawing.SystemColors.WindowText; + dataGridViewCellStyle1.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle1.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.dgvProjects.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1; + this.dgvProjects.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgvProjects.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.checkBoxesColumn}); + dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.Window; + dataGridViewCellStyle2.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + dataGridViewCellStyle2.ForeColor = System.Drawing.SystemColors.ControlText; + dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dgvProjects.DefaultCellStyle = dataGridViewCellStyle2; + this.dgvProjects.Dock = System.Windows.Forms.DockStyle.Fill; + this.dgvProjects.Location = new System.Drawing.Point(0, 166); + this.dgvProjects.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.dgvProjects.MultiSelect = false; + this.dgvProjects.Name = "dgvProjects"; + this.dgvProjects.ReadOnly = true; + dataGridViewCellStyle3.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle3.BackColor = System.Drawing.SystemColors.Control; + dataGridViewCellStyle3.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + dataGridViewCellStyle3.ForeColor = System.Drawing.SystemColors.WindowText; + dataGridViewCellStyle3.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle3.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle3.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.dgvProjects.RowHeadersDefaultCellStyle = dataGridViewCellStyle3; + this.dgvProjects.RowHeadersVisible = false; + this.dgvProjects.RowHeadersWidth = 62; + this.dgvProjects.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; + this.dgvProjects.Size = new System.Drawing.Size(998, 400); + this.dgvProjects.TabIndex = 7; + this.dgvProjects.Sorted += new System.EventHandler(this.dataGridView1_Sorted); + // + // checkBoxesColumn + // + this.checkBoxesColumn.HeaderText = ""; + this.checkBoxesColumn.MinimumWidth = 8; + this.checkBoxesColumn.Name = "checkBoxesColumn"; + this.checkBoxesColumn.ReadOnly = true; + this.checkBoxesColumn.Width = 30; + // + // panel4 + // + this.panel4.AutoSize = true; + this.panel4.BackColor = System.Drawing.SystemColors.Control; + this.panel4.Controls.Add(this.cbAssign); + this.panel4.Controls.Add(this.label4); + this.panel4.Controls.Add(this.cbSeverity); + this.panel4.Controls.Add(this.label5); + this.panel4.Controls.Add(this.label6); + this.panel4.Controls.Add(this.cbState); + this.panel4.Dock = System.Windows.Forms.DockStyle.Top; + this.panel4.Location = new System.Drawing.Point(0, 130); + this.panel4.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.panel4.Name = "panel4"; + this.panel4.Size = new System.Drawing.Size(998, 36); + this.panel4.TabIndex = 6; + // + // cbAssign + // + this.cbAssign.BackColor = System.Drawing.SystemColors.Control; + this.cbAssign.FormattingEnabled = true; + this.cbAssign.Location = new System.Drawing.Point(772, 3); + this.cbAssign.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.cbAssign.Name = "cbAssign"; + this.cbAssign.Size = new System.Drawing.Size(180, 28); + this.cbAssign.TabIndex = 5; + this.cbAssign.SelectionChangeCommitted += new System.EventHandler(this.cbAssign_SelectionChangeCommitted); + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(650, 11); + this.label4.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(121, 20); + this.label4.TabIndex = 4; + this.label4.Text = "Assign To User:"; + // + // cbSeverity + // + this.cbSeverity.BackColor = System.Drawing.SystemColors.Control; + this.cbSeverity.FormattingEnabled = true; + this.cbSeverity.Location = new System.Drawing.Point(468, 3); + this.cbSeverity.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.cbSeverity.Name = "cbSeverity"; + this.cbSeverity.Size = new System.Drawing.Size(180, 28); + this.cbSeverity.TabIndex = 3; + this.cbSeverity.SelectionChangeCommitted += new System.EventHandler(this.cbSeverity_SelectionChangeCommitted); + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Location = new System.Drawing.Point(318, 11); + this.label5.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(148, 20); + this.label5.TabIndex = 2; + this.label5.Text = "Set Result Severity:"; + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Location = new System.Drawing.Point(6, 11); + this.label6.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(131, 20); + this.label6.TabIndex = 1; + this.label6.Text = "Set Result State:"; + // + // cbState + // + this.cbState.BackColor = System.Drawing.SystemColors.Control; + this.cbState.FormattingEnabled = true; + this.cbState.Location = new System.Drawing.Point(136, 3); + this.cbState.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.cbState.Name = "cbState"; + this.cbState.Size = new System.Drawing.Size(180, 28); + this.cbState.TabIndex = 0; + this.cbState.SelectionChangeCommitted += new System.EventHandler(this.cbState_SelectionChangeCommitted); + // + // panel3 + // + this.panel3.AutoScroll = true; + this.panel3.BackColor = System.Drawing.SystemColors.Window; + this.panel3.Controls.Add(this.panel6); + this.panel3.Controls.Add(this.label1); + this.panel3.Dock = System.Windows.Forms.DockStyle.Top; + this.panel3.Location = new System.Drawing.Point(0, 0); + this.panel3.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.panel3.Name = "panel3"; + this.panel3.Size = new System.Drawing.Size(998, 130); + this.panel3.TabIndex = 3; + // + // panel6 + // + this.panel6.AutoSize = true; + this.panel6.BackColor = System.Drawing.SystemColors.Menu; + this.panel6.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.panel6.Controls.Add(this.linkLabel1); + this.panel6.Controls.Add(this.label2); + this.panel6.Dock = System.Windows.Forms.DockStyle.Top; + this.panel6.Location = new System.Drawing.Point(0, 0); + this.panel6.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.panel6.Name = "panel6"; + this.panel6.Padding = new System.Windows.Forms.Padding(5); + this.panel6.Size = new System.Drawing.Size(998, 39); + this.panel6.TabIndex = 7; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label2.ForeColor = System.Drawing.SystemColors.ControlText; + this.label2.Location = new System.Drawing.Point(10, 7); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(264, 25); + this.label2.TabIndex = 6; + this.label2.Text = ""; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(12, 38); + this.label1.MaximumSize = new System.Drawing.Size(1600, 150); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(0, 20); + this.label1.TabIndex = 0; + // + // linkLabel1 + // + this.linkLabel1.AutoSize = false; + this.linkLabel1.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.linkLabel1.LinkBehavior = System.Windows.Forms.LinkBehavior.NeverUnderline; + this.linkLabel1.Location = new System.Drawing.Point(665, 5); + this.linkLabel1.Name = "linkLabel1"; + this.linkLabel1.Size = new System.Drawing.Size(282, 22); + this.linkLabel1.TabIndex = 10; + this.linkLabel1.TabStop = true; + this.linkLabel1.Text = "Learn more at >_ codebashing"; + this.linkLabel1.Click += new System.EventHandler(this.linkLabel1_Sorted); + this.toolTip1.SetToolTip(this.linkLabel1, ""); + // + // PerspectiveResultCtrl + // + this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.panel2); + this.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.Name = "PerspectiveResultCtrl"; + this.Size = new System.Drawing.Size(998, 566); + this.panel2.ResumeLayout(false); + this.panel1.ResumeLayout(false); + this.panel1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dgvProjects)).EndInit(); + this.panel4.ResumeLayout(false); + this.panel4.PerformLayout(); + this.panel3.ResumeLayout(false); + this.panel3.PerformLayout(); + this.panel6.ResumeLayout(false); + this.panel6.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.ImageList tvImages; + private System.Windows.Forms.Panel panel2; + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.Panel panel4; + private System.Windows.Forms.ComboBox cbAssign; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.ComboBox cbSeverity; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.ComboBox cbState; + private System.Windows.Forms.DataGridView dgvProjects; + private System.Windows.Forms.DataGridViewCheckBoxColumn checkBoxesColumn; + private System.Windows.Forms.Panel panel3; + private System.Windows.Forms.Panel panel6; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.LinkLabel linkLabel1; + private System.Windows.Forms.ToolTip toolTip1; + } +} diff --git a/CxViewerAction/Views/DockedView/PerspectiveResultCtrl.cs b/CxActionShared/Views/DockedView/PerspectiveResultCtrl.cs similarity index 77% rename from CxViewerAction/Views/DockedView/PerspectiveResultCtrl.cs rename to CxActionShared/Views/DockedView/PerspectiveResultCtrl.cs index c498516c..440819ea 100644 --- a/CxViewerAction/Views/DockedView/PerspectiveResultCtrl.cs +++ b/CxActionShared/Views/DockedView/PerspectiveResultCtrl.cs @@ -1,954 +1,1136 @@ -using System; -using System.Collections.Generic; -using System.Drawing; -using System.Data; -using System.Text; -using System.Windows.Forms; -using Common; -using CxViewerAction.Entities.WebServiceEntity; -using System.Collections; -using CxViewerAction.Helpers; -using CxViewerAction.CxVSWebService; - - - - -namespace CxViewerAction.Views.DockedView -{ - public partial class PerspectiveResultCtrl : UserControl, IPerspectiveResultView - { - #region [Delegates] - private delegate void SetActiveDelegate(bool active, string loadingMessage); - private delegate void AddTreeViewItemDelegate(ReportResult report); - #endregion - - #region [Private Variables] - private TreeNodeData nodeData = null; - private IPerspectiveView perspectiveView = null; - private ReportQueryResult _selectedReportItem = null; - private ReportResult _report = null; - #endregion - - #region [Constructors] - public PerspectiveResultCtrl() - { - InitializeComponent(); - dgvProjects.CellClick += new DataGridViewCellEventHandler(dataGridView1_CellClick); - dgvProjects.RowTemplate.Height = 30; - try - { - //DgvFilterManager fm = new DgvFilterManager { DataGridView = dgvProjects }; - fillSeverityCB(); - } - catch (Exception ex) - { - Logger.Create().Error(ex.ToString()); - } - - } - - private void fillComboBoxes() - { - if (ResultStateList != null && cbState.Items.Count == 0 && !CommonData.IsWorkingOffline) - { - foreach (KeyValuePair state in ResultStateList) - { - cbState.Items.Add(new ComboBoxItem(state.Key, state.Value)); - } - } - - if (ProjectAssignUsers != null && cbAssign.Items.Count == 0) - { - cbAssign.Items.Add(new ComboBoxItem1("None", "")); - foreach (AssignUser user in ProjectAssignUsers) - { - cbAssign.Items.Add(new ComboBoxItem1(user.UserName,user.UserName)); - } - } - - } - #endregion - - #region Events - public event EventHandler SelectedReportItemChanged; - public event Action SelectedScanChanged; - public event EventHandler SelectedRowChanged; - public event EventHandler Refresh; - - #endregion - - #region [Public Properties] - - bool isActive = false; - public bool IsActive - { - get { return isActive; } - set { isActive = value; } - } - - public IPerspectiveView PerspectiveView - { - get - { - return perspectiveView; - } - set - { - perspectiveView = value; - } - } - - /// - /// Gets or sets currently selected Node - /// - public TreeNodeData SelectedNode - { - get - { - return nodeData; - } - set - { - nodeData = value; - SelectNode(value); - } - } - - /// - /// Gets or sets currently selected report problem type - /// - public ReportQueryResult SelectedReportItem - { - get - { - return _selectedReportItem; - } - set - { - _selectedReportItem = value; - SelectedReportItemChanged(this, null); - } - } - - /// - /// Gets or sets currently selected report - /// - public ReportResult Report - { - get - { - return _report; - } - set - { - _report = value; - } - } - #endregion - - #region [Public Methods] - - /// - /// Bind object data to form controld - /// - public void BindData() - { - } - - /// - /// Set form visiblity and show specified loading message if no active - /// - /// - /// - public void SetActivity(bool active, string loadingMessage) - { - //SetActiveDelegate del2 = SetActive; - //Invoke(del2, new object[] { active, loadingMessage }); - } - - //void ChangePanelStatus(bool isVisible) - //{ - - //} - - #endregion - - #region [Private Methods] - /// - /// Generating tree view perspective representation - /// - /// - - //SortNodes is a recursive method enumerating and sorting all node levels - private void SortNodes(TreeNodeCollection collection) - { - Sort(collection); - foreach (TreeNode node in collection) - { - if (node.Nodes.Count > 0) - { - SortNodes(node.Nodes); - } - } - } - - //The Sort method is called for each node level sorting the child nodes - public void Sort(TreeNodeCollection collection) - { - TreeNode[] nodes = new TreeNode[collection.Count]; - collection.CopyTo(nodes, 0); - Array.Sort(nodes, new TreeNodeComparer()); - collection.Clear(); - collection.AddRange(nodes); - } - - //The TreeNodeComparer class defines the sorting criteria - class TreeNodeComparer : IComparer - { - #region IComparer Members - - public int Compare(object x, object y) - { - TreeNode firstNode = (TreeNode)x; - TreeNode secondNode = (TreeNode)y; - - return firstNode.Text.ToString().CompareTo(secondNode.Text); - } - - #endregion - } - - - private TreeNodeData currentNodedata = null; - - private void SelectNode(TreeNodeData nodeData) - { - fillComboBoxes(); - - currentNodedata = nodeData; - dgvProjects.DataSource = null; - DataTable dt = new DataTable(); - - DataColumn col = new DataColumn(Constants.COL_NAME_NUMBER, typeof(int)); - col.ReadOnly = true; - dt.Columns.Add(col); - DataColumn status = new DataColumn(Constants.COL_NAME_STATUS); - col.ReadOnly = true; - dt.Columns.Add(status); - col = new DataColumn(Constants.COL_NAME_SOURCE_FOLDER); - col.ReadOnly = true; - dt.Columns.Add(col); - col = new DataColumn(Constants.COL_NAME_SOURCE_FILE_NAME); - col.ReadOnly = true; - dt.Columns.Add(col); - col = new DataColumn(Constants.COL_NAME_SOURCE_LINE, typeof(int)); - col.ReadOnly = true; - dt.Columns.Add(col); - col = new DataColumn(Constants.COL_NAME_SOURCE_OBJECT); - col.ReadOnly = true; - dt.Columns.Add(col); - col = new DataColumn(Constants.COL_NAME_DEST_FOLDER); - col.ReadOnly = true; - dt.Columns.Add(col); - col = new DataColumn(Constants.COL_NAME_DEST_FILE_NAME); - col.ReadOnly = true; - dt.Columns.Add(col); - col = new DataColumn(Constants.COL_NAME_DEST_LINE, typeof(int)); - col.ReadOnly = true; - dt.Columns.Add(col); - col = new DataColumn(Constants.COL_NAME_DEST_OBJECT); - col.ReadOnly = true; - dt.Columns.Add(col); - col = new DataColumn(Constants.COL_NAME_SHOW_PATH); - col.ReadOnly = true; - dt.Columns.Add(col); - col = new DataColumn(Constants.COL_NAME_SEVERITY); - col.ReadOnly = true; - dt.Columns.Add(col); - col = new DataColumn(Constants.COL_NAME_ASSIGN); - col.ReadOnly = true; - dt.Columns.Add(col); - col = new DataColumn(Constants.COL_NAME_REMARK); - col.ReadOnly = false; - dt.Columns.Add(col); - col = new DataColumn("ResultEntity", typeof(CxWSSingleResultData)); - col.ReadOnly = true; - dt.Columns.Add(col); - col = new DataColumn("ScanId", typeof(int)); - col.ReadOnly = true; - dt.Columns.Add(col); - col = new DataColumn("PathId", typeof(long)); - col.ReadOnly = true; - dt.Columns.Add(col); - col = new DataColumn("State", typeof(int)); - col.ReadOnly = true; - dt.Columns.Add(col); - - CxWSSingleResultData[] results = PerspectiveHelper.GetScanResultsForQuery(nodeData.ScanId, nodeData.Id); - - int index = 1; - - foreach (CxWSSingleResultData reportQueryItemResult in results) - { - string resultComment = reportQueryItemResult.Comment; - if (!string.IsNullOrEmpty(resultComment)) - { - string[] commentsArr = resultComment.Split(new char[]{Convert.ToChar(255)}, StringSplitOptions.RemoveEmptyEntries); - if (commentsArr.Length > 0) - { - resultComment = commentsArr[commentsArr.Length - 1]; - int endMetadataIndex = resultComment.LastIndexOf(SavedResultsManager.RESULT_COMMENT_DETAILS_SEPARATOR); - if (endMetadataIndex > 0) - { - resultComment = resultComment.Substring(endMetadataIndex + SavedResultsManager.RESULT_COMMENT_DETAILS_SEPARATOR.Length).Trim(); - } - } - } - else - { - resultComment = string.Empty; - } - - dt.Rows.Add(new object[] { - index, - SavedResultsManager.ConvertResultStatusToString(reportQueryItemResult.ResultStatus), - reportQueryItemResult.SourceFolder, - reportQueryItemResult.SourceFile, - (int)reportQueryItemResult.SourceLine, - reportQueryItemResult.SourceObject, - reportQueryItemResult.DestFolder, - reportQueryItemResult.DestFile, - (int)reportQueryItemResult.DestLine, - reportQueryItemResult.DestObject, - ConvertResultState(reportQueryItemResult.State), - getSeverityDescription(reportQueryItemResult.Severity), - reportQueryItemResult.AssignedUser, - resultComment, - reportQueryItemResult, - nodeData.ScanId, - reportQueryItemResult.PathId, - reportQueryItemResult.State - }); - - index++; - } - dgvProjects.DataSource = dt; - dgvProjects.DataMember = dt.TableName; - - for (int i = 0; i < 11; i++) - { - dgvProjects.Columns[i].HeaderCell.Style.Alignment = GetCellAlignment(); - dgvProjects.Columns[i].DefaultCellStyle.Font = GetColumnFont(); - } - - dgvProjects.Columns["checkBoxesColumn"].Frozen = true; - dgvProjects.Columns["checkBoxesColumn"].AutoSizeMode = DataGridViewAutoSizeColumnMode.None; - dgvProjects.Columns["checkBoxesColumn"].Resizable = DataGridViewTriState.False; - dgvProjects.Columns[Constants.COL_NAME_NUMBER].Width = 30; - dgvProjects.Columns[Constants.COL_NAME_STATUS].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; - dgvProjects.Columns[Constants.COL_NAME_SOURCE_FOLDER].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; - dgvProjects.Columns[Constants.COL_NAME_SOURCE_FILE_NAME].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; - dgvProjects.Columns[Constants.COL_NAME_SOURCE_LINE].Width = 60; - dgvProjects.Columns[Constants.COL_NAME_SOURCE_OBJECT].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; - dgvProjects.Columns[Constants.COL_NAME_DEST_FOLDER].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; - dgvProjects.Columns[Constants.COL_NAME_DEST_FILE_NAME].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; - dgvProjects.Columns[Constants.COL_NAME_DEST_LINE].Width = 60; - dgvProjects.Columns[Constants.COL_NAME_DEST_OBJECT].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; - dgvProjects.Columns[Constants.COL_NAME_SHOW_PATH].Width = 60; - dgvProjects.Columns[Constants.COL_NAME_SEVERITY].Width = 60; - dgvProjects.Columns[Constants.COL_NAME_ASSIGN].Width = 60; - dgvProjects.Columns[Constants.COL_NAME_REMARK].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; - - - dgvProjects.AdvancedCellBorderStyle.All = DataGridViewAdvancedCellBorderStyle.None; - - dgvProjects.Columns["ResultEntity"].Visible = false; - dgvProjects.Columns["ScanId"].Visible = false; - dgvProjects.Columns["PathId"].Visible = false; - dgvProjects.Columns["State"].Visible = false; - - show_chkBox(); - - UpdateGridShowPath(); - - } - - private string ConvertResultState(int resultId) - { - if (!ResultStateList.ContainsKey(resultId)) - { - return resultId.ToString(); - } - return ResultStateList[resultId]; - } - - private string getSeverityDescription(int severity) - { - string severityDesc = "Info"; - - switch (severity) - { - case 3: - severityDesc = "High"; - break; - case 2: - severityDesc = "Medium"; - break; - case 1: - severityDesc = "Low"; - break; - default: - severityDesc = "Info"; - break; - - } - - return severityDesc; - } - - private void fillSeverityCB() - { - ComboBoxItem high = new ComboBoxItem(3, "High"); - ComboBoxItem medium = new ComboBoxItem(2, "Medium"); - ComboBoxItem low = new ComboBoxItem(1, "Low"); - ComboBoxItem info = new ComboBoxItem(0, "Info"); - cbSeverity.Items.Add(high); - cbSeverity.Items.Add(medium); - cbSeverity.Items.Add(low); - cbSeverity.Items.Add(info); - - } - - public void MarkRowAsSelected(long pathId) - { - foreach(DataGridViewRow row in dgvProjects.Rows) - { - if (Convert.ToInt64(row.Cells["PathId"].Value) == pathId) - { - row.Selected = true; - dgvProjects.CurrentCell = row.Cells[0]; - } - } - } - - public void SelectRow() - { - if (dgvProjects.SelectedRows.Count > 0) - { - IsActive = true; - CxWSSingleResultData reportQueryItemPathResult = dgvProjects.SelectedRows[0].Cells["ResultEntity"].Value as CxWSSingleResultData; - int scanId = -1; - Int32.TryParse(dgvProjects.SelectedRows[0].Cells["ScanId"].Value.ToString(), out scanId); - - if (reportQueryItemPathResult == null) - return; - - this.SelectedRowChanged(this, new ResultData(reportQueryItemPathResult, scanId, this.SelectedNode)); - UpdateGridShowPath(); - } - } - - private DataGridViewContentAlignment GetCellAlignment() - { - return DataGridViewContentAlignment.MiddleCenter; - } - - private Font GetColumnFont() - { - return new Font("Arial", 8, FontStyle.Regular); - } - - void UpdateGridShowPath() - { - Font font = GetColumnFont(); - foreach (DataGridViewRow row in dgvProjects.Rows) - { - try - { - bool isFalsePositive = false; - ReportQueryItemResult reportQueryItemPathResult = row.Cells["ResultEntity"].Value as ReportQueryItemResult; - if (reportQueryItemPathResult != null) - { - if (!reportQueryItemPathResult.FalsePositive) - { - row.DefaultCellStyle.Font = new Font(font, FontStyle.Regular); - row.DefaultCellStyle.ForeColor = Color.Black; - isFalsePositive = true; - } - else - { - row.DefaultCellStyle.Font = new Font(font, FontStyle.Strikeout); - row.DefaultCellStyle.ForeColor = Color.LightGray; - } - } - - - if (row.Cells["State"].Value != null && Convert.ToInt32(row.Cells["State"].Value) == 1) - { - row.DefaultCellStyle.Font = new Font(font, FontStyle.Strikeout); - isFalsePositive = true; - } - - if (row.Cells[Constants.COL_NAME_STATUS].Value != null) - { - string rowStatus = row.Cells[Constants.COL_NAME_STATUS].Value.ToString(); - if (rowStatus == SavedResultsManager.RESULT_STATUS_NEW_TEXT) - { - row.Cells[Constants.COL_NAME_STATUS].Style.Font = new Font(font, FontStyle.Bold); - row.Cells[Constants.COL_NAME_STATUS].Style.ForeColor = Color.Red; - } - else if (rowStatus == SavedResultsManager.RESULT_STATUS_RECURRENT_TEXT) - { - row.Cells[Constants.COL_NAME_STATUS].Style.Font = new Font(font, FontStyle.Bold); - row.Cells[Constants.COL_NAME_STATUS].Style.ForeColor = ColorTranslator.FromHtml("#FBB917");//an orange flavour - } - if (isFalsePositive) - { - row.Cells[Constants.COL_NAME_STATUS].Style.Font = new Font(font, FontStyle.Bold | FontStyle.Strikeout); - } - } - } - catch (Exception ex) - { - Logger.Create().Error(ex.ToString()); - } - - } - } - - private void dataGridView1_Sorted(object sender, EventArgs e) - { - try - { - UpdateGridShowPath(); - } - catch (Exception ex) - { - Logger.Create().Error(ex.ToString()); - } - } - - private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) - { - try - { - int columnIndex = e.ColumnIndex; - int rowIndex = e.RowIndex; - - if (columnIndex >= 0 && rowIndex >= 0) - { - if (columnIndex == 0) // check box - { - if (dgvProjects.Rows[rowIndex].Cells["checkBoxesColumn"].Value != null) - { - dgvProjects.Rows[rowIndex].Cells["checkBoxesColumn"].Value = !(bool)dgvProjects.Rows[rowIndex].Cells["checkBoxesColumn"].Value; - } - else - { - dgvProjects.Rows[rowIndex].Cells["checkBoxesColumn"].Value = true; - } - - return; - } - - if (dgvProjects.Columns[columnIndex].HeaderText == Constants.COL_NAME_REMARK) - { - EditRemark(columnIndex, rowIndex); - - return; - } - if (dgvProjects.SelectedRows.Count > 0) - { - IsActive = true; - CxWSSingleResultData reportQueryItemPathResult = dgvProjects.SelectedRows[0].Cells["ResultEntity"].Value as CxWSSingleResultData; - int scanId = -1; - Int32.TryParse(dgvProjects.SelectedRows[0].Cells["ScanId"].Value.ToString(), out scanId); - - if (reportQueryItemPathResult == null) - return; - - this.SelectedRowChanged(this, new ResultData(reportQueryItemPathResult, scanId, this.SelectedNode)); - UpdateGridShowPath(); - } - - } - - } - catch (Exception ex) - { - Logger.Create().Error(ex.ToString()); - } - } - - private void EditRemark(int columnIndex, int rowIndex) - { - if (CommonData.IsWorkingOffline) - { - MessageBox.Show("You are working offline. \rCannot update data", "Error", MessageBoxButtons.OK); - return; - } - int currentRowIndex = dgvProjects.CurrentCell.RowIndex; - int currentColumnIndex = dgvProjects.CurrentCell.ColumnIndex; - - CxWSSingleResultData reportQueryItemPathResult = dgvProjects.Rows[rowIndex].Cells["ResultEntity"].Value as CxWSSingleResultData; - - long pathId = reportQueryItemPathResult.PathId; - long resultId = Convert.ToInt64(dgvProjects.Rows[rowIndex].Cells["ScanId"].Value); - CxViewerAction.CxVSWebService.CxWSResultPath resultPath = PerspectiveHelper.GetPathCommentsHistory(resultId, pathId); - string commentHistory = string.Empty; - if (resultPath != null && !string.IsNullOrEmpty(resultPath.Comment)) - { - commentHistory = resultPath.Comment; - } - - string[] commentsArr = commentHistory.Split(Convert.ToChar(255)); - StringBuilder sb = new StringBuilder(); - for (int i = 0; i < commentsArr.Length; i++) - { - if (!string.IsNullOrEmpty(commentsArr[i])) - { - sb.Append(commentsArr[i].ToString()); - if (i != commentsArr.Length) - { - sb.Append(Environment.NewLine); - } - } - } - - EditRemarkPopUp remarkPopUp = new EditRemarkPopUp("", sb.ToString()); - - DialogResult result = remarkPopUp.ShowDialog(); - - if (result != DialogResult.OK) - return; - - string remark = remarkPopUp.Remark; - if(String.IsNullOrEmpty(remark)) - { - return; - } - if (ChangeResultHelper.EditRemark(resultId, pathId, remark) == Entities.Enum.ProjectScanStatuses.Success) - { - reportQueryItemPathResult.Comment = remark; - dgvProjects.Rows[rowIndex].Cells[columnIndex].Value = remark; - dgvProjects.Rows[rowIndex].Selected = true; - dgvProjects.CurrentCell = dgvProjects.Rows[rowIndex].Cells[columnIndex]; - } - - } - - #endregion - - private Dictionary stateList = null; - - public Dictionary ResultStateList - { - get{ - if (stateList != null) - { - return stateList; - } - else - { - try - { - - Dictionary list = new Dictionary(); - ResultState[] res = PerspectiveHelper.GetResultStateList(); - - foreach (ResultState state in res) - { - list.Add(state.ResultID, state.ResultName); - } - - stateList = list; - } - catch (Exception ex) - { - Logger.Create().Error(ex.ToString()); - } - - } - - return stateList; - } - } - - private AssignUser[] projectAssignUsers = null; - - public AssignUser[] ProjectAssignUsers - { - get - { - - try - { - projectAssignUsers = PerspectiveHelper.GetProjectAssignUsers(); - } - catch (Exception ex) - { - Logger.Create().Error(ex.ToString()); - } - return projectAssignUsers; - - - } - } - - private void cbState_SelectionChangeCommitted(object sender, EventArgs e) - { - bool needRefresh = false; - try - { - this.Cursor = Cursors.WaitCursor; - ComboBox senderComboBox = (ComboBox)sender; - ComboBoxItem item = (ComboBoxItem)senderComboBox.SelectedItem; - List list = new List(); - foreach (DataGridViewRow row in dgvProjects.Rows) - { - if (row.Cells["checkBoxesColumn"].Value != null && (bool)row.Cells["checkBoxesColumn"].Value) - { - CxWSSingleResultData reportQueryItemPathResult = row.Cells["ResultEntity"].Value as CxWSSingleResultData; - long pathId = reportQueryItemPathResult.PathId; - long resultId = Convert.ToInt64(row.Cells["ScanId"].Value); - list.Add(new ResultStateData() - { - data = item.Id.ToString(), - PathId = pathId, - Remarks = string.Empty, - ResultLabelType = (int)CxViewerAction.Helpers.ResultLabelTypeEnum.State, - scanId = resultId - }); - - } - } - - if (list.Count >0) - { - needRefresh = PerspectiveHelper.UpdateResultState(list.ToArray()); - } - - if (needRefresh) - { - this.Refresh(this, currentNodedata); - } - - - } - catch (Exception ex) - { - - Logger.Create().Error(ex.ToString()); - } - finally - { - this.Cursor = Cursors.Default; - } - } - - private CheckBox checkboxHeader = new CheckBox(); - - private void show_chkBox() - { - checkboxHeader.Checked = false; - Rectangle rect = dgvProjects.GetCellDisplayRectangle(0, -1, true); - rect.Y = 10; - rect.X = rect.Location.X + (rect.Width / 4) + 1; - checkboxHeader.Name = "checkboxHeader"; - checkboxHeader.Size = new Size(18, 18); - checkboxHeader.Location = rect.Location; - checkboxHeader.CheckedChanged -= new EventHandler(checkboxHeader_CheckedChanged); - checkboxHeader.CheckedChanged += new EventHandler(checkboxHeader_CheckedChanged); - dgvProjects.Controls.Add(checkboxHeader); - } - - private void checkboxHeader_CheckedChanged(object sender, EventArgs e) - { - foreach (DataGridViewRow row in dgvProjects.Rows) - { - row.Cells["checkBoxesColumn"].Value = checkboxHeader.Checked; - } - dgvProjects.EndEdit(); - } - - private void cbSeverity_SelectionChangeCommitted(object sender, EventArgs e) - { - bool needRefresh = false; - try - { - this.Cursor = Cursors.WaitCursor; - ComboBox senderComboBox = (ComboBox)sender; - ComboBoxItem item = (ComboBoxItem)senderComboBox.SelectedItem; - List list = new List(); - foreach (DataGridViewRow row in dgvProjects.Rows) - { - if (row.Cells["checkBoxesColumn"].Value != null && (bool)row.Cells["checkBoxesColumn"].Value) - { - CxWSSingleResultData reportQueryItemPathResult = row.Cells["ResultEntity"].Value as CxWSSingleResultData; - long pathId = reportQueryItemPathResult.PathId; - long resultId = Convert.ToInt64(row.Cells["ScanId"].Value); - list.Add(new ResultStateData() - { - data = item.Id.ToString(), - PathId = pathId, - Remarks = string.Empty, - ResultLabelType = (int)CxViewerAction.Helpers.ResultLabelTypeEnum.Severity, - scanId = resultId - }); - } - } - - if (list.Count > 0) - { - needRefresh = PerspectiveHelper.UpdateResultState(list.ToArray()); - } - - if (needRefresh) - { - this.Refresh(this, currentNodedata); - } - - } - catch (Exception ex) - { - - Logger.Create().Error(ex.ToString()); - - } - finally - { - this.Cursor = Cursors.Default; - } - } - - private void cbAssign_SelectionChangeCommitted(object sender, EventArgs e) - { - bool needRefresh = false; - try - { - this.Cursor = Cursors.WaitCursor; - ComboBox senderComboBox = (ComboBox)sender; - ComboBoxItem1 cbItem = (ComboBoxItem1)senderComboBox.SelectedItem; - string item = cbItem.Value; - List list = new List(); - foreach (DataGridViewRow row in dgvProjects.Rows) - { - if (row.Cells["checkBoxesColumn"].Value != null && (bool)row.Cells["checkBoxesColumn"].Value) - { - CxWSSingleResultData reportQueryItemPathResult = row.Cells["ResultEntity"].Value as CxWSSingleResultData; - long pathId = reportQueryItemPathResult.PathId; - long resultId = Convert.ToInt64(row.Cells["ScanId"].Value); - list.Add(new ResultStateData() - { - data = item, - PathId = pathId, - Remarks = string.Empty, - ResultLabelType = (int)CxViewerAction.Helpers.ResultLabelTypeEnum.Assign, - scanId = resultId - }); - } - } - - if (list.Count > 0) - { - needRefresh = PerspectiveHelper.UpdateResultState(list.ToArray()); - } - - if (needRefresh) - { - this.Refresh(this, currentNodedata); - } - - } - catch (Exception ex) - { - - Logger.Create().Error(ex.ToString()); - } - finally - { - this.Cursor = Cursors.Default; - } - } - - } - - public class ResultData : EventArgs - { - public ResultData(CxWSSingleResultData result, int scanId, TreeNodeData nodeData) - { - Result = result; - ScanId = scanId; - NodeData = nodeData; - } - public CxWSSingleResultData Result - { - set; - get; - } - - public int ScanId - { - set; - get; - } - - public TreeNodeData NodeData - { - set; - get; - } - } - - public class ComboBoxItem - { - public ComboBoxItem(long id, string value) - { - Id = id; - Value = value; - } - - public long Id - { - set; - get; - } - - public string Value - { - set; - get; - } - - public override string ToString() - { - return Value; - } - } - - public class ComboBoxItem1 - { - public ComboBoxItem1(string title, string value) - { - Title = title; - Value = value; - } - - public string Title - { - set; - get; - } - - public string Value - { - set; - get; - } - - public override string ToString() - { - return Title; - } - } -} +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Data; +using System.Text; +using System.Windows.Forms; +using Common; +using CxViewerAction.Entities.WebServiceEntity; +using System.Collections; +using CxViewerAction.Helpers; +using CxViewerAction.CxVSWebService; +using CxViewerAction.Services; +using System.Net; +using System.IO; +using System.Web.Script.Serialization; +using CxViewerAction.ValueObjects; +using System.Reflection; +using CxViewerAction.Entities; + +namespace CxViewerAction.Views.DockedView +{ + public partial class PerspectiveResultCtrl : UserControl, IPerspectiveResultView + { + #region [Delegates] + private delegate void SetActiveDelegate(bool active, string loadingMessage); + private delegate void AddTreeViewItemDelegate(ReportResult report); + #endregion + + #region [Private Variables] + private TreeNodeData nodeData = null; + private IPerspectiveView perspectiveView = null; + private ReportQueryResult _selectedReportItem = null; + private ReportResult _report = null; + private string _apiShortDescription = "sast/scans/{0}/results/{1}/shortDescription"; + private string _apiAppSecCoachLessonsRequestData = "Queries/{0}/AppSecCoachLessonsRequestData"; + private string codeBashingTooltipMessage = "Learn more about {0} using Checkmarx’s eLearning platform"; + private const string descriptionHeader = "Codebashing"; + #endregion + + #region [Constructors] + public PerspectiveResultCtrl() + { + InitializeComponent(); + dgvProjects.CellClick += new DataGridViewCellEventHandler(dataGridView1_CellClick); + dgvProjects.RowTemplate.Height = 30; + + } + + private void fillComboBoxes() + { + try + { + //DgvFilterManager fm = new DgvFilterManager { DataGridView = dgvProjects }; + fillSeverityCB(); + } + catch (Exception ex) + { + Logger.Create().Error(ex.ToString()); + } + if (ResultStateList != null && cbState.Items.Count == 0 && !CommonData.IsWorkingOffline) + { + foreach (KeyValuePair state in ResultStateList) + { + cbState.Items.Add(new ComboBoxItem(state.Key, state.Value)); + } + } + + if (ProjectAssignUsers != null && cbAssign.Items.Count == 0) + { + cbAssign.Items.Add(new ComboBoxItem1("None", "")); + foreach (AssignUser user in ProjectAssignUsers) + { + cbAssign.Items.Add(new ComboBoxItem1(user.UserName, user.UserName)); + } + } + + } + #endregion + + #region Events + public event EventHandler SelectedReportItemChanged; + public event Action SelectedScanChanged; + public event EventHandler SelectedRowChanged; + public event EventHandler Refresh; + + #endregion + + #region [Public Properties] + + bool isActive = false; + public bool IsActive + { + get { return isActive; } + set { isActive = value; } + } + + public IPerspectiveView PerspectiveView + { + get + { + return perspectiveView; + } + set + { + perspectiveView = value; + } + } + + /// + /// Gets or sets currently selected Node + /// + public TreeNodeData SelectedNode + { + get + { + return nodeData; + } + set + { + nodeData = value; + SelectNode(value); + } + } + + /// + /// Gets or sets currently selected report problem type + /// + public ReportQueryResult SelectedReportItem + { + get + { + return _selectedReportItem; + } + set + { + _selectedReportItem = value; + SelectedReportItemChanged(this, null); + } + } + + /// + /// Gets or sets currently selected report + /// + public ReportResult Report + { + get + { + return _report; + } + set + { + _report = value; + } + } + #endregion + + #region [Public Methods] + + /// + /// Bind object data to form controld + /// + public void BindData() + { + } + + /// + /// Set form visiblity and show specified loading message if no active + /// + /// + /// + public void SetActivity(bool active, string loadingMessage) + { + //SetActiveDelegate del2 = SetActive; + //Invoke(del2, new object[] { active, loadingMessage }); + } + + //void ChangePanelStatus(bool isVisible) + //{ + + //} + + #endregion + + #region [Private Methods] + /// + /// Generating tree view perspective representation + /// + /// + + //SortNodes is a recursive method enumerating and sorting all node levels + private void SortNodes(TreeNodeCollection collection) + { + Sort(collection); + foreach (TreeNode node in collection) + { + if (node.Nodes.Count > 0) + { + SortNodes(node.Nodes); + } + } + } + + //The Sort method is called for each node level sorting the child nodes + public void Sort(TreeNodeCollection collection) + { + TreeNode[] nodes = new TreeNode[collection.Count]; + collection.CopyTo(nodes, 0); + Array.Sort(nodes, new TreeNodeComparer()); + collection.Clear(); + collection.AddRange(nodes); + } + + //The TreeNodeComparer class defines the sorting criteria + class TreeNodeComparer : IComparer + { + #region IComparer Members + + public int Compare(object x, object y) + { + TreeNode firstNode = (TreeNode)x; + TreeNode secondNode = (TreeNode)y; + + return firstNode.Text.ToString().CompareTo(secondNode.Text); + } + + #endregion + } + + + private TreeNodeData currentNodedata = null; + + private void SelectNode(TreeNodeData nodeData) + { + fillComboBoxes(); + + currentNodedata = nodeData; + dgvProjects.DataSource = null; + DataTable dt = new DataTable(); + + DataColumn col = new DataColumn(Constants.COL_NAME_NUMBER, typeof(int)); + col.ReadOnly = true; + dt.Columns.Add(col); + DataColumn status = new DataColumn(Constants.COL_NAME_STATUS); + col.ReadOnly = true; + dt.Columns.Add(status); + col = new DataColumn(Constants.COL_NAME_SOURCE_FOLDER); + col.ReadOnly = true; + dt.Columns.Add(col); + col = new DataColumn(Constants.COL_NAME_SOURCE_FILE_NAME); + col.ReadOnly = true; + dt.Columns.Add(col); + col = new DataColumn(Constants.COL_NAME_SOURCE_LINE, typeof(int)); + col.ReadOnly = true; + dt.Columns.Add(col); + col = new DataColumn(Constants.COL_NAME_SOURCE_OBJECT); + col.ReadOnly = true; + dt.Columns.Add(col); + col = new DataColumn(Constants.COL_NAME_DEST_FOLDER); + col.ReadOnly = true; + dt.Columns.Add(col); + col = new DataColumn(Constants.COL_NAME_DEST_FILE_NAME); + col.ReadOnly = true; + dt.Columns.Add(col); + col = new DataColumn(Constants.COL_NAME_DEST_LINE, typeof(int)); + col.ReadOnly = true; + dt.Columns.Add(col); + col = new DataColumn(Constants.COL_NAME_DEST_OBJECT); + col.ReadOnly = true; + dt.Columns.Add(col); + col = new DataColumn(Constants.COL_NAME_SHOW_PATH); + col.ReadOnly = true; + dt.Columns.Add(col); + col = new DataColumn(Constants.COL_NAME_SEVERITY); + col.ReadOnly = true; + dt.Columns.Add(col); + col = new DataColumn(Constants.COL_NAME_ASSIGN); + col.ReadOnly = true; + dt.Columns.Add(col); + col = new DataColumn(Constants.COL_NAME_REMARK); + col.ReadOnly = false; + dt.Columns.Add(col); + col = new DataColumn("ResultEntity", typeof(CxWSSingleResultData)); + col.ReadOnly = true; + dt.Columns.Add(col); + col = new DataColumn("ScanId", typeof(int)); + col.ReadOnly = true; + dt.Columns.Add(col); + col = new DataColumn("PathId", typeof(long)); + col.ReadOnly = true; + dt.Columns.Add(col); + col = new DataColumn("State", typeof(int)); + col.ReadOnly = true; + dt.Columns.Add(col); + + CxWSSingleResultData[] results = PerspectiveHelper.GetScanResultsForQuery(nodeData.ScanId, nodeData.Id); + + int index = 1; + + foreach (CxWSSingleResultData reportQueryItemResult in results) + { + string resultComment = reportQueryItemResult.Comment; + if (!string.IsNullOrEmpty(resultComment)) + { + string[] commentsArr = resultComment.Split(new char[] { Convert.ToChar(255) }, StringSplitOptions.RemoveEmptyEntries); + if (commentsArr.Length > 0) + { + resultComment = commentsArr[commentsArr.Length - 1]; + int endMetadataIndex = resultComment.LastIndexOf(SavedResultsManager.RESULT_COMMENT_DETAILS_SEPARATOR); + if (endMetadataIndex > 0) + { + resultComment = resultComment.Substring(endMetadataIndex + SavedResultsManager.RESULT_COMMENT_DETAILS_SEPARATOR.Length).Trim(); + } + } + } + else + { + resultComment = string.Empty; + } + + dt.Rows.Add(new object[] { + index, + SavedResultsManager.ConvertResultStatusToString(reportQueryItemResult.ResultStatus), + reportQueryItemResult.SourceFolder, + reportQueryItemResult.SourceFile, + (int)reportQueryItemResult.SourceLine, + reportQueryItemResult.SourceObject, + reportQueryItemResult.DestFolder, + reportQueryItemResult.DestFile, + (int)reportQueryItemResult.DestLine, + reportQueryItemResult.DestObject, + ConvertResultState(reportQueryItemResult.State), + getSeverityDescription(reportQueryItemResult.Severity), + reportQueryItemResult.AssignedUser, + resultComment, + reportQueryItemResult, + nodeData.ScanId, + reportQueryItemResult.PathId, + reportQueryItemResult.State + }); + + index++; + } + dgvProjects.DataSource = dt; + dgvProjects.DataMember = dt.TableName; + + for (int i = 0; i < 11; i++) + { + dgvProjects.Columns[i].HeaderCell.Style.Alignment = GetCellAlignment(); + dgvProjects.Columns[i].DefaultCellStyle.Font = GetColumnFont(); + } + + foreach (CxWSSingleResultData reportQueryItemResult in results) + { + GetShortDescription(nodeData.ScanId, reportQueryItemResult.PathId); + break; + } + + if (currentNodedata != null) + { + label2.Text = currentNodedata.Name; + toolTip1.SetToolTip(this.linkLabel1, string.Format(codeBashingTooltipMessage, currentNodedata.Name)); + } + + dgvProjects.Columns["checkBoxesColumn"].Frozen = true; + dgvProjects.Columns["checkBoxesColumn"].AutoSizeMode = DataGridViewAutoSizeColumnMode.None; + dgvProjects.Columns["checkBoxesColumn"].Resizable = DataGridViewTriState.False; + dgvProjects.Columns[Constants.COL_NAME_NUMBER].Width = 30; + dgvProjects.Columns[Constants.COL_NAME_STATUS].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; + dgvProjects.Columns[Constants.COL_NAME_SOURCE_FOLDER].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; + dgvProjects.Columns[Constants.COL_NAME_SOURCE_FILE_NAME].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; + dgvProjects.Columns[Constants.COL_NAME_SOURCE_LINE].Width = 60; + dgvProjects.Columns[Constants.COL_NAME_SOURCE_OBJECT].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; + dgvProjects.Columns[Constants.COL_NAME_DEST_FOLDER].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; + dgvProjects.Columns[Constants.COL_NAME_DEST_FILE_NAME].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; + dgvProjects.Columns[Constants.COL_NAME_DEST_LINE].Width = 60; + dgvProjects.Columns[Constants.COL_NAME_DEST_OBJECT].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; + dgvProjects.Columns[Constants.COL_NAME_SHOW_PATH].Width = 60; + dgvProjects.Columns[Constants.COL_NAME_SEVERITY].Width = 60; + dgvProjects.Columns[Constants.COL_NAME_ASSIGN].Width = 60; + dgvProjects.Columns[Constants.COL_NAME_REMARK].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; + + + dgvProjects.AdvancedCellBorderStyle.All = DataGridViewAdvancedCellBorderStyle.None; + + dgvProjects.Columns["ResultEntity"].Visible = false; + dgvProjects.Columns["ScanId"].Visible = false; + dgvProjects.Columns["PathId"].Visible = false; + dgvProjects.Columns["State"].Visible = false; + + show_chkBox(); + + UpdateGridShowPath(); + + } + + private string ConvertResultState(int resultId) + { + if (!ResultStateList.ContainsKey(resultId)) + { + return resultId.ToString(); + } + return ResultStateList[resultId]; + } + + private string getSeverityDescription(int severity) + { + string severityDesc = "Info"; + + switch (severity) + { + case 4: + severityDesc = "Critical"; + break; + case 3: + severityDesc = "High"; + break; + case 2: + severityDesc = "Medium"; + break; + case 1: + severityDesc = "Low"; + break; + default: + severityDesc = "Info"; + break; + + } + + return severityDesc; + } + + private void fillSeverityCB() + { + cbSeverity.Items.Clear(); + string version = PerspectiveHelper.GetSASTVersionDetails(); + var value = version.Split('.'); + var currentVersion = (value[0]) + "." + (value[1]); + if (!string.IsNullOrEmpty(version) && float.Parse(currentVersion) > float.Parse("9.6")) + { + ComboBoxItem critical = new ComboBoxItem(4, "Critical"); + cbSeverity.Items.Add(critical); + } + + ComboBoxItem high = new ComboBoxItem(3, "High"); + ComboBoxItem medium = new ComboBoxItem(2, "Medium"); + ComboBoxItem low = new ComboBoxItem(1, "Low"); + ComboBoxItem info = new ComboBoxItem(0, "Info"); + cbSeverity.Items.Add(high); + cbSeverity.Items.Add(medium); + cbSeverity.Items.Add(low); + cbSeverity.Items.Add(info); + } + + public void MarkRowAsSelected(long pathId) + { + foreach (DataGridViewRow row in dgvProjects.Rows) + { + if (Convert.ToInt64(row.Cells["PathId"].Value) == pathId) + { + row.Selected = true; + dgvProjects.CurrentCell = row.Cells[0]; + } + } + } + + public void SelectRow() + { + if (dgvProjects.SelectedRows.Count > 0) + { + IsActive = true; + CxWSSingleResultData reportQueryItemPathResult = dgvProjects.SelectedRows[0].Cells["ResultEntity"].Value as CxWSSingleResultData; + int scanId = -1; + Int32.TryParse(dgvProjects.SelectedRows[0].Cells["ScanId"].Value.ToString(), out scanId); + + if (reportQueryItemPathResult == null) + return; + + this.SelectedRowChanged(this, new ResultData(reportQueryItemPathResult, scanId, this.SelectedNode)); + UpdateGridShowPath(); + } + } + + private DataGridViewContentAlignment GetCellAlignment() + { + return DataGridViewContentAlignment.MiddleCenter; + } + + private Font GetColumnFont() + { + return new Font("Arial", 8, FontStyle.Regular); + } + + void UpdateGridShowPath() + { + Font font = GetColumnFont(); + foreach (DataGridViewRow row in dgvProjects.Rows) + { + try + { + bool isFalsePositive = false; + ReportQueryItemResult reportQueryItemPathResult = row.Cells["ResultEntity"].Value as ReportQueryItemResult; + if (reportQueryItemPathResult != null) + { + if (!reportQueryItemPathResult.FalsePositive) + { + row.DefaultCellStyle.Font = new Font(font, FontStyle.Regular); + row.DefaultCellStyle.ForeColor = Color.Black; + isFalsePositive = true; + } + else + { + row.DefaultCellStyle.Font = new Font(font, FontStyle.Strikeout); + row.DefaultCellStyle.ForeColor = Color.LightGray; + } + } + + + if (row.Cells["State"].Value != null && Convert.ToInt32(row.Cells["State"].Value) == 1) + { + row.DefaultCellStyle.Font = new Font(font, FontStyle.Strikeout); + isFalsePositive = true; + } + + if (row.Cells[Constants.COL_NAME_STATUS].Value != null) + { + string rowStatus = row.Cells[Constants.COL_NAME_STATUS].Value.ToString(); + if (rowStatus == SavedResultsManager.RESULT_STATUS_NEW_TEXT) + { + row.Cells[Constants.COL_NAME_STATUS].Style.Font = new Font(font, FontStyle.Bold); + row.Cells[Constants.COL_NAME_STATUS].Style.ForeColor = Color.Red; + } + else if (rowStatus == SavedResultsManager.RESULT_STATUS_RECURRENT_TEXT) + { + row.Cells[Constants.COL_NAME_STATUS].Style.Font = new Font(font, FontStyle.Bold); + row.Cells[Constants.COL_NAME_STATUS].Style.ForeColor = ColorTranslator.FromHtml("#FBB917");//an orange flavour + } + if (isFalsePositive) + { + row.Cells[Constants.COL_NAME_STATUS].Style.Font = new Font(font, FontStyle.Bold | FontStyle.Strikeout); + } + } + } + catch (Exception ex) + { + Logger.Create().Error(ex.ToString()); + } + + } + } + + private void dataGridView1_Sorted(object sender, EventArgs e) + { + try + { + if (dgvProjects.SelectedRows.Count > 0) + { + IsActive = true; + CxWSSingleResultData reportQueryItemPathResult = dgvProjects.SelectedRows[0].Cells["ResultEntity"].Value as CxWSSingleResultData; + int scanId = -1; + Int32.TryParse(dgvProjects.SelectedRows[0].Cells["ScanId"].Value.ToString(), out scanId); + + if (reportQueryItemPathResult == null) + return; + + this.SelectedRowChanged(this, new ResultData(reportQueryItemPathResult, scanId, this.SelectedNode)); + + GetShortDescription(scanId, reportQueryItemPathResult.PathId); + UpdateGridShowPath(); + } + } + catch (Exception ex) + { + Logger.Create().Error(ex.ToString()); + } + } + + private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) + { + try + { + int columnIndex = e.ColumnIndex; + int rowIndex = e.RowIndex; + + if (columnIndex >= 0 && rowIndex >= 0) + { + if (columnIndex == 0) // check box + { + if (dgvProjects.Rows[rowIndex].Cells["checkBoxesColumn"].Value != null) + { + dgvProjects.Rows[rowIndex].Cells["checkBoxesColumn"].Value = !(bool)dgvProjects.Rows[rowIndex].Cells["checkBoxesColumn"].Value; + } + else + { + dgvProjects.Rows[rowIndex].Cells["checkBoxesColumn"].Value = true; + } + + return; + } + + if (dgvProjects.Columns[columnIndex].HeaderText == Constants.COL_NAME_REMARK) + { + EditRemark(columnIndex, rowIndex); + + return; + } + if (dgvProjects.SelectedRows.Count > 0) + { + IsActive = true; + CxWSSingleResultData reportQueryItemPathResult = dgvProjects.SelectedRows[0].Cells["ResultEntity"].Value as CxWSSingleResultData; + int scanId = -1; + Int32.TryParse(dgvProjects.SelectedRows[0].Cells["ScanId"].Value.ToString(), out scanId); + + if (reportQueryItemPathResult == null) + return; + + this.SelectedRowChanged(this, new ResultData(reportQueryItemPathResult, scanId, this.SelectedNode)); + + GetShortDescription(scanId, reportQueryItemPathResult.PathId); + UpdateGridShowPath(); + } + + } + } + catch (Exception ex) + { + Logger.Create().Error(ex.ToString()); + } + } + + private void linkLabel1_Sorted(object sender, EventArgs e) + { + try + { + if (this.SelectedNode != null) + { + string responseText = string.Empty; + CxAppSecCodbashing codbashingDetails = new CxAppSecCodbashing(); + + CxRESTApiCommon rESTApiPortalConfiguration = new CxRESTApiCommon(string.Format(_apiAppSecCoachLessonsRequestData, this.SelectedNode.Id)); + HttpWebResponse response = rESTApiPortalConfiguration.InitPortalBaseUrl(); + + if (response.StatusCode == HttpStatusCode.OK) + { + using (StreamReader reader = new StreamReader(response.GetResponseStream(), ASCIIEncoding.ASCII)) + { + responseText = reader.ReadToEnd(); + } + } + + if (!string.IsNullOrEmpty(responseText)) + { + JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer(); + codbashingDetails = (CxAppSecCodbashing)javaScriptSerializer.Deserialize(responseText, typeof(CxAppSecCodbashing)); + } + + if (codbashingDetails != null) + { + NavigateToCodebashing(codbashingDetails); + } + } + } + catch (Exception ex) + { + Logger.Create().Error(ex.ToString()); + } + } + + private void NavigateToCodebashing(CxAppSecCodbashing codbashingDetails) + { + string urlToDescription = codbashingDetails.url + "?serviceProviderId=" + codbashingDetails.paramteres.serviceProviderId + + "&utm_source=" + codbashingDetails.paramteres.utm_source + + "&utm_campaign=" + codbashingDetails.paramteres.utm_campaign; + + QueryDescriptionForm codebashingDesc = new QueryDescriptionForm(urlToDescription, OidcLoginData.GetOidcLoginDataInstance().AccessToken, descriptionHeader); + codebashingDesc.Show(); + + } + + private void GetShortDescription(long scanId, long pathId) + { + string responseText = string.Empty; + + CxRESTApiCommon rESTApiPortalConfiguration = new CxRESTApiCommon(string.Format(_apiShortDescription, scanId, pathId)); + HttpWebResponse response = rESTApiPortalConfiguration.InitPortalBaseUrl(); + + if (response != null && response.StatusCode == HttpStatusCode.OK) + { + using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8)) + { + responseText = reader.ReadToEnd(); + } + } + + if (!string.IsNullOrEmpty(responseText)) + { + CxQueryShortDescription queryShortDescription = new CxQueryShortDescription(); + JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer(); + queryShortDescription = (CxQueryShortDescription)javaScriptSerializer.Deserialize(responseText, typeof(CxQueryShortDescription)); + this.label1.Text = queryShortDescription.shortDescription; + this.label1.ForeColor = Color.Black; + } + else + { + this.label1.Text = "The query description for vulnerability result is not available.\r\n"; + this.label1.ForeColor = Color.Red; + } + } + + private void EditRemark(int columnIndex, int rowIndex) + { + if (CommonData.IsWorkingOffline) + { + MessageBox.Show("You are working offline. \rCannot update data", "Error", MessageBoxButtons.OK); + return; + } + int currentRowIndex = dgvProjects.CurrentCell.RowIndex; + int currentColumnIndex = dgvProjects.CurrentCell.ColumnIndex; + + CxWSSingleResultData reportQueryItemPathResult = dgvProjects.Rows[rowIndex].Cells["ResultEntity"].Value as CxWSSingleResultData; + + long pathId = reportQueryItemPathResult.PathId; + long resultId = Convert.ToInt64(dgvProjects.Rows[rowIndex].Cells["ScanId"].Value); + CxViewerAction.CxVSWebService.CxWSResultPath resultPath = PerspectiveHelper.GetPathCommentsHistory(resultId, pathId); + string commentHistory = string.Empty; + if (resultPath != null && !string.IsNullOrEmpty(resultPath.Comment)) + { + commentHistory = resultPath.Comment; + } + + string[] commentsArr = commentHistory.Split(Convert.ToChar(255)); + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < commentsArr.Length; i++) + { + if (!string.IsNullOrEmpty(commentsArr[i])) + { + sb.Append(commentsArr[i].ToString()); + if (i != commentsArr.Length) + { + sb.Append(Environment.NewLine); + } + } + } + + EditRemarkPopUp remarkPopUp = new EditRemarkPopUp("", sb.ToString(),true); + + DialogResult result = remarkPopUp.ShowDialog(); + + if (result != DialogResult.OK) + return; + + string remark = remarkPopUp.Remark; + if (String.IsNullOrWhiteSpace(remark)) + { + return; + } + if (ChangeResultHelper.EditRemark(resultId, pathId, remark) == Entities.Enum.ProjectScanStatuses.Success) + { + reportQueryItemPathResult.Comment = remark; + dgvProjects.Rows[rowIndex].Cells[columnIndex].Value = remark; + dgvProjects.Rows[rowIndex].Selected = true; + dgvProjects.CurrentCell = dgvProjects.Rows[rowIndex].Cells[columnIndex]; + } + + } + + #endregion + + private Dictionary stateList = null; + + public Dictionary ResultStateList + { + get + { + if (stateList != null) + { + return stateList; + } + else + { + try + { + + Dictionary list = new Dictionary(); + ResultState[] res = PerspectiveHelper.GetResultStateList(); + + foreach (ResultState state in res) + { + list.Add(state.ResultID, state.ResultName); + } + + stateList = list; + } + catch (Exception ex) + { + Logger.Create().Error(ex.ToString()); + } + + } + + return stateList; + } + } + + private AssignUser[] projectAssignUsers = null; + + public AssignUser[] ProjectAssignUsers + { + get + { + + try + { + projectAssignUsers = PerspectiveHelper.GetProjectAssignUsers(); + } + catch (Exception ex) + { + Logger.Create().Error(ex.ToString()); + } + return projectAssignUsers; + + + } + } + + private void cbState_SelectionChangeCommitted(object sender, EventArgs e) + { + ComboBox senderComboBox = (ComboBox)sender; + ComboBoxItem item = (ComboBoxItem)senderComboBox.SelectedItem; + + if (IsMandatoryCommentOnChangeResultState() || + (item.Id == (int)ResultStates.NotExploitable && IsMandatoryCommentOnChangeResultStateToNE()) || + (item.Id == (int)ResultStates.ProposedNotExploitable && IsMandatoryCommentOnChangeResultStateToPNE())) + { + openCommentPopup(sender); + } + else + { + updateResultStateDetails(sender, ""); + } + this.cbState.SelectedIndex = -1; + } + + + private void openCommentPopup(object sender) + { + EditRemarkPopUp remarkPopUp = new EditRemarkPopUp("", "", false); + + DialogResult result = remarkPopUp.ShowDialog(); + + if (result == DialogResult.Cancel) + { + this.cbState.SelectedIndex = -1; + return; + } + string remark = remarkPopUp.Remark; + if (!String.IsNullOrWhiteSpace(remark)) + updateResultStateDetails(sender, remark); + } + + private CheckBox checkboxHeader = new CheckBox(); + + private void updateResultStateDetails(object sender,string remark) + { + bool needRefresh = false; + try + { + this.Cursor = Cursors.WaitCursor; + ComboBox senderComboBox = (ComboBox)sender; + ComboBoxItem item = (ComboBoxItem)senderComboBox.SelectedItem; + List list = new List(); + foreach (DataGridViewRow row in dgvProjects.Rows) + { + if (row.Cells["checkBoxesColumn"].Value != null && (bool)row.Cells["checkBoxesColumn"].Value) + { + CxWSSingleResultData reportQueryItemPathResult = row.Cells["ResultEntity"].Value as CxWSSingleResultData; + long pathId = reportQueryItemPathResult.PathId; + long resultId = Convert.ToInt64(row.Cells["ScanId"].Value); + list.Add(new ResultStateData() + { + data = item.Id.ToString(), + PathId = pathId, + Remarks = remark, + ResultLabelType = (int)CxViewerAction.Helpers.ResultLabelTypeEnum.State, + scanId = resultId + }); + + } + } + + if (list.Count > 0) + { + needRefresh = PerspectiveHelper.UpdateResultState(list.ToArray()); + } + + if (needRefresh) + { + this.Refresh(this, currentNodedata); + } + + + } + catch (Exception ex) + { + + Logger.Create().Error(ex.ToString()); + } + finally + { + this.Cursor = Cursors.Default; + } + } + + private bool IsMandatoryCommentOnChangeResultState() + { + CxRESTApiPortalConfiguration rESTApiPortalConfiguration = new CxRESTApiPortalConfiguration(); + return rESTApiPortalConfiguration.InitPortalConfigurationDetails().MandatoryCommentOnChangeResultState; + } + + private bool IsMandatoryCommentOnChangeResultStateToNE() + { + CxRESTApiNoneConfiguration rESTApiPortalConfiguration = new CxRESTApiNoneConfiguration(); + return rESTApiPortalConfiguration.InitNoneConfigurationDetails().MandatoryCommentOnChangeResultStateToNE; + } + + private bool IsMandatoryCommentOnChangeResultStateToPNE() + { + CxRESTApiNoneConfiguration rESTApiPortalConfiguration = new CxRESTApiNoneConfiguration(); + return rESTApiPortalConfiguration.InitNoneConfigurationDetails().MandatoryCommentOnChangeResultStateToPNE; + } + + private void show_chkBox() + { + checkboxHeader.Checked = false; + Rectangle rect = dgvProjects.GetCellDisplayRectangle(0, -1, true); + rect.Y = 10; + rect.X = rect.Location.X + (rect.Width / 4) + 1; + checkboxHeader.Name = "checkboxHeader"; + checkboxHeader.Size = new Size(18, 18); + checkboxHeader.Location = rect.Location; + checkboxHeader.CheckedChanged -= new EventHandler(checkboxHeader_CheckedChanged); + checkboxHeader.CheckedChanged += new EventHandler(checkboxHeader_CheckedChanged); + dgvProjects.Controls.Add(checkboxHeader); + } + + private void checkboxHeader_CheckedChanged(object sender, EventArgs e) + { + foreach (DataGridViewRow row in dgvProjects.Rows) + { + row.Cells["checkBoxesColumn"].Value = checkboxHeader.Checked; + } + dgvProjects.EndEdit(); + } + + private void cbSeverity_SelectionChangeCommitted(object sender, EventArgs e) + { + bool needRefresh = false; + try + { + this.Cursor = Cursors.WaitCursor; + ComboBox senderComboBox = (ComboBox)sender; + ComboBoxItem item = (ComboBoxItem)senderComboBox.SelectedItem; + List list = new List(); + foreach (DataGridViewRow row in dgvProjects.Rows) + { + if (row.Cells["checkBoxesColumn"].Value != null && (bool)row.Cells["checkBoxesColumn"].Value) + { + CxWSSingleResultData reportQueryItemPathResult = row.Cells["ResultEntity"].Value as CxWSSingleResultData; + long pathId = reportQueryItemPathResult.PathId; + long resultId = Convert.ToInt64(row.Cells["ScanId"].Value); + list.Add(new ResultStateData() + { + data = item.Id.ToString(), + PathId = pathId, + Remarks = string.Empty, + ResultLabelType = (int)CxViewerAction.Helpers.ResultLabelTypeEnum.Severity, + scanId = resultId + }); + } + } + + if (list.Count > 0) + { + needRefresh = PerspectiveHelper.UpdateResultState(list.ToArray()); + } + + if (needRefresh) + { + this.Refresh(this, currentNodedata); + } + + } + catch (Exception ex) + { + + Logger.Create().Error(ex.ToString()); + + } + finally + { + this.Cursor = Cursors.Default; + this.cbSeverity.SelectedIndex = -1; + } + } + + private void cbAssign_SelectionChangeCommitted(object sender, EventArgs e) + { + bool needRefresh = false; + try + { + this.Cursor = Cursors.WaitCursor; + ComboBox senderComboBox = (ComboBox)sender; + ComboBoxItem1 cbItem = (ComboBoxItem1)senderComboBox.SelectedItem; + string item = cbItem.Value; + List list = new List(); + foreach (DataGridViewRow row in dgvProjects.Rows) + { + if (row.Cells["checkBoxesColumn"].Value != null && (bool)row.Cells["checkBoxesColumn"].Value) + { + CxWSSingleResultData reportQueryItemPathResult = row.Cells["ResultEntity"].Value as CxWSSingleResultData; + long pathId = reportQueryItemPathResult.PathId; + long resultId = Convert.ToInt64(row.Cells["ScanId"].Value); + list.Add(new ResultStateData() + { + data = item, + PathId = pathId, + Remarks = string.Empty, + ResultLabelType = (int)CxViewerAction.Helpers.ResultLabelTypeEnum.Assign, + scanId = resultId + }); + } + } + + if (list.Count > 0) + { + needRefresh = PerspectiveHelper.UpdateResultState(list.ToArray()); + } + + if (needRefresh) + { + this.Refresh(this, currentNodedata); + } + + } + catch (Exception ex) + { + + Logger.Create().Error(ex.ToString()); + } + finally + { + this.Cursor = Cursors.Default; + this.cbAssign.SelectedIndex = -1; + } + } + + } + + public class ResultData : EventArgs + { + public ResultData(CxWSSingleResultData result, int scanId, TreeNodeData nodeData) + { + Result = result; + ScanId = scanId; + NodeData = nodeData; + } + public CxWSSingleResultData Result + { + set; + get; + } + + public int ScanId + { + set; + get; + } + + public TreeNodeData NodeData + { + set; + get; + } + } + + public class ComboBoxItem + { + public ComboBoxItem(long id, string value) + { + Id = id; + Value = value; + } + + public long Id + { + set; + get; + } + + public string Value + { + set; + get; + } + + public override string ToString() + { + return Value; + } + } + + public class ComboBoxItem1 + { + public ComboBoxItem1(string title, string value) + { + Title = title; + Value = value; + } + + public string Title + { + set; + get; + } + + public string Value + { + set; + get; + } + + public override string ToString() + { + return Title; + } + } +} diff --git a/CxViewerAction/Views/DockedView/PerspectiveResultCtrl.resx b/CxActionShared/Views/DockedView/PerspectiveResultCtrl.resx similarity index 98% rename from CxViewerAction/Views/DockedView/PerspectiveResultCtrl.resx rename to CxActionShared/Views/DockedView/PerspectiveResultCtrl.resx index 44aab03c..234d5362 100644 --- a/CxViewerAction/Views/DockedView/PerspectiveResultCtrl.resx +++ b/CxActionShared/Views/DockedView/PerspectiveResultCtrl.resx @@ -1,189 +1,189 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 190, 17 - - - - AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w - LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 - ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADg - DAAAAk1TRnQBSQFMAgEBBQEAAYABAAGAAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo - AwABQAMAASADAAEBAQABCAYAAQgYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA - AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 - AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA - AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm - AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM - AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA - ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz - AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ - AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM - AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA - AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA - AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ - AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/ - AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA - AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm - ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ - Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz - AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA - AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM - AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM - ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM - Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA - AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM - AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ - AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz - AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm - AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw - AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD/wEABf8B8gHvAu0B7wHw - AfQE/zAABP8BBwHqAUUC6QFFAeoB7wHzA/8wAAP/Ae8BRQEgBPkBIAFFAfcB9AL/MAAC/wHwAUUBIAEl - ASAC+QEgASUBIAFFAQcC/zAAAv8B7AEgAUYB8gFvAiABbwHyAUYBIAHsAfQB/zAAAf8B8wFFAUcBFwH0 - Af8CbwH/AfQBRgFHAUUBvAH/MAAB/wG8AUUB4wEXAW8E9AFvAkcBRQEHAf8wAAH/AQcBbgLjARcBkwL/ - AZMBRgJHAUUBBwH/MAAB/wG8AW4BFgHjAW8B8AL/AfABbwIXAUUBBwH/MAAB/wHyAW4CFgEaAf8CkwH/ - ARoBFgHjAW4B8AH/MAAC/wHsAW8BlAH0AQcCbwEHAfQBlAFvAewC/zAAAv8BvAFuARYBkwQWAZMBFgFu - AbwC/zAAA/8B9wFuARYElAEWAW4B9wP/MAAE/wH3AW4EbwFuAe8E/zAABf8B8gH3AuwB9wHyBf8wABD/ - NQAGpgkAAf8BvAGuAoYBrgEHAf8EABf/AfAB9wHwAfQF/wMAAqYG0wKmBgABvAGGAYsErQGLAYYBBwMA - Av8B8wq8AfIB9Af/AfABSgEkAesB8AH0BP8CAAGmAtMCrALHAqwC0wGmBAABuwGLCK0BiwG7AgAB/wEH - AUoESwFKBEsBSgHrAfEG/wHyAeoBKwEsAUUB6wHxBP8BAAGmAdQDrAHHAv8BxwOsAdQBpgIAAbwBiwqt - AYsBBwEAAf8B7AExAzgBNwF5AVgEOAFLAQcF/wHzAW0BTANNAUUB7AHyA/8BAAGmAdQDrAHHAv8BxwOs - AdQBpgEAAf8BiwWtAv8FrQGLAfQB/wHtATEDOAF5Af8BmQQ4AUsBvAT/AfQB6wFMAk0BdQJNAUUB7QHz - Av8BrAHUA6wBsgGsAscFrAHUAawBvAatAv8GrQEHAf8B8AF0A1kBWAEaAXkDOAExAewB9AT/AewBSwFN - AZoBkwEaAZMBdQFNAUsBkgHzAf8BrAHUAawD0wHHAf8BxwWsAdQBrAG0Aa0FswL/BbMBrQG0Av8B7wF5 - A3oBUgFYAzgBUQEHBP8BkgFLAVMBUgGZAv8B9AF0AVMBTQHqAe8B9AGsAdoE0wHHAv8BxwSsAdoBrAGu - BrMC/wazAYsC/wHwARwCegF5AfABmQJZATcB7AT/AfABSwJ1ARoB9gP/AfMBlAF1AUwB6wHzAawB2wLT - AawDxwL/AccDrAHbAawBrga0Av8GtAGuA/8B7wF5AXoBeQH/AZkBegFZAVEBvAT/AbwBSwJ1AXQE/wHx - AXQBdQF0AesB9AGsAdsC0wHHAv8CxwL/AccCrAHbAawBtQa0ArMHtAP/AfEBHAHlAXkB/wGZAXoBeQHs - Bv8B7AFuAZQBGgHzA/8B8gGaAXUB6gEHAf8BrAHbAtMBxwL/AscC/wHHAqwB2wGsAbwGtAL/BrQBvAT/ - Ae8BeQGZAf8BmQF6AXMBvAb/AfQB7AF0AXUBBwLzAfEBkwF1AW4B7wL/AQABrAHbAdMBrQHHBP8BxwGs - AbIB2wGsAQAB/wHPAQkEtAL/BLQBCQHPBf8B8AEcAXkB8wGZAVgB7Qj/AfMB6wF0AZoBkwG8AZMBmgFu - AfcD/wEAAawB2wHTAdoBrATHAawC0wHbAawCAAHwAbQBCQO0ArMDtAEJAbQBvAEABf8B7wF5AZkBeQFz - AbwJ/wHxAW0BdAOaAW4B7QT/AgABrAHcAtoE0wHUAtwBrAQAAbwBtAIJAbsCtAG7AgkBtAG8AgAF/wHx - AXMB5QFSAe0L/wG8AW0CmgFzAewF/wMAAqwGCQKsBgAB8AG0AbUECQG1AbQB8AMABv8B7wFzAewB8wz/ - AQcB6wFuAewB9AX/BQAGrAkAAf8B8QEJArQBCQHwAf8EAAf/AfMP/wG8Ae8B9Ab/AUIBTQE+BwABPgMA - ASgDAAFAAwABIAMAAQEBAAEBBgABARYAA/+BAAH4AR8B8AEPBAAB4AEHAeABBwQAAcABAwHAAQMEAAGA - AQEBgAEBBAABgAEBNgABgAEBBgABgAEBAYABAQQAAcABAwHAAQMEAAHgAQcB4AEHBAAB+AEfAfABDwQA - Cw== - - - - True - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 190, 17 + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w + LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 + ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADg + DAAAAk1TRnQBSQFMAgEBBQEAAYABAAGAAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + AwABQAMAASADAAEBAQABCAYAAQgYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA + AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 + AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA + AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm + AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM + AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA + ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz + AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ + AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM + AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA + AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA + AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ + AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/ + AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA + AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm + ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ + Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz + AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA + AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM + AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM + ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM + Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA + AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM + AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ + AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz + AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm + AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw + AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD/wEABf8B8gHvAu0B7wHw + AfQE/zAABP8BBwHqAUUC6QFFAeoB7wHzA/8wAAP/Ae8BRQEgBPkBIAFFAfcB9AL/MAAC/wHwAUUBIAEl + ASAC+QEgASUBIAFFAQcC/zAAAv8B7AEgAUYB8gFvAiABbwHyAUYBIAHsAfQB/zAAAf8B8wFFAUcBFwH0 + Af8CbwH/AfQBRgFHAUUBvAH/MAAB/wG8AUUB4wEXAW8E9AFvAkcBRQEHAf8wAAH/AQcBbgLjARcBkwL/ + AZMBRgJHAUUBBwH/MAAB/wG8AW4BFgHjAW8B8AL/AfABbwIXAUUBBwH/MAAB/wHyAW4CFgEaAf8CkwH/ + ARoBFgHjAW4B8AH/MAAC/wHsAW8BlAH0AQcCbwEHAfQBlAFvAewC/zAAAv8BvAFuARYBkwQWAZMBFgFu + AbwC/zAAA/8B9wFuARYElAEWAW4B9wP/MAAE/wH3AW4EbwFuAe8E/zAABf8B8gH3AuwB9wHyBf8wABD/ + NQAGpgkAAf8BvAGuAoYBrgEHAf8EABf/AfAB9wHwAfQF/wMAAqYG0wKmBgABvAGGAYsErQGLAYYBBwMA + Av8B8wq8AfIB9Af/AfABSgEkAesB8AH0BP8CAAGmAtMCrALHAqwC0wGmBAABuwGLCK0BiwG7AgAB/wEH + AUoESwFKBEsBSgHrAfEG/wHyAeoBKwEsAUUB6wHxBP8BAAGmAdQDrAHHAv8BxwOsAdQBpgIAAbwBiwqt + AYsBBwEAAf8B7AExAzgBNwF5AVgEOAFLAQcF/wHzAW0BTANNAUUB7AHyA/8BAAGmAdQDrAHHAv8BxwOs + AdQBpgEAAf8BiwWtAv8FrQGLAfQB/wHtATEDOAF5Af8BmQQ4AUsBvAT/AfQB6wFMAk0BdQJNAUUB7QHz + Av8BrAHUA6wBsgGsAscFrAHUAawBvAatAv8GrQEHAf8B8AF0A1kBWAEaAXkDOAExAewB9AT/AewBSwFN + AZoBkwEaAZMBdQFNAUsBkgHzAf8BrAHUAawD0wHHAf8BxwWsAdQBrAG0Aa0FswL/BbMBrQG0Av8B7wF5 + A3oBUgFYAzgBUQEHBP8BkgFLAVMBUgGZAv8B9AF0AVMBTQHqAe8B9AGsAdoE0wHHAv8BxwSsAdoBrAGu + BrMC/wazAYsC/wHwARwCegF5AfABmQJZATcB7AT/AfABSwJ1ARoB9gP/AfMBlAF1AUwB6wHzAawB2wLT + AawDxwL/AccDrAHbAawBrga0Av8GtAGuA/8B7wF5AXoBeQH/AZkBegFZAVEBvAT/AbwBSwJ1AXQE/wHx + AXQBdQF0AesB9AGsAdsC0wHHAv8CxwL/AccCrAHbAawBtQa0ArMHtAP/AfEBHAHlAXkB/wGZAXoBeQHs + Bv8B7AFuAZQBGgHzA/8B8gGaAXUB6gEHAf8BrAHbAtMBxwL/AscC/wHHAqwB2wGsAbwGtAL/BrQBvAT/ + Ae8BeQGZAf8BmQF6AXMBvAb/AfQB7AF0AXUBBwLzAfEBkwF1AW4B7wL/AQABrAHbAdMBrQHHBP8BxwGs + AbIB2wGsAQAB/wHPAQkEtAL/BLQBCQHPBf8B8AEcAXkB8wGZAVgB7Qj/AfMB6wF0AZoBkwG8AZMBmgFu + AfcD/wEAAawB2wHTAdoBrATHAawC0wHbAawCAAHwAbQBCQO0ArMDtAEJAbQBvAEABf8B7wF5AZkBeQFz + AbwJ/wHxAW0BdAOaAW4B7QT/AgABrAHcAtoE0wHUAtwBrAQAAbwBtAIJAbsCtAG7AgkBtAG8AgAF/wHx + AXMB5QFSAe0L/wG8AW0CmgFzAewF/wMAAqwGCQKsBgAB8AG0AbUECQG1AbQB8AMABv8B7wFzAewB8wz/ + AQcB6wFuAewB9AX/BQAGrAkAAf8B8QEJArQBCQHwAf8EAAf/AfMP/wG8Ae8B9Ab/AUIBTQE+BwABPgMA + ASgDAAFAAwABIAMAAQEBAAEBBgABARYAA/+BAAH4AR8B8AEPBAAB4AEHAeABBwQAAcABAwHAAQMEAAGA + AQEBgAEBBAABgAEBNgABgAEBBgABgAEBAYABAQQAAcABAwHAAQMEAAHgAQcB4AEHBAAB+AEfAfABDwQA + Cw== + + + + True + \ No newline at end of file diff --git a/CxViewerAction/Views/DockedView/ScanProcessCtrl.Designer.cs b/CxActionShared/Views/DockedView/ScanProcessCtrl.Designer.cs similarity index 97% rename from CxViewerAction/Views/DockedView/ScanProcessCtrl.Designer.cs rename to CxActionShared/Views/DockedView/ScanProcessCtrl.Designer.cs index 94cb45b7..23169527 100644 --- a/CxViewerAction/Views/DockedView/ScanProcessCtrl.Designer.cs +++ b/CxActionShared/Views/DockedView/ScanProcessCtrl.Designer.cs @@ -1,95 +1,95 @@ -namespace CxViewerAction.Views.DockedView -{ - partial class ScanProcessCtrl - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.progressTotal = new System.Windows.Forms.ProgressBar(); - this.label1 = new System.Windows.Forms.Label(); - this.lblCurrentIterationProgress = new System.Windows.Forms.Label(); - this.lblProjectName = new System.Windows.Forms.Label(); - this.SuspendLayout(); - // - // progressTotal - // - this.progressTotal.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.progressTotal.Location = new System.Drawing.Point(3, 20); - this.progressTotal.Name = "progressTotal"; - this.progressTotal.Size = new System.Drawing.Size(492, 23); - this.progressTotal.TabIndex = 2; - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(3, 46); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(78, 13); - this.label1.TabIndex = 3; - this.label1.Text = "Scan progress:"; - // - // lblCurrentIterationProgress - // - this.lblCurrentIterationProgress.AutoSize = true; - this.lblCurrentIterationProgress.Location = new System.Drawing.Point(76, 46); - this.lblCurrentIterationProgress.Name = "lblCurrentIterationProgress"; - this.lblCurrentIterationProgress.Size = new System.Drawing.Size(84, 13); - this.lblCurrentIterationProgress.TabIndex = 4; - this.lblCurrentIterationProgress.Text = "Waiting server..."; - // - // lblProjectName - // - this.lblProjectName.AutoSize = true; - this.lblProjectName.Location = new System.Drawing.Point(3, 4); - this.lblProjectName.Name = "lblProjectName"; - this.lblProjectName.Size = new System.Drawing.Size(84, 13); - this.lblProjectName.TabIndex = 6; - this.lblProjectName.Text = "Waiting server..."; - // - // ScanProcessCtrl - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.Controls.Add(this.lblProjectName); - this.Controls.Add(this.lblCurrentIterationProgress); - this.Controls.Add(this.label1); - this.Controls.Add(this.progressTotal); - this.Name = "ScanProcessCtrl"; - this.Size = new System.Drawing.Size(498, 74); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.ProgressBar progressTotal; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.Label lblCurrentIterationProgress; - private System.Windows.Forms.Label lblProjectName; - } -} +namespace CxViewerAction.Views.DockedView +{ + partial class ScanProcessCtrl + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.progressTotal = new System.Windows.Forms.ProgressBar(); + this.label1 = new System.Windows.Forms.Label(); + this.lblCurrentIterationProgress = new System.Windows.Forms.Label(); + this.lblProjectName = new System.Windows.Forms.Label(); + this.SuspendLayout(); + // + // progressTotal + // + this.progressTotal.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.progressTotal.Location = new System.Drawing.Point(3, 20); + this.progressTotal.Name = "progressTotal"; + this.progressTotal.Size = new System.Drawing.Size(492, 23); + this.progressTotal.TabIndex = 2; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(3, 46); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(78, 13); + this.label1.TabIndex = 3; + this.label1.Text = "Scan progress:"; + // + // lblCurrentIterationProgress + // + this.lblCurrentIterationProgress.AutoSize = true; + this.lblCurrentIterationProgress.Location = new System.Drawing.Point(76, 46); + this.lblCurrentIterationProgress.Name = "lblCurrentIterationProgress"; + this.lblCurrentIterationProgress.Size = new System.Drawing.Size(84, 13); + this.lblCurrentIterationProgress.TabIndex = 4; + this.lblCurrentIterationProgress.Text = "Waiting server..."; + // + // lblProjectName + // + this.lblProjectName.AutoSize = true; + this.lblProjectName.Location = new System.Drawing.Point(3, 4); + this.lblProjectName.Name = "lblProjectName"; + this.lblProjectName.Size = new System.Drawing.Size(84, 13); + this.lblProjectName.TabIndex = 6; + this.lblProjectName.Text = "Waiting server..."; + // + // ScanProcessCtrl + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.lblProjectName); + this.Controls.Add(this.lblCurrentIterationProgress); + this.Controls.Add(this.label1); + this.Controls.Add(this.progressTotal); + this.Name = "ScanProcessCtrl"; + this.Size = new System.Drawing.Size(498, 74); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.ProgressBar progressTotal; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label lblCurrentIterationProgress; + private System.Windows.Forms.Label lblProjectName; + } +} diff --git a/CxViewerAction/Views/DockedView/ScanProcessCtrl.cs b/CxActionShared/Views/DockedView/ScanProcessCtrl.cs similarity index 96% rename from CxViewerAction/Views/DockedView/ScanProcessCtrl.cs rename to CxActionShared/Views/DockedView/ScanProcessCtrl.cs index f7b4d247..6a7e50bd 100644 --- a/CxViewerAction/Views/DockedView/ScanProcessCtrl.cs +++ b/CxActionShared/Views/DockedView/ScanProcessCtrl.cs @@ -1,176 +1,176 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Drawing; -using System.Data; - -using System.Text; -using System.Windows.Forms; -using CxViewerAction.Entities.FormEntity; -using CxViewerAction.Entities; - -namespace CxViewerAction.Views.DockedView -{ - public partial class ScanProcessCtrl : UserControl, IScanView - { - #region [Private members] - - private EntityId _entityId; - private bool _visibility; - - #endregion - - #region [Delegates] - private delegate void UpdateTextDelegate(ScanProgress value); - private delegate void UpdateProgressDelegate(ScanProgress value); - private delegate void IncrementProgressDelegate(int value); - private delegate void CloseViewDelegate(); - #endregion - - #region [Private Constants] - private const string _lblCurrentIterationNameFormat = "{0} \"{1}\""; - private const string _lblCurrentIterationProgressFormat = "{0} {1}"; - private const string _lblProjectNameFormat = "Process for {0}"; - private const string _notReadyText = "Waiting server..."; - #endregion - - #region [Public Properties] - public EntityId EntityId - { - get { return _entityId; } - set { _entityId = value; } - } - #endregion - - public ScanProcessCtrl() - { - InitializeComponent(); - } - - public DialogResult ShowModalView() - { - return DialogResult.None; - } - - public DialogResult ShowModalView(IView parent) - { - return DialogResult.None; - } - - public void ShowView() - { - this.Show(); - } - - public void ShowView(IView parent) - { - } - - public void CloseView() - { - CloseViewDelegate del = new CloseViewDelegate(CloseDialogView); - Invoke(del); - } - - public ScanProgress Progress - { - set - { - UpdateTextDelegate del1 = new UpdateTextDelegate(UpdateProjectName); - Invoke(del1, value); - - UpdateTextDelegate del2 = new UpdateTextDelegate(UpdateCurrentIterationName); - Invoke(del2, value); - - UpdateTextDelegate del3 = new UpdateTextDelegate(UpdateCurrentIterationProgress); - Invoke(del3, value); - - UpdateProgressDelegate del4 = new UpdateProgressDelegate(UpdateProgress); - Invoke(del4, value); - } - } - - public bool Visibility - { - get { return _visibility; } - set { _visibility = value; } - } - - public bool AlwaysInBackground - { - get { return false; } - } - - public void Increment(int value) - { - IncrementProgressDelegate del1 = new IncrementProgressDelegate(IncrementProgress); - Invoke(del1, value); - - UpdateTextDelegate del2 = new UpdateTextDelegate(UpdateCurrentIterationProgress); - Invoke(del2, new ScanProgress(progressTotal.Maximum, progressTotal.Maximum, progressTotal.Value)); - } - - public void Clear() - { - Progress = new ScanProgress(_notReadyText, string.Empty, string.Empty, 0, 100, 0); - } - - public EventHandler RunInBackgroundHandler - { - get { return null; } - set { } - } - - public EventHandler CancelHandler - { - get { return null; } - set { } - } - - public EventHandler DetailsHandler - { - get { return null; } - set { } - } - - #region [Private methods] - private decimal CalcPercent(int current, int max) - { - return Math.Round((decimal)(current / max) * 100); - } - - private void UpdateCurrentIterationName(ScanProgress value) - { - } - - private void UpdateProjectName(ScanProgress value) - { - if (value.ProjectName == _notReadyText) - lblProjectName.Text = _notReadyText; - else - lblProjectName.Text = string.Format(_lblProjectNameFormat, value.ProjectName); - } - - private void UpdateCurrentIterationProgress(ScanProgress value) - { - lblCurrentIterationProgress.Text = string.Format(_lblCurrentIterationProgressFormat, value.RunStatus, value.CurrentStageMessage); - } - - private void UpdateProgress(ScanProgress value) - { - progressTotal.Minimum = value.StartPosition; - progressTotal.Maximum = value.EndPosition; - progressTotal.Value = value.CurrentPosition; - } - - private void IncrementProgress(int value) - { - progressTotal.Increment(value); - } - - private void CloseDialogView() - { - } - #endregion - } -} +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Data; + +using System.Text; +using System.Windows.Forms; +using CxViewerAction.Entities.FormEntity; +using CxViewerAction.Entities; + +namespace CxViewerAction.Views.DockedView +{ + public partial class ScanProcessCtrl : UserControl, IScanView + { + #region [Private members] + + private EntityId _entityId; + private bool _visibility; + + #endregion + + #region [Delegates] + private delegate void UpdateTextDelegate(ScanProgress value); + private delegate void UpdateProgressDelegate(ScanProgress value); + private delegate void IncrementProgressDelegate(int value); + private delegate void CloseViewDelegate(); + #endregion + + #region [Private Constants] + private const string _lblCurrentIterationNameFormat = "{0} \"{1}\""; + private const string _lblCurrentIterationProgressFormat = "{0} {1}"; + private const string _lblProjectNameFormat = "Process for {0}"; + private const string _notReadyText = "Waiting server..."; + #endregion + + #region [Public Properties] + public EntityId EntityId + { + get { return _entityId; } + set { _entityId = value; } + } + #endregion + + public ScanProcessCtrl() + { + InitializeComponent(); + } + + public DialogResult ShowModalView() + { + return DialogResult.None; + } + + public DialogResult ShowModalView(IView parent) + { + return DialogResult.None; + } + + public void ShowView() + { + this.Show(); + } + + public void ShowView(IView parent) + { + } + + public void CloseView() + { + CloseViewDelegate del = new CloseViewDelegate(CloseDialogView); + Invoke(del); + } + + public ScanProgress Progress + { + set + { + UpdateTextDelegate del1 = new UpdateTextDelegate(UpdateProjectName); + Invoke(del1, value); + + UpdateTextDelegate del2 = new UpdateTextDelegate(UpdateCurrentIterationName); + Invoke(del2, value); + + UpdateTextDelegate del3 = new UpdateTextDelegate(UpdateCurrentIterationProgress); + Invoke(del3, value); + + UpdateProgressDelegate del4 = new UpdateProgressDelegate(UpdateProgress); + Invoke(del4, value); + } + } + + public bool Visibility + { + get { return _visibility; } + set { _visibility = value; } + } + + public bool AlwaysInBackground + { + get { return false; } + } + + public void Increment(int value) + { + IncrementProgressDelegate del1 = new IncrementProgressDelegate(IncrementProgress); + Invoke(del1, value); + + UpdateTextDelegate del2 = new UpdateTextDelegate(UpdateCurrentIterationProgress); + Invoke(del2, new ScanProgress(progressTotal.Maximum, progressTotal.Maximum, progressTotal.Value)); + } + + public void Clear() + { + Progress = new ScanProgress(_notReadyText, string.Empty, string.Empty, 0, 100, 0); + } + + public EventHandler RunInBackgroundHandler + { + get { return null; } + set { } + } + + public EventHandler CancelHandler + { + get { return null; } + set { } + } + + public EventHandler DetailsHandler + { + get { return null; } + set { } + } + + #region [Private methods] + private decimal CalcPercent(int current, int max) + { + return Math.Round((decimal)(current / max) * 100); + } + + private void UpdateCurrentIterationName(ScanProgress value) + { + } + + private void UpdateProjectName(ScanProgress value) + { + if (value.ProjectName == _notReadyText) + lblProjectName.Text = _notReadyText; + else + lblProjectName.Text = string.Format(_lblProjectNameFormat, value.ProjectName); + } + + private void UpdateCurrentIterationProgress(ScanProgress value) + { + lblCurrentIterationProgress.Text = string.Format(_lblCurrentIterationProgressFormat, value.RunStatus, value.CurrentStageMessage); + } + + private void UpdateProgress(ScanProgress value) + { + progressTotal.Minimum = value.StartPosition; + progressTotal.Maximum = value.EndPosition; + progressTotal.Value = value.CurrentPosition; + } + + private void IncrementProgress(int value) + { + progressTotal.Increment(value); + } + + private void CloseDialogView() + { + } + #endregion + } +} diff --git a/CxViewerAction/Views/DockedView/ScanProcessCtrl.resx b/CxActionShared/Views/DockedView/ScanProcessCtrl.resx similarity index 97% rename from CxViewerAction/Views/DockedView/ScanProcessCtrl.resx rename to CxActionShared/Views/DockedView/ScanProcessCtrl.resx index 5ea0895e..7080a7d1 100644 --- a/CxViewerAction/Views/DockedView/ScanProcessCtrl.resx +++ b/CxActionShared/Views/DockedView/ScanProcessCtrl.resx @@ -1,120 +1,120 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + \ No newline at end of file diff --git a/CxViewerAction/Views/EditRemarkPopUp.Designer.cs b/CxActionShared/Views/EditRemarkPopUp.Designer.cs similarity index 97% rename from CxViewerAction/Views/EditRemarkPopUp.Designer.cs rename to CxActionShared/Views/EditRemarkPopUp.Designer.cs index fa1695b5..9ccd2c30 100644 --- a/CxViewerAction/Views/EditRemarkPopUp.Designer.cs +++ b/CxActionShared/Views/EditRemarkPopUp.Designer.cs @@ -1,125 +1,125 @@ -namespace CxViewerAction.Views -{ - partial class EditRemarkPopUp - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(EditRemarkPopUp)); - this.textBox = new System.Windows.Forms.TextBox(); - this.okButton = new System.Windows.Forms.Button(); - this.cancelButton = new System.Windows.Forms.Button(); - this.label1 = new System.Windows.Forms.Label(); - this.txtCommentHistory = new System.Windows.Forms.TextBox(); - this.label2 = new System.Windows.Forms.Label(); - this.SuspendLayout(); - // - // textBox - // - this.textBox.Location = new System.Drawing.Point(12, 29); - this.textBox.Multiline = true; - this.textBox.Name = "textBox"; - this.textBox.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.textBox.Size = new System.Drawing.Size(742, 171); - this.textBox.TabIndex = 0; - // - // okButton - // - this.okButton.Location = new System.Drawing.Point(598, 206); - this.okButton.Name = "okButton"; - this.okButton.Size = new System.Drawing.Size(75, 23); - this.okButton.TabIndex = 1; - this.okButton.Text = "OK"; - this.okButton.UseVisualStyleBackColor = true; - // - // cancelButton - // - this.cancelButton.Location = new System.Drawing.Point(679, 206); - this.cancelButton.Name = "cancelButton"; - this.cancelButton.Size = new System.Drawing.Size(75, 23); - this.cancelButton.TabIndex = 2; - this.cancelButton.Text = "Cancel"; - this.cancelButton.UseVisualStyleBackColor = true; - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(13, 13); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(104, 13); - this.label1.TabIndex = 3; - this.label1.Text = "Enter your comment:"; - // - // txtCommentHistory - // - this.txtCommentHistory.BackColor = System.Drawing.Color.White; - this.txtCommentHistory.Location = new System.Drawing.Point(12, 253); - this.txtCommentHistory.Multiline = true; - this.txtCommentHistory.Name = "txtCommentHistory"; - this.txtCommentHistory.ReadOnly = true; - this.txtCommentHistory.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.txtCommentHistory.Size = new System.Drawing.Size(742, 171); - this.txtCommentHistory.TabIndex = 4; - // - // label2 - // - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(9, 237); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(94, 13); - this.label2.TabIndex = 5; - this.label2.Text = "Comments History:"; - // - // EditRemarkPopUp - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(766, 436); - this.Controls.Add(this.label2); - this.Controls.Add(this.txtCommentHistory); - this.Controls.Add(this.label1); - this.Controls.Add(this.cancelButton); - this.Controls.Add(this.okButton); - this.Controls.Add(this.textBox); - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.Name = "EditRemarkPopUp"; - this.Text = "Comment Editor"; - this.Load += new System.EventHandler(this.EditRemarkPopUp_Load); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.TextBox textBox; - private System.Windows.Forms.Button okButton; - private System.Windows.Forms.Button cancelButton; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.TextBox txtCommentHistory; - private System.Windows.Forms.Label label2; - } +namespace CxViewerAction.Views +{ + partial class EditRemarkPopUp + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(EditRemarkPopUp)); + this.textBox = new System.Windows.Forms.TextBox(); + this.okButton = new System.Windows.Forms.Button(); + this.cancelButton = new System.Windows.Forms.Button(); + this.label1 = new System.Windows.Forms.Label(); + this.txtCommentHistory = new System.Windows.Forms.TextBox(); + this.label2 = new System.Windows.Forms.Label(); + this.SuspendLayout(); + // + // textBox + // + this.textBox.Location = new System.Drawing.Point(12, 29); + this.textBox.Multiline = true; + this.textBox.Name = "textBox"; + this.textBox.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; + this.textBox.Size = new System.Drawing.Size(742, 171); + this.textBox.TabIndex = 0; + // + // okButton + // + this.okButton.Location = new System.Drawing.Point(598, 206); + this.okButton.Name = "okButton"; + this.okButton.Size = new System.Drawing.Size(75, 23); + this.okButton.TabIndex = 1; + this.okButton.Text = "OK"; + this.okButton.UseVisualStyleBackColor = true; + // + // cancelButton + // + this.cancelButton.Location = new System.Drawing.Point(679, 206); + this.cancelButton.Name = "cancelButton"; + this.cancelButton.Size = new System.Drawing.Size(75, 23); + this.cancelButton.TabIndex = 2; + this.cancelButton.Text = "Cancel"; + this.cancelButton.UseVisualStyleBackColor = true; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(13, 13); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(104, 13); + this.label1.TabIndex = 3; + this.label1.Text = "Enter your comment:"; + // + // txtCommentHistory + // + this.txtCommentHistory.BackColor = System.Drawing.Color.White; + this.txtCommentHistory.Location = new System.Drawing.Point(12, 253); + this.txtCommentHistory.Multiline = true; + this.txtCommentHistory.Name = "txtCommentHistory"; + this.txtCommentHistory.ReadOnly = true; + this.txtCommentHistory.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; + this.txtCommentHistory.Size = new System.Drawing.Size(742, 171); + this.txtCommentHistory.TabIndex = 4; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(9, 237); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(94, 13); + this.label2.TabIndex = 5; + this.label2.Text = "Comments History:"; + // + // EditRemarkPopUp + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(766, 436); + this.Controls.Add(this.label2); + this.Controls.Add(this.txtCommentHistory); + this.Controls.Add(this.label1); + this.Controls.Add(this.cancelButton); + this.Controls.Add(this.okButton); + this.Controls.Add(this.textBox); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Name = "EditRemarkPopUp"; + this.Text = "Comment Editor"; + this.Load += new System.EventHandler(this.EditRemarkPopUp_Load); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.TextBox textBox; + private System.Windows.Forms.Button okButton; + private System.Windows.Forms.Button cancelButton; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.TextBox txtCommentHistory; + private System.Windows.Forms.Label label2; + } } \ No newline at end of file diff --git a/CxViewerAction/Views/EditRemarkPopUp.cs b/CxActionShared/Views/EditRemarkPopUp.cs similarity index 55% rename from CxViewerAction/Views/EditRemarkPopUp.cs rename to CxActionShared/Views/EditRemarkPopUp.cs index dba5774d..18447d81 100644 --- a/CxViewerAction/Views/EditRemarkPopUp.cs +++ b/CxActionShared/Views/EditRemarkPopUp.cs @@ -1,46 +1,63 @@ -using System; -using System.Windows.Forms; - -namespace CxViewerAction.Views -{ - public partial class EditRemarkPopUp : Form - { - private string remark = string.Empty; - public string Remark - { - get { return remark; } - } - - public EditRemarkPopUp(string currentRemark, string historyComments) - { - InitializeComponent(); - textBox.Text = currentRemark; - txtCommentHistory.Text = historyComments; - } - - - private void EditRemarkPopUp_Load(object sender, EventArgs e) - { - MinimizeBox = false; - MaximizeBox = false; - MinimumSize = MaximumSize = Size; - AcceptButton = okButton; - CancelButton = cancelButton; - - okButton.Click += (sender1, e1) => - { - DialogResult = DialogResult.OK; - Close(); - }; - - cancelButton.Click += (sender1, e1) => - { - DialogResult = DialogResult.Cancel; - Close(); - }; - FormClosing += (sender1, e1) => { remark = textBox.Text; }; - } - - - } -} +using System; +using System.Windows.Forms; +using Common; + +namespace CxViewerAction.Views +{ + public partial class EditRemarkPopUp : Form + { + private string remark = string.Empty; + private bool isCommentHistoryVisible = true; + public string Remark + { + get { return remark; } + } + + public EditRemarkPopUp(string currentRemark, string historyComments, bool _isCommentHistoryVisible) + { + InitializeComponent(); + textBox.Text = currentRemark; + txtCommentHistory.Text = historyComments; + isCommentHistoryVisible = _isCommentHistoryVisible; + if (!_isCommentHistoryVisible) + { + label2.Visible = false; + txtCommentHistory.Visible = false; + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 7F); + this.label1.Text = "Enter mandatory comment for result state change :"; + } + else + { + this.label1.Text = "Enter your comment:"; + } + } + + + private void EditRemarkPopUp_Load(object sender, EventArgs e) + { + Logger.Create().Info("Editing remark pop up."); + MinimizeBox = false; + MaximizeBox = false; + MinimumSize = MaximumSize = Size; + AcceptButton = okButton; + CancelButton = cancelButton; + + okButton.Click += (sender1, e1) => + { + if (!String.IsNullOrWhiteSpace(textBox.Text)) + DialogResult = DialogResult.OK; + else + MessageBox.Show("Please enter comment", "Error", MessageBoxButtons.OK); + }; + + cancelButton.Click += (sender1, e1) => + { + DialogResult = DialogResult.Cancel; + Close(); + }; + FormClosing += (sender1, e1) => { remark = textBox.Text; }; + } + + + } +} diff --git a/CxActionShared/Views/EditRemarkPopUp.resx b/CxActionShared/Views/EditRemarkPopUp.resx new file mode 100644 index 00000000..71628b47 --- /dev/null +++ b/CxActionShared/Views/EditRemarkPopUp.resx @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\Checkmarx-X1.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/CxViewerAction/Views/ErrorFrm.Designer.cs b/CxActionShared/Views/ErrorFrm.Designer.cs similarity index 97% rename from CxViewerAction/Views/ErrorFrm.Designer.cs rename to CxActionShared/Views/ErrorFrm.Designer.cs index 74d853dc..332ad942 100644 --- a/CxViewerAction/Views/ErrorFrm.Designer.cs +++ b/CxActionShared/Views/ErrorFrm.Designer.cs @@ -1,103 +1,103 @@ -namespace CxViewerAction.Views -{ - partial class ErrorFrm - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.txtErrorDescription = new System.Windows.Forms.TextBox(); - this.btnReconnect = new System.Windows.Forms.Button(); - this.btnRelogin = new System.Windows.Forms.Button(); - this.btnCancel = new System.Windows.Forms.Button(); - this.SuspendLayout(); - // - // txtErrorDescription - // - this.txtErrorDescription.Location = new System.Drawing.Point(13, 13); - this.txtErrorDescription.Multiline = true; - this.txtErrorDescription.Name = "txtErrorDescription"; - this.txtErrorDescription.ReadOnly = true; - this.txtErrorDescription.Size = new System.Drawing.Size(298, 123); - this.txtErrorDescription.TabIndex = 0; - // - // btnReconnect - // - this.btnReconnect.DialogResult = System.Windows.Forms.DialogResult.OK; - this.btnReconnect.Location = new System.Drawing.Point(74, 167); - this.btnReconnect.Name = "btnReconnect"; - this.btnReconnect.Size = new System.Drawing.Size(75, 23); - this.btnReconnect.TabIndex = 1; - this.btnReconnect.Text = "Reconnect"; - this.btnReconnect.UseVisualStyleBackColor = true; - // - // btnRelogin - // - this.btnRelogin.DialogResult = System.Windows.Forms.DialogResult.Retry; - this.btnRelogin.Location = new System.Drawing.Point(155, 167); - this.btnRelogin.Name = "btnRelogin"; - this.btnRelogin.Size = new System.Drawing.Size(75, 23); - this.btnRelogin.TabIndex = 2; - this.btnRelogin.Text = "Relogin"; - this.btnRelogin.UseVisualStyleBackColor = true; - // - // btnCancel - // - this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.btnCancel.Location = new System.Drawing.Point(236, 167); - this.btnCancel.Name = "btnCancel"; - this.btnCancel.Size = new System.Drawing.Size(75, 23); - this.btnCancel.TabIndex = 3; - this.btnCancel.Text = "Cancel"; - this.btnCancel.UseVisualStyleBackColor = true; - // - // ErrorFrm - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.CancelButton = this.btnCancel; - this.ClientSize = new System.Drawing.Size(323, 202); - this.ControlBox = false; - this.Controls.Add(this.btnCancel); - this.Controls.Add(this.btnRelogin); - this.Controls.Add(this.btnReconnect); - this.Controls.Add(this.txtErrorDescription); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - this.Name = "ErrorFrm"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; - this.Text = "Error occured"; - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.TextBox txtErrorDescription; - private System.Windows.Forms.Button btnReconnect; - private System.Windows.Forms.Button btnRelogin; - private System.Windows.Forms.Button btnCancel; - } +namespace CxViewerAction.Views +{ + partial class ErrorFrm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.txtErrorDescription = new System.Windows.Forms.TextBox(); + this.btnReconnect = new System.Windows.Forms.Button(); + this.btnRelogin = new System.Windows.Forms.Button(); + this.btnCancel = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // txtErrorDescription + // + this.txtErrorDescription.Location = new System.Drawing.Point(13, 13); + this.txtErrorDescription.Multiline = true; + this.txtErrorDescription.Name = "txtErrorDescription"; + this.txtErrorDescription.ReadOnly = true; + this.txtErrorDescription.Size = new System.Drawing.Size(298, 123); + this.txtErrorDescription.TabIndex = 0; + // + // btnReconnect + // + this.btnReconnect.DialogResult = System.Windows.Forms.DialogResult.OK; + this.btnReconnect.Location = new System.Drawing.Point(74, 167); + this.btnReconnect.Name = "btnReconnect"; + this.btnReconnect.Size = new System.Drawing.Size(75, 23); + this.btnReconnect.TabIndex = 1; + this.btnReconnect.Text = "Reconnect"; + this.btnReconnect.UseVisualStyleBackColor = true; + // + // btnRelogin + // + this.btnRelogin.DialogResult = System.Windows.Forms.DialogResult.Retry; + this.btnRelogin.Location = new System.Drawing.Point(155, 167); + this.btnRelogin.Name = "btnRelogin"; + this.btnRelogin.Size = new System.Drawing.Size(75, 23); + this.btnRelogin.TabIndex = 2; + this.btnRelogin.Text = "Relogin"; + this.btnRelogin.UseVisualStyleBackColor = true; + // + // btnCancel + // + this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.btnCancel.Location = new System.Drawing.Point(236, 167); + this.btnCancel.Name = "btnCancel"; + this.btnCancel.Size = new System.Drawing.Size(75, 23); + this.btnCancel.TabIndex = 3; + this.btnCancel.Text = "Cancel"; + this.btnCancel.UseVisualStyleBackColor = true; + // + // ErrorFrm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.CancelButton = this.btnCancel; + this.ClientSize = new System.Drawing.Size(323, 202); + this.ControlBox = false; + this.Controls.Add(this.btnCancel); + this.Controls.Add(this.btnRelogin); + this.Controls.Add(this.btnReconnect); + this.Controls.Add(this.txtErrorDescription); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.Name = "ErrorFrm"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Error occured"; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.TextBox txtErrorDescription; + private System.Windows.Forms.Button btnReconnect; + private System.Windows.Forms.Button btnRelogin; + private System.Windows.Forms.Button btnCancel; + } } \ No newline at end of file diff --git a/CxViewerAction/Views/ErrorFrm.cs b/CxActionShared/Views/ErrorFrm.cs similarity index 81% rename from CxViewerAction/Views/ErrorFrm.cs rename to CxActionShared/Views/ErrorFrm.cs index 76933bd4..d723ce8c 100644 --- a/CxViewerAction/Views/ErrorFrm.cs +++ b/CxActionShared/Views/ErrorFrm.cs @@ -1,30 +1,32 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; - -using System.Text; -using System.Windows.Forms; -using CxViewerAction.Helpers; - -namespace CxViewerAction.Views -{ - public partial class ErrorFrm : Form - { - public ErrorFrm(string errorDescription, EventHandler onReconnect, EventHandler onRelogin) - { - InitializeComponent(); - - txtErrorDescription.Text = errorDescription; - - btnReconnect.Click += new EventHandler(delegate(object o, EventArgs e) { Visible = false; }); - btnReconnect.Click += onReconnect; - btnReconnect.Click += new EventHandler(delegate(object o, EventArgs e) { Visible = true; }); - - //btnRelogin.Click += new EventHandler(delegate(object o, EventArgs e) { this.DialogResult = DialogResult.Cancel; }); - //if (onRelogin != null) - // btnRelogin.Click += onRelogin; - } - } -} +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; + +using System.Text; +using System.Windows.Forms; +using CxViewerAction.Helpers; +using Common; + +namespace CxViewerAction.Views +{ + public partial class ErrorFrm : Form + { + public ErrorFrm(string errorDescription, EventHandler onReconnect, EventHandler onRelogin) + { + Logger.Create().Info("Error form loading."); + InitializeComponent(); + + txtErrorDescription.Text = errorDescription; + Logger.Create().Info("Reconnect on button click event calling."); + btnReconnect.Click += new EventHandler(delegate(object o, EventArgs e) { Visible = false; }); + btnReconnect.Click += onReconnect; + btnReconnect.Click += new EventHandler(delegate(object o, EventArgs e) { Visible = true; }); + Logger.Create().Info("Reconnect on button click event called."); + //btnRelogin.Click += new EventHandler(delegate(object o, EventArgs e) { this.DialogResult = DialogResult.Cancel; }); + //if (onRelogin != null) + // btnRelogin.Click += onRelogin; + } + } +} diff --git a/CxViewerAction/Views/ErrorFrm.resx b/CxActionShared/Views/ErrorFrm.resx similarity index 97% rename from CxViewerAction/Views/ErrorFrm.resx rename to CxActionShared/Views/ErrorFrm.resx index ff31a6db..19dc0dd8 100644 --- a/CxViewerAction/Views/ErrorFrm.resx +++ b/CxActionShared/Views/ErrorFrm.resx @@ -1,120 +1,120 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + \ No newline at end of file diff --git a/CxViewerAction/Views/IBindProjectView.cs b/CxActionShared/Views/IBindProjectView.cs similarity index 96% rename from CxViewerAction/Views/IBindProjectView.cs rename to CxActionShared/Views/IBindProjectView.cs index 449169a9..01dd7b00 100644 --- a/CxViewerAction/Views/IBindProjectView.cs +++ b/CxActionShared/Views/IBindProjectView.cs @@ -1,18 +1,18 @@ -using System; -using System.Collections.Generic; -using CxViewerAction.Entities; -using CxViewerAction.CxVSWebService; - -namespace CxViewerAction.Views -{ - /// - /// Represent upload view obligatory methods and properties - /// - public interface IBindProjectView : IView - { - ProjectDisplayData[] ProjectList { get;set;} - ProjectDisplayData SelectedProject { get;} - bool isPublic { get; } - - } -} +using System; +using System.Collections.Generic; +using CxViewerAction.Entities; +using CxViewerAction.CxVSWebService; + +namespace CxViewerAction.Views +{ + /// + /// Represent upload view obligatory methods and properties + /// + public interface IBindProjectView : IView + { + ProjectDisplayData[] ProjectList { get;set;} + ProjectDisplayData SelectedProject { get;} + bool isPublic { get; } + + } +} diff --git a/CxViewerAction/Views/ILoginView.cs b/CxActionShared/Views/ILoginView.cs similarity index 96% rename from CxViewerAction/Views/ILoginView.cs rename to CxActionShared/Views/ILoginView.cs index 702d41aa..10abf765 100644 --- a/CxViewerAction/Views/ILoginView.cs +++ b/CxActionShared/Views/ILoginView.cs @@ -1,27 +1,27 @@ -using System; -using System.Collections.Generic; -using CxViewerAction.Entities; - -namespace CxViewerAction.Views -{ - /// - /// Represent login view obligatory properties and methods - /// - public interface ILoginView : IView - { - /// - /// Get or set entity identitifier - /// - EntityId EntityId { get; set; } - - /// - /// Gets or sets to use secured connection - /// - bool Ssl { get; set; } - - /// - /// Get or set server domain name (i.e. example.com) - /// - string ServerDomain { get; set; } - } -} +using System; +using System.Collections.Generic; +using CxViewerAction.Entities; + +namespace CxViewerAction.Views +{ + /// + /// Represent login view obligatory properties and methods + /// + public interface ILoginView : IView + { + /// + /// Get or set entity identitifier + /// + EntityId EntityId { get; set; } + + /// + /// Gets or sets to use secured connection + /// + bool Ssl { get; set; } + + /// + /// Get or set server domain name (i.e. example.com) + /// + string ServerDomain { get; set; } + } +} diff --git a/CxViewerAction/Views/IScanView.cs b/CxActionShared/Views/IScanView.cs similarity index 96% rename from CxViewerAction/Views/IScanView.cs rename to CxActionShared/Views/IScanView.cs index f50023fa..287b1bca 100644 --- a/CxViewerAction/Views/IScanView.cs +++ b/CxActionShared/Views/IScanView.cs @@ -1,67 +1,67 @@ -using System; -using CxViewerAction.Entities; -using CxViewerAction.Entities.FormEntity; - -namespace CxViewerAction.Views -{ - /// - /// Represent scan view obligatory properties and methods - /// - public interface IScanView : IView - { - #region [Properties] - - /// - /// Get or set entity identifier - /// - EntityId EntityId { get; set; } - - /// - /// Get or set scan progress - /// - ScanProgress Progress { set; } - - /// - /// Get or set to run scan in background mode - /// - bool AlwaysInBackground { get; } - - /// - /// Get or set form visibility - /// - bool Visibility { get; set; } - #endregion - - #region [Methods] - - /// - /// Increment progress for num positions - /// - /// position - void Increment(int num); - - /// - ///Clear progress and start from begin - /// - void Clear(); - #endregion - - #region [Events] - - /// - /// RunInBackground button handler - /// - EventHandler RunInBackgroundHandler { set; get; } - - /// - /// Cancel buttom handler - /// - EventHandler CancelHandler { set; get; } - - /// - /// Details button handler - /// - EventHandler DetailsHandler { set; get; } - #endregion - } -} +using System; +using CxViewerAction.Entities; +using CxViewerAction.Entities.FormEntity; + +namespace CxViewerAction.Views +{ + /// + /// Represent scan view obligatory properties and methods + /// + public interface IScanView : IView + { + #region [Properties] + + /// + /// Get or set entity identifier + /// + EntityId EntityId { get; set; } + + /// + /// Get or set scan progress + /// + ScanProgress Progress { set; } + + /// + /// Get or set to run scan in background mode + /// + bool AlwaysInBackground { get; } + + /// + /// Get or set form visibility + /// + bool Visibility { get; set; } + #endregion + + #region [Methods] + + /// + /// Increment progress for num positions + /// + /// position + void Increment(int num); + + /// + ///Clear progress and start from begin + /// + void Clear(); + #endregion + + #region [Events] + + /// + /// RunInBackground button handler + /// + EventHandler RunInBackgroundHandler { set; get; } + + /// + /// Cancel buttom handler + /// + EventHandler CancelHandler { set; get; } + + /// + /// Details button handler + /// + EventHandler DetailsHandler { set; get; } + #endregion + } +} diff --git a/CxViewerAction/Views/IUploadView.cs b/CxActionShared/Views/IUploadView.cs similarity index 96% rename from CxViewerAction/Views/IUploadView.cs rename to CxActionShared/Views/IUploadView.cs index 5098f6f4..1489cf92 100644 --- a/CxViewerAction/Views/IUploadView.cs +++ b/CxActionShared/Views/IUploadView.cs @@ -1,49 +1,49 @@ -using System; -using System.Collections.Generic; -using CxViewerAction.Entities; - -namespace CxViewerAction.Views -{ - /// - /// Represent upload view obligatory methods and properties - /// - public interface IUploadView : IView - { - /// - /// Get or set entity identifier - /// - EntityId EntityId { get; set; } - - /// - /// Get or set project name - /// - string ProjectName { get; set; } - - /// - /// Get or set project description - /// - string Description { get; set; } - - /// - /// Get or set selected preset - /// - int Preset { get; set; } - - /// - /// Gets or sets presets list - /// - Dictionary Presets { get; set; } - - /// - /// Get or set selected team - /// - string Team { get; set; } - - /// - /// Gets or sets teams list - /// - Dictionary Teams { get; set; } - - bool IsPublic { get; } - } -} +using System; +using System.Collections.Generic; +using CxViewerAction.Entities; + +namespace CxViewerAction.Views +{ + /// + /// Represent upload view obligatory methods and properties + /// + public interface IUploadView : IView + { + /// + /// Get or set entity identifier + /// + EntityId EntityId { get; set; } + + /// + /// Get or set project name + /// + string ProjectName { get; set; } + + /// + /// Get or set project description + /// + string Description { get; set; } + + /// + /// Get or set selected preset + /// + int Preset { get; set; } + + /// + /// Gets or sets presets list + /// + Dictionary Presets { get; set; } + + /// + /// Get or set selected team + /// + string Team { get; set; } + + /// + /// Gets or sets teams list + /// + Dictionary Teams { get; set; } + + bool IsPublic { get; } + } +} diff --git a/CxViewerAction/Views/IWaitView.cs b/CxActionShared/Views/IWaitView.cs similarity index 95% rename from CxViewerAction/Views/IWaitView.cs rename to CxActionShared/Views/IWaitView.cs index 3281f106..920c43bf 100644 --- a/CxViewerAction/Views/IWaitView.cs +++ b/CxActionShared/Views/IWaitView.cs @@ -1,21 +1,21 @@ -using System; - -namespace CxViewerAction.Views -{ - public interface IWaitView : IView - { - #region [Properties] - - /// - /// Gets or sets progress title message - /// - string ProgressDialogMessage { get; set; } - - /// - /// Gets or sets cancel button handler - /// - EventHandler CancelHandler { set; } - - #endregion - } -} +using System; + +namespace CxViewerAction.Views +{ + public interface IWaitView : IView + { + #region [Properties] + + /// + /// Gets or sets progress title message + /// + string ProgressDialogMessage { get; set; } + + /// + /// Gets or sets cancel button handler + /// + EventHandler CancelHandler { set; } + + #endregion + } +} diff --git a/CxViewerAction/Views/OidcLoginFrm.Designer.cs b/CxActionShared/Views/OidcLoginFrm.Designer.cs similarity index 97% rename from CxViewerAction/Views/OidcLoginFrm.Designer.cs rename to CxActionShared/Views/OidcLoginFrm.Designer.cs index f1a0d2d5..bca64741 100644 --- a/CxViewerAction/Views/OidcLoginFrm.Designer.cs +++ b/CxActionShared/Views/OidcLoginFrm.Designer.cs @@ -1,70 +1,70 @@ -using CxViewerAction.Views.DockedView; - -namespace CxViewerAction.Views -{ - partial class OidcLoginFrm - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(OidcLoginFrm)); - this.oidcLoginCtrl2 = new CxViewerAction.Views.DockedView.OidcLoginCtrl(); - this.SuspendLayout(); - // - // oidcLoginCtrl2 - // - this.oidcLoginCtrl2.AutoScroll = true; - this.oidcLoginCtrl2.Location = new System.Drawing.Point(-1, -2); - this.oidcLoginCtrl2.Name = "oidcLoginCtrl2"; - this.oidcLoginCtrl2.Size = new System.Drawing.Size(495, 574); - this.oidcLoginCtrl2.TabIndex = 0; - // - // OidcLoginFrm - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(494, 573); - this.Controls.Add(this.oidcLoginCtrl2); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "OidcLoginFrm"; - this.Text = "Login"; - this.TopMost = true; - this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.SamlLoginFrm_FormClosing); - this.ResumeLayout(false); - - } - - #endregion - - //private DockedView.OidcLoginCtrl oidcLoginCtrl1; - private DockedView.OidcLoginCtrl oidcLoginCtrl2; - - public OidcLoginCtrl OidcLoginCtrl2 { get => oidcLoginCtrl2; set => oidcLoginCtrl2 = value; } - } +using CxViewerAction.Views.DockedView; + +namespace CxViewerAction.Views +{ + partial class OidcLoginFrm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(OidcLoginFrm)); + this.oidcLoginCtrl2 = new CxViewerAction.Views.DockedView.OidcLoginCtrl(); + this.SuspendLayout(); + // + // oidcLoginCtrl2 + // + this.oidcLoginCtrl2.AutoScroll = true; + this.oidcLoginCtrl2.Location = new System.Drawing.Point(-1, -2); + this.oidcLoginCtrl2.Name = "oidcLoginCtrl2"; + this.oidcLoginCtrl2.Size = new System.Drawing.Size(495, 574); + this.oidcLoginCtrl2.TabIndex = 0; + // + // OidcLoginFrm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(494, 573); + this.Controls.Add(this.oidcLoginCtrl2); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "OidcLoginFrm"; + this.Text = "Login"; + this.TopMost = true; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.SamlLoginFrm_FormClosing); + this.ResumeLayout(false); + + } + + #endregion + + //private DockedView.OidcLoginCtrl oidcLoginCtrl1; + private DockedView.OidcLoginCtrl oidcLoginCtrl2; + + public OidcLoginCtrl OidcLoginCtrl2 { get => oidcLoginCtrl2; set => oidcLoginCtrl2 = value; } + } } \ No newline at end of file diff --git a/CxViewerAction/Views/OidcLoginFrm.cs b/CxActionShared/Views/OidcLoginFrm.cs similarity index 92% rename from CxViewerAction/Views/OidcLoginFrm.cs rename to CxActionShared/Views/OidcLoginFrm.cs index 482467c9..5c6d124b 100644 --- a/CxViewerAction/Views/OidcLoginFrm.cs +++ b/CxActionShared/Views/OidcLoginFrm.cs @@ -1,45 +1,47 @@ -using System; -using System.Windows.Forms; -using System.Reflection; - -namespace CxViewerAction.Views -{ - public partial class OidcLoginFrm : Form - { - public event EventHandler UserClosedForm; - - public OidcLoginFrm() - { - InitializeComponent(); - } - - public void ConnectToIdentidyProvider(string baseServerUri) - { - OidcLoginCtrl2.ConnectToIdentidyProvider(baseServerUri); - } - - public void CloseForm() - { - if (InvokeRequired) - { - Invoke(new MethodInvoker(CloseForm)); - return; - } - - Hide(); - } - - private void SamlLoginFrm_FormClosing(object sender, FormClosingEventArgs e) - { - e.Cancel = true; - CloseForm(); - if (e.CloseReason == CloseReason.UserClosing) - { - if (UserClosedForm != null) - { - UserClosedForm(this, new EventArgs()); - } - } - } - } +using System; +using System.Windows.Forms; +using System.Reflection; +using Common; + +namespace CxViewerAction.Views +{ + public partial class OidcLoginFrm : Form + { + public event EventHandler UserClosedForm; + + public OidcLoginFrm() + { + InitializeComponent(); + } + + public void ConnectToIdentidyProvider(string baseServerUri) + { + OidcLoginCtrl2.ConnectToIdentidyProvider(baseServerUri); + Logger.Create().Info("Connected by identity provider."); + } + + public void CloseForm() + { + if (InvokeRequired) + { + Invoke(new MethodInvoker(CloseForm)); + return; + } + + Hide(); + } + + private void SamlLoginFrm_FormClosing(object sender, FormClosingEventArgs e) + { + e.Cancel = true; + CloseForm(); + if (e.CloseReason == CloseReason.UserClosing) + { + if (UserClosedForm != null) + { + UserClosedForm(this, new EventArgs()); + } + } + } + } } \ No newline at end of file diff --git a/CxActionShared/Views/OidcLoginFrm.resx b/CxActionShared/Views/OidcLoginFrm.resx new file mode 100644 index 00000000..c9530d23 --- /dev/null +++ b/CxActionShared/Views/OidcLoginFrm.resx @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\Checkmarx-X2.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/CxViewerAction/Views/OpenPercspectiveDialog.Designer.cs b/CxActionShared/Views/OpenPercspectiveDialog.Designer.cs similarity index 97% rename from CxViewerAction/Views/OpenPercspectiveDialog.Designer.cs rename to CxActionShared/Views/OpenPercspectiveDialog.Designer.cs index 9d622884..e3425fb3 100644 --- a/CxViewerAction/Views/OpenPercspectiveDialog.Designer.cs +++ b/CxActionShared/Views/OpenPercspectiveDialog.Designer.cs @@ -1,103 +1,103 @@ -namespace CxViewerAction.Views -{ - partial class OpenPercspectiveDialog - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.label1 = new System.Windows.Forms.Label(); - this.chRemember = new System.Windows.Forms.CheckBox(); - this.btnNo = new System.Windows.Forms.Button(); - this.btnYes = new System.Windows.Forms.Button(); - this.SuspendLayout(); - // - // label1 - // - this.label1.Location = new System.Drawing.Point(12, 9); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(373, 30); - this.label1.TabIndex = 0; - this.label1.Text = "This kind of project is associated with the CxViewer perspective. Do you want to " + - "open this perspective now?"; - // - // chRemember - // - this.chRemember.AutoSize = true; - this.chRemember.Location = new System.Drawing.Point(15, 58); - this.chRemember.Name = "chRemember"; - this.chRemember.Size = new System.Drawing.Size(135, 17); - this.chRemember.TabIndex = 1; - this.chRemember.Text = "Remember my decision"; - this.chRemember.UseVisualStyleBackColor = true; - // - // btnNo - // - this.btnNo.DialogResult = System.Windows.Forms.DialogResult.No; - this.btnNo.Location = new System.Drawing.Point(310, 54); - this.btnNo.Name = "btnNo"; - this.btnNo.Size = new System.Drawing.Size(75, 23); - this.btnNo.TabIndex = 2; - this.btnNo.Text = "No"; - this.btnNo.UseVisualStyleBackColor = true; - // - // btnYes - // - this.btnYes.DialogResult = System.Windows.Forms.DialogResult.Yes; - this.btnYes.Location = new System.Drawing.Point(229, 54); - this.btnYes.Name = "btnYes"; - this.btnYes.Size = new System.Drawing.Size(75, 23); - this.btnYes.TabIndex = 3; - this.btnYes.Text = "Yes"; - this.btnYes.UseVisualStyleBackColor = true; - // - // OpenPercspectiveDialog - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(392, 89); - this.Controls.Add(this.btnYes); - this.Controls.Add(this.btnNo); - this.Controls.Add(this.chRemember); - this.Controls.Add(this.label1); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "OpenPercspectiveDialog"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; - this.Text = "Open Perspective"; - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.Label label1; - private System.Windows.Forms.CheckBox chRemember; - private System.Windows.Forms.Button btnNo; - private System.Windows.Forms.Button btnYes; - } +namespace CxViewerAction.Views +{ + partial class OpenPercspectiveDialog + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.label1 = new System.Windows.Forms.Label(); + this.chRemember = new System.Windows.Forms.CheckBox(); + this.btnNo = new System.Windows.Forms.Button(); + this.btnYes = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // label1 + // + this.label1.Location = new System.Drawing.Point(12, 9); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(373, 30); + this.label1.TabIndex = 0; + this.label1.Text = "This kind of project is associated with the CxViewer perspective. Do you want to " + + "open this perspective now?"; + // + // chRemember + // + this.chRemember.AutoSize = true; + this.chRemember.Location = new System.Drawing.Point(15, 58); + this.chRemember.Name = "chRemember"; + this.chRemember.Size = new System.Drawing.Size(135, 17); + this.chRemember.TabIndex = 1; + this.chRemember.Text = "Remember my decision"; + this.chRemember.UseVisualStyleBackColor = true; + // + // btnNo + // + this.btnNo.DialogResult = System.Windows.Forms.DialogResult.No; + this.btnNo.Location = new System.Drawing.Point(310, 54); + this.btnNo.Name = "btnNo"; + this.btnNo.Size = new System.Drawing.Size(75, 23); + this.btnNo.TabIndex = 2; + this.btnNo.Text = "No"; + this.btnNo.UseVisualStyleBackColor = true; + // + // btnYes + // + this.btnYes.DialogResult = System.Windows.Forms.DialogResult.Yes; + this.btnYes.Location = new System.Drawing.Point(229, 54); + this.btnYes.Name = "btnYes"; + this.btnYes.Size = new System.Drawing.Size(75, 23); + this.btnYes.TabIndex = 3; + this.btnYes.Text = "Yes"; + this.btnYes.UseVisualStyleBackColor = true; + // + // OpenPercspectiveDialog + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(392, 89); + this.Controls.Add(this.btnYes); + this.Controls.Add(this.btnNo); + this.Controls.Add(this.chRemember); + this.Controls.Add(this.label1); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "OpenPercspectiveDialog"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Open Perspective"; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Label label1; + private System.Windows.Forms.CheckBox chRemember; + private System.Windows.Forms.Button btnNo; + private System.Windows.Forms.Button btnYes; + } } \ No newline at end of file diff --git a/CxViewerAction/Views/OpenPercspectiveDialog.cs b/CxActionShared/Views/OpenPercspectiveDialog.cs similarity index 95% rename from CxViewerAction/Views/OpenPercspectiveDialog.cs rename to CxActionShared/Views/OpenPercspectiveDialog.cs index caed5115..8ff95196 100644 --- a/CxViewerAction/Views/OpenPercspectiveDialog.cs +++ b/CxActionShared/Views/OpenPercspectiveDialog.cs @@ -1,24 +1,24 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; - -using System.Text; -using System.Windows.Forms; - -namespace CxViewerAction.Views -{ - public partial class OpenPercspectiveDialog : Form - { - public OpenPercspectiveDialog() - { - InitializeComponent(); - } - - public bool RememberDecision - { - get { return chRemember.Checked; } - } - } -} +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; + +using System.Text; +using System.Windows.Forms; + +namespace CxViewerAction.Views +{ + public partial class OpenPercspectiveDialog : Form + { + public OpenPercspectiveDialog() + { + InitializeComponent(); + } + + public bool RememberDecision + { + get { return chRemember.Checked; } + } + } +} diff --git a/CxViewerAction/Views/OpenPercspectiveDialog.resx b/CxActionShared/Views/OpenPercspectiveDialog.resx similarity index 97% rename from CxViewerAction/Views/OpenPercspectiveDialog.resx rename to CxActionShared/Views/OpenPercspectiveDialog.resx index 5ea0895e..7080a7d1 100644 --- a/CxViewerAction/Views/OpenPercspectiveDialog.resx +++ b/CxActionShared/Views/OpenPercspectiveDialog.resx @@ -1,120 +1,120 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + \ No newline at end of file diff --git a/CxViewerAction/Views/ProjectListEntity.cs b/CxActionShared/Views/ProjectListEntity.cs similarity index 95% rename from CxViewerAction/Views/ProjectListEntity.cs rename to CxActionShared/Views/ProjectListEntity.cs index 879579fb..2967e5a6 100644 --- a/CxViewerAction/Views/ProjectListEntity.cs +++ b/CxActionShared/Views/ProjectListEntity.cs @@ -1,14 +1,14 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace CxViewerAction.Views -{ - public class ProjectListEntity - { - public long ProjectID; - public string ProjectName; - public string Owner; - public string Group; - } -} +using System; +using System.Collections.Generic; +using System.Text; + +namespace CxViewerAction.Views +{ + public class ProjectListEntity + { + public long ProjectID; + public string ProjectName; + public string Owner; + public string Group; + } +} diff --git a/CxActionShared/Views/QueryDescriptionForm.cs b/CxActionShared/Views/QueryDescriptionForm.cs new file mode 100644 index 00000000..2777b31e --- /dev/null +++ b/CxActionShared/Views/QueryDescriptionForm.cs @@ -0,0 +1,41 @@ +using System; +using System.Windows.Forms; +using Common; +using CefSharp.WinForms; +using static CxActionShared.CommonCustomResourceRequestHandler; + +namespace CxViewerAction.Views +{ + public partial class QueryDescriptionForm : Form + { + public string DescriptionUrl; + public string _token; + public QueryDescriptionForm(string descriptionUrl, string token,string descriptionHeader) + { + DescriptionUrl = descriptionUrl; + _token = token; + InitializeComponent(); + this.Text = descriptionHeader; + } + + ChromiumWebBrowser browser; + + private void QueryDescriptionForm_Load(object sender, EventArgs e) + { + browser = new ChromiumWebBrowser(); + this.pContainer.Controls.Add(browser); + Logger.Create().Info("QueryDescriptionForm() " + browser); + browser.Dock = DockStyle.Fill; + Logger.Create().Info("In browser form load calling address changed event."); + browser.LoadUrl(DescriptionUrl); + Logger.Create().Info("On browser form load calling load end event."); + browser.RequestHandler = new NewCustomRequestHandler(_token); + } + + private void QueryDescription_FormClosed(object sender, FormClosedEventArgs e) + { + Hide(); + } + } +} + diff --git a/CxActionShared/Views/QueryDescriptionForm.designer.cs b/CxActionShared/Views/QueryDescriptionForm.designer.cs new file mode 100644 index 00000000..29920e5f --- /dev/null +++ b/CxActionShared/Views/QueryDescriptionForm.designer.cs @@ -0,0 +1,81 @@ +namespace CxViewerAction.Views +{ + partial class QueryDescriptionForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + //protected override void Dispose(bool disposing) + //{ + // if (disposing && (components != null)) + // { + // components.Dispose(); + // } + // base.Dispose(disposing); + //} + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(QueryDescriptionForm)); + this.txtUrl = new System.Windows.Forms.TextBox(); + this.pContainer = new System.Windows.Forms.Panel(); + this.SuspendLayout(); + // + // txtUrl + // + this.txtUrl.Location = new System.Drawing.Point(3, 2); + this.txtUrl.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.txtUrl.Name = "txtUrl"; + this.txtUrl.Size = new System.Drawing.Size(1190, 26); + this.txtUrl.TabIndex = 0; + this.txtUrl.Visible = false; + // + // pContainer + // + this.pContainer.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.pContainer.Location = new System.Drawing.Point(3, 2); + this.pContainer.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.pContainer.Name = "pContainer"; + this.pContainer.Size = new System.Drawing.Size(1727, 934); + this.pContainer.TabIndex = 1; + // + // QueryDescriptionForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(1728, 937); + this.Controls.Add(this.pContainer); + this.Controls.Add(this.txtUrl); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "QueryDescriptionForm"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Query Description"; + this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.QueryDescription_FormClosed); + this.Load += new System.EventHandler(this.QueryDescriptionForm_Load); + this.ResumeLayout(false); + this.PerformLayout(); + + } + #endregion + + private System.Windows.Forms.TextBox txtUrl; + private System.Windows.Forms.Panel pContainer; + } +} \ No newline at end of file diff --git a/CxActionShared/Views/QueryDescriptionForm.resx b/CxActionShared/Views/QueryDescriptionForm.resx new file mode 100644 index 00000000..9a98584d --- /dev/null +++ b/CxActionShared/Views/QueryDescriptionForm.resx @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\Checkmarx-X3.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/CxViewerAction/Views/ScanProcessFrm.Designer.cs b/CxActionShared/Views/ScanProcessFrm.Designer.cs similarity index 98% rename from CxViewerAction/Views/ScanProcessFrm.Designer.cs rename to CxActionShared/Views/ScanProcessFrm.Designer.cs index 4d5f7e94..694164ba 100644 --- a/CxViewerAction/Views/ScanProcessFrm.Designer.cs +++ b/CxActionShared/Views/ScanProcessFrm.Designer.cs @@ -1,239 +1,239 @@ -namespace CxViewerAction.Views -{ - partial class ScanProcessFrm - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.label1 = new System.Windows.Forms.Label(); - this.progressMargue1 = new System.Windows.Forms.ProgressBar(); - this.lblCurrentIterationName = new System.Windows.Forms.Label(); - this.lblCurrentIterationProgress = new System.Windows.Forms.Label(); - this.chBackground = new System.Windows.Forms.CheckBox(); - this.btnRunBackground = new System.Windows.Forms.Button(); - this.btnCancel = new System.Windows.Forms.Button(); - this.btnDetails = new System.Windows.Forms.Button(); - this.pnlDetails = new System.Windows.Forms.Panel(); - this.progressTotal = new System.Windows.Forms.ProgressBar(); - this.lbl = new System.Windows.Forms.Label(); - this.lblTotalScanProgress = new System.Windows.Forms.Label(); - this.lblProjectName = new System.Windows.Forms.Label(); - this.progressMargue2 = new System.Windows.Forms.ProgressBar(); - this.lblProgressTotalTop = new System.Windows.Forms.Label(); - this.pnlDetails.SuspendLayout(); - this.SuspendLayout(); - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(10, 13); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(116, 13); - this.label1.TabIndex = 0; - this.label1.Text = "Operation in progress..."; - // - // progressMargue1 - // - this.progressMargue1.Location = new System.Drawing.Point(13, 29); - this.progressMargue1.Name = "progressMargue1"; - this.progressMargue1.Size = new System.Drawing.Size(469, 23); - this.progressMargue1.Style = System.Windows.Forms.ProgressBarStyle.Marquee; - this.progressMargue1.TabIndex = 1; - // - // lblCurrentIterationName - // - this.lblCurrentIterationName.AutoSize = true; - this.lblCurrentIterationName.Location = new System.Drawing.Point(10, 129); - this.lblCurrentIterationName.Name = "lblCurrentIterationName"; - this.lblCurrentIterationName.Size = new System.Drawing.Size(84, 13); - this.lblCurrentIterationName.TabIndex = 2; - this.lblCurrentIterationName.Text = "Waiting server..."; - // - // lblCurrentIterationProgress - // - this.lblCurrentIterationProgress.AutoSize = true; - this.lblCurrentIterationProgress.Location = new System.Drawing.Point(10, 142); - this.lblCurrentIterationProgress.Name = "lblCurrentIterationProgress"; - this.lblCurrentIterationProgress.Size = new System.Drawing.Size(84, 13); - this.lblCurrentIterationProgress.TabIndex = 3; - this.lblCurrentIterationProgress.Text = "Waiting server..."; - // - // chBackground - // - this.chBackground.AutoSize = true; - this.chBackground.Location = new System.Drawing.Point(12, 95); - this.chBackground.Name = "chBackground"; - this.chBackground.Size = new System.Drawing.Size(148, 17); - this.chBackground.TabIndex = 4; - this.chBackground.Text = "Always run in background"; - this.chBackground.UseVisualStyleBackColor = true; - // - // btnRunBackground - // - this.btnRunBackground.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.btnRunBackground.Location = new System.Drawing.Point(181, 137); - this.btnRunBackground.Name = "btnRunBackground"; - this.btnRunBackground.Size = new System.Drawing.Size(140, 23); - this.btnRunBackground.TabIndex = 5; - this.btnRunBackground.Text = "Run in Background"; - this.btnRunBackground.UseVisualStyleBackColor = true; - // - // btnCancel - // - this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.btnCancel.Location = new System.Drawing.Point(327, 137); - this.btnCancel.Name = "btnCancel"; - this.btnCancel.Size = new System.Drawing.Size(75, 23); - this.btnCancel.TabIndex = 6; - this.btnCancel.Text = "Cancel"; - this.btnCancel.UseVisualStyleBackColor = true; - this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click); - // - // btnDetails - // - this.btnDetails.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.btnDetails.Location = new System.Drawing.Point(408, 137); - this.btnDetails.Name = "btnDetails"; - this.btnDetails.Size = new System.Drawing.Size(75, 23); - this.btnDetails.TabIndex = 7; - this.btnDetails.Text = "Details >>"; - this.btnDetails.UseVisualStyleBackColor = true; - this.btnDetails.Click += new System.EventHandler(this.btnDetails_Click); - // - // pnlDetails - // - this.pnlDetails.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.pnlDetails.Controls.Add(this.progressTotal); - this.pnlDetails.Controls.Add(this.lbl); - this.pnlDetails.Controls.Add(this.lblTotalScanProgress); - this.pnlDetails.Controls.Add(this.lblProjectName); - this.pnlDetails.Controls.Add(this.progressMargue2); - this.pnlDetails.Controls.Add(this.lblCurrentIterationProgress); - this.pnlDetails.Controls.Add(this.lblCurrentIterationName); - this.pnlDetails.Location = new System.Drawing.Point(13, 118); - this.pnlDetails.Name = "pnlDetails"; - this.pnlDetails.Size = new System.Drawing.Size(470, 0); - this.pnlDetails.TabIndex = 8; - this.pnlDetails.Visible = false; - // - // progressTotal - // - this.progressTotal.Location = new System.Drawing.Point(13, 103); - this.progressTotal.Name = "progressTotal"; - this.progressTotal.Size = new System.Drawing.Size(439, 23); - this.progressTotal.TabIndex = 4; - // - // lbl - // - this.lbl.AutoSize = true; - this.lbl.Location = new System.Drawing.Point(10, 87); - this.lbl.Name = "lbl"; - this.lbl.Size = new System.Drawing.Size(75, 13); - this.lbl.TabIndex = 3; - this.lbl.Text = "Scan progress"; - // - // lblTotalScanProgress - // - this.lblTotalScanProgress.AutoSize = true; - this.lblTotalScanProgress.Location = new System.Drawing.Point(10, 54); - this.lblTotalScanProgress.Name = "lblTotalScanProgress"; - this.lblTotalScanProgress.Size = new System.Drawing.Size(22, 13); - this.lblTotalScanProgress.TabIndex = 2; - this.lblTotalScanProgress.Text = ". . ."; - // - // lblProjectName - // - this.lblProjectName.AutoSize = true; - this.lblProjectName.Location = new System.Drawing.Point(10, 12); - this.lblProjectName.Name = "lblProjectName"; - this.lblProjectName.Size = new System.Drawing.Size(22, 13); - this.lblProjectName.TabIndex = 1; - this.lblProjectName.Text = ". . ."; - // - // progressMargue2 - // - this.progressMargue2.Location = new System.Drawing.Point(13, 28); - this.progressMargue2.Name = "progressMargue2"; - this.progressMargue2.Size = new System.Drawing.Size(439, 23); - this.progressMargue2.Style = System.Windows.Forms.ProgressBarStyle.Marquee; - this.progressMargue2.TabIndex = 0; - // - // lblProgressTotalTop - // - this.lblProgressTotalTop.AutoSize = true; - this.lblProgressTotalTop.Location = new System.Drawing.Point(13, 59); - this.lblProgressTotalTop.Name = "lblProgressTotalTop"; - this.lblProgressTotalTop.Size = new System.Drawing.Size(84, 13); - this.lblProgressTotalTop.TabIndex = 9; - this.lblProgressTotalTop.Text = "Waiting server..."; - // - // ScanProcessFrm - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(494, 172); - this.ControlBox = false; - this.Controls.Add(this.lblProgressTotalTop); - this.Controls.Add(this.btnDetails); - this.Controls.Add(this.pnlDetails); - this.Controls.Add(this.btnCancel); - this.Controls.Add(this.btnRunBackground); - this.Controls.Add(this.chBackground); - this.Controls.Add(this.progressMargue1); - this.Controls.Add(this.label1); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "ScanProcessFrm"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; - this.Text = "Scanning project"; - this.pnlDetails.ResumeLayout(false); - this.pnlDetails.PerformLayout(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.Label label1; - private System.Windows.Forms.ProgressBar progressMargue1; - private System.Windows.Forms.Label lblCurrentIterationName; - private System.Windows.Forms.Label lblCurrentIterationProgress; - private System.Windows.Forms.CheckBox chBackground; - private System.Windows.Forms.Button btnRunBackground; - private System.Windows.Forms.Button btnCancel; - private System.Windows.Forms.Button btnDetails; - private System.Windows.Forms.Panel pnlDetails; - private System.Windows.Forms.Label lblProjectName; - private System.Windows.Forms.ProgressBar progressMargue2; - private System.Windows.Forms.ProgressBar progressTotal; - private System.Windows.Forms.Label lbl; - private System.Windows.Forms.Label lblTotalScanProgress; - private System.Windows.Forms.Label lblProgressTotalTop; - } +namespace CxViewerAction.Views +{ + partial class ScanProcessFrm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.label1 = new System.Windows.Forms.Label(); + this.progressMargue1 = new System.Windows.Forms.ProgressBar(); + this.lblCurrentIterationName = new System.Windows.Forms.Label(); + this.lblCurrentIterationProgress = new System.Windows.Forms.Label(); + this.chBackground = new System.Windows.Forms.CheckBox(); + this.btnRunBackground = new System.Windows.Forms.Button(); + this.btnCancel = new System.Windows.Forms.Button(); + this.btnDetails = new System.Windows.Forms.Button(); + this.pnlDetails = new System.Windows.Forms.Panel(); + this.progressTotal = new System.Windows.Forms.ProgressBar(); + this.lbl = new System.Windows.Forms.Label(); + this.lblTotalScanProgress = new System.Windows.Forms.Label(); + this.lblProjectName = new System.Windows.Forms.Label(); + this.progressMargue2 = new System.Windows.Forms.ProgressBar(); + this.lblProgressTotalTop = new System.Windows.Forms.Label(); + this.pnlDetails.SuspendLayout(); + this.SuspendLayout(); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(10, 13); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(116, 13); + this.label1.TabIndex = 0; + this.label1.Text = "Operation in progress..."; + // + // progressMargue1 + // + this.progressMargue1.Location = new System.Drawing.Point(13, 29); + this.progressMargue1.Name = "progressMargue1"; + this.progressMargue1.Size = new System.Drawing.Size(469, 23); + this.progressMargue1.Style = System.Windows.Forms.ProgressBarStyle.Marquee; + this.progressMargue1.TabIndex = 1; + // + // lblCurrentIterationName + // + this.lblCurrentIterationName.AutoSize = true; + this.lblCurrentIterationName.Location = new System.Drawing.Point(10, 129); + this.lblCurrentIterationName.Name = "lblCurrentIterationName"; + this.lblCurrentIterationName.Size = new System.Drawing.Size(84, 13); + this.lblCurrentIterationName.TabIndex = 2; + this.lblCurrentIterationName.Text = "Waiting server..."; + // + // lblCurrentIterationProgress + // + this.lblCurrentIterationProgress.AutoSize = true; + this.lblCurrentIterationProgress.Location = new System.Drawing.Point(10, 142); + this.lblCurrentIterationProgress.Name = "lblCurrentIterationProgress"; + this.lblCurrentIterationProgress.Size = new System.Drawing.Size(84, 13); + this.lblCurrentIterationProgress.TabIndex = 3; + this.lblCurrentIterationProgress.Text = "Waiting server..."; + // + // chBackground + // + this.chBackground.AutoSize = true; + this.chBackground.Location = new System.Drawing.Point(12, 95); + this.chBackground.Name = "chBackground"; + this.chBackground.Size = new System.Drawing.Size(148, 17); + this.chBackground.TabIndex = 4; + this.chBackground.Text = "Always run in background"; + this.chBackground.UseVisualStyleBackColor = true; + // + // btnRunBackground + // + this.btnRunBackground.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnRunBackground.Location = new System.Drawing.Point(181, 137); + this.btnRunBackground.Name = "btnRunBackground"; + this.btnRunBackground.Size = new System.Drawing.Size(140, 23); + this.btnRunBackground.TabIndex = 5; + this.btnRunBackground.Text = "Run in Background"; + this.btnRunBackground.UseVisualStyleBackColor = true; + // + // btnCancel + // + this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.btnCancel.Location = new System.Drawing.Point(327, 137); + this.btnCancel.Name = "btnCancel"; + this.btnCancel.Size = new System.Drawing.Size(75, 23); + this.btnCancel.TabIndex = 6; + this.btnCancel.Text = "Cancel"; + this.btnCancel.UseVisualStyleBackColor = true; + this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click); + // + // btnDetails + // + this.btnDetails.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnDetails.Location = new System.Drawing.Point(408, 137); + this.btnDetails.Name = "btnDetails"; + this.btnDetails.Size = new System.Drawing.Size(75, 23); + this.btnDetails.TabIndex = 7; + this.btnDetails.Text = "Details >>"; + this.btnDetails.UseVisualStyleBackColor = true; + this.btnDetails.Click += new System.EventHandler(this.btnDetails_Click); + // + // pnlDetails + // + this.pnlDetails.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.pnlDetails.Controls.Add(this.progressTotal); + this.pnlDetails.Controls.Add(this.lbl); + this.pnlDetails.Controls.Add(this.lblTotalScanProgress); + this.pnlDetails.Controls.Add(this.lblProjectName); + this.pnlDetails.Controls.Add(this.progressMargue2); + this.pnlDetails.Controls.Add(this.lblCurrentIterationProgress); + this.pnlDetails.Controls.Add(this.lblCurrentIterationName); + this.pnlDetails.Location = new System.Drawing.Point(13, 118); + this.pnlDetails.Name = "pnlDetails"; + this.pnlDetails.Size = new System.Drawing.Size(470, 0); + this.pnlDetails.TabIndex = 8; + this.pnlDetails.Visible = false; + // + // progressTotal + // + this.progressTotal.Location = new System.Drawing.Point(13, 103); + this.progressTotal.Name = "progressTotal"; + this.progressTotal.Size = new System.Drawing.Size(439, 23); + this.progressTotal.TabIndex = 4; + // + // lbl + // + this.lbl.AutoSize = true; + this.lbl.Location = new System.Drawing.Point(10, 87); + this.lbl.Name = "lbl"; + this.lbl.Size = new System.Drawing.Size(75, 13); + this.lbl.TabIndex = 3; + this.lbl.Text = "Scan progress"; + // + // lblTotalScanProgress + // + this.lblTotalScanProgress.AutoSize = true; + this.lblTotalScanProgress.Location = new System.Drawing.Point(10, 54); + this.lblTotalScanProgress.Name = "lblTotalScanProgress"; + this.lblTotalScanProgress.Size = new System.Drawing.Size(22, 13); + this.lblTotalScanProgress.TabIndex = 2; + this.lblTotalScanProgress.Text = ". . ."; + // + // lblProjectName + // + this.lblProjectName.AutoSize = true; + this.lblProjectName.Location = new System.Drawing.Point(10, 12); + this.lblProjectName.Name = "lblProjectName"; + this.lblProjectName.Size = new System.Drawing.Size(22, 13); + this.lblProjectName.TabIndex = 1; + this.lblProjectName.Text = ". . ."; + // + // progressMargue2 + // + this.progressMargue2.Location = new System.Drawing.Point(13, 28); + this.progressMargue2.Name = "progressMargue2"; + this.progressMargue2.Size = new System.Drawing.Size(439, 23); + this.progressMargue2.Style = System.Windows.Forms.ProgressBarStyle.Marquee; + this.progressMargue2.TabIndex = 0; + // + // lblProgressTotalTop + // + this.lblProgressTotalTop.AutoSize = true; + this.lblProgressTotalTop.Location = new System.Drawing.Point(13, 59); + this.lblProgressTotalTop.Name = "lblProgressTotalTop"; + this.lblProgressTotalTop.Size = new System.Drawing.Size(84, 13); + this.lblProgressTotalTop.TabIndex = 9; + this.lblProgressTotalTop.Text = "Waiting server..."; + // + // ScanProcessFrm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(494, 172); + this.ControlBox = false; + this.Controls.Add(this.lblProgressTotalTop); + this.Controls.Add(this.btnDetails); + this.Controls.Add(this.pnlDetails); + this.Controls.Add(this.btnCancel); + this.Controls.Add(this.btnRunBackground); + this.Controls.Add(this.chBackground); + this.Controls.Add(this.progressMargue1); + this.Controls.Add(this.label1); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "ScanProcessFrm"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Scanning project"; + this.pnlDetails.ResumeLayout(false); + this.pnlDetails.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Label label1; + private System.Windows.Forms.ProgressBar progressMargue1; + private System.Windows.Forms.Label lblCurrentIterationName; + private System.Windows.Forms.Label lblCurrentIterationProgress; + private System.Windows.Forms.CheckBox chBackground; + private System.Windows.Forms.Button btnRunBackground; + private System.Windows.Forms.Button btnCancel; + private System.Windows.Forms.Button btnDetails; + private System.Windows.Forms.Panel pnlDetails; + private System.Windows.Forms.Label lblProjectName; + private System.Windows.Forms.ProgressBar progressMargue2; + private System.Windows.Forms.ProgressBar progressTotal; + private System.Windows.Forms.Label lbl; + private System.Windows.Forms.Label lblTotalScanProgress; + private System.Windows.Forms.Label lblProgressTotalTop; + } } \ No newline at end of file diff --git a/CxViewerAction/Views/ScanProcessFrm.cs b/CxActionShared/Views/ScanProcessFrm.cs similarity index 96% rename from CxViewerAction/Views/ScanProcessFrm.cs rename to CxActionShared/Views/ScanProcessFrm.cs index 90a1d9b6..1af980e9 100644 --- a/CxViewerAction/Views/ScanProcessFrm.cs +++ b/CxActionShared/Views/ScanProcessFrm.cs @@ -1,326 +1,326 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; - -using System.Text; -using System.Windows.Forms; -using CxViewerAction.Entities.FormEntity; -using CxViewerAction.Entities; - -namespace CxViewerAction.Views -{ - public partial class ScanProcessFrm : Form, IScanView - { - #region [Private Members] - - private EntityId _entityId; - - #endregion - - #region [Delegates] - - private delegate void UpdateLableTextDelegate(ScanProgress value); - private delegate void UpdateProgressDelegate(ScanProgress value); - private delegate void IncrementProgressDelegate(int value); - private delegate void CloseViewDelegate(); - private delegate void SetVisiblityDelegate(bool visiblity); - - #endregion - - #region [Private Constants, label format] - - private const string CURRENT_ITERATION_NAME_FORMAT = "{0} \"{1}\""; - private const string CURRENT_ITERATION_PROGRESS_FORMAT = "({0}%) {1}"; - private const string NOT_READY_TEXT = "Waiting server..."; - private const string PROJECT_SCAN_TOTAL_PROGRESS = "Project scan total progress: {0}%"; - private const string PROJECT_NAME = "Scanning project {0}"; - - #endregion - - #region [Public Properties] - - /// - /// Gets or sets custom entity identifier - /// - public EntityId EntityId - { - get { return _entityId; } - set { _entityId = value; } - } - - /// - /// Sets progress bar state - /// - public ScanProgress Progress - { - set - { - //Use delegate in case of async calls - Invoke(new UpdateLableTextDelegate(UpdateCurrentIterationName), value); - Invoke(new UpdateLableTextDelegate(UpdateProjectName), value); - Invoke(new UpdateLableTextDelegate(UpdateCurrentIterationProgress), value); - Invoke(new UpdateLableTextDelegate(UpdateProjectScanTotalProgress), value); - Invoke(new UpdateLableTextDelegate(UpdateProjectScanTotalTopProgress), value); - Invoke(new UpdateProgressDelegate(UpdateProgress), value); - } - } - - /// - /// Gets alwaysInBackground checkbox state - /// - public bool AlwaysInBackground - { - get { return chBackground.Checked; } - } - - /// - /// Gets or sets dialog visibility - /// - public bool Visibility - { - get { return Visible; } - set - { - SetVisiblityDelegate del = new SetVisiblityDelegate(SetVisiblity); - Invoke(del, value); - } - } - - /// - /// Gets or sets RunInBackground button handler - /// - public EventHandler RunInBackgroundHandler - { - get { return null; } - set { btnRunBackground.Click += value; } - } - - /// - /// Gets or sets cancel button handler - /// - public EventHandler CancelHandler - { - get { return null; } - set - { - btnCancel.Click += value; - FormClosed += new FormClosedEventHandler(value); - } - } - - /// - /// Gets or sets details button handler - /// - public EventHandler DetailsHandler - { - get { return null; } - set { btnDetails.Click += value; } - } - - #endregion - - public ScanProcessFrm() - { - InitializeComponent(); - } - - #region [Public methods] - /// - /// Show modal dialog - /// - /// - public DialogResult ShowModalView() - { - return this.ShowDialog(); - } - - /// - /// Show modal dialog - /// - /// Parent view container - /// - public DialogResult ShowModalView(IView parent) - { - return this.ShowDialog((IWin32Window)parent); - } - - /// - /// Show non-modal dialog - /// - public void ShowView() - { - this.Show(); - } - - /// - /// Show non-modal dialog - /// - /// Parent view container - public void ShowView(IView parent) - { - this.Show((IWin32Window)parent); - } - - /// - /// Close view - /// - public void CloseView() - { - //Use delegate in case of async calls - CloseViewDelegate del = new CloseViewDelegate(CloseDialogView); - Invoke(del); - } - - /// - /// Increment progress state - /// - /// increment value - public void Increment(int value) - { - Invoke(new IncrementProgressDelegate(IncrementProgress), value); - Invoke(new UpdateLableTextDelegate(UpdateCurrentIterationProgress), new ScanProgress(progressMargue1.Maximum, progressMargue1.Maximum, progressMargue1.Value)); - } - - #endregion - - #region [Private methods] - - /// - /// Calculate percent difference by current and max values - /// - /// - /// - /// - private decimal CalcPercent(int current, int max) - { - return Math.Round((decimal)(current / max) * 100); - } - - /// - /// Update project name delegate function. Used for async calls - /// - /// - private void UpdateProjectName(ScanProgress value) - { - lblProjectName.Text = string.Format(PROJECT_NAME, value.ProjectName); - } - - /// - /// Update project scan progress delegate function. Used for async calls - /// - /// - private void UpdateProjectScanTotalProgress(ScanProgress value) - { - lblTotalScanProgress.Text = string.Format(PROJECT_SCAN_TOTAL_PROGRESS, value.CurrentPosition); - } - - /// - /// Update project project scan progress delegate function. Used for async calls - /// - /// - private void UpdateProjectScanTotalTopProgress(ScanProgress value) - { - lblProgressTotalTop.Text = string.Format(PROJECT_SCAN_TOTAL_PROGRESS, value.CurrentPosition); - } - - /// - /// Update current iteration name delegate function. Used for async calls - /// - /// - private void UpdateCurrentIterationName(ScanProgress value) - { - lblCurrentIterationName.Text = string.Format(CURRENT_ITERATION_NAME_FORMAT, value.RunStatus, value.CurrentStageName); - } - - /// - /// Update current iteration progress status delegate function. Used for async calls - /// - /// - private void UpdateCurrentIterationProgress(ScanProgress value) - { - lblCurrentIterationProgress.Text = string.Format(CURRENT_ITERATION_PROGRESS_FORMAT, value.CurrentStagePercent, value.CurrentStageMessage); - } - - /// - /// Update progress status delegate function. Used for async calls - /// - /// - private void UpdateProgress(ScanProgress value) - { - progressTotal.Minimum = value.StartPosition; - progressTotal.Maximum = value.EndPosition; - progressTotal.Value = value.CurrentPosition; - } - - /// - /// Increment progress delegate function. Used for async calls - /// - /// - private void IncrementProgress(int value) - { - progressMargue1.Increment(value); - } - - /// - /// Clear progress. Fill by empty values - /// - public void Clear() - { - Progress = new ScanProgress(NOT_READY_TEXT, string.Empty, string.Empty, 0, 100, 0); - } - - /// - /// Close view - /// - private void CloseDialogView() - { - Close(); - } - - /// - /// Set dialog visibility delegate function. Used for async calls - /// - /// - private void SetVisiblity(bool visible) - { - Visible = visible; - } - - /// - /// Cancel button event handler - /// - /// - /// - private void btnCancel_Click(object sender, EventArgs e) - { - btnCancel.Enabled = false; - btnCancel.Text = "Canceling"; - } - - /// - /// Details button event handler - /// - /// - /// - private void btnDetails_Click(object sender, EventArgs e) - { - if (pnlDetails.Visible) //if panel need close - { - pnlDetails.Visible = false; - Height = 200; - pnlDetails.Height = 0; - btnDetails.Text = "Details >>"; - } - else // if panel need open - { - pnlDetails.Visible = true; - Height = 400; - pnlDetails.Height = 200; - btnDetails.Text = "<< Details"; - } - } - #endregion - } -} +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; + +using System.Text; +using System.Windows.Forms; +using CxViewerAction.Entities.FormEntity; +using CxViewerAction.Entities; + +namespace CxViewerAction.Views +{ + public partial class ScanProcessFrm : Form, IScanView + { + #region [Private Members] + + private EntityId _entityId; + + #endregion + + #region [Delegates] + + private delegate void UpdateLableTextDelegate(ScanProgress value); + private delegate void UpdateProgressDelegate(ScanProgress value); + private delegate void IncrementProgressDelegate(int value); + private delegate void CloseViewDelegate(); + private delegate void SetVisiblityDelegate(bool visiblity); + + #endregion + + #region [Private Constants, label format] + + private const string CURRENT_ITERATION_NAME_FORMAT = "{0} \"{1}\""; + private const string CURRENT_ITERATION_PROGRESS_FORMAT = "({0}%) {1}"; + private const string NOT_READY_TEXT = "Waiting server..."; + private const string PROJECT_SCAN_TOTAL_PROGRESS = "Project scan total progress: {0}%"; + private const string PROJECT_NAME = "Scanning project {0}"; + + #endregion + + #region [Public Properties] + + /// + /// Gets or sets custom entity identifier + /// + public EntityId EntityId + { + get { return _entityId; } + set { _entityId = value; } + } + + /// + /// Sets progress bar state + /// + public ScanProgress Progress + { + set + { + //Use delegate in case of async calls + Invoke(new UpdateLableTextDelegate(UpdateCurrentIterationName), value); + Invoke(new UpdateLableTextDelegate(UpdateProjectName), value); + Invoke(new UpdateLableTextDelegate(UpdateCurrentIterationProgress), value); + Invoke(new UpdateLableTextDelegate(UpdateProjectScanTotalProgress), value); + Invoke(new UpdateLableTextDelegate(UpdateProjectScanTotalTopProgress), value); + Invoke(new UpdateProgressDelegate(UpdateProgress), value); + } + } + + /// + /// Gets alwaysInBackground checkbox state + /// + public bool AlwaysInBackground + { + get { return chBackground.Checked; } + } + + /// + /// Gets or sets dialog visibility + /// + public bool Visibility + { + get { return Visible; } + set + { + SetVisiblityDelegate del = new SetVisiblityDelegate(SetVisiblity); + Invoke(del, value); + } + } + + /// + /// Gets or sets RunInBackground button handler + /// + public EventHandler RunInBackgroundHandler + { + get { return null; } + set { btnRunBackground.Click += value; } + } + + /// + /// Gets or sets cancel button handler + /// + public EventHandler CancelHandler + { + get { return null; } + set + { + btnCancel.Click += value; + FormClosed += new FormClosedEventHandler(value); + } + } + + /// + /// Gets or sets details button handler + /// + public EventHandler DetailsHandler + { + get { return null; } + set { btnDetails.Click += value; } + } + + #endregion + + public ScanProcessFrm() + { + InitializeComponent(); + } + + #region [Public methods] + /// + /// Show modal dialog + /// + /// + public DialogResult ShowModalView() + { + return this.ShowDialog(); + } + + /// + /// Show modal dialog + /// + /// Parent view container + /// + public DialogResult ShowModalView(IView parent) + { + return this.ShowDialog((IWin32Window)parent); + } + + /// + /// Show non-modal dialog + /// + public void ShowView() + { + this.Show(); + } + + /// + /// Show non-modal dialog + /// + /// Parent view container + public void ShowView(IView parent) + { + this.Show((IWin32Window)parent); + } + + /// + /// Close view + /// + public void CloseView() + { + //Use delegate in case of async calls + CloseViewDelegate del = new CloseViewDelegate(CloseDialogView); + Invoke(del); + } + + /// + /// Increment progress state + /// + /// increment value + public void Increment(int value) + { + Invoke(new IncrementProgressDelegate(IncrementProgress), value); + Invoke(new UpdateLableTextDelegate(UpdateCurrentIterationProgress), new ScanProgress(progressMargue1.Maximum, progressMargue1.Maximum, progressMargue1.Value)); + } + + #endregion + + #region [Private methods] + + /// + /// Calculate percent difference by current and max values + /// + /// + /// + /// + private decimal CalcPercent(int current, int max) + { + return Math.Round((decimal)(current / max) * 100); + } + + /// + /// Update project name delegate function. Used for async calls + /// + /// + private void UpdateProjectName(ScanProgress value) + { + lblProjectName.Text = string.Format(PROJECT_NAME, value.ProjectName); + } + + /// + /// Update project scan progress delegate function. Used for async calls + /// + /// + private void UpdateProjectScanTotalProgress(ScanProgress value) + { + lblTotalScanProgress.Text = string.Format(PROJECT_SCAN_TOTAL_PROGRESS, value.CurrentPosition); + } + + /// + /// Update project project scan progress delegate function. Used for async calls + /// + /// + private void UpdateProjectScanTotalTopProgress(ScanProgress value) + { + lblProgressTotalTop.Text = string.Format(PROJECT_SCAN_TOTAL_PROGRESS, value.CurrentPosition); + } + + /// + /// Update current iteration name delegate function. Used for async calls + /// + /// + private void UpdateCurrentIterationName(ScanProgress value) + { + lblCurrentIterationName.Text = string.Format(CURRENT_ITERATION_NAME_FORMAT, value.RunStatus, value.CurrentStageName); + } + + /// + /// Update current iteration progress status delegate function. Used for async calls + /// + /// + private void UpdateCurrentIterationProgress(ScanProgress value) + { + lblCurrentIterationProgress.Text = string.Format(CURRENT_ITERATION_PROGRESS_FORMAT, value.CurrentStagePercent, value.CurrentStageMessage); + } + + /// + /// Update progress status delegate function. Used for async calls + /// + /// + private void UpdateProgress(ScanProgress value) + { + progressTotal.Minimum = value.StartPosition; + progressTotal.Maximum = value.EndPosition; + progressTotal.Value = value.CurrentPosition; + } + + /// + /// Increment progress delegate function. Used for async calls + /// + /// + private void IncrementProgress(int value) + { + progressMargue1.Increment(value); + } + + /// + /// Clear progress. Fill by empty values + /// + public void Clear() + { + Progress = new ScanProgress(NOT_READY_TEXT, string.Empty, string.Empty, 0, 100, 0); + } + + /// + /// Close view + /// + private void CloseDialogView() + { + Close(); + } + + /// + /// Set dialog visibility delegate function. Used for async calls + /// + /// + private void SetVisiblity(bool visible) + { + Visible = visible; + } + + /// + /// Cancel button event handler + /// + /// + /// + private void btnCancel_Click(object sender, EventArgs e) + { + btnCancel.Enabled = false; + btnCancel.Text = "Canceling"; + } + + /// + /// Details button event handler + /// + /// + /// + private void btnDetails_Click(object sender, EventArgs e) + { + if (pnlDetails.Visible) //if panel need close + { + pnlDetails.Visible = false; + Height = 200; + pnlDetails.Height = 0; + btnDetails.Text = "Details >>"; + } + else // if panel need open + { + pnlDetails.Visible = true; + Height = 400; + pnlDetails.Height = 200; + btnDetails.Text = "<< Details"; + } + } + #endregion + } +} diff --git a/CxViewerAction/Views/ScanProcessFrm.resx b/CxActionShared/Views/ScanProcessFrm.resx similarity index 97% rename from CxViewerAction/Views/ScanProcessFrm.resx rename to CxActionShared/Views/ScanProcessFrm.resx index 5ea0895e..7080a7d1 100644 --- a/CxViewerAction/Views/ScanProcessFrm.resx +++ b/CxActionShared/Views/ScanProcessFrm.resx @@ -1,120 +1,120 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + \ No newline at end of file diff --git a/CxViewerAction/Views/Shapes/NodeButton.cs b/CxActionShared/Views/Shapes/NodeButton.cs similarity index 95% rename from CxViewerAction/Views/Shapes/NodeButton.cs rename to CxActionShared/Views/Shapes/NodeButton.cs index 5e0ee7e3..d5ae3b9e 100644 --- a/CxViewerAction/Views/Shapes/NodeButton.cs +++ b/CxActionShared/Views/Shapes/NodeButton.cs @@ -1,100 +1,100 @@ -using System; -using System.Windows.Forms; -using System.Drawing; -using CxViewerAction.Entities; - -namespace CxViewerAction.Views.Shapes -{ - /// - /// Represent custom button control to place inside graph control - /// - public class NodeButton : Button - { - #region [Private members] - private bool _selected = false; - private TableLayout _tableLayoutInstance; - GraphItem _startNodeItem; - GraphItem _endNodeItem; - - #endregion - - #region [Public Properties] - - public GraphItem StartNodeItem - { - get { return _startNodeItem; } - set { _startNodeItem = value; } - } - - public GraphItem EndNodeItem - { - get { return _endNodeItem; } - set { _endNodeItem = value; } - } - - public TableLayout TableLayoutInstance - { - get { return _tableLayoutInstance; } - set { _tableLayoutInstance = value; } - } - - public bool Selected - { - get { return _selected; } - set { _selected = value; } - } - - #endregion - - #region [Constructors] - - public NodeButton() - : base() - { - Initialize(); - } - - public NodeButton(string buttonText, bool selected) - : base() - { - Initialize(); - - _selected = selected; - - Text = buttonText; - } - - #endregion - - #region [Public Methods] - #endregion - - #region [Private Methods] - - protected override void OnPaint(PaintEventArgs pevent) - { - base.OnPaint(pevent); - } - - protected override void OnPaintBackground(PaintEventArgs pevent) - { - //base.OnPaintBackground(pevent); - } - - private void Initialize() - { - SetStyle(ControlStyles.SupportsTransparentBackColor, true); - SetStyle(ControlStyles.Opaque, true); - SetStyle(ControlStyles.ResizeRedraw, true); - SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint | ControlStyles.DoubleBuffer, true); - - FlatStyle = FlatStyle.Flat; - BackColor = Color.White; - - Width = 300; - Height = 40; - } - - #endregion - } -} +using System; +using System.Windows.Forms; +using System.Drawing; +using CxViewerAction.Entities; + +namespace CxViewerAction.Views.Shapes +{ + /// + /// Represent custom button control to place inside graph control + /// + public class NodeButton : Button + { + #region [Private members] + private bool _selected = false; + private TableLayout _tableLayoutInstance; + GraphItem _startNodeItem; + GraphItem _endNodeItem; + + #endregion + + #region [Public Properties] + + public GraphItem StartNodeItem + { + get { return _startNodeItem; } + set { _startNodeItem = value; } + } + + public GraphItem EndNodeItem + { + get { return _endNodeItem; } + set { _endNodeItem = value; } + } + + public TableLayout TableLayoutInstance + { + get { return _tableLayoutInstance; } + set { _tableLayoutInstance = value; } + } + + public bool Selected + { + get { return _selected; } + set { _selected = value; } + } + + #endregion + + #region [Constructors] + + public NodeButton() + : base() + { + Initialize(); + } + + public NodeButton(string buttonText, bool selected) + : base() + { + Initialize(); + + _selected = selected; + + Text = buttonText; + } + + #endregion + + #region [Public Methods] + #endregion + + #region [Private Methods] + + protected override void OnPaint(PaintEventArgs pevent) + { + base.OnPaint(pevent); + } + + protected override void OnPaintBackground(PaintEventArgs pevent) + { + //base.OnPaintBackground(pevent); + } + + private void Initialize() + { + SetStyle(ControlStyles.SupportsTransparentBackColor, true); + SetStyle(ControlStyles.Opaque, true); + SetStyle(ControlStyles.ResizeRedraw, true); + SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint | ControlStyles.DoubleBuffer, true); + + FlatStyle = FlatStyle.Flat; + BackColor = Color.White; + + Width = 300; + Height = 40; + } + + #endregion + } +} diff --git a/CxViewerAction/Views/Shapes/TableLayout.cs b/CxActionShared/Views/Shapes/TableLayout.cs similarity index 97% rename from CxViewerAction/Views/Shapes/TableLayout.cs rename to CxActionShared/Views/Shapes/TableLayout.cs index 7c97d078..ab61fd9c 100644 --- a/CxViewerAction/Views/Shapes/TableLayout.cs +++ b/CxActionShared/Views/Shapes/TableLayout.cs @@ -1,456 +1,456 @@ -using System; -using System.Windows.Forms; -using CxViewerAction.BaseInterfaces; -using CxViewerAction.Helpers; -using CxViewerAction.Views.DockedView; -using System.Drawing; -using System.Collections.Generic; -using CxViewerAction.Entities; -using System.Drawing.Drawing2D; -using Microsoft.Msagl.Drawing; -using CxViewerAction.Helpers.DrawingHelper; -using CxViewerAction.Resources; -using System.IO; -using System.Drawing.Imaging; -using P2 = Microsoft.Msagl.Point; -using GeomNode = Microsoft.Msagl.Node; -using CxViewerAction.CxVSWebService; - -namespace CxViewerAction.Views.Shapes -{ - public class TableLayout : TableLayoutPanel - { - #region Constructor - - public TableLayout() - { - - } - - #endregion - - #region Variables - - private IGraph _graph; - private IGraphPath _selectedPath; - private EventHandler _pathItemClick; - private Node _prevSelectedNode; - public Microsoft.Msagl.GraphViewerGdi.GViewer gLocalViewer; - internal PointF PointF(P2 p) { return new PointF((float)p.X, (float)p.Y); } - - #endregion - - #region Properties - - public IGraph Graph - { - get { return _graph; } - set { _graph = value; } - } - - public IGraphPath SelectedPath - { - get { return _selectedPath; } - set { _selectedPath = value; } - } - - public EventHandler PathItemClick - { - get { return _pathItemClick; } - set { _pathItemClick = value; } - } - - #endregion - - #region GViewer logic - public void SetGViewer(Microsoft.Msagl.GraphViewerGdi.GViewer gViewer) - { - gLocalViewer = gViewer; - gLocalViewer.MouseClick += new System.Windows.Forms.MouseEventHandler(gViewer_MouseClick); - } - - void gViewer_MouseClick(object sender, System.Windows.Forms.MouseEventArgs e) - { - try - { - if (gLocalViewer.SelectedObject != null) - { - if (gLocalViewer.SelectedObject is Microsoft.Msagl.Drawing.Node) - { - SelectNodeGraph(); - } - else - { - if (gLocalViewer.SelectedObject is Microsoft.Msagl.Drawing.Edge) - { - SelectEdgeGraph(); - } - } - } - } - catch (Exception err) - { - Common.Logger.Create().Error(err.ToString()); - } - } - - void SelectNodeGraph() - { - // TODO: select nodes in selected Path - Node selectedNode = gLocalViewer.SelectedObject as Node; - if (selectedNode != null) - { - if (_prevSelectedNode != null) - { - IGraphItem prevItem = _prevSelectedNode.UserData as GraphItem; - if (prevItem != null) - { - prevItem.IsSelected = false; - _prevSelectedNode.UserData = prevItem; - } - } - - GraphItem item = selectedNode.UserData as GraphItem; - - ColorButton.ColorButton nodeButton = new ColorButton.ColorButton(); - nodeButton.Text = selectedNode.Id; - nodeButton.Anchor = AnchorStyles.Top; - nodeButton.Tag = item; - _selectedPath = null; - if (item.CurrentPathIndex > 0) - DrawingHelper.SelectedPathItemUniqueID = item.QueryItem.Paths[item.CurrentPathIndex - 1].UniqueID; - DrawingHelper.SelectedNodeUniqueID = item.UniqueID; - DrawingHelper.isEdgeSelected = false; - //ChangeSelectedFile(nodeButton, null); - if (_pathItemClick != null) - { - _pathItemClick(item.QueryItem.Paths[item.CurrentPathIndex - 1], null); - } - gLocalViewer.Refresh(); - gLocalViewer.ResumeLayout(); - gLocalViewer.Update(); - //_prevSelectedNode = selectedNode; - } - } - - void SelectEdgeGraph() - { - try - { - // Fix problem with redrawing selected edge.(msagl bug) - gLocalViewer.PanButtonPressed = true; - Point pt = Cursor.Position; - pt.X += 120; - pt.Y += 100; - Cursor.Position = pt; - - // TODO: select nodes in selected Path - Edge selectedEdge = gLocalViewer.SelectedObject as Edge; - if (selectedEdge != null) - { - selectedEdge.Attr.Color = Microsoft.Msagl.Drawing.Color.Black; - selectedEdge.Attr.LineWidth = 2; - selectedEdge.Attr.Weight = 2; - - Node sourceNode = selectedEdge.SourceNode as Node; - Node selectedNode = sourceNode; - Node targetNode = selectedEdge.TargetNode as Node; - selectedNode = targetNode; - - GraphItem item = targetNode.UserData as GraphItem; - if (item == null) - return; - - GraphItem itemSource = sourceNode.UserData as GraphItem; - - if (itemSource.CurrentPathIndex > 0) - DrawingHelper.SelectedPathItem1UniqueID = itemSource.QueryItem.Paths[itemSource.CurrentPathIndex - 1].UniqueID; - - if (item.CurrentPathIndex > 0) - DrawingHelper.SelectedPathItem2UniqueID = item.QueryItem.Paths[item.CurrentPathIndex - 1].UniqueID; - DrawingHelper.SelectedNodeUniqueID = item.UniqueID; - DrawingHelper.isEdgeSelected = true; - ColorButton.ColorButton nodeButton = new ColorButton.ColorButton(); - nodeButton.Text = selectedNode.Id; - nodeButton.Anchor = AnchorStyles.Top; - nodeButton.Tag = item; - _selectedPath = selectedEdge.UserData as IGraphPath; - //ChangeSelectedFile(nodeButton, null); - if (_pathItemClick != null) - { - _pathItemClick(item.QueryItem.Paths[item.CurrentPathIndex - 1], null); - } - gLocalViewer.Refresh(); - gLocalViewer.ResumeLayout(); - gLocalViewer.Update(); - _prevSelectedNode = selectedNode; - } - } - finally - { - gLocalViewer.PanButtonPressed = false; - } - } - - public void SelectEdgeGraphByPath(GraphItem itemSource, GraphItem item, IGraphPath selectedPath) - { - if (itemSource.CurrentPathIndex > 0) - DrawingHelper.SelectedPathItem1UniqueID = itemSource.UniqueID; - - if (item.CurrentPathIndex > 0) - DrawingHelper.SelectedPathItem2UniqueID = item.UniqueID; - DrawingHelper.SelectedNodeUniqueID = item.UniqueID; - DrawingHelper.isEdgeSelected = true; - ColorButton.ColorButton nodeButton = new ColorButton.ColorButton(); - nodeButton.Text = itemSource.ID; - nodeButton.Anchor = AnchorStyles.Top; - nodeButton.Tag = item; - _selectedPath = selectedPath; - gLocalViewer.Refresh(); - gLocalViewer.ResumeLayout(); - gLocalViewer.Update(); - } - - public IGraphPath FindPath(CxWSResultPath queryItem) - { - if (_graph == null || _graph.Paths == null) - return null; - //gLocalViewer.Graph.Edges.Clear(); - //gLocalViewer.Graph.NodeMap.Clear(); - foreach (IGraphPath path in _graph.Paths) - { - if (path.DirectFlow.Count == queryItem.Nodes.Length) - { - bool isFound = true; - for (int i = 0; i < path.DirectFlow.Count; i++) - { - IGraphItem item = path.DirectFlow[i]; - CxWSPathNode pathItem = queryItem.Nodes[i]; - - if (item.Name != pathItem.Name || item.Line != pathItem.Line || item.Column != pathItem.Column) - { - isFound = false; - break; - } - } - - if (isFound) - return path; - } // Check in cases when path contain 1 element, graph contain 2 - else if (path.DirectFlow.Count == 2 && queryItem.Nodes.Length == 1) - { - IGraphItem item1 = path.DirectFlow[0]; - IGraphItem item2 = path.DirectFlow[1]; - CxWSPathNode pathItem = queryItem.Nodes[0]; - - if (item1.CompareTo(item2) == 0 && item1.CompareTo(pathItem) == 0) - return path; - } - else if (path.DirectFlow.Count == 2 && queryItem.Nodes.Length > 2) - { - GraphItem item1 = path.DirectFlow[0]; - GraphItem item2 = path.DirectFlow[1]; - - CxWSPathNode pathItem1 = queryItem.Nodes[0]; - CxWSPathNode pathItem2 = queryItem.Nodes[queryItem.Nodes.Length - 1]; - if (item1.CompareTo(pathItem1) == 0 && item2.CompareTo(pathItem2) == 0) - return path; - } - } - - return null; - } - - public IGraphPath FindPath(Entities.WebServiceEntity.ReportQueryItemResult queryItem) - { - if (_graph == null || _graph.Paths == null) - return null; - //gLocalViewer.Graph.Edges.Clear(); - //gLocalViewer.Graph.NodeMap.Clear(); - foreach (IGraphPath path in _graph.Paths) - { - if (path.DirectFlow.Count == queryItem.Paths.Count) - { - bool isFound = true; - for (int i = 0; i < path.DirectFlow.Count; i++) - { - IGraphItem item = path.DirectFlow[i]; - Entities.WebServiceEntity.ReportQueryItemPathResult pathItem = queryItem.Paths[i]; - - if (item.Name != pathItem.Name || item.Line != pathItem.Line || item.Column != pathItem.Column) - { - isFound = false; - break; - } - } - - if (isFound) - return path; - } // Check in cases when path contain 1 element, graph contain 2 - else if (path.DirectFlow.Count == 2 && queryItem.Paths.Count == 1) - { - IGraphItem item1 = path.DirectFlow[0]; - IGraphItem item2 = path.DirectFlow[1]; - Entities.WebServiceEntity.ReportQueryItemPathResult pathItem = queryItem.Paths[0]; - - if (item1.CompareTo(item2) == 0 && item1.CompareTo(pathItem) == 0) - return path; - } - else if (path.DirectFlow.Count == 2 && queryItem.Paths.Count > 2) - { - GraphItem item1 = path.DirectFlow[0]; - GraphItem item2 = path.DirectFlow[1]; - - Entities.WebServiceEntity.ReportQueryItemPathResult pathItem1 = queryItem.Paths[0]; - Entities.WebServiceEntity.ReportQueryItemPathResult pathItem2 = queryItem.Paths[queryItem.Paths.Count - 1]; - if (item1.CompareTo(pathItem1) == 0 && item2.CompareTo(pathItem2) == 0) - return path; - } - } - - return null; - } - - #endregion - - #region Drawing - - /// - /// Execute graph drawing - /// - public void DrawGraph() - { - for (int j = 0; j < _graph.Paths.Count; j++) - { - IGraphPath path = _graph.Paths[j]; - DrawGraphPath(path); - } - - } - - /// - /// Generate sequence of controls for graph path - /// - /// - private void DrawGraphPath(IGraphPath path) - { - foreach (GraphItem item in path.DirectFlow) - { - DrawGraphItem(item); - } - } - - /// - /// Generate sequence of controls for graph path item - /// - /// - /// - /// - private void DrawGraphItem(GraphItem item) - { - if (item.IsPrimary) - { - #region [Verify that element is currently selected] - bool selected = item.Parent == _selectedPath; - - // or one of related to current element is in selected state - if (!selected) - { - foreach (GraphItem i in item.RelationsFrom) - { - if (i.Parent == _selectedPath) - { - break; - } - } - } - item.IsSelected = selected; - #endregion - - if (item.RelationsFrom.Count >= _graph.MaxRelations) - { - item.IsMultiReletions = true; - } - } - } - - public void DrawConnectors() - { - if (_graph == null) - return; - - try - { - DrawingHelper.maxReletions = 2; - DrawingHelper.IsBuilding = true; - - Microsoft.Msagl.Drawing.Graph graph = new Microsoft.Msagl.Drawing.Graph(); - if (gLocalViewer.Graph != null) - graph = gLocalViewer.Graph; - - graph.Attr.NodeSeparation = 100; - graph.Attr.Margin = 100; - - foreach (IGraphPath path in _graph.Paths) - DrawPathConnections(path, false, graph); - - DrawPathConnections(_selectedPath, true, graph); - - DrawingHelper.SetColorOfMultiReletionNodes(graph); - - DrawGraph(graph); - } - catch (Exception ex) - { - Common.Logger.Create().Error(ex.ToString()); - } - finally - { - DrawingHelper.IsBuilding = false; - } - } - - void DrawGraph(Microsoft.Msagl.Drawing.Graph graph) - { - if (gLocalViewer.InvokeRequired) - { - gLocalViewer.Invoke(new MethodInvoker(delegate() { DrawGraph(graph); })); - return; - } - try - { - gLocalViewer.Graph = graph; - } - catch (Exception err) - { - Common.Logger.Create().Error(err.ToString()); - } - } - - private void DrawPathConnections(IGraphPath path, bool isSelected, Microsoft.Msagl.Drawing.Graph graph) - { - if (path == null || path.DirectFlow.Count <= 1) - return; - - graph.Attr.MinNodeHeight = 40; - graph.Attr.MinNodeWidth = 110; - - GraphItem prev = path.DirectFlow[0]; - GraphItem next = path.DirectFlow[1]; - - if (prev.RelatedTo != null) - prev = (GraphItem)prev.RelatedTo; - - if (next.RelatedTo != null) - next = (GraphItem)next.RelatedTo; - - if (prev == null || next == null) - return; - - DrawingHelper.DrawArrow(gLocalViewer, prev, next, isSelected, graph, path); - - } - - #endregion - } -} +using System; +using System.Windows.Forms; +using CxViewerAction.BaseInterfaces; +using CxViewerAction.Helpers; +using CxViewerAction.Views.DockedView; +using System.Drawing; +using System.Collections.Generic; +using CxViewerAction.Entities; +using System.Drawing.Drawing2D; +using Microsoft.Msagl.Drawing; +using CxViewerAction.Helpers.DrawingHelper; +using CxViewerAction.Resources; +using System.IO; +using System.Drawing.Imaging; +using P2 = Microsoft.Msagl.Point; +using GeomNode = Microsoft.Msagl.Node; +using CxViewerAction.CxVSWebService; + +namespace CxViewerAction.Views.Shapes +{ + public class TableLayout : TableLayoutPanel + { + #region Constructor + + public TableLayout() + { + + } + + #endregion + + #region Variables + + private IGraph _graph; + private IGraphPath _selectedPath; + private EventHandler _pathItemClick; + private Node _prevSelectedNode; + public Microsoft.Msagl.GraphViewerGdi.GViewer gLocalViewer; + internal PointF PointF(P2 p) { return new PointF((float)p.X, (float)p.Y); } + + #endregion + + #region Properties + + public IGraph Graph + { + get { return _graph; } + set { _graph = value; } + } + + public IGraphPath SelectedPath + { + get { return _selectedPath; } + set { _selectedPath = value; } + } + + public EventHandler PathItemClick + { + get { return _pathItemClick; } + set { _pathItemClick = value; } + } + + #endregion + + #region GViewer logic + public void SetGViewer(Microsoft.Msagl.GraphViewerGdi.GViewer gViewer) + { + gLocalViewer = gViewer; + gLocalViewer.MouseClick += new System.Windows.Forms.MouseEventHandler(gViewer_MouseClick); + } + + void gViewer_MouseClick(object sender, System.Windows.Forms.MouseEventArgs e) + { + try + { + if (gLocalViewer.SelectedObject != null) + { + if (gLocalViewer.SelectedObject is Microsoft.Msagl.Drawing.Node) + { + SelectNodeGraph(); + } + else + { + if (gLocalViewer.SelectedObject is Microsoft.Msagl.Drawing.Edge) + { + SelectEdgeGraph(); + } + } + } + } + catch (Exception err) + { + Common.Logger.Create().Error(err.ToString()); + } + } + + void SelectNodeGraph() + { + // TODO: select nodes in selected Path + Node selectedNode = gLocalViewer.SelectedObject as Node; + if (selectedNode != null) + { + if (_prevSelectedNode != null) + { + IGraphItem prevItem = _prevSelectedNode.UserData as GraphItem; + if (prevItem != null) + { + prevItem.IsSelected = false; + _prevSelectedNode.UserData = prevItem; + } + } + + GraphItem item = selectedNode.UserData as GraphItem; + + ColorButton.ColorButton nodeButton = new ColorButton.ColorButton(); + nodeButton.Text = selectedNode.Id; + nodeButton.Anchor = AnchorStyles.Top; + nodeButton.Tag = item; + _selectedPath = null; + if (item.CurrentPathIndex > 0) + DrawingHelper.SelectedPathItemUniqueID = item.QueryItem.Paths[item.CurrentPathIndex - 1].UniqueID; + DrawingHelper.SelectedNodeUniqueID = item.UniqueID; + DrawingHelper.isEdgeSelected = false; + //ChangeSelectedFile(nodeButton, null); + if (_pathItemClick != null) + { + _pathItemClick(item.QueryItem.Paths[item.CurrentPathIndex - 1], null); + } + gLocalViewer.Refresh(); + gLocalViewer.ResumeLayout(); + gLocalViewer.Update(); + //_prevSelectedNode = selectedNode; + } + } + + void SelectEdgeGraph() + { + try + { + // Fix problem with redrawing selected edge.(msagl bug) + gLocalViewer.PanButtonPressed = true; + Point pt = Cursor.Position; + pt.X += 120; + pt.Y += 100; + Cursor.Position = pt; + + // TODO: select nodes in selected Path + Edge selectedEdge = gLocalViewer.SelectedObject as Edge; + if (selectedEdge != null) + { + selectedEdge.Attr.Color = Microsoft.Msagl.Drawing.Color.Black; + selectedEdge.Attr.LineWidth = 2; + selectedEdge.Attr.Weight = 2; + + Node sourceNode = selectedEdge.SourceNode as Node; + Node selectedNode = sourceNode; + Node targetNode = selectedEdge.TargetNode as Node; + selectedNode = targetNode; + + GraphItem item = targetNode.UserData as GraphItem; + if (item == null) + return; + + GraphItem itemSource = sourceNode.UserData as GraphItem; + + if (itemSource.CurrentPathIndex > 0) + DrawingHelper.SelectedPathItem1UniqueID = itemSource.QueryItem.Paths[itemSource.CurrentPathIndex - 1].UniqueID; + + if (item.CurrentPathIndex > 0) + DrawingHelper.SelectedPathItem2UniqueID = item.QueryItem.Paths[item.CurrentPathIndex - 1].UniqueID; + DrawingHelper.SelectedNodeUniqueID = item.UniqueID; + DrawingHelper.isEdgeSelected = true; + ColorButton.ColorButton nodeButton = new ColorButton.ColorButton(); + nodeButton.Text = selectedNode.Id; + nodeButton.Anchor = AnchorStyles.Top; + nodeButton.Tag = item; + _selectedPath = selectedEdge.UserData as IGraphPath; + //ChangeSelectedFile(nodeButton, null); + if (_pathItemClick != null) + { + _pathItemClick(item.QueryItem.Paths[item.CurrentPathIndex - 1], null); + } + gLocalViewer.Refresh(); + gLocalViewer.ResumeLayout(); + gLocalViewer.Update(); + _prevSelectedNode = selectedNode; + } + } + finally + { + gLocalViewer.PanButtonPressed = false; + } + } + + public void SelectEdgeGraphByPath(GraphItem itemSource, GraphItem item, IGraphPath selectedPath) + { + if (itemSource.CurrentPathIndex > 0) + DrawingHelper.SelectedPathItem1UniqueID = itemSource.UniqueID; + + if (item.CurrentPathIndex > 0) + DrawingHelper.SelectedPathItem2UniqueID = item.UniqueID; + DrawingHelper.SelectedNodeUniqueID = item.UniqueID; + DrawingHelper.isEdgeSelected = true; + ColorButton.ColorButton nodeButton = new ColorButton.ColorButton(); + nodeButton.Text = itemSource.ID; + nodeButton.Anchor = AnchorStyles.Top; + nodeButton.Tag = item; + _selectedPath = selectedPath; + gLocalViewer.Refresh(); + gLocalViewer.ResumeLayout(); + gLocalViewer.Update(); + } + + public IGraphPath FindPath(CxWSResultPath queryItem) + { + if (_graph == null || _graph.Paths == null) + return null; + //gLocalViewer.Graph.Edges.Clear(); + //gLocalViewer.Graph.NodeMap.Clear(); + foreach (IGraphPath path in _graph.Paths) + { + if (path.DirectFlow.Count == queryItem.Nodes.Length) + { + bool isFound = true; + for (int i = 0; i < path.DirectFlow.Count; i++) + { + IGraphItem item = path.DirectFlow[i]; + CxWSPathNode pathItem = queryItem.Nodes[i]; + + if (item.Name != pathItem.Name || item.Line != pathItem.Line || item.Column != pathItem.Column) + { + isFound = false; + break; + } + } + + if (isFound) + return path; + } // Check in cases when path contain 1 element, graph contain 2 + else if (path.DirectFlow.Count == 2 && queryItem.Nodes.Length == 1) + { + IGraphItem item1 = path.DirectFlow[0]; + IGraphItem item2 = path.DirectFlow[1]; + CxWSPathNode pathItem = queryItem.Nodes[0]; + + if (item1.CompareTo(item2) == 0 && item1.CompareTo(pathItem) == 0) + return path; + } + else if (path.DirectFlow.Count == 2 && queryItem.Nodes.Length > 2) + { + GraphItem item1 = path.DirectFlow[0]; + GraphItem item2 = path.DirectFlow[1]; + + CxWSPathNode pathItem1 = queryItem.Nodes[0]; + CxWSPathNode pathItem2 = queryItem.Nodes[queryItem.Nodes.Length - 1]; + if (item1.CompareTo(pathItem1) == 0 && item2.CompareTo(pathItem2) == 0) + return path; + } + } + + return null; + } + + public IGraphPath FindPath(Entities.WebServiceEntity.ReportQueryItemResult queryItem) + { + if (_graph == null || _graph.Paths == null) + return null; + //gLocalViewer.Graph.Edges.Clear(); + //gLocalViewer.Graph.NodeMap.Clear(); + foreach (IGraphPath path in _graph.Paths) + { + if (path.DirectFlow.Count == queryItem.Paths.Count) + { + bool isFound = true; + for (int i = 0; i < path.DirectFlow.Count; i++) + { + IGraphItem item = path.DirectFlow[i]; + Entities.WebServiceEntity.ReportQueryItemPathResult pathItem = queryItem.Paths[i]; + + if (item.Name != pathItem.Name || item.Line != pathItem.Line || item.Column != pathItem.Column) + { + isFound = false; + break; + } + } + + if (isFound) + return path; + } // Check in cases when path contain 1 element, graph contain 2 + else if (path.DirectFlow.Count == 2 && queryItem.Paths.Count == 1) + { + IGraphItem item1 = path.DirectFlow[0]; + IGraphItem item2 = path.DirectFlow[1]; + Entities.WebServiceEntity.ReportQueryItemPathResult pathItem = queryItem.Paths[0]; + + if (item1.CompareTo(item2) == 0 && item1.CompareTo(pathItem) == 0) + return path; + } + else if (path.DirectFlow.Count == 2 && queryItem.Paths.Count > 2) + { + GraphItem item1 = path.DirectFlow[0]; + GraphItem item2 = path.DirectFlow[1]; + + Entities.WebServiceEntity.ReportQueryItemPathResult pathItem1 = queryItem.Paths[0]; + Entities.WebServiceEntity.ReportQueryItemPathResult pathItem2 = queryItem.Paths[queryItem.Paths.Count - 1]; + if (item1.CompareTo(pathItem1) == 0 && item2.CompareTo(pathItem2) == 0) + return path; + } + } + + return null; + } + + #endregion + + #region Drawing + + /// + /// Execute graph drawing + /// + public void DrawGraph() + { + for (int j = 0; j < _graph.Paths.Count; j++) + { + IGraphPath path = _graph.Paths[j]; + DrawGraphPath(path); + } + + } + + /// + /// Generate sequence of controls for graph path + /// + /// + private void DrawGraphPath(IGraphPath path) + { + foreach (GraphItem item in path.DirectFlow) + { + DrawGraphItem(item); + } + } + + /// + /// Generate sequence of controls for graph path item + /// + /// + /// + /// + private void DrawGraphItem(GraphItem item) + { + if (item.IsPrimary) + { + #region [Verify that element is currently selected] + bool selected = item.Parent == _selectedPath; + + // or one of related to current element is in selected state + if (!selected) + { + foreach (GraphItem i in item.RelationsFrom) + { + if (i.Parent == _selectedPath) + { + break; + } + } + } + item.IsSelected = selected; + #endregion + + if (item.RelationsFrom.Count >= _graph.MaxRelations) + { + item.IsMultiReletions = true; + } + } + } + + public void DrawConnectors() + { + if (_graph == null) + return; + + try + { + DrawingHelper.maxReletions = 2; + DrawingHelper.IsBuilding = true; + + Microsoft.Msagl.Drawing.Graph graph = new Microsoft.Msagl.Drawing.Graph(); + if (gLocalViewer.Graph != null) + graph = gLocalViewer.Graph; + + graph.Attr.NodeSeparation = 100; + graph.Attr.Margin = 100; + + foreach (IGraphPath path in _graph.Paths) + DrawPathConnections(path, false, graph); + + DrawPathConnections(_selectedPath, true, graph); + + DrawingHelper.SetColorOfMultiReletionNodes(graph); + + DrawGraph(graph); + } + catch (Exception ex) + { + Common.Logger.Create().Error(ex.ToString()); + } + finally + { + DrawingHelper.IsBuilding = false; + } + } + + void DrawGraph(Microsoft.Msagl.Drawing.Graph graph) + { + if (gLocalViewer.InvokeRequired) + { + gLocalViewer.Invoke(new MethodInvoker(delegate() { DrawGraph(graph); })); + return; + } + try + { + gLocalViewer.Graph = graph; + } + catch (Exception err) + { + Common.Logger.Create().Error(err.ToString()); + } + } + + private void DrawPathConnections(IGraphPath path, bool isSelected, Microsoft.Msagl.Drawing.Graph graph) + { + if (path == null || path.DirectFlow.Count <= 1) + return; + + graph.Attr.MinNodeHeight = 40; + graph.Attr.MinNodeWidth = 110; + + GraphItem prev = path.DirectFlow[0]; + GraphItem next = path.DirectFlow[1]; + + if (prev.RelatedTo != null) + prev = (GraphItem)prev.RelatedTo; + + if (next.RelatedTo != null) + next = (GraphItem)next.RelatedTo; + + if (prev == null || next == null) + return; + + DrawingHelper.DrawArrow(gLocalViewer, prev, next, isSelected, graph, path); + + } + + #endregion + } +} diff --git a/CxActionShared/Views/SubmitUserFrm.Designer.cs b/CxActionShared/Views/SubmitUserFrm.Designer.cs new file mode 100644 index 00000000..11404dd2 --- /dev/null +++ b/CxActionShared/Views/SubmitUserFrm.Designer.cs @@ -0,0 +1,141 @@ + +namespace CxViewerAction.Views +{ + partial class SubmitUserFrm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SubmitUserFrm)); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.btnsubmituser = new System.Windows.Forms.Button(); + this.txtInvUserName = new System.Windows.Forms.TextBox(); + this.txtInvPassword = new System.Windows.Forms.TextBox(); + this.lbInvlPassword = new System.Windows.Forms.Label(); + this.lblInvUserName = new System.Windows.Forms.Label(); + this.groupBox1.SuspendLayout(); + this.SuspendLayout(); + // + // groupBox1 + // + this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.groupBox1.Controls.Add(this.btnsubmituser); + this.groupBox1.Controls.Add(this.txtInvUserName); + this.groupBox1.Controls.Add(this.txtInvPassword); + this.groupBox1.Controls.Add(this.lbInvlPassword); + this.groupBox1.Controls.Add(this.lblInvUserName); + this.groupBox1.Location = new System.Drawing.Point(96, 34); + this.groupBox1.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Padding = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.groupBox1.Size = new System.Drawing.Size(521, 215); + this.groupBox1.TabIndex = 2; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Submit login details"; + // + // btnsubmituser + // + this.btnsubmituser.DialogResult = System.Windows.Forms.DialogResult.OK; + this.btnsubmituser.Location = new System.Drawing.Point(209, 145); + this.btnsubmituser.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.btnsubmituser.Name = "btnsubmituser"; + this.btnsubmituser.Size = new System.Drawing.Size(145, 41); + this.btnsubmituser.TabIndex = 3; + this.btnsubmituser.Text = "Submit"; + this.btnsubmituser.UseVisualStyleBackColor = true; + this.btnsubmituser.Click += new System.EventHandler(this.btnsubmituser_Click); + // + // txtInvUserName + // + this.txtInvUserName.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.txtInvUserName.Location = new System.Drawing.Point(195, 38); + this.txtInvUserName.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.txtInvUserName.MaxLength = 50; + this.txtInvUserName.Name = "txtInvUserName"; + this.txtInvUserName.Size = new System.Drawing.Size(223, 26); + this.txtInvUserName.TabIndex = 1; + // + // txtInvPassword + // + this.txtInvPassword.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.txtInvPassword.Location = new System.Drawing.Point(195, 96); + this.txtInvPassword.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.txtInvPassword.MaxLength = 50; + this.txtInvPassword.Name = "txtInvPassword"; + this.txtInvPassword.PasswordChar = '*'; + this.txtInvPassword.Size = new System.Drawing.Size(223, 26); + this.txtInvPassword.TabIndex = 2; + // + // lbInvlPassword + // + this.lbInvlPassword.AutoSize = true; + this.lbInvlPassword.Location = new System.Drawing.Point(77, 96); + this.lbInvlPassword.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.lbInvlPassword.Name = "lbInvlPassword"; + this.lbInvlPassword.Size = new System.Drawing.Size(78, 20); + this.lbInvlPassword.TabIndex = 1; + this.lbInvlPassword.Text = "Password"; + // + // lblInvUserName + // + this.lblInvUserName.AutoSize = true; + this.lblInvUserName.Location = new System.Drawing.Point(77, 44); + this.lblInvUserName.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.lblInvUserName.Name = "lblInvUserName"; + this.lblInvUserName.Size = new System.Drawing.Size(89, 20); + this.lblInvUserName.TabIndex = 0; + this.lblInvUserName.Text = "User Name"; + // + // SubmitUserFrm + // + this.AcceptButton = this.btnsubmituser; + this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(731, 263); + this.Controls.Add(this.groupBox1); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "SubmitUserFrm"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Login"; + this.groupBox1.ResumeLayout(false); + this.groupBox1.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.Button btnsubmituser; + private System.Windows.Forms.TextBox txtInvUserName; + private System.Windows.Forms.TextBox txtInvPassword; + private System.Windows.Forms.Label lbInvlPassword; + private System.Windows.Forms.Label lblInvUserName; + } +} \ No newline at end of file diff --git a/CxActionShared/Views/SubmitUserFrm.cs b/CxActionShared/Views/SubmitUserFrm.cs new file mode 100644 index 00000000..c752cf8e --- /dev/null +++ b/CxActionShared/Views/SubmitUserFrm.cs @@ -0,0 +1,173 @@ +using Common; +using CxViewerAction.Entities; +using CxViewerAction.Services; +using System; +using System.Net; +using System.Windows.Forms; + +namespace CxViewerAction.Views +{ + /// + /// SubmitUserFrm + /// + public partial class SubmitUserFrm : Form + { + public event EventHandler UserClosedForm; + + private LoginData _login; + /// + /// SubmitUserFrm + /// + public SubmitUserFrm(LoginData login) + { + _login = login; + InitializeComponent(); + } + /// + /// CloseForm + /// + public void CloseForm() + { + if (InvokeRequired) + { + Invoke(new MethodInvoker(CloseForm)); + return; + } + + Hide(); + } + private static CxRESTApi cxRestApi = null; + + static LoginData loginCache = null; + + private static string server; + /// + /// Close dialog + /// + public void CloseView() + { + this.Close(); + } + + /// + /// Show modal dialog + /// + /// + public virtual DialogResult ShowModalView() + { + return this.ShowDialog(); + } + + /// + /// Gets or sets User Name + /// + public string UserName + { + get { return txtInvUserName.Text; } + set { txtInvUserName.Text = value; } + } + + /// + /// Gets or sets User Name + /// + public string Password + { + get { return txtInvPassword.Text; } + set { txtInvPassword.Text = value; } + } + /// + /// Show modal dialog + /// + /// Parent view container + /// + public virtual DialogResult ShowModalView(IView parent) + { + return this.ShowDialog((IWin32Window)parent); + } + + /// + /// Show non modal dialog + /// + public void ShowView() + { + this.Show(); + } + + /// + /// Show non modal dialog + /// + /// Parent view container + public void ShowView(IView parent) + { + this.Show((IWin32Window)parent); + } + private void btnsubmituser_Click(object sender, EventArgs e) + { + string username = txtInvUserName.Text; + string password = txtInvPassword.Text; + + + if (!string.IsNullOrWhiteSpace(username) && !string.IsNullOrWhiteSpace(password)) + { + string accessToken = null; + try + { + cxRestApi = new CxRESTApi(_login); + accessToken = cxRestApi.LoginUserNamePassword(username, password); + cxRestApi.GetPermissions(accessToken); + } + catch (WebException ex) + { + Logger.Create().Error(ex.Message, ex); + this.DialogResult = DialogResult.Cancel; + } + catch (Exception ex) + { + Logger.Create().Error(ex.Message, ex); + this.DialogResult = DialogResult.Cancel; + } + finally + { + } + + if (!string.IsNullOrWhiteSpace(accessToken)) + { + this.DialogResult = DialogResult.OK; + } + else + { + this.DialogResult = DialogResult.Cancel; + } + + } + + else + { + MessageBox.Show("Please enter valid credentials."); + this.DialogResult = DialogResult.Retry; + // txtInvUserName.Clear(); + // txtInvPassword.Clear(); + // txtInvUserName.Focus(); + // this. = false; + // this.CloseForm(); + //// SubmitUserFrm submitUserFrm = new SubmitUserFrm(); + // this.ShowModalView(); + // //this.DialogResult = DialogResult.Retry; + //// e.Cancel = (window == DialogResult.No); + } + + } + private void SamlLoginFrm_FormClosing(object sender, FormClosingEventArgs e) + { + e.Cancel = true; + CloseForm(); + if (e.CloseReason == CloseReason.UserClosing) + { + if (UserClosedForm != null) + { + UserClosedForm(this, new EventArgs()); + } + } + } + } +} diff --git a/CxActionShared/Views/SubmitUserFrm.resx b/CxActionShared/Views/SubmitUserFrm.resx new file mode 100644 index 00000000..17370599 --- /dev/null +++ b/CxActionShared/Views/SubmitUserFrm.resx @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\Checkmarx-X31.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/CxViewerAction/Views/UploadFrm.Designer.cs b/CxActionShared/Views/UploadFrm.Designer.cs similarity index 97% rename from CxViewerAction/Views/UploadFrm.Designer.cs rename to CxActionShared/Views/UploadFrm.Designer.cs index a2dd4427..9f77b360 100644 --- a/CxViewerAction/Views/UploadFrm.Designer.cs +++ b/CxActionShared/Views/UploadFrm.Designer.cs @@ -1,208 +1,208 @@ -namespace CxViewerAction.Views -{ - partial class UploadFrm - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - this.btnOK = new System.Windows.Forms.Button(); - this.btnCancel = new System.Windows.Forms.Button(); - this.lblPreset = new System.Windows.Forms.Label(); - this.txtDescription = new System.Windows.Forms.TextBox(); - this.lblDescription = new System.Windows.Forms.Label(); - this.txtProjectName = new System.Windows.Forms.TextBox(); - this.lblProject = new System.Windows.Forms.Label(); - this.cmbPreset = new System.Windows.Forms.ComboBox(); - this.errorProvider = new System.Windows.Forms.ErrorProvider(this.components); - this.cbPublic = new System.Windows.Forms.CheckBox(); - this.labelTeam = new System.Windows.Forms.Label(); - this.cmbTeams = new System.Windows.Forms.ComboBox(); - ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit(); - this.SuspendLayout(); - // - // btnOK - // - this.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK; - this.btnOK.Location = new System.Drawing.Point(278, 183); - this.btnOK.Name = "btnOK"; - this.btnOK.Size = new System.Drawing.Size(75, 23); - this.btnOK.TabIndex = 15; - this.btnOK.Text = "OK"; - this.btnOK.UseVisualStyleBackColor = true; - this.btnOK.Click += new System.EventHandler(this.btnOK_Click); - // - // btnCancel - // - this.btnCancel.CausesValidation = false; - this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.btnCancel.Location = new System.Drawing.Point(359, 183); - this.btnCancel.Name = "btnCancel"; - this.btnCancel.Size = new System.Drawing.Size(75, 23); - this.btnCancel.TabIndex = 14; - this.btnCancel.Text = "Cancel"; - this.btnCancel.UseVisualStyleBackColor = true; - // - // lblPreset - // - this.lblPreset.AutoSize = true; - this.lblPreset.Location = new System.Drawing.Point(12, 119); - this.lblPreset.Name = "lblPreset"; - this.lblPreset.Size = new System.Drawing.Size(40, 13); - this.lblPreset.TabIndex = 12; - this.lblPreset.Text = "Preset:"; - // - // txtDescription - // - this.txtDescription.Location = new System.Drawing.Point(122, 32); - this.txtDescription.MaxLength = 255; - this.txtDescription.Multiline = true; - this.txtDescription.Name = "txtDescription"; - this.txtDescription.Size = new System.Drawing.Size(312, 78); - this.txtDescription.TabIndex = 11; - // - // lblDescription - // - this.lblDescription.AutoSize = true; - this.lblDescription.Location = new System.Drawing.Point(12, 35); - this.lblDescription.Name = "lblDescription"; - this.lblDescription.Size = new System.Drawing.Size(63, 13); - this.lblDescription.TabIndex = 10; - this.lblDescription.Text = "Description:"; - // - // txtProjectName - // - this.txtProjectName.Location = new System.Drawing.Point(122, 6); - this.txtProjectName.MaxLength = 200; - this.txtProjectName.Name = "txtProjectName"; - this.txtProjectName.Size = new System.Drawing.Size(312, 20); - this.txtProjectName.TabIndex = 9; - this.txtProjectName.KeyUp += new System.Windows.Forms.KeyEventHandler(this.txtProjectName_KeyUp); - // - // lblProject - // - this.lblProject.AutoSize = true; - this.lblProject.Location = new System.Drawing.Point(12, 9); - this.lblProject.Name = "lblProject"; - this.lblProject.Size = new System.Drawing.Size(74, 13); - this.lblProject.TabIndex = 8; - this.lblProject.Text = "Project Name:"; - // - // cmbPreset - // - this.cmbPreset.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.cmbPreset.FormattingEnabled = true; - this.cmbPreset.Items.AddRange(new object[] { - "All"}); - this.cmbPreset.Location = new System.Drawing.Point(122, 116); - this.cmbPreset.Name = "cmbPreset"; - this.cmbPreset.Size = new System.Drawing.Size(312, 21); - this.cmbPreset.TabIndex = 16; - this.cmbPreset.KeyUp += new System.Windows.Forms.KeyEventHandler(this.cmbPreset_KeyUp); - // - // errorProvider - // - this.errorProvider.ContainerControl = this; - // - // cbPublic - // - this.cbPublic.AutoSize = true; - this.cbPublic.Checked = true; - this.cbPublic.CheckState = System.Windows.Forms.CheckState.Checked; - this.cbPublic.Location = new System.Drawing.Point(15, 187); - this.cbPublic.Name = "cbPublic"; - this.cbPublic.Size = new System.Drawing.Size(187, 17); - this.cbPublic.TabIndex = 17; - this.cbPublic.Text = "Make project visible to other users"; - this.cbPublic.UseVisualStyleBackColor = true; - // - // labelTeam - // - this.labelTeam.AutoSize = true; - this.labelTeam.Location = new System.Drawing.Point(12, 147); - this.labelTeam.Name = "labelTeam"; - this.labelTeam.Size = new System.Drawing.Size(37, 13); - this.labelTeam.TabIndex = 18; - this.labelTeam.Text = "Team:"; - // - // cmbTeams - // - this.cmbTeams.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.cmbTeams.FormattingEnabled = true; - this.cmbTeams.Items.AddRange(new object[] { - "All"}); - this.cmbTeams.Location = new System.Drawing.Point(122, 144); - this.cmbTeams.Name = "cmbTeams"; - this.cmbTeams.Size = new System.Drawing.Size(312, 21); - this.cmbTeams.TabIndex = 19; - this.cmbTeams.KeyUp += new System.Windows.Forms.KeyEventHandler(this.cmbTeams_KeyUp); - // - // UploadFrm - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.CancelButton = this.btnCancel; - this.ClientSize = new System.Drawing.Size(446, 216); - this.Controls.Add(this.cmbTeams); - this.Controls.Add(this.labelTeam); - this.Controls.Add(this.cbPublic); - this.Controls.Add(this.cmbPreset); - this.Controls.Add(this.btnOK); - this.Controls.Add(this.btnCancel); - this.Controls.Add(this.lblPreset); - this.Controls.Add(this.txtDescription); - this.Controls.Add(this.lblDescription); - this.Controls.Add(this.txtProjectName); - this.Controls.Add(this.lblProject); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "UploadFrm"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; - this.Text = "Upload Source"; - this.KeyUp += new System.Windows.Forms.KeyEventHandler(this.UploadFrm_KeyUp); - ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.Button btnOK; - private System.Windows.Forms.Button btnCancel; - private System.Windows.Forms.Label lblPreset; - private System.Windows.Forms.TextBox txtDescription; - private System.Windows.Forms.Label lblDescription; - private System.Windows.Forms.TextBox txtProjectName; - private System.Windows.Forms.Label lblProject; - private System.Windows.Forms.ComboBox cmbPreset; - private System.Windows.Forms.ErrorProvider errorProvider; - private System.Windows.Forms.CheckBox cbPublic; - private System.Windows.Forms.ComboBox cmbTeams; - private System.Windows.Forms.Label labelTeam; - } +namespace CxViewerAction.Views +{ + partial class UploadFrm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.btnOK = new System.Windows.Forms.Button(); + this.btnCancel = new System.Windows.Forms.Button(); + this.lblPreset = new System.Windows.Forms.Label(); + this.txtDescription = new System.Windows.Forms.TextBox(); + this.lblDescription = new System.Windows.Forms.Label(); + this.txtProjectName = new System.Windows.Forms.TextBox(); + this.lblProject = new System.Windows.Forms.Label(); + this.cmbPreset = new System.Windows.Forms.ComboBox(); + this.errorProvider = new System.Windows.Forms.ErrorProvider(this.components); + this.cbPublic = new System.Windows.Forms.CheckBox(); + this.labelTeam = new System.Windows.Forms.Label(); + this.cmbTeams = new System.Windows.Forms.ComboBox(); + ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit(); + this.SuspendLayout(); + // + // btnOK + // + this.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK; + this.btnOK.Location = new System.Drawing.Point(278, 183); + this.btnOK.Name = "btnOK"; + this.btnOK.Size = new System.Drawing.Size(75, 23); + this.btnOK.TabIndex = 15; + this.btnOK.Text = "OK"; + this.btnOK.UseVisualStyleBackColor = true; + this.btnOK.Click += new System.EventHandler(this.btnOK_Click); + // + // btnCancel + // + this.btnCancel.CausesValidation = false; + this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.btnCancel.Location = new System.Drawing.Point(359, 183); + this.btnCancel.Name = "btnCancel"; + this.btnCancel.Size = new System.Drawing.Size(75, 23); + this.btnCancel.TabIndex = 14; + this.btnCancel.Text = "Cancel"; + this.btnCancel.UseVisualStyleBackColor = true; + // + // lblPreset + // + this.lblPreset.AutoSize = true; + this.lblPreset.Location = new System.Drawing.Point(12, 119); + this.lblPreset.Name = "lblPreset"; + this.lblPreset.Size = new System.Drawing.Size(40, 13); + this.lblPreset.TabIndex = 12; + this.lblPreset.Text = "Preset:"; + // + // txtDescription + // + this.txtDescription.Location = new System.Drawing.Point(122, 32); + this.txtDescription.MaxLength = 255; + this.txtDescription.Multiline = true; + this.txtDescription.Name = "txtDescription"; + this.txtDescription.Size = new System.Drawing.Size(312, 78); + this.txtDescription.TabIndex = 11; + // + // lblDescription + // + this.lblDescription.AutoSize = true; + this.lblDescription.Location = new System.Drawing.Point(12, 35); + this.lblDescription.Name = "lblDescription"; + this.lblDescription.Size = new System.Drawing.Size(63, 13); + this.lblDescription.TabIndex = 10; + this.lblDescription.Text = "Description:"; + // + // txtProjectName + // + this.txtProjectName.Location = new System.Drawing.Point(122, 6); + this.txtProjectName.MaxLength = 200; + this.txtProjectName.Name = "txtProjectName"; + this.txtProjectName.Size = new System.Drawing.Size(312, 20); + this.txtProjectName.TabIndex = 9; + this.txtProjectName.KeyUp += new System.Windows.Forms.KeyEventHandler(this.txtProjectName_KeyUp); + // + // lblProject + // + this.lblProject.AutoSize = true; + this.lblProject.Location = new System.Drawing.Point(12, 9); + this.lblProject.Name = "lblProject"; + this.lblProject.Size = new System.Drawing.Size(74, 13); + this.lblProject.TabIndex = 8; + this.lblProject.Text = "Project Name:"; + // + // cmbPreset + // + this.cmbPreset.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbPreset.FormattingEnabled = true; + this.cmbPreset.Items.AddRange(new object[] { + "All"}); + this.cmbPreset.Location = new System.Drawing.Point(122, 116); + this.cmbPreset.Name = "cmbPreset"; + this.cmbPreset.Size = new System.Drawing.Size(312, 21); + this.cmbPreset.TabIndex = 16; + this.cmbPreset.KeyUp += new System.Windows.Forms.KeyEventHandler(this.cmbPreset_KeyUp); + // + // errorProvider + // + this.errorProvider.ContainerControl = this; + // + // cbPublic + // + this.cbPublic.AutoSize = true; + this.cbPublic.Checked = true; + this.cbPublic.CheckState = System.Windows.Forms.CheckState.Checked; + this.cbPublic.Location = new System.Drawing.Point(15, 187); + this.cbPublic.Name = "cbPublic"; + this.cbPublic.Size = new System.Drawing.Size(187, 17); + this.cbPublic.TabIndex = 17; + this.cbPublic.Text = "Make project visible to other users"; + this.cbPublic.UseVisualStyleBackColor = true; + // + // labelTeam + // + this.labelTeam.AutoSize = true; + this.labelTeam.Location = new System.Drawing.Point(12, 147); + this.labelTeam.Name = "labelTeam"; + this.labelTeam.Size = new System.Drawing.Size(37, 13); + this.labelTeam.TabIndex = 18; + this.labelTeam.Text = "Team:"; + // + // cmbTeams + // + this.cmbTeams.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbTeams.FormattingEnabled = true; + this.cmbTeams.Items.AddRange(new object[] { + "All"}); + this.cmbTeams.Location = new System.Drawing.Point(122, 144); + this.cmbTeams.Name = "cmbTeams"; + this.cmbTeams.Size = new System.Drawing.Size(312, 21); + this.cmbTeams.TabIndex = 19; + this.cmbTeams.KeyUp += new System.Windows.Forms.KeyEventHandler(this.cmbTeams_KeyUp); + // + // UploadFrm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.CancelButton = this.btnCancel; + this.ClientSize = new System.Drawing.Size(446, 216); + this.Controls.Add(this.cmbTeams); + this.Controls.Add(this.labelTeam); + this.Controls.Add(this.cbPublic); + this.Controls.Add(this.cmbPreset); + this.Controls.Add(this.btnOK); + this.Controls.Add(this.btnCancel); + this.Controls.Add(this.lblPreset); + this.Controls.Add(this.txtDescription); + this.Controls.Add(this.lblDescription); + this.Controls.Add(this.txtProjectName); + this.Controls.Add(this.lblProject); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "UploadFrm"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Upload Source"; + this.KeyUp += new System.Windows.Forms.KeyEventHandler(this.UploadFrm_KeyUp); + ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Button btnOK; + private System.Windows.Forms.Button btnCancel; + private System.Windows.Forms.Label lblPreset; + private System.Windows.Forms.TextBox txtDescription; + private System.Windows.Forms.Label lblDescription; + private System.Windows.Forms.TextBox txtProjectName; + private System.Windows.Forms.Label lblProject; + private System.Windows.Forms.ComboBox cmbPreset; + private System.Windows.Forms.ErrorProvider errorProvider; + private System.Windows.Forms.CheckBox cbPublic; + private System.Windows.Forms.ComboBox cmbTeams; + private System.Windows.Forms.Label labelTeam; + } } \ No newline at end of file diff --git a/CxViewerAction/Views/UploadFrm.cs b/CxActionShared/Views/UploadFrm.cs similarity index 93% rename from CxViewerAction/Views/UploadFrm.cs rename to CxActionShared/Views/UploadFrm.cs index 5bc2f717..a8b3712f 100644 --- a/CxViewerAction/Views/UploadFrm.cs +++ b/CxActionShared/Views/UploadFrm.cs @@ -1,316 +1,327 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using CxViewerAction.Entities; -using CxViewerAction.Entities.WebServiceEntity; -using CxViewerAction.Helpers; -using System.Text.RegularExpressions; -using System.IO; - -namespace CxViewerAction.Views -{ - public partial class UploadFrm : Form, IUploadView - { - #region [Constants] - - /// - /// Project name allowed format RegEx - /// - private const string _checkProjectNamePattern = @"^[a-zA-Z_][.a-zA-Z\d_ ]*$"; - - #endregion - - #region [Private members] - - private EntityId _entityId; - private Dictionary _presets; - private Dictionary _teams; - - #endregion - - #region [Properties] - - /// - /// Gets or sets custom identity - /// - public EntityId EntityId - { - get { return _entityId; } - set { _entityId = value; } - } - - /// - /// Gets or sets project name - /// - public string ProjectName - { - get { return txtProjectName.Text; } - set { txtProjectName.Text = value; } - } - - /// - /// Gets or sets project description - /// - public string Description - { - get { return txtDescription.Text; } - set { txtDescription.Text = value; } - } - - /// - /// Gets or sets selected preset - /// - public int Preset - { - get { return ((KeyValuePair)cmbPreset.SelectedItem).Key; } - set { - - if (cmbPreset.Items.Count > 0) - cmbPreset.SelectedValue = value; - } - } - - /// - /// Gets or sets selected team - /// - public string Team - { - get { return ((KeyValuePair)cmbTeams.SelectedItem).Key; } - set - { - - if (cmbTeams.Items.Count > 0) - cmbTeams.SelectedValue = value; - } - } - - public bool IsPublic - { - get { return cbPublic.Checked; } - } - - /// - /// Gets or sets preset list - /// - public Dictionary Presets - { - get { return _presets; } - set - { - _presets = value; - - if (cmbPreset.Items != null) - cmbPreset.Items.Clear(); - - foreach (KeyValuePair preset in _presets) - cmbPreset.Items.Add(preset); - - if (cmbPreset.Items.Count > 0) - cmbPreset.SelectedIndex = 0; - cmbPreset.DisplayMember = "value"; - cmbPreset.ValueMember = "key"; - - } - } - - /// - /// Gets or sets team list - /// - public Dictionary Teams - { - get { return _teams; } - set - { - _teams = value; - - if (cmbTeams.Items != null) - cmbTeams.Items.Clear(); - - foreach (KeyValuePair team in _teams) - cmbTeams.Items.Add(team); - - if (cmbTeams.Items.Count > 0) - cmbTeams.SelectedIndex = 0; - cmbTeams.DisplayMember = "value"; - cmbTeams.ValueMember = "key"; - - } - } - - #endregion - - public UploadFrm(string sessionId) - { - InitializeComponent(); - } - - /// - /// Close dialog - /// - public void CloseView() - { - this.Close(); - } - - /// - /// Show modal dialog - /// - /// - public virtual DialogResult ShowModalView() - { - return this.ShowDialog(); - } - - /// - /// Show modal dialog - /// - /// Parent view container - /// - public virtual DialogResult ShowModalView(IView parent) - { - return this.ShowDialog((IWin32Window)parent); - } - - /// - /// Show non modal dialog - /// - public void ShowView() - { - this.Show(); - } - - /// - /// Show non modal dialog - /// - /// Parent view container - public void ShowView(IView parent) - { - this.Show((IWin32Window)parent); - } - - /// - /// Validation handler to control project name entered value - /// - /// - /// - private void txtProjectName_Validating(object sender, CancelEventArgs e) - { - if (string.IsNullOrEmpty(txtProjectName.Text)) //Check for non empty project name field - { - e.Cancel = true; - errorProvider.SetError((Control)sender, "Please enter project name"); - } - else if (txtProjectName.Text.Length > 200) - { - e.Cancel = true; - errorProvider.SetError((Control)sender, "Project name is limited to 200 characters, please edit and try again"); - } - //else if (txtProjectName.Text.IndexOfAny(Path.GetInvalidFileNameChars()) > 0) - //{ - // e.Cancel = true; - // // Illeagle chars should be presented to User - // // David will add it. - // errorProvider.SetError((Control)sender, "Project name contains illeagle characters: (\\ / : * ? \" < > |)"); - //} - } - - /// - /// Validation handler to control thar preset item was selected - /// - /// - /// - private void cmbPreset_Validating(object sender, CancelEventArgs e) - { - if (cmbPreset.SelectedItem == null) - { - e.Cancel = true; - errorProvider.SetError((Control)sender, "Please select preset"); - } - else - errorProvider.SetError((Control)sender, string.Empty); - } - - /// - /// Validation handler to control thar team item was selected - /// - /// - /// - private void cmbTeams_Validating(object sender, CancelEventArgs e) - { - if (cmbTeams.SelectedItem == null) - { - e.Cancel = true; - errorProvider.SetError((Control)sender, "Please select team"); - } - else - errorProvider.SetError((Control)sender, string.Empty); - } - - private void txtDescription_Validating(object sender, CancelEventArgs e) - { - if (string.IsNullOrEmpty(txtDescription.Text)) - { - e.Cancel = true; - errorProvider.SetError((Control)sender, "Please enter project description"); - } - else - errorProvider.SetError((Control)sender, string.Empty); - } - - void CheckValidation() - { - txtProjectName_Validating(txtProjectName, new CancelEventArgs()); - txtDescription_Validating(txtDescription, new CancelEventArgs()); - cmbPreset_Validating(cmbPreset, new CancelEventArgs()); - cmbTeams_Validating(cmbTeams, new CancelEventArgs()); - } - - private void btnOK_Click(object sender, EventArgs e) - { - CheckValidation(); - if (!string.IsNullOrEmpty(errorProvider.GetError(txtProjectName)) || - !string.IsNullOrEmpty(errorProvider.GetError(txtDescription)) || - !string.IsNullOrEmpty(errorProvider.GetError(cmbPreset)) - ) - { - this.DialogResult = DialogResult.None; - } - } - - private void UploadFrm_KeyUp(object sender, KeyEventArgs e) - { - if (e.KeyValue == 13) - { - this.DialogResult = DialogResult.OK; - } - } - - private void txtProjectName_KeyUp(object sender, KeyEventArgs e) - { - if (e.KeyValue == 13) - { - this.DialogResult = DialogResult.OK; - } - } - - private void cmbPreset_KeyUp(object sender, KeyEventArgs e) - { - if (e.KeyValue == 13) - { - this.DialogResult = DialogResult.OK; - } - } - - private void cmbTeams_KeyUp(object sender, KeyEventArgs e) - { - if (e.KeyValue == 13) - { - this.DialogResult = DialogResult.OK; - } - } - } -} +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; +using CxViewerAction.Entities; +using CxViewerAction.Entities.WebServiceEntity; +using CxViewerAction.Helpers; +using System.Text.RegularExpressions; +using System.IO; +using Common; + +namespace CxViewerAction.Views +{ + public partial class UploadFrm : Form, IUploadView + { + #region [Constants] + + /// + /// Project name allowed format RegEx + /// + private const string _checkProjectNamePattern = @"^[a-zA-Z_][.a-zA-Z\d_ ]*$"; + + #endregion + + #region [Private members] + + private EntityId _entityId; + private Dictionary _presets; + private Dictionary _teams; + + #endregion + + #region [Properties] + + /// + /// Gets or sets custom identity + /// + public EntityId EntityId + { + get { return _entityId; } + set { _entityId = value; } + } + + /// + /// Gets or sets project name + /// + public string ProjectName + { + get { return txtProjectName.Text; } + set { txtProjectName.Text = value; } + } + + /// + /// Gets or sets project description + /// + public string Description + { + get { return txtDescription.Text; } + set { txtDescription.Text = value; } + } + + /// + /// Gets or sets selected preset + /// + public int Preset + { + get { return ((KeyValuePair)cmbPreset.SelectedItem).Key; } + set { + + if (cmbPreset.Items.Count > 0) + cmbPreset.SelectedValue = value; + } + } + + /// + /// Gets or sets selected team + /// + public string Team + { + get { return ((KeyValuePair)cmbTeams.SelectedItem).Key; } + set + { + + if (cmbTeams.Items.Count > 0) + cmbTeams.SelectedValue = value; + } + } + + public bool IsPublic + { + get { return cbPublic.Checked; } + } + + /// + /// Gets or sets preset list + /// + public Dictionary Presets + { + get { return _presets; } + set + { + _presets = value; + + if (cmbPreset.Items != null) + cmbPreset.Items.Clear(); + + foreach (KeyValuePair preset in _presets) + cmbPreset.Items.Add(preset); + + if (cmbPreset.Items.Count > 0) + cmbPreset.SelectedIndex = 0; + cmbPreset.DisplayMember = "value"; + cmbPreset.ValueMember = "key"; + + } + } + + /// + /// Gets or sets team list + /// + public Dictionary Teams + { + get { return _teams; } + set + { + _teams = value; + + if (cmbTeams.Items != null) + cmbTeams.Items.Clear(); + + foreach (KeyValuePair team in _teams) + cmbTeams.Items.Add(team); + + if (cmbTeams.Items.Count > 0) + cmbTeams.SelectedIndex = 0; + cmbTeams.DisplayMember = "value"; + cmbTeams.ValueMember = "key"; + + } + } + + #endregion + + public UploadFrm(string sessionId) + { + InitializeComponent(); + } + + /// + /// Close dialog + /// + public void CloseView() + { + this.Close(); + } + + /// + /// Show modal dialog + /// + /// + public virtual DialogResult ShowModalView() + { + return this.ShowDialog(); + } + + /// + /// Show modal dialog + /// + /// Parent view container + /// + public virtual DialogResult ShowModalView(IView parent) + { + return this.ShowDialog((IWin32Window)parent); + } + + /// + /// Show non modal dialog + /// + public void ShowView() + { + this.Show(); + } + + /// + /// Show non modal dialog + /// + /// Parent view container + public void ShowView(IView parent) + { + this.Show((IWin32Window)parent); + } + + /// + /// Validation handler to control project name entered value + /// + /// + /// + private void txtProjectName_Validating(object sender, CancelEventArgs e) + { + Logger.Create().Info("Validating project name."); + if (string.IsNullOrEmpty(txtProjectName.Text)) //Check for non empty project name field + { + e.Cancel = true; + errorProvider.SetError((Control)sender, "Please enter project name"); + } + else if (txtProjectName.Text.Length > 200) + { + e.Cancel = true; + errorProvider.SetError((Control)sender, "Project name is limited to 200 characters, please edit and try again"); + } + //else if (txtProjectName.Text.IndexOfAny(Path.GetInvalidFileNameChars()) > 0) + //{ + // e.Cancel = true; + // // Illeagle chars should be presented to User + // // David will add it. + // errorProvider.SetError((Control)sender, "Project name contains illeagle characters: (\\ / : * ? \" < > |)"); + //} + } + + /// + /// Validation handler to control thar preset item was selected + /// + /// + /// + private void cmbPreset_Validating(object sender, CancelEventArgs e) + { + Logger.Create().Info("Validating preset field."); + if (cmbPreset.SelectedItem == null) + { + e.Cancel = true; + errorProvider.SetError((Control)sender, "Please select preset"); + } + else + errorProvider.SetError((Control)sender, string.Empty); + } + + /// + /// Validation handler to control thar team item was selected + /// + /// + /// + private void cmbTeams_Validating(object sender, CancelEventArgs e) + { + Logger.Create().Info("Validating teams field."); + if (cmbTeams.SelectedItem == null) + { + e.Cancel = true; + errorProvider.SetError((Control)sender, "Please select team"); + } + else + errorProvider.SetError((Control)sender, string.Empty); + } + + private void txtDescription_Validating(object sender, CancelEventArgs e) + { + Logger.Create().Info("Validating description field."); + if (string.IsNullOrEmpty(txtDescription.Text)) + { + e.Cancel = true; + errorProvider.SetError((Control)sender, "Please enter project description"); + } + else + errorProvider.SetError((Control)sender, string.Empty); + } + + void CheckValidation() + { + Logger.Create().Info("Validating upload form fields."); + txtProjectName_Validating(txtProjectName, new CancelEventArgs()); + txtDescription_Validating(txtDescription, new CancelEventArgs()); + cmbPreset_Validating(cmbPreset, new CancelEventArgs()); + cmbTeams_Validating(cmbTeams, new CancelEventArgs()); + } + + private void btnOK_Click(object sender, EventArgs e) + { + Logger.Create().Info("In Ok button click:"); + CheckValidation(); + if (!string.IsNullOrEmpty(errorProvider.GetError(txtProjectName)) || + !string.IsNullOrEmpty(errorProvider.GetError(txtDescription)) || + !string.IsNullOrEmpty(errorProvider.GetError(cmbPreset)) + ) + { + this.DialogResult = DialogResult.None; + } + } + + private void UploadFrm_KeyUp(object sender, KeyEventArgs e) + { + Logger.Create().Info("Calling upload form key up event."); + if (e.KeyValue == 13) + { + this.DialogResult = DialogResult.OK; + } + } + + private void txtProjectName_KeyUp(object sender, KeyEventArgs e) + { + Logger.Create().Info("Calling project name text key up event."); + if (e.KeyValue == 13) + { + this.DialogResult = DialogResult.OK; + } + } + + private void cmbPreset_KeyUp(object sender, KeyEventArgs e) + { + Logger.Create().Info("Calling preset key up event."); + if (e.KeyValue == 13) + { + this.DialogResult = DialogResult.OK; + } + } + + private void cmbTeams_KeyUp(object sender, KeyEventArgs e) + { + Logger.Create().Info("Calling teams key up event."); + if (e.KeyValue == 13) + { + this.DialogResult = DialogResult.OK; + } + } + } +} diff --git a/CxViewerAction/Views/UploadFrm.resx b/CxActionShared/Views/UploadFrm.resx similarity index 97% rename from CxViewerAction/Views/UploadFrm.resx rename to CxActionShared/Views/UploadFrm.resx index c1f9cdef..38d368e6 100644 --- a/CxViewerAction/Views/UploadFrm.resx +++ b/CxActionShared/Views/UploadFrm.resx @@ -1,123 +1,123 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + \ No newline at end of file diff --git a/CxViewerAction/Views/WaitFrm.Designer.cs b/CxActionShared/Views/WaitFrm.Designer.cs similarity index 97% rename from CxViewerAction/Views/WaitFrm.Designer.cs rename to CxActionShared/Views/WaitFrm.Designer.cs index 0710afe2..efe247e3 100644 --- a/CxViewerAction/Views/WaitFrm.Designer.cs +++ b/CxActionShared/Views/WaitFrm.Designer.cs @@ -1,89 +1,89 @@ -namespace CxViewerAction.Views -{ - partial class WaitFrm - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.lblProgressMessage = new System.Windows.Forms.Label(); - this.btnCancel = new System.Windows.Forms.Button(); - this.progressWait = new System.Windows.Forms.ProgressBar(); - this.SuspendLayout(); - // - // lblProgressMessage - // - this.lblProgressMessage.AutoSize = true; - this.lblProgressMessage.Location = new System.Drawing.Point(13, 13); - this.lblProgressMessage.Name = "lblProgressMessage"; - this.lblProgressMessage.Size = new System.Drawing.Size(0, 13); - this.lblProgressMessage.TabIndex = 0; - // - // btnCancel - // - this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.btnCancel.Location = new System.Drawing.Point(346, 70); - this.btnCancel.Name = "btnCancel"; - this.btnCancel.Size = new System.Drawing.Size(75, 23); - this.btnCancel.TabIndex = 2; - this.btnCancel.Text = "Cancel"; - this.btnCancel.UseVisualStyleBackColor = true; - this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click); - // - // progressWait - // - this.progressWait.Location = new System.Drawing.Point(13, 30); - this.progressWait.Name = "progressWait"; - this.progressWait.Size = new System.Drawing.Size(408, 23); - this.progressWait.Style = System.Windows.Forms.ProgressBarStyle.Marquee; - this.progressWait.TabIndex = 3; - // - // WaitFrm - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(433, 105); - this.ControlBox = false; - this.Controls.Add(this.progressWait); - this.Controls.Add(this.btnCancel); - this.Controls.Add(this.lblProgressMessage); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "WaitFrm"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; - this.Text = "Progress Information"; - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.Label lblProgressMessage; - private System.Windows.Forms.Button btnCancel; - private System.Windows.Forms.ProgressBar progressWait; - } +namespace CxViewerAction.Views +{ + partial class WaitFrm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.lblProgressMessage = new System.Windows.Forms.Label(); + this.btnCancel = new System.Windows.Forms.Button(); + this.progressWait = new System.Windows.Forms.ProgressBar(); + this.SuspendLayout(); + // + // lblProgressMessage + // + this.lblProgressMessage.AutoSize = true; + this.lblProgressMessage.Location = new System.Drawing.Point(13, 13); + this.lblProgressMessage.Name = "lblProgressMessage"; + this.lblProgressMessage.Size = new System.Drawing.Size(0, 13); + this.lblProgressMessage.TabIndex = 0; + // + // btnCancel + // + this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.btnCancel.Location = new System.Drawing.Point(346, 70); + this.btnCancel.Name = "btnCancel"; + this.btnCancel.Size = new System.Drawing.Size(75, 23); + this.btnCancel.TabIndex = 2; + this.btnCancel.Text = "Cancel"; + this.btnCancel.UseVisualStyleBackColor = true; + this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click); + // + // progressWait + // + this.progressWait.Location = new System.Drawing.Point(13, 30); + this.progressWait.Name = "progressWait"; + this.progressWait.Size = new System.Drawing.Size(408, 23); + this.progressWait.Style = System.Windows.Forms.ProgressBarStyle.Marquee; + this.progressWait.TabIndex = 3; + // + // WaitFrm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(433, 105); + this.ControlBox = false; + this.Controls.Add(this.progressWait); + this.Controls.Add(this.btnCancel); + this.Controls.Add(this.lblProgressMessage); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "WaitFrm"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Progress Information"; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Label lblProgressMessage; + private System.Windows.Forms.Button btnCancel; + private System.Windows.Forms.ProgressBar progressWait; + } } \ No newline at end of file diff --git a/CxViewerAction/Views/WaitFrm.cs b/CxActionShared/Views/WaitFrm.cs similarity index 96% rename from CxViewerAction/Views/WaitFrm.cs rename to CxActionShared/Views/WaitFrm.cs index 94c15942..31d8d89c 100644 --- a/CxViewerAction/Views/WaitFrm.cs +++ b/CxActionShared/Views/WaitFrm.cs @@ -1,130 +1,130 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; - -using System.Text; -using System.Windows.Forms; -using System.Threading; - -namespace CxViewerAction.Views -{ - public partial class WaitFrm : Form, IWaitView - { - #region [Delegates] - - /// - /// Delegate mrthod. Used for async call Cancel handler function - /// - private delegate void CancelingDelegate(); - - #endregion - - #region [Private Members] - #endregion - - #region [Public Properties] - - /// - /// Gets or sets dialog process name - /// - public string ProgressDialogMessage - { - get { return lblProgressMessage.Text; } - set { lblProgressMessage.Text = value; } - } - - /// - /// Sets cancel button click handler - /// - public EventHandler CancelHandler - { - set { btnCancel.Click += value; } - } - #endregion - - #region [Constructors] - - public WaitFrm(string progressMessage, EventHandler cancelEvent) - { - InitializeComponent(); - ProgressDialogMessage = progressMessage; - CancelHandler = cancelEvent; - } - - #endregion - - #region [Public methods] - - /// - /// Close view - /// - public void CloseView() - { - this.Close(); - } - - /// - /// Show modal dialog view - /// - /// - public virtual DialogResult ShowModalView() - { - return this.ShowDialog(); - } - - /// - /// Show modal dialog view - /// - /// Parent container view - /// - public virtual DialogResult ShowModalView(IView parent) - { - return this.ShowDialog((IWin32Window)parent); - } - - /// - /// Show non-modal dialog view - /// - public void ShowView() - { - this.Show(); - } - - /// - /// Show non-modal dialog view - /// - /// Parent container view - public void ShowView(IView parent) - { - this.Show((IWin32Window)parent); - } - - #endregion - - #region [Private methods] - - /// - /// Cancel button click handler - /// - /// - /// - private void btnCancel_Click(object sender, EventArgs e) - { - CancelingDelegate del = new CancelingDelegate(Canceling); - Invoke(del); - } - - /// - /// Change cancel button state after button pressed - /// - private void Canceling() - { - btnCancel.Text = "Canceling..."; - btnCancel.Enabled = false; - } - - #endregion - } -} +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; + +using System.Text; +using System.Windows.Forms; +using System.Threading; + +namespace CxViewerAction.Views +{ + public partial class WaitFrm : Form, IWaitView + { + #region [Delegates] + + /// + /// Delegate mrthod. Used for async call Cancel handler function + /// + private delegate void CancelingDelegate(); + + #endregion + + #region [Private Members] + #endregion + + #region [Public Properties] + + /// + /// Gets or sets dialog process name + /// + public string ProgressDialogMessage + { + get { return lblProgressMessage.Text; } + set { lblProgressMessage.Text = value; } + } + + /// + /// Sets cancel button click handler + /// + public EventHandler CancelHandler + { + set { btnCancel.Click += value; } + } + #endregion + + #region [Constructors] + + public WaitFrm(string progressMessage, EventHandler cancelEvent) + { + InitializeComponent(); + ProgressDialogMessage = progressMessage; + CancelHandler = cancelEvent; + } + + #endregion + + #region [Public methods] + + /// + /// Close view + /// + public void CloseView() + { + this.Close(); + } + + /// + /// Show modal dialog view + /// + /// + public virtual DialogResult ShowModalView() + { + return this.ShowDialog(); + } + + /// + /// Show modal dialog view + /// + /// Parent container view + /// + public virtual DialogResult ShowModalView(IView parent) + { + return this.ShowDialog((IWin32Window)parent); + } + + /// + /// Show non-modal dialog view + /// + public void ShowView() + { + this.Show(); + } + + /// + /// Show non-modal dialog view + /// + /// Parent container view + public void ShowView(IView parent) + { + this.Show((IWin32Window)parent); + } + + #endregion + + #region [Private methods] + + /// + /// Cancel button click handler + /// + /// + /// + private void btnCancel_Click(object sender, EventArgs e) + { + CancelingDelegate del = new CancelingDelegate(Canceling); + Invoke(del); + } + + /// + /// Change cancel button state after button pressed + /// + private void Canceling() + { + btnCancel.Text = "Canceling..."; + btnCancel.Enabled = false; + } + + #endregion + } +} diff --git a/CxViewerAction/Views/WaitFrm.resx b/CxActionShared/Views/WaitFrm.resx similarity index 97% rename from CxViewerAction/Views/WaitFrm.resx rename to CxActionShared/Views/WaitFrm.resx index 5ea0895e..7080a7d1 100644 --- a/CxViewerAction/Views/WaitFrm.resx +++ b/CxActionShared/Views/WaitFrm.resx @@ -1,120 +1,120 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + \ No newline at end of file diff --git a/CxViewerAction/Views/app.config b/CxActionShared/Views/app.config similarity index 98% rename from CxViewerAction/Views/app.config rename to CxActionShared/Views/app.config index e7b9e75a..f8f7a4ca 100644 --- a/CxViewerAction/Views/app.config +++ b/CxActionShared/Views/app.config @@ -1,31 +1,31 @@ - - - - -
- - - - - - - - - - - - - - - - - - - - - - http://81.218.206.1/Cxwebinterface/cxwebservice.asmx - - - - + + + + +
+ + + + + + + + + + + + + + + + + + + + + + http://81.218.206.1/Cxwebinterface/cxwebservice.asmx + + + + diff --git a/CxViewerAction/key.snk b/CxActionShared/key.snk similarity index 100% rename from CxViewerAction/key.snk rename to CxActionShared/key.snk diff --git a/CxViewer.sln b/CxViewer.sln index ddeb9975..2faf20fc 100644 --- a/CxViewer.sln +++ b/CxViewer.sln @@ -1,9 +1,12 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.26403.0 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.32407.337 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CxViewerVSIX", "CxViewerVSIX\CxViewerVSIX.csproj", "{0D4CC225-7BF6-4EB8-9936-C6FD86FABCAB}" + ProjectSection(ProjectDependencies) = postProject + {A3841A67-DAE8-42BD-B0D4-9D0D1657F902} = {A3841A67-DAE8-42BD-B0D4-9D0D1657F902} + EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Common", "Common\Common.csproj", "{9B747803-8500-4115-953E-CE7CBF2A14C2}" EndProject @@ -13,99 +16,166 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DgvFilterPopup", "CxViewerD EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CxViewerAction", "CxViewerAction\CxViewerAction.csproj", "{A3841A67-DAE8-42BD-B0D4-9D0D1657F902}" EndProject +Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "CxViewerShared", "CxViewerShared\CxViewerShared.shproj", "{0627D27E-4065-4B98-94A7-01F77F1357E1}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CxViewer2022", "CxViewer2022\CxViewer2022.csproj", "{F6AA03FA-0258-4291-837F-ED4D94A5D9BB}" +EndProject +Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "CxActionShared", "CxActionShared\CxActionShared.shproj", "{74FAD639-8FF8-41A4-B1DF-1930BFBA319B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CxViewerAction2019", "CxViewerAction2019\CxViewerAction2019.csproj", "{3F7B5740-0C62-4CFB-883A-02B5722DAE37}" +EndProject Global + GlobalSection(SharedMSBuildProjectFiles) = preSolution + CxViewerShared\CxViewerShared.projitems*{0627d27e-4065-4b98-94a7-01f77f1357e1}*SharedItemsImports = 13 + CxViewerShared\CxViewerShared.projitems*{0d4cc225-7bf6-4eb8-9936-c6fd86fabcab}*SharedItemsImports = 4 + CxActionShared\CxActionShared.projitems*{3f7b5740-0c62-4cfb-883a-02b5722dae37}*SharedItemsImports = 4 + CxActionShared\CxActionShared.projitems*{74fad639-8ff8-41a4-b1df-1930bfba319b}*SharedItemsImports = 13 + CxActionShared\CxActionShared.projitems*{a3841a67-dae8-42bd-b0d4-9d0d1657f902}*SharedItemsImports = 4 + CxViewerShared\CxViewerShared.projitems*{f6aa03fa-0258-4291-837f-ed4d94a5d9bb}*SharedItemsImports = 4 + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Build|Any CPU = Build|Any CPU + Build|x64 = Build|x64 Build|x86 = Build|x86 Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {0D4CC225-7BF6-4EB8-9936-C6FD86FABCAB}.Build|Any CPU.ActiveCfg = Release|Any CPU {0D4CC225-7BF6-4EB8-9936-C6FD86FABCAB}.Build|Any CPU.Build.0 = Release|Any CPU + {0D4CC225-7BF6-4EB8-9936-C6FD86FABCAB}.Build|x64.ActiveCfg = Debug|Any CPU + {0D4CC225-7BF6-4EB8-9936-C6FD86FABCAB}.Build|x64.Build.0 = Debug|Any CPU {0D4CC225-7BF6-4EB8-9936-C6FD86FABCAB}.Build|x86.ActiveCfg = Release|Any CPU {0D4CC225-7BF6-4EB8-9936-C6FD86FABCAB}.Build|x86.Build.0 = Release|Any CPU {0D4CC225-7BF6-4EB8-9936-C6FD86FABCAB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {0D4CC225-7BF6-4EB8-9936-C6FD86FABCAB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0D4CC225-7BF6-4EB8-9936-C6FD86FABCAB}.Debug|x64.ActiveCfg = Debug|Any CPU + {0D4CC225-7BF6-4EB8-9936-C6FD86FABCAB}.Debug|x64.Build.0 = Debug|Any CPU {0D4CC225-7BF6-4EB8-9936-C6FD86FABCAB}.Debug|x86.ActiveCfg = Debug|Any CPU {0D4CC225-7BF6-4EB8-9936-C6FD86FABCAB}.Debug|x86.Build.0 = Debug|Any CPU {0D4CC225-7BF6-4EB8-9936-C6FD86FABCAB}.Release|Any CPU.ActiveCfg = Release|Any CPU {0D4CC225-7BF6-4EB8-9936-C6FD86FABCAB}.Release|Any CPU.Build.0 = Release|Any CPU + {0D4CC225-7BF6-4EB8-9936-C6FD86FABCAB}.Release|x64.ActiveCfg = Release|Any CPU + {0D4CC225-7BF6-4EB8-9936-C6FD86FABCAB}.Release|x64.Build.0 = Release|Any CPU {0D4CC225-7BF6-4EB8-9936-C6FD86FABCAB}.Release|x86.ActiveCfg = Release|Any CPU {0D4CC225-7BF6-4EB8-9936-C6FD86FABCAB}.Release|x86.Build.0 = Release|Any CPU {9B747803-8500-4115-953E-CE7CBF2A14C2}.Build|Any CPU.ActiveCfg = Release|Any CPU {9B747803-8500-4115-953E-CE7CBF2A14C2}.Build|Any CPU.Build.0 = Release|Any CPU + {9B747803-8500-4115-953E-CE7CBF2A14C2}.Build|x64.ActiveCfg = Debug|Any CPU + {9B747803-8500-4115-953E-CE7CBF2A14C2}.Build|x64.Build.0 = Debug|Any CPU {9B747803-8500-4115-953E-CE7CBF2A14C2}.Build|x86.ActiveCfg = Release|Any CPU {9B747803-8500-4115-953E-CE7CBF2A14C2}.Build|x86.Build.0 = Release|Any CPU {9B747803-8500-4115-953E-CE7CBF2A14C2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {9B747803-8500-4115-953E-CE7CBF2A14C2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9B747803-8500-4115-953E-CE7CBF2A14C2}.Debug|x64.ActiveCfg = Debug|Any CPU + {9B747803-8500-4115-953E-CE7CBF2A14C2}.Debug|x64.Build.0 = Debug|Any CPU {9B747803-8500-4115-953E-CE7CBF2A14C2}.Debug|x86.ActiveCfg = Debug|Any CPU {9B747803-8500-4115-953E-CE7CBF2A14C2}.Debug|x86.Build.0 = Debug|Any CPU - {9B747803-8500-4115-953E-CE7CBF2A14C2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9B747803-8500-4115-953E-CE7CBF2A14C2}.Release|Any CPU.Build.0 = Release|Any CPU - {9B747803-8500-4115-953E-CE7CBF2A14C2}.Release|x86.ActiveCfg = Release|Any CPU - {9B747803-8500-4115-953E-CE7CBF2A14C2}.Release|x86.Build.0 = Release|Any CPU + {9B747803-8500-4115-953E-CE7CBF2A14C2}.Release|Any CPU.ActiveCfg = Release|x64 + {9B747803-8500-4115-953E-CE7CBF2A14C2}.Release|Any CPU.Build.0 = Release|x64 + {9B747803-8500-4115-953E-CE7CBF2A14C2}.Release|x64.ActiveCfg = Release|Any CPU + {9B747803-8500-4115-953E-CE7CBF2A14C2}.Release|x64.Build.0 = Release|Any CPU + {9B747803-8500-4115-953E-CE7CBF2A14C2}.Release|x86.ActiveCfg = Release|x64 + {9B747803-8500-4115-953E-CE7CBF2A14C2}.Release|x86.Build.0 = Release|x64 {DEFBE28B-3B2E-4324-BBAE-9B9783A29607}.Build|Any CPU.ActiveCfg = Build|Any CPU {DEFBE28B-3B2E-4324-BBAE-9B9783A29607}.Build|Any CPU.Build.0 = Build|Any CPU + {DEFBE28B-3B2E-4324-BBAE-9B9783A29607}.Build|x64.ActiveCfg = Build|Any CPU + {DEFBE28B-3B2E-4324-BBAE-9B9783A29607}.Build|x64.Build.0 = Build|Any CPU {DEFBE28B-3B2E-4324-BBAE-9B9783A29607}.Build|x86.ActiveCfg = Build|x86 {DEFBE28B-3B2E-4324-BBAE-9B9783A29607}.Build|x86.Build.0 = Build|x86 {DEFBE28B-3B2E-4324-BBAE-9B9783A29607}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {DEFBE28B-3B2E-4324-BBAE-9B9783A29607}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DEFBE28B-3B2E-4324-BBAE-9B9783A29607}.Debug|x64.ActiveCfg = Debug|Any CPU + {DEFBE28B-3B2E-4324-BBAE-9B9783A29607}.Debug|x64.Build.0 = Debug|Any CPU {DEFBE28B-3B2E-4324-BBAE-9B9783A29607}.Debug|x86.ActiveCfg = Debug|x86 {DEFBE28B-3B2E-4324-BBAE-9B9783A29607}.Debug|x86.Build.0 = Debug|x86 {DEFBE28B-3B2E-4324-BBAE-9B9783A29607}.Release|Any CPU.ActiveCfg = Release|Any CPU {DEFBE28B-3B2E-4324-BBAE-9B9783A29607}.Release|Any CPU.Build.0 = Release|Any CPU + {DEFBE28B-3B2E-4324-BBAE-9B9783A29607}.Release|x64.ActiveCfg = Release|x64 + {DEFBE28B-3B2E-4324-BBAE-9B9783A29607}.Release|x64.Build.0 = Release|x64 {DEFBE28B-3B2E-4324-BBAE-9B9783A29607}.Release|x86.ActiveCfg = Release|x86 {DEFBE28B-3B2E-4324-BBAE-9B9783A29607}.Release|x86.Build.0 = Release|x86 {4B9BE5FD-303E-4270-9C4D-FA3BDE6C34EB}.Build|Any CPU.ActiveCfg = Build|Any CPU {4B9BE5FD-303E-4270-9C4D-FA3BDE6C34EB}.Build|Any CPU.Build.0 = Build|Any CPU + {4B9BE5FD-303E-4270-9C4D-FA3BDE6C34EB}.Build|x64.ActiveCfg = Build|Any CPU + {4B9BE5FD-303E-4270-9C4D-FA3BDE6C34EB}.Build|x64.Build.0 = Build|Any CPU {4B9BE5FD-303E-4270-9C4D-FA3BDE6C34EB}.Build|x86.ActiveCfg = Build|Any CPU {4B9BE5FD-303E-4270-9C4D-FA3BDE6C34EB}.Build|x86.Build.0 = Build|Any CPU {4B9BE5FD-303E-4270-9C4D-FA3BDE6C34EB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {4B9BE5FD-303E-4270-9C4D-FA3BDE6C34EB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4B9BE5FD-303E-4270-9C4D-FA3BDE6C34EB}.Debug|x64.ActiveCfg = Debug|Any CPU + {4B9BE5FD-303E-4270-9C4D-FA3BDE6C34EB}.Debug|x64.Build.0 = Debug|Any CPU {4B9BE5FD-303E-4270-9C4D-FA3BDE6C34EB}.Debug|x86.ActiveCfg = Debug|Any CPU {4B9BE5FD-303E-4270-9C4D-FA3BDE6C34EB}.Debug|x86.Build.0 = Debug|Any CPU - {4B9BE5FD-303E-4270-9C4D-FA3BDE6C34EB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4B9BE5FD-303E-4270-9C4D-FA3BDE6C34EB}.Release|Any CPU.Build.0 = Release|Any CPU - {4B9BE5FD-303E-4270-9C4D-FA3BDE6C34EB}.Release|x86.ActiveCfg = Release|Any CPU - {4B9BE5FD-303E-4270-9C4D-FA3BDE6C34EB}.Release|x86.Build.0 = Release|Any CPU - {A3841A67-DAE8-42BD-B0D4-9D0D1657F902}.Build|Any CPU.ActiveCfg = Build|Any CPU - {A3841A67-DAE8-42BD-B0D4-9D0D1657F902}.Build|Any CPU.Build.0 = Build|Any CPU + {4B9BE5FD-303E-4270-9C4D-FA3BDE6C34EB}.Release|Any CPU.ActiveCfg = Release|x64 + {4B9BE5FD-303E-4270-9C4D-FA3BDE6C34EB}.Release|Any CPU.Build.0 = Release|x64 + {4B9BE5FD-303E-4270-9C4D-FA3BDE6C34EB}.Release|x64.ActiveCfg = Release|Any CPU + {4B9BE5FD-303E-4270-9C4D-FA3BDE6C34EB}.Release|x64.Build.0 = Release|Any CPU + {4B9BE5FD-303E-4270-9C4D-FA3BDE6C34EB}.Release|x86.ActiveCfg = Release|x86 + {4B9BE5FD-303E-4270-9C4D-FA3BDE6C34EB}.Release|x86.Build.0 = Release|x86 + {A3841A67-DAE8-42BD-B0D4-9D0D1657F902}.Build|Any CPU.ActiveCfg = Build|x64 + {A3841A67-DAE8-42BD-B0D4-9D0D1657F902}.Build|Any CPU.Build.0 = Build|x64 + {A3841A67-DAE8-42BD-B0D4-9D0D1657F902}.Build|x64.ActiveCfg = Build|x64 + {A3841A67-DAE8-42BD-B0D4-9D0D1657F902}.Build|x64.Build.0 = Build|x64 {A3841A67-DAE8-42BD-B0D4-9D0D1657F902}.Build|x86.ActiveCfg = Build|x86 {A3841A67-DAE8-42BD-B0D4-9D0D1657F902}.Build|x86.Build.0 = Build|x86 - {A3841A67-DAE8-42BD-B0D4-9D0D1657F902}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A3841A67-DAE8-42BD-B0D4-9D0D1657F902}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A3841A67-DAE8-42BD-B0D4-9D0D1657F902}.Debug|Any CPU.ActiveCfg = Debug|x64 + {A3841A67-DAE8-42BD-B0D4-9D0D1657F902}.Debug|Any CPU.Build.0 = Debug|x64 + {A3841A67-DAE8-42BD-B0D4-9D0D1657F902}.Debug|x64.ActiveCfg = Debug|x86 + {A3841A67-DAE8-42BD-B0D4-9D0D1657F902}.Debug|x64.Build.0 = Debug|x86 {A3841A67-DAE8-42BD-B0D4-9D0D1657F902}.Debug|x86.ActiveCfg = Debug|x86 {A3841A67-DAE8-42BD-B0D4-9D0D1657F902}.Debug|x86.Build.0 = Debug|x86 - {A3841A67-DAE8-42BD-B0D4-9D0D1657F902}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A3841A67-DAE8-42BD-B0D4-9D0D1657F902}.Release|Any CPU.Build.0 = Release|Any CPU + {A3841A67-DAE8-42BD-B0D4-9D0D1657F902}.Release|Any CPU.ActiveCfg = Release|x64 + {A3841A67-DAE8-42BD-B0D4-9D0D1657F902}.Release|Any CPU.Build.0 = Release|x64 + {A3841A67-DAE8-42BD-B0D4-9D0D1657F902}.Release|x64.ActiveCfg = Release|x64 + {A3841A67-DAE8-42BD-B0D4-9D0D1657F902}.Release|x64.Build.0 = Release|x64 {A3841A67-DAE8-42BD-B0D4-9D0D1657F902}.Release|x86.ActiveCfg = Release|x86 {A3841A67-DAE8-42BD-B0D4-9D0D1657F902}.Release|x86.Build.0 = Release|x86 + {F6AA03FA-0258-4291-837F-ED4D94A5D9BB}.Build|Any CPU.ActiveCfg = Release|Any CPU + {F6AA03FA-0258-4291-837F-ED4D94A5D9BB}.Build|Any CPU.Build.0 = Release|Any CPU + {F6AA03FA-0258-4291-837F-ED4D94A5D9BB}.Build|x64.ActiveCfg = Release|Any CPU + {F6AA03FA-0258-4291-837F-ED4D94A5D9BB}.Build|x64.Build.0 = Release|Any CPU + {F6AA03FA-0258-4291-837F-ED4D94A5D9BB}.Build|x86.ActiveCfg = Debug|Any CPU + {F6AA03FA-0258-4291-837F-ED4D94A5D9BB}.Build|x86.Build.0 = Debug|Any CPU + {F6AA03FA-0258-4291-837F-ED4D94A5D9BB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F6AA03FA-0258-4291-837F-ED4D94A5D9BB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F6AA03FA-0258-4291-837F-ED4D94A5D9BB}.Debug|x64.ActiveCfg = Debug|Any CPU + {F6AA03FA-0258-4291-837F-ED4D94A5D9BB}.Debug|x64.Build.0 = Debug|Any CPU + {F6AA03FA-0258-4291-837F-ED4D94A5D9BB}.Debug|x86.ActiveCfg = Debug|Any CPU + {F6AA03FA-0258-4291-837F-ED4D94A5D9BB}.Debug|x86.Build.0 = Debug|Any CPU + {F6AA03FA-0258-4291-837F-ED4D94A5D9BB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F6AA03FA-0258-4291-837F-ED4D94A5D9BB}.Release|Any CPU.Build.0 = Release|Any CPU + {F6AA03FA-0258-4291-837F-ED4D94A5D9BB}.Release|x64.ActiveCfg = Release|Any CPU + {F6AA03FA-0258-4291-837F-ED4D94A5D9BB}.Release|x64.Build.0 = Release|Any CPU + {F6AA03FA-0258-4291-837F-ED4D94A5D9BB}.Release|x86.ActiveCfg = Release|Any CPU + {F6AA03FA-0258-4291-837F-ED4D94A5D9BB}.Release|x86.Build.0 = Release|Any CPU + {3F7B5740-0C62-4CFB-883A-02B5722DAE37}.Build|Any CPU.ActiveCfg = Build|x86 + {3F7B5740-0C62-4CFB-883A-02B5722DAE37}.Build|Any CPU.Build.0 = Build|x86 + {3F7B5740-0C62-4CFB-883A-02B5722DAE37}.Build|x64.ActiveCfg = Build|Any CPU + {3F7B5740-0C62-4CFB-883A-02B5722DAE37}.Build|x64.Build.0 = Build|Any CPU + {3F7B5740-0C62-4CFB-883A-02B5722DAE37}.Build|x86.ActiveCfg = Build|x86 + {3F7B5740-0C62-4CFB-883A-02B5722DAE37}.Build|x86.Build.0 = Build|x86 + {3F7B5740-0C62-4CFB-883A-02B5722DAE37}.Debug|Any CPU.ActiveCfg = Debug|x86 + {3F7B5740-0C62-4CFB-883A-02B5722DAE37}.Debug|Any CPU.Build.0 = Debug|x86 + {3F7B5740-0C62-4CFB-883A-02B5722DAE37}.Debug|x64.ActiveCfg = Debug|Any CPU + {3F7B5740-0C62-4CFB-883A-02B5722DAE37}.Debug|x64.Build.0 = Debug|Any CPU + {3F7B5740-0C62-4CFB-883A-02B5722DAE37}.Debug|x86.ActiveCfg = Debug|x86 + {3F7B5740-0C62-4CFB-883A-02B5722DAE37}.Debug|x86.Build.0 = Debug|x86 + {3F7B5740-0C62-4CFB-883A-02B5722DAE37}.Release|Any CPU.ActiveCfg = Release|x86 + {3F7B5740-0C62-4CFB-883A-02B5722DAE37}.Release|Any CPU.Build.0 = Release|x86 + {3F7B5740-0C62-4CFB-883A-02B5722DAE37}.Release|x64.ActiveCfg = Release|Any CPU + {3F7B5740-0C62-4CFB-883A-02B5722DAE37}.Release|x64.Build.0 = Release|Any CPU + {3F7B5740-0C62-4CFB-883A-02B5722DAE37}.Release|x86.ActiveCfg = Release|x86 + {3F7B5740-0C62-4CFB-883A-02B5722DAE37}.Release|x86.Build.0 = Release|x86 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(TeamFoundationVersionControl) = preSolution - SccNumberOfProjects = 6 - SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C} - SccTeamFoundationServer = http://tfs2013:8080/tfs/defaultcollection - SccLocalPath0 = . - SccProjectUniqueName1 = CxViewerVSIX\\CxViewerVSIX.csproj - SccProjectName1 = CxViewerVSIX - SccLocalPath1 = CxViewerVSIX - SccProjectUniqueName2 = Common\\Common.csproj - SccProjectName2 = Common - SccLocalPath2 = Common - SccProjectUniqueName3 = CxViewerColorButton\\ColorButton.csproj - SccProjectName3 = CxViewerColorButton - SccLocalPath3 = CxViewerColorButton - SccProjectUniqueName4 = CxViewerDgvFilterPopup\\DgvFilterPopup.csproj - SccProjectName4 = CxViewerDgvFilterPopup - SccLocalPath4 = CxViewerDgvFilterPopup - SccProjectUniqueName5 = CxViewerAction\\CxViewerAction.csproj - SccProjectName5 = CxViewerAction - SccLocalPath5 = CxViewerAction + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {3A7D1BD1-CBAD-4801-9BC2-7120E0EA84CF} EndGlobalSection EndGlobal diff --git a/CxViewer2022/Checkmarx-X.ico b/CxViewer2022/Checkmarx-X.ico new file mode 100644 index 00000000..92a980b0 Binary files /dev/null and b/CxViewer2022/Checkmarx-X.ico differ diff --git a/CxViewer2022/CxViewer2022.csproj b/CxViewer2022/CxViewer2022.csproj new file mode 100644 index 00000000..bffae751 --- /dev/null +++ b/CxViewer2022/CxViewer2022.csproj @@ -0,0 +1,170 @@ + + + + 16.0 + $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) + + + true + + + true + bin\x64\Debug\ + TRACE + full + x64 + 7.3 + prompt + + + bin\x64\Release\ + TRACE + true + pdbonly + x64 + 7.3 + prompt + + + + Debug + AnyCPU + 2.0 + {82b43b9b-a64c-4715-b499-d71e9ca2bd60};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + {F6AA03FA-0258-4291-837F-ED4D94A5D9BB} + Library + Properties + CxViewer2022 + CxViewer2022 + v4.7.2 + true + true + true + false + false + true + true + Program + $(DevEnvDir)devenv.exe + /rootsuffix Exp + + + true + full + false + bin\Release\ + TRACE + prompt + 4 + AnyCPU + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + LICENSE2 + true + + + Always + true + + + Designer + + + + + True + + + + + + + + + + + + + + + + 10.0.30319 + + + 17.1.32210.191 + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + 13.0.1 + + + + + {9b747803-8500-4115-953e-ce7cbf2a14c2} + Common + + + {a3841a67-dae8-42bd-b0d4-9d0d1657f902} + CxViewerAction + + + {defbe28b-3b2e-4324-bbae-9b9783a29607} + ColorButton + + + + + Menus.ctmenu + Designer + CxViewerPackage.vsct + + + bind.png + true + + + Checkmarx.ico + true + + + incremental_scan.png + true + + + retrieve_results.png + true + + + scan.png + true + + + stored_results.png + + + + + + + \ No newline at end of file diff --git a/CxViewer2022/CxViewer2022.csproj.user b/CxViewer2022/CxViewer2022.csproj.user new file mode 100644 index 00000000..f746abc1 --- /dev/null +++ b/CxViewer2022/CxViewer2022.csproj.user @@ -0,0 +1,17 @@ + + + + C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE + + + C:\Program Files %28x86%29\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\devenv.exe + C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE + /rootsuffix Exp + Program + + + C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\devenv.exe + /rootsuffix Exp + Program + + \ No newline at end of file diff --git a/CxViewer2022/Properties/AssemblyInfo.cs b/CxViewer2022/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..67e7086c --- /dev/null +++ b/CxViewer2022/Properties/AssemblyInfo.cs @@ -0,0 +1,33 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("CxViewer2022")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("CxViewer2022")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/CxViewer2022/checkmarx-80.png b/CxViewer2022/checkmarx-80.png new file mode 100644 index 00000000..20f2eebd Binary files /dev/null and b/CxViewer2022/checkmarx-80.png differ diff --git a/CxViewer2022/obj - Shortcut.lnk b/CxViewer2022/obj - Shortcut.lnk new file mode 100644 index 00000000..b8aa03dc Binary files /dev/null and b/CxViewer2022/obj - Shortcut.lnk differ diff --git a/CxViewer2022/source.extension.vsixmanifest b/CxViewer2022/source.extension.vsixmanifest new file mode 100644 index 00000000..cc959817 --- /dev/null +++ b/CxViewer2022/source.extension.vsixmanifest @@ -0,0 +1,33 @@ + + + + + CxViewer + Checkmarx Visual Studio Plugin + https://checkmarx.atlassian.net/wiki/spaces/SD/pages/1339392185/Visual+Studio+Plugin + checkmarx-80.png + checkmarx-80.png + + + + amd64 + + + amd64 + + + amd64 + + + amd64 + + + + + + + + + + + diff --git a/CxViewerAction/CxViewerAction.csproj b/CxViewerAction/CxViewerAction.csproj index a27fa0b8..c053aeb0 100644 --- a/CxViewerAction/CxViewerAction.csproj +++ b/CxViewerAction/CxViewerAction.csproj @@ -1,5 +1,9 @@  + + + + Debug AnyCPU @@ -12,7 +16,7 @@ false CxViewerAction .\bin\ - v4.7.1 + v4.7.2 SAK @@ -34,7 +38,10 @@ 1.0.0.%2a false true - Resources\cx.ico + + + + true @@ -71,12 +78,25 @@ TRACE;DEBUG false + + x64 + ..\Output\ + AllRules.ruleset + TRACE;DEBUG + false + x86 bin\x86\Release\ AllRules.ruleset false + + x64 + bin\x64\Release\ + AllRules.ruleset + false + bin\Build\ TRACE @@ -92,18 +112,28 @@ AllRules.ruleset false + + bin\x64\Build\ + x64 + AllRules.ruleset + false + true - key.snk + + - - True + + ..\packages\CefSharp.Common.119.4.30\lib\net462\CefSharp.dll - - False + + ..\packages\CefSharp.Common.119.4.30\lib\net462\CefSharp.Core.dll + + + ..\packages\CefSharp.WinForms.119.4.30\lib\net462\CefSharp.WinForms.dll False @@ -115,9 +145,20 @@ False ..\References\Ionic.Zip.dll - - False - ..\References\log4net.dll + + ..\packages\log4net.2.0.14\lib\net45\log4net.dll + + + ..\packages\MessagePack.2.2.85\lib\netstandard2.0\MessagePack.dll + + + ..\packages\MessagePack.Annotations.2.2.85\lib\netstandard2.0\MessagePack.Annotations.dll + + + ..\packages\Microsoft.Bcl.AsyncInterfaces.6.0.0\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll + + + ..\packages\Microsoft.Build.Framework.16.5.0\lib\net472\Microsoft.Build.Framework.dll @@ -132,131 +173,204 @@ False ..\References\Microsoft.Msagl.GraphViewerGdi.dll + + ..\packages\Microsoft.ServiceHub.Client.3.1.2036\lib\net472\Microsoft.ServiceHub.Client.dll + + + ..\packages\Microsoft.ServiceHub.Framework.3.1.2036\lib\netstandard2.0\Microsoft.ServiceHub.Framework.dll + True + + ..\packages\Microsoft.VisualStudio.ComponentModelHost.17.1.386\lib\net472\Microsoft.VisualStudio.ComponentModelHost.dll + + + ..\packages\Microsoft.VisualStudio.GraphModel.17.1.32210.191\lib\net472\Microsoft.VisualStudio.GraphModel.dll + + + ..\packages\Microsoft.VisualStudio.ImageCatalog.17.1.32210.191\lib\net472\Microsoft.VisualStudio.ImageCatalog.dll + + + ..\packages\Microsoft.VisualStudio.Imaging.17.1.32210.191\lib\net472\Microsoft.VisualStudio.Imaging.dll + + + ..\packages\Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime.17.1.32210.191\lib\net472\Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime.dll + True + + + ..\packages\Microsoft.VisualStudio.Interop.17.1.32210.191\lib\net472\Microsoft.VisualStudio.Interop.dll + False ..\References\Microsoft.VisualStudio.Modeling.SDK.Integration.Shell.10.0.dll - - False - ..\References\Microsoft.VisualStudio.Shell.10.0.dll + + ..\packages\Microsoft.VisualStudio.OLE.Interop.7.10.6070\lib\Microsoft.VisualStudio.OLE.Interop.dll - - + + ..\packages\Microsoft.VisualStudio.ProjectAggregator.17.1.32210.191\lib\net472\Microsoft.VisualStudio.ProjectAggregator.dll True - - - - ..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll - True + + ..\packages\Microsoft.VisualStudio.RemoteControl.16.3.44\lib\net45\Microsoft.VisualStudio.RemoteControl.dll + + + ..\packages\Microsoft.VisualStudio.RpcContracts.17.1.13\lib\netstandard2.0\Microsoft.VisualStudio.RpcContracts.dll + + + ..\packages\Microsoft.VisualStudio.Shell.15.0.17.1.32210.191\lib\net472\Microsoft.VisualStudio.Shell.15.0.dll + + + ..\packages\Microsoft.VisualStudio.Shell.Framework.17.1.32210.191\lib\net472\Microsoft.VisualStudio.Shell.Framework.dll + + + ..\packages\Microsoft.VisualStudio.Shell.Immutable.11.0.11.0.50727\lib\net45\Microsoft.VisualStudio.Shell.Immutable.11.0.dll + + + ..\packages\Microsoft.VisualStudio.Shell.Immutable.12.0.12.0.21003\lib\net45\Microsoft.VisualStudio.Shell.Immutable.12.0.dll + + + ..\packages\Microsoft.VisualStudio.Shell.Immutable.14.0.14.3.25407\lib\net45\Microsoft.VisualStudio.Shell.Immutable.14.0.dll + + + ..\packages\Microsoft.VisualStudio.Shell.Interop.8.0.8.0.50727\lib\Microsoft.VisualStudio.Shell.Interop.8.0.dll + + + ..\packages\Microsoft.VisualStudio.Shell.Interop.9.0.9.0.30729\lib\Microsoft.VisualStudio.Shell.Interop.9.0.dll + + + ..\packages\Microsoft.VisualStudio.Telemetry.16.4.22\lib\net45\Microsoft.VisualStudio.Telemetry.dll + + + ..\packages\Microsoft.VisualStudio.TextManager.Interop.7.10.6070\lib\Microsoft.VisualStudio.TextManager.Interop.dll + + + ..\packages\Microsoft.VisualStudio.TextManager.Interop.8.0.8.0.50727\lib\Microsoft.VisualStudio.TextManager.Interop.8.0.dll + + + ..\packages\Microsoft.VisualStudio.Threading.17.1.46\lib\net472\Microsoft.VisualStudio.Threading.dll + + + ..\packages\Microsoft.VisualStudio.Utilities.17.1.32210.191\lib\net472\Microsoft.VisualStudio.Utilities.dll + + + ..\packages\Microsoft.VisualStudio.Utilities.Internal.16.3.36\lib\net45\Microsoft.VisualStudio.Utilities.Internal.dll + + + ..\packages\Microsoft.VisualStudio.Validation.17.0.43\lib\netstandard2.0\Microsoft.VisualStudio.Validation.dll + + + ..\packages\Microsoft.Win32.Registry.5.0.0\lib\net461\Microsoft.Win32.Registry.dll + + + ..\packages\Nerdbank.Streams.2.6.81\lib\netstandard2.0\Nerdbank.Streams.dll + + + + ..\packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll + + ..\packages\StreamJsonRpc.2.8.28\lib\netstandard2.0\StreamJsonRpc.dll + + + ..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + + + ..\packages\System.Collections.Immutable.5.0.0\lib\net461\System.Collections.Immutable.dll + + + + ..\packages\System.Diagnostics.DiagnosticSource.5.0.1\lib\net46\System.Diagnostics.DiagnosticSource.dll + + + + ..\packages\System.IO.4.3.0\lib\net462\System.IO.dll + True + True + + + ..\packages\System.IO.Pipelines.5.0.1\lib\net461\System.IO.Pipelines.dll + + + + ..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll + + + ..\packages\System.Net.Http.4.3.4\lib\net46\System.Net.Http.dll + True + True + + + ..\packages\System.Net.WebSockets.4.3.0\lib\net46\System.Net.WebSockets.dll + True + True + + + + ..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + + + ..\packages\System.Runtime.4.3.0\lib\net462\System.Runtime.dll + True + True + + + ..\packages\System.Runtime.CompilerServices.Unsafe.5.0.0\lib\net45\System.Runtime.CompilerServices.Unsafe.dll + + + ..\packages\System.Security.AccessControl.6.0.0\lib\net461\System.Security.AccessControl.dll + + + ..\packages\System.Security.Cryptography.Algorithms.4.3.0\lib\net463\System.Security.Cryptography.Algorithms.dll + True + True + + + ..\packages\System.Security.Cryptography.Encoding.4.3.0\lib\net46\System.Security.Cryptography.Encoding.dll + True + True + + + ..\packages\System.Security.Cryptography.Primitives.4.3.0\lib\net46\System.Security.Cryptography.Primitives.dll + True + True + + + ..\packages\System.Security.Cryptography.X509Certificates.4.3.0\lib\net461\System.Security.Cryptography.X509Certificates.dll + True + True + + + ..\packages\System.Security.Principal.Windows.5.0.0\lib\net461\System.Security.Principal.Windows.dll + + + ..\packages\System.Threading.AccessControl.6.0.0\lib\net461\System.Threading.AccessControl.dll + + + ..\packages\System.Threading.Tasks.Dataflow.6.0.0\lib\net461\System.Threading.Tasks.Dataflow.dll + + + ..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll + + + - - - - - - - - True - True - CommandBar.resx - - - - - Code - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - True True @@ -267,144 +381,6 @@ True Settings.settings - - True - True - CxViewerResources.resx - - - - - - - - - - - - - - - - - Form - - - BindingPrjList.cs - - - UserControl - - - ConnectionCtrl.cs - - - UserControl - - - PerspectiveResultCtrl.cs - - - - - - - - UserControl - - - OptionsAuthCtrl.cs - - - UserControl - - - OptionsZipCtrl.cs - - - UserControl - - - PerspectiveGraphCtrl.cs - - - UserControl - - - PerspectivePathCtrl.cs - - - UserControl - - - PerspectiveCtrl.cs - - - UserControl - - - OidcLoginCtrl.cs - - - UserControl - - - ScanProcessCtrl.cs - - - Form - - - EditRemarkPopUp.cs - - - Form - - - ErrorFrm.cs - - - - - - - - Form - - - OpenPercspectiveDialog.cs - - - - Form - - - OidcLoginFrm.cs - - - Form - - - ScanProcessFrm.cs - - - Component - - - Component - - - Form - - - UploadFrm.cs - - - Form - - - WaitFrm.cs - True True @@ -417,7 +393,7 @@ - + @@ -428,19 +404,8 @@ SettingsSingleFileGenerator Settings.Designer.cs - - - - - - - - - - - Designer @@ -530,86 +495,11 @@ - - Designer - ResXFileCodeGenerator - CommandBar.Designer.cs - Designer ResXFileCodeGenerator Resources.Designer.cs - - Designer - ResXFileCodeGenerator - CxViewerResources.Designer.cs - - - Designer - BindingPrjList.cs - - - ConnectionCtrl.cs - - - PerspectiveResultCtrl.cs - Designer - - - OptionsAuthCtrl.cs - Designer - - - OptionsZipCtrl.cs - Designer - - - PerspectiveCtrl.cs - Designer - - - PerspectiveGraphCtrl.cs - Designer - - - PerspectivePathCtrl.cs - Designer - - - OidcLoginCtrl.cs - - - ScanProcessCtrl.cs - Designer - - - EditRemarkPopUp.cs - Designer - - - ErrorFrm.cs - Designer - - - OpenPercspectiveDialog.cs - Designer - - - OidcLoginFrm.cs - - - ScanProcessFrm.cs - Designer - - - UploadFrm.cs - Designer - - - WaitFrm.cs - Designer - @@ -681,7 +571,20 @@ DgvFilterPopup - + + + + + + + + + + + + + + @@ -692,6 +595,23 @@ + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - - AAABAAYAEBAAAAEAIABoBAAAZgAAACAgAAABACAAqBAAAM4EAAAwMAAAAQAgAKglAAB2FQAAQEAAAAEA - IAAoQgAAHjsAAICAAAABACAAKAgBAEZ9AAAAAAAAAQAgACFLAABuhQEAKAAAABAAAAAgAAAAAQAgAAAA - AAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCpF0AQqJbAUKmYBdDp2I2No5OPDGCRT02jE49OZNUPTuZ - Wj09n2A9P6VlOUCnaB9Ap2gDQKdoAAAAAABCpmEAQqZhBkKmYWFCpmLMOJJS7Cx4Pu8yg0bvNo1P7zmT - Ve87mlvvPaBh7z+mZ+5AqGrYQKlsfkCqbhBAqm0AQqdjAEKnZGFCqGT0Pp9e/ydvN/8mbTb/MoVJ/zaO - Uf85lVf/O5xe/z2iZf8/qGv/QKpu/0Crb/1ArHGJQK51BEKpZxVCqWfIQqtp/zeTVu8gYS2cJGkzhDGE - SYQ2j1KCOZZZgjudYIM9pGeCP6pujUCtcd5ArXP/QK515kCvdjVCq2oyQqtr6UKsbP8+o2WcABIAAx9e - KwA7lFAAPJVRCjyUUBE8kkwBPqFiAECweABAr3ZtQLB3/0CxePpAsXlgQq1uOEKub+1Cr3D/Qq9xhUKv - cQA7lFEAO5RRGTuUUao7lFHQO5RRYTuUUQc/rnUAQLF6SkCye/hAsnz4QLN9WUKwcjhCsHPtQrF1/0Ky - doVBrG8AO5RRCDuUUZY7lFH/O5RR/zuUUfU7lFGVO5NPGkC1gA0/s354P7R/eT+0gBJCsnc4QrN47UKz - ef9CtHqFQrR6ADuUUWs7lFH3O5RR/zuUUf07lFH/O5RR/juUUcU7lFE+OIQ6ATqPSgAAAAAAQrR7OEK1 - fO1Ctn3/Qrd/gzqQSxk7lFHZO5RR/zuUUeY7lFF7O5RRzDuUUf87lFH/O5RR5zuUUWw5lFUIOJFQAEK3 - fzhCt4DtQriC/0K5g4Q6jEYPO5RRtTuUUeo7lFFrO5RRADuUUSM7lFGjO5RR+TuUUf86k1D3N5dbd1L/ - /wJCuYQ4QbqE7UG7hv9Bu4eFQLaAADuUURc7lFEqO5RRBjuUUQA7lFEAO5RRCzuUUXA7lFHqNopJ/zOS - WeFBxJYxQbuFNEG7hupBu4f/QbyJmkHAjwJBvosAAAAAAAAAAAAAAAAAAAAAADF+OACK7EYALXs9kCl2 - O/81oG34QsidW0G8iBhBvInMQb2K/0G+jO1Bv46WQcCQfkHBkX9BwpN/QcOUf0HDln9BxJd+QsWag0eq - ftVLroL/Q8GV8UHHnUhBuYQAQbyJaUG7iPdBvIn/Qb2K/0G9i/9Bvoz/Qb+O/0G/j/9BwJD/QcOW/0TK - ov9r1rb/eNSy/1DHnLE5x5wQQbmDAEG5hAhBt4FuQbZ/10G2f/JBtn/1QbeA9UG3gfVBuIL0QbyK9EHI - nvRCy6LzVcmg5WTLo6JczqglYcykAAAAAABBsngAQbJ4AkKyeCBCsndEQrJ3S0KyeEtCsnhLQrN6SkHC - k0lBzaZJQcmfRkLEli1GzKUIRcWZAD359QDAAwAAgAEAAIAAAAAAAAAABjAAAAwQAAAIAAAACAMAAAAB - AAAAgAAACMAAAAfwAAAAAAAAgAAAAIABAADAAwAAKAAAACAAAABAAAAAAQAgAAAAAAAAEAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCpV8AQqReA0KlXxxCpWA9Q6hiTUCh - XU81ikxPL35CUTOGSFI2i01SN45PUTiRUlE5lVZROphYUTybW1A9nl5QPqFhUD+kZE9ApmZHQKdnLECn - aAtAqWoAQKVmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCpV8AQqVfAUKlYDJCpWCXQqZh20Km - YvQ9m1n7MYJF+yx3PfsvfUH7NIdJ/DWKTPw3jlD8OJFT/DmVVvs6mFn7PJtc+z2eX/s+oWL7P6Rl+0Cm - Z/hAp2nqQKdpu0Coal1AqGsMQKlrAD6gaAAAAAAAAAAAAAAAAAAAAAAAQqZhAEKmYQRCpmFjQqZh40Km - Yv9Cp2P/PJta/yt2PP8nbTX/KnM6/zGCRf80h0r/NYtN/zeOUf84klT/OZVX/zqZWv88nF3/PZ9g/z6i - ZP8/pWf/QKdp/0Coa/9AqWv/QKls+UCpbaRAqm0cQKptAECpbQAAAAAAAAAAAEKnYgBCol4AQqdiYkKn - YvFCp2P/Qqhk/0GlYv8te0H/JGcx/yVqNP8qdDv/MoRH/zSIS/81i07/N49S/ziTVf85llj/Oppc/zyd - X/89oGL/PqNl/z+maP9AqGv/QKlt/0Cqbf9Aqm7/QKtu/0Crb69Aq3AUQKtwAAAAAAAAAAAAQqdkAEKn - ZDBCp2TgQqhk/0KoZf9Cqmf/OpZY/yNmMP8iZC//ImYw/yhxOf8yhEj/NIhM/zWMT/83kFP/OJNW/zmX - Wv86ml3/PJ5h/z2hZP8+pGf/P6dq/0Cqbf9Aq27/QKtv/0Crb/9ArHD/QKxx/kCtcn87rHgAP6xyAEKo - ZgBCqWgBQqhlkkKoZv9CqWf/Qqln/0Kraf8wgkj/H14q+iBiLekhYy7mJGo05jGCR+U0iU3lNY1Q5DeQ - VOQ4lFfkOZhb5DqbX+Q8n2LkPaJl5D6laeQ/qGzkQKtv8ECscP9ArHH/QK1y/0Ctcv9ArnP/QK503kCu - dCVArnQAQqlnAEKpZxlCqWfWQqpo/0Kqaf9Cq2r/Qalo/yp1PuAeXCljImYxKSJnMiUjaTQlL4BGJDWL - TyQ2jlIkN5JVJDiVWSM5mVwjO5xgIzyfYyM9o2cjPqZqIz+pbSNArHA6QK1yqUCtc/5ArnT/QK51/0Cv - df9Ar3b+QK93YkCvdwBCqmkAQqppNkKqafFCq2r/Qqtr/0KsbP9AqGj8MINKZlDNiAAlazUAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAECvdQBAr3UcQK910ECv - dv9Ar3f/QLB3/0CweP9AsHiQQLF4AEKrawBCq2tFQqxr+EKsbP9CrW3/Qq1u/0Ksbeo/pmgrP6dpAAAA - AAAAAAAAAAAAAAAAAAA7lFEAO5RRADuUUQ07lFEZO5RRBzuUUQA7lFEAAAAAAAAAAAAAAAAAQLF4AEGx - dwFAsHehQLB4/0CxeP9AsXn/QLF6/0CyeqI+sHsBQq1tAEKtbUdCrW35Qq1u/0Kub/9CrnD/Qq9w5kKv - cSZCr3EAAAAAAAAAAAAAAAAAO5RRADuUUQA7lFFHO5RRvzuUUds7lFGnO5RRMTuUUQA7lFEAAAAAAAAA - AABAsXkAQLJ4AECxeZpAsXn/QLJ6/0Cye/9Asnz/QLJ8oj6xfAFCrm8AQq5vR0KucPlCr3D/Qq9x/0Kv - cv9CsHPmQrBzJkKwcwAAAAAAAAAAADuUUQA7lFEAO5RRNjuUUd07lFH/O5RR/zuUUf87lFHdO5RRXTuU - UQY7lFEAAAAAAECyewBAsnsAQLJ7c0CyfP9Asnz/QLJ9/z+zfv8/s357P7N/AEKvcQBCr3FHQq9y+UKw - cv9CsHP/QrF0/0KxdeZCsXUmQrF1AAAAAAAAAAAAO5RRADuUURo7lFG/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH0O5RRkTuUURk7lFEAO5RRAECzfQBAs30aP7N+rT+zf/Y/tH/3P7SAsz+1gB4/tIAAQrBzAEKw - c0dCsXT5QrF1/0Kxdf9Csnb/QrJ35kKydyZCsncAAAAAADuUUQA7lFEJO5RRlzuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH+O5RRwTuUUTs7lFEBO5RSAD+0fwA/tYAPP7WBPz+1gUE/toIRP7SBAEC6 - hwBCsnYAQrJ2R0KydvlCsnf/QrN4/0KzeP9Cs3nmQrR6JkK0eQA7lFEAPJdTATuUUW07lFH4O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR5DuUUWo7lFEKO5RRAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAEKzeABCs3hHQrN4+UKzef9CtHr/QrR7/0K1e+ZCtXwmQrV7ADuUUQA7lFFEO5RR6DuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR+DuUUZ47lFEgO5RRADuU - UQAAAAAAAAAAAAAAAAAAAAAAQrR6AEK0ekdCtHr5QrV7/0K1fP9CtX3/QrZ95kK2fiZAq3AAO5RRETuU - UcE7lFH/O5RR/zuUUf87lFH/O5RR/zuUUbs7lFG3O5RR/DuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Ucw7lFFGO5RRAjuUUQAAAAAAAAAAAAAAAABCtXwAQrV8R0K1fflCtn3/QrZ+/0K3f/9Ct4DmQreAJj6k - ZgA7lFEuO5RR7DuUUf87lFH/O5RR/zuUUf87lFHRO5RRJzuUURE7lFGFO5RR8DuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUeo6k1BxNo5PCTaNTAAAAAAAAAAAAEK2fgBCtn5HQrZ/+UK3f/9Ct4D/QriB/0K4 - guZCuIImP6ltADuUUR07lFHYO5RR/zuUUf87lFH/O5RR6juUUUo7lFEAO5RRADuUUQQ7lFFTO5RR1juU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zqST/g3lViERNGmCEG/jgAAAAAAQreAAEK3gEdCuIH5QriC/0K5 - gv9CuYP/QrmE5kG6hCZBuIIAO5RRADuUUWM7lFHmO5RR/DuUUec7lFFoO5RRAjuUUQAAAAAAO5RRADuU - UQA7lFEpO5RRrTuUUfs7lFH/O5RR/zuUUf87lFH/OpFP/zSOUfU9s4BkLXk4AEHClABCuYMAQrmDR0K5 - g/lCuYT/QbqF/0G6hf9Bu4bmQbuHJkG7hgA7lFEAO5RRAzuUUS07lFFPO5RRLjuUUQM7lFEAAAAAAAAA - AAAAAAAAO5RRADuUUQA7lFEPO5RRejuUUew7lFH/O5RR/zuUUf84j03/LoBD/zqreNJEzKAdQcOVAEG6 - hQBBuoVHQbqF+UG6hv9Bu4f/QbuH/0G8iOZBvIgmQbyIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAADuUUQA7lFEDO5RRSTuUUdE7lFH/OZFP/zCBQ/8qdzv+Oah1+ULI - m1xBxJcAQbqFAEG6hUZBuoX4QbuG/0G7hv9Bu4f/QbyI6UG8iCpBvIgAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADuUUQA0iEgAN45MPDGDROssej3/KHM4/yh2 - PP47soL/Qsebi0HFmABBu4YAQbuGOkG7hvJBu4f/QbuH/0G8iP9BvIn6Qb2JXkG8iABBvYsAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChzNwAoczcgJ3E23yVv - NP8lbzX+MJJe/EDDl/9Bx5yYQcCRAEG7iABBu4gdQbyI20G8iP9BvYn/Qb2K/0G+i/9BvovaQb+NWEHA - jiFBwJAeQcCQHkHBkR5BwZIeQcKSHkHCkx5Bw5QeQcOVHkHElh5BxJYeQcSXHkHFmB5Bx5wdPruOIy+E - TocvfUf7M4dS/Tmgb/xAwJP+Qcaa/0HHnINBxJYAQbyJAEG8iANBvYmdQb2K/0G+i/9Bvoz/Qb6N/0G/ - jf9Bv473QcCP40HAkN9BwJDfQcGR30HBkt9BwpLfQcKT30HClN9Bw5XfQcOV30HElt9BxJffQcSY30HH - nN9Dx53kTcKa+lrHov9jz6z+XMyl/0jFmP9BxJf4QcieT0HHnQBBvo0AQbyJAEG9ijxBvInpQb2K/0G9 - iv9BvYv/Qb6M/0G+jP9Bvo3/Qb+O/0G/jv9Bv4//QcCP/0HAkP9BwJH/QcGR/0HBkv9BwZP/QcKT/0HC - k/9BxJf/Qcif/0fLo/9f07D/fNvA/4jdwv9y0Kz/UMWY/0LFmMVAzKUUQcujAAAAAABBu4cAQb2LAkG6 - hnZBuob4QbqG/0G7h/9Bu4f/QbuI/0G8iP9BvIn/QbyJ/0G9iv9BvYr/Qb2L/0G9jP9Bvoz/Qb6N/0G+ - jf9Bv47/Qb+P/0HGm/9ByqL/Rsyl/13Tsf9/3MH/i9m8/3TNp/9Ux5zsRcqhTUrHmwBBzqoAAAAAAAAA - AABBuYMAQbmECUG4gntBt4HwQbeB/0G3gf9BuIL/QbiC/0G4g/9BuYP/QbmE/0G5hP9BuYT/QbmF/0G6 - hf9Buob/QbqG/0G6hv9BwpP/Qcqi/0HLpP9DzKb/Us+q/2fNpv9ox53/X8qh41rQq2Bi4coDYNe5AAAA - AAAAAAAAAAAAAAAAAABBtn8AQbd/BEG1fUlBtHyzQbR77EG0e/1BtHv/QbR7/0G0e/9BtHz/QbR8/0G1 - fP9BtXz/QrV9/0K1ff9Ct4H/QcGR/0HKov9BzKX/Qcyk/0HHm/9GwZH4TsKT31PJoJxd07E2nvLnAn/j - zAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCsXoAQrN5AEKyeQpCsngwQrF3WEKxdmpCsndtQrJ3bUKy - d21CsndtQrJ4bUKyeG1CsnhtQrN5bEK+jWpBy6RqQc2makHNpmpBzKRpQcebYUHInUhEz6ohU97FBEvW - uAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//////AAAP/AAAA/gAAAH4AAAA8AAAAOAAAABgAAAAYD/ - /wGA/j8AgPwfgID4B4GA8AOBgOAAw4DAAH+AwAA/gIAAD4CAAAeAgMADgMDwA4DB+AGA//wBgP//AYD/ - /wGAAAABgAAAAcAAAAHAAAAD4AAAA/AAAAf8AAAf/////ygAAAAwAAAAYAAAAAEAIAAAAAAAACQAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAEKkXQBCpWAAQqVfB0KlXyVCpWBJQqZgY0KnYW1Cp2JuPZtZbjSJS24vfkJvMIBEczWI - SnM1i0xyNo1OcjePUHI4kVJxOZNUcTqVVnE6l1hxO5lacDybXHA9nV5wPZ9gcD6hYW8/o2NvP6Vla0Cm - ZlxAp2c9QKdoGUCmZwJAp2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAABCpF8AQqVgAEKlXw9CpWBZQqVgr0KlYONCpmH4Qqdi/0CiXv82jU7/Ln1B/yx3 - Pf8teT7/MoNG/zSHSv81ikz/NoxO/zeOUP84kVL/OZNU/zmVVv86l1j/O5la/zybXP89nl7/PaBg/z6i - Yv8/pGT/P6Vm/0CnZ/5Ap2jzQKdp1UCnaZNAqGo5QKdpBECnagAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAEKmYABCpl8BQqVgPEKlYLhCpmD5QqZh/0KmYf9Cp2L/Pp9c/y9+ - Qv8ocDf/KXE4/yp0Ov8vfkL/M4ZI/zSISv81ikz/NoxO/zePUf84kVP/OZNV/zmVV/86mFn/O5pb/zyc - Xf89nl//PaBh/z6iY/8/pGX/P6Zn/0Cnaf9Ap2n/QKhq/0Coav9AqGvrQKlrjkCpbBtAqWwAPqdoAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQqZhAEKmYQNCpmFdQqZh5EKmYf9CpmL/Qqdi/0Kn - Y/9Ao2D/LnxB/yZrNP8nbTb/J283/yp1O/8ygkb/M4ZI/zSIS/81ik3/No1P/zePUf84kVT/OZRW/zmW - WP86mFr/O5tc/zydXv89n2D/PaFi/z6jZP8/pWb/P6Zo/0Coav9AqGv/QKlr/0CpbP9AqWz/QKlt/kCq - bb9Aqm0tQKpuAD+nagAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCpmIAQqViAEKmYlxCpmLtQqdi/0Kn - Y/9Cp2P/Qqhk/0KoZf80iUz/JWgx/yVpM/8mazT/Jmw1/yx4Pv8yhEf/M4ZJ/zSIS/81i07/No1Q/zeQ - Uv84klT/OZRW/zmXWf86mVv/O5td/zydX/89n2H/PaFj/z6kZv8/pWj/P6dp/0Cpa/9AqWz/QKlt/0Cq - bf9Aqm3/QKpt/0Crbv9Aq27JQKtvKECrbwA+qm0AAAAAAAAAAAAAAAAAAAAAAEKnYwBCp2MAQqdjOUKn - Y+JCp2P/Qqdk/0KoZP9CqGX/Qqlm/z6fXv8nbjb/I2Uv/yNnMf8kaDL/JGoz/yx4Pv8yhEj/M4ZK/zSJ - TP81i07/No1Q/zeQU/84klX/OZVX/zmXWv86mVz/O5xe/zyeYP89oGL/PaJl/z6kZ/8/pmn/P6hr/0Cp - bP9Aqm3/QKpt/0Cqbv9Aq27/QKtv/0Crb/9ArHD/QKxwrz+rcBBAq3AAAAAAAAAAAAAAAAAAAAAAAEKo - ZABCqGQNQqdkskKoZP9CqGX/Qqhl/0KoZv9CqWb/Qqpo/zSLTv8hYS3/ImMu/yJkL/8iZTD/ImYx/yl0 - O/8yhEj/M4ZK/zSJTP81jE//No5R/zeQU/84k1b/OZVY/zmYW/86ml3/O5xf/zyfYf89oWT/PaNm/z6l - aP8/p2r/P6ls/0Cqbv9Aq27/QKtv/0Crb/9ArHD/QKxw/0Cscf9ArHH/QK1y+0CtcmxBrXIAP6xyAAAA - AAAAAAAAQqhlAEKoZQBCqGVSQqhl9kKoZv9CqWb/Qqln/0KpZ/9Cqmj/Qahn/yp2Pv8fXSr/IGAs/yBh - Lf8hYi7/IGMv/yRrNf8xgkb/M4dL/zSKTf81jE//No5S/zeRVP84k1f/OZZZ/zmYW/86ml7/O51g/zyf - Yv89oWX/PaNn/z6maf8/qGv/P6pt/0Crb/9ArHD/QKxw/0Cscf9ArHH/QK1y/0Ctcv9ArXP/QK5z/0Cu - dNBArXMaQK10AAAAAAAAAAAAQqlmAEKpZgRCqWamQqlm/0KpZ/9Cqmj/Qqpo/0Kqaf9Cq2r/PqJi/yNm - Mf8eXSnpIGEtriFkL5EhZDCPIWUwjiJoM44ufkSNNIhMizSLTos1jVGLNo9TizeSVYo4lFiKOZdaijqZ - XYo6m1+JO51hiTygY4k9omaJPaRoiT6maog/qGyIP6puj0CscL1ArHH1QK1y/0Ctcv9ArXP/QK1z/0Cu - dP9ArnT/QK51/0CvdftArnVaQK91AAAAAAAAAAAAQqpnAEKpZx9CqmfdQqpo/0KqaP9Cqmn/Qqtp/0Kr - av9DrGv/OZhb/yBgLMshYi08Kng/BBlPHwBb5ZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABArXIAQKxxAECtcgtArXJkQK1z60Cu - dP9ArnT/QK51/0Cudf9Ar3b/QK92/0Cvd/9Ar3ebO6lyAT+udQAAAAAAQqppAEKqaT9Cqmn0Qqpp/0Kr - av9Cq2r/Qqtr/0Ksa/9CrWz/OJZZ7CFjLkAfXisALoBEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAECv - dQBBsnUBQK51fUCudf9Ar3b/QK92/0Cvd/9AsHf/QLB4/0CweP9AsHjGQLB4DUCweAAAAAAAQqtqAEKr - aldCq2r8Qqtr/0Ksa/9CrGz/Qqxs/0Ktbf9CrW3/PaJksyBiLQcoczwAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAABAr3YAQLB2LECvduhAsHf/QLB3/0CweP9AsHj/QLF4/0Cxef9AsXnaQLF5GkCx - eQAAAAAAQqxrAEKsa2BCrGv/Qqxs/0KsbP9CrW3/Qq1u/0Ktbv9Crm//Qa1uk0rAfwA+pWcAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7lFEAO5RRADuUUQ07lFEaO5RRDjuUUQE7lFEAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAsHgAQLB4F0CweNhAsHj/QLF4/0Cxef9AsXn/QLJ5/0Cy - ev9AsnrfQLJ7H0CyewAAAAAAQq1tAEKsbWFCrW3/Qq1t/0Ktbv9CrW7/Qq5v/0Kub/9CrnD/Qq9wj0Kt - bwBCr3EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADuUUQA7lFELO5RRZzuUUcE7lFHbO5RRxjuU - UXI7lFERO5RRADuUUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAsXkAQLF5FkCxedhAsXn/QLF5/0Cy - ev9Asnr/QLJ7/0Cye/9AsnzgQLJ8H0CyfAAAAAAAQq1uAEKtbmFCrW7/Qq5v/0Kub/9CrnD/Qq9w/0Kv - cf9Cr3H/Qq9yj0KvcQBCsHIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO5RRADuUUQU7lFGDO5RR+TuU - Uf87lFH/O5RR/zuUUfs7lFGxO5RRLjuUUQA7lFEAAAAAAAAAAAAAAAAAAAAAAAAAAABAsnoAQLJ6EUCy - es1Asnr/QLJ7/0Cye/9Asnz/QLJ8/0Cyff8/s33XP7N9GD+zfQAAAAAAQq5vAEKub2FCrnD/Qq9w/0Kv - cf9Cr3H/Qq9y/0Kwcv9CsHP/QrBzj0KwcwBCsHQAAAAAAAAAAAAAAAAAAAAAAAAAAAA7lFEAO5RRADuU - UV07lFHyO5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR2juUUVk7lFEGO5RRAAAAAAAAAAAAAAAAAAAA - AABAtHwAQbd+AUCyfJNAsnz/QLJ8/0Cyff8/s33/P7N+/z+zfv8/tH+gP7V/BD+0fwAAAAAAQq9xAEKv - cWFCr3H/Qq9y/0Kwcv9CsHP/QrBz/0KwdP9CsXT/QrF1j0KxdABCsXUAAAAAAAAAAAAAAAAAAAAAADuU - UQA7lFEAO5RRNzuUUd47lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUfI7lFGMO5RRFzuU - UQA7lFEAAAAAAAAAAAAAAAAAQLN9AEC0filAs33MP7N+/z+zfv8/s3//P7R//z+0gNQ/tYAxP7SAAAAA - AAAAAAAAQrByAEKwcmFCsHP/QrBz/0KwdP9CsXT/QrF1/0Kxdf9Csnb/QrJ2j0KydQBCsnYAAAAAAAAA - AAAAAAAAO5RRADuUUQA7lFEbO5RRwDuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH9O5RRvTuUUTg7lFEBO5RRAAAAAAAAAAAAQLiBAD+yfgA/tYAoP7SAkT+0gMo/tIDMP7WBlz+1 - gi49sHwAQLeEAAAAAAAAAAAAQrB0AEKwdGFCsXT/QrF1/0Kxdf9Csnb/QrJ2/0Kyd/9Csnf/QrN4j0Ky - dwBCs3gAAAAAAAAAAAAAAAAAO5RRADuUUQk7lFGZO5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUeI7lFFmO5RRCTuUUQAAAAAAAAAAAAAAAABAuIQAQLqFAkC3 - gw9At4MQQLmFA0C4hAAAAAAAAAAAAAAAAAAAAAAAQrF1AEKxdWFCsnb/QrJ2/0Kyd/9Csnf/QrN4/0Kz - eP9Cs3n/QrN5j0KzeQBCtHkAAAAAAAAAAAA7lFEAO5RRATuUUW47lFH4O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH2O5RRmjuUUR47lFEAO5RRAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQrJ3AEKyd2FCsnf/QrJ3/0Kz - eP9Cs3n/QrN5/0K0ev9CtHr/QrR7j0K0egBCtHsAAAAAADuWUgA7k1EAO5RRRjuUUeg7lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/juU - Ucg7lFFDO5RRAjuUUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQrN4AEKz - eGFCs3j/QrN5/0K0ef9CtHr/QrR7/0K0e/9CtXz/QrV8j0K1ewBCtXwAO5RRADuUUQA7lVEmO5RRzjuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFHoO5RRczuUUQ07lFEAO5RRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAQrR6AEK0emFCtHr/QrR6/0K0e/9CtXv/QrV8/0K1fP9Ctn3/QrZ9j0K2fQBCtn4AO5RRADuU - UQY7lFGdO5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFHwO5RRvjuUUfU7lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR+juUUac7lFEmO5RRADuUUQAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAQrR7AEK0e2FCtXv/QrV8/0K1fP9Ctn3/QrZ9/0K2fv9Ctn7/QrZ/j0K2 - fgBCt38AO5RRADuUUSk7lFHmO5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf07lFGIO5RRDjuU - UWc7lFHiO5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFHSO5RRTDuU - UQM7lFEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQrV8AEK1fGFCtX3/QrZ9/0K2fv9Ctn7/Qrd//0K3 - f/9Ct4D/QreAj0K3gABCuIEAO5RRADuUUTw7lFH0O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - UbI7lFETO5RRADuUUQE7lFE5O5RRvzuUUf47lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR7DqSUHU0iksKNYpKAAAAAAAAAAAAAAAAAAAAAAAAAAAAQrZ+AEK2fmFCtn7/QrZ//0K3 - f/9Ct4D/QreA/0K4gf9CuIH/QriCj0K4gQBCuIIAO5RRADuUUSc7lFHkO5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR1DuUUSs7lFEAO5RRADuUUQA7lFEAO5RRGDuUUY87lFH0O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zmRT/k2klWJQ8iZC0C7iAAAAAAAAAAAAAAAAAAAAAAAQrd/AEK3 - f2FCt4D/QreA/0K4gf9CuIH/QriC/0K5gv9CuYP/QrmDj0K5gwBCuYMAO5RRADuUUQU7lFGYO5RR/zuU - Uf87lFH/O5RR/zuUUf87lFHrO5RRTjuUUQA7lFEAAAAAAAAAAAAAAAAAO5RRADuUUQY7lFFcO5RR3DuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zqST/80jE73PK56e0vpwwRBwZIAAAAAAAAA - AAAAAAAAQriBAEK4gWFCuIH/QriC/0K4gv9CuYP/QrmD/0K5hP9BuoT/QbqFj0K5hABBuoUAO5RRADuU - UQA7lFEdO5RRqDuUUfY7lFH/O5RR/juUUeA7lFFhO5RRAjuUUQAAAAAAAAAAAAAAAAAAAAAAAAAAADuU - UQA7lFEAO5RRMTuUUbY7lFH8O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zqST/8wgkP/OKBp7ELE - lktBwZEAQcKUAAAAAAAAAAAAQrmCAEK5gmFCuYP/QrmD/0K5hP9CuYT/QbqF/0G6hf9Buob/QbuGj0G6 - hgBBu4YAAAAAADuUUQA7lFEAO5RRDTuUUUc7lFFwO5RRYzuUUSk7lFECO5RRAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAA7lFEAO5RRADuUURM7lFGEO5RR8DuUUf87lFH/O5RR/zuUUf87lFH/O5RR/ziQ - Tv8ufT//Mo5V/0C/j7xCxpgQQcOVAAAAAAAAAAAAQrmEAEK5hGFCuYT/QbqF/0G6hf9Buob/QbuG/0G7 - h/9Bu4f/QbuHj0G7hwBBvIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADuUUQA7lFEEO5RRUjuUUdU7lFH/O5RR/zuU - Uf87lFH/O5RR/zOHR/8reTz/LoJH/D67i/RBxZhPQcSWAAAAAAAAAAAAQbqFAEG6hWFBuoX/QbuG/0G7 - hv9Bu4f/QbuH/0G8iP9BvIj/QbyJj0G8iABBvIkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7lFEAO5RRADuU - USk7lFGuO5RR/TuVUf87k1D/NYlJ/yt5Pf8pdjr/LH5D/D66i/9BxpmUQb+OAEHFmAAAAAAAQbqFAEG6 - hWFBuoX/QbuF/0G7hv9Bu4b/QbuH/0G7h/9BvIj/QbyIkkG8iABBvIgAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAO5RRADuUUQA8llIVN45MujSHR/8vf0H/KnY6/yh0Of8ncjf/LYRL/EDAkv9BxpnAQcWZC0HF - mQAAAAAAQbuFAEG7hVpBu4X9QbuG/0G7hv9Bu4f/QbuH/0G7h/9Bu4j/QbyIrEG9iQVBvIkAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAADqTUAAncjcAKng7cih0Of8nczf/J3I3/yZxNv8mcDX+NJ1p+0HG - mv9BxprUQcabFUHGmwAAAAAAQbuGAEG7hkVBu4b3QbuH/0G7h/9Bu4j/QbyI/0G8iP9BvIn/Qb2J5UG9 - ijVBvYoAQb6JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC18PgAfZC0AKHM4hiZxNv8mcDX/JW40/yRu - M/4ui1X8P7+T/UHGm/9BxpzVQcieFUHIngAAAAAAQbuHAEG7hyVBu4jjQbyI/0G8iP9BvIj/Qb2J/0G9 - if9BvYr/Qb6L/0G+i79BvowwQb+NAkG/jQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEkNAELHjgAobjIyJ3A12Chw - Nv8qcjn+LHtE/TSZZfs/v5H9Qcaa/0HGmv9Bx5zEQcqiDUHJoQAAAAAAQbyIAEG8iAhBvImzQb2J/0G9 - if9BvYr/Qb2K/0G+i/9Bvoz/Qb6M/0G/jf9Bv43hQb+On0HAj4BBwI99QcCQfUHBkX1BwZF9QcGSfUHB - kn1BwpJ9QcKTfUHCk31Bw5R9QcOUfUHDlX1Bw5V9QcSWfUHEl31BxJd9QcWYfUHFmH1Bxpt9QciefT+9 - kY46o3LXPZ1u/0SkdvxLsof7T8GY/U3Hnf9FxZn/QcSX/0HFmP9ByJ2cQeHLAUHKogAAAAAAQbyMAEG9 - igBBvYpjQb2K/EG9i/9Bvov/Qb6M/0G+jP9Bvo3/Qb+N/0G/jv9Bv47/Qb+O/0HAj/9BwI//QcCQ/0HA - kP9BwZH/QcGR/0HBkv9BwZL/QcKT/0HCk/9BwpT/QcOU/0HDlf9Bw5X/QcSW/0HElv9BxJf/QcSX/0HE - mP9Bx5z/Qcie/0XJoP9Qzaf/XNKu/2XUs/9q1rb/adOw/1zLo/9LxZn/Q8OV/0HEl/tByaBcQcifAAAA - AAAAAAAAAAAAAEG9igBBvYoWQbyJxkG9iv9BvYr/Qb2L/0G9i/9Bvov/Qb6M/0G+jP9Bvo3/Qb6N/0G/ - jv9Bv47/Qb+O/0G/j/9BwI//QcCQ/0HAkP9BwJH/QcGR/0HBkf9BwZL/QcGS/0HCk/9BwpP/QcKU/0HC - lP9BwpT/QcOV/0HEl/9ByJ7/Qsmg/0jLpP9Z0Kz/bta3/33bv/+E3cP/gde5/2nNp/9Sxpr/RcKT/0HG - m9BBzaYbQcukAAAAAAAAAAAAAAAAAEG7iQBBu4cAQbuIUEG7iO9Bu4j/QbyI/0G8if9BvIn/QbyK/0G9 - iv9BvYr/Qb2L/0G9i/9BvYv/Qb6M/0G+jP9Bvo3/Qb6N/0G/jf9Bv47/Qb+O/0G/jv9Bv4//QcCP/0HA - kP9BwJD/QcCQ/0HAkf9BwJH/QcGR/0HGmv9ByaH/Qsqh/0nMpv9a0a7/cdi6/4vfx/+U4cn/jNi6/3HO - qP9XxZj/RsSX+ULKomdExZkAQc2mAAAAAAAAAAAAAAAAAAAAAABBu4cAQbuIBEG6hXtBuoX4QbqF/0G6 - hf9Buob/QbqG/0G7h/9Bu4f/QbuH/0G7h/9Bu4j/QbyI/0G8if9BvIn/QbyJ/0G8if9BvYr/Qb2K/0G9 - i/9BvYv/Qb2L/0G9jP9Bvoz/Qb6M/0G+jf9Bvo3/QcGS/0HJoP9ByqL/Qsuj/0fMpv9W0a3/a9e4/4Td - xP+K2bz/gdGv/27Lo/9Xx5z/ScuknUTRrQxGz6oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQbmEAEG5 - hAlBuIKBQbiC9EG4gv9BuIL/QbiC/0G4g/9BuIP/QbmD/0G5hP9BuYT/QbmE/0G5hf9BuoX/QbqF/0G6 - hf9Buob/QbqG/0G6hv9Buof/QbqH/0G7h/9Bu4f/QbuI/0G7h/9BvYv/Qcec/0HLo/9By6P/Qcuk/0XM - pv9Q0Kz/YtS0/3HRrv9wyaD/aMeb/17JoPxXz6umXte3GVPSsAD///8AAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAEG3gQBBuIEGQbZ/X0G2fthBtX7/QbV+/0G2fv9Btn7/QbZ//0G2f/9Btn//QbZ//0G3 - gP9Bt4D/QbeA/0G3gP9Bt4D/QbeB/0G3gf9Bt4H/QbiC/0G4gv9BuIL/QbiC/0G6hv9BxZn/Qcuk/0HL - pP9BzKT/Qcyl/0LMpf9IyqH/VMOV/1q/jv9Zw5X/V8qh5VnSr3903cMUO86nAP///wD///8AAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBtn4AQbuHAEG1fSVBtHuEQrN61EKzefdCs3n/QrN5/0Kz - ef9Cs3n/QrN6/0Kzev9Cs3r/QrN6/0K0ev9CtHr/QrR7/0K0e/9CtHv/QrR7/0K0e/9CtX3/QruI/0HH - nP9BzKX/Qcyl/0HMpf9BzKX/Qcie/0HBkv9DvYn/R7+O9UrGm9RPzqiOXNa3NKTs3gQUyaEA////AP// - /wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEK0ewBCtX0BQrN5GUKy - eEhCsXd2QrF2kEKxdptCsXadQrF3nUKxd51CsXedQrF3nUKyd51CsnedQrJ4nUKyeJ1CsnidQrJ4nUKz - eZtCvImYQcmgmEHMpphBzKWYQc2mmEHNp5hBzaaYQcmglUHInohBy6NsQs6pQ0jUsxls5dICV93EAP// - /wD///8A////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAOdfMADnZyQA52ckAOdjFADnXxQA51soAOdXHADnewAA54cEAOd3JADnc - ygA52MkAOdTKADnX2QA9to0AN+f7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////8AAP// - /////wAA/8AAAAH/AAD/AAAAAH8AAPwAAAAAPwAA+AAAAAAfAAD4AAAAAA8AAPAAAAAABwAA4AAAAAAH - AADgAAAAAAMAAMAAAAAAAwAAwAP//+ABAADAD///8AEAAMAP///4AQAAwB/+H/gBAADAH/gP+AEAAMAf - 8Af4AQAAwB/wAfgBAADAH+AA/AMAAMAfwAA+BwAAwB+AAB8PAADAHwAAD/8AAMAfAAAD/wAAwB4AAAH/ - AADAHAAAAP8AAMAcAAAAPwAAwBwAQAAfAADAHADwAA8AAMAcAfgABwAAwB4B/gAHAADAHwP/AAMAAMAf - //+AAwAAwB///+ADAADAH///8AEAAMAP///4AQAAwA////gBAADAA///8AEAAMAAAAAAAQAA4AAAAAAD - AADgAAAAAAMAAPAAAAAABwAA8AAAAAAHAAD4AAAAAA8AAPwAAAAAHwAA/wAAAAA/AAD/gAAAAP8AAP// - /////wAA////////AAAoAAAAQAAAAIAAAAABACAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQqVeAEKkWABCpV8MQqVfLkKlYFVCpWB1QqZghkKm - YY1Dp2KNQaRgjTuXVo00iEqNL39Cji59QZMzhEeUNYlKkzWKTJM2jE2TN41PkjePUJI4kVKSOJJTkTmU - VZE6lVaROpdYkTuYWZA7mlqQPJtckD2dXZA9nl+PPqBgjz6iYo8/o2OPP6RkjT+lZYVAp2dyQKdnUECn - aClAp2gJQKdsAECnZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCpV8AQqVfAkKlXyVCpWB0QqVgv0Kl - YOpCpmD7QqZh/0KmYf9CpWH/O5hW/zKER/8tej//LHc9/yx3Pf8vfkL/M4ZI/zSISv81iUv/NYtN/zaN - Tv83j1D/N5BR/ziSU/85lFX/OpVW/zqXWP87mFn/O5pb/zycXP89nV7/PZ9f/z2gYf8+omL/P6Nk/z+k - Zf8/pmb/QKdn/0CnaPpAp2jmQKdptkCnaWlAqGkdPaVkAD+maAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEKlYABCpWAAQqVgGEKl - YHxCpWDdQqZg/kKmYf9CpmH/QqZh/0KnYv9Ao1//NIlL/yp0Ov8pcTj/KXM5/yp0Ov8tej//MoRH/zSG - Sf80iEr/NYlM/zWLTf82jU//N49R/zeRUv84klT/OZRV/zqWV/86l1j/O5la/zubXP88nF3/PZ5e/z2f - YP89oWH/PqJj/z+kZf8/pWb/P6Zn/0CnaP9Ap2n/QKdp/0Coav9AqGr8QKhq00Coa2xAqWoRQKlrAD+l - ZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEKm - YABCp18AQqZgPkKmYMNCpmH9QqZh/0KmYf9CpmL/QqZi/0KnY/9Ao2D/MYNG/yhuNv8objb/KHA3/yhx - OP8qdDr/MIBD/zOFSP80hkn/NIhL/zWKTP81jE7/No1P/zePUf83kVP/OJNU/zmUVv86llf/OphZ/zuZ - W/87m1z/PJ1e/z2eX/89oGH/PaFi/z6jZP8/pGX/P6Zn/z+naP9Ap2n/QKhq/0Coav9AqGv/QKhr/0Cp - a/9AqWz6QKlsskCpbC5Dqm8APqhrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAEKmYQBCpmABQqZhVkKmYeJCpmH/QqZi/0KmYv9Cp2L/Qqdj/0KnY/9Cp2P/M4hK/yZr - M/8mbDT/J201/yduNv8nbzf/K3c9/zKDRv8zhUj/NIdJ/zSIS/81ik3/NYxO/zaOUP83j1L/N5FT/ziT - Vf85lVb/OpdY/zqYWv87mlv/O5xd/zydX/89n2D/PaBi/z2iY/8+o2X/P6Vm/z+maP8/p2n/QKhq/0Co - a/9AqWv/QKls/0CpbP9AqWz/QKlt/0Cqbf9Aqm3UQKptQkSxcgA/qGwAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAEKmYgBCqV8AQqZiVUKmYulCpmL/Qqdi/0KnY/9Cp2P/Qqdj/0Ko - ZP9CqWX/OpZW/ydsNP8laTL/JWoz/yZrNP8mbDX/Jm02/y16QP8yg0f/M4VI/zSHSv80iUz/NYpN/zWM - T/82jlD/N5BS/zeSVP84k1b/OZVX/zqXWf86mFr/O5pc/zucXv88nV//PZ9h/z2gYv89omT/PqRm/z+l - Z/8/pmn/P6hq/0Cpa/9AqWz/QKls/0Cpbf9Aqm3/QKpt/0Cqbf9Aqm3/QKpu/0CrbtxAqm4/QaxwAD6n - awAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEKnYgBCp2IAQqdiO0KnYuBCp2P/Qqdj/0Kn - Y/9Cp2T/Qqhk/0KoZf9CqGX/QaVj/yx5P/8jZS//JGcx/yRoMv8kaTP/JWo0/yVsNf8ufEH/MoRH/zOF - Sf80h0r/NIlM/zWLTv81jE//No5R/zeQU/83klT/OJRW/zmWWP86l1r/Oplb/zubXf87nF//PJ5g/z2g - Yv89oWP/PaNl/z6kZ/8/pmj/P6dq/z+oa/9AqWz/QKlt/0Cqbf9Aqm3/QKpt/0Cqbv9Aq27/QKtu/0Cr - b/9Aq2//QKxwz0CrbydArHAAMIFHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCp2MAQqdjFUKn - Y71Cp2P/Qqdk/0KoZP9CqGT/Qqhl/0KoZf9CqGb/Qqpn/zmWV/8kZjD/ImQu/yNlMP8jZjD/I2cx/yNo - Mv8kajP/LXtA/zKER/8zhUn/NIdL/zSJTP81i07/NY1Q/zaPUf83kVP/N5JV/ziUV/85llj/Opha/zqZ - XP87m13/O51f/zyeYf89oGP/PaJk/z2jZv8+pWj/P6Zp/z+na/8/qWz/QKpt/0Cqbf9Aqm7/QKtu/0Cr - bv9Aq2//QKtv/0CscP9ArHD/QKxw/0Cscf9ArHGlP6twCz+rcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AABCqGQAQqZkAEKoZHRCqGT9Qqhk/0KoZf9CqGX/Qqhm/0KpZv9CqWb/Qqln/0KpZ/8vf0X/IWAr/yFi - Lf8hYy7/ImQv/yJlMP8iZjD/Imcx/yt3Pf8yhEj/M4VJ/zSHS/80iU3/NYtP/zWNUP82j1L/N5FU/zeS - Vv84lFf/OZZZ/zqYW/86ml3/O5te/zudYP88n2L/PaFk/z2iZf89o2f/PqVp/z+nav8/qGz/P6lt/0Cr - bv9Aq27/QKtv/0Crb/9Aq2//QKxw/0CscP9ArHH/QKxx/0Cscf9ArXL/QK1y9kCtcllArXMAP6txAAAA - AAAAAAAAAAAAAAAAAAAAAAAAQqhlAEKoZR9CqGXWQqhl/0KoZf9CqWb/Qqlm/0KpZ/9CqWf/Qqln/0Kq - aP8/o2P/Jmw1/x9eKv8gYCz/IGEs/yFiLf8hYy7/IWQv/yFkL/8mbjf/MYNH/zOGSv80iEv/NIpN/zWM - T/81jVH/No9T/zeRVP83k1b/OJVY/zmXWv86mVz/Oppd/zucX/87nmH/PJ9j/z2hZP89o2b/PaRo/z6m - af8/p2v/P6ls/z+qbv9Aq2//QKtv/0CscP9ArHD/QKxx/0Cscf9ArHH/QK1y/0Ctcv9ArXL/QK1z/0Cu - c/9ArnO/P6xzET+scwAAAAAAAAAAAAAAAAAAAAAAQqlmAEKoZQBCqGZpQqhm/UKpZv9CqWf/Qqln/0Kp - Z/9Cqmj/Qqpo/0Kqaf9Cq2r/OZda/yBgLP8fXCn/H14r/iBgLPMgYS3rIGIu6iBjL+ogZC/qImcy6i59 - Q+kzh0voNIhM6DSKTug1jFDoNo5S6DaQU+g3klXnOJNX5ziVWec5l1vnOplc5zqaXuc7nGDnO55i5zyg - Y+c9oWXnPaNn5j6laOY+pmrmP6hs5j+pbec/q2/wQKxw/kCscP9ArHH/QKxx/0Ctcv9ArXL/QK1y/0Ct - c/9ArnP/QK50/0CudP9ArnT/QK519kCudExArnUAAAAAAAAAAAAAAAAAAAAAAEKpZwBCqWcIQqlns0Kp - Z/9CqWf/Qqpo/0KqaP9Cqmj/Qqpp/0Kqaf9Cq2r/Q6xr/zOJTv8dWif/H14q0CFjL3IkaTQ8JWw2LiVs - Ni4lbTYtJW43LSVuNy0tfUMsNIpOKjWLTyo1jVEqNo9SKjaQVCk3klYpOJRXKTiVWSk5l1opOZlcKTqa - Xig7nF8oO51hKDyfYyg8oWQoPaJmKD2kaCc+pWknPqdrJz+obCc/qm4oQKtwOUCscXVArXLWQK1y/0Ct - cv9ArXP/QK1z/0Cuc/9ArnT/QK50/0Cudf9ArnX/QK91/0Cvdv9Ar3aWO6JqAT+sdAAAAAAAAAAAAAAA - AABCqmgAQqpoJUKqaOJCqmj/Qqpo/0Kqaf9Cqmn/Qqpp/0Krav9Cq2r/Qqtq/0Ksa/8sfEP/HlsosSRp - MyIRPhIAL4FGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAECv - dABAq3EAQK5zKUCuc71ArnP/QK50/0CudP9ArnX/QK51/0Cvdf9Ar3b/QK92/0Cvd/9AsHf/QLB3zT+v - dhM/r3YAAAAAAAAAAAAAAAAAQqpoAEKqaEdCqmn3Qqpp/0Kqaf9Cq2r/Qqtq/0Krav9Cq2v/Qqxr/0Ks - bP9Bqmr/K3lB1B5cKCUfXisAW+SPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAQLB2AECudQBAr3UxQK514ECudf9Ar3X/QK92/0Cvdv9Ar3b/QLB3/0Cw - d/9AsHj/QLB4/0CweOpAsHguQLB4AAAAAAAAAAAAAAAAAEKraQBCqmllQqtq/0Krav9Cq2r/Qqtr/0Ks - a/9CrGv/Qqxs/0KsbP9CrW3/QKlp/zGHTXpMyIIAMHtIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAsHcARLl/AECvdpBAr3b/QK92/0Cv - d/9AsHf/QLB4/0CweP9AsHj/QLB4/0CxeP9AsXj4QLF5R0CxeQAAAAAAAAAAAAAAAABCq2oAQqtqdkKr - av9CrGv/Qqxr/0KsbP9CrGz/Qqxs/0Ktbf9CrW3/Qq1u/0GrbPQ7nmE/PKFjAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAECv - dwBAsHdZQLB3/UCwd/9AsHj/QLB4/0CweP9AsXj/QLF4/0Cxef9AsXn/QLJ6/ECxelZAsnoAAAAAAAAA - AAAAAAAAQqxrAEKsa3xCrGz/Qqxs/0KsbP9CrW3/Qq1t/0Ktbf9CrW7/Qq1u/0Kub/9Crm/rQq1vL0Kt - bwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO5RRADuU - UQA7lFEMO5RRGTuUURQ7lFEEO5RRADuUUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAABAsHgAQLB4SUCwePpAsHj/QLF4/0CxeP9AsXn/QLF5/0Cxef9Asnr/QLJ6/0Cy - e/1AsntbQLJ7AAAAAAAAAAAAAAAAAEKsbABCrGx8Qq1t/0Ktbf9CrW3/Qq1u/0Ktbv9Crm//Qq5v/0Ku - b/9CrnD/Qq5w6kKvcC5Cr3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAA7lFEAO5RRADuUURk7lFF2O5RRwDuUUdk7lFHQO5RRnzuUUT87lFEDO5RRAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQLF5AECxeUlAsXj6QLF5/0Cxef9AsXn/QLJ6/0Cy - ev9Asnv/QLJ7/0Cye/9Asnz9QLJ8W0CyfAAAAAAAAAAAAAAAAABCrW4AQq1tfEKtbv9CrW7/Qq1u/0Ku - b/9Crm//Qq5w/0KucP9Cr3D/Qq9x/0KvcepCr3EuQq9xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAA7lFEAO5RRADuUUSY7lFG8O5RR/juUUf87lFH/O5RR/zuUUf87lFHrO5RRejuU - URA7lFEAO5RRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAECxegBAsXpFQLF5+ECy - ev9Asnr/QLJ6/0Cye/9Asnv/QLJ8/0CyfP9Asnz/QLJ9/ECyfVdAsn0AAAAAAAAAAAAAAAAAQq5vAEKt - bnxCrm//Qq5v/0KucP9CrnD/Qq9w/0Kvcf9Cr3H/Qq9y/0Kvcv9CsHLqQrBzLkKwcwAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO5RRADuUURQ7lFGxO5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUfs7lFGtO5RRKzuUUQA7lFEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AABAsnsAQLJ7LUCyeuhAsnv/QLJ7/0CyfP9Asnz/QLJ8/0Cyff9Asn3/P7N+/z+zfvE/s347P7N+AAAA - AAAAAAAAAAAAAEKucABCrnB8Qq5w/0KvcP9Cr3H/Qq9x/0Kvcf9Cr3L/QrBy/0Kwc/9CsHP/QrBz6kKw - dC5CsHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO5RRADuUUQY7lFGJO5RR/TuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUdY7lFFVO5RRBTuUUQAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAQLN9AEC0fQlAsnyuQLJ8/0CyfP9Asn3/QLJ9/z+zff8/s37/P7N+/z+z - f/8/tH++P7WAED+0gAAAAAAAAAAAAAAAAABCr3EAQq9xfEKvcf9Cr3H/Qq9y/0Kvcv9CsHP/QrBz/0Kw - c/9CsHT/QrF0/0KxdOpCsXUuQrF1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO5RRADuU - UQA7lFFeO5RR8zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR8TuU - UYg7lFEVO5RRADuUUQAAAAAAAAAAAAAAAAAAAAAAAAAAAEG4ggBAs30AQLR+O0Czfd8/s33/P7N+/z+z - fv8/s37/P7R//z+0f/8/tIDoP7WAST+0gABAt4EAAAAAAAAAAAAAAAAAQq9yAEKvcnxCr3L/QrBy/0Kw - c/9CsHP/QrB0/0KxdP9CsXT/QrF1/0Kxdf9CsnbqQrJ2LkKydgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAO5RRADuUUQA7lFE5O5RR3zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH9O5RRuTuUUTU7lFEAO5RRAAAAAAAAAAAAAAAAAAAAAAAAAAAAQLeBAEbK - jQA/tX9FP7R/yD+0f/o/tH//P7SA/z+0gPw/tYHQP7WBUUG5hQJAt4MAAAAAAAAAAAAAAAAAAAAAAEKw - cwBCsHN8QrBz/0KwdP9CsXT/QrF0/0Kxdf9CsXX/QrF1/0Kydv9Csnb/QrJ36kKydy5CsncAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAADuUUQA7lFEcO5RRwTuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFHfO5RRYjuUUQg7lFEAAAAAAAAA - AAAAAAAAAAAAAAAAAABBu4YAPKpzAEC2gRc/toFWP7WBgT+1gYM/toJbP7aDHEbNmgBAuYUAAAAAAAAA - AAAAAAAAAAAAAAAAAABCsXQAQrF0fEKxdP9CsXX/QrF1/0Kxdf9Csnb/QrJ2/0Kyd/9Csnf/QrJ3/0Kz - eOpCs3guQrN4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADuUUQA7lFEKO5RRmjuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - UfU7lFGVO5RRHDuUUQA7lFEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQrF1AEKxdXxCsXX/QrJ2/0Kydv9Csnb/QrJ3/0Ky - d/9Cs3j/QrN4/0KzeP9Cs3nqQrN5LkKzeQAAAAAAAAAAAAAAAAAAAAAAAAAAADuUUQA7lFEBO5RRbzuU - Ufg7lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/juUUcQ7lFE/O5RRAjuUUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEKydgBCsnZ8QrJ2/0Ky - d/9Csnf/QrN4/0KzeP9Cs3j/QrN5/0Kzef9CtHr/QrR66kK0ei5CtHoAAAAAAAAAAAAAAAAAAAAAADyW - UwA7k1AAO5RRRzuUUeg7lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR5juUUW87lFEMO5RRAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AABCsncAQrJ3fEKyd/9Cs3j/QrN4/0Kzef9Cs3n/QrR5/0K0ev9CtHr/QrR7/0K0e+pCtXsuQrR7AAAA - AAAAAAAAAAAAAD+bVQA7lFEAO5VRJzuUUc47lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH4O5RRojuUUSQ7lFEAO5RRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAQrN4AEKzeHxCs3n/QrN5/0K0ef9CtHr/QrR6/0K0e/9CtHv/QrV7/0K1 - fP9CtXzqQrV8LkK1fAAAAAAAAAAAAAAAAAA7lVEAO5VSEDuUUas7lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFHPO5RRSzuUUQM7lFEAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEK0eQBCtHl8QrR6/0K0ev9CtHr/QrR7/0K1 - e/9CtXz/QrV8/0K1fP9CtX3/QrZ96kK2fS5Ctn0AAAAAAAAAAAA7lFEAO5VSADuUUXQ7lFH8O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFHfO5RR6zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUew7lFF9O5RREDuU - UQA7lFEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCtHsAQrR6fEK0 - e/9CtHv/QrV7/0K1fP9CtXz/QrV9/0K2ff9Ctn3/QrZ+/0K2fupCtn4uQrZ+AAAAAAAAAAAAO5RRADuU - URo7lFHTO5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFHhO5RRPzuU - UUk7lFHPO5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR+zuUUa87lFEsO5RRADuUUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAQrV8AEK1e3xCtXz/QrV8/0K1ff9Ctn3/QrZ9/0K2fv9Ctn7/QrZ//0K3f/9Ct3/qQreALkK3 - gAAAAAAAAAAAADuUUQA7lFE+O5RR9DuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH0O5RRYjuUUQA7lFEAO5RRJDuUUaQ7lFH5O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR1juUUVA7lFEDO5RRAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAEK1fQBCtX18QrZ9/0K2ff9Ctn7/QrZ+/0K2fv9Ctn//Qrd//0K3 - gP9Ct4D/QreA6kK4gS5CuIEAAAAAAAAAAAA7lFEAO5RRSTuUUfo7lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH+O5RRjTuUUQY7lFEAAAAAADuUUQA7lFEMO5RRcTuUUec7lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFHtOZFPeDSK - Sww0iEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCtn4AQrZ+fEK2fv9Ctn7/QrZ//0K3 - f/9Ct4D/QreA/0K3gP9CuIH/QriB/0K4gepCuIIuQriCAAAAAAAAAAAAO5RRADuUUTI7lFHsO5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RRtTuUURU7lFEAAAAAAAAAAAAAAAAAO5RRADuU - UQI7lFFCO5RRxzuUUf47lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zmQTvk1kFONQcKSDT+2ggAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQrd/AEK2 - f3xCt3//Qrd//0K3gP9Ct4D/QriB/0K4gf9CuIH/QriC/0K5gv9CuYPqQrmDLkK5gwAAAAAAAAAAADuU - UQA7lFEMO5RRtzuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR1zuUUS87lFEAO5RRAAAA - AAAAAAAAAAAAAAAAAAA7lFEAO5RRADuUUR47lFGZO5RR9juUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf86kU//NItN+DurdoZG1KkIQcKSAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAEK3gABCt4B8QreA/0K3gf9CuIH/QriB/0K4gv9CuIL/QrmC/0K5g/9CuYP/QrmE6kK5 - hC5CuYQAAAAAAAAAAAA7lFEAO5RRADuUUUU7lFHnO5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR6zuU - UVE7lFEAO5RRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7lFEAO5RRCTuUUWY7lFHiO5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/OpJQ/zGERP83m2LyQcGRaVb/ - /wBBwpIAAAAAAAAAAAAAAAAAAAAAAAAAAABCuIEAQriBfEK4gf9CuIL/QriC/0K5gv9CuYP/QrmD/0K5 - hP9CuYT/QbqE/0G6hepBuoUuQbqFAAAAAAAAAAAAAAAAADuUUQA7lFEBO5RRUTuUUdM7lFH9O5RR/zuU - Uf87lFH9O5RR1zuUUVg7lFECO5RRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADuU - UQA7lFEBO5RROTuUUb47lFH9O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zqS - UP8wgkP/MIdL/T63ht5CxZY0QcKTAEG9lwAAAAAAAAAAAAAAAAAAAAAAQrmCAEK4gnxCuYL/QrmD/0K5 - g/9CuYP/QrmE/0G6hP9BuoX/QbqF/0G6hf9BuobqQbuGLkG7hgAAAAAAAAAAAAAAAAAAAAAAO5RRADuU - UQA7lFEfO5RRYzuUUY87lFGQO5RRZjuUUSI7lFEAO5RRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAO5RRADuUUQA7lFEYO5RRjjuUUfM7lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf85kE7/Ln5B/y18P/46qXT8QcSWokHDlQZBw5UAAAAAAAAAAAAAAAAAAAAAAEK5 - gwBCuYN8QrmD/0K5hP9CuYT/QbqF/0G6hf9BuoX/QbqG/0G7hv9Bu4f/QbuH6kG7hy5Bu4cAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAADuUUQA7lFEAO5RRADuUUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO5RRADuUUQY7lFFcO5RR2zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/NYlJ/yx7Pv8reTz/NZli+kHDlexBw5U7QcOVAAAA - AAAAAAAAAAAAAAAAAABBuoQAQbmEfEG6hP9BuoX/QbqF/0G6hv9Bu4b/QbuG/0G7h/9Bu4f/QbuI/0G8 - iOpBvIguQbyIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAA7lFEAO5RRADuUUTA7lFG1O5RR/DuUUf87lFH/O5RR/zuUUf87lFH/OZBO/y5+QP8qeDz/KnY6/zKQ - WPhBw5X/QcSWiEHDlQBBxJcAAAAAAAAAAAAAAAAAQbqFAEG6hXxBuob/QbuG/0G7hv9Bu4f/QbuH/0G7 - iP9BvIj/QbyI/0G8iP9BvInqQbyJLkG8iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAADuUUQA7lFEAO5RREzuUUYU7lFHzO5RR/zuUUf87lFH/OI5N/y9/ - Qf8qdzr/KnY6/yl0OP8xj1j4QcSW/0HFl8VBxZgPQcWYAAAAAAAAAAAAAAAAAEG6hQBBuoV8QbqF/0G6 - hf9Buob/QbuG/0G7hv9Bu4f/QbuH/0G7h/9BvIj/QbyI60G8iC9BvIgAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADuUUQA8llIFOpNQgDmQ - Tv02i0r/MYNE/yt5PP8pdTn/KXQ5/yh0OP8ncjf/NJlk+UHGmf9BxZjmQcWZKEHFmQAAAAAAAAAAAAAA - AABBuoQAQbqEeUG6hf9Bu4X/QbuF/0G7hv9Bu4b/QbuG/0G7h/9Bu4f/QbuH/0G7iPJBvIg7QbyIAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAMIFCADCCQyEseT3dKXY6/yh0Of8oczj/KHM4/ydyN/8ncTb/KHU6/TqvfvpBx5r/Qcaa9EHG - mj9BxpoAAAAAAAAAAAAAAAAAQbuFAEG7hWtBu4X/QbuG/0G7hv9Bu4f/QbuH/0G7h/9Bu4j/QbyI/0G8 - iP9BvIj/QbyJbEG8iABBvYoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAC59PwAtfD8TKHU5zSdzN/8ncjf/J3E2/yZxNv8mcDX/JW4z/y+O - WPpAw5f9Qcaa/0HGm/pBx5xIQcecAAAAAAAAAAAAAAAAAEG7hgBBu4ZQQbuH+kG7h/9Bu4f/QbuI/0G7 - iP9BvIj/QbyI/0G8iP9BvIn/Qb2J/0G9isdBvYsaQb2KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApdTkAKXY6LSdyN+cmcTb/JnA1/yVv - Nf8lbjT/JG0y/iyFTvs+u438Qcec/0HGm/9Bxpz4QcieRUHIngAAAAAAAAAAAAAAAABBu4cAQbuHLkG7 - iOlBu4j/QbyI/0G8iP9BvIj/QbyJ/0G9if9BvYn/Qb2K/0G9iv9Bvov+Qb6LnkG+jBZBvowAQb2MAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsdDgAMHQ4BShy - N4oncDb/J282/yhvNf8nbjX/KHU8/DGTXvo+vI78Qcea/0HGmv9Bxpr/Qcec7kHJoDVByaAAAAAAAAAA - AAAAAAAAQbyIAEG8iA5BvIjCQbyI/0G8iP9BvYn/Qb2J/0G9iv9BvYr/Qb2K/0G+i/9Bvov/Qb6M/0G+ - jPxBv43AQb+NXUG/jipBwI8dQcCQHUHAkB1BwJAdQcCRHUHBkR1BwZIdQcGSHUHBkh1BwpIdQcKSHUHC - kx1BwpMdQcKUHUHDlB1Bw5QdQcOVHUHDlR1Bw5UdQcSWHUHElh1BxJcdQcSXHUHElx1BxJgdQcWZHUHH - nR1ByZ4dOKRyMC6CS4wtekPzL3xG/zOBTPs5jFn7P59w+kW2iftHxZn+Q8aZ/0HEmP9BxZj/QcWY/0HH - ndlBy6MbQcqiAAAAAAAAAAAAAAAAAEG8iQBBvYkAQbyJfkG9if9BvYr/Qb2K/0G9iv9Bvov/Qb6L/0G+ - jP9Bvoz/Qb6M/0G/jf9Bv43/Qb+O/0G/jvpBwI7oQcCP30HAj99BwJDfQcCQ30HBkd9BwZHfQcGR30HB - kt9BwpLfQcKS30HCk99BwpPfQcKU30HDlN9Bw5TfQcOV30HDld9Bw5bfQcSW30HElt9BxJffQcSX30HF - l99BxZjfQcWY30HGmt9Bx53fQcie4EHDmOtDvZL9Sb+W/lDDm/9WyKH9Ws6p/VvRrf9ZzKX/Ucie/0fF - mf9CxJf/QcOW/0HEl/9ByJ+tQc+qBkHLowAAAAAAAAAAAAAAAAAAAAAAQb2KAEG9ijBBvYrmQb2L/0G+ - i/9Bvov/Qb6M/0G+jP9Bvoz/Qb6N/0G+jf9Bv47/Qb+O/0G/jv9Bv47/Qb+P/0HAj/9BwI//QcCQ/0HA - kP9BwJH/QcCR/0HBkf9BwZL/QcGS/0HBkv9BwpP/QcKT/0HCk/9BwpT/QcOU/0HDlP9Bw5X/QcOV/0HD - lv9BxJb/QcSW/0HEl/9BxJf/QcSX/0HEl/9Bx5z/Qcie/0LIn/9GyqL/UM6n/1rRrf9i07H/aNW0/2zW - tv9t1bb/atCr/1zKov9Oxpr/RcOW/0HCk/9BxZj9QcqiaEHJoABBy6MAAAAAAAAAAAAAAAAAAAAAAEG9 - iwBBvowDQb2KkkG9iv9BvYr/Qb2K/0G9i/9BvYv/Qb2L/0G+i/9Bvoz/Qb6M/0G+jf9Bvo3/Qb6N/0G/ - jv9Bv47/Qb+O/0G/j/9Bv4//QcCP/0HAkP9BwJD/QcCQ/0HAkf9BwZH/QcGR/0HBkf9BwZL/QcGS/0HC - kv9BwpP/QcKT/0HCk/9BwpT/QcKU/0HClP9Bw5T/QcOV/0HDlf9BxJf/Qcie/0HJn/9DyaD/Scuk/1bP - q/9m1LP/cti6/3vavv+A3MH/g9u//3jTsP9kzKX/VMab/0jDlP9CwZL/Qced2UHNpiJBzKQAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAQbyIAEG8iShBvIjXQbyI/0G8if9BvIn/QbyJ/0G9iv9BvYr/Qb2K/0G9 - i/9BvYv/Qb2L/0G9jP9Bvoz/Qb6M/0G+jf9Bvo3/Qb6N/0G+jv9Bv47/Qb+O/0G/jv9Bv4//Qb+P/0HA - j/9BwI//QcCQ/0HAkP9BwJD/QcCR/0HAkf9BwZH/QcGS/0HBkv9BwZL/QcGS/0HCk/9BwpP/QcWZ/0HJ - oP9ByaD/Q8qi/0rMpv9Y0K3/adW1/3zbv/+M38f/kuHK/5Hdw/+B1LP/a8ym/1jGm/9KwpL/Q8SX/kHL - pHpEsXgAQcylAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEG7hwBBuYYAQbuHXEG7h/JBu4f/QbuH/0G7 - h/9Bu4j/QbuI/0G8iP9BvIn/QbyJ/0G8if9BvIn/QbyJ/0G9iv9BvIr/Qb2K/0G9i/9BvYv/Qb2L/0G+ - i/9Bvov/Qb6M/0G+jP9Bvo3/Qb6N/0G/jf9Bv47/Qb+O/0G/jv9Bv47/Qb+P/0G/j/9Bv4//QcCP/0HA - j/9BwJD/QcGT/0HInv9ByqH/Qcqh/0PLo/9Kzaf/VtGt/2bVtf952r7/juDJ/5Thyv+S2r7/hNSz/27M - pv9axZn/S8SW/0TKor9BzqkYQs2nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQbqGAEG7 - hwVBuoV/QbmE+UG5hP9BuoX/QbqF/0G6hf9Buob/QbqG/0G6hv9Buob/QbqH/0G7h/9Bu4f/QbuH/0G7 - iP9Bu4j/QbuI/0G8iP9BvIj/QbyJ/0G8if9BvIn/QbyK/0G8iv9BvIr/Qb2L/0G9i/9BvYv/Qb2L/0G9 - jP9Bvoz/Qb6M/0G+jP9Bvoz/Qb6N/0HFmf9ByqL/Qcqi/0HKov9Cy6P/SM2m/1PQrP9i1LP/c9m8/4Xe - xf+J2Lv/g9Kv/3nPqf9ryqH/Wcaa/0zMpNtJ0Kw5Rs6pAFPSrwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAABBuYQAQbmECkG4g4VBuIL2QbiC/0G4gv9BuIP/QbiD/0G4g/9BuYP/QbmE/0G5 - hP9BuYT/QbmE/0G5hP9BuYX/QbqF/0G6hf9BuoX/QbqF/0G6hv9Buob/QbqG/0G6hv9Buof/QbuH/0G7 - h/9Bu4f/QbuH/0G7iP9Bu4j/QbuI/0G8iP9Bu4j/QbuJ/0HBk/9ByqH/Qcuj/0HLo/9By6P/Qsuk/0bN - pv9Pz6v/XNOy/2vXuf9107H/dMuj/2/Jn/9nxpv/Xsid/1bPqd1Y1LNKAAAAAH/exAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEG4ggBBuIIIQbeAbEG2f+ZBtn//QbZ//0G2 - f/9BtoD/QbeA/0G3gP9Bt4D/QbeB/0G3gf9Bt4H/QbiB/0G4gf9BuIL/QbiC/0G4gv9BuIL/QbiC/0G4 - gv9BuIP/QbiD/0G4g/9BuYP/QbmE/0G5hP9BuYT/QbmE/0G5hP9BuYT/QbmE/0G/jv9ByaD/Qcuj/0HL - o/9By6T/Qcyk/0HMpf9Dzab/Sc+q/1PPq/9fyaD/Y8OV/2LCk/9ew5X/Wcmf/VbQrMNj2Lk+////Av// - /wD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQbeAAEG4 - ggJBtn48QbV9s0G0fPZBtHz/QbR8/0G1fP9BtXz/QbV9/0G1ff9BtX3/QbV9/0G1ff9BtX3/QbV+/0G2 - fv9BtX7/QbV+/0G2fv9Btn7/QbZ//0G2f/9Btn//QbZ//0G2f/9Btn//QbaA/0G3gP9BtoD/QbeA/0G+ - jf9ByaD/Qcuk/0HLpP9BzKX/Qcyl/0HMpv9Bzab/Qsui/0XEl/9LvIj/UbqE/1O+jP9SxZj+Us2m4FfT - sYN13MIf////Af///wH///8A////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAABBuH8AQbR9AEG1fg1BtHtTQrN6rkKyeehCsnn9QrJ4/0Kzef9Cs3n/QrN5/0Kz - ef9Cs3n/QrN5/0Kzef9Cs3n/QrN5/0Kzev9Cs3r/QrN6/0Kzev9Cs3r/QrN6/0K0ev9CtHr/QrR6/0K0 - e/9CtHv/QreB/0HBk/9ByqL/Qcyl/0HMpf9BzKX/Qcym/0HNpv9ByqH/QcOV/0G9if9Cu4b/RL+N/kbF - mfBJzKTITdGufl7XuS217eEE////Af///wD///8A////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAuIMAQrJ5AEG0fAhCs3ktQrJ4YkKy - d5FCsXawQrF2v0KxdsVCsXbGQrF2xkKxdsZCsXfGQrF3xkKxd8ZCsXfGQrJ3xkKyd8ZCsnfGQrJ4xkKy - eMZCsnjGQrJ4xkKyeMZCs3nEQrqFwUHGm8FBzKXBQcylwUHMpcFBzKbBQc2mwUHNp8FBzafBQcujwEHJ - n7pByqGsQcylkEHOqWlD0K06TtS0Ep/s3QEAtXsA////AP///wD///8AAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAEC3hAA+u4oBQrF4BEKzeQpBtHsOQbR8DkG0fA5BtHwOQbR8DkG0fA5BtH0OQbR8DkG1 - fA5BtXwOQbV9DkG1fQ5BtX0OQbV9DkG1fQ5BtH4OQbiEDUHNpwtB0q4LQcymC0HMpQtBzKYLQc2mC0HN - pwtBzacLQc2oC0HRrQtB1rUIQdq9A0HhzgBB4MsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// - ///////////////////////////////8AAAAAB///+AAAAAAB///wAAAAAAB//+AAAAAAAD//gAAAAAA - AH/+AAAAAAAAP/wAAAAAAAAf+AAAAAAAAA/4AAAAAAAAD/AAAAAAAAAH8AAAAAAAAAfgAAAAAAAAA+AA - f////wAD4AD/////gAPgAf/////AA+AB/////8AD4AH//h//wAPgAf/4B//AA+AB//AD/8AD4AH/4AH/ - wAPgAf/AAH/AA+AB/8AAP+AH4AH/gAAf8AfgAf8AAAf4H+AB/gAAA///4AH8AAAA///gAfwAAAB//+AB - +AAAAD//4AHwAAAAD//gAfAAAAAH/+AB4AAAAAP/4AHgAGAAAP/gAeAAcAAAf+AB4AD4AAA/4AHgAf4A - AB/gAfAD/wAAH+AB8AP/gAAP4AH8D//gAAfgAf////AAB+AB/////AAH4AH////+AAPgAf////8AA+AB - /////4AD4AH/////gAPgAP////+AA+AAf////wAD4AAAAAAAAAPwAAAAAAAAA/AAAAAAAAAH8AAAAAAA - AAf4AAAAAAAAD/wAAAAAAAAP/AAAAAAAAB/+AAAAAAAAP/8AAAAAAAA//4AAAAAAAD//4AAAAAAA///4 - AAAAAAf///8AAAAA////////////////////////KAAAAIAAAAAAAQAAAQAgAAAAAAAAAAEAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCpV4AQqVdAEKlYAhCpWASQqVgGUKlYCRCpmAtQqZgMkKm - YTVCpmE1QqZhNUKmYTVCp2I1Q6hjNUSpZTVCpmI1PZxaNTmUUzU2jU43M4hKPTOFSEEzhUdCNopLQTaM - TUA2jU5AN45PPzePTz83j1A/OJBQPziQUT44kVE+OJFSPTmSUj05k1M9OZNUPTmUVTw5lVU8OpVWPDqW - Vzw6l1c7OpdYOzuYWDs7mFk7O5laOzyaWjo8m1s6PJtbOj2cXDo9nV05PZ1eOT2eXjk9nl85Pp9fOT6g - YDg+oWE4PqJiOD6iYjg/o2M4P6NjOD+kYzc/pGUzP6VlLUCmZSBApmYXQKZmEEClZgZAomAAQKRkAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQqVfAEKlXwFCpV8NQqVfKkKl - X1lCpWCEQqVgp0KlYMRCpWDbQqZg5kKmYOlCpmHrQqZh60KmYetCpmHrQqdi60KlYes/n1zrOZRU6zWK - TOsxg0brL35B6y16P+wtej/uLntA7zGARPA0hkjvNIdJ7zSISu81iUvvNYpM7zWLTO82jE3vNoxO7jeN - T+43jlDuN49Q7jeQUe44kVLuOJJS7jiSU+45k1TuOZRV7jmVVu46llbtOpZX7TqXWO07mFntO5lZ7Tua - Wu08mlvtPJtc7TycXO09nV3tPZ1e7T2eXu09n1/tPaBg7T6hYe0+oWHsPqJi7D+jY+w/o2PsP6Rk7D+k - Zes/pWXpP6Zm5ECmZtZAp2e/QKdnn0CnZ3lApmdNQKdoIECnaAhAp2QAQKdnAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AABCpV4AQqVgAEKlXwlCpV8zQqVfdkKlX7dCpWDkQqVg90KlYP9CpWD/QqZg/0KmYf9CpmH/QqZh/0Km - Yf9CpmH/Qqdi/0GkYP87mFf/NIhK/y58QP8sdz3/K3Y8/yt2PP8sdzz/LHc9/yx4Pv8wfkL/M4VH/zSG - Sf80h0n/NIhK/zWJS/81iUv/NYpM/zaLTf82jE7/No1P/zeOT/83j1D/N5BR/ziQUv84kVL/OJJT/zmT - VP85lFX/OZVW/zqWV/86l1f/OpdY/zqYWf87mFn/O5la/zuaW/88m1z/PJxd/zydXf89nl7/PZ5f/z2f - X/89oGD/PqBh/z6hYf8+omL/PqNj/z+kZP8/pGT/P6Vl/z+lZf8/pmb/QKZn/0CnZ/9Ap2f/QKdn/kCn - aPRAp2jbQKdop0CnaGRAp2gkQKdoBUCnaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCpV4AQqUAAEKlXxBCpV9RQqVfqEKlYOdCpWD9QqVg/0Kl - YP9CpmD/QqZh/0KmYf9CpmH/QqZh/0KmYf9CpmH/QqZi/0KmYv88mlj/MoRG/yx2O/8qczn/KnQ6/yp0 - O/8rdTv/K3Y8/yt2PP8rdz3/L31B/zOER/8zhkj/NIdJ/zSHSv80iEr/NYlL/zWJTP81i03/NoxN/zaM - Tv83jU//N49Q/zePUf83kFH/OJBS/ziSU/84k1T/OZNV/zmUVf85lVb/OpZX/zqWWP86l1j/O5hZ/zuY - Wv87mlv/PJpb/zybXP88nF3/PJ5e/z2eXv89nl//PZ9g/z2gYP8+oWH/PqJi/z6jY/8+o2T/P6Rk/z+k - Zf8/pWX/P6Vm/z+mZ/9Ap2f/QKdo/0CnaP9Ap2j/QKdo/0CnaP9Ap2n/QKdp+kCnadpAp2mRQKdpO0Co - aQhAqGkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQqVgAEKl - YAtCpV9RQqVgt0KlYPNCpWD/QqVg/0KmYP9CpmD/QqZh/0KmYf9CpmH/QqZh/0KmYf9CpmL/QqZi/0Kn - Yv9Ao1//NYxN/yt2PP8pcTj/KXE5/ypyOf8qczn/KnM6/yp0O/8qdTv/K3U7/y16P/8yg0b/M4VI/zOG - SP80hkn/NIdK/zSISv81iUv/NYpM/zWLTf82jE7/NoxO/zeNT/83j1D/N49R/zeQUf84kVL/OJJT/ziT - VP85lFX/OZRV/zmVVv86llf/OpZY/zqXWf87mFn/O5la/zuaW/88m1z/PJtc/zydXf88nl7/PZ5e/z2f - YP89oGD/PaBh/z6hYv8+omL/PqNk/z6kZP8/pGX/P6Rl/z+lZv8/pmf/P6dn/0CnaP9Ap2j/QKdo/0Cn - af9Ap2n/QKdp/0Cnaf9Ap2n/QKhq/0Coav5AqGrpQKhqnD+najc/pmgEP6dpAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAQqVgAEKkYAFCpWAzQqVgpEKlYPJCpWD/QqZg/0KmYP9CpmH/QqZh/0Km - Yf9CpmH/QqZh/0KmYv9CpmL/QqZi/0KnYv9Cp2P/P6Bc/zGCRf8ocDf/KW83/ylwN/8pcTj/KXI5/yly - Of8pczn/KnQ6/yp0Ov8rdjz/MIBE/zOER/8zhUj/M4ZI/zSHSf80h0r/NIhL/zWJS/81ikz/NYtN/zaM - Tv82jE7/N45Q/zePUP83j1H/N5FS/ziRU/84klP/OJNU/zmTVf85lFb/OZVX/zqWWP86l1j/OphZ/zuY - Wv87mlr/O5tc/zybXP88m13/PJ1d/zyeXv89nl//PZ9g/z2gYP89oGH/PqFi/z6iY/8+o2T/PqRk/z+k - Zf8/pWb/P6Zm/z+mZ/8/p2j/QKdp/0Cnaf9Ap2n/QKdp/0Cnaf9AqGn/QKhq/0Coav9AqGr/QKhq/0Co - a/9AqGv/QKhr5ECpaoQ/qGodH41NAD+oaQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEKlYABCpWANQqVga0Kl - YN1CpWD/QqZg/0KmYf9CpmH/QqZh/0KmYf9CpmH/QqZi/0KmYv9CpmL/QqZi/0KnYv9Cp2P/Qqhj/z6e - XP8vfUH/KG41/yhuNv8obzf/KG83/yhwN/8pcTj/KXE5/ylyOf8pczn/KXM6/y57QP8yg0b/M4RH/zOF - SP8zhkj/NIdJ/zSHSv80iUv/NYlM/zWKTf81i03/NoxO/zaNT/83jlD/N45R/zeQUf83kVL/OJFT/ziS - VP84k1X/OZRV/zmVVv85llf/OpZY/zqYWf86mFn/O5ha/zuZW/87m1z/PJtc/zycXf88nV7/PJ5f/z2e - YP89oGD/PaBh/z2hYv8+oWL/PqJj/z6jZP8+pGX/P6Vl/z+lZv8/pmf/P6Zo/z+naP9Ap2n/QKdp/0Cn - af9AqGr/QKhq/0Coav9AqGr/QKhq/0Coa/9AqGv/QKhr/0Cpa/9AqWv/QKls/ECpa8RAqGtIPqRnBD+m - aQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAEKmXwBCpmEAQqZgH0KmYJxCpmD1QqZg/0KmYf9CpmH/QqZh/0KmYf9CpmL/QqZi/0Km - Yv9CpmL/Qqdi/0KnYv9Cp2P/Qqdj/0KnY/8/oF7/Ln1B/ydsNP8nbTX/J241/yhuNv8obzb/KG83/yhw - N/8ocDj/KHE4/yhxOP8qdTv/MYBE/zKDRv8yhEf/M4VI/zOGSf80h0n/NIdL/zSJS/81ikz/NYpN/zWL - Tv82jE7/No1P/zeOUP83jlH/N49S/zeRU/84kVP/OJJU/ziTVf85lFb/OZVW/zmWV/86llj/OphZ/zqY - Wv87mVr/O5pb/zubXP88nF3/PJ1d/zydXv88nl//PZ5g/z2gYf89oGL/PaFi/z6iY/8+omT/PqRl/z6k - Zf8/pWb/P6Vn/z+mZ/8/pmj/P6dp/0Coav9AqGr/QKhq/0Coav9AqGr/QKhr/0Coa/9AqGv/QKlr/0Cp - a/9AqWz/QKls/0CpbP9AqWz/QKls/0CpbOhAqWx1P6hqDj+oawAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCpmEAQqZfAEKmYTFCpmG9QqZh/kKm - Yf9CpmH/QqZh/0KmYf9CpmL/QqZi/0KmYv9Cp2L/Qqdi/0KnY/9Cp2P/Qqdj/0KnY/9Cp2T/QaRh/zCB - Rf8mazP/Jmw0/ydsNP8nbTX/J201/yduNv8nbjb/KG83/ydvN/8ocDj/KHA4/y15P/8yg0b/MoNG/zOE - R/8zhUj/M4ZJ/zSHSv80iEv/NIlL/zWKTP81ik3/NYxO/zaMT/82jU//N45Q/zePUf83kFL/N5FT/ziS - VP84klT/OJRV/zmUVv85lVf/OZZX/zqXWf86mFn/Opha/zuZW/87mlz/O5td/zycXf88nF7/PJ1f/zye - YP89n2D/PaBh/z2gYv89omP/PqJj/z6iZP8+pGX/PqRm/z+lZv8/pWf/P6Zo/z+naf8/qGn/QKhq/0Co - av9AqGv/QKhr/0Coa/9AqGv/QKlr/0CpbP9AqWz/QKls/0CpbP9AqWz/QKlt/0Cpbf9AqW3/QKlt/0Cq - bfZAqWyWP6lsFz+pbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAQqZhAEKmYgBCpmE7QqZhzUKmYf9CpmH/QqZh/0KmYv9CpmL/QqZi/0KnYv9Cp2L/Qqdj/0Kn - Y/9Cp2P/Qqdj/0KnY/9Cp2T/Qqhk/0KoZP81jE3/Jms0/yVqMv8mazP/Jms0/yZsNP8mbDX/Jmw1/ydt - Nv8nbjb/J283/ydvN/8ocTn/L35C/zKDRv8yg0b/M4RH/zOFSP8zhkn/NIdK/zSISv80iUz/NYpN/zWK - Tf81jE7/NoxP/zaNUP83jlH/N49R/zeQU/83kVP/OJJU/ziSVf84lFX/OZRW/zmVV/85llj/OpdZ/zqY - Wv86mFr/O5lb/zuaXP87m13/PJxd/zydXv88nV//PJ9g/z2fYP89oGL/PaBi/z2iY/8+omT/PqNl/z6k - Zf8+pWb/P6Vn/z+maP8/p2j/P6dp/z+nav9AqGv/QKhr/0Coa/9AqWv/QKlr/0CpbP9AqWz/QKls/0Cp - bP9AqWz/QKlt/0Cpbf9AqW3/QKpt/0Cqbf9Aqm3/QKpt/0CqbfxAqm2oP6hsHECrbwAzi04AAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEKmYQBCpmIAQqZhOkKmYdFCpmH/QqZi/0Km - Yv9CpmL/QqZi/0KnYv9Cp2P/Qqdj/0KnY/9Cp2P/Qqdj/0KnZP9Cp2T/Qqhk/0KoZP9CqWX/PJpZ/yhv - N/8laDH/JWky/yVqMv8majP/Jms0/yZsNP8mbDX/Jmw1/yZtNf8mbTb/Jm42/ylzOv8xgET/MoNG/zKD - R/8zhEf/M4ZJ/zOHSf80h0r/NIhL/zSJTP81ik3/NYtO/zWMTv82jU//No1Q/zeOUf83kFH/N5BT/zeR - U/84klT/OJNV/ziUVv85lVf/OZVX/zmXWP86mFn/Opha/zqYW/87mVv/O5tc/zucXf88nF7/PJ1f/zyd - YP88n2D/PZ9h/z2gYv89oWP/PaJj/z6iZP8+o2X/PqRm/z6lZ/8/pWf/P6Zo/z+naf8/p2n/P6hq/0Cp - a/9AqWv/QKls/0CpbP9AqWz/QKls/0CpbP9AqW3/QKlt/0Cpbf9Aqm3/QKpt/0Cqbf9Aqm3/QKpt/0Cq - bf9Aqm3/QKpu/0Cqbv5Aqm6sQKptG0CqbQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AABCpmIAQqZhAEKmYi5CpmLLQqZi/0KmYv9CpmL/Qqdi/0KnYv9Cp2P/Qqdj/0KnY/9Cp2P/Qqdj/0Kn - ZP9CqGT/Qqhk/0KoZP9CqGT/Qqhl/0GlY/8ufUL/JGYw/yVoMf8laDH/JWky/yVpM/8lajP/JWoz/yVr - NP8mazT/Jmw1/yZsNf8mbTX/KnU8/zGCRf8yg0b/MoNH/zOFSP8zhUn/M4dK/zSHSv80iEv/NIlM/zWK - Tf81i07/NYxP/zaNT/82jVD/N45R/zeQUv83kFP/N5FT/ziSVP84k1X/OJRW/zmVV/85lVj/OZdZ/zqY - Wv86mFr/Oplb/zuaXP87m1z/O5xe/zycXv88nV//PJ1g/zyfYf89n2H/PaBi/z2hY/89omT/PqNk/z6j - Zv8+pWb/PqVn/z+laP8/pmj/P6dp/z+oav8/qGv/QKlr/0CpbP9AqWz/QKls/0Cpbf9AqW3/QKlt/0Cq - bf9Aqm3/QKpt/0Cqbf9Aqm3/QKpt/0Cqbf9Aqm7/QKpu/0Crbv9Aq27/QKtu/0Crb/5Aq26iPqhsEz+p - bQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEKmYgBCpmIcQqZiuEKmYv9Cp2L/Qqdi/0Kn - Y/9Cp2P/Qqdj/0KnY/9Cp2P/Qqdk/0KnZP9CqGT/Qqhk/0KoZP9CqGX/Qqhl/0KoZf9CqWb/OJNU/yVp - Mv8jZjD/JGcw/yRnMf8kaDH/JGgy/yRpM/8laTP/JWoz/yVrNP8lazT/JWw1/yVsNf8rdz3/MoJG/zKD - Rv8yg0f/M4VI/zOGSf8zh0r/NIdL/zSIS/80ik3/NYpN/zWLTv81jE//No1P/zaOUP83j1H/N5BS/zeQ - U/83kVT/OJNV/ziTVf84lFf/OZVX/zmWWP85l1n/Opha/zqZW/86mVv/O5pc/zubXf87nF7/PJxf/zyd - YP88nmD/PJ9h/z2gYv89oWP/PaJk/z2iZP8+o2X/PqRm/z6lZ/8+pWj/P6Zo/z+naf8/qGr/P6hq/z+p - a/9AqWz/QKlt/0Cpbf9AqW3/QKlt/0Cqbf9Aqm3/QKpt/0Cqbf9Aqm3/QKpt/0Cqbv9Aqm7/QKtu/0Cr - bv9Aq27/QKtu/0Crb/9Aq2//QKtv/0Crb/tAq2+IPqltCD+qbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AABCp2IAQqdiCkKnYpRCp2L9Qqdj/0KnY/9Cp2P/Qqdj/0KnY/9Cp2T/Qqdk/0KoZP9CqGT/Qqhk/0Ko - Zf9CqGX/Qqhl/0KoZf9CqGX/Qqhm/0ClY/8seT//I2Qu/yNlL/8jZjD/I2Yw/yNnMf8kZzH/JGgy/yRp - Mv8kaTP/JGkz/yVqNP8kazT/JGs0/yt3Pv8ygkb/MoNG/zKER/8zhUj/M4ZJ/zOHSv80h0v/NIlL/zSK - Tf81ik3/NYtO/zWMT/82jVD/No5R/zePUv83kFL/N5BT/zeRVP84klX/OJNW/ziUV/85lVj/OZZY/zmX - Wf86mFr/Ophb/zqZXP87mlz/O5te/zucXv88nV//PJ5g/zyeYP88oGL/PaBi/z2hY/89omT/PaJl/z6j - Zv8+pGb/PqVn/z6maP8/pmn/P6dq/z+oav8/qGv/P6hs/0CpbP9AqW3/QKpt/0Cqbf9Aqm3/QKpt/0Cq - bf9Aqm3/QKpt/0Cqbv9Aq27/QKtu/0Crbv9Aq27/QKtv/0Crb/9Aq2//QKtv/0Crb/9ArHD/QKxw/0Cs - cPE/q29hMI9ZAD6pbQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQqdjAEKnWgBCp2NhQqdj80KnY/9Cp2P/Qqdj/0Kn - Y/9Cp2T/Qqhk/0KoZP9CqGT/Qqhl/0KoZf9CqGX/Qqhl/0KoZf9CqGX/Qqhm/0KpZv9Cqmf/OZVW/yRn - Mf8jYy7/I2Qu/yNlL/8jZjD/I2Yw/yNnMP8jZzH/JGgx/yRoMv8kaDL/JGkz/yRpM/8kajP/K3c9/zKD - Rv8yg0f/MoRH/zOFSf8zhkn/M4dK/zSHS/80iEz/NIpM/zWLTf81i0//NYxP/zaNUP82jlH/N49S/zeQ - U/83kVT/N5JU/ziTVf84lFb/OJVX/zmWWP85lln/OZda/zqYWv86mVz/Oplc/zuaXf87m17/O5xf/zyd - YP88nmD/PJ5h/zygYv89oGP/PaFj/z2iZP89o2X/PqNm/z6lZ/8+pWj/PqZp/z+maf8/p2r/P6hr/z+o - a/8/qWz/QKpt/0Cqbf9Aqm3/QKpt/0Cqbf9Aqm3/QKpu/0Cqbv9Aq27/QKtu/0Crbv9Aq2//QKtv/0Cr - b/9Aq2//QKtv/0CscP9ArHD/QKxw/0CscP9ArHD/QKxx/0Cscdk/qm8zQK1yADGHTAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AABCp2MAQqdjK0KnY9VCp2P/Qqdj/0KnZP9CqGT/Qqhk/0KoZP9CqGT/Qqhl/0KoZf9CqGX/Qqhl/0Ko - Zf9CqGb/Qqlm/0KpZv9CqWb/Qqln/0GoZv8ufkP/IWEs/yJjLf8iYy7/ImQu/yJlL/8iZS//I2Uw/yNm - MP8jZjD/I2cx/yNnMv8jaDL/I2ky/yNoMv8qdDv/MoNG/zKDR/8yhEf/M4VJ/zOGSf8zh0r/NIhL/zSI - TP80ik3/NYtO/zWMT/81jE//No1Q/zaOUf83j1L/N5BT/zeRVP83klT/OJNW/ziTVv84lFf/OZZY/zmW - Wf85l1r/Ophb/zqZXP86mlz/O5td/zubXv87nV//PJ1g/zyeYf88n2H/PKBj/z2hY/89oWT/PaJl/z2j - Zv8+o2f/PqVn/z6laP8+pmn/P6Zq/z+nav8/qGv/P6ls/z+qbf9Aqm3/QKpt/0Cqbf9Aqm7/QKpu/0Cr - bv9Aq27/QKtu/0Crb/9Aq2//QKtv/0Crb/9Aq2//QKxv/0CscP9ArHD/QKxw/0CscP9ArHH/QKxx/0Cs - cf9ArHH/QKxx/0Cscak+qm8OP6twAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQqdjAEKnYwZCp2OWQqdk/0KnZP9CqGT/Qqhk/0Ko - ZP9CqGX/Qqhl/0KoZf9CqGX/Qqhl/0KoZv9CqGb/Qqlm/0KpZv9CqWb/Qqln/0KpZ/9Cqmj/PZ5e/yVq - NP8hYSz/ImIt/yFiLf8iYy7/ImMu/yJkL/8iZC//ImUv/yJlMP8iZjD/I2Yx/yNnMf8jZzH/I2cx/yhx - OP8xgkX/MoNH/zKESP8zhUj/M4ZK/zOHS/80iEv/NIhM/zSKTf81i07/NYxP/zWMUP82jVH/No5R/zeP - Uv83kVT/N5FU/zeSVf84k1b/OJNX/ziVWP85llj/OZdZ/zmYWv86mFv/Oppc/zqaXf87m13/O5xe/zud - X/88nmD/PJ5h/zyfYv88oWP/PaFk/z2hZf89omX/PaNm/z6jZ/8+pWj/PqZp/z6mav8/p2v/P6hr/z+o - bP8/qWz/P6pt/0Cqbf9Aqm7/QKtu/0Crbv9Aq27/QKtu/0Crb/9Aq2//QKtv/0Crb/9Aq2//QKxw/0Cs - cP9ArHD/QKxw/0CscP9ArHH/QKxx/0Cscf9ArHH/QKxx/0Ctcv9ArXL/QK1y9j+scV9DtnkAPqdtAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEKo - YgBCqGQAQqhkQkKoZOtCqGT/Qqhk/0KoZf9CqGX/Qqhl/0KoZf9CqGX/Qqhm/0KoZv9CqWb/Qqlm/0Kp - Zv9CqWf/Qqln/0KpZ/9CqWf/Qqln/0KraP80jFD/IWEs/yBgLP8hYSz/IWEs/yFiLf8hYi3/IWMu/yFj - Lv8hZC//ImQv/yJkL/8iZTD/ImYw/yJmMf8iZjH/JWs1/zB/RP8yhEf/MoRI/zOFSf8zhkr/M4dL/zSI - S/80iU3/NIpO/zWLTv81jE//NY1Q/zaOUf82jlL/N5BT/zeRU/83kVX/N5JV/ziTVv84lFf/OJVY/zmW - Wf85l1r/OZhb/zqYXP86mlz/Oppd/zubXv87nF//O51g/zyeYf88nmH/PKBj/zyhZP89oWT/PaFl/z2i - Zv89o2f/PqRn/z6laP8+pmn/Pqdq/z+na/8/qGv/P6hs/z+pbf8/qm3/QKtu/0Crbv9Aq27/QKtv/0Cr - b/9Aq2//QKtv/0Crb/9ArHD/QKxw/0CscP9ArHD/QKxw/0Cscf9ArHH/QKxx/0Cscf9ArHH/QK1y/0Ct - cv9ArXL/QK1y/0Ctcv9ArXP/QK1yyD+rcRs/rHIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQqhkAEKoZAlCqGSmQqhk/0KoZf9CqGX/Qqhl/0Ko - Zf9CqGX/Qqhm/0KpZv9CqWb/Qqlm/0KpZv9CqWf/Qqln/0KpZ/9CqWf/Qqln/0KqaP9Cqmj/Qahm/yx5 - QP8fXir/IF8r/yBgK/8gYCz/IGAs/yBhLf8hYi3/IWIt/yFjLv8hYy//IWQv/yFkL/8hZS//IWUw/yFl - MP8iZzH/LHpA/zKESP8yhEj/M4VJ/zOGSv8zh0v/NIhM/zSJTP80ik3/NYtP/zWMT/81jVD/No5R/zaO - Uv83kFP/N5FU/zeSVf83klb/OJNW/ziUWP84lVj/OZZZ/zmXWv85mFv/Oplc/zqaXf86ml3/O5te/zuc - X/87nWH/PJ5h/zyeYv88n2P/PKFk/z2hZf89omb/PaNm/z2kZ/8+pWj/PqVo/z6mav8+p2r/P6dr/z+o - bP8/qWz/P6pt/z+rbv9Aq2//QKtv/0Crb/9Aq2//QKtv/0CscP9ArHD/QKxw/0CscP9ArHD/QKxx/0Cs - cf9ArHH/QKxx/0Cscf9ArXL/QK1y/0Ctcv9ArXL/QK1y/0Ctc/9ArXP/QK1z/0Ctc/9ArnP7QK1zbka9 - gQA+qW8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AABCqGUAQqhlQEKoZexCqGX/Qqhl/0KoZf9CqGb/Qqlm/0KpZv9CqWb/Qqlm/0KpZ/9CqWf/Qqln/0Kp - Z/9CqWf/Qqpo/0KqaP9Cqmj/Qqpo/0Kraf8+oWH/JWkz/x9dKv8fXir/IF8q/yBfK/8gYCz/IGAs/yBh - LP8gYS3/IGIt/yFiLv8gYi7/IGMu/yFjL/8gZC//IWQv/yBkL/8ncDn/MoNH/zKESP8yhUn/M4ZK/zOH - S/80iEz/NIpN/zSLTv81i0//NYxP/zWNUf82jlH/No9S/zeQU/83kVT/N5JV/zeSVv84lFf/OJRY/ziV - Wf85lln/OZda/zmYW/86mVz/Oppd/zqaXv87m1//O5xg/zudYf88nmL/PJ9i/zygY/88oWT/PaJl/z2j - Zv89o2b/PaRo/z6kaP8+pWn/PqZq/z6na/8/qGv/P6ls/z+pbf8/qm7/P6pu/0Crb/9Aq2//QKxv/0Cs - cP9ArHD/QKxw/0CscP9ArHH/QKxx/0Cscf9ArHH/QKxx/0Cscf9ArXL/QK1y/0Ctcv9ArXL/QK1y/0Ct - c/9ArXP/QK1z/0Cuc/9ArnP/QK50/0CudP9ArXTIP6txGD+scgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQqhlAEKoZgRCqGWUQqhl/0KoZv9CqGb/Qqlm/0Kp - Zv9CqWb/Qqln/0KpZ/9CqWf/Qqln/0KpZ/9Cqmj/Qqpo/0KqaP9Cqmj/Qqpo/0Kqaf9Cqmn/Qqtq/zeT - Vv8gYCz/H1wp/x9dKf8fXir/H14q/x9fK/8fXyv/H18r/yBgLP8gYCz/IGEt/yBhLf8gYS3/IGIu/yBj - Lv8gYy//IGMv/yJnMv8ufUL/MoVJ/zKFSf8zhkr/M4dL/zSITP80iU3/NIpO/zWLT/81jFD/NY1R/zaO - Uv82j1L/NpBT/zeRVP83klX/N5JW/ziUV/84lVj/OJZZ/zmXWv85l1v/OZhc/zqaXf86ml7/Oppe/zqb - X/87nGD/O55h/zueYv88n2P/PKBj/zyhZP89oWX/PaNm/z2jZ/89pGj/PqVp/z6mav8+p2v/Pqhr/z+o - bP8/qW3/P6lu/z+qbv8/q2//QKxw/0CscP9ArHD/QKxw/0CscP9ArHH/QKxx/0Cscf9ArHH/QKxx/0Ct - cv9ArXL/QK1y/0Ctcv9ArXL/QK1z/0Ctc/9ArXP/QK5z/0Cuc/9ArnT/QK50/0CudP9ArnT/QK50/0Cu - dfc/rXRaQK92ADuiZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AABCqGYAQqhmI0KoZtlCqWb/Qqlm/0KpZv9CqWb/Qqln/0KpZ/9CqWf/Qqln/0KqZ/9Cqmj/Qqpo/0Kq - aP9Cqmj/Qqpp/0Kqaf9Cqmn/Qqpp/0Kqaf9Cq2r/MYRK/x5bJ/8eWyn/Hlwp/x5cKf8eXSn/H14q/x9g - LP4gYS32IGEt8CBiLe8gYi7vIGIu7yBiLu8gYy/vIGMv7yBkL+8gZC/vIGQw7yhyOu4yhEntM4ZK7TOH - S+wziEzsNIlN7DSKTuw0i0/sNYxP7DWNUOw1jVHsNo5S7DaPU+w3kFTsN5FV7DeSVuw3k1fsOJRY6ziV - Wes4llrrOZda6zmYW+s5mVzrOppd6zqaXus6m1/rO5xf6zudYes7nmLrPJ9i6zygY+s8oGTrPaFl6z2i - Zus9o2fqPaRo6j2laOo+pmnqPqZq6j6na+o/qGzqP6hs6j+pbeo/qm7rP6pv8UCscPxArHD/QKxw/0Cs - cf9ArHH/QKxx/0Cscf9ArHH/QK1y/0Ctcv9ArXL/QK1y/0Ctcv9ArXP/QK1z/0Ctc/9ArnP/QK5z/0Cu - dP9ArnT/QK50/0CudP9ArnT/QK51/0Cudf9ArnX/QK51/0Cudak+q3IJP6xzAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQqllAEKpZgBCqWZfQqlm+UKpZv9CqWf/Qqln/0Kp - Z/9CqWf/Qqln/0KqaP9Cqmj/Qqpo/0KqaP9Cqmj/Qqpp/0Kqaf9Cqmn/Qqpp/0Kqaf9Cq2r/Qqtq/0Gp - aP8qdj7/HVkm/x1aKP8eWyj/Hlwp/iBhLeIiZTCgJGs1cSl0PFUqdTxDKXU8QCl1PEApdTxAKnU9QCp1 - PUApdj1AKXY9Pyl2Pj8pdj4/K3pBPjSKTjk1jFA4No1QODaOUTg2j1I4No9TODaQUzc3kVQ3N5JUNzeS - VjY3k1Y2OJNXNjiUWDY4lVg2OJZZNjiWWjU5l1s1OZhbNTmZXDQ6ml00OppeNDqbXzQ7m2A0O5xgNDud - YDM7nmEzO59iMzygYzM8oGMzPKFkMzyhZTI9omcyPaNnMj2kaDI9pGgyPaVpMT6majE+p2sxPqdsMT+o - bDE/qG0xP6puMD+qbzQ/q29HQKxwa0CscaVArHHkQKxx/kCscf9ArXL/QK1y/0Ctcv9ArXL/QK1y/0Ct - cv9ArXP/QK1z/0Ctc/9ArnP/QK50/0CudP9ArnT/QK50/0CudP9ArnX/QK51/0Cudf9ArnX/QK91/0Cv - df9Ar3b/QK924z+tdCxArnUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AABCqWcAQqlnBkKpZ59CqWf/Qqln/0KpZ/9CqWf/Qqpo/0KqaP9Cqmj/Qqpo/0KqaP9Cqmn/Qqpp/0Kq - af9Cqmn/Qqpp/0Krav9Cq2r/Qqtq/0Krav9Cq2r/P6Rk/yNoMv8cWCb/HVkn/x9eKusjZzGMKHI6LDKH - Swcuf0QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEC5gABAp2sAQK5zB0Ct - cjNArXKaQK1y8UCtcv9ArXL/QK1y/0Ctc/9ArXP/QK1z/0Cuc/9ArnP/QK50/0CudP9ArnT/QK50/0Cu - dP9ArnX/QK51/0Cudf9Ar3X/QK91/0Cvdv9Ar3b/QK92/0Cvdv9Ar3b7QK51ZkCweAA7oGYAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEKpZwBCqWcaQqln1EKpZ/9Cqmj/Qqpo/0Kq - aP9Cqmj/Qqpo/0Kqaf9Cqmn/Qqpp/0Kqaf9Cqmn/Qqtq/0Krav9Cq2r/Qqtq/0Krav9Cq2r/Qqtq/0Ks - a/88nl//H18s/xxXJf8fXyzVJWw1TDaTVAQse0EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQK90AECvdAlArnNhQK1z5ECtc/9ArXP/QK5z/0Cu - c/9ArnT/QK50/0CudP9ArnT/QK50/0Cudf9ArnX/QK51/0Cvdf9Ar3X/QK92/0Cvdv9Ar3b/QK92/0Cv - dv9Ar3f/QK93/0Cwd/9Ar3aePqtyBT+tdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAQqpoAEKqaD9CqmjvQqpo/0KqaP9Cqmj/Qqpo/0Kqaf9Cqmn/Qqpp/0Kqaf9Cqmn/Qqtq/0Kr - av9Cq2r/Qqtq/0Krav9Cq2r/Qqtr/0Kra/9CrGv/Q61s/zaTVv8dWij/H10q1ydwOD0AAAAAMoVKAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAQa92AEK0fAFArnRUQK5050CudP9ArnT/QK50/0CudP9ArnT/QK51/0Cudf9ArnX/QK51/0Cv - df9Ar3b/QK92/0Cvdv9Ar3b/QK92/0Cvdv9Ar3f/QLB3/0Cwd/9AsHf/QLB4/0Cwd80/rnYVP692AAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEKqZABCqmgAQqpoaUKqaPxCqmj/Qqpp/0Kq - af9Cqmn/Qqpp/0Kqaf9Cq2r/Qqtq/0Krav9Cq2r/Qqtq/0Krav9Cq2r/Qqtr/0Ksa/9CrGv/Qqxr/0Ks - a/9DrW3/MolO/x1aKO4kaDNRARoAAC+CRwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQLF2AEG1eQJAr3VzQK50+UCu - dP9ArnT/QK51/0Cudf9ArnX/QK91/0Cvdf9Ar3b/QK92/0Cvdv9Ar3b/QK92/0Cvd/9AsHf/QLB3/0Cw - d/9AsHf/QLB4/0CweP9AsHj/QLB46T+vdzBAr3cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAQqppAEKqZwBCqmmMQqpp/0Kqaf9Cqmn/Qqpp/0Krav9Cq2r/Qqtq/0Krav9Cq2r/Qqtq/0Kr - av9Cq2v/Qqtr/0Ksa/9CrGv/Qqxr/0KsbP9CrGz/Qqxs/0Otbf8vgkn/IF8rlzSKTQUqdTwAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAQLB2AEGxdxNAr3W5QK51/0Cudf9Ar3X/QK91/0Cvdv9Ar3b/QK92/0Cv - dv9Ar3b/QK93/0Cvd/9AsHf/QLB3/0Cwd/9AsHj/QLB4/0CweP9AsHj/QLB4/0CweP9AsHj1QLB3U0Cw - eAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCqmkAQqppCEKqaahCqmn/Qqtq/0Kr - av9Cq2r/Qqtq/0Krav9Cq2r/Qqtq/0Kra/9Cq2v/Qqxr/0Ksa/9CrGv/Qqxs/0KsbP9CrGz/Qqxs/0Ks - bP9CrW3/Qaxs/y6CSOoiZC83ImQwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCtHwAQK50AECv - dltAr3X3QK92/0Cvdv9Ar3b/QK92/0Cvdv9Ar3f/QK93/0Cwd/9AsHf/QLB3/0CweP9AsHj/QLB4/0Cw - eP9AsHj/QLB4/0CweP9AsXj/QLF4/0CxeP5AsHhvQLF4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAEKragBCqmkQQqtqvkKrav9Cq2r/Qqtq/0Krav9Cq2r/Qqtr/0Kra/9CrGv/Qqxr/0Ks - a/9CrGz/Qqxs/0KsbP9CrGz/Qqxs/0Ktbf9CrW3/Qq1t/0Ktbf9AqWr/MolOtSRnMQ0pdTwAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAsHcAQLF3HUCvdtdAr3b/QK92/0Cvdv9Ar3f/QLB3/0Cw - d/9AsHf/QLB4/0CweP9AsHj/QLB4/0CweP9AsHj/QLB4/0CxeP9AsXj/QLF4/0CxeP9AsXn/QLF5/0Cx - eYRCtX0APatzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQqtqAEKrahVCq2rOQqtq/0Kr - av9Cq2r/Qqtr/0Ksa/9CrGv/Qqxr/0Ksa/9CrGz/Qqxs/0KsbP9CrGz/Qqxs/0Ktbf9CrW3/Qq1t/0Kt - bf9CrW3/Qq1u/0Cpa/82k1d1OZteADeSVgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAECw - eABAsXgJQK93qkCvd/9AsHf/QLB3/0Cwd/9AsHf/QLB4/0CweP9AsHj/QLB4/0CweP9AsHj/QLF4/0Cx - eP9AsXj/QLF4/0Cxef9AsXn/QLF5/0Cxef9AsXn/QLF5lDysdwI/sHkAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAABCq2oAQqtqGEKratdCq2v/Qqtr/0Ksa/9CrGv/Qqxr/0KsbP9CrGz/Qqxs/0Ks - bP9CrGz/Qq1t/0Ktbf9CrW3/Qq1t/0Ktbf9CrW7/Qq1u/0Ktbv9CrW7/Qaxt9z2hZFc+pWcAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQbN7ADyjaQBAsHeLQLB3/0Cwd/9AsHj/QLB4/0Cw - eP9AsHj/QLB4/0CweP9AsHj/QLF4/0CxeP9AsXj/QLF5/0Cxef9AsXn/QLF5/0Cxef9Asnr/QLJ6/0Cy - ev9AsnqePq94BT+weQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEKsawBCq2sZQqxr3EKs - a/9CrGv/Qqxs/0KsbP9CrGz/Qqxs/0KsbP9CrW3/Qq1t/0Ktbf9CrW3/Qq1t/0Ktbv9CrW7/Qq1u/0Kt - bv9CrW7/Qq5u/0Kub/9Crm/xQq1uRUKtbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AABDuX8AQLB3AECweIBAsHj/QLB4/0CweP9AsHj/QLB4/0CweP9AsXj/QLF4/0CxeP9AsXn/QLF5/0Cx - ef9AsXn/QLF5/0Cyev9Asnr/QLJ6/0Cyev9Asnr/QLJ7/0Cye6E+rnkGP7B6AAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAQqxsAEKsaxpCrGzdQqxs/0KsbP9CrGz/Qqxs/0KsbP9CrW3/Qq1t/0Kt - bf9CrW3/Qq1t/0Ktbv9CrW7/Qq1u/0Ktbv9CrW7/Qq5v/0Kub/9Crm//Qq5v/0Kub+9CrnBBQq5wAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAA7lFEAO5RRATuUUQs7lFEUO5RRFzuUURQ7lFEKO5RRATuUUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAsHgAQLB4f0CweP9AsHj/QLB4/0Cx - eP9AsXj/QLF4/0CxeP9AsXn/QLF5/0Cxef9AsXn/QLF5/0Cyev9Asnr/QLJ6/0Cyev9Asnr/QLJ7/0Cy - e/9Asnv/QLJ7oT6veQY/sHoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCrGwAQqxsGkKs - bN1CrGz/Qqxs/0Ktbf9CrW3/Qq1t/0Ktbf9CrW3/Qq1u/0Ktbv9CrW7/Qq1u/0Ktbv9Crm//Qq5v/0Ku - b/9Crm//Qq5v/0KucP9CrnD/Qq5w8EKvcEFCr3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7lFEAO5RRCjuUUT07lFGAO5RRrzuUUcw7lFHWO5RRyjuU - Ua07lFF7O5RRNzuUUQg7lFEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAECweQBAsHl/QLB4/0CxeP9AsXj/QLF4/0Cxef9AsXn/QLF5/0Cxef9AsXn/QLJ6/0Cy - ev9Asnr/QLJ6/0Cyev9Asnv/QLJ7/0Cye/9Asnv/QLJ7/0CyfP9AsnyhPrB6Bj+xewAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAEKtbQBCrGwaQq1t3UKtbf9CrW3/Qq1t/0Ktbf9CrW7/Qq1u/0Kt - bv9CrW7/Qq1u/0Kub/9Crm//Qq5v/0Kub/9Crm//Qq5w/0KucP9CrnD/Qq5w/0KvcP9Cr3HwQq9xQUKv - cQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7lFEAO5RRATuU - UTY7lFGkO5RR7DuUUf47lFH/O5RR/zuUUf87lFH/O5RR/zuUUf47lFHoO5RRmzuUUS87lFEBO5RRAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQLF5AECxeX9AsXj/QLF5/0Cx - ef9AsXn/QLF5/0Cxef9Asnr/QLJ6/0Cyev9Asnr/QLJ6/0Cye/9Asnv/QLJ7/0Cye/9Asnv/QLJ8/0Cy - fP9Asnz/QLJ8/0CyfKE+sHoGP7F7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQq1tAEKt - bRpCrW3dQq1t/0Ktbv9CrW7/Qq1u/0Ktbv9CrW7/Qq5u/0Kub/9Crm//Qq5v/0Kub/9CrnD/Qq5w/0Ku - cP9CrnD/Qq9w/0KvcP9Cr3H/Qq9x/0KvcfBCr3FBQq9xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAO5RRADuUUQQ7lFFeO5RR3juUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR1zuUUV47lFEJO5RRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAABAsXkAQLF6fkCxef9AsXn/QLF5/0Cyev9Asnr/QLJ6/0Cyev9Asnr/QLJ6/0Cy - e/9Asnv/QLJ7/0Cye/9Asnv/QLJ8/0CyfP9Asnz/QLJ8/0CyfP9Asn3/QLJ9oT+xfAY/sXwAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCrW0AQq1tGkKtbt1CrW7/Qq1u/0Ktbv9CrW7/Qq5v/0Ku - b/9Crm//Qq5v/0Kub/9CrnD/Qq5w/0KucP9Cr3D/Qq9w/0Kvcf9Cr3H/Qq9x/0Kvcf9Cr3H/Qq9y8EKv - ckFCr3IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADuUUQA7lFECO5RRYTuU - Uew7lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR8TuU - UY87lFEbO5RRADuUUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAECxegBAsXpzQLF6/0Cy - ev9Asnr/QLJ6/0Cyev9Asnr/QLJ7/0Cye/9Asnv/QLJ7/0Cye/9Asnz/QLJ8/0CyfP9Asnz/QLJ8/0Cy - ff9Asn3/QLJ9/z+zff8/s32VP7N8Aj+zfQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEKt - bgBCrW4aQq1u3UKtbv9Crm//Qq5v/0Kub/9Crm//Qq5v/0KucP9CrnD/Qq5w/0KvcP9Cr3D/Qq9x/0Kv - cf9Cr3H/Qq9x/0Kvcf9Cr3L/Qq9y/0Kvcv9Cr3LwQrByQUKwcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAA7lFEAO5RRADuUUUU7lFHjO5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/TuUUb07lFE9O5RRATuUUQAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAQLJ7AECze1dAsnr3QLJ6/0Cyev9Asnv/QLJ7/0Cye/9Asnv/QLJ7/0Cy - fP9Asnz/QLJ8/0CyfP9Asnz/QLJ9/0Cyff9Asn3/QLJ9/z+zff8/s37/P7N+/z+zfnk/s34AP7N9AAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQq5vAEKubxpCrm/dQq5v/0Kub/9Crm//Qq5w/0Ku - cP9CrnD/Qq5w/0KvcP9Cr3H/Qq9x/0Kvcf9Cr3H/Qq9x/0Kvcv9Cr3L/Qq9y/0Kvcv9CsHL/QrBz/0Kw - c/BCsHNBQrBzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADuUUQA7lFEmO5RRyTuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUeA7lFFqO5RRDDuUUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAs3sAQLN8KkCy - e+NAsnv/QLJ7/0Cye/9Asnv/QLJ8/0CyfP9Asnz/QLJ8/0CyfP9Asnz/QLJ9/0Cyff9Asn3/P7N9/z+z - fv8/s37/P7N+/z+zfv8/s37yP7R+Sj+0fgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AABCrm8AQq5vGkKub91Crm//Qq5w/0KucP9CrnD/Qq9w/0KvcP9Cr3H/Qq9x/0Kvcf9Cr3H/Qq9x/0Kv - cv9Cr3L/Qq9y/0Kwcv9CsHL/QrBz/0Kwc/9CsHP/QrBz8EKwc0FCsHMAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAA7lFEAO5RRETuUUaU7lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUfU7lFGbO5RRIzuU - UQA7lFEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAEC0fgBBtX8JQLN8qUCye/9Asnv/QLJ8/0CyfP9Asnz/QLJ8/0Cy - fP9Asn3/QLJ9/0Cyff8/s33/P7N9/z+zfv8/s37/P7N+/z+zfv8/s37/P7N//z+0f8g/tYAWP7WAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEKucABCrnAaQq5w3UKucP9Cr3D/Qq9w/0Kv - cf9Cr3H/Qq9x/0Kvcf9Cr3H/Qq9y/0Kvcv9Cr3L/QrBy/0Kwcv9CsHP/QrBz/0Kwc/9CsHP/QrBz/0Kw - dP9CsHTwQrF0QUKxdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO5RRADuUUQQ7lFF9O5RR+TuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf47lFHIO5RRRzuUUQQ7lFEAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARLuGAD+y - fABAtH5NQLJ88ECyfP9Asnz/QLJ8/0Cyff9Asn3/QLJ9/z+zff8/s33/P7N+/z+zfv8/s37/P7N+/z+z - fv8/s3//P7N//z+0f/8/tH/6P7WAbT6rdQA/t4IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAQq9wAEKvcBpCr3DdQq9x/0Kvcf9Cr3H/Qq9x/0Kvcf9Cr3L/Qq9y/0Kvcv9Cr3L/QrBy/0Kw - c/9CsHP/QrBz/0Kwc/9CsHP/QrB0/0KwdP9CsXT/QrF0/0KxdPBCsXVBQrF1AAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAADuUUQA7lFEAO5RRVDuUUew7lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFHnO5RRdzuUURA7lFEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQbaAAEG4gglAtH6XQLJ9/kCyff9Asn3/QLJ9/z+z - ff8/s37/P7N+/z+zfv8/s37/P7N+/z+zf/8/s3//P7R//z+0f/8/tH//P7SA/z+1gLZAtoIVP7aBAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCr3EAQq9xGkKvcd1Cr3H/Qq9x/0Kv - cf9Cr3L/Qq9y/0Kvcv9CsHL/QrBz/0Kwc/9CsHP/QrBz/0Kwc/9CsHP/QrB0/0KxdP9CsXT/QrF0/0Kx - dP9CsXX/QrF18EKxdUFCsXUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7lFEAO5RRADuUUTI7lFHVO5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH4O5RRqDuUUSs7lFEAO5RRAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAQbV/AEG2gB9AtH64P7N9/z+zff8/s37/P7N+/z+zfv8/s37/P7N+/z+zf/8/tH//P7R//z+0 - f/8/tH//P7SA/z+0gP8/tYHQQLaCMz+0gABBvIYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAEKvcgBCr3IaQq9x3UKvcv9Cr3L/Qq9y/0Kwcv9CsHL/QrBz/0Kwc/9CsHP/QrBz/0Kw - c/9CsHT/QrF0/0KxdP9CsXT/QrF0/0Kxdf9CsXX/QrF1/0Kxdf9CsXXwQrJ2QUKydQAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAADuUUQA7lFEZO5RRtTuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR0TuUUVM7lFEGO5RRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCv4kAPrJ8AEC3gSY/tX+xP7N++z+z - fv8/s37/P7N//z+zf/8/tH//P7R//z+0f/8/tID/P7SA/z+0gP8/tID+P7WBxkC2gjo3oWsAQLiEAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQq9yAEKvchpCr3LdQrBy/0Kw - cv9CsHP/QrBz/0Kwc/9CsHP/QrBz/0KwdP9CsHT/QrF0/0KxdP9CsXT/QrF1/0Kxdf9CsXX/QrF1/0Kx - df9Csnb/QrJ2/0KydvBCsnZBQrJ2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7lFEAO5RRCDuUUY07lFH8O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR7juU - UYQ7lFEWO5RRADuUUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAABFwI0APrN9AEC3ghdAtYB+P7SA3z+0f/0/tH//P7R//z+0gP8/tID/P7SA/z+0 - gP8/tID+P7WB6D+2gpNAt4QkOZpWAEC6hwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAABCsHMAQrByGkKwc91CsHP/QrBz/0Kwc/9CsHP/QrB0/0KwdP9CsXT/QrF0/0Kx - dP9CsXX/QrF1/0Kxdf9CsXX/QrF1/0Kydf9Csnb/QrJ2/0Kydv9Csnb/QrJ28EKyd0FCsncAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAO5RRADuUUQE7lFFkO5RR8juUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR+zuUUbQ7lFE0O5RRATuUUQAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQbqFAEK8 - iANAuIItP7aBeT+1gbY/tYHcP7WB6D+1geg/tYHgP7WCvj+2goVAuIQ5QLqGB0C5hQAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEKwcwBCsHMaQrBz3UKw - c/9CsHP/QrB0/0KxdP9CsXT/QrF0/0KxdP9CsXX/QrF1/0Kxdf9CsXX/QrF1/0Kydv9Csnb/QrJ2/0Ky - dv9Csnb/QrJ3/0Kyd/9CsnfwQrJ3QUKydwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADuUUQA7lFEAO5RRPjuUUd87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUdk7lFFfO5RRCTuUUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEK9iQBDwIwBQbqGDUC4gxxAuIQqQLiEK0C4 - hB5AuoYPQsSOAkLAiwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAQrBzAEKwcxpCsHTdQrB0/0KxdP9CsXT/QrF0/0Kxdf9CsXX/QrF1/0Kx - df9CsXX/QrJ2/0Kydv9Csnb/QrJ2/0Kydv9Csnf/QrJ3/0Kyd/9Csnf/QrJ3/0KzePBCs3hBQrN4AAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAO5RRADuUUSI7lFHDO5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUfI7lFGRO5RRHDuU - UQA7lFEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCsXQAQrF0GkKx - dN1CsXT/QrF1/0Kxdf9CsXX/QrF1/0Kxdf9Csnb/QrJ2/0Kydv9Csnb/QrJ2/0Kyd/9Csnf/QrJ3/0Ky - d/9Csnf/QrN4/0KzeP9Cs3j/QrN48EKzeEFCs3gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADuUUQA7lFEOO5RRnTuUUf47lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf07lFG/O5RRPjuUUQI7lFEAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAEKxdQBCsXUaQrF13UKxdf9CsXX/QrF1/0Kydf9Csnb/QrJ2/0Ky - dv9Csnb/QrJ2/0Kyd/9Csnf/QrJ3/0Kyd/9Csnf/QrN4/0KzeP9Cs3j/QrN4/0KzeP9Cs3nwQrN5QUKz - eQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAA7lFEAO5RRAzuUUXU7lFH3O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFHhO5RRbDuUUQ07lFEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQrF1AEKx - dRpCsXXdQrF1/0Kydv9Csnb/QrJ2/0Kydv9Csnb/QrJ3/0Kyd/9Csnf/QrJ3/0Kyd/9Cs3j/QrN4/0Kz - eP9Cs3j/QrN4/0Kzef9Cs3n/QrN5/0K0efBCtHlBQrR5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO5RRADuUUQA7lFFNO5RR6DuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH1O5RRnTuUUSQ7lFEAO5RRAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCsnYAQrJ2GkKydt1Csnb/QrJ2/0Kydv9Csnf/QrJ3/0Ky - d/9Csnf/QrJ3/0KzeP9Cs3j/QrN4/0KzeP9Cs3j/QrN5/0Kzef9Cs3n/QrN5/0K0ef9CtHr/QrR68EK0 - ekFCtHoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+Y - VQA7lFEAO5RRLDuUUc87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH+O5RRyTuUUUk7lFEEO5RRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEKy - dgBCsnYaQrJ23UKyd/9Csnf/QrJ3/0Kyd/9Csnf/QrN4/0KzeP9Cs3j/QrN4/0KzeP9Cs3j/QrN5/0Kz - ef9Cs3n/QrR5/0K0ev9CtHr/QrR6/0K0ev9CtHrwQrR6QUK0egAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO5RRADuVUhU7lFGuO5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR6DuU - UXk7lFERO5RRADuUUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQrJ3AEKydxpCsnfdQrJ3/0Kyd/9Csnf/QrN4/0Kz - eP9Cs3j/QrN4/0KzeP9Cs3n/QrN5/0Kzef9CtHn/QrR5/0K0ev9CtHr/QrR6/0K0ev9CtHr/QrR7/0K0 - e/BCtHtBQrR7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADyV - UgA8llIHO5RRhzuUUfw7lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR+DuUUao7lFEsO5RRADuUUQAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AABCs3gAQrN4GkKyd91Cs3j/QrN4/0KzeP9Cs3j/QrN4/0Kzef9Cs3n/QrN5/0K0ef9CtHn/QrR6/0K0 - ev9CtHr/QrR6/0K0ev9CtHv/QrR7/0K0e/9CtXv/QrV78EK1fEFCtXwAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7llMAPZ9cATuVUV47lFHwO5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUdI7lFFVO5RRBzuUUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEKzeABCs3gaQrN43UKzeP9Cs3j/QrN5/0Kz - ef9Cs3n/QrN5/0K0ef9CtHr/QrR6/0K0ev9CtHr/QrR6/0K0e/9CtHv/QrR7/0K0e/9CtXv/QrV8/0K1 - fP9CtXzwQrV8QUK1fAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPZdTADuU - UQA7lVI6O5RR2zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUe47lFGGO5RRFjuU - UQA7lFEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAQrN5AEKzeBpCs3ndQrN5/0Kzef9Cs3n/QrR5/0K0ev9CtHr/QrR6/0K0ev9CtHr/QrR6/0K0 - e/9CtHv/QrR7/0K1e/9CtXv/QrV8/0K1fP9CtXz/QrV8/0K1fPBCtX1BQrV8AAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7lVIAO5ZSHzuUUb47lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUfs7lFG2O5RRNjuUUQE7lFEAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCs3kAQrN5GkKzed1CtHn/QrR5/0K0 - ev9CtHr/QrR6/0K0ev9CtHr/QrR7/0K0e/9CtHv/QrV7/0K1e/9CtXz/QrV8/0K1fP9CtXz/QrV8/0K1 - ff9CtX3/QrZ98EK2fUFCtn0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO5RRADuU - UQc7lFGRO5RR/juUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFHbO5RRYTuUUQo7lFEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAEK0eQBCtHkaQrR63UK0ev9CtHr/QrR6/0K0ev9CtHv/QrR7/0K0e/9CtXv/QrV7/0K1 - fP9CtXz/QrV8/0K1fP9CtXz/QrV9/0K1ff9Ctn3/QrZ9/0K2ff9Ctn7wQrZ+QUK2fgAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAADuUUQA7lFEAO5RRSDuUUe07lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFHyO5RRozuUUdg7lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFHyO5RRkzuUUR07lFEAO5RRAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQrR6AEK0ehpCtHrdQrR6/0K0 - e/9CtHv/QrR7/0K0e/9CtXv/QrV7/0K1fP9CtXz/QrV8/0K1fP9CtXz/QrV9/0K2ff9Ctn3/QrZ9/0K2 - fv9Ctn7/QrZ+/0K2fvBCtn5BQrZ+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO5RRADuU - UQk7lFGnO5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/TuUUZQ7lFELO5RRNTuU - UbY7lFH7O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH9O5RRwTuUUUA7lFECO5RRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAABCtHoAQrR6GkK0e91CtHv/QrR7/0K1e/9CtXv/QrV8/0K1fP9CtXz/QrV8/0K1 - fP9CtX3/QrZ9/0K2ff9Ctn3/QrZ9/0K2fv9Ctn7/QrZ+/0K2fv9Ctn7/QrZ/8EK2f0FCtn8AAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7lFEAO5RRKzuUUeM7lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFG7O5RRHDuUUQA7lFEAO5RRFzuUUYc7lFHvO5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR4juU - UW07lFEMO5RRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEK1ewBCtHsaQrV73UK1 - e/9CtXz/QrV8/0K1fP9CtXz/QrV8/0K1ff9CtX3/QrZ9/0K2ff9Ctn3/QrZ+/0K2fv9Ctn7/QrZ+/0K2 - fv9Ctn//QrZ//0K3f/9Ct3/wQrd/QUK3fwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADuU - UQA7lFFaO5RR+DuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR2juUUTc7lFEAO5RRAAAA - AAA7lFEAO5RRBzuUUVc7lFHUO5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR9TuUUZk7lFEfO5RRADuUUQAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAQrV8AEK1fBpCtXzdQrV8/0K1fP9CtXz/QrV9/0K1ff9Ctn3/QrZ9/0K2 - ff9Ctn7/QrZ+/0K2fv9Ctn7/QrZ+/0K2f/9Ctn//Qrd//0K3f/9Ct3//QreA/0K3gPBCt4BBQreAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7lFEAO5RRADuUUXk7lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUe87lFFbO5RRADuUUQAAAAAAAAAAAAAAAAA7lFEAO5RRADuUUS47lFGtO5RR+TuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/juUUcA7lFE7O5RRATuUUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCtXwAQrV8GkK1 - fN1CtXz/QrV9/0K2ff9Ctn3/QrZ9/0K2ff9Ctn7/QrZ+/0K2fv9Ctn7/QrZ+/0K2f/9Ct3//Qrd//0K3 - f/9Ct3//QreA/0K3gP9Ct4D/QreA8EK3gEFCt4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADuU - UQA7lFEAO5RRhDuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH7O5RRhDuUUQY7lFEAAAAAAAAA - AAAAAAAAAAAAAAAAAAA7lFEAO5RRADuUURI7lFF9O5RR6juUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUd07lFFfOY5NCDqR - TwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAEK2fQBCtX0aQrZ93UK2ff9Ctn3/QrZ9/0K2fv9Ctn7/QrZ+/0K2 - fv9Ctn7/QrZ//0K2f/9Ct3//Qrd//0K3f/9Ct4D/QreA/0K3gP9Ct4D/QreA/0K4gf9CuIHwQriBQUK4 - gQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO5RRADuUUQA7lFF9O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUaw7lFEUO5RRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO5RRADuU - UQU7lFFNO5RRzTuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zqTUPE2jEuGNIpLEjWKSgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQrZ9AEK2 - fRpCtn3dQrZ+/0K2fv9Ctn7/QrZ+/0K2fv9Ctn//QrZ//0K3f/9Ct3//Qrd//0K3gP9Ct4D/QreA/0K3 - gP9Ct4D/QriB/0K4gf9CuIH/QriB/0K4gfBCuIJBQriCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAO5RRADuUUWM7lFH6O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFHPO5RRKzuUUQA7lFEAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO5RRADuUUQA7lFEnO5RRozuUUfY7lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zaM - S/o0jE2bPa53FTqhZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCtn4AQrZ+GkK2ft1Ctn7/QrZ+/0K2f/9Ctn//Qrd//0K3 - f/9Ct3//Qrd//0K3gP9Ct4D/QreA/0K3gP9CuIH/QriB/0K4gf9CuIH/QriB/0K4gf9CuIL/QriC8EK4 - gkFCuIIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7lFEAO5RRNjuUUeo7lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR5zuUUUw7lFEAO5RRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAADuUUQA7lFEOO5RRcjuUUeU7lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/OI5N/zOISPg5ommZQ8eYF0C+jAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEK2 - fwBCtn8aQrZ+3UK2f/9Ct3//Qrd//0K3f/9Ct3//QreA/0K3gP9Ct4D/QreA/0K3gP9CuIH/QriB/0K4 - gf9CuIH/QriB/0K4gv9CuIL/QriC/0K5gv9CuYLwQrmDQUK5ggAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAADuUUQA7lFEOO5RRuTuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUfc7lFF0O5RRAzuUUQAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADuUUQA7lFEDO5RRRDuU - UcU7lFH+O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf85kU//MoRF/zWRVPM/uIWZQsWWE0HAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQrd/AEK2fxpCt3/dQrd//0K3f/9Ct4D/QreA/0K3 - gP9Ct4D/QreA/0K4gf9CuIH/QriB/0K4gf9CuIH/QriC/0K4gv9CuIL/QrmC/0K5gv9CuYP/QrmD/0K5 - g/BCuYNBQrmDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO5RRADuUUQA7lFFfO5RR9zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH+O5RRnTuUUQ07lFEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAADuUUQA7lFEAO5RRITuUUZk7lFH0O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zqSUP8yhUX/MYNE/TqlbvBBwZGMQcKSCkHB - kQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AABCt4AAQrd/GkK3gN1Ct4D/QreA/0K3gP9Ct4D/QriB/0K4gf9CuIH/QriB/0K4gf9CuIL/QriC/0K4 - gv9CuIL/QrmC/0K5gv9CuYP/QrmD/0K5g/9CuYP/QrmD8EK5hEFCuYQAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAO5RRADuUURA7lFGtO5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUcI7lFEhO5RRAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAA7lFEAO5RRCzuUUWg7lFHfO5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/OpNQ/zOGRv8wgEH/M4xQ9z+5h/BBwpNtQcGSAkHBkQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEK3gABCt4AaQreA3UK3gP9Ct4D/QriB/0K4 - gf9CuIH/QriB/0K4gf9CuIL/QriC/0K4gv9CuYL/QrmC/0K5g/9CuYP/QrmD/0K5g/9CuYP/QrmE/0K5 - hP9CuYTwQbqEQUK6hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7lFEAO5RRADuU - US47lFHMO5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFHYO5RROjuUUQA7lFEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7lFEAO5RRATuUUTs7lFG8O5RR/DuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf86k1D/MoVG/y+AQf8vgEL8OqVv9kHC - kuNBwZJDQcCRAEHElAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAQriAAEK3gBpCuIHdQriB/0K4gf9CuIH/QriB/0K4gv9CuIL/QriC/0K5gv9CuYL/QrmD/0K5 - g/9CuYP/QrmD/0K5g/9CuYT/QrmE/0K5hP9BuoT/QbqE/0G6hfBBuoVBQbqFAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7lFEAO5RRADuUUTk7lFHHO5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR0TuUUUU7lFEAO5RRAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAA7lFEAO5RRADuUURs7lFGOO5RR8TuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zqTUP8yhEX/Ln9B/y5+QP8zjlP0QL2N/UHCk79BwpMaQcKTAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCuIEAQriBGkK4gd1CuIH/QriC/0K4 - gv9CuIL/QrmC/0K5gv9CuYP/QrmD/0K5g/9CuYP/QrmD/0K5hP9CuYT/QrmE/0K5hP9BuoT/QbqF/0G6 - hf9BuoX/QbqF8EG6hUFBuoUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAA7lFEAO5RRADuUUSY7lFGZO5RR7TuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR8DuU - UaQ7lFEvO5RRADuUUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO5RRADuU - UQk7lFFeO5RR2TuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/OpJQ/zGCQ/8ufkD/Ln5A/y+B - Q/s8r3v1QcOU/EHCk35BwpQCQcKTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAEK4ggBCuIIaQriC3UK4gv9CuIL/QrmC/0K5gv9CuYP/QrmD/0K5g/9CuYP/QrmE/0K5 - hP9CuYT/QrmE/0G6hP9BuoT/QbqF/0G6hf9BuoX/QbqF/0G6hf9BuobwQbuGQUG7hgAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO5RRADuUUQk7lFFCO5RRkzuU - Uc87lFHpO5RR8DuUUfA7lFHqO5RR0juUUZk7lFFKO5RRCzuUUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO5RRADuUUQE7lFEzO5RRszuUUfo7lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf85kU7/L39C/y19P/8tfT//LXs+/jacZfVBwpP/QcKU4EHClDRBwpQAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQriCAEK4ghpCuYLdQrmC/0K5 - g/9CuYP/QrmD/0K5g/9CuYP/QrmE/0K5hP9CuYT/QbqE/0G6hP9BuoX/QbqF/0G6hf9BuoX/QbqF/0G6 - hv9Buob/QbuG/0G7hvBBu4ZBQbuGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAADuUUQA7lFEFO5RRFjuUUS87lFFCO5RRRDuUUTE7lFEXO5RRBTuU - UQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAO5RRADuUUQA7lFEVO5RRhDuUUe47lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zaMS/8tfUD/LHw+/yx8 - Pv8sez3/MYtQ8kC+jvtBw5T/QcOUlkHDlgZBw5UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAABCuYMAQrmDGkK5g91CuYP/QrmD/0K5g/9CuYT/QrmE/0K5hP9BuoT/QbqE/0G6 - hf9BuoX/QbqF/0G6hf9BuoX/QbqG/0G6hv9Bu4b/QbuG/0G7hv9Bu4f/QbuH8EG7h0FBu4cAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADuUUQA7lFEGO5RRUzuU - UdI7lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/MoZG/yx7Pv8sez7/LHs+/yx6Pf8ugUX7PriH+kHElf9Bw5XlQcOVNUHD - lQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEK5gwBCuYMaQrmD3UK5 - hP9CuYT/QrmE/0K5hP9BuoT/QbqF/0G6hf9BuoX/QbqF/0G6hf9Buob/QbqG/0G7hv9Bu4b/QbuG/0G7 - hv9Bu4f/QbuH/0G7h/9Bu4fwQbuHQUG7hwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAADuUUQA7lFEAO5RRLDuUUao7lFH4O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zmQTv8ufkD/LHo9/yx6 - Pf8sej3/K3k8/yx7P/o7rXrwQcSW/0HDlf9Bw5WGQciaAUHElgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAQrmEAEK5hBpCuYTdQrmE/0G6hP9BuoT/QbqF/0G6hf9BuoX/QbqF/0G6 - hf9Buob/QbuG/0G7hv9Bu4b/QbuG/0G7h/9Bu4f/QbuH/0G7h/9Bu4f/QbuI/0G7iPBBvIhBQbyIAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAA7lFEAO5RRETuUUXk7lFHpO5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/MoVG/yt5Pf8reTz/K3k8/yp4PP8qeDz/Kng8+jilcfBBxZf/QcSW/0HE - ls9BxJYaQcSWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBuoUAQbqFGkG6 - hN1BuoX/QbqF/0G6hf9BuoX/QbqF/0G6hv9Buob/QbuG/0G7hv9Bu4b/QbuH/0G7h/9Bu4f/QbuH/0G7 - h/9Bu4j/QbuI/0G8iP9BvIj/QbyI8EG8iEFBvIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7lFEAO5RRBDuUUUo7lFHKO5RR/juU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zWKSv8sej3/Kng8/yp4 - PP8qeDv/Knc7/yp3O/8qdjr8N6Jt9EHFmP9BxJb/QcSW9EHEl1BBxJcAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAEG6hQBBuoUaQbqF3UG6hf9BuoX/QbqG/0G6hv9Bu4b/QbuG/0G7 - hv9Bu4f/QbuH/0G7h/9Bu4f/QbuH/0G7iP9Bu4j/QbyI/0G8iP9BvIj/QbyI/0G8iP9BvInwQbyJQUG8 - iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAA7lFEAO5RRADuUUSU7lFGgO5RR9juUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf82i0r/LHs+/yp3O/8qdzv/Knc7/yp3Ov8qdjr/KnY6/yl1Ofs3om7zQcWY/0HE - l/9BxJf/QcSXiUH//wBBxZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQbqGAEG6 - hhpBuobdQbqG/0G7hv9Bu4b/QbuG/0G7h/9Bu4f/QbuH/0G7h/9Bu4f/QbuH/0G7iP9BvIj/QbyI/0G8 - iP9BvIj/QbyI/0G8if9BvIn/QbyJ/0G8ifBBvYlBQb2JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO5RRADuU - UQ07lFFyO5RR6zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf86kk//M4dH/yx5Pf8qdjr/KnY6/yp2 - Ov8qdjr/KXU6/yl1Of8pdDn/KXU6+jimc/BBxpj/QcWX/0HFmP9BxZi+QcWYEEHFmAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBuoUAQbqFGkG6hd1BuoX/QbuG/0G7hv9Buob/QbqG/0G6 - hv9Bu4f/QbuH/0G7h/9Bu4f/QbuH/0G8h/9BvIf/QbyI/0G8iP9BvIj/QbyI/0G8iP9BvYn/Qb2J8EG9 - iUJBvYkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO5RRADuUUQQ7lFFoO5RR8TuUUf87lFH/O5RR/zuU - Uf85kU//NYlJ/y5+QP8qdzv/KnY6/yp2Ov8pdTn/KXU5/yl1Of8odDn/KHQ5/yhzOP8peD37O7F/80HG - mf9BxZj/QcWY/0HFmOJBxZgjQcWYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEG6 - hABBuoMaQbqE3kG6hP9BuoT/QbqE/0G6hf9BuoX/QbqF/0G7hf9Bu4X/QbuF/0G7hf9Bu4b/QbuG/0G7 - hv9Bu4b/QbuG/0G7h/9Bu4f/QbuH/0G7h/9Bu4fxQbuHRUG7hwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAO5RRADyVUgg6k1CVOZBO/zeNTP80iEj/MYJE/y17Pv8qdzr/KXU5/yl1Of8pdTn/KHQ5/yh0 - Of8odDj/KHQ4/yhzOP8nczj/J3I3/yt+Rfc+vY78QcaZ/0HFmP9BxZn/QcWZ8UHFmUVBxZkAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQbqEAEG6hBlBuoTaQbqE/0G6hf9BuoX/QbuF/0G7 - hf9Bu4X/QbuF/0G7hf9Bu4b/QbuG/0G7hv9Bu4b/QbuG/0G7h/9Bu4f/QbuH/0G7h/9Bu4f/QbuI/0G7 - iPRBu4hQQbuIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL4BCADGDRDcsej3pK3g7/yp2 - Ov8pdTn/KXU5/yl0Of8odDn/KHQ5/yh0OP8oczj/J3M4/ydzOP8ncjf/J3I3/ydyN/8mcDX+MZFb9EHE - l/xBxZn/QcWZ/0HFmf9Bxpn5QcaaX0HGmgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AABBuoQAQbqEF0G6hdRBu4X/QbuF/0G7hf9Bu4X/QbuF/0G7hv9Bu4b/QbuG/0G7hv9Bu4b/QbuH/0G7 - h/9Bu4f/QbuH/0G7h/9Bu4j/QbuI/0G7iP9Bu4j/QbyI/UG8iGpBvIgAQbyJAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAufkAAMIBCESt4PMIpdTn/KHQ5/yh0Of8odDj/KHQ4/yhzOP8nczj/J3M4/ydy - N/8ncjf/J3I3/ydxNv8mcTb/JnA1/yd0Ovo6rXz2Qcaa/0HGmf9Bxpn/Qcaa/0HGmv9BxppyQcaaAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEG7hQBBu4UTQbuFyEG7hf9Bu4X/QbuF/0G7 - hv9Bu4b/QbuG/0G7hv9Bu4b/QbuH/0G7h/9Bu4f/QbuH/0G7h/9Bu4j/QbuI/0G7iP9BvIj/QbyI/0G8 - iP9BvIj/QbyImkG8igRBvIkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADKDRAA2ikoJKng7qyh0 - OP8oczj/J3M4/ydzOP8nczf/J3I3/ydyN/8ncjf/JnE2/yZxNv8mcDb/JXA1/yVwNf8lbjT+L41W9UDD - lfxBxpr/Qcaa/0HGmv9Bxpr/Qcab/0HGm3xBxpsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAQbuFAEG7hQ1Bu4W2QbuG/0G7hv9Bu4b/QbuG/0G7hv9Bu4f/QbuH/0G7h/9Bu4f/QbuH/0G7 - iP9Bu4j/QbuI/0G8iP9BvIj/QbyI/0G8iP9BvIj/QbyI/0G8iP9BvInXQb2JI0G8iQAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAMIBCADKFRg4qdzu5J3M3/ydyN/8ncjf/J3I3/ydxNv8mcTb/JnA2/yZw - Nv8lcDX/JXA1/yVvNf8lbzT/JW4z/yl7Qvc8tYb4Qceb/0HGmv9Bxpr/Qcab/0HGm/9Bxpv/QcedgEHH - nABByZ8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBu4YAQbqGBEG7hptBu4b/QbuG/0G7 - h/9Bu4f/QbuH/0G7h/9Bu4f/QbuI/0G7iP9Bu4j/QbuI/0G8iP9BvIj/QbyI/0G8iP9BvIj/QbyI/0G8 - if9BvIn/Qb2J/0G9iftBvYp2Qb2NAUG9igAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAreDsALHo9Hihz - ONoncTf/J3E2/yZxNv8mcDb/JXA1/yVwNf8lbzX/JW81/yVvNP8lbzT/JW40/yRtM/8ndTz6OKp590HH - m/9Bxpv/Qcab/0HGm/9Bxpv/Qcab/0HGnP9ByJ58QcieAEHJnwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAEG7hQBBu4cAQbuHfEG7h/9Bu4f/QbuH/0G7h/9Bu4j/QbuI/0G7iP9Bu4j/QbyI/0G8 - iP9BvIj/QbyI/0G8iP9BvIj/QbyI/0G8if9BvYn/Qb2J/0G9if9BvYn/Qb2K/0G9ittBvYs0Qb2JAEG+ - jwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAQp9YACdxNgAreDtYJ3E29iZwNv8lcDX/JXA1/yZwNf8mcDX/JW81/yVv - NP8lbjT/JG40/yRtM/8jbDL/J3Y9+TeodvhBxpr+Qcab/0HGm/9Bxpv/Qcab/0HGnP9Bxpz/Qced/0HJ - n3JByJ8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEG7hwBBu4dWQbuH9kG7 - h/9Bu4j/QbuI/0G7iP9BvIj/QbyI/0G8iP9BvIj/QbyI/0G8iP9BvIj/QbyJ/0G8if9BvYn/Qb2J/0G9 - if9BvYr/Qb2K/0G9iv9BvYr/Qb2K/0G+i7lBvowgQb6MAEG+jAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtfD4AMYJDDih0 - OLAmcDb/JnA2/ydwNv8ncDb/J3A2/ydwNv8nbzX/Jm81/yVuNP8kbDP/JGwz/SqASfY6r3/3Qcaa/0HG - mv9Bxpr/Qcaa/0HGm/9Bxpv/Qcab/0HGm/9Bx535QcmhX0HJoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAQbuIAEG7iCtBu4jmQbuI/0G8iP9BvIj/QbyI/0G8iP9BvIj/QbyI/0G8 - iP9BvIn/QbyJ/0G9if9BvYn/Qb2J/0G9iv9BvYr/Qb2K/0G9iv9BvYr/Qb6L/0G+i/9Bvov/Qb6L/kG+ - i7VBvowsQbyKAEG+jAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAANYJGAEmZXAQrdjtvKHE39ihwNv8ocDf/KHE3/ylwOP8pcDj/KXA4/yhv - N/8nbjX/J242/St5Qfk1mmb1P72O+kLHmv9Bxpn/QcaZ/0HGmf9Bxpn/Qcaa/0HGmv9Bxpr/Qcaa/0HI - nvBByqFEQcqhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBvIgAQbyID0G8 - iLxBvIj/QbyI/0G8iP9BvIj/QbyI/0G8if9BvIn/Qb2J/0G9if9BvYn/Qb2J/0G9iv9BvYr/Qb2K/0G9 - iv9BvYv/Qb6L/0G+i/9Bvov/Qb6L/0G+i/9Bvoz/Qb6M/0G+jNJBvoxiQb+NFUHAjQFBv40AAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOn85AAFfTQAxejwSK3U6dShw - N+wocDf/KXA4/ypxOf8rcTr/LHE6/y1xOv8ucjv9L3dB+zOFUPY7n232Q7qL+UbGmv5Ex5v/Q8WZ/0LF - mP9BxZj/QcWY/0HFmP9BxZn/QcWZ/0HFmf9Bxpr/Qcmf40HKoyVByqIAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAEG9iQBBuocAQbyIgUG8iP9BvIj/QbyI/0G8if9BvYn/Qb2J/0G9 - if9BvYn/Qb2K/0G9iv9BvYr/Qb2K/0G9iv9Bvov/Qb6L/0G+i/9Bvov/Qb6L/0G+jP9Bvoz/Qb6M/0G+ - jP9Bvoz/Qb+N/0G/jfZBv43DQb+Ne0G/jkdBv44oQb+OG0HAjxpBwJAaQcCQGkHAkBpBwJAaQcCQGkHA - kRpBwJEaQcCRGkHAkRpBwZEaQcGSGkHBkhpBwZIaQcGSGkHBkhpBwZIaQcGSGkHCkhpBwpIaQcKSGkHC - kxpBwpMaQcKTGkHCkxpBwpMaQcKUGkHClBpBw5QaQcOUGkHDlBpBw5QaQcOVGkHDlRpBw5UaQcOVGkHD - lRpBxJYaQcSWGkHElhpBxJYaQcSWGkHElxpBxJcaQcSXGkHElxpBxJcaQcSYGkHEmBpBxJgaQcaaGkHH - nBpBx50aQcedG0HJnxs7rnsnMYpRYSx9RLcqeED2LHhB/y15Qv4we0b/Mn1I/jaCTfg6iVbyP5Zm9kSm - ePdKuI32Tsef/E7Kof5NyJ3/Ssec/0jGmv9FxZn/QsSY/0HEl/9BxJf/QcSY/0HEmP9BxJj/QcSY/0HG - m/9ByaHAQcujEEHKogAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEG8 - iQBBvIlAQbyJ7kG8if9BvYn/Qb2J/0G9if9BvYr/Qb2K/0G9iv9BvYr/Qb2K/0G+i/9Bvov/Qb6L/0G+ - i/9Bvov/Qb6M/0G+jP9Bvoz/Qb6M/0G+jP9Bv43/Qb+N/0G/jf9Bv43/Qb+N/0G/jv9Bv479Qb+O8kG/ - judBwI7hQcCP3kHAj95BwI/eQcCP3kHAkN5BwJDeQcCQ3kHAkN5BwZDeQcGR3kHBkd5BwZHeQcGR3kHB - kd5BwZLeQcGS3kHBkt5BwpLeQcKS3kHCkt5BwpPeQcKT3kHCk95BwpPeQcKT3kHClN5BwpTeQcOU3kHD - lN5Bw5TeQcOV3kHDld5Bw5XeQcOV3kHDld5BxJbeQcSW3kHElt5BxJbeQcSW3kHEl95BxJfeQcSX3kHE - l95BxZfeQcWY3kHFmN5BxZjeQcWY3kHFmN5BxpveQced3UHHnd1Bx53hQcid40DEmeU/vI/1P7mN/UK6 - j/tFvJH6SL2T+0vAl/5Ow5v/Ucaf/VTKo/tXzqn8V9Gs/1jQrP9X0Kv/Vcuk/1TJoP9QyJ7/TMec/0fG - mv9ExZj/QsSX/0HEl/9BxJf/QcSX/0HEl/9BxJf/Qced/0HLo49BzKUBQcujAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQb2KAEG9ihBBvYm7Qb2J/0G9iv9BvYr/Qb2K/0G9 - iv9BvYr/Qb6L/0G+i/9Bvov/Qb6L/0G+i/9Bvoz/Qb6M/0G+jP9Bvoz/Qb6M/0G/jf9Bv43/Qb+N/0G/ - jf9Bv43/Qb+O/0G/jv9Bv47/Qb+O/0HAjv9BwI//QcCP/0HAj/9BwI//QcCP/0HAj/9BwJD/QcCQ/0HA - kP9BwZD/QcGQ/0HBkf9BwZH/QcGR/0HBkf9BwZH/QcGS/0HCkv9BwpL/QcKS/0HCkv9BwpP/QcKT/0HC - k/9BwpP/QcKT/0HClP9Bw5T/QcOU/0HDlP9Bw5T/QcOV/0HDlf9Bw5X/QcOV/0HDlf9BxJb/QcSW/0HE - lv9BxJb/QcSW/0HEl/9BxJf/QcSX/0HEl/9BxZf/QcWY/0HFmP9BxZj/QcWY/0HFmP9BxZj/QcWZ/0HH - nP9ByJ3/Qcid/0HInv9ByJ7/Qsif/0XKof9Iy6L/S8yk/0/Np/9Szqj/Vc+q/1nQrP9b0a3/XdGu/17S - r/9f0q//X9Kv/1/Rr/9ezaj/XMuk/1fKof9RyJ3/S8ab/0fFmP9ExJf/QsOW/0HDlf9Bw5b/QcOW/0HE - l/9ByaD2QcujVkHLowAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AABBvYoAQb2KAEG9impBvYr7Qb2K/0G9i/9Bvov/Qb6L/0G+i/9Bvov/Qb6M/0G+jP9Bvoz/Qb6M/0G+ - jP9Bvo3/Qb6N/0G/jf9Bv43/Qb+N/0G/jv9Bv47/Qb+O/0G/jv9Bv47/Qb+O/0HAjv9BwI//QcCP/0HA - j/9BwI//QcCP/0HAkP9BwJD/QcCQ/0HAkP9BwJD/QcCR/0HBkf9BwZH/QcCR/0HBkf9BwZH/QcGR/0HB - kv9BwZL/QcKS/0HCkv9BwpL/QcKT/0HCk/9BwpP/QcKT/0HCk/9BwpP/QcKT/0HDlP9Bw5T/QcOU/0HD - lP9Bw5T/QcOV/0HDlf9Bw5X/QcOV/0HDlv9Bw5b/QcOW/0HDlv9Bw5b/QcSW/0HEl/9BxJf/QcSX/0HE - l/9BxJf/QcSX/0HEmP9BxJf/QcSY/0HEmP9BxZn/Qcid/0HInv9ByJ7/Qcie/0LIn/9EyaD/R8qi/0vL - pP9Pzab/VM6p/1jQq/9c0a3/YNKv/2LSsf9k07L/ZtSz/2jUtP9o1LT/aNSz/2jQq/9kzaf/Xcuj/1bJ - n/9Oxpv/ScSZ/0XDl/9Dw5X/QcOU/0HDlf9BwpT/QcWZ/0HLotdBy6MgQcujAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBvYsAQb2LH0G9itFBvYr/Qb2L/0G+ - i/9Bvov/Qb6L/0G+i/9BvYz/Qb2M/0G+jP9Bvoz/Qb6M/0G+jP9Bvo3/Qb6N/0G+jf9Bvo3/Qb6N/0G+ - jv9Bv47/Qb+O/0G/jv9Bv47/Qb+O/0G/jv9Bv47/Qb+O/0G/jv9Bv4//Qb+P/0HAj/9BwI//QcCP/0HA - kP9BwJD/QcCQ/0HAkP9BwJD/QcCR/0HAkf9BwJH/QcCR/0HAkf9BwJH/QcCS/0HAkv9BwZL/QcGS/0HB - kv9BwpL/QcKS/0HCk/9BwpP/QcKT/0HCk/9BwpP/QcKU/0HDlP9Bw5T/QcOU/0HDlP9Bw5X/QcOV/0HD - lf9Bw5X/QcSV/0HElf9BxJb/QcSW/0HElv9BxJb/QcOW/0HEl/9BxJf/QcSX/0HEl/9BxJf/QcSX/0HG - m/9ByJ7/Qcie/0HInv9ByJ//Qsmg/0XKof9Jy6P/T82m/1XPqv9b0K3/YNKv/2TTsv9o1LT/a9W1/23W - tv9v17j/cde5/3LYuv9y17j/cdGu/2vPqv9jzKX/Wsqg/1PHnP9MxZn/R8SW/0TDlP9CwpP/QcKT/0HC - k/9ByJ7/QcuklEHLpANBy6QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAEG9iwBBwMwAQb2KdUG9ivxBvYr/Qb2K/0G9iv9BvYv/Qb2L/0G9i/9BvYv/Qb6L/0G+ - i/9Bvov/Qb2L/0G9jP9Bvoz/Qb6M/0G+jP9Bvoz/Qb6N/0G/jf9Bvo3/Qb6N/0G+jf9Bvo7/Qb6O/0G+ - jv9Bv47/Qb+O/0G/jv9Bv4//Qb+P/0G/j/9Bv4//Qb+P/0G/j/9BwI//QcCP/0HAkP9BwJD/QcCQ/0HA - kP9BwJD/QcCR/0HAkf9BwJH/QcGR/0HBkf9BwZL/QcGS/0HBkv9BwZL/QcGS/0HBkv9BwZL/QcKS/0HC - kv9BwpP/QcKT/0HCk/9BwpP/QcKT/0HCk/9BwpT/QcKU/0HDlP9Bw5T/QcOV/0HDlf9Bw5X/QcKV/0HD - lf9Bw5X/QcOV/0HDlf9Bw5b/QcSW/0HDlv9BxJf/Qced/0HIn/9ByJ//Qcmf/0HJn/9DyqD/Rsqi/0vM - pf9Rzqj/WdCs/2HSsP9n1LT/bNa2/3DXuP902Lr/d9m8/3navf982r//fdvA/33ZvP9607L/cdCt/2fN - p/9eyqL/Vsed/0/Fmf9Jw5b/RcKU/0PBkv9BwJH/QcOW/0HLou9BzKRGQcykAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEG8igBBvIoeQbyJykG8 - if9BvIn/QbyK/0G9iv9BvYr/Qb2K/0G9iv9BvYv/Qb2L/0G9iv9BvYv/Qb2L/0G+i/9Bvov/Qb6L/0G+ - jP9Bvoz/Qb6M/0G+jP9Bvoz/Qb6N/0G+jf9Bvo3/Qb6N/0G/jf9Bv47/Qb+O/0G+jv9Bv47/Qb+O/0G/ - jv9Bv47/Qb+O/0HAjv9BwI//QcCP/0HAj/9BwI//Qb+P/0HAj/9BwJD/QcCQ/0HAkP9BwJD/QcCQ/0HA - kf9BwJH/QcCQ/0HAkP9BwZH/QcGR/0HBkf9BwZH/QcGR/0HBkv9BwZL/QcGS/0HBkv9BwZL/QcKT/0HC - k/9BwZP/QcGT/0HBk/9BwZT/QcKU/0HCk/9BwpP/QcKU/0HClP9Bw5T/QcKU/0HClP9BwpX/QcOV/0HF - mf9ByZ//Qcmf/0HJn/9ByaD/Qsmg/0PKof9Hy6P/TMym/1POqf9b0a7/ZNOy/23Wt/902Lr/etq+/37b - wP+B3MH/hN3D/4fexP+J38b/iNu//4DVtP910a7/a86o/2LLov9ZyJ3/UcWZ/0vDlf9GwpP/Q8GR/0LB - kf9ByJ7/QcylsEHMpQxBzKUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAQbyLAEG7hABBvIlfQbyI9UG8if9BvIn/QbyJ/0G8if9BvIn/QbyK/0G8 - iv9BvYr/Qb2K/0G9iv9BvYr/Qb2K/0G9iv9BvYv/Qb2L/0G9i/9BvYv/Qb2L/0G9i/9BvYz/Qb6M/0G9 - jP9BvYz/Qb2M/0G+jf9Bvo3/Qb6N/0G+jf9Bvo3/Qb+N/0G+jv9Bvo7/Qb6O/0G+jv9Bv47/Qb+O/0G/ - jv9Bv47/Qb+O/0G/j/9Bv4//Qb+P/0G/j/9Bv4//Qb+Q/0HAkP9BwJD/QcCQ/0HAkP9BwJD/QcCQ/0HA - kf9BwJH/QcCR/0HBkf9BwZH/QcGR/0HBkf9BwZL/QcGS/0HBkv9BwZL/QcGS/0HBk/9BwpP/QcKS/0HC - k/9BwpP/QcKT/0HCk/9BwpP/QcKT/0HCk/9Bw5T/Qcec/0HJoP9ByaD/Qcmg/0HJoP9CyaH/RMqi/0fL - pP9Mzaf/VM+q/1zRrv9k1LP/bda3/3fZvf+B3ML/id7F/4zfx/+P4Mj/keHK/5Lhyf+P27//hda2/3nS - r/9uzqn/Zcuj/1zInv9TxZn/TMOV/0fCkv9EwJD/QsSX/0HLpPBBzKVNQcylAEHMpQAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQbyIAEG8 - iQxBu4ijQbuI/0G7iP9Bu4j/QbuI/0G7if9BvIn/QbyJ/0G8if9BvIn/QbyJ/0G8if9BvIn/QbyK/0G8 - iv9BvIr/Qb2K/0G9iv9BvYv/Qb2L/0G9i/9BvYv/Qb2L/0G9i/9BvYv/Qb6L/0G+jP9Bvoz/Qb6M/0G+ - jP9Bvoz/Qb6M/0G+jf9Bvo3/Qb6N/0G/jf9Bv43/Qb+N/0G/jf9Bv43/Qb+N/0G/jv9Bv47/Qb+O/0G/ - jv9Bv47/QcCP/0G/j/9Bv4//Qb+P/0HAj/9BwI//QcCP/0HAj/9BwI//QcCQ/0HAkP9BwJD/QcCQ/0HA - kP9BwJH/QcCR/0HAkf9BwZH/QcGR/0HBkf9BwZH/QcGR/0HBkv9BwZL/QcGS/0HBkv9BwZL/QcGS/0HE - lv9ByZ//Qcmg/0HJoP9ByaD/Qcmh/0LKof9Ey6P/SMyl/03Op/9T0Kv/W9Gv/2TTs/9t1rf/d9m9/4Lc - wv+N4Mj/k+LL/5Tiy/+U4sv/lODH/5Lavv+K1rj/fdKw/3HOqf9ny6P/Xcid/1XFmP9Nw5T/SMGQ/0TB - kv9CyqH/QcymoEHMpgpBzKYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQbuHAEG7hyxBu4fTQbuH/0G7h/9Bu4f/QbuH/0G8 - h/9BvIf/QbyI/0G8iP9BvIj/QbuI/0G8iP9BvIn/QbyJ/0G8if9BvIn/QbyJ/0G8iv9BvIr/QbyK/0G9 - iv9BvYr/Qb2K/0G9iv9BvYr/Qb2K/0G9i/9BvYv/Qb2L/0G9i/9BvYv/Qb2L/0G9jP9Bvoz/Qb6M/0G+ - jP9Bvoz/Qb6M/0G+jP9Bvoz/Qb6M/0G/jP9Bv4z/Qb+N/0G/jf9Bvo3/Qb6N/0G+jf9Bv47/Qb+O/0G/ - jv9Bv47/Qb+O/0G/j/9Bv4//Qb+P/0G/j/9Bv4//QcCP/0HAj/9BwI//QcCP/0HAkP9BwJD/QcCQ/0HA - kP9BwJD/QcCQ/0HAkP9BwJD/QcCR/0HAkf9BwZL/Qcab/0HJoP9ByaH/Qcmh/0HKof9ByqH/Qsqi/0TL - o/9IzKX/Tc2o/1PPq/9b0q//Y9Sz/2vWt/912bz/gNzB/4vfx/+T4sv/lOLL/5Tiy/+U3ML/k9m9/4vX - uP9/0rD/c86p/2jLo/9fx53/VsSX/07Bk/9IwJH/RMid/0LNp9pBzaYxQs2mAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AABBu4gAQbl+AEG7h1NBuobrQbqG/0G7hv9Bu4b/QbqG/0G6hv9Buof/QbqH/0G7h/9Bu4f/QbuH/0G7 - iP9Bu4j/QbuI/0G7iP9Bu4j/QbuI/0G7iP9BvIj/QbyI/0G8iP9BvIn/QbyJ/0G8if9BvIn/QbyJ/0G8 - if9BvIn/Qb2K/0G9iv9BvYr/Qb2K/0G9iv9BvYv/Qb2L/0G9iv9BvYr/Qb2L/0G+i/9Bvov/Qb6L/0G+ - i/9BvYv/Qb6M/0G+jP9Bvoz/Qb6M/0G+jP9Bvo3/Qb6N/0G+jf9Bvo3/Qb6N/0G/jv9Bv43/Qb+N/0G/ - jf9Bv47/Qb+O/0G/jv9Bv47/Qb+O/0G/jv9Bv47/Qb+O/0G/jv9Bv4//Qb+P/0G/j/9Bv4//Qb+P/0HD - lf9ByaD/Qcqh/0HKof9ByqH/Qcqh/0HKov9CyqL/RMuk/0fMpf9Mzaj/Us+r/1nSr/9h1LP/ada2/3PZ - u/9928D/iN7G/5Lhy/+U4sz/lN/H/5LZvP+Q2Lr/ida2/4DSr/90zqj/asui/1/Hm/9WxJb/TsGR/0jH - m/9FzqfzQ86oZUfPpQFEzqcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBu4cAQbuIBEG6hXVBuoX1QbmF/0G6 - hf9BuoX/QbqF/0G6hf9BuoX/QbqG/0G6hv9Buob/QbqG/0G6hv9Buob/QbqH/0G7h/9Bu4f/QbuH/0G7 - h/9Bu4f/QbuH/0G7h/9Bu4f/QbuH/0G7iP9Bu4j/QbyI/0G8iP9BvIj/QbyI/0G8iP9BvIn/QbyJ/0G8 - if9BvIn/QbyJ/0G8if9BvIn/QbyK/0G8iv9BvIr/QbyK/0G8iv9BvYr/Qb2K/0G9iv9BvYv/Qb2L/0G9 - i/9BvYv/Qb2L/0G9jP9BvYz/Qb6M/0G9jP9BvYz/Qb2M/0G9jP9BvYz/Qb6N/0G+jf9Bvo3/Qb6N/0G+ - jf9Bvo3/Qb6N/0G+jf9Bvo7/Qb6O/0G+jf9BwJD/Qced/0HKof9ByqH/Qcqi/0HKov9ByqL/Qcqi/0LL - o/9EzKT/Rsyl/0vOqP9Qz6r/WNGu/1/Tsv9n1bb/cNi6/3rbv/+F3sX/juHJ/4/gyP+O2bv/itW1/4bT - sv+B0q//e9Cr/3PNp/9pyaD/X8aZ/1bDlP9Nxpr/SM6o/EbPqpBU0q8KTNCsAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAABBuoUAQbqGC0G5hIpBuYT5QbmD/0G5hP9BuYT/QbmE/0G5hP9BuYT/QbmF/0G5 - hf9BuoX/QbqF/0G6hf9BuoX/QbqF/0G6hv9BuoX/QbqG/0G6hv9Buob/QbqG/0G6hv9Buob/QbuG/0G7 - hv9Buof/QbqH/0G6h/9Bu4f/QbuH/0G7h/9Bu4f/QbuI/0G7iP9Bu4j/QbuI/0G7iP9Bu4j/QbyI/0G8 - iP9BvIj/QbyI/0G8if9BvIn/QbyJ/0G8if9BvIn/QbyJ/0G8iv9BvIr/QbyK/0G8iv9BvIr/QbyK/0G8 - iv9BvYv/Qb2L/0G9i/9BvYv/Qb2L/0G9i/9BvYv/Qb2L/0G9i/9BvYv/Qb2M/0G9jP9BvYz/Qb6M/0HE - mP9ByqL/Qcqi/0HKov9ByqL/Qcqi/0HLo/9By6P/Qcuj/0PMpP9GzKX/Sc2n/0/Pqv9W0a3/XdOx/2XV - tf9t2Ln/d9q+/4Ddw/+F3sT/hNe5/4LSr/9/0Kz/e8+q/3bNp/9yzKT/bcqh/2bInf9exZj/VMid/03P - qv5K0KyqU9KwGDrMpAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBuYQAQbmFD0G4 - g49BuYL4QbiC/0G5g/9BuIP/QbiD/0G4g/9BuYP/QbmD/0G5g/9BuYT/QbmE/0G5hP9BuYT/QbmE/0G5 - hP9BuYT/QbmE/0G5hf9BuYX/QbqF/0G6hf9BuoX/QbmF/0G6hf9BuoX/QbqF/0G6hv9BuoX/QbqG/0G6 - hv9Buob/QbqG/0G6hv9Buob/QbqG/0G7hv9Bu4b/QbuG/0G7h/9Bu4f/QbuH/0G7h/9Bu4j/QbuI/0G7 - iP9Bu4j/QbuI/0G7iP9Bu4j/QbuI/0G7iP9Bu4j/QbyI/0G8iP9BvIn/QbyJ/0G8if9BvIn/QbyJ/0G8 - if9BvIn/QbyJ/0G8iv9BvIr/QbyK/0G8iv9BwZL/Qcmg/0HKov9ByqL/Qcuj/0HLo/9By6P/Qcuj/0HL - o/9By6P/Q8uk/0XMpf9Izaf/Tc6q/1PRrf9a07D/YdW0/2nXuP9y2bz/edvA/3vVtv95zqj/eM2m/3TM - pP9xyqL/bcmg/2nHnf9lxpv/X8SY/1nJoP9S0a3+UNGusmbXuCP///8B////AP///wAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBuYMAQbqED0G4goZBuIHzQbiB/0G4gf9BuIH/QbiB/0G4 - gf9BuIL/QbiC/0G4gv9BuIL/QbiC/0G4gv9BuIL/QbiD/0G5g/9BuYP/QbmD/0G4g/9BuIT/QbiE/0G4 - hP9BuYT/QbmE/0G5hP9BuYT/QbmE/0G5hP9BuYT/QbmE/0G5hP9BuYT/QbqE/0G6hP9BuoT/QbmE/0G5 - hf9BuYX/QbmF/0G6hf9Buob/QbqG/0G6hv9BuoX/QbqG/0G6hv9Buob/QbqG/0G6hv9Buof/QbqG/0G7 - h/9Bu4f/QbuG/0G6h/9Buof/QbqH/0G7h/9Bu4f/QbuI/0G7iP9Bu4j/QbuI/0G7iP9Bu4j/Qb6O/0HI - nv9By6P/Qcuj/0HLo/9By6P/Qcuj/0HLo/9By6P/Qcuk/0HLpP9Cy6T/RMyl/0bNp/9Lzqn/UNCs/1bS - r/9d1LP/Zda2/2zXuf9w0rD/cMqh/2/Jn/9uyJ7/bMed/2nGm/9lxZn/YsOW/17El/9Yy6T/U9Kv/FTT - sax0278m////A////wL///8A////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AABBuIMAQbiECkG4gW5Bt4DnQbeA/0G3gP9Bt4D/QbeA/0G3gP9Bt4D/QbeA/0G3gP9Bt4H/QbeB/0G3 - gf9Bt4H/QbeB/0G3gf9Bt4H/QbiB/0G4gv9BuIL/QbiB/0G4gv9BuIL/QbiC/0G4gv9BuIL/QbiC/0G4 - g/9BuYP/QbmD/0G5g/9BuYP/QbmD/0G5g/9BuYP/QbmD/0G5g/9BuYP/QbmD/0G5g/9BuYT/QbmD/0G5 - hP9BuYT/QbmE/0G5hP9BuYT/QbmF/0G5hf9BuYX/QbmF/0G5hP9BuYX/QbmF/0G5hf9BuoX/QbqF/0G6 - hv9BuoX/QbqG/0G6hv9BuoX/QbqF/0G9iv9Bx5z/Qcuj/0HLo/9By6P/Qcuj/0HLo/9By6P/Qcuk/0HL - pP9By6T/Qcyk/0HMpf9Dzab/Rc2m/0jOqP9Mz6v/UtGu/1jTsf9g07L/Zs2n/2jFmf9nxJf/ZsSX/2XE - l/9kw5X/YcKT/17Bk/9axZn/Vs6o/1LSsPRW1LKUhd/HH////wT///8D////Af///wD///8AAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBuYIAQbuGA0G3gEpBtn/LQbZ+/kG1 - fv9Btn7/QbZ+/0G2f/9Btn7/QbZ+/0G2f/9Btn//QbZ//0G2f/9Btn//Qbd//0G3f/9Bt3//Qbd//0G3 - gP9Bt4D/QbeA/0G3gP9Bt4D/QbeA/0G3gP9Bt4D/QbeB/0G3gf9Bt4H/QbeB/0G3gf9Bt4H/QbeB/0G3 - gf9Bt4H/QbeC/0G3gv9Bt4L/QbeC/0G3gv9BuIL/QbiC/0G4gv9BuIL/QbiC/0G4gv9BuIP/QbiD/0G4 - g/9BuIL/QbiC/0G4g/9BuIP/QbmD/0G5g/9BuYP/QbmE/0G5hP9BuYT/QbiD/0G4g/9BvIj/Qcab/0HL - o/9By6P/Qcuj/0HLo/9By6T/Qcuk/0HLpP9BzKT/Qcyk/0HMpf9BzKX/Qcyl/0LMpf9Dzab/Rs2o/0nP - qv9O0Kz/VM6o/1rGmv9ewJD/X8CQ/1/AkP9ewJD/XsCP/1zAj/9awpP/V8qg/1PRrf9S0rDdW9W0bJ3m - 0hP///8F////A////wH///8A////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAABBuYMAQdS2AEG3gCNBtX6UQbV970G1ff9BtX3/QbV9/0G1ff9BtX3/QbV9/0G1 - ff9BtX3/QbV9/0G1ff9Btn3/QbZ+/0G1fv9BtX7/QbZ+/0G2fv9Btn7/QbZ+/0G2fv9Btn7/QbZ+/0G2 - fv9Btn7/QbZ//0G2f/9Btn//QbZ//0G2f/9Btn//QbZ//0G2f/9Btn//QbZ//0G2gP9BtoD/QbeA/0G3 - gP9Bt4D/QbeA/0G3gP9Bt4D/QbeB/0G3gf9Bt4H/QbeB/0G3gf9Bt4H/QbeB/0G3gf9Bt4H/QbeB/0G3 - gf9Bt4H/QbeB/0G3gf9Bt4H/QbuI/0HGm/9By6P/Qcuj/0HLpP9By6T/Qcuk/0HMpP9BzKT/Qcyl/0HM - pf9BzKX/Qcyl/0HMpf9BzKb/Qcym/0LNp/9Ezqj/Rsyl/0vFmP9QvYr/VLuG/1W8h/9WvIj/V7yJ/1e9 - if9Vv47/VMeb/1LPqf9Q0q/zU9Oxq2nYuzzu+vcJ////Bf///wT///8C////AP///wD///8AAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQbiBAEG5 - gglBtn5NQbV8ukG0fPdBs3v/QbR7/0G0e/9BtHv/QbR7/0G0e/9BtHz/QbR8/0G0fP9BtHz/QbR8/0G1 - fP9BtXz/QbV8/0G1fP9BtHz/QbR8/0G0fP9BtHz/QbR8/0G1fP9BtX3/QbV9/0G1ff9BtX3/QbV9/0G1 - ff9BtX3/QbV9/0G1ff9BtX3/QbZ9/0G2ff9Btn7/QbV+/0G1fv9BtX7/QbV+/0G1fv9Btn7/QbZ+/0G2 - fv9Btn7/QbZ+/0K2fv9Ctn//QrZ//0K2f/9Ctn//QrZ//0K2f/9Ctn//QbZ//0G8iv9Bx53/Qcuk/0HL - pP9By6T/Qcuk/0HMpP9BzKX/Qcyl/0HMpf9BzKX/Qcyl/0HMpf9BzKb/Qc2m/0HNp/9Bzab/Qcqi/0PD - lf9FuoT/SLV8/0u2ff9Nt3//TreA/0+6hP9Qv43/T8ab/07OqP9N0a73UNKwwFvVtVyb5dIV////Bf// - /wX///8D////Av///wD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQbmHADT//wBBtoASQbR9XkKze71Cs3rzQrN5/0Kz - ef9Cs3n/QrN6/0Kzef9Cs3n/QrN5/0Kzev9Cs3r/QrR6/0K0ev9CtHr/QrN6/0Kzev9Cs3r/QrN6/0Kz - ev9CtHv/QrR7/0K0e/9CtHv/QrR7/0K0e/9Cs3r/QrR7/0K0e/9CtHv/QrR7/0K0e/9CtHv/QrR7/0K0 - e/9CtHv/QrR7/0K0fP9CtHz/QrR8/0K0fP9CtXz/QrV8/0K1e/9CtHz/QrR8/0K0fP9CtXz/QrV8/0K1 - fP9CtXz/QrR8/0K2gP9BwJD/Qcmg/0HLpP9By6T/Qcyk/0HMpP9BzKX/Qcyl/0HMpf9BzKX/Qcyl/0HM - pv9Bzab/Qc2m/0HNpv9By6T/Qcec/0G/jf9Ctn7/QrJ2/0Oydv9FtHr/R7d//0e8iP9Iw5T/Scqh/0nO - qf5K0K3uTNGutlTTsl983cQb+f38BP///wX///8E////A////wH///8A////AP///wAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAEG6hQBAwpQAQbZ/EUG0fE5Cs3qdQrJ43UKyePlCsXf/QrJ3/0Kyd/9Csnf/QrJ3/0Ky - eP9Csnj/QrJ4/0KyeP9Csnj/QrJ4/0KyeP9Cs3j/QrN4/0KzeP9Cs3j/QrN4/0KzeP9Cs3n/QrN4/0Ky - eP9Cs3j/QrN4/0Kzef9Cs3j/QrN5/0Kzef9Cs3n/QrN5/0Kzef9Cs3n/QrN5/0Kzef9Cs3n/QrN5/0Kz - ef9Cs3n/QrN5/0Kzef9Cs3n/QrN5/0Kzef9Cs3n/QrN5/0K0e/9Cuob/QcWZ/0HLo/9BzKT/Qcyk/0HM - pf9BzKX/Qcyl/0HMpf9BzKX/Qcym/0HMpv9Bzab/Qc2m/0HNpv9ByZ//QcKU/0G7h/9Ctn//QrZ//0K5 - g/9BvYr/QsGR/0LGmf9Dy6L/RM2n/UXPq+9G0KzLSdCtilHSsEJ228ES9v36Av///wP///8D////A/// - /wL///8B////AP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQbZ/AEG3 - gQdBtHwjQbN6XUKyeJRCsnjJQrF25kKxdvVCsXb9QrF2/0Kxdf9CsXX/QrF1/0Kxdf9CsXX/QrF1/0Kx - df9CsXX/QrF2/0Kxdv9CsXb/QrF2/0Kxdv9CsXb/QrF2/0Kxdv9CsXb/QrF2/0Kxdv9CsXb/QrF3/0Kx - d/9CsXf/QrF3/0Kxd/9CsXf/QrF3/0Kxd/9CsXf/QrF3/0Kyd/9Csnf/QrJ3/0Kyd/9Csnf/QrJ3/0Kz - ef9CuIP/QcKU/0HKof9BzKX/Qcyl/0HMpf9BzKX/Qcyl/0HMpf9BzKb/Qcym/0HNpv9Bzab/Qc2m/0HN - p/9Bzaf/Qc2n/0HMpf9ByqL/Qcqh/0HLov9BzKT/Qc2m+0HOqPJBz6noQc6q0EHOqqVCz6p3Rc+rQVHS - sBdx28AEAFkAAP///wH///8C////Af///wH///8B////AP///wD///8AAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBuIIAQLmFBEG0exNCs3koQbN7UUKy - eG1CsHV8QrF1jEKxdppCsnehQrJ3pEKyd6RCsnekQrJ3pEKyd6RCsnekQrJ3pEKyd6RCsnekQrJ3pEKy - eKRCsnilQrJ4pUKyeKVCsnelQrJ3pUKyd6VCsnelQrN4pUKzeKVCsnilQrJ4pUKyeKVCsnilQrJ4pUKy - eKVCsnilQrJ4pUKyeKVCsnmlQrJ5pUKyeaRCtHydQb2LmUHInplBzKWZQcylmUHMpZlBzKWZQcylmUHM - pZlBzKaZQcymmUHNpplBzaaZQc2mmUHNp5lBzaeZQc2nmUHNp5lBzaeZQc6omEHOqZRBzqmOQc6phkHO - qXZBzqljQc6pSkHOqStBzqkWQc6pBz7OqABAzqgA////AP///wD///8B////AP///wD///8A////AP// - /wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEDMowBB07ABQMGSBEC8igZAu4oHQLyKB0C8 - igdAvIoHQLyKB0C8igdAvIoHQLyKB0C8iwdAvIsHQLyLB0C8iwdAvIsHQLyLB0C9iwdAvYsHQL2LB0C9 - iwdAvYwHQL2MB0C9jAdAvYwHQL2MB0C9jAdAvYwHQL2MB0C9jAdAvYwHQL2MB0C9jQdAvY0HQL6PB0DS - sAVA6NMDQde2A0HNpwNBzKYDQcylA0HMpQNBzKUDQcynA0HNpwNBzqYDQc6mA0HNpgNBzagDQc2oA0HN - pwNBzacDQc2nA0HPqQNBz6kDQc+pAkHOqABBzqgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - ////////gAAAAAAAAAB/////////8AAAAAAAAAAAB////////8AAAAAAAAAAAAD///////8AAAAAAAAA - AAAAP//////8AAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAH/////+AAAAAAAAAAAAAAAf/////AAAAA - AAAAAAAAAAD/////gAAAAAAAAAAAAAAAf////wAAAAAAAAAAAAAAAD////4AAAAAAAAAAAAAAAAf///8 - AAAAAAAAAAAAAAAAD///+AAAAAAAAAAAAAAAAAf///AAAAAAAAAAAAAAAAAH///wAAAAAAAAAAAAAAAA - A///4AAAAAAAAAAAAAAAAAH//8AAAAAAAAAAAAAAAAAB///AAAAAAAAAAAAAAAAAAP//gAAAAAAAAAAA - AAAAAAD//4AAAAAAAAAAAAAAAAAAf/8AAAAAAAAAAAAAAAAAAH//AAAAAAAAAAAAAAAAAAA//wAAAAAA - AAAAAAAAAAAAP/4AAAAP/////////AAAAD/+AAAAP/////////8AAAAf/gAAAP//////////gAAAH/4A - AAH//////////8AAAB/+AAAB///////////gAAAf/AAAA///////////8AAAH/wAAAP///////////AA - AB/8AAAH///////////wAAAP/AAAB///////////+AAAD/wAAAf///////////gAAA/8AAAH/////Af/ - ///4AAAP/AAAB/////AB////+AAAD/wAAAf////AAH////gAAA/8AAAH////gAA////4AAAP/AAAB/// - /wAAH///+AAAD/wAAAf///8AAAf///gAAB/8AAAH///+AAAD///4AAAf/AAAB////AAAAf//+AAAH/wA - AAf///gAAAB///wAAD/8AAAH///4AAAAP//8AAA//AAAB///8AAAAB///gAAf/wAAAf//+AAAAAH//8A - AP/8AAAH///AAAAAA///gAH//AAAB///gAAAAAD//8AD//wAAAf//4AAAAAAf//wD//8AAAH//8AAAAA - AD///////AAAB//+AAAAAAAP//////wAAAf//AAAAAAAB//////8AAAH//wAAAAAAAP//////AAAB//4 - AAAAAAAA//////wAAAf/8AAAAAAAAH/////8AAAH/+AAAAAAAAA//////AAAB//AAAAAAAAAD/////wA - AAf/wAAAAAAAAAf////8AAAH/4AAAAAAAAAB/////AAAB/8AAAAAAAAAAP////wAAAf/AAAAAAAAAAB/ - ///8AAAH/gAAAAAAAAAAH////AAAB/4AAAAYAAAAAA////wAAAf+AAAAPAAAAAAH///8AAAH/gAAAH8A - AAAAAf///AAAB/4AAAB/gAAAAAD///wAAAf+AAAA/8AAAAAAf//8AAAH/gAAAf/wAAAAAD///AAAB/4A - AAP/+AAAAAAf//wAAAf+AAAD//wAAAAAD//8AAAH/wAAB///AAAAAAf//AAAB/8AAA///4AAAAAD//wA - AAf/gAAf///AAAAAA//8AAAH/8AAP///8AAAAAH//AAAB//gAH////gAAAAA//wAAAf/8AD////8AAAA - AP/8AAAH//wD/////wAAAAB//AAAB/////////+AAAAAf/wAAAf/////////4AAAAD/8AAAH//////// - //AAAAA//AAAB//////////4AAAAP/wAAAf//////////gAAAD/8AAAH//////////8AAAAf/AAAB/// - ////////gAAAH/wAAAf//////////8AAAB/8AAAH///////////gAAAf/AAAB///////////4AAAH/wA - AAP//////////+AAAB/8AAAD///////////gAAAf/AAAAf//////////4AAAH/4AAAH//////////+AA - AB/+AAAA///////////AAAAf/gAAAH//////////gAAAH/4AAAAP/////////wAAAB//AAAAAAAAAAAA - AAAAAAAf/wAAAAAAAAAAAAAAAAAAH/8AAAAAAAAAAAAAAAAAAD//gAAAAAAAAAAAAAAAAAA//4AAAAAA - AAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAH//wAAAAAAAAAAAAAAAAAB//+AAAAAAAAAAAAAAAAAA///g - AAAAAAAAAAAAAAAAAP//8AAAAAAAAAAAAAAAAAH///gAAAAAAAAAAAAAAAAB///4AAAAAAAAAAAAAAAA - A////AAAAAAAAAAAAAAAAAf///4AAAAAAAAAAAAAAAAH////AAAAAAAAAAAAAAAAB////4AAAAAAAAAA - AAAAAAf////AAAAAAAAAAAAAAAAP////8AAAAAAAAAAAAAAAH/////gAAAAAAAAAAAAAAD/////+AAAA - AAAAAAAAAAB//////4AAAAAAAAAAAAAA///////gAAAAAAAAAAAAg////////AAAAAAAAAAAD3////// - ///wAAAAAAAAD/////////////////////////////////////////////////////////////////// - /////////////////////////////////////////////4lQTkcNChoKAAAADUlIRFIAAAEAAAABAAgG - AAAAXHKoZgAASuhJREFUeNrtfXmcJEWV/zcy6+hz7uEWOfyJqHggKmuBTjeKri66pS63ou6uChYq4goo - ngNy6O66S6uIIqyKrqI04sEl0wqUyuEqKiKKgCggzD3T3dNdVRnv90dekXfkUZXV3fmdT01XZUa+eBEZ - 78V7Ly5GRChQoMDShJI3AwUKFMgPhQIoUGAJo1AABQosYRQKoECBJYxCARQosIRRKIACBZYwCgVQoMAS - RqEAChRYwigUQIECSxiFAihQYAmjUAAFCixhlJI+yBjLm/ee4Lwbx1ZwYk8h0G4gVAioMmBZWrosya1E - D6WHmzZj0AbKmF0+gOmBClpJ+GCSD0nT8ybcBWAewJzw2XH8oVOzXayqvoHsGh+WdDHQYlEAH/r+uFJR - cSgRvVQjvIBz7MeJ7aFxrOHAMAGqo9xd5CWMNsVIzAIfyp7HgQpht2Fg+SDAlOB00mVmkunCaIYnngbw - OIAnmP73EQC/A3A/gPuOO3Rqi0weRORlnbG+WVlXKIAAnHfj2HCH440axys6nB2mcRxAhLJcob2XZKov - 65rKXGgyYLCsAKtHCKuHAIU5afaRVSBD70kAvwDQBPAzAHccd+jUjJ/Aux71bQl5KYVCAQj4+PVjB3DC - qR2Oo9saOxiQFPjQCgj9mQjim0jcg4r0krzahAUxHyspwNoRwqohQwAT1lN/KAMGABqAXzGm/FBh6g+O - 2P+CX+y+7PlRNUtBv3ulEJa8Alh/w9gajePMNke9o7Gnk/BuM2WdkEhofHvxLJtGBmVMQsJ8pqISdh8F - Rgf8CcYy6SWZYgBmWsC2XcCOOYbpOVj1qqq6ciqrQLVEqKhAuQQMlIChMlApeTNQAKGxWNf/xsBuUJXK - tw57ypm3PGXlGBcSBAq+8J10st1VBEtWAXzihrFXdzSc2dLYkQjq6c0ip+ztRFJ+N2OTT8lXmnJkm9h+ - ZKRK2HMUKKnB9LoVL+hwXRlsm9UVQlhLVxRgsMQwVCWMVhmGq8BASVQGnlAoGGOPMZS+Nlhe89W/f+aV - f4T+Bv2E3v3bStctRbCkFMAHvzeuVEv09raG93U4+3+BPIcWKEZaGSQhQBnQyIr/AL6SvHaFAbuNElYM - RjPbLRehw4Gts8CWWYbpljedAmYlZlDAGIPKgJEBwvIBhuVVoFJmYAGZMai3l9TB/zzq6ZdcP1zZwy3o - jt7ffa0bSmBJKIBzvjeuDJbp1FYH52ic7a3zlQHhODRI4hFJ5RIq/3HL5fNaZellqIccGKkQdl8OlIII - 9ihesKsNbJoBNs8ww4PThV8XbgbGmOM7jDQDZWD5ALBySHcdmEVVlGvl/rI6+N/P3fud39h35VHzALgr - ARdYciiILBXBolcAn7h+7Lg2x0Wc46nBTGaQUQSN2K8s1lhfPBqJixshNP4BcFc6ycxVRthrOTBQllea - 3YoXaFxXAhtnGDQuCr9iKQFbGZjl1Mc6B8oMKwcJKwcBVSUjhSjn7NGyOrz+pQdc/I1lg/tqsIWfQj6Z - KYFFqwDOu3HsOS0Nn9c4XtJTDjKIF4TdZED8IGAPA31Z1jVjwNoRZ4Awa2UgFy9gUABwYtgyy/DktAJO - hvAzBQwMClM90WMmTKBljDBa1Yc/h6pkZ0UEAoGB3TtQXvWhVx18xS3GIxy2IhAVAqC7AxwZYNEpgAtv - Hiu1NHy6peE0pBjGy6PBdyuz0N6Ogm/1SwWsGARWD8fMOrN4gdGvG2OVDAxEDJtmVGyZVQEwKIqqWwNW - Oli/3c2fiFAtcawZJkuxMRCIdHlmTL159fAz33/EAec9CFvoufCBeT0LJbCoFMB5N469pKXha8Sxv81A - cnosAxqhdDNK1w1GkvBIGdALwkgFWDMS7EIE0k8VLzCEX7GFXzf/FTAo6GgqnpxWMNtSdQvAVBJWnECg - ZphuohxVVMKaEY6RKgHEDV3MAaK5kjr0yb976kcuWT1ycAdOa0Azqxu2IkjsDiwKBXD2dePKUIXOa2v4 - Nxa2biELUzjZrLFks3cCHiHJdLHo9nCGUtKsBivAbiPh7yBbq8Dp2zMoYIpi+PwKGFOhQMXOeRUbp1Uw - pjrMfm9O3iA/EaFS4lg7wjFY1i0BAoFIg8LUn68eOvgdRxx4/kPQBd/tEliBw6RKYMErgPNvGtujo+G7 - GuFFoXzI8itdsBh1gKD5n13mMWNE5Rs4PSGLYKSReLAMrB2WU8TplIHX9FeMnt8UfsbMnl8F5yqenFYx - 31GdwUDdwDfqR2gFRCDGQQSQ3utjZIBjzTCHyritCMB3VtTRd7/mmV/9NpzugBkwBAC+JBXAeTeNHdHR - 8G0CdtcrOx8ktgoSpktpTMjnHbOnpah0CYZNPfSYPjKwZiRF1D/kpsP0Z07TXzEFH4oh+AoUVjL+lsGg - YusuFdvn7JEBvSwkCL+hDIxrulzpck0ggDSsGeUYrRAIHEQaODhUVrn0xU89+9zdRw+dg60AzBgAR0JX - YMEqgPU3jr1d47gEQMU33ywySTNbT550l5hPTzq28EY0kTjKJaq1jVT1cfZM68AV+DOH8nRhVu1hP6ZC - YSUosK0AhZWgsDIURcXMvILNs0xYY0HCTHCyhB+WEuDCX/37YFnD2lEOBZp1HWC3H7DqVSc9Z++3b4ZT - CSQOCi5IBXDeDWMXaISzxFdmfUsYDpE1WyNuJXqo35VLN/RRqslLBpYP6IoASDaxK9T0FwJ/1jAfU8Ac - Qq/ayoCVBUWgYq7NsGkW4OQy+y13QP/NTaEnsv8SBycNCtOw2yhHtaRZ1gCAB1YPP/MNRx5w/p9gKwAr - SBjXClhQCuCzt42xLbO4khPeHP0ifXhJmnHWE2oy4CGTMveBMghUvBSRzsDKYX22nSNtqnKZ5r/Z+5uB - P933V02T31QESlmwBkpQlJLxm6GlKdg8A3Bd2q1/APRe3RJ6vRPXBd8OAhIRNOpgxYCGZYOalZbAH19W - fcrrj3r6Jb+GrgSsCUSLVgF89rYxtnUW3+LAG8NL5PtWvXzJ8p9xOtmEshMBM/ODE9J0PNQjRekYYGN6 - PED1ySR+09MfUDy+v+oJ/Im9vdn7M1aCalgDzFAUrQ6weYYL/T6zTX2jpwcAThywFIAdBORcQwdtDJU6 - WD0MEDr6h/jm0eper37FQZeaSsC0AGK5AQtCAUzcNsa2z2JSI7wu2xleMcvSTXpJ0/VBL+6h2eO6KanA - quHwZ+SaoTP4p1hj/qYCUBy+PoPtBpSUsqEAdItAVSrWkOCuDrB1Vu/lzVEBW/j1mAA3A35kCD/ZCkKj - Dog4SmoHa4bbYNDAoYHzzuaR6h6vetXBl/8ahhvQLQWQ66ag22bxdW4KP7M/LOTjSSdeCnhGcX1cZIRm - AjASPgj+KCEfGZ78yuLLVJq6kfgoER/G0tW1++NTJF96YPoKvun58DZEZH+iYff+BHshkKESDILmb10B - kHVftxRg/FWUCoYrFawcrKKsVlBSyygpJZSUMspKBSWlgpJShqqoUI3rqlKCqpagqCoUVUVJKUFVVLQ1 - hienVWjWeCtbPT3/+Peuv++fD7DLKbEgIwFyswA+edPYZznhNJ93FPYzfYEzfrAb5nd0NDvDMicYd++l - VUDQpwyX1Rh17WMmmv6/Ff4TTX9D2PU4gApV0Yf+VCMOwFjJ+F62rimsBAYFBML2XRwtDY7JPmYcgJNm - 9fjmb+vDO9CoA4230eEtKOhgzWgbCjTTinhgtLpP7VUHf2kzYsYB+toCOP+msX/zFX7As4LavaBaBlE9 - S6JeEv6fwHxdH0e6iB6cjE8oEcl8WVTaAGsn0KKJeF9JeAx7iDHdCtAn1si1BV+rQNQKPnuVMaboAUKm - 6JYBs0tuWwmK4R6UobAKFKUMValgxVAFZbWMslq1en9V0eMG+veybgEYsYSSEUzUebWZ7BDDxp0MnCyV - 9bQdc49cffuDH61EVVVSJN4WPCkuuHns9ZxwoZ8B0ZXePoPZNYEkWDDJJL1VqK/bjbqRvSm78WnWU4YN - epz0NfxDFc+tSHpkKDddqMUnhICgoBBMcSfxF1OFO/ZzCtO3OVJYGcsHCNPzerBPIQUEVY8BkAZOKjh1 - wEgBOKCRBliU9NKY39sa8OS0PivSKOVLH9v+s4sBvEe22uKgpwrggpvHDibClUzC8pBtoFmb9Ikfz6LB - h0Baj7H4eUbSS0AzSzAA822gWjJGBVyMhNeNsOkHOQvDDPvGDOrZIinEBKy9zpmlQewJRPY+Z9USQ5vr - Q4Qg/TqnDjgp0HhH3zeCc3DR+lQUKGDgGoy1CfrftgZs2QWsGmLm5KLGt3559E8BfCPruu2ZC3DhzWPD - AK4Fw2ikzSqYwVGmcGIXIaNAn4ceBbMra6pHuSShboxJK4a7E0WvW+6YbPDQ5HHW3MorhBG/y8y647xq - KQbXX51XxXIDmDFcCBhugqA0RAyVGVQoUBUVihH8U41AH/OrYxiCz+zgtF5mhrk2sGPOps1Ju/Sbv3zl - /jGqXgq9jAFcDsLTZQQvkQAlbPAOxFFCZj5+JCIUQVBZLOUiORIRWjcuGlJ1GJSOIZO6tpRJiOCGKZcO - B9rclU6anrt0RjoSSssU46tbxdsKgUGxCufOWmH6TsMw652psIYHjSnCzAhO6JOE9MVC7oC6mfP0nO76 - GFim8fZXvv6LsUxlticuwAU/GjuZCMfJOMyyZmbXXQTZvGVN/wwYibU4KWhv2gR142lxKeIqllUhm971 - e66j7yHgYSOEp6BbzHHBz0UwdwRiulAbOwUprhoRV0sOlIB2x3hXZPv2IHtrQNPc158xFAPsj72vEMO2 - WX33JMP1OQLAqQA+G6/Wg9F1C+DCm8f2BWFCvBbYW7melempQumRPL0o68KvV5M11WXH0CPpxakbiS5e - xsKJ445l8u4i6po40NG8+flaBfa4OoJueakIlQPFshDsXtoMCvo/zZg4ZMmNbcHM3+aqX81oE8a2YYyM - 8jGr4TLjQwC27nL4YBd+/e6xPZERuu8CMFzGgOVpzNYohL7ULIYUE5r0gelS0nPUYUJlkllZ/D4hLkKk - cgkgLqab91EAgW2BoA8jOJQBCWmZkBAQRYIgnPlB5pJhQ5QpeGJepSTwTfb0X33dgLlXgJEfI5Ah6GBc - qCdTEehuz86WVa4RAJ9GRuiqArjo5rGTGPDKNMGsuD2mFD0Xn9IN3sc3txuL5Bi1mM71UCL+BBqRlozx - CQtuKkKdiUG4xHXtyjwq2Bf0vsQPJzsWIF3XQOALso1vsdJdZwAwZgzrcXCuGZN9zA93TDpQFZ2qLvjm - pB5x/08zPdfbEgfcEQV3mWdbgMYtxXXiVXePhW6UI4uuxQA+fcvYaIfwH646DUSkW+mzLY2slcAkbyah - x+I8mJRH2XSSvnloMnGVaxZ17coscHchWXrGhQ7Xj/qSng9g9LkKkUuwyTedRxUT6cJsFsqoHH0dgbGm - QKiwkgJ0uLEaEJqx5NfePpwZCoEZvT6IOzoXstLZ/O2ch3i4ykUAxiSrMRBdswA44WMM2C1Jb+ULHxMx - ax82US8OuYdkTHqSeFCmvO5ypR1STGwxuT8JYjOedMbzXPPO/5d7d+RMx+GaNij+ZYYHoUGjFji1wXkb - Gm9B487fHW0eHW0eGrXBqQOFtY15AMZyX2YqEGNKMOPQ/+nX9QKalSPEDcz3Dn2S0HzHKsq6q+4eW4eU - 6IoF8Klbxg4kwrtkeqvESwpSRrZD0zLJdDGIy/RULOx3CBN+t1z7VejpIgoi1TuzOL2uN11Qjy5Dz52u - rQEVFRF1TZ4E5hUOvQc0V/HBHBJk+hRdzjQoJOzPRRoUVgIIUJhixAWYPsMPxvoCjRnug7EtGGk6D2Sv - C4AQ+TdjCdb+AcTBXHaI/QL1w0/LqrWw6iMAfixZZb7oigVAwHpiqEr1zhA0t6QTG9pThaVzpRcbU1BP - FZou7CMxMSiKpiNdTHq+Prb4XAZWQZy6CWssSQK1BP1kHx7xkBl3d98y/XZd+M10epBOv8DBecfoxTuG - BWBaAvoiHk5taIYFoH9vGdbAHDpaCwxtaNQGGUqAEddNf0PIYf3WwIisCWb2sKBeArFNca5bAUZxx752 - 99jzkQKZWwCfumXsYAKOle3lPG8rKCHJJUviw3bdJ5boMmNZLpJdcOK6TkIvad2koGcG+E3LJrSuSU9o - +9YMBA5m2AD6ZdMg14zhO9WYqGPEDRRNXzkIxRED8CwpNrNnDNxcD8A7loKxXAHGrcUKJDgEAPQJQ8we - rRBjAbuMadFGh/ceAG+RrHIPumEBrGeAGnRTehjOHStI01tFpQugFxovkPTHA4e5AupFpm5Cx7xNSPKX - ebwgjrXmZFcqXuB+hgujccGxGXsQzjS/7XSmUOofbvTs+iIeY7kuGT0516BpRq9vWALc8PnNJb1ifICo - DU4tELVB6AAwAxdkTAzSPwQzQKgrG31oECDmEgLzDwGtjlXGY79219gyiWbji0wtgE/dMrY/Af8oNiYZ - RCaLGS8I68VFHzZWrxtEM4UPK/NQHB6DHorT2aeOFwTUtZWWhdML5dFd10bsjnyeIVc6q3AKExQBB4c5 - 3EcADFPd6L8Y2dN/7XMAGBSh99f9fcXiz1pTQIquULghzFbP3zECgZq1T6Ap/NZ0YYd6EsomFHKuo1sB - AAYB/BOAy5EAWbsA74PR+7vNsVTKwOdiJsolC7M1g2BkWOtPYKln7iJkpXjjVoescuHkv3eg72OiecBs - q4BTG2SeC2DF3DQwqIIisB0IfcUgByNhvoBPRXEApBkmPu/ow4FkB/yIa9ZkIXGOgBkL8JbAuEJAS9MD - ggDejIQKILMdgS6+ZWwZgMcADIc/FyMPaV4yoJeDDxtJL4t4geSDXVcGKesmlJyij7uH07P3BXTsCmSd - CGSv+tM3/dBDcuZaAGshECCsEmQCZcWuG6Hbnuvoboq4M5A5PMipA87b9lAhGbsJwTxZWDx4xAtVAYbt - PRIOeNMLpx6yXpmkXGdpAZxMhvCHBtxiNCZZUz2u2epLU8gszTCX383EwciACohl0vvRC6EZZYE5SMj2 - ukGJYtQ1wtKJowiBdW0c1k0kpNEFTCFjQJC4FRXj4GBMMfb/Z7pSANcVCOmOg37LDP6Zw4hm7224FcTQ - EUcczI0/DTfAYpKMKYHWu6LIutEVizUk+DoAn5GsQgtZKoB/Ed9HGONWOkllkDU9kWZW8YKuKpcMXISu - KJcuxQuS1LUlCKF1bSsBfWqvbnZzphjLdwGFG0E4YmCKvXWoAoJmxQuMI8INwWcBHOvbfwNciFTqpr8G - CBaBOQBpHifmPm7MUYeurNqaFQt4NRIogExcgIt/NPYcAu6Jens9NemzptcHLoInbRZ1nTW9nOpaYSFx - AA895xFhsEx8Zpv3UOxzBAwXAVAEs990B8Qgoji+oQtzWyO0rIO/NWvSETemB5umv7WVOPQ9A+wQYHg9 - MVhuQAvAqje9cGoG6LELQMAJltuT1MwU02Vh0vvQi6IZw6SfZsYclH4PHmbtIkTRzLyuJfPlMAL83nRl - EKzTBokBW3e2ZwBGimPBjy68xj5/TF/5BwxU1CFFUVhZYSiXVcPsh6UsxN26GcTcuVUA6wQhcWWgKPyw - hR9E9nqDqPdnjIAY6yIqAI4CcB1iICsX4A2+LyulmZlzvIAD+D8G3ALgLgD3A/jL+8amtmdUZwVywtHn - H3ZIu9V+0/xs+9h2q/NUGG4BY+ZJwfrOwApj1iYgjDEoUDqlsjo/MFCeGRxQd60YrbTWrqqoe64pr16z - Ul0u5sEMRcEZQJw7zXoSTX5u9PhkxSeYT88f1lw1zbJ+jkRMBZDaBbjoR2OHEPDr0LSSJekTF+FRAJ9T - GL5yxrqpvyaqnAILBq88/4Wvm9kxe9H8fOcg06+37AJTIRjf9T+66a+Y7gPpSkItsfnRkYEn99mrOn/w - fgN7rBhVRsAYNE5od7gg/nZAEKLf79hfgGLJCYN+tDqAW9/8oqmXAfIuQGoFcOEtY2eDcIHUM5EXpG65 - +JBMF53kSQac2+H4ylkvn5qPTl5gsYCI2NHrD/vIjq0zHwShou/S41AFhsnPHMoA5h3jtyjDg0OlzU/d - Z2jLcw8a3HtgUB0yMgJcgg/oJw2Lv3WqjiwCYd6qlgCFYQbA8je/aErrXQyA8PfySV2M90+84HIGvP/M - 8altqeujwIIDY4yI6BPHXPySWzc9se064hjR/Wt9tx5mRNvIGD0A55ZC0CcReWnOzGqrf3vf3Op7f098 - 1ZqBR17w7GVDe+9WXqPfJSNsSFYDZrKdYUA6YxRkGMAzANwrXfY0FsAnbxobVBi2AyiHMRdJS6KAccjH - sApmAfzz+8en/jcZ5wUWE4iIvfrCww/funH7Bs4xADjbHGPMHEjUf+taQUxgmd5uueKcsGxF5dGXvGBF - 5Sm7V9YaieSi/SZ5d1IxeMyMpdHA8ae8aOqbPTkaTGF4MUzhN5mTXu0D/8dCaMiSlzwwcjOA8UL4C5hg - jNH159zxs9FVI2eYi4itxVzQTXW909ZNdo00aODgzFhKZEzr5cL0Xm4eDc4I27fP7339LX9be82PNj60 - Y6azy0/4WchHTBCysOoAxEAqBUAMRwQKZEplEEUjjTJgwA4GHPX+8ak70pS/wOLEzefefWl1qHKbcZyP - EbU3t/cSVxLq4me2LTKj/goDmUuPjcbHiKwhwCefmNn/m9c9hl/dv/Nhd97S7RpeWTFiEPvHKWu65cCE - F9lfQxhPoAz8ChilDCJpGnMzGHDM+8en7klV9gKLGoMj1ffrsTohQGcuz4WtEEwBJ8M6sJcwG7v9KqYF - YadlADjng3f8Yst+392w6WGtTZTFiVLG5ii9swAAHOJ3UUoZxECgMoiTrwmGD585PnVrynIXWOS46YO/ - uLMyVLmbiVF+awchY7ow47C29ba299a39jAVgmONgrj1MXThfeJvs/t944d/2zg7r81FCTgQrgiM7PaK - U87ECuD8m8dGCdgvKl23XISE8YJbVYaLk5a5wNLCwFDlK6azzcxJQeb8W6NxkeVfkjC+D4/k2isQjeeF - vdBnZ9q7ffOHT+zaNt2ZjW36i/f0iyNxyphYATDgmVEMyTLei3gBgDaAxvvGppINexRYciiXS19hDB0m - 9rPW7ECXQAPW3PzAHaasZMypEBSGVktbec1NT7Z2GEpAyqWFjwwAsXYHSu4CEA6MZEiW8SREoirC+/zX - P3DU1G8Sl7fAksP1Z925o1It/w6CQNvGu33BYx0IsBSC8FiQddBu8RXX3rJppt2hqL1OPbDSEpZLJLeQ - XAGw8GBDYi2WhEgQPWHiFRg+mbisBZYsylX1Xk8v7xiGE60DyFkHCLYO5nZ11l73402PuPmQVQYcwBV3 - jElP8EusAAjYL3VvH5A2FRF/erd+YHzqD0nLWmDpQlGV+2FM/jGF27WAUFAIDFLWgfHXYVUIj27eNL/f - L343/WAQT1Hi8NYXT3UgiTSjAKtkGco0XTJl8PUU5SywlEF4wpZSveHpPbigDJJaBxCeg9M6+OVvt++9 - Y0abjWbPKQpkHTMkhzQKYE0YQ32mDG5IUc4CSxmMDVoy7ojuCcqgC9YBgapTd257PK6ccMJMnOKlCQKu - jE6S0vQPSBczXvCns14+9QgKFEgA4nxfU4odbrv7sANLITAp6wAS1sHGjXMHPLmlvcWaSwApWWnHKV+a - GMByWY6ytgqAWFbB75KWsUCBToc/356H753I47UOABnrINhVsBUCGNgdv965BTZJSCiDx+OUL91aAJGB - nJRBpFUA/DFNGQssXRx9wWHDnVbnMOfYv4EQZRDLOvC4Ck5qGzfu2m9unloOxgKUgYHH4pQxjQKwTiqX - narrRi+UARE2pyhjgaUMonfCfc6FSxl4YgMZWwcAK/3mTzMPy1i8xv2/xClimg1BKn4XRSZlT6gRn4tI - FjsdgOkUZSywRFGfqFUBvHN42QC4xtHpcGhtDe1WB+35Djpt7hB2ALDW94sRfvOUHxNM2PFPWKIqBgLd - h4E8/OjcwGHPHDHuCaTcTOtK4NE45UysAAixhFBaGcjqjBi6JXIopUABH3wYwNMAQFEVVFQFqJYwiCoA - fYOP1q425ne1ML+rbewWzBzKAADIvTuNqBCYa/tPc3cg838j4fTO9p4dTigpTlp+nSEDfhunkIkVAIPj - EBb53XoMzi0FIvkg83zxz9xHK8YaFy1QoD5RexWAc8LSKArDwHAFA8MVECfsmpnH7M55aB1jY8AMrQOA - lR/b1Hp8392qe/rx4nIN/i9OWRPHABS32+MX0PD5+AU93AsoQo+mdmalf8j4uHhk8CrZAgXCUJ+ovRjA - 1YghG0xhGBodwJo9l2P56mGoJZ9HowKJ7tiBK5C4cVNnu0QcbPs7alN/ilPe5DGAEBs8kRmfRbzARaOQ - /AJxUJ+ojQG4FjGX1FpgwMBwBdWhMmZ2zGF2xxwAeLem83MVjOsQrovte/OOtnk6eVgc7J64LKeKAVhM - SCiDnscLCukvIIn6RI1BP9r+Aoh7XCYEYwwjywdRHShj++YZcI077jutewlXAcDcHNdlVXjW5yDU2+Ly - mnZHIOkhwMSTfDKeX1CggIj6RG0NgB8A+DQyEH4R5WoJq3YfRamiOl1Yp9XvhN8wI4BWm7yjbt4hwOvj - 8phaAQTwE7lBR6Jx/ZjzCwoUCEN9orYO+qlW0mdbxIWiKli5dhSlcsm7DBi+YQAb5hRkfbtxNWLS23aV - 4edx+cvyeHAXP0I5cooXFEqggB/qEzUVwEcBfAgZd4J+YArDirUj2PbkTmgdzTGi5RwG9IQBLGicSq6k - JgkTG/71JVOxR7xSxwBcTISmzTpeEEWvQAE36hO1faAvDz+yl/kqCsOy1cPYtnGnfUIY3MOATmtXVAaq - ynzX+AvN/7uJ+EpcIuvEBJa5SZ+aXtH1F/BBfaJ2DIBfocfCb6JUVjG8bFBwA7xj3OItcay7XFLnQg66 - mSPCNYl4yqRkZjiSUeYmfeKZgbLmRIFFD2Na70UA3pM3L4MjVczvaulTiQHoXb1p7ltzgeG2DqoV3QII - OAvzuncdObUzCT/ZTgV2jEtQ5iZ9auVSYMmhPlF7GoBvAjg0b15MDC0bxI7N5r4dRs9vjwNCnBBsNuaR - YdXh37uOJPxSUl4yWQ7sH5XM0EUIcRNkeCywNFGfqJ0E4JfoI+EHgEq1hHJFDTjEVhgGZABTADBg1fJy - JYDcH1WGHyXlJbNRgPBJOSldBPFCQqugwNJBfaI2DOASAG/Nm5cgDAxXMb1t1vb1zbX9jh7Ltg7WrCit - Clj8c8k7asnPuujKMGDwVF1/F8E3rQ8947HAhwplUKA+UTsEwLcAPCNvXsJQGShZx40DsJQAM21ycvj7 - c6uWlVbDvmU+skXjuDwNH2m2BEu5W4/tIsjS86TLYLJRgcWD+kTtVAB3oc+FH9CnC5erJZiHgugX3Wl0 - hTA0VH48oEP7z9NfNpVquXu6xUAsYWDOc5MJXykZvQXa/dcnavtDP9N9T+jHOlUAbAGwCcAfADw42Wjy - 5DksftQnaisBfBHAG/LmJQ7K1RLa8/rwPnM1WlEO1q4qzRI81u8mTvivtDykcwFCVt+lVgZdiBf0A4zG - +loAdQA1BGyvLmC2PlG7DfrW5t+cbDRjbfq42FGfqP0d9Ik9++XNS1yUKyX75GFhQj/gVAgH7DOwu57G - vAeAcP7pL0029CciuxhAgDJIvMVX1vGCnFGfqB0E4EwAJ0PYT1ECQwBeaXw+XZ+o/RDAJycbzdjzvhcT - jBV8ZwFYjy5Oae8m1JJi+/5+W4IRoKjK1jXLS+5O4o+qgs9lwUN3pgKHL1lMQC/d/II8UZ+orQLwCQDv - BKCmJKcCOAbAMfWJ2vcBnD7ZaD6cdxl7jfpEbTcAXwPwirx5SQtFVTzLhRnZMYHd11QeA5xncBBwxqlH - TLVk8wjNPwsiEauUICi0TIOH/R7oq0/UjgbwGwDvQnrhd+MfANxrBL6WDOoTtVdAX8G34IUfAFRV8awQ - FKcAH7T/wB5iO2fA5OkvnfpBVvlnbjol2a2nl/GCXqE+UTsLwIVdzmYIwOcMP/hfJhvNTHqFfkR9olaC - bkmdjf54xZmAKa4NQYQJgJWy8tjqZaW9hOTbSe9MMkNyF8C1WslzXyxkxM284gXdgOGbTgA4rYfZvgnA - 7vWJWn2y0Vx0uyDXJ2r7AvgGgJfkzUvWYObKH2sTDeM6gAP3GdgBwl7mBcbw3tOPnMo0CJxuKjDZn9B0 - kHARKHsXARK0uoBPo7fCb+JoANcYa90XDeoTtTr0ve4WnfADsHf+ce2MqyjK9NP2HTzIMv0J3zn9yKkr - s84/u6nAzsUJwenEwgfd7ML8gl6gPlF7J/S95fLCK6FbHws+LlCfqA1AV6aZmrx9CcY8m4DuvrbycEnF - s42fjxDw9m5k3ZXdUGSsAkDOKvD5GUkvj6BgfaL2AiD9xIwM8M76RO2f82YiDeoTtWcA+DmWgvCbcO4N - 1j7kwMEDAYABLQa88d0vm9rSjWy7OxU4YxdBNt846bKAEaD6IgKOS8sBn61P1PpqBZws6hO1UwDcDeC5 - efPSCxCRZz/APXar/GFwQBk02vDp737Z1F3dyj/7XYEDC5pfvKAHOA3A83uTlRSqAL5tzDpcEKhP1Ebq - E7WvArgS7gM5FzHcrjNTMPfcA4eeZuwT8rn3vGzqsm7mn2JLMP9LUr1zTBchq/kF3UB9ojaIiGOkcsL+ - AL5qjEr0NeoTtedDX7d/ct689Bpc48L6f4Z9dq8+UK2wKoAfqAzv7nb+2awFSLpzj2TgMCSrxEOKGeIk - AHv0LrtYeA2ADwI4P29G/GAopwb0YF+/uE89A3Fnl6UobMuzDxx6JgF3gXBc46Xxd/mNi9QxAPL8CEkX - Ri8nFyED9HvA7RP1idrL82bCDWOK9LUA/htLUPgB/YRhx6y//QY2lVT8ngGvPGNsaiYtfRlkOhXY8aOP - lEG3YExQObx7OWQCBcDXje2w+wL1idoR0Mf2X5s3L3lCPyNA/zc4oD50wN7VDgPG3rtuamuveOjeyUC+ - F7xpI2lmES/oHo7ubXaJsRbA1fWJWq49bX2iptYnaucC+DGAvlFIeUHrcLP3bz//GUOboAv/k73kIZUL - EHXfVxlEpQuiJ2kVQJJeRjiiN9lkgsOh+9q5oD5R2wvATdCX7y6q2YpJQETgXF8FuNuqyq0rh9V/OKPH - wg90c1fgoHQ5uAhdxCHdJZ85Tq9P1I7vdab1idqroB/IMZ53BfQLtA4HwFAuK3fts3vlpDPGei/8QIYu - QF57+sWxDLqAA3LJNR2+VJ+oPbMXGdUnauX6RO1T0E+tXZt3wfsJnbYGVVWu3n1Ndd1Fr7/1ibz4SDcP - II3gIr94QRYwZv+t6E1umWIYwHfqE7WRbmZi7HV4O4D3513gfgNx4gpTPnz9WXcde8Xb8l29mX4qcBa9 - OJBbvCAFuipAXcYzgHTbSYehPlE7FrrJ/6K8C9qHeJIp7OU/+Lc7zsubESDDqcCOH1kpg4xchC6h65M0 - uoxj6xO192RJsD5RG6xP1L4A/SiuZXkXsA9xJ4AXTDaaU3kzYiLzGECmJn1Mer0MA0w2mjsBdFITyhef - qk/UMllnX5+oPQt6A+/KstVFgM8DOHKy0fxr3oyI6M5yYGRs0iN75ZIRHutdVl1BGcC3jE02E6M+UfsX - 6AdyPDsNnUWKWQAnTzaap/Xjlm3ZTAWWTdeH8YKU+GN3yfcEewP4RpKdhOoTtWX1idr/Ql8KHWer86WC - +wG8aLLRvCpvRoKQyShAbkOAkFMuXcSdPc2texiHPkFHGvWJ2mHQV/AdlzfzfYqrAbxwstG8N29GwpB+ - SzBB4BKfARCyfFB2dR9J0ssYP0F/LgVOgnPqE7WfTTaa3wtLZKzgex+AC6C7EAWcaAH4wGSj2Q+7Q0Ui - 26nACdbo9yRe0D1MAdjR1Rx6i6/UJ2qBk5vqE7U1AL4PfUpxIfxePADgJQtF+IGMpgIH3kijDDJ0EboF - I6hzdRez6DVWQJ8kNOC+UZ+orYO+gu/VeTPZp7gKwKGTjeYv8mYkDjLZFTjU4nbdzNqkl6XXRVyC/t8T - IA6eB+BzAN4G6Cv4AHwEwLno0qjRAscMgHdNNpr/kzcjSZD5C5Vdo79Ao/4eTDaa9wDI7KimPsFb6xO1 - txl7CGyArgAK4ffiV9An9ixI4Qe6vSswJJRBVLogev01MegDWPgzA934HPQG/tK8GelTXALg8MlG8/68 - GUmD1JuCJhoC9LuRkJ6MMug2JhvN3yHHtfZdQhXA6ryZ6ENsAfC6yUbz3ZON5nzezKRFOrMuC5M+JT0g - wEXosS+gKOwjjOE3vc21QI9xG4DnTjaa1+XNSFbIzq/LYggw4GbW8YJu4Dun3d5iCjsBbFENCxbQwaGf - TDzWb3P50yL7GEAWJn1IZpkoly7hO6fefi9j7J09zLJA9/EodMH/6GSjudjiPF0+GSgLkz4kszyi/lG4 - 5rTbv8EUtmAmghQIxfegm/y35s1It9DdXYEDbuYZL+gFGGPvZwy3581HgcRoAXgP9GDf5ryZ6Sa6Nrbb - U5O+z5TBd069rWPEA/6WIxsFkuGP0If3/nuy0eyXPqVrSB4DIHTtGHBZerLKJQ9859Tb/8oYOxELf9OQ - pYSvQJ/O+8u8GekVsjkZSFIZ5BkvyAPXnHb7FGPs3Pw4KCCJaQBvmmw0T5lsNKfzZqaXyH4qcE7KoA/k - PaA+6GLGcG3efBQIxP9B7/W/ljcjeaBrJwMB8V2EhTwEGITJRpMYY2/F4tg9aLHhM9CX7y7Zd9Obk4Fy - jhfkje+cdvs2xtg/Qd8frkD+2AzgmMlG84zFMJ03Dbq3K3BQuhzjBXnimnfdfg+Af82bjwL4MYDnTDaa - 38+bkX5Ab3YFDkq3xJTBZKP5dQCfzZuPJQoOfVnzyycbzYW+m3NmSLwhiCm0LGInDlMYIzcAiUnPl6aQ - Wb8qAej76b0Qxak5vcRfAZww2WgWk7NcSD8VOItePAE9QD5e0E8wthF7I3Q/tED38V3o03kL4fdBtlOB - c1IGkS5Cn2Gy0fwLgBOgm6UFuoN5AI3JRvMfJxvNLXkz06/o3lTgLIYAfehlpVzyxmSjeTOAj+fNxyLF - /QBePNloFvGWCHT/ZKAsTPoAmlnRyxHrAVyfNxOLDFdA36fvnrwZWQjIZiow8unFe3QMeNdgLDY5GcDD - efOyCDAN4KTJRvNtk43mTN7MLBRkcjSYxGVvukIZAAAM//SfoPusBZLhbgDPM4ZZC8RA+qnAEYogD5N+ - oSmDyUbzbgDvzpuPBYp/B1CbbDT/lDcjCxHZTQUOkfg8A30LSAlcBmDB7i+fAzYCePVko/n+fjx2e6Eg - k5OBANcEnZDZOqETecR0QsKwyUGy9BYITgXwfADPyZuRPscG6Mt3F+SMvgtuHqsC2JMBI9BlcDsYtp39 - 8qmtveYlMwUgwjH7T0IZyM4SBBa3MphsNHfVJ2pvgO7TLs+bnz6EBn0674WTjeaCmUNxwc1jTyXCMZzT - OCcc2u7QU0CkkCAADMD669dtYcBvmYqfqAq7CUDz7JdPddWGZZTQRj7zu0dtA7BcVtBY4I+QdGH0JBMy - 4K0XvXbDlWkqqdeoT9T+EcBk3nz0GR6BPp33p3kzIoNP3jymEOE4TaNTiehIklRXTPiiKOwRRcWXVYX9 - d1zrQFauMzsZKNYa/R7HCxYaJhvNawFcnDcffYRroEf5F4Twn3/j2DGdDt3XavOvaxodyXkCOSGAa7Rv - p0Ufa7f4X8+/cd36C380NhCZeUykcwFcNre0SS8+1sN4wQLDB6EvGFqXNyM5Yh7AGZON5ufzZkQG5980 - tkbT6MutNj9GxvX1ueWbTuMY4pzO5RwnX3DT2JvPOXrqtqx4zv5koDR7+klYBpH0FtgQYBCMQyhOAPB4 - 3rzkhPsAvHChCP/6G8YO73Tonk6HjiGK365lLANNo/1abT51/g3rzs6K7+5MBU6gDDzpeji/oF8x2Wj+ - DcCxWHo7C38JwGGTjeaCOGvxvBvHXtPR+JSm0V7ue4HtOmEnRwS1rdEF669f9/kLbx5T0/Le/anAPtt4 - 9TpesJBhLGP9QN589Ag7ABw/2Wj+62SjuSC2T1t/49grWx0+yTkGetbJEaBp9M52hy5Ny3/2uwIj2ioI - TRf22NJVBp8B8O28megy7gTw/MlG85t5MyKL9TeMP6/dpmtIY2WQ7s33spPTNPqX9dev+2iaMnRtV+Cs - XQQgQHumiBcsFBiLht4G4A9589IlfArAEZON5oN5MyKL9TeOj3Y0+g5xDFkXidkf9KZda5w+sv6Gda9I - Wo7e7AqMbJVBXFNqMWCy0dwJ4PVYXDsLPwngVZON5gcmG8123szEgabRZzSNDghu17Yy6GocjKBwjf7n - gpvHRpOUI/1qwDQmfdDNqHTBlbG4pN6FyUbzXiyenYVvhr5V1415MxIXn7hh7HBNo7eK18LbtdcqyNJF - 4IQ9W21an6Qs2cQAsjDpQ2oza1NqIWMR7CzcAXAO9J5/QR6e2unQBUTBQ/gyVkFougB6YcqAE522/oZ1 - e8ctS/JdgY2/gTvzwiqnfzr/R7pPb3Fgoe4s/DCAEycbzZ/lzUhSfPz68cNbHb7O/J28XTPhK0GGnkjT - s84GKHNOZyHmsvL0uwJDoiePStdleosNC3Rn4auhR/kXrPADQKfD3+HolJBFu84mXsA5Tv7kzWOVOOXJ - dldgoHsmvQS9xSjsQVhAOwvPAXjHZKN57GSjuS1vZtLgEzeMVwl4Q9D9bOJgKeIFhJWtef4PccrU+5OB - soj6h9xcSopgAewsfC/0GX2X5c1IFmhrVOOE0VTtNSCt90ayeAEHXhOnTMnnARCyO9YrRqV1Y37BAke/ - 7ix8GfS5/PfmzUhWIE5j1ndk0F5l08VzEV4ap0zZTAWWUARiIaNKn3W8YDFD2Fn4obx5MbAdwLGTjeY7 - JhvNXXkzkyUIeG7A9f5RBoQDPvTdl0ovG+6/k4G6ES9Y5DB2Fn4NdOHLEz+Hvm7/6rzrpBsgjv8XmQYp - 22tAuhjxAkVV2TNky9S9qcAZK4Ostexiw2SjeR+AfwSQx574BOBCAEdONpoP510XXcTazLezl0wHyFkF - AMA51soWKJOpwJHpco4XLBVMNpo/BnAUgK09zPYJAK+cbDTPmWw0F/uy5WHxR17KIMoqYGArZAvU05OB - xEqTpRmV2VLt8YMw2WjeAeAFAH7Vg+xuBPAcYzRiKSDQt878LMwU6YhIev5b15YD99pFAApFYGKy0XwI - wOHQRwi6schmJ4C3A/j7yUbzybzL2ytk2a5l6SVJF0cGkk8FNnLJYpvuTLb9Fm7KThlezJhsNOcBfKQ+ - UfsKgE8AOD6D6pgDcCmA8ycbzU15lzEv9LRdJ0gXB6nPBZBRBCLzPTkDQMhsqVsEk43mAwBOrE/UPgR9 - T4GTAOwfk8w9AL4K4H+WsuCD0DcH3WSlDLI7GSjjAoo0EyuXpS79Agy34MMAPlyfqB0E4EgAzwNwIIA9 - AKw0km6EHtj7A4BfALjVmHZcAAhtwHE7Odl2HUUzjTLozslAWWu7LiiXpYzJRvN+APfnzcdCAwVd6MF2 - 9tLKBb2KAcgy1AfKoECBrkLCKvC55UyXpZzEaPzpYwCSBRQL2et4QYECPUOGLgLQfYs3zZZgLe+lHg4B - BtD0QaK90goUEPHhH44rsa3KgMbb03kzEUjjAsz24zHgbno7ts/vk7SMBQoIWAYk7HV7LCcUQxekcgEc - Jk0fmj5EQGueFwqgQGpwjfZ0X5Nt174P+TyYmTJg2CbLThoFYK088zCeMjoqFjJtvKA93zkoRRkLFAAA - aJwOzqJdyz6YqtMk+dmfaRTAlsgy9YGLMDPdLhRAgdQgwqGWUGbQrr0ZpKcnyIr0ZK00awEiM3EEJkIi - H10OHo78/frnvTFFOQsUAICXmV8c7SuDdi37kCy9doekN4tNsyWYdCYexiUKKZG/VHR0YLCEnTta70la - zgIFzv3B+CoK2II963bt+1A8ZaA9/vjcRtks0lgADyc5fjtQGcgX0JkuwiqoDJawbePMQts/v0Afod2h - k4gQut121u06zoOufB+/6vQ7pfdlSKMArIMc4yyBDCxTl1yEoaESZne2K0d//LlL5YjtAhniQ98fZ8Tp - HUDCNfpZuwhAFL1H4pBKowAe8uUtpTKIqpm4yqA6qMc5Nz02/aEUZS2wRME51YnwrKR7T/Q6XkD66UvS - SLMn4H1ZBe1Cy5TSr1IUBdWBErZv3rXsFR977nlJy1tg6eGD3x+vdDT6pOeG0CZjzepDdu06mCeKtQ17 - YgVw6bEbpgE8mHXQzrdMETUT9RKqw2UADI89uO2sYy46THrDxAJLG5pGZxPhoND2lUAZdDNeQITfxClj - 2i3Bfh2X2TziBYPDJTAGzM91Shsf23lXyjIXWAI4+7qxmqbRh93XpZRBVLogelkMAbb5L+OUM60CuCOy - UGGF71G8YHC4bM2i2PT49FPXnfOsa1OWu8AixlnXjT2lo9G3EDFRTsYqCE0X9lgCZUBEjzZ/tvnROGVN - ty04oRmrUOG0uhYvGFlWAcDAmP559MHtrxv/8CGfT1P2AosT53xvfK3WoZuIY6/EJn3AzW7HCwj4+Z2f - +V2s7jStBXAXEdqZ74KacbxgdGXVMY2YMeCvD2x95/iHDvnflOUvsIhw1nfH9m23eZMI+sk6aU36kJtd - iRcQfhq3zKkUwBeO2zAH4HaLCclevNfxgtHRKsB0wdcVgb5b6KMPbj3uJWce/JvXXnzYcLwcCiw2/Nu1 - Y69od+huTj7Hf2Vh0gfdjEoXRM/noU6Hboxb7izOBfihL7N9pAwUVcHAkO3O6YqAAWDY/Nj0s//ywJaN - rzrveW/JoC4KLDCc/b3x4TOvWfdfmkY3APqRWl036QPoISk9AojjkeZPN/0ubvlTKwCSOJo681NTEiiD - 4WVV0QQAYHxlwOxMe/Dh+zZf8ZL3PeOB11xw6MvT1kmB/sdZ141XzrxmXaPV4n8kwrsRIAtdN+kzoseJ - borr/wMAo7hdqvmgIEhv/+b47wEcBMgvgZTdwy8reg/ctxl/vm+LgyjzPExgDFi+ZvBvo8sH/3d0ZfVj - 17z3zrxP3C2QIc68Zt0hRDiFCCdB3w7dQpx9JZnkDen2m5KeptFr/v2NP7GscVm5zmpb8KsBnAs4NVae - W4G5sXLVIP5sCj4zTgxhNmFG9oPbN83tsX3T3HuZyt7zosbTtg4MVx4qV0q/V8vq70sqNnHCrJgHCWwy - Zq8WZwAREWPMq8gdLDKmDQ1Xdhi8C0FdZ3kYc18XVqYbz9lnxNrXrDLb9Bw8wj+99V1xnrQkpGcEZ3CV - /L87XwhjNo/uunGUKYSmzpfLmhPTMCgMbBmB1gDsIMbwLAA1zuHZ2cd6j5JtUnwJoWdRsJB0KemJaYmw - efPm+UTnM2ajAAjfBHBuv+4LCAArVg84nzK9AVN6mZM4AwM4sentrVXTO1qrQHiB1ZCFZ0VmbDvC+O6i - 6cc3Y8DQsgFoqw0PRWDa/q3/x0SFZSVj1m/rL2yhcyoPV1qBJ0fZHH8ZBBYc+bpk1XKpDOkT8iXrh1gv - Ji0GsV7JQc+uYkHYjf84kcWjtYMUILxX8z6BSC9jT9ukcFP2uDpZeqIyIKJrrnzHzxOdAZnJ4aCXHb/h - twDulh2vDEO3hhQVVcHw8rI7DGA0OmGIgDE7jTFvgBlzCGA0cKGHNRo1c1xjFh3mFBxHQ9fTKYqC0RWD - jnLJQjZYFJg2QfApMq3gw8rw6DvMlSRfMV2X2lBex9tHxQs6Gl0pUQxfZHY6MAFflB6vlCl8xqMIALBs - pSlozBZ664rQ45r/M/GmKcDM2yVYD9saQowv2EoE1ncz0ciKQSiq/2uQFkqKpzgCM3N9lW2gsvRkWIjT - hmTrpUfbz8vxGBD1T6oMiOg3P/3ppp/JVIcfsjwe/BsApj3MSlgFvVIGq9YOur0AR89uX4TTDGf2dduk - NmcWei19Bm96MOeHMX2l4uBINbJiZQUyriKQbaCZ0JMtgx8bfdSGMqWXwRAg57giSfTfRGYK4IvHb9gJ - 4EthzGbpIiSp+NW7DUFRmMcNcPTsjAk6wJZ+swcHnArB1ABOReEJegkuALPSDS2rggkRNtmeRfwbVX6Z - Ss16WAoS9CRZ89DNuw11jV6CuuaEbbO7Ol+OUY0eZGkBAMBnAGhShU+p0YH45liprGJkxYCPrw9XTx7c - rYuug3mZBAXithDMDIi56IAF9v5x10NIpZG0DkjiZqYuAsV438i/DcnS60W8gIguv/TNzVTD1JkqgC8e - v+HPBFwdy5/psXm3cq0dcBN7fP233ZOTfclr1kMUcEf80FYCTqPCqTQYUBksQ1WVaIbFvxL1GpkmhiIg - iZuZBLRilsFDrw9dBJGmbFmiMnP9nG+1+H9JVlcgsrYAAOCjALREWr0HL3L17kMevx1wCTpgRf6JecwD - R0ImmPT2fdttcD5iWw/VobKjbDL1JNvyZBtnaqsgpX8feCOBTxxEQ/KWp2762UUAAI3TlyZOvO0vEtUT - iswVwJeO3/AHAF+LW0lwp+uSr7dsxQAqA6q3d3Z043D24LAFnfkqAqf6sDp8cShRcDmYwlAdKPvzLFPJ - MSpVWhkguoFG0otpFYTSS+ATA71pQxHsdp8eYbbd4udLsB+JblgAAOFjIMwlriQEvMiE9ABnpa/eYxgO - gXWP6gm+vH4B9vi+8dst97Ye8cYIzC9kuBulSskR/AuqA/nqziaNmTATegmVgaxlIFsvizFewDldMnHi - bY9LVkMouqIAvnTChocJ+I9MzDExXUbm3dq9Rj0Re2dkHzADft5prMI4vvCN/NwAj8mgXy9XSxbPzi/+ - 5ZJCjF5cilxMqyAqmBWnLJGmcFS+AY8shngBJ3p8errzyeiUcuiOBaDjAgIez9QcQzbKYNmKKgaMbcLE - 4T7HnD5xmNCtCBxy7Zz1xxzWgPN583ep7K322A05ImGcBipV71kFtBBPMCBBL3ZZ0L/KIIoe5/jQF9/a - 3CFZdZHomgK4/IQN0wAavoXPwhzzoxdDuey+z4j+JcDUd5j41n3mUgyuNO7hRb80ANSSmrp+YwlQDN9e - WrlI8hjKfAz/PpS/JRIvIKJbf/bTjVdKsCKNbloAuPyEDdcAuDaw8Fm7CJCnt/s+o1CYAnHM3yGnruCd - OB2Yucx7Z9APcBMUJxYxhUUP/wk8+//wXpZuoHHzjaKX1idOYBlEuggJlMsCiBfMtVr87Wlm/fmhqwrA - wLsQcpR415RBBL1SRcWqPcwhQddiH88YIfNYBUzs9V3xAOciIWf3r0QE/4LKlWX6OI1TOsMMXYTQdAGP - hSoYmXR+9PrIReCcPvbZE2+7X6JKYqHrCuDyEzY8RsC/RqXL3BxD9Ivc86nL9C+iPy9M13V7AIDTC/CO - HvopAnHiEJzRf8ke2V2uOBUiZdJLJJS1NGTnF0j14lHpZKsibtDB77EclQERTf3pgR2fjse9HHphAeDL - J2y4hoDLczPH/OgRMLq8ipGVxnRc93x+4xp8BDxoqrDfrD8AwjRghsD+P4Ey8C1o/Fv+9SSRjaxy6fUy - WsjQS6gMomh0IV6wdb7F3/L9D/5SkyAbGz1RAEZJTgfhHrGSem6Owfsi9zlghWcmny7r3uidc54Q8x0d - ENf6i3GEGPWU2CqQ9t1lecjQh5V1EUJpJowXIIpejArvcbyAaxo/5fMn3RbrxN846JkC+PKJG3YBeD0I - 2/xeZGQloTvKYPmqQQwvq3pm+olDeeSnCOBwGFzzA2DHCcSRBRZDWONKddBjEVaBVD1JJIzT2OMIXc/i - BX3oInBO511y3K3fi8dVPPTOAgDw5RM3PAjgOJgrBoWaycKkD00Xgn2ftsL45pn/6xJk4YfP8B7gdCGI - 3AMDzFeYpM3uhMrA8YMk0qbkIU6Dl7EMpAQ3TRtKwnwYvQyUAef03ccfm/14PC7io6cKAAC+fOKGmwg4 - NbBmYlRSVubY6MoBLF894L/0T5zfbz7gniTgsfBF0981VAiAcx5apigkORvBl3YaZRCzB88yQBZIL4Ey - kFUusghskzE6KCK6a2amc9LV770ruKFkhJ4rAAC44sQNXyTgPJlK71W84KkHrQJjdnV4ovviJB/jkmO4 - L8DXJyMNCYpA06LfazcUgUjX1zoIqCsZPrIcVoxLL8t4QddchBAarnQPtVr8dZe/tTkTL7dkyEUBAMAV - J274MIDPxdHA3XIRCMDAYAl77DsSOPQHCH25OEnIvMF0YRdX/Qm37MAiY+AdLh3si+VbJ0RUA43LR2ZT - kE2rIE09+bz/PF2EiA7qr60WP+rSk7NZ6COD3BSAgQaAK3wryY0szLsIZbDXfstRHS5bPb0DfpqB4AkZ - QOjxPfsJGl87He6kIVEWkf2oREniBZ5HUioCWT6k5UnSRQjlsQ9cBA9/5g9Oj7fb/JWfP+nWh+JRS4dc - FcAVJ24gAP8M4NKgSuqaeefzEFMY9j94NXRPwDk70E7kP7/fukfi1GBxoZBNi2vc/+SWmL6mTKK4ysBj - VmdlFWRYrkzjBchPGQiP/KXdoZd//sRbY5/tlxZ5WwCmEjgNwL8HpYnrIqSJFwyPVrDHvsuFYH+wjy+u - JPRfUOBKbNAiAJ1W8LyOTJbi+qRL0lM5HpMUuFBeu6QMEtdTFm1IOjNfPNhu8Zd9/qTeCz+AbM4GzApv - +fr4GQz4NCQUE5O8KculO90ff7sR09vmHQkYMXsSIAOM42a8zxtH04hThsn4Yj5bUhUMLhuwk0OgC9sF - EdccWPFIx1/meNb+K8xHCLjm0FviGQnCTEh/OnBYNM7REfse89zzngxkzpHwlEFMJz7r4c/5EPO976pD - mbaRQRuKvEl0Z7tDr730pFufkMxCGrJynbsFIOLKEzf8JwH/RMCurMyxpBp9v6evRqWq+gz/2XCfKOQ3 - E9C91bgJTePgGnl4iISkvpaOKSSMFWRlFYgEZd6RDE3Tyuj1/II4LgInmpxv8bFuCH8c9JUCAIArT9xw - DQiHA3gwa3MsDr1SRcGBz1oDteQUYNH/J/urDu+BA3B0W67b7flEx7lZTOZhSvtVbVS8II5F3K0ly3m0 - oYB0nHP62BOP7XrjZW+6bVayGF1DX7kAIt5y1fhKAF8F8Jpum2Nhaae3z+PB320GEdmmrTHFj8R6IKfp - Kf4WXQD7OoExBYOjVagK85q7bjOWBZnAzqnHDjdCKBwTfjjTee856XldAIu6202BEBcBHC6Gm1fA6H18 - rnvoKfZN5pvOds287og3f9mmm1UbMkHAZtLozZ870T7Gu1tYkC6AiCtP2rAVwDEATgdhvpvmWBi9keVV - 7H/wascR2Y7TghxRf9iBQ5dr4LUgdC3Rnu9k15NLmr5RZXbQi2Fp+FZviN0u/S5jRP17Ri9GGzLyvKXd - 0p7XC+GPg761AES85arxZwH4HwAvsBlw8SPLt+RNd7odW+fwyB+2wJzFa/XuBEcvZ9WNYAGQI3AoWgb6 - iMDgcAVqSRHoujYfETKUCfZZPMDmNbCXF4j6B9CEwCdsBRZmATg2WhX/ukZKQoOTDnpe3p3eljMI6Lrk - zSfo9WdsGRive5aIPvLE47P/+Z0zuj+114SsXC8IBQAAb7lqXAXwXgDrAQw6bmatDALozUy38ef7N0Nr - c8ddozM3tIHLBDYJkC3wTExHAFMZhkaEfQnExh6gAOxL3tEBkQeRDz++/FwGx18/BWB8sdJJKgA/IQ5V - YkCoArDLF64AzN+KdMvIQBnor/YWTeNv/8KJtz4onXFGWHQKwMQpV43vz4CLAbzRnzHfr+FliXGzPd/B - n+/fgvldHSsBY44RQZgXHArAr86ERlqplvTtwn0UgJGLj5DbPzy9bYgC8Ah5YMzAlS/gVQAmHVEAJRWA - 3eP7KwCBNY//7qhKFjZEKP5mTroSSKIICPgLEX3wF3dsvCrrPfxksWgVgIlTrhpfB+DTTHQLPEz6fg0v - l8RNzgl/e3g7tm6chWUBCM8Sc/amZHiH4vi4OzfGgIGhMpSSEqoArKdYhLD5CIVH0MzvEgrAvBWkABx8 - xVQAjs1VHV+CLZQgBSC+K2fcJtgFyFAZ7CCi/+p0+EVffNNtPVnME4RFrwAA4JSrxhmA1wH4OIDnxDXp - I8sYcXPHll342593oGO4BLYr4NQIVlUZ8QK7kTubpKIwVIcrUHyi6JEKwLyWQAGI9H39doe5bdMKUgAO - YfVReEEKQKgWZ34BCooJifwUgEP+lWAFIP3OxXTOhLMEXKZ1+HmXnXzrZkkSXcWSUAAmDEXwGgD/BuCl - siZ9nBIEpeWc44m/TGPLxhmHUJiNVXQNnMKkawO3MCglBdXBikeg/RQAIPS2Ag2PchEEzZFOpCPSZ5BS - AB5ehP98rYnAGITLNPezOMy68nEBmIQCMC2ATAJ9NjYRcClxuuQLJ/3kSblHeoMlpQBEnHLV+GHQNxw5 - DsBw1sogKN38XAdPPLoDM9tacAoAWfMAGDFvAxasA7OBq6USqgMlj7vAQhSASDNyJMGPDry8WUojRAH4 - 0/NXAGYZ4igAUVOJJr2wdYPvGo3QGIDzT5J3fhcBX2rPa1+7/C35T+bxw5JVACZOuWp8FMDxxmcdXC6h - t0C+XyH5iIW5mTY2PzmL6a279KPFhXTM8xBz9cZkuRDlsoryQCmRAggMmrl7YPF+iALw0AnKV8g7TAGI - z4l8ecrmqC/ns05l4H0T7riMnwKIepcu/BXAt4nTlV846Sf3RCfPF0teAYg45arx3QC8HsCrARwFYKjb - 8YJOi2Pbll3YuXUOrXlhxMAMCDJjuRCDOXro7BGJUKqUUKmqdq/qEbRoBeAMmgnCHCKcYQoAAi3/iHxQ - 3t4yOEZNIPj1EgpA5NGzM7ObJ4t2dNfvunUvgBsBXFuuKLdf8oYNuUT0k6BQAAE45arxKoAagCMAHMGA - vwMw4l9I36/RdeP63ZrrYOf2eeyabmHXTFufgWYKvmAB2B6C/b9aUVGpqA7/3bzp8OsRrgD8rIIgF8MS - XCGxnwIws1AiFIDoZoQqAJEGk1MA+nf/590vJWIqMAfhfgA/A3A7gX502Yk/+UuM195XKBSAJIwA4v7Q - RxEOAXAggP2Mz+4AjDW7Qtll68jnGhFhfraD+fkO5nfpf3mbo93m9txUV4NWSgqq1bJXoIzu1WnmIlIB - BEbS3coFNv0wBeAVXH8F4HZjwhSAlUbxPgv4KwCx4hXXb6P8BGArGB4F8BAIf2bAfQTcw4B7vnDij3Md - ussShQLICG+5anwIwGoAywGUAJTAbIshjTJw35yb7Qy25ztDWoeXOYeqabwCDoUYoChMUxTWMdMbbdqc - YGCuNSIPUfOea1a+y2wmAFDENJ4gGrPyYk56LuUopGN2fo48BT6Zbvg4eXXGBOy0ikjLp6zO620A0wpj - RKDtDGzbZSf9eKPk61rw6LoCKFCgwMJH364GLFCgQPdRKIACBZYwCgVQoMASRqEAChRYwigUQIECSxiF - AihQYAmjUAAFCixhFAqgQIEljEIBFCiwhFEogAIFljAKBVCgwBJGoQAKFFjC+P//wC7VvMLlNQAAAABJ - RU5ErkJggg== - - - \ No newline at end of file diff --git a/CxViewerAction/Views/OidcLoginFrm.resx b/CxViewerAction/Views/OidcLoginFrm.resx deleted file mode 100644 index c0593ba3..00000000 --- a/CxViewerAction/Views/OidcLoginFrm.resx +++ /dev/null @@ -1,2108 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - - AAABAAYAEBAAAAEAIABoBAAAZgAAACAgAAABACAAqBAAAM4EAAAwMAAAAQAgAKglAAB2FQAAQEAAAAEA - IAAoQgAAHjsAAICAAAABACAAKAgBAEZ9AAAAAAAAAQAgACFLAABuhQEAKAAAABAAAAAgAAAAAQAgAAAA - AAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCpF0AQqJbAUKmYBdDp2I2No5OPDGCRT02jE49OZNUPTuZ - Wj09n2A9P6VlOUCnaB9Ap2gDQKdoAAAAAABCpmEAQqZhBkKmYWFCpmLMOJJS7Cx4Pu8yg0bvNo1P7zmT - Ve87mlvvPaBh7z+mZ+5AqGrYQKlsfkCqbhBAqm0AQqdjAEKnZGFCqGT0Pp9e/ydvN/8mbTb/MoVJ/zaO - Uf85lVf/O5xe/z2iZf8/qGv/QKpu/0Crb/1ArHGJQK51BEKpZxVCqWfIQqtp/zeTVu8gYS2cJGkzhDGE - SYQ2j1KCOZZZgjudYIM9pGeCP6pujUCtcd5ArXP/QK515kCvdjVCq2oyQqtr6UKsbP8+o2WcABIAAx9e - KwA7lFAAPJVRCjyUUBE8kkwBPqFiAECweABAr3ZtQLB3/0CxePpAsXlgQq1uOEKub+1Cr3D/Qq9xhUKv - cQA7lFEAO5RRGTuUUao7lFHQO5RRYTuUUQc/rnUAQLF6SkCye/hAsnz4QLN9WUKwcjhCsHPtQrF1/0Ky - doVBrG8AO5RRCDuUUZY7lFH/O5RR/zuUUfU7lFGVO5NPGkC1gA0/s354P7R/eT+0gBJCsnc4QrN47UKz - ef9CtHqFQrR6ADuUUWs7lFH3O5RR/zuUUf07lFH/O5RR/juUUcU7lFE+OIQ6ATqPSgAAAAAAQrR7OEK1 - fO1Ctn3/Qrd/gzqQSxk7lFHZO5RR/zuUUeY7lFF7O5RRzDuUUf87lFH/O5RR5zuUUWw5lFUIOJFQAEK3 - fzhCt4DtQriC/0K5g4Q6jEYPO5RRtTuUUeo7lFFrO5RRADuUUSM7lFGjO5RR+TuUUf86k1D3N5dbd1L/ - /wJCuYQ4QbqE7UG7hv9Bu4eFQLaAADuUURc7lFEqO5RRBjuUUQA7lFEAO5RRCzuUUXA7lFHqNopJ/zOS - WeFBxJYxQbuFNEG7hupBu4f/QbyJmkHAjwJBvosAAAAAAAAAAAAAAAAAAAAAADF+OACK7EYALXs9kCl2 - O/81oG34QsidW0G8iBhBvInMQb2K/0G+jO1Bv46WQcCQfkHBkX9BwpN/QcOUf0HDln9BxJd+QsWag0eq - ftVLroL/Q8GV8UHHnUhBuYQAQbyJaUG7iPdBvIn/Qb2K/0G9i/9Bvoz/Qb+O/0G/j/9BwJD/QcOW/0TK - ov9r1rb/eNSy/1DHnLE5x5wQQbmDAEG5hAhBt4FuQbZ/10G2f/JBtn/1QbeA9UG3gfVBuIL0QbyK9EHI - nvRCy6LzVcmg5WTLo6JczqglYcykAAAAAABBsngAQbJ4AkKyeCBCsndEQrJ3S0KyeEtCsnhLQrN6SkHC - k0lBzaZJQcmfRkLEli1GzKUIRcWZAD359QDAAwAAgAEAAIAAAAAAAAAABjAAAAwQAAAIAAAACAMAAAAB - AAAAgAAACMAAAAfwAAAAAAAAgAAAAIABAADAAwAAKAAAACAAAABAAAAAAQAgAAAAAAAAEAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCpV8AQqReA0KlXxxCpWA9Q6hiTUCh - XU81ikxPL35CUTOGSFI2i01SN45PUTiRUlE5lVZROphYUTybW1A9nl5QPqFhUD+kZE9ApmZHQKdnLECn - aAtAqWoAQKVmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCpV8AQqVfAUKlYDJCpWCXQqZh20Km - YvQ9m1n7MYJF+yx3PfsvfUH7NIdJ/DWKTPw3jlD8OJFT/DmVVvs6mFn7PJtc+z2eX/s+oWL7P6Rl+0Cm - Z/hAp2nqQKdpu0Coal1AqGsMQKlrAD6gaAAAAAAAAAAAAAAAAAAAAAAAQqZhAEKmYQRCpmFjQqZh40Km - Yv9Cp2P/PJta/yt2PP8nbTX/KnM6/zGCRf80h0r/NYtN/zeOUf84klT/OZVX/zqZWv88nF3/PZ9g/z6i - ZP8/pWf/QKdp/0Coa/9AqWv/QKls+UCpbaRAqm0cQKptAECpbQAAAAAAAAAAAEKnYgBCol4AQqdiYkKn - YvFCp2P/Qqhk/0GlYv8te0H/JGcx/yVqNP8qdDv/MoRH/zSIS/81i07/N49S/ziTVf85llj/Oppc/zyd - X/89oGL/PqNl/z+maP9AqGv/QKlt/0Cqbf9Aqm7/QKtu/0Crb69Aq3AUQKtwAAAAAAAAAAAAQqdkAEKn - ZDBCp2TgQqhk/0KoZf9Cqmf/OpZY/yNmMP8iZC//ImYw/yhxOf8yhEj/NIhM/zWMT/83kFP/OJNW/zmX - Wv86ml3/PJ5h/z2hZP8+pGf/P6dq/0Cqbf9Aq27/QKtv/0Crb/9ArHD/QKxx/kCtcn87rHgAP6xyAEKo - ZgBCqWgBQqhlkkKoZv9CqWf/Qqln/0Kraf8wgkj/H14q+iBiLekhYy7mJGo05jGCR+U0iU3lNY1Q5DeQ - VOQ4lFfkOZhb5DqbX+Q8n2LkPaJl5D6laeQ/qGzkQKtv8ECscP9ArHH/QK1y/0Ctcv9ArnP/QK503kCu - dCVArnQAQqlnAEKpZxlCqWfWQqpo/0Kqaf9Cq2r/Qalo/yp1PuAeXCljImYxKSJnMiUjaTQlL4BGJDWL - TyQ2jlIkN5JVJDiVWSM5mVwjO5xgIzyfYyM9o2cjPqZqIz+pbSNArHA6QK1yqUCtc/5ArnT/QK51/0Cv - df9Ar3b+QK93YkCvdwBCqmkAQqppNkKqafFCq2r/Qqtr/0KsbP9AqGj8MINKZlDNiAAlazUAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAECvdQBAr3UcQK910ECv - dv9Ar3f/QLB3/0CweP9AsHiQQLF4AEKrawBCq2tFQqxr+EKsbP9CrW3/Qq1u/0Ksbeo/pmgrP6dpAAAA - AAAAAAAAAAAAAAAAAAA7lFEAO5RRADuUUQ07lFEZO5RRBzuUUQA7lFEAAAAAAAAAAAAAAAAAQLF4AEGx - dwFAsHehQLB4/0CxeP9AsXn/QLF6/0CyeqI+sHsBQq1tAEKtbUdCrW35Qq1u/0Kub/9CrnD/Qq9w5kKv - cSZCr3EAAAAAAAAAAAAAAAAAO5RRADuUUQA7lFFHO5RRvzuUUds7lFGnO5RRMTuUUQA7lFEAAAAAAAAA - AABAsXkAQLJ4AECxeZpAsXn/QLJ6/0Cye/9Asnz/QLJ8oj6xfAFCrm8AQq5vR0KucPlCr3D/Qq9x/0Kv - cv9CsHPmQrBzJkKwcwAAAAAAAAAAADuUUQA7lFEAO5RRNjuUUd07lFH/O5RR/zuUUf87lFHdO5RRXTuU - UQY7lFEAAAAAAECyewBAsnsAQLJ7c0CyfP9Asnz/QLJ9/z+zfv8/s357P7N/AEKvcQBCr3FHQq9y+UKw - cv9CsHP/QrF0/0KxdeZCsXUmQrF1AAAAAAAAAAAAO5RRADuUURo7lFG/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH0O5RRkTuUURk7lFEAO5RRAECzfQBAs30aP7N+rT+zf/Y/tH/3P7SAsz+1gB4/tIAAQrBzAEKw - c0dCsXT5QrF1/0Kxdf9Csnb/QrJ35kKydyZCsncAAAAAADuUUQA7lFEJO5RRlzuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH+O5RRwTuUUTs7lFEBO5RSAD+0fwA/tYAPP7WBPz+1gUE/toIRP7SBAEC6 - hwBCsnYAQrJ2R0KydvlCsnf/QrN4/0KzeP9Cs3nmQrR6JkK0eQA7lFEAPJdTATuUUW07lFH4O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR5DuUUWo7lFEKO5RRAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAEKzeABCs3hHQrN4+UKzef9CtHr/QrR7/0K1e+ZCtXwmQrV7ADuUUQA7lFFEO5RR6DuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR+DuUUZ47lFEgO5RRADuU - UQAAAAAAAAAAAAAAAAAAAAAAQrR6AEK0ekdCtHr5QrV7/0K1fP9CtX3/QrZ95kK2fiZAq3AAO5RRETuU - UcE7lFH/O5RR/zuUUf87lFH/O5RR/zuUUbs7lFG3O5RR/DuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Ucw7lFFGO5RRAjuUUQAAAAAAAAAAAAAAAABCtXwAQrV8R0K1fflCtn3/QrZ+/0K3f/9Ct4DmQreAJj6k - ZgA7lFEuO5RR7DuUUf87lFH/O5RR/zuUUf87lFHRO5RRJzuUURE7lFGFO5RR8DuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUeo6k1BxNo5PCTaNTAAAAAAAAAAAAEK2fgBCtn5HQrZ/+UK3f/9Ct4D/QriB/0K4 - guZCuIImP6ltADuUUR07lFHYO5RR/zuUUf87lFH/O5RR6juUUUo7lFEAO5RRADuUUQQ7lFFTO5RR1juU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zqST/g3lViERNGmCEG/jgAAAAAAQreAAEK3gEdCuIH5QriC/0K5 - gv9CuYP/QrmE5kG6hCZBuIIAO5RRADuUUWM7lFHmO5RR/DuUUec7lFFoO5RRAjuUUQAAAAAAO5RRADuU - UQA7lFEpO5RRrTuUUfs7lFH/O5RR/zuUUf87lFH/OpFP/zSOUfU9s4BkLXk4AEHClABCuYMAQrmDR0K5 - g/lCuYT/QbqF/0G6hf9Bu4bmQbuHJkG7hgA7lFEAO5RRAzuUUS07lFFPO5RRLjuUUQM7lFEAAAAAAAAA - AAAAAAAAO5RRADuUUQA7lFEPO5RRejuUUew7lFH/O5RR/zuUUf84j03/LoBD/zqreNJEzKAdQcOVAEG6 - hQBBuoVHQbqF+UG6hv9Bu4f/QbuH/0G8iOZBvIgmQbyIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAADuUUQA7lFEDO5RRSTuUUdE7lFH/OZFP/zCBQ/8qdzv+Oah1+ULI - m1xBxJcAQbqFAEG6hUZBuoX4QbuG/0G7hv9Bu4f/QbyI6UG8iCpBvIgAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADuUUQA0iEgAN45MPDGDROssej3/KHM4/yh2 - PP47soL/Qsebi0HFmABBu4YAQbuGOkG7hvJBu4f/QbuH/0G8iP9BvIn6Qb2JXkG8iABBvYsAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChzNwAoczcgJ3E23yVv - NP8lbzX+MJJe/EDDl/9Bx5yYQcCRAEG7iABBu4gdQbyI20G8iP9BvYn/Qb2K/0G+i/9BvovaQb+NWEHA - jiFBwJAeQcCQHkHBkR5BwZIeQcKSHkHCkx5Bw5QeQcOVHkHElh5BxJYeQcSXHkHFmB5Bx5wdPruOIy+E - TocvfUf7M4dS/Tmgb/xAwJP+Qcaa/0HHnINBxJYAQbyJAEG8iANBvYmdQb2K/0G+i/9Bvoz/Qb6N/0G/ - jf9Bv473QcCP40HAkN9BwJDfQcGR30HBkt9BwpLfQcKT30HClN9Bw5XfQcOV30HElt9BxJffQcSY30HH - nN9Dx53kTcKa+lrHov9jz6z+XMyl/0jFmP9BxJf4QcieT0HHnQBBvo0AQbyJAEG9ijxBvInpQb2K/0G9 - iv9BvYv/Qb6M/0G+jP9Bvo3/Qb+O/0G/jv9Bv4//QcCP/0HAkP9BwJH/QcGR/0HBkv9BwZP/QcKT/0HC - k/9BxJf/Qcif/0fLo/9f07D/fNvA/4jdwv9y0Kz/UMWY/0LFmMVAzKUUQcujAAAAAABBu4cAQb2LAkG6 - hnZBuob4QbqG/0G7h/9Bu4f/QbuI/0G8iP9BvIn/QbyJ/0G9iv9BvYr/Qb2L/0G9jP9Bvoz/Qb6N/0G+ - jf9Bv47/Qb+P/0HGm/9ByqL/Rsyl/13Tsf9/3MH/i9m8/3TNp/9Ux5zsRcqhTUrHmwBBzqoAAAAAAAAA - AABBuYMAQbmECUG4gntBt4HwQbeB/0G3gf9BuIL/QbiC/0G4g/9BuYP/QbmE/0G5hP9BuYT/QbmF/0G6 - hf9Buob/QbqG/0G6hv9BwpP/Qcqi/0HLpP9DzKb/Us+q/2fNpv9ox53/X8qh41rQq2Bi4coDYNe5AAAA - AAAAAAAAAAAAAAAAAABBtn8AQbd/BEG1fUlBtHyzQbR77EG0e/1BtHv/QbR7/0G0e/9BtHz/QbR8/0G1 - fP9BtXz/QrV9/0K1ff9Ct4H/QcGR/0HKov9BzKX/Qcyk/0HHm/9GwZH4TsKT31PJoJxd07E2nvLnAn/j - zAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCsXoAQrN5AEKyeQpCsngwQrF3WEKxdmpCsndtQrJ3bUKy - d21CsndtQrJ4bUKyeG1CsnhtQrN5bEK+jWpBy6RqQc2makHNpmpBzKRpQcebYUHInUhEz6ohU97FBEvW - uAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//////AAAP/AAAA/gAAAH4AAAA8AAAAOAAAABgAAAAYD/ - /wGA/j8AgPwfgID4B4GA8AOBgOAAw4DAAH+AwAA/gIAAD4CAAAeAgMADgMDwA4DB+AGA//wBgP//AYD/ - /wGAAAABgAAAAcAAAAHAAAAD4AAAA/AAAAf8AAAf/////ygAAAAwAAAAYAAAAAEAIAAAAAAAACQAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAEKkXQBCpWAAQqVfB0KlXyVCpWBJQqZgY0KnYW1Cp2JuPZtZbjSJS24vfkJvMIBEczWI - SnM1i0xyNo1OcjePUHI4kVJxOZNUcTqVVnE6l1hxO5lacDybXHA9nV5wPZ9gcD6hYW8/o2NvP6Vla0Cm - ZlxAp2c9QKdoGUCmZwJAp2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAABCpF8AQqVgAEKlXw9CpWBZQqVgr0KlYONCpmH4Qqdi/0CiXv82jU7/Ln1B/yx3 - Pf8teT7/MoNG/zSHSv81ikz/NoxO/zeOUP84kVL/OZNU/zmVVv86l1j/O5la/zybXP89nl7/PaBg/z6i - Yv8/pGT/P6Vm/0CnZ/5Ap2jzQKdp1UCnaZNAqGo5QKdpBECnagAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAEKmYABCpl8BQqVgPEKlYLhCpmD5QqZh/0KmYf9Cp2L/Pp9c/y9+ - Qv8ocDf/KXE4/yp0Ov8vfkL/M4ZI/zSISv81ikz/NoxO/zePUf84kVP/OZNV/zmVV/86mFn/O5pb/zyc - Xf89nl//PaBh/z6iY/8/pGX/P6Zn/0Cnaf9Ap2n/QKhq/0Coav9AqGvrQKlrjkCpbBtAqWwAPqdoAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQqZhAEKmYQNCpmFdQqZh5EKmYf9CpmL/Qqdi/0Kn - Y/9Ao2D/LnxB/yZrNP8nbTb/J283/yp1O/8ygkb/M4ZI/zSIS/81ik3/No1P/zePUf84kVT/OZRW/zmW - WP86mFr/O5tc/zydXv89n2D/PaFi/z6jZP8/pWb/P6Zo/0Coav9AqGv/QKlr/0CpbP9AqWz/QKlt/kCq - bb9Aqm0tQKpuAD+nagAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCpmIAQqViAEKmYlxCpmLtQqdi/0Kn - Y/9Cp2P/Qqhk/0KoZf80iUz/JWgx/yVpM/8mazT/Jmw1/yx4Pv8yhEf/M4ZJ/zSIS/81i07/No1Q/zeQ - Uv84klT/OZRW/zmXWf86mVv/O5td/zydX/89n2H/PaFj/z6kZv8/pWj/P6dp/0Cpa/9AqWz/QKlt/0Cq - bf9Aqm3/QKpt/0Crbv9Aq27JQKtvKECrbwA+qm0AAAAAAAAAAAAAAAAAAAAAAEKnYwBCp2MAQqdjOUKn - Y+JCp2P/Qqdk/0KoZP9CqGX/Qqlm/z6fXv8nbjb/I2Uv/yNnMf8kaDL/JGoz/yx4Pv8yhEj/M4ZK/zSJ - TP81i07/No1Q/zeQU/84klX/OZVX/zmXWv86mVz/O5xe/zyeYP89oGL/PaJl/z6kZ/8/pmn/P6hr/0Cp - bP9Aqm3/QKpt/0Cqbv9Aq27/QKtv/0Crb/9ArHD/QKxwrz+rcBBAq3AAAAAAAAAAAAAAAAAAAAAAAEKo - ZABCqGQNQqdkskKoZP9CqGX/Qqhl/0KoZv9CqWb/Qqpo/zSLTv8hYS3/ImMu/yJkL/8iZTD/ImYx/yl0 - O/8yhEj/M4ZK/zSJTP81jE//No5R/zeQU/84k1b/OZVY/zmYW/86ml3/O5xf/zyfYf89oWT/PaNm/z6l - aP8/p2r/P6ls/0Cqbv9Aq27/QKtv/0Crb/9ArHD/QKxw/0Cscf9ArHH/QK1y+0CtcmxBrXIAP6xyAAAA - AAAAAAAAQqhlAEKoZQBCqGVSQqhl9kKoZv9CqWb/Qqln/0KpZ/9Cqmj/Qahn/yp2Pv8fXSr/IGAs/yBh - Lf8hYi7/IGMv/yRrNf8xgkb/M4dL/zSKTf81jE//No5S/zeRVP84k1f/OZZZ/zmYW/86ml7/O51g/zyf - Yv89oWX/PaNn/z6maf8/qGv/P6pt/0Crb/9ArHD/QKxw/0Cscf9ArHH/QK1y/0Ctcv9ArXP/QK5z/0Cu - dNBArXMaQK10AAAAAAAAAAAAQqlmAEKpZgRCqWamQqlm/0KpZ/9Cqmj/Qqpo/0Kqaf9Cq2r/PqJi/yNm - Mf8eXSnpIGEtriFkL5EhZDCPIWUwjiJoM44ufkSNNIhMizSLTos1jVGLNo9TizeSVYo4lFiKOZdaijqZ - XYo6m1+JO51hiTygY4k9omaJPaRoiT6maog/qGyIP6puj0CscL1ArHH1QK1y/0Ctcv9ArXP/QK1z/0Cu - dP9ArnT/QK51/0CvdftArnVaQK91AAAAAAAAAAAAQqpnAEKpZx9CqmfdQqpo/0KqaP9Cqmn/Qqtp/0Kr - av9DrGv/OZhb/yBgLMshYi08Kng/BBlPHwBb5ZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABArXIAQKxxAECtcgtArXJkQK1z60Cu - dP9ArnT/QK51/0Cudf9Ar3b/QK92/0Cvd/9Ar3ebO6lyAT+udQAAAAAAQqppAEKqaT9Cqmn0Qqpp/0Kr - av9Cq2r/Qqtr/0Ksa/9CrWz/OJZZ7CFjLkAfXisALoBEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAECv - dQBBsnUBQK51fUCudf9Ar3b/QK92/0Cvd/9AsHf/QLB4/0CweP9AsHjGQLB4DUCweAAAAAAAQqtqAEKr - aldCq2r8Qqtr/0Ksa/9CrGz/Qqxs/0Ktbf9CrW3/PaJksyBiLQcoczwAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAABAr3YAQLB2LECvduhAsHf/QLB3/0CweP9AsHj/QLF4/0Cxef9AsXnaQLF5GkCx - eQAAAAAAQqxrAEKsa2BCrGv/Qqxs/0KsbP9CrW3/Qq1u/0Ktbv9Crm//Qa1uk0rAfwA+pWcAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7lFEAO5RRADuUUQ07lFEaO5RRDjuUUQE7lFEAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAsHgAQLB4F0CweNhAsHj/QLF4/0Cxef9AsXn/QLJ5/0Cy - ev9AsnrfQLJ7H0CyewAAAAAAQq1tAEKsbWFCrW3/Qq1t/0Ktbv9CrW7/Qq5v/0Kub/9CrnD/Qq9wj0Kt - bwBCr3EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADuUUQA7lFELO5RRZzuUUcE7lFHbO5RRxjuU - UXI7lFERO5RRADuUUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAsXkAQLF5FkCxedhAsXn/QLF5/0Cy - ev9Asnr/QLJ7/0Cye/9AsnzgQLJ8H0CyfAAAAAAAQq1uAEKtbmFCrW7/Qq5v/0Kub/9CrnD/Qq9w/0Kv - cf9Cr3H/Qq9yj0KvcQBCsHIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO5RRADuUUQU7lFGDO5RR+TuU - Uf87lFH/O5RR/zuUUfs7lFGxO5RRLjuUUQA7lFEAAAAAAAAAAAAAAAAAAAAAAAAAAABAsnoAQLJ6EUCy - es1Asnr/QLJ7/0Cye/9Asnz/QLJ8/0Cyff8/s33XP7N9GD+zfQAAAAAAQq5vAEKub2FCrnD/Qq9w/0Kv - cf9Cr3H/Qq9y/0Kwcv9CsHP/QrBzj0KwcwBCsHQAAAAAAAAAAAAAAAAAAAAAAAAAAAA7lFEAO5RRADuU - UV07lFHyO5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR2juUUVk7lFEGO5RRAAAAAAAAAAAAAAAAAAAA - AABAtHwAQbd+AUCyfJNAsnz/QLJ8/0Cyff8/s33/P7N+/z+zfv8/tH+gP7V/BD+0fwAAAAAAQq9xAEKv - cWFCr3H/Qq9y/0Kwcv9CsHP/QrBz/0KwdP9CsXT/QrF1j0KxdABCsXUAAAAAAAAAAAAAAAAAAAAAADuU - UQA7lFEAO5RRNzuUUd47lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUfI7lFGMO5RRFzuU - UQA7lFEAAAAAAAAAAAAAAAAAQLN9AEC0filAs33MP7N+/z+zfv8/s3//P7R//z+0gNQ/tYAxP7SAAAAA - AAAAAAAAQrByAEKwcmFCsHP/QrBz/0KwdP9CsXT/QrF1/0Kxdf9Csnb/QrJ2j0KydQBCsnYAAAAAAAAA - AAAAAAAAO5RRADuUUQA7lFEbO5RRwDuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH9O5RRvTuUUTg7lFEBO5RRAAAAAAAAAAAAQLiBAD+yfgA/tYAoP7SAkT+0gMo/tIDMP7WBlz+1 - gi49sHwAQLeEAAAAAAAAAAAAQrB0AEKwdGFCsXT/QrF1/0Kxdf9Csnb/QrJ2/0Kyd/9Csnf/QrN4j0Ky - dwBCs3gAAAAAAAAAAAAAAAAAO5RRADuUUQk7lFGZO5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUeI7lFFmO5RRCTuUUQAAAAAAAAAAAAAAAABAuIQAQLqFAkC3 - gw9At4MQQLmFA0C4hAAAAAAAAAAAAAAAAAAAAAAAQrF1AEKxdWFCsnb/QrJ2/0Kyd/9Csnf/QrN4/0Kz - eP9Cs3n/QrN5j0KzeQBCtHkAAAAAAAAAAAA7lFEAO5RRATuUUW47lFH4O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH2O5RRmjuUUR47lFEAO5RRAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQrJ3AEKyd2FCsnf/QrJ3/0Kz - eP9Cs3n/QrN5/0K0ev9CtHr/QrR7j0K0egBCtHsAAAAAADuWUgA7k1EAO5RRRjuUUeg7lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/juU - Ucg7lFFDO5RRAjuUUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQrN4AEKz - eGFCs3j/QrN5/0K0ef9CtHr/QrR7/0K0e/9CtXz/QrV8j0K1ewBCtXwAO5RRADuUUQA7lVEmO5RRzjuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFHoO5RRczuUUQ07lFEAO5RRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAQrR6AEK0emFCtHr/QrR6/0K0e/9CtXv/QrV8/0K1fP9Ctn3/QrZ9j0K2fQBCtn4AO5RRADuU - UQY7lFGdO5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFHwO5RRvjuUUfU7lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR+juUUac7lFEmO5RRADuUUQAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAQrR7AEK0e2FCtXv/QrV8/0K1fP9Ctn3/QrZ9/0K2fv9Ctn7/QrZ/j0K2 - fgBCt38AO5RRADuUUSk7lFHmO5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf07lFGIO5RRDjuU - UWc7lFHiO5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFHSO5RRTDuU - UQM7lFEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQrV8AEK1fGFCtX3/QrZ9/0K2fv9Ctn7/Qrd//0K3 - f/9Ct4D/QreAj0K3gABCuIEAO5RRADuUUTw7lFH0O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - UbI7lFETO5RRADuUUQE7lFE5O5RRvzuUUf47lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR7DqSUHU0iksKNYpKAAAAAAAAAAAAAAAAAAAAAAAAAAAAQrZ+AEK2fmFCtn7/QrZ//0K3 - f/9Ct4D/QreA/0K4gf9CuIH/QriCj0K4gQBCuIIAO5RRADuUUSc7lFHkO5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR1DuUUSs7lFEAO5RRADuUUQA7lFEAO5RRGDuUUY87lFH0O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zmRT/k2klWJQ8iZC0C7iAAAAAAAAAAAAAAAAAAAAAAAQrd/AEK3 - f2FCt4D/QreA/0K4gf9CuIH/QriC/0K5gv9CuYP/QrmDj0K5gwBCuYMAO5RRADuUUQU7lFGYO5RR/zuU - Uf87lFH/O5RR/zuUUf87lFHrO5RRTjuUUQA7lFEAAAAAAAAAAAAAAAAAO5RRADuUUQY7lFFcO5RR3DuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zqST/80jE73PK56e0vpwwRBwZIAAAAAAAAA - AAAAAAAAQriBAEK4gWFCuIH/QriC/0K4gv9CuYP/QrmD/0K5hP9BuoT/QbqFj0K5hABBuoUAO5RRADuU - UQA7lFEdO5RRqDuUUfY7lFH/O5RR/juUUeA7lFFhO5RRAjuUUQAAAAAAAAAAAAAAAAAAAAAAAAAAADuU - UQA7lFEAO5RRMTuUUbY7lFH8O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zqST/8wgkP/OKBp7ELE - lktBwZEAQcKUAAAAAAAAAAAAQrmCAEK5gmFCuYP/QrmD/0K5hP9CuYT/QbqF/0G6hf9Buob/QbuGj0G6 - hgBBu4YAAAAAADuUUQA7lFEAO5RRDTuUUUc7lFFwO5RRYzuUUSk7lFECO5RRAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAA7lFEAO5RRADuUURM7lFGEO5RR8DuUUf87lFH/O5RR/zuUUf87lFH/O5RR/ziQ - Tv8ufT//Mo5V/0C/j7xCxpgQQcOVAAAAAAAAAAAAQrmEAEK5hGFCuYT/QbqF/0G6hf9Buob/QbuG/0G7 - h/9Bu4f/QbuHj0G7hwBBvIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADuUUQA7lFEEO5RRUjuUUdU7lFH/O5RR/zuU - Uf87lFH/O5RR/zOHR/8reTz/LoJH/D67i/RBxZhPQcSWAAAAAAAAAAAAQbqFAEG6hWFBuoX/QbuG/0G7 - hv9Bu4f/QbuH/0G8iP9BvIj/QbyJj0G8iABBvIkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7lFEAO5RRADuU - USk7lFGuO5RR/TuVUf87k1D/NYlJ/yt5Pf8pdjr/LH5D/D66i/9BxpmUQb+OAEHFmAAAAAAAQbqFAEG6 - hWFBuoX/QbuF/0G7hv9Bu4b/QbuH/0G7h/9BvIj/QbyIkkG8iABBvIgAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAO5RRADuUUQA8llIVN45MujSHR/8vf0H/KnY6/yh0Of8ncjf/LYRL/EDAkv9BxpnAQcWZC0HF - mQAAAAAAQbuFAEG7hVpBu4X9QbuG/0G7hv9Bu4f/QbuH/0G7h/9Bu4j/QbyIrEG9iQVBvIkAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAADqTUAAncjcAKng7cih0Of8nczf/J3I3/yZxNv8mcDX+NJ1p+0HG - mv9BxprUQcabFUHGmwAAAAAAQbuGAEG7hkVBu4b3QbuH/0G7h/9Bu4j/QbyI/0G8iP9BvIn/Qb2J5UG9 - ijVBvYoAQb6JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC18PgAfZC0AKHM4hiZxNv8mcDX/JW40/yRu - M/4ui1X8P7+T/UHGm/9BxpzVQcieFUHIngAAAAAAQbuHAEG7hyVBu4jjQbyI/0G8iP9BvIj/Qb2J/0G9 - if9BvYr/Qb6L/0G+i79BvowwQb+NAkG/jQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEkNAELHjgAobjIyJ3A12Chw - Nv8qcjn+LHtE/TSZZfs/v5H9Qcaa/0HGmv9Bx5zEQcqiDUHJoQAAAAAAQbyIAEG8iAhBvImzQb2J/0G9 - if9BvYr/Qb2K/0G+i/9Bvoz/Qb6M/0G/jf9Bv43hQb+On0HAj4BBwI99QcCQfUHBkX1BwZF9QcGSfUHB - kn1BwpJ9QcKTfUHCk31Bw5R9QcOUfUHDlX1Bw5V9QcSWfUHEl31BxJd9QcWYfUHFmH1Bxpt9QciefT+9 - kY46o3LXPZ1u/0SkdvxLsof7T8GY/U3Hnf9FxZn/QcSX/0HFmP9ByJ2cQeHLAUHKogAAAAAAQbyMAEG9 - igBBvYpjQb2K/EG9i/9Bvov/Qb6M/0G+jP9Bvo3/Qb+N/0G/jv9Bv47/Qb+O/0HAj/9BwI//QcCQ/0HA - kP9BwZH/QcGR/0HBkv9BwZL/QcKT/0HCk/9BwpT/QcOU/0HDlf9Bw5X/QcSW/0HElv9BxJf/QcSX/0HE - mP9Bx5z/Qcie/0XJoP9Qzaf/XNKu/2XUs/9q1rb/adOw/1zLo/9LxZn/Q8OV/0HEl/tByaBcQcifAAAA - AAAAAAAAAAAAAEG9igBBvYoWQbyJxkG9iv9BvYr/Qb2L/0G9i/9Bvov/Qb6M/0G+jP9Bvo3/Qb6N/0G/ - jv9Bv47/Qb+O/0G/j/9BwI//QcCQ/0HAkP9BwJH/QcGR/0HBkf9BwZL/QcGS/0HCk/9BwpP/QcKU/0HC - lP9BwpT/QcOV/0HEl/9ByJ7/Qsmg/0jLpP9Z0Kz/bta3/33bv/+E3cP/gde5/2nNp/9Sxpr/RcKT/0HG - m9BBzaYbQcukAAAAAAAAAAAAAAAAAEG7iQBBu4cAQbuIUEG7iO9Bu4j/QbyI/0G8if9BvIn/QbyK/0G9 - iv9BvYr/Qb2L/0G9i/9BvYv/Qb6M/0G+jP9Bvo3/Qb6N/0G/jf9Bv47/Qb+O/0G/jv9Bv4//QcCP/0HA - kP9BwJD/QcCQ/0HAkf9BwJH/QcGR/0HGmv9ByaH/Qsqh/0nMpv9a0a7/cdi6/4vfx/+U4cn/jNi6/3HO - qP9XxZj/RsSX+ULKomdExZkAQc2mAAAAAAAAAAAAAAAAAAAAAABBu4cAQbuIBEG6hXtBuoX4QbqF/0G6 - hf9Buob/QbqG/0G7h/9Bu4f/QbuH/0G7h/9Bu4j/QbyI/0G8if9BvIn/QbyJ/0G8if9BvYr/Qb2K/0G9 - i/9BvYv/Qb2L/0G9jP9Bvoz/Qb6M/0G+jf9Bvo3/QcGS/0HJoP9ByqL/Qsuj/0fMpv9W0a3/a9e4/4Td - xP+K2bz/gdGv/27Lo/9Xx5z/ScuknUTRrQxGz6oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQbmEAEG5 - hAlBuIKBQbiC9EG4gv9BuIL/QbiC/0G4g/9BuIP/QbmD/0G5hP9BuYT/QbmE/0G5hf9BuoX/QbqF/0G6 - hf9Buob/QbqG/0G6hv9Buof/QbqH/0G7h/9Bu4f/QbuI/0G7h/9BvYv/Qcec/0HLo/9By6P/Qcuk/0XM - pv9Q0Kz/YtS0/3HRrv9wyaD/aMeb/17JoPxXz6umXte3GVPSsAD///8AAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAEG3gQBBuIEGQbZ/X0G2fthBtX7/QbV+/0G2fv9Btn7/QbZ//0G2f/9Btn//QbZ//0G3 - gP9Bt4D/QbeA/0G3gP9Bt4D/QbeB/0G3gf9Bt4H/QbiC/0G4gv9BuIL/QbiC/0G6hv9BxZn/Qcuk/0HL - pP9BzKT/Qcyl/0LMpf9IyqH/VMOV/1q/jv9Zw5X/V8qh5VnSr3903cMUO86nAP///wD///8AAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBtn4AQbuHAEG1fSVBtHuEQrN61EKzefdCs3n/QrN5/0Kz - ef9Cs3n/QrN6/0Kzev9Cs3r/QrN6/0K0ev9CtHr/QrR7/0K0e/9CtHv/QrR7/0K0e/9CtX3/QruI/0HH - nP9BzKX/Qcyl/0HMpf9BzKX/Qcie/0HBkv9DvYn/R7+O9UrGm9RPzqiOXNa3NKTs3gQUyaEA////AP// - /wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEK0ewBCtX0BQrN5GUKy - eEhCsXd2QrF2kEKxdptCsXadQrF3nUKxd51CsXedQrF3nUKyd51CsnedQrJ4nUKyeJ1CsnidQrJ4nUKz - eZtCvImYQcmgmEHMpphBzKWYQc2mmEHNp5hBzaaYQcmglUHInohBy6NsQs6pQ0jUsxls5dICV93EAP// - /wD///8A////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAOdfMADnZyQA52ckAOdjFADnXxQA51soAOdXHADnewAA54cEAOd3JADnc - ygA52MkAOdTKADnX2QA9to0AN+f7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////8AAP// - /////wAA/8AAAAH/AAD/AAAAAH8AAPwAAAAAPwAA+AAAAAAfAAD4AAAAAA8AAPAAAAAABwAA4AAAAAAH - AADgAAAAAAMAAMAAAAAAAwAAwAP//+ABAADAD///8AEAAMAP///4AQAAwB/+H/gBAADAH/gP+AEAAMAf - 8Af4AQAAwB/wAfgBAADAH+AA/AMAAMAfwAA+BwAAwB+AAB8PAADAHwAAD/8AAMAfAAAD/wAAwB4AAAH/ - AADAHAAAAP8AAMAcAAAAPwAAwBwAQAAfAADAHADwAA8AAMAcAfgABwAAwB4B/gAHAADAHwP/AAMAAMAf - //+AAwAAwB///+ADAADAH///8AEAAMAP///4AQAAwA////gBAADAA///8AEAAMAAAAAAAQAA4AAAAAAD - AADgAAAAAAMAAPAAAAAABwAA8AAAAAAHAAD4AAAAAA8AAPwAAAAAHwAA/wAAAAA/AAD/gAAAAP8AAP// - /////wAA////////AAAoAAAAQAAAAIAAAAABACAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQqVeAEKkWABCpV8MQqVfLkKlYFVCpWB1QqZghkKm - YY1Dp2KNQaRgjTuXVo00iEqNL39Cji59QZMzhEeUNYlKkzWKTJM2jE2TN41PkjePUJI4kVKSOJJTkTmU - VZE6lVaROpdYkTuYWZA7mlqQPJtckD2dXZA9nl+PPqBgjz6iYo8/o2OPP6RkjT+lZYVAp2dyQKdnUECn - aClAp2gJQKdsAECnZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCpV8AQqVfAkKlXyVCpWB0QqVgv0Kl - YOpCpmD7QqZh/0KmYf9CpWH/O5hW/zKER/8tej//LHc9/yx3Pf8vfkL/M4ZI/zSISv81iUv/NYtN/zaN - Tv83j1D/N5BR/ziSU/85lFX/OpVW/zqXWP87mFn/O5pb/zycXP89nV7/PZ9f/z2gYf8+omL/P6Nk/z+k - Zf8/pmb/QKdn/0CnaPpAp2jmQKdptkCnaWlAqGkdPaVkAD+maAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEKlYABCpWAAQqVgGEKl - YHxCpWDdQqZg/kKmYf9CpmH/QqZh/0KnYv9Ao1//NIlL/yp0Ov8pcTj/KXM5/yp0Ov8tej//MoRH/zSG - Sf80iEr/NYlM/zWLTf82jU//N49R/zeRUv84klT/OZRV/zqWV/86l1j/O5la/zubXP88nF3/PZ5e/z2f - YP89oWH/PqJj/z+kZf8/pWb/P6Zn/0CnaP9Ap2n/QKdp/0Coav9AqGr8QKhq00Coa2xAqWoRQKlrAD+l - ZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEKm - YABCp18AQqZgPkKmYMNCpmH9QqZh/0KmYf9CpmL/QqZi/0KnY/9Ao2D/MYNG/yhuNv8objb/KHA3/yhx - OP8qdDr/MIBD/zOFSP80hkn/NIhL/zWKTP81jE7/No1P/zePUf83kVP/OJNU/zmUVv86llf/OphZ/zuZ - W/87m1z/PJ1e/z2eX/89oGH/PaFi/z6jZP8/pGX/P6Zn/z+naP9Ap2n/QKhq/0Coav9AqGv/QKhr/0Cp - a/9AqWz6QKlsskCpbC5Dqm8APqhrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAEKmYQBCpmABQqZhVkKmYeJCpmH/QqZi/0KmYv9Cp2L/Qqdj/0KnY/9Cp2P/M4hK/yZr - M/8mbDT/J201/yduNv8nbzf/K3c9/zKDRv8zhUj/NIdJ/zSIS/81ik3/NYxO/zaOUP83j1L/N5FT/ziT - Vf85lVb/OpdY/zqYWv87mlv/O5xd/zydX/89n2D/PaBi/z2iY/8+o2X/P6Vm/z+maP8/p2n/QKhq/0Co - a/9AqWv/QKls/0CpbP9AqWz/QKlt/0Cqbf9Aqm3UQKptQkSxcgA/qGwAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAEKmYgBCqV8AQqZiVUKmYulCpmL/Qqdi/0KnY/9Cp2P/Qqdj/0Ko - ZP9CqWX/OpZW/ydsNP8laTL/JWoz/yZrNP8mbDX/Jm02/y16QP8yg0f/M4VI/zSHSv80iUz/NYpN/zWM - T/82jlD/N5BS/zeSVP84k1b/OZVX/zqXWf86mFr/O5pc/zucXv88nV//PZ9h/z2gYv89omT/PqRm/z+l - Z/8/pmn/P6hq/0Cpa/9AqWz/QKls/0Cpbf9Aqm3/QKpt/0Cqbf9Aqm3/QKpu/0CrbtxAqm4/QaxwAD6n - awAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEKnYgBCp2IAQqdiO0KnYuBCp2P/Qqdj/0Kn - Y/9Cp2T/Qqhk/0KoZf9CqGX/QaVj/yx5P/8jZS//JGcx/yRoMv8kaTP/JWo0/yVsNf8ufEH/MoRH/zOF - Sf80h0r/NIlM/zWLTv81jE//No5R/zeQU/83klT/OJRW/zmWWP86l1r/Oplb/zubXf87nF//PJ5g/z2g - Yv89oWP/PaNl/z6kZ/8/pmj/P6dq/z+oa/9AqWz/QKlt/0Cqbf9Aqm3/QKpt/0Cqbv9Aq27/QKtu/0Cr - b/9Aq2//QKxwz0CrbydArHAAMIFHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCp2MAQqdjFUKn - Y71Cp2P/Qqdk/0KoZP9CqGT/Qqhl/0KoZf9CqGb/Qqpn/zmWV/8kZjD/ImQu/yNlMP8jZjD/I2cx/yNo - Mv8kajP/LXtA/zKER/8zhUn/NIdL/zSJTP81i07/NY1Q/zaPUf83kVP/N5JV/ziUV/85llj/Opha/zqZ - XP87m13/O51f/zyeYf89oGP/PaJk/z2jZv8+pWj/P6Zp/z+na/8/qWz/QKpt/0Cqbf9Aqm7/QKtu/0Cr - bv9Aq2//QKtv/0CscP9ArHD/QKxw/0Cscf9ArHGlP6twCz+rcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AABCqGQAQqZkAEKoZHRCqGT9Qqhk/0KoZf9CqGX/Qqhm/0KpZv9CqWb/Qqln/0KpZ/8vf0X/IWAr/yFi - Lf8hYy7/ImQv/yJlMP8iZjD/Imcx/yt3Pf8yhEj/M4VJ/zSHS/80iU3/NYtP/zWNUP82j1L/N5FU/zeS - Vv84lFf/OZZZ/zqYW/86ml3/O5te/zudYP88n2L/PaFk/z2iZf89o2f/PqVp/z+nav8/qGz/P6lt/0Cr - bv9Aq27/QKtv/0Crb/9Aq2//QKxw/0CscP9ArHH/QKxx/0Cscf9ArXL/QK1y9kCtcllArXMAP6txAAAA - AAAAAAAAAAAAAAAAAAAAAAAAQqhlAEKoZR9CqGXWQqhl/0KoZf9CqWb/Qqlm/0KpZ/9CqWf/Qqln/0Kq - aP8/o2P/Jmw1/x9eKv8gYCz/IGEs/yFiLf8hYy7/IWQv/yFkL/8mbjf/MYNH/zOGSv80iEv/NIpN/zWM - T/81jVH/No9T/zeRVP83k1b/OJVY/zmXWv86mVz/Oppd/zucX/87nmH/PJ9j/z2hZP89o2b/PaRo/z6m - af8/p2v/P6ls/z+qbv9Aq2//QKtv/0CscP9ArHD/QKxx/0Cscf9ArHH/QK1y/0Ctcv9ArXL/QK1z/0Cu - c/9ArnO/P6xzET+scwAAAAAAAAAAAAAAAAAAAAAAQqlmAEKoZQBCqGZpQqhm/UKpZv9CqWf/Qqln/0Kp - Z/9Cqmj/Qqpo/0Kqaf9Cq2r/OZda/yBgLP8fXCn/H14r/iBgLPMgYS3rIGIu6iBjL+ogZC/qImcy6i59 - Q+kzh0voNIhM6DSKTug1jFDoNo5S6DaQU+g3klXnOJNX5ziVWec5l1vnOplc5zqaXuc7nGDnO55i5zyg - Y+c9oWXnPaNn5j6laOY+pmrmP6hs5j+pbec/q2/wQKxw/kCscP9ArHH/QKxx/0Ctcv9ArXL/QK1y/0Ct - c/9ArnP/QK50/0CudP9ArnT/QK519kCudExArnUAAAAAAAAAAAAAAAAAAAAAAEKpZwBCqWcIQqlns0Kp - Z/9CqWf/Qqpo/0KqaP9Cqmj/Qqpp/0Kqaf9Cq2r/Q6xr/zOJTv8dWif/H14q0CFjL3IkaTQ8JWw2LiVs - Ni4lbTYtJW43LSVuNy0tfUMsNIpOKjWLTyo1jVEqNo9SKjaQVCk3klYpOJRXKTiVWSk5l1opOZlcKTqa - Xig7nF8oO51hKDyfYyg8oWQoPaJmKD2kaCc+pWknPqdrJz+obCc/qm4oQKtwOUCscXVArXLWQK1y/0Ct - cv9ArXP/QK1z/0Cuc/9ArnT/QK50/0Cudf9ArnX/QK91/0Cvdv9Ar3aWO6JqAT+sdAAAAAAAAAAAAAAA - AABCqmgAQqpoJUKqaOJCqmj/Qqpo/0Kqaf9Cqmn/Qqpp/0Krav9Cq2r/Qqtq/0Ksa/8sfEP/HlsosSRp - MyIRPhIAL4FGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAECv - dABAq3EAQK5zKUCuc71ArnP/QK50/0CudP9ArnX/QK51/0Cvdf9Ar3b/QK92/0Cvd/9AsHf/QLB3zT+v - dhM/r3YAAAAAAAAAAAAAAAAAQqpoAEKqaEdCqmn3Qqpp/0Kqaf9Cq2r/Qqtq/0Krav9Cq2v/Qqxr/0Ks - bP9Bqmr/K3lB1B5cKCUfXisAW+SPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAQLB2AECudQBAr3UxQK514ECudf9Ar3X/QK92/0Cvdv9Ar3b/QLB3/0Cw - d/9AsHj/QLB4/0CweOpAsHguQLB4AAAAAAAAAAAAAAAAAEKraQBCqmllQqtq/0Krav9Cq2r/Qqtr/0Ks - a/9CrGv/Qqxs/0KsbP9CrW3/QKlp/zGHTXpMyIIAMHtIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAsHcARLl/AECvdpBAr3b/QK92/0Cv - d/9AsHf/QLB4/0CweP9AsHj/QLB4/0CxeP9AsXj4QLF5R0CxeQAAAAAAAAAAAAAAAABCq2oAQqtqdkKr - av9CrGv/Qqxr/0KsbP9CrGz/Qqxs/0Ktbf9CrW3/Qq1u/0GrbPQ7nmE/PKFjAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAECv - dwBAsHdZQLB3/UCwd/9AsHj/QLB4/0CweP9AsXj/QLF4/0Cxef9AsXn/QLJ6/ECxelZAsnoAAAAAAAAA - AAAAAAAAQqxrAEKsa3xCrGz/Qqxs/0KsbP9CrW3/Qq1t/0Ktbf9CrW7/Qq1u/0Kub/9Crm/rQq1vL0Kt - bwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO5RRADuU - UQA7lFEMO5RRGTuUURQ7lFEEO5RRADuUUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAABAsHgAQLB4SUCwePpAsHj/QLF4/0CxeP9AsXn/QLF5/0Cxef9Asnr/QLJ6/0Cy - e/1AsntbQLJ7AAAAAAAAAAAAAAAAAEKsbABCrGx8Qq1t/0Ktbf9CrW3/Qq1u/0Ktbv9Crm//Qq5v/0Ku - b/9CrnD/Qq5w6kKvcC5Cr3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAA7lFEAO5RRADuUURk7lFF2O5RRwDuUUdk7lFHQO5RRnzuUUT87lFEDO5RRAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQLF5AECxeUlAsXj6QLF5/0Cxef9AsXn/QLJ6/0Cy - ev9Asnv/QLJ7/0Cye/9Asnz9QLJ8W0CyfAAAAAAAAAAAAAAAAABCrW4AQq1tfEKtbv9CrW7/Qq1u/0Ku - b/9Crm//Qq5w/0KucP9Cr3D/Qq9x/0KvcepCr3EuQq9xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAA7lFEAO5RRADuUUSY7lFG8O5RR/juUUf87lFH/O5RR/zuUUf87lFHrO5RRejuU - URA7lFEAO5RRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAECxegBAsXpFQLF5+ECy - ev9Asnr/QLJ6/0Cye/9Asnv/QLJ8/0CyfP9Asnz/QLJ9/ECyfVdAsn0AAAAAAAAAAAAAAAAAQq5vAEKt - bnxCrm//Qq5v/0KucP9CrnD/Qq9w/0Kvcf9Cr3H/Qq9y/0Kvcv9CsHLqQrBzLkKwcwAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO5RRADuUURQ7lFGxO5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUfs7lFGtO5RRKzuUUQA7lFEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AABAsnsAQLJ7LUCyeuhAsnv/QLJ7/0CyfP9Asnz/QLJ8/0Cyff9Asn3/P7N+/z+zfvE/s347P7N+AAAA - AAAAAAAAAAAAAEKucABCrnB8Qq5w/0KvcP9Cr3H/Qq9x/0Kvcf9Cr3L/QrBy/0Kwc/9CsHP/QrBz6kKw - dC5CsHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO5RRADuUUQY7lFGJO5RR/TuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUdY7lFFVO5RRBTuUUQAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAQLN9AEC0fQlAsnyuQLJ8/0CyfP9Asn3/QLJ9/z+zff8/s37/P7N+/z+z - f/8/tH++P7WAED+0gAAAAAAAAAAAAAAAAABCr3EAQq9xfEKvcf9Cr3H/Qq9y/0Kvcv9CsHP/QrBz/0Kw - c/9CsHT/QrF0/0KxdOpCsXUuQrF1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO5RRADuU - UQA7lFFeO5RR8zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR8TuU - UYg7lFEVO5RRADuUUQAAAAAAAAAAAAAAAAAAAAAAAAAAAEG4ggBAs30AQLR+O0Czfd8/s33/P7N+/z+z - fv8/s37/P7R//z+0f/8/tIDoP7WAST+0gABAt4EAAAAAAAAAAAAAAAAAQq9yAEKvcnxCr3L/QrBy/0Kw - c/9CsHP/QrB0/0KxdP9CsXT/QrF1/0Kxdf9CsnbqQrJ2LkKydgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAO5RRADuUUQA7lFE5O5RR3zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH9O5RRuTuUUTU7lFEAO5RRAAAAAAAAAAAAAAAAAAAAAAAAAAAAQLeBAEbK - jQA/tX9FP7R/yD+0f/o/tH//P7SA/z+0gPw/tYHQP7WBUUG5hQJAt4MAAAAAAAAAAAAAAAAAAAAAAEKw - cwBCsHN8QrBz/0KwdP9CsXT/QrF0/0Kxdf9CsXX/QrF1/0Kydv9Csnb/QrJ36kKydy5CsncAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAADuUUQA7lFEcO5RRwTuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFHfO5RRYjuUUQg7lFEAAAAAAAAA - AAAAAAAAAAAAAAAAAABBu4YAPKpzAEC2gRc/toFWP7WBgT+1gYM/toJbP7aDHEbNmgBAuYUAAAAAAAAA - AAAAAAAAAAAAAAAAAABCsXQAQrF0fEKxdP9CsXX/QrF1/0Kxdf9Csnb/QrJ2/0Kyd/9Csnf/QrJ3/0Kz - eOpCs3guQrN4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADuUUQA7lFEKO5RRmjuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - UfU7lFGVO5RRHDuUUQA7lFEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQrF1AEKxdXxCsXX/QrJ2/0Kydv9Csnb/QrJ3/0Ky - d/9Cs3j/QrN4/0KzeP9Cs3nqQrN5LkKzeQAAAAAAAAAAAAAAAAAAAAAAAAAAADuUUQA7lFEBO5RRbzuU - Ufg7lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/juUUcQ7lFE/O5RRAjuUUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEKydgBCsnZ8QrJ2/0Ky - d/9Csnf/QrN4/0KzeP9Cs3j/QrN5/0Kzef9CtHr/QrR66kK0ei5CtHoAAAAAAAAAAAAAAAAAAAAAADyW - UwA7k1AAO5RRRzuUUeg7lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR5juUUW87lFEMO5RRAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AABCsncAQrJ3fEKyd/9Cs3j/QrN4/0Kzef9Cs3n/QrR5/0K0ev9CtHr/QrR7/0K0e+pCtXsuQrR7AAAA - AAAAAAAAAAAAAD+bVQA7lFEAO5VRJzuUUc47lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH4O5RRojuUUSQ7lFEAO5RRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAQrN4AEKzeHxCs3n/QrN5/0K0ef9CtHr/QrR6/0K0e/9CtHv/QrV7/0K1 - fP9CtXzqQrV8LkK1fAAAAAAAAAAAAAAAAAA7lVEAO5VSEDuUUas7lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFHPO5RRSzuUUQM7lFEAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEK0eQBCtHl8QrR6/0K0ev9CtHr/QrR7/0K1 - e/9CtXz/QrV8/0K1fP9CtX3/QrZ96kK2fS5Ctn0AAAAAAAAAAAA7lFEAO5VSADuUUXQ7lFH8O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFHfO5RR6zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUew7lFF9O5RREDuU - UQA7lFEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCtHsAQrR6fEK0 - e/9CtHv/QrV7/0K1fP9CtXz/QrV9/0K2ff9Ctn3/QrZ+/0K2fupCtn4uQrZ+AAAAAAAAAAAAO5RRADuU - URo7lFHTO5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFHhO5RRPzuU - UUk7lFHPO5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR+zuUUa87lFEsO5RRADuUUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAQrV8AEK1e3xCtXz/QrV8/0K1ff9Ctn3/QrZ9/0K2fv9Ctn7/QrZ//0K3f/9Ct3/qQreALkK3 - gAAAAAAAAAAAADuUUQA7lFE+O5RR9DuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH0O5RRYjuUUQA7lFEAO5RRJDuUUaQ7lFH5O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR1juUUVA7lFEDO5RRAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAEK1fQBCtX18QrZ9/0K2ff9Ctn7/QrZ+/0K2fv9Ctn//Qrd//0K3 - gP9Ct4D/QreA6kK4gS5CuIEAAAAAAAAAAAA7lFEAO5RRSTuUUfo7lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH+O5RRjTuUUQY7lFEAAAAAADuUUQA7lFEMO5RRcTuUUec7lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFHtOZFPeDSK - Sww0iEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCtn4AQrZ+fEK2fv9Ctn7/QrZ//0K3 - f/9Ct4D/QreA/0K3gP9CuIH/QriB/0K4gepCuIIuQriCAAAAAAAAAAAAO5RRADuUUTI7lFHsO5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RRtTuUURU7lFEAAAAAAAAAAAAAAAAAO5RRADuU - UQI7lFFCO5RRxzuUUf47lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zmQTvk1kFONQcKSDT+2ggAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQrd/AEK2 - f3xCt3//Qrd//0K3gP9Ct4D/QriB/0K4gf9CuIH/QriC/0K5gv9CuYPqQrmDLkK5gwAAAAAAAAAAADuU - UQA7lFEMO5RRtzuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR1zuUUS87lFEAO5RRAAAA - AAAAAAAAAAAAAAAAAAA7lFEAO5RRADuUUR47lFGZO5RR9juUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf86kU//NItN+DurdoZG1KkIQcKSAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAEK3gABCt4B8QreA/0K3gf9CuIH/QriB/0K4gv9CuIL/QrmC/0K5g/9CuYP/QrmE6kK5 - hC5CuYQAAAAAAAAAAAA7lFEAO5RRADuUUUU7lFHnO5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR6zuU - UVE7lFEAO5RRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7lFEAO5RRCTuUUWY7lFHiO5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/OpJQ/zGERP83m2LyQcGRaVb/ - /wBBwpIAAAAAAAAAAAAAAAAAAAAAAAAAAABCuIEAQriBfEK4gf9CuIL/QriC/0K5gv9CuYP/QrmD/0K5 - hP9CuYT/QbqE/0G6hepBuoUuQbqFAAAAAAAAAAAAAAAAADuUUQA7lFEBO5RRUTuUUdM7lFH9O5RR/zuU - Uf87lFH9O5RR1zuUUVg7lFECO5RRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADuU - UQA7lFEBO5RROTuUUb47lFH9O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zqS - UP8wgkP/MIdL/T63ht5CxZY0QcKTAEG9lwAAAAAAAAAAAAAAAAAAAAAAQrmCAEK4gnxCuYL/QrmD/0K5 - g/9CuYP/QrmE/0G6hP9BuoX/QbqF/0G6hf9BuobqQbuGLkG7hgAAAAAAAAAAAAAAAAAAAAAAO5RRADuU - UQA7lFEfO5RRYzuUUY87lFGQO5RRZjuUUSI7lFEAO5RRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAO5RRADuUUQA7lFEYO5RRjjuUUfM7lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf85kE7/Ln5B/y18P/46qXT8QcSWokHDlQZBw5UAAAAAAAAAAAAAAAAAAAAAAEK5 - gwBCuYN8QrmD/0K5hP9CuYT/QbqF/0G6hf9BuoX/QbqG/0G7hv9Bu4f/QbuH6kG7hy5Bu4cAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAADuUUQA7lFEAO5RRADuUUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO5RRADuUUQY7lFFcO5RR2zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/NYlJ/yx7Pv8reTz/NZli+kHDlexBw5U7QcOVAAAA - AAAAAAAAAAAAAAAAAABBuoQAQbmEfEG6hP9BuoX/QbqF/0G6hv9Bu4b/QbuG/0G7h/9Bu4f/QbuI/0G8 - iOpBvIguQbyIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAA7lFEAO5RRADuUUTA7lFG1O5RR/DuUUf87lFH/O5RR/zuUUf87lFH/OZBO/y5+QP8qeDz/KnY6/zKQ - WPhBw5X/QcSWiEHDlQBBxJcAAAAAAAAAAAAAAAAAQbqFAEG6hXxBuob/QbuG/0G7hv9Bu4f/QbuH/0G7 - iP9BvIj/QbyI/0G8iP9BvInqQbyJLkG8iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAADuUUQA7lFEAO5RREzuUUYU7lFHzO5RR/zuUUf87lFH/OI5N/y9/ - Qf8qdzr/KnY6/yl0OP8xj1j4QcSW/0HFl8VBxZgPQcWYAAAAAAAAAAAAAAAAAEG6hQBBuoV8QbqF/0G6 - hf9Buob/QbuG/0G7hv9Bu4f/QbuH/0G7h/9BvIj/QbyI60G8iC9BvIgAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADuUUQA8llIFOpNQgDmQ - Tv02i0r/MYNE/yt5PP8pdTn/KXQ5/yh0OP8ncjf/NJlk+UHGmf9BxZjmQcWZKEHFmQAAAAAAAAAAAAAA - AABBuoQAQbqEeUG6hf9Bu4X/QbuF/0G7hv9Bu4b/QbuG/0G7h/9Bu4f/QbuH/0G7iPJBvIg7QbyIAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAMIFCADCCQyEseT3dKXY6/yh0Of8oczj/KHM4/ydyN/8ncTb/KHU6/TqvfvpBx5r/Qcaa9EHG - mj9BxpoAAAAAAAAAAAAAAAAAQbuFAEG7hWtBu4X/QbuG/0G7hv9Bu4f/QbuH/0G7h/9Bu4j/QbyI/0G8 - iP9BvIj/QbyJbEG8iABBvYoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAC59PwAtfD8TKHU5zSdzN/8ncjf/J3E2/yZxNv8mcDX/JW4z/y+O - WPpAw5f9Qcaa/0HGm/pBx5xIQcecAAAAAAAAAAAAAAAAAEG7hgBBu4ZQQbuH+kG7h/9Bu4f/QbuI/0G7 - iP9BvIj/QbyI/0G8iP9BvIn/Qb2J/0G9isdBvYsaQb2KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApdTkAKXY6LSdyN+cmcTb/JnA1/yVv - Nf8lbjT/JG0y/iyFTvs+u438Qcec/0HGm/9Bxpz4QcieRUHIngAAAAAAAAAAAAAAAABBu4cAQbuHLkG7 - iOlBu4j/QbyI/0G8iP9BvIj/QbyJ/0G9if9BvYn/Qb2K/0G9iv9Bvov+Qb6LnkG+jBZBvowAQb2MAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsdDgAMHQ4BShy - N4oncDb/J282/yhvNf8nbjX/KHU8/DGTXvo+vI78Qcea/0HGmv9Bxpr/Qcec7kHJoDVByaAAAAAAAAAA - AAAAAAAAQbyIAEG8iA5BvIjCQbyI/0G8iP9BvYn/Qb2J/0G9iv9BvYr/Qb2K/0G+i/9Bvov/Qb6M/0G+ - jPxBv43AQb+NXUG/jipBwI8dQcCQHUHAkB1BwJAdQcCRHUHBkR1BwZIdQcGSHUHBkh1BwpIdQcKSHUHC - kx1BwpMdQcKUHUHDlB1Bw5QdQcOVHUHDlR1Bw5UdQcSWHUHElh1BxJcdQcSXHUHElx1BxJgdQcWZHUHH - nR1ByZ4dOKRyMC6CS4wtekPzL3xG/zOBTPs5jFn7P59w+kW2iftHxZn+Q8aZ/0HEmP9BxZj/QcWY/0HH - ndlBy6MbQcqiAAAAAAAAAAAAAAAAAEG8iQBBvYkAQbyJfkG9if9BvYr/Qb2K/0G9iv9Bvov/Qb6L/0G+ - jP9Bvoz/Qb6M/0G/jf9Bv43/Qb+O/0G/jvpBwI7oQcCP30HAj99BwJDfQcCQ30HBkd9BwZHfQcGR30HB - kt9BwpLfQcKS30HCk99BwpPfQcKU30HDlN9Bw5TfQcOV30HDld9Bw5bfQcSW30HElt9BxJffQcSX30HF - l99BxZjfQcWY30HGmt9Bx53fQcie4EHDmOtDvZL9Sb+W/lDDm/9WyKH9Ws6p/VvRrf9ZzKX/Ucie/0fF - mf9CxJf/QcOW/0HEl/9ByJ+tQc+qBkHLowAAAAAAAAAAAAAAAAAAAAAAQb2KAEG9ijBBvYrmQb2L/0G+ - i/9Bvov/Qb6M/0G+jP9Bvoz/Qb6N/0G+jf9Bv47/Qb+O/0G/jv9Bv47/Qb+P/0HAj/9BwI//QcCQ/0HA - kP9BwJH/QcCR/0HBkf9BwZL/QcGS/0HBkv9BwpP/QcKT/0HCk/9BwpT/QcOU/0HDlP9Bw5X/QcOV/0HD - lv9BxJb/QcSW/0HEl/9BxJf/QcSX/0HEl/9Bx5z/Qcie/0LIn/9GyqL/UM6n/1rRrf9i07H/aNW0/2zW - tv9t1bb/atCr/1zKov9Oxpr/RcOW/0HCk/9BxZj9QcqiaEHJoABBy6MAAAAAAAAAAAAAAAAAAAAAAEG9 - iwBBvowDQb2KkkG9iv9BvYr/Qb2K/0G9i/9BvYv/Qb2L/0G+i/9Bvoz/Qb6M/0G+jf9Bvo3/Qb6N/0G/ - jv9Bv47/Qb+O/0G/j/9Bv4//QcCP/0HAkP9BwJD/QcCQ/0HAkf9BwZH/QcGR/0HBkf9BwZL/QcGS/0HC - kv9BwpP/QcKT/0HCk/9BwpT/QcKU/0HClP9Bw5T/QcOV/0HDlf9BxJf/Qcie/0HJn/9DyaD/Scuk/1bP - q/9m1LP/cti6/3vavv+A3MH/g9u//3jTsP9kzKX/VMab/0jDlP9CwZL/Qced2UHNpiJBzKQAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAQbyIAEG8iShBvIjXQbyI/0G8if9BvIn/QbyJ/0G9iv9BvYr/Qb2K/0G9 - i/9BvYv/Qb2L/0G9jP9Bvoz/Qb6M/0G+jf9Bvo3/Qb6N/0G+jv9Bv47/Qb+O/0G/jv9Bv4//Qb+P/0HA - j/9BwI//QcCQ/0HAkP9BwJD/QcCR/0HAkf9BwZH/QcGS/0HBkv9BwZL/QcGS/0HCk/9BwpP/QcWZ/0HJ - oP9ByaD/Q8qi/0rMpv9Y0K3/adW1/3zbv/+M38f/kuHK/5Hdw/+B1LP/a8ym/1jGm/9KwpL/Q8SX/kHL - pHpEsXgAQcylAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEG7hwBBuYYAQbuHXEG7h/JBu4f/QbuH/0G7 - h/9Bu4j/QbuI/0G8iP9BvIn/QbyJ/0G8if9BvIn/QbyJ/0G9iv9BvIr/Qb2K/0G9i/9BvYv/Qb2L/0G+ - i/9Bvov/Qb6M/0G+jP9Bvo3/Qb6N/0G/jf9Bv47/Qb+O/0G/jv9Bv47/Qb+P/0G/j/9Bv4//QcCP/0HA - j/9BwJD/QcGT/0HInv9ByqH/Qcqh/0PLo/9Kzaf/VtGt/2bVtf952r7/juDJ/5Thyv+S2r7/hNSz/27M - pv9axZn/S8SW/0TKor9BzqkYQs2nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQbqGAEG7 - hwVBuoV/QbmE+UG5hP9BuoX/QbqF/0G6hf9Buob/QbqG/0G6hv9Buob/QbqH/0G7h/9Bu4f/QbuH/0G7 - iP9Bu4j/QbuI/0G8iP9BvIj/QbyJ/0G8if9BvIn/QbyK/0G8iv9BvIr/Qb2L/0G9i/9BvYv/Qb2L/0G9 - jP9Bvoz/Qb6M/0G+jP9Bvoz/Qb6N/0HFmf9ByqL/Qcqi/0HKov9Cy6P/SM2m/1PQrP9i1LP/c9m8/4Xe - xf+J2Lv/g9Kv/3nPqf9ryqH/Wcaa/0zMpNtJ0Kw5Rs6pAFPSrwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAABBuYQAQbmECkG4g4VBuIL2QbiC/0G4gv9BuIP/QbiD/0G4g/9BuYP/QbmE/0G5 - hP9BuYT/QbmE/0G5hP9BuYX/QbqF/0G6hf9BuoX/QbqF/0G6hv9Buob/QbqG/0G6hv9Buof/QbuH/0G7 - h/9Bu4f/QbuH/0G7iP9Bu4j/QbuI/0G8iP9Bu4j/QbuJ/0HBk/9ByqH/Qcuj/0HLo/9By6P/Qsuk/0bN - pv9Pz6v/XNOy/2vXuf9107H/dMuj/2/Jn/9nxpv/Xsid/1bPqd1Y1LNKAAAAAH/exAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEG4ggBBuIIIQbeAbEG2f+ZBtn//QbZ//0G2 - f/9BtoD/QbeA/0G3gP9Bt4D/QbeB/0G3gf9Bt4H/QbiB/0G4gf9BuIL/QbiC/0G4gv9BuIL/QbiC/0G4 - gv9BuIP/QbiD/0G4g/9BuYP/QbmE/0G5hP9BuYT/QbmE/0G5hP9BuYT/QbmE/0G/jv9ByaD/Qcuj/0HL - o/9By6T/Qcyk/0HMpf9Dzab/Sc+q/1PPq/9fyaD/Y8OV/2LCk/9ew5X/Wcmf/VbQrMNj2Lk+////Av// - /wD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQbeAAEG4 - ggJBtn48QbV9s0G0fPZBtHz/QbR8/0G1fP9BtXz/QbV9/0G1ff9BtX3/QbV9/0G1ff9BtX3/QbV+/0G2 - fv9BtX7/QbV+/0G2fv9Btn7/QbZ//0G2f/9Btn//QbZ//0G2f/9Btn//QbaA/0G3gP9BtoD/QbeA/0G+ - jf9ByaD/Qcuk/0HLpP9BzKX/Qcyl/0HMpv9Bzab/Qsui/0XEl/9LvIj/UbqE/1O+jP9SxZj+Us2m4FfT - sYN13MIf////Af///wH///8A////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAABBuH8AQbR9AEG1fg1BtHtTQrN6rkKyeehCsnn9QrJ4/0Kzef9Cs3n/QrN5/0Kz - ef9Cs3n/QrN5/0Kzef9Cs3n/QrN5/0Kzev9Cs3r/QrN6/0Kzev9Cs3r/QrN6/0K0ev9CtHr/QrR6/0K0 - e/9CtHv/QreB/0HBk/9ByqL/Qcyl/0HMpf9BzKX/Qcym/0HNpv9ByqH/QcOV/0G9if9Cu4b/RL+N/kbF - mfBJzKTITdGufl7XuS217eEE////Af///wD///8A////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAuIMAQrJ5AEG0fAhCs3ktQrJ4YkKy - d5FCsXawQrF2v0KxdsVCsXbGQrF2xkKxdsZCsXfGQrF3xkKxd8ZCsXfGQrJ3xkKyd8ZCsnfGQrJ4xkKy - eMZCsnjGQrJ4xkKyeMZCs3nEQrqFwUHGm8FBzKXBQcylwUHMpcFBzKbBQc2mwUHNp8FBzafBQcujwEHJ - n7pByqGsQcylkEHOqWlD0K06TtS0Ep/s3QEAtXsA////AP///wD///8AAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAEC3hAA+u4oBQrF4BEKzeQpBtHsOQbR8DkG0fA5BtHwOQbR8DkG0fA5BtH0OQbR8DkG1 - fA5BtXwOQbV9DkG1fQ5BtX0OQbV9DkG1fQ5BtH4OQbiEDUHNpwtB0q4LQcymC0HMpQtBzKYLQc2mC0HN - pwtBzacLQc2oC0HRrQtB1rUIQdq9A0HhzgBB4MsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// - ///////////////////////////////8AAAAAB///+AAAAAAB///wAAAAAAB//+AAAAAAAD//gAAAAAA - AH/+AAAAAAAAP/wAAAAAAAAf+AAAAAAAAA/4AAAAAAAAD/AAAAAAAAAH8AAAAAAAAAfgAAAAAAAAA+AA - f////wAD4AD/////gAPgAf/////AA+AB/////8AD4AH//h//wAPgAf/4B//AA+AB//AD/8AD4AH/4AH/ - wAPgAf/AAH/AA+AB/8AAP+AH4AH/gAAf8AfgAf8AAAf4H+AB/gAAA///4AH8AAAA///gAfwAAAB//+AB - +AAAAD//4AHwAAAAD//gAfAAAAAH/+AB4AAAAAP/4AHgAGAAAP/gAeAAcAAAf+AB4AD4AAA/4AHgAf4A - AB/gAfAD/wAAH+AB8AP/gAAP4AH8D//gAAfgAf////AAB+AB/////AAH4AH////+AAPgAf////8AA+AB - /////4AD4AH/////gAPgAP////+AA+AAf////wAD4AAAAAAAAAPwAAAAAAAAA/AAAAAAAAAH8AAAAAAA - AAf4AAAAAAAAD/wAAAAAAAAP/AAAAAAAAB/+AAAAAAAAP/8AAAAAAAA//4AAAAAAAD//4AAAAAAA///4 - AAAAAAf///8AAAAA////////////////////////KAAAAIAAAAAAAQAAAQAgAAAAAAAAAAEAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCpV4AQqVdAEKlYAhCpWASQqVgGUKlYCRCpmAtQqZgMkKm - YTVCpmE1QqZhNUKmYTVCp2I1Q6hjNUSpZTVCpmI1PZxaNTmUUzU2jU43M4hKPTOFSEEzhUdCNopLQTaM - TUA2jU5AN45PPzePTz83j1A/OJBQPziQUT44kVE+OJFSPTmSUj05k1M9OZNUPTmUVTw5lVU8OpVWPDqW - Vzw6l1c7OpdYOzuYWDs7mFk7O5laOzyaWjo8m1s6PJtbOj2cXDo9nV05PZ1eOT2eXjk9nl85Pp9fOT6g - YDg+oWE4PqJiOD6iYjg/o2M4P6NjOD+kYzc/pGUzP6VlLUCmZSBApmYXQKZmEEClZgZAomAAQKRkAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQqVfAEKlXwFCpV8NQqVfKkKl - X1lCpWCEQqVgp0KlYMRCpWDbQqZg5kKmYOlCpmHrQqZh60KmYetCpmHrQqdi60KlYes/n1zrOZRU6zWK - TOsxg0brL35B6y16P+wtej/uLntA7zGARPA0hkjvNIdJ7zSISu81iUvvNYpM7zWLTO82jE3vNoxO7jeN - T+43jlDuN49Q7jeQUe44kVLuOJJS7jiSU+45k1TuOZRV7jmVVu46llbtOpZX7TqXWO07mFntO5lZ7Tua - Wu08mlvtPJtc7TycXO09nV3tPZ1e7T2eXu09n1/tPaBg7T6hYe0+oWHsPqJi7D+jY+w/o2PsP6Rk7D+k - Zes/pWXpP6Zm5ECmZtZAp2e/QKdnn0CnZ3lApmdNQKdoIECnaAhAp2QAQKdnAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AABCpV4AQqVgAEKlXwlCpV8zQqVfdkKlX7dCpWDkQqVg90KlYP9CpWD/QqZg/0KmYf9CpmH/QqZh/0Km - Yf9CpmH/Qqdi/0GkYP87mFf/NIhK/y58QP8sdz3/K3Y8/yt2PP8sdzz/LHc9/yx4Pv8wfkL/M4VH/zSG - Sf80h0n/NIhK/zWJS/81iUv/NYpM/zaLTf82jE7/No1P/zeOT/83j1D/N5BR/ziQUv84kVL/OJJT/zmT - VP85lFX/OZVW/zqWV/86l1f/OpdY/zqYWf87mFn/O5la/zuaW/88m1z/PJxd/zydXf89nl7/PZ5f/z2f - X/89oGD/PqBh/z6hYf8+omL/PqNj/z+kZP8/pGT/P6Vl/z+lZf8/pmb/QKZn/0CnZ/9Ap2f/QKdn/kCn - aPRAp2jbQKdop0CnaGRAp2gkQKdoBUCnaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCpV4AQqUAAEKlXxBCpV9RQqVfqEKlYOdCpWD9QqVg/0Kl - YP9CpmD/QqZh/0KmYf9CpmH/QqZh/0KmYf9CpmH/QqZi/0KmYv88mlj/MoRG/yx2O/8qczn/KnQ6/yp0 - O/8rdTv/K3Y8/yt2PP8rdz3/L31B/zOER/8zhkj/NIdJ/zSHSv80iEr/NYlL/zWJTP81i03/NoxN/zaM - Tv83jU//N49Q/zePUf83kFH/OJBS/ziSU/84k1T/OZNV/zmUVf85lVb/OpZX/zqWWP86l1j/O5hZ/zuY - Wv87mlv/PJpb/zybXP88nF3/PJ5e/z2eXv89nl//PZ9g/z2gYP8+oWH/PqJi/z6jY/8+o2T/P6Rk/z+k - Zf8/pWX/P6Vm/z+mZ/9Ap2f/QKdo/0CnaP9Ap2j/QKdo/0CnaP9Ap2n/QKdp+kCnadpAp2mRQKdpO0Co - aQhAqGkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQqVgAEKl - YAtCpV9RQqVgt0KlYPNCpWD/QqVg/0KmYP9CpmD/QqZh/0KmYf9CpmH/QqZh/0KmYf9CpmL/QqZi/0Kn - Yv9Ao1//NYxN/yt2PP8pcTj/KXE5/ypyOf8qczn/KnM6/yp0O/8qdTv/K3U7/y16P/8yg0b/M4VI/zOG - SP80hkn/NIdK/zSISv81iUv/NYpM/zWLTf82jE7/NoxO/zeNT/83j1D/N49R/zeQUf84kVL/OJJT/ziT - VP85lFX/OZRV/zmVVv86llf/OpZY/zqXWf87mFn/O5la/zuaW/88m1z/PJtc/zydXf88nl7/PZ5e/z2f - YP89oGD/PaBh/z6hYv8+omL/PqNk/z6kZP8/pGX/P6Rl/z+lZv8/pmf/P6dn/0CnaP9Ap2j/QKdo/0Cn - af9Ap2n/QKdp/0Cnaf9Ap2n/QKhq/0Coav5AqGrpQKhqnD+najc/pmgEP6dpAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAQqVgAEKkYAFCpWAzQqVgpEKlYPJCpWD/QqZg/0KmYP9CpmH/QqZh/0Km - Yf9CpmH/QqZh/0KmYv9CpmL/QqZi/0KnYv9Cp2P/P6Bc/zGCRf8ocDf/KW83/ylwN/8pcTj/KXI5/yly - Of8pczn/KnQ6/yp0Ov8rdjz/MIBE/zOER/8zhUj/M4ZI/zSHSf80h0r/NIhL/zWJS/81ikz/NYtN/zaM - Tv82jE7/N45Q/zePUP83j1H/N5FS/ziRU/84klP/OJNU/zmTVf85lFb/OZVX/zqWWP86l1j/OphZ/zuY - Wv87mlr/O5tc/zybXP88m13/PJ1d/zyeXv89nl//PZ9g/z2gYP89oGH/PqFi/z6iY/8+o2T/PqRk/z+k - Zf8/pWb/P6Zm/z+mZ/8/p2j/QKdp/0Cnaf9Ap2n/QKdp/0Cnaf9AqGn/QKhq/0Coav9AqGr/QKhq/0Co - a/9AqGv/QKhr5ECpaoQ/qGodH41NAD+oaQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEKlYABCpWANQqVga0Kl - YN1CpWD/QqZg/0KmYf9CpmH/QqZh/0KmYf9CpmH/QqZi/0KmYv9CpmL/QqZi/0KnYv9Cp2P/Qqhj/z6e - XP8vfUH/KG41/yhuNv8obzf/KG83/yhwN/8pcTj/KXE5/ylyOf8pczn/KXM6/y57QP8yg0b/M4RH/zOF - SP8zhkj/NIdJ/zSHSv80iUv/NYlM/zWKTf81i03/NoxO/zaNT/83jlD/N45R/zeQUf83kVL/OJFT/ziS - VP84k1X/OZRV/zmVVv85llf/OpZY/zqYWf86mFn/O5ha/zuZW/87m1z/PJtc/zycXf88nV7/PJ5f/z2e - YP89oGD/PaBh/z2hYv8+oWL/PqJj/z6jZP8+pGX/P6Vl/z+lZv8/pmf/P6Zo/z+naP9Ap2n/QKdp/0Cn - af9AqGr/QKhq/0Coav9AqGr/QKhq/0Coa/9AqGv/QKhr/0Cpa/9AqWv/QKls/ECpa8RAqGtIPqRnBD+m - aQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAEKmXwBCpmEAQqZgH0KmYJxCpmD1QqZg/0KmYf9CpmH/QqZh/0KmYf9CpmL/QqZi/0Km - Yv9CpmL/Qqdi/0KnYv9Cp2P/Qqdj/0KnY/8/oF7/Ln1B/ydsNP8nbTX/J241/yhuNv8obzb/KG83/yhw - N/8ocDj/KHE4/yhxOP8qdTv/MYBE/zKDRv8yhEf/M4VI/zOGSf80h0n/NIdL/zSJS/81ikz/NYpN/zWL - Tv82jE7/No1P/zeOUP83jlH/N49S/zeRU/84kVP/OJJU/ziTVf85lFb/OZVW/zmWV/86llj/OphZ/zqY - Wv87mVr/O5pb/zubXP88nF3/PJ1d/zydXv88nl//PZ5g/z2gYf89oGL/PaFi/z6iY/8+omT/PqRl/z6k - Zf8/pWb/P6Vn/z+mZ/8/pmj/P6dp/0Coav9AqGr/QKhq/0Coav9AqGr/QKhr/0Coa/9AqGv/QKlr/0Cp - a/9AqWz/QKls/0CpbP9AqWz/QKls/0CpbOhAqWx1P6hqDj+oawAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCpmEAQqZfAEKmYTFCpmG9QqZh/kKm - Yf9CpmH/QqZh/0KmYf9CpmL/QqZi/0KmYv9Cp2L/Qqdi/0KnY/9Cp2P/Qqdj/0KnY/9Cp2T/QaRh/zCB - Rf8mazP/Jmw0/ydsNP8nbTX/J201/yduNv8nbjb/KG83/ydvN/8ocDj/KHA4/y15P/8yg0b/MoNG/zOE - R/8zhUj/M4ZJ/zSHSv80iEv/NIlL/zWKTP81ik3/NYxO/zaMT/82jU//N45Q/zePUf83kFL/N5FT/ziS - VP84klT/OJRV/zmUVv85lVf/OZZX/zqXWf86mFn/Opha/zuZW/87mlz/O5td/zycXf88nF7/PJ1f/zye - YP89n2D/PaBh/z2gYv89omP/PqJj/z6iZP8+pGX/PqRm/z+lZv8/pWf/P6Zo/z+naf8/qGn/QKhq/0Co - av9AqGv/QKhr/0Coa/9AqGv/QKlr/0CpbP9AqWz/QKls/0CpbP9AqWz/QKlt/0Cpbf9AqW3/QKlt/0Cq - bfZAqWyWP6lsFz+pbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAQqZhAEKmYgBCpmE7QqZhzUKmYf9CpmH/QqZh/0KmYv9CpmL/QqZi/0KnYv9Cp2L/Qqdj/0Kn - Y/9Cp2P/Qqdj/0KnY/9Cp2T/Qqhk/0KoZP81jE3/Jms0/yVqMv8mazP/Jms0/yZsNP8mbDX/Jmw1/ydt - Nv8nbjb/J283/ydvN/8ocTn/L35C/zKDRv8yg0b/M4RH/zOFSP8zhkn/NIdK/zSISv80iUz/NYpN/zWK - Tf81jE7/NoxP/zaNUP83jlH/N49R/zeQU/83kVP/OJJU/ziSVf84lFX/OZRW/zmVV/85llj/OpdZ/zqY - Wv86mFr/O5lb/zuaXP87m13/PJxd/zydXv88nV//PJ9g/z2fYP89oGL/PaBi/z2iY/8+omT/PqNl/z6k - Zf8+pWb/P6Vn/z+maP8/p2j/P6dp/z+nav9AqGv/QKhr/0Coa/9AqWv/QKlr/0CpbP9AqWz/QKls/0Cp - bP9AqWz/QKlt/0Cpbf9AqW3/QKpt/0Cqbf9Aqm3/QKpt/0CqbfxAqm2oP6hsHECrbwAzi04AAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEKmYQBCpmIAQqZhOkKmYdFCpmH/QqZi/0Km - Yv9CpmL/QqZi/0KnYv9Cp2P/Qqdj/0KnY/9Cp2P/Qqdj/0KnZP9Cp2T/Qqhk/0KoZP9CqWX/PJpZ/yhv - N/8laDH/JWky/yVqMv8majP/Jms0/yZsNP8mbDX/Jmw1/yZtNf8mbTb/Jm42/ylzOv8xgET/MoNG/zKD - R/8zhEf/M4ZJ/zOHSf80h0r/NIhL/zSJTP81ik3/NYtO/zWMTv82jU//No1Q/zeOUf83kFH/N5BT/zeR - U/84klT/OJNV/ziUVv85lVf/OZVX/zmXWP86mFn/Opha/zqYW/87mVv/O5tc/zucXf88nF7/PJ1f/zyd - YP88n2D/PZ9h/z2gYv89oWP/PaJj/z6iZP8+o2X/PqRm/z6lZ/8/pWf/P6Zo/z+naf8/p2n/P6hq/0Cp - a/9AqWv/QKls/0CpbP9AqWz/QKls/0CpbP9AqW3/QKlt/0Cpbf9Aqm3/QKpt/0Cqbf9Aqm3/QKpt/0Cq - bf9Aqm3/QKpu/0Cqbv5Aqm6sQKptG0CqbQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AABCpmIAQqZhAEKmYi5CpmLLQqZi/0KmYv9CpmL/Qqdi/0KnYv9Cp2P/Qqdj/0KnY/9Cp2P/Qqdj/0Kn - ZP9CqGT/Qqhk/0KoZP9CqGT/Qqhl/0GlY/8ufUL/JGYw/yVoMf8laDH/JWky/yVpM/8lajP/JWoz/yVr - NP8mazT/Jmw1/yZsNf8mbTX/KnU8/zGCRf8yg0b/MoNH/zOFSP8zhUn/M4dK/zSHSv80iEv/NIlM/zWK - Tf81i07/NYxP/zaNT/82jVD/N45R/zeQUv83kFP/N5FT/ziSVP84k1X/OJRW/zmVV/85lVj/OZdZ/zqY - Wv86mFr/Oplb/zuaXP87m1z/O5xe/zycXv88nV//PJ1g/zyfYf89n2H/PaBi/z2hY/89omT/PqNk/z6j - Zv8+pWb/PqVn/z+laP8/pmj/P6dp/z+oav8/qGv/QKlr/0CpbP9AqWz/QKls/0Cpbf9AqW3/QKlt/0Cq - bf9Aqm3/QKpt/0Cqbf9Aqm3/QKpt/0Cqbf9Aqm7/QKpu/0Crbv9Aq27/QKtu/0Crb/5Aq26iPqhsEz+p - bQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEKmYgBCpmIcQqZiuEKmYv9Cp2L/Qqdi/0Kn - Y/9Cp2P/Qqdj/0KnY/9Cp2P/Qqdk/0KnZP9CqGT/Qqhk/0KoZP9CqGX/Qqhl/0KoZf9CqWb/OJNU/yVp - Mv8jZjD/JGcw/yRnMf8kaDH/JGgy/yRpM/8laTP/JWoz/yVrNP8lazT/JWw1/yVsNf8rdz3/MoJG/zKD - Rv8yg0f/M4VI/zOGSf8zh0r/NIdL/zSIS/80ik3/NYpN/zWLTv81jE//No1P/zaOUP83j1H/N5BS/zeQ - U/83kVT/OJNV/ziTVf84lFf/OZVX/zmWWP85l1n/Opha/zqZW/86mVv/O5pc/zubXf87nF7/PJxf/zyd - YP88nmD/PJ9h/z2gYv89oWP/PaJk/z2iZP8+o2X/PqRm/z6lZ/8+pWj/P6Zo/z+naf8/qGr/P6hq/z+p - a/9AqWz/QKlt/0Cpbf9AqW3/QKlt/0Cqbf9Aqm3/QKpt/0Cqbf9Aqm3/QKpt/0Cqbv9Aqm7/QKtu/0Cr - bv9Aq27/QKtu/0Crb/9Aq2//QKtv/0Crb/tAq2+IPqltCD+qbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AABCp2IAQqdiCkKnYpRCp2L9Qqdj/0KnY/9Cp2P/Qqdj/0KnY/9Cp2T/Qqdk/0KoZP9CqGT/Qqhk/0Ko - Zf9CqGX/Qqhl/0KoZf9CqGX/Qqhm/0ClY/8seT//I2Qu/yNlL/8jZjD/I2Yw/yNnMf8kZzH/JGgy/yRp - Mv8kaTP/JGkz/yVqNP8kazT/JGs0/yt3Pv8ygkb/MoNG/zKER/8zhUj/M4ZJ/zOHSv80h0v/NIlL/zSK - Tf81ik3/NYtO/zWMT/82jVD/No5R/zePUv83kFL/N5BT/zeRVP84klX/OJNW/ziUV/85lVj/OZZY/zmX - Wf86mFr/Ophb/zqZXP87mlz/O5te/zucXv88nV//PJ5g/zyeYP88oGL/PaBi/z2hY/89omT/PaJl/z6j - Zv8+pGb/PqVn/z6maP8/pmn/P6dq/z+oav8/qGv/P6hs/0CpbP9AqW3/QKpt/0Cqbf9Aqm3/QKpt/0Cq - bf9Aqm3/QKpt/0Cqbv9Aq27/QKtu/0Crbv9Aq27/QKtv/0Crb/9Aq2//QKtv/0Crb/9ArHD/QKxw/0Cs - cPE/q29hMI9ZAD6pbQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQqdjAEKnWgBCp2NhQqdj80KnY/9Cp2P/Qqdj/0Kn - Y/9Cp2T/Qqhk/0KoZP9CqGT/Qqhl/0KoZf9CqGX/Qqhl/0KoZf9CqGX/Qqhm/0KpZv9Cqmf/OZVW/yRn - Mf8jYy7/I2Qu/yNlL/8jZjD/I2Yw/yNnMP8jZzH/JGgx/yRoMv8kaDL/JGkz/yRpM/8kajP/K3c9/zKD - Rv8yg0f/MoRH/zOFSf8zhkn/M4dK/zSHS/80iEz/NIpM/zWLTf81i0//NYxP/zaNUP82jlH/N49S/zeQ - U/83kVT/N5JU/ziTVf84lFb/OJVX/zmWWP85lln/OZda/zqYWv86mVz/Oplc/zuaXf87m17/O5xf/zyd - YP88nmD/PJ5h/zygYv89oGP/PaFj/z2iZP89o2X/PqNm/z6lZ/8+pWj/PqZp/z+maf8/p2r/P6hr/z+o - a/8/qWz/QKpt/0Cqbf9Aqm3/QKpt/0Cqbf9Aqm3/QKpu/0Cqbv9Aq27/QKtu/0Crbv9Aq2//QKtv/0Cr - b/9Aq2//QKtv/0CscP9ArHD/QKxw/0CscP9ArHD/QKxx/0Cscdk/qm8zQK1yADGHTAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AABCp2MAQqdjK0KnY9VCp2P/Qqdj/0KnZP9CqGT/Qqhk/0KoZP9CqGT/Qqhl/0KoZf9CqGX/Qqhl/0Ko - Zf9CqGb/Qqlm/0KpZv9CqWb/Qqln/0GoZv8ufkP/IWEs/yJjLf8iYy7/ImQu/yJlL/8iZS//I2Uw/yNm - MP8jZjD/I2cx/yNnMv8jaDL/I2ky/yNoMv8qdDv/MoNG/zKDR/8yhEf/M4VJ/zOGSf8zh0r/NIhL/zSI - TP80ik3/NYtO/zWMT/81jE//No1Q/zaOUf83j1L/N5BT/zeRVP83klT/OJNW/ziTVv84lFf/OZZY/zmW - Wf85l1r/Ophb/zqZXP86mlz/O5td/zubXv87nV//PJ1g/zyeYf88n2H/PKBj/z2hY/89oWT/PaJl/z2j - Zv8+o2f/PqVn/z6laP8+pmn/P6Zq/z+nav8/qGv/P6ls/z+qbf9Aqm3/QKpt/0Cqbf9Aqm7/QKpu/0Cr - bv9Aq27/QKtu/0Crb/9Aq2//QKtv/0Crb/9Aq2//QKxv/0CscP9ArHD/QKxw/0CscP9ArHH/QKxx/0Cs - cf9ArHH/QKxx/0Cscak+qm8OP6twAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQqdjAEKnYwZCp2OWQqdk/0KnZP9CqGT/Qqhk/0Ko - ZP9CqGX/Qqhl/0KoZf9CqGX/Qqhl/0KoZv9CqGb/Qqlm/0KpZv9CqWb/Qqln/0KpZ/9Cqmj/PZ5e/yVq - NP8hYSz/ImIt/yFiLf8iYy7/ImMu/yJkL/8iZC//ImUv/yJlMP8iZjD/I2Yx/yNnMf8jZzH/I2cx/yhx - OP8xgkX/MoNH/zKESP8zhUj/M4ZK/zOHS/80iEv/NIhM/zSKTf81i07/NYxP/zWMUP82jVH/No5R/zeP - Uv83kVT/N5FU/zeSVf84k1b/OJNX/ziVWP85llj/OZdZ/zmYWv86mFv/Oppc/zqaXf87m13/O5xe/zud - X/88nmD/PJ5h/zyfYv88oWP/PaFk/z2hZf89omX/PaNm/z6jZ/8+pWj/PqZp/z6mav8/p2v/P6hr/z+o - bP8/qWz/P6pt/0Cqbf9Aqm7/QKtu/0Crbv9Aq27/QKtu/0Crb/9Aq2//QKtv/0Crb/9Aq2//QKxw/0Cs - cP9ArHD/QKxw/0CscP9ArHH/QKxx/0Cscf9ArHH/QKxx/0Ctcv9ArXL/QK1y9j+scV9DtnkAPqdtAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEKo - YgBCqGQAQqhkQkKoZOtCqGT/Qqhk/0KoZf9CqGX/Qqhl/0KoZf9CqGX/Qqhm/0KoZv9CqWb/Qqlm/0Kp - Zv9CqWf/Qqln/0KpZ/9CqWf/Qqln/0KraP80jFD/IWEs/yBgLP8hYSz/IWEs/yFiLf8hYi3/IWMu/yFj - Lv8hZC//ImQv/yJkL/8iZTD/ImYw/yJmMf8iZjH/JWs1/zB/RP8yhEf/MoRI/zOFSf8zhkr/M4dL/zSI - S/80iU3/NIpO/zWLTv81jE//NY1Q/zaOUf82jlL/N5BT/zeRU/83kVX/N5JV/ziTVv84lFf/OJVY/zmW - Wf85l1r/OZhb/zqYXP86mlz/Oppd/zubXv87nF//O51g/zyeYf88nmH/PKBj/zyhZP89oWT/PaFl/z2i - Zv89o2f/PqRn/z6laP8+pmn/Pqdq/z+na/8/qGv/P6hs/z+pbf8/qm3/QKtu/0Crbv9Aq27/QKtv/0Cr - b/9Aq2//QKtv/0Crb/9ArHD/QKxw/0CscP9ArHD/QKxw/0Cscf9ArHH/QKxx/0Cscf9ArHH/QK1y/0Ct - cv9ArXL/QK1y/0Ctcv9ArXP/QK1yyD+rcRs/rHIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQqhkAEKoZAlCqGSmQqhk/0KoZf9CqGX/Qqhl/0Ko - Zf9CqGX/Qqhm/0KpZv9CqWb/Qqlm/0KpZv9CqWf/Qqln/0KpZ/9CqWf/Qqln/0KqaP9Cqmj/Qahm/yx5 - QP8fXir/IF8r/yBgK/8gYCz/IGAs/yBhLf8hYi3/IWIt/yFjLv8hYy//IWQv/yFkL/8hZS//IWUw/yFl - MP8iZzH/LHpA/zKESP8yhEj/M4VJ/zOGSv8zh0v/NIhM/zSJTP80ik3/NYtP/zWMT/81jVD/No5R/zaO - Uv83kFP/N5FU/zeSVf83klb/OJNW/ziUWP84lVj/OZZZ/zmXWv85mFv/Oplc/zqaXf86ml3/O5te/zuc - X/87nWH/PJ5h/zyeYv88n2P/PKFk/z2hZf89omb/PaNm/z2kZ/8+pWj/PqVo/z6mav8+p2r/P6dr/z+o - bP8/qWz/P6pt/z+rbv9Aq2//QKtv/0Crb/9Aq2//QKtv/0CscP9ArHD/QKxw/0CscP9ArHD/QKxx/0Cs - cf9ArHH/QKxx/0Cscf9ArXL/QK1y/0Ctcv9ArXL/QK1y/0Ctc/9ArXP/QK1z/0Ctc/9ArnP7QK1zbka9 - gQA+qW8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AABCqGUAQqhlQEKoZexCqGX/Qqhl/0KoZf9CqGb/Qqlm/0KpZv9CqWb/Qqlm/0KpZ/9CqWf/Qqln/0Kp - Z/9CqWf/Qqpo/0KqaP9Cqmj/Qqpo/0Kraf8+oWH/JWkz/x9dKv8fXir/IF8q/yBfK/8gYCz/IGAs/yBh - LP8gYS3/IGIt/yFiLv8gYi7/IGMu/yFjL/8gZC//IWQv/yBkL/8ncDn/MoNH/zKESP8yhUn/M4ZK/zOH - S/80iEz/NIpN/zSLTv81i0//NYxP/zWNUf82jlH/No9S/zeQU/83kVT/N5JV/zeSVv84lFf/OJRY/ziV - Wf85lln/OZda/zmYW/86mVz/Oppd/zqaXv87m1//O5xg/zudYf88nmL/PJ9i/zygY/88oWT/PaJl/z2j - Zv89o2b/PaRo/z6kaP8+pWn/PqZq/z6na/8/qGv/P6ls/z+pbf8/qm7/P6pu/0Crb/9Aq2//QKxv/0Cs - cP9ArHD/QKxw/0CscP9ArHH/QKxx/0Cscf9ArHH/QKxx/0Cscf9ArXL/QK1y/0Ctcv9ArXL/QK1y/0Ct - c/9ArXP/QK1z/0Cuc/9ArnP/QK50/0CudP9ArXTIP6txGD+scgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQqhlAEKoZgRCqGWUQqhl/0KoZv9CqGb/Qqlm/0Kp - Zv9CqWb/Qqln/0KpZ/9CqWf/Qqln/0KpZ/9Cqmj/Qqpo/0KqaP9Cqmj/Qqpo/0Kqaf9Cqmn/Qqtq/zeT - Vv8gYCz/H1wp/x9dKf8fXir/H14q/x9fK/8fXyv/H18r/yBgLP8gYCz/IGEt/yBhLf8gYS3/IGIu/yBj - Lv8gYy//IGMv/yJnMv8ufUL/MoVJ/zKFSf8zhkr/M4dL/zSITP80iU3/NIpO/zWLT/81jFD/NY1R/zaO - Uv82j1L/NpBT/zeRVP83klX/N5JW/ziUV/84lVj/OJZZ/zmXWv85l1v/OZhc/zqaXf86ml7/Oppe/zqb - X/87nGD/O55h/zueYv88n2P/PKBj/zyhZP89oWX/PaNm/z2jZ/89pGj/PqVp/z6mav8+p2v/Pqhr/z+o - bP8/qW3/P6lu/z+qbv8/q2//QKxw/0CscP9ArHD/QKxw/0CscP9ArHH/QKxx/0Cscf9ArHH/QKxx/0Ct - cv9ArXL/QK1y/0Ctcv9ArXL/QK1z/0Ctc/9ArXP/QK5z/0Cuc/9ArnT/QK50/0CudP9ArnT/QK50/0Cu - dfc/rXRaQK92ADuiZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AABCqGYAQqhmI0KoZtlCqWb/Qqlm/0KpZv9CqWb/Qqln/0KpZ/9CqWf/Qqln/0KqZ/9Cqmj/Qqpo/0Kq - aP9Cqmj/Qqpp/0Kqaf9Cqmn/Qqpp/0Kqaf9Cq2r/MYRK/x5bJ/8eWyn/Hlwp/x5cKf8eXSn/H14q/x9g - LP4gYS32IGEt8CBiLe8gYi7vIGIu7yBiLu8gYy/vIGMv7yBkL+8gZC/vIGQw7yhyOu4yhEntM4ZK7TOH - S+wziEzsNIlN7DSKTuw0i0/sNYxP7DWNUOw1jVHsNo5S7DaPU+w3kFTsN5FV7DeSVuw3k1fsOJRY6ziV - Wes4llrrOZda6zmYW+s5mVzrOppd6zqaXus6m1/rO5xf6zudYes7nmLrPJ9i6zygY+s8oGTrPaFl6z2i - Zus9o2fqPaRo6j2laOo+pmnqPqZq6j6na+o/qGzqP6hs6j+pbeo/qm7rP6pv8UCscPxArHD/QKxw/0Cs - cf9ArHH/QKxx/0Cscf9ArHH/QK1y/0Ctcv9ArXL/QK1y/0Ctcv9ArXP/QK1z/0Ctc/9ArnP/QK5z/0Cu - dP9ArnT/QK50/0CudP9ArnT/QK51/0Cudf9ArnX/QK51/0Cudak+q3IJP6xzAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQqllAEKpZgBCqWZfQqlm+UKpZv9CqWf/Qqln/0Kp - Z/9CqWf/Qqln/0KqaP9Cqmj/Qqpo/0KqaP9Cqmj/Qqpp/0Kqaf9Cqmn/Qqpp/0Kqaf9Cq2r/Qqtq/0Gp - aP8qdj7/HVkm/x1aKP8eWyj/Hlwp/iBhLeIiZTCgJGs1cSl0PFUqdTxDKXU8QCl1PEApdTxAKnU9QCp1 - PUApdj1AKXY9Pyl2Pj8pdj4/K3pBPjSKTjk1jFA4No1QODaOUTg2j1I4No9TODaQUzc3kVQ3N5JUNzeS - VjY3k1Y2OJNXNjiUWDY4lVg2OJZZNjiWWjU5l1s1OZhbNTmZXDQ6ml00OppeNDqbXzQ7m2A0O5xgNDud - YDM7nmEzO59iMzygYzM8oGMzPKFkMzyhZTI9omcyPaNnMj2kaDI9pGgyPaVpMT6majE+p2sxPqdsMT+o - bDE/qG0xP6puMD+qbzQ/q29HQKxwa0CscaVArHHkQKxx/kCscf9ArXL/QK1y/0Ctcv9ArXL/QK1y/0Ct - cv9ArXP/QK1z/0Ctc/9ArnP/QK50/0CudP9ArnT/QK50/0CudP9ArnX/QK51/0Cudf9ArnX/QK91/0Cv - df9Ar3b/QK924z+tdCxArnUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AABCqWcAQqlnBkKpZ59CqWf/Qqln/0KpZ/9CqWf/Qqpo/0KqaP9Cqmj/Qqpo/0KqaP9Cqmn/Qqpp/0Kq - af9Cqmn/Qqpp/0Krav9Cq2r/Qqtq/0Krav9Cq2r/P6Rk/yNoMv8cWCb/HVkn/x9eKusjZzGMKHI6LDKH - Swcuf0QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEC5gABAp2sAQK5zB0Ct - cjNArXKaQK1y8UCtcv9ArXL/QK1y/0Ctc/9ArXP/QK1z/0Cuc/9ArnP/QK50/0CudP9ArnT/QK50/0Cu - dP9ArnX/QK51/0Cudf9Ar3X/QK91/0Cvdv9Ar3b/QK92/0Cvdv9Ar3b7QK51ZkCweAA7oGYAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEKpZwBCqWcaQqln1EKpZ/9Cqmj/Qqpo/0Kq - aP9Cqmj/Qqpo/0Kqaf9Cqmn/Qqpp/0Kqaf9Cqmn/Qqtq/0Krav9Cq2r/Qqtq/0Krav9Cq2r/Qqtq/0Ks - a/88nl//H18s/xxXJf8fXyzVJWw1TDaTVAQse0EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQK90AECvdAlArnNhQK1z5ECtc/9ArXP/QK5z/0Cu - c/9ArnT/QK50/0CudP9ArnT/QK50/0Cudf9ArnX/QK51/0Cvdf9Ar3X/QK92/0Cvdv9Ar3b/QK92/0Cv - dv9Ar3f/QK93/0Cwd/9Ar3aePqtyBT+tdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAQqpoAEKqaD9CqmjvQqpo/0KqaP9Cqmj/Qqpo/0Kqaf9Cqmn/Qqpp/0Kqaf9Cqmn/Qqtq/0Kr - av9Cq2r/Qqtq/0Krav9Cq2r/Qqtr/0Kra/9CrGv/Q61s/zaTVv8dWij/H10q1ydwOD0AAAAAMoVKAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAQa92AEK0fAFArnRUQK5050CudP9ArnT/QK50/0CudP9ArnT/QK51/0Cudf9ArnX/QK51/0Cv - df9Ar3b/QK92/0Cvdv9Ar3b/QK92/0Cvdv9Ar3f/QLB3/0Cwd/9AsHf/QLB4/0Cwd80/rnYVP692AAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEKqZABCqmgAQqpoaUKqaPxCqmj/Qqpp/0Kq - af9Cqmn/Qqpp/0Kqaf9Cq2r/Qqtq/0Krav9Cq2r/Qqtq/0Krav9Cq2r/Qqtr/0Ksa/9CrGv/Qqxr/0Ks - a/9DrW3/MolO/x1aKO4kaDNRARoAAC+CRwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQLF2AEG1eQJAr3VzQK50+UCu - dP9ArnT/QK51/0Cudf9ArnX/QK91/0Cvdf9Ar3b/QK92/0Cvdv9Ar3b/QK92/0Cvd/9AsHf/QLB3/0Cw - d/9AsHf/QLB4/0CweP9AsHj/QLB46T+vdzBAr3cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAQqppAEKqZwBCqmmMQqpp/0Kqaf9Cqmn/Qqpp/0Krav9Cq2r/Qqtq/0Krav9Cq2r/Qqtq/0Kr - av9Cq2v/Qqtr/0Ksa/9CrGv/Qqxr/0KsbP9CrGz/Qqxs/0Otbf8vgkn/IF8rlzSKTQUqdTwAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAQLB2AEGxdxNAr3W5QK51/0Cudf9Ar3X/QK91/0Cvdv9Ar3b/QK92/0Cv - dv9Ar3b/QK93/0Cvd/9AsHf/QLB3/0Cwd/9AsHj/QLB4/0CweP9AsHj/QLB4/0CweP9AsHj1QLB3U0Cw - eAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCqmkAQqppCEKqaahCqmn/Qqtq/0Kr - av9Cq2r/Qqtq/0Krav9Cq2r/Qqtq/0Kra/9Cq2v/Qqxr/0Ksa/9CrGv/Qqxs/0KsbP9CrGz/Qqxs/0Ks - bP9CrW3/Qaxs/y6CSOoiZC83ImQwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCtHwAQK50AECv - dltAr3X3QK92/0Cvdv9Ar3b/QK92/0Cvdv9Ar3f/QK93/0Cwd/9AsHf/QLB3/0CweP9AsHj/QLB4/0Cw - eP9AsHj/QLB4/0CweP9AsXj/QLF4/0CxeP5AsHhvQLF4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAEKragBCqmkQQqtqvkKrav9Cq2r/Qqtq/0Krav9Cq2r/Qqtr/0Kra/9CrGv/Qqxr/0Ks - a/9CrGz/Qqxs/0KsbP9CrGz/Qqxs/0Ktbf9CrW3/Qq1t/0Ktbf9AqWr/MolOtSRnMQ0pdTwAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAsHcAQLF3HUCvdtdAr3b/QK92/0Cvdv9Ar3f/QLB3/0Cw - d/9AsHf/QLB4/0CweP9AsHj/QLB4/0CweP9AsHj/QLB4/0CxeP9AsXj/QLF4/0CxeP9AsXn/QLF5/0Cx - eYRCtX0APatzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQqtqAEKrahVCq2rOQqtq/0Kr - av9Cq2r/Qqtr/0Ksa/9CrGv/Qqxr/0Ksa/9CrGz/Qqxs/0KsbP9CrGz/Qqxs/0Ktbf9CrW3/Qq1t/0Kt - bf9CrW3/Qq1u/0Cpa/82k1d1OZteADeSVgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAECw - eABAsXgJQK93qkCvd/9AsHf/QLB3/0Cwd/9AsHf/QLB4/0CweP9AsHj/QLB4/0CweP9AsHj/QLF4/0Cx - eP9AsXj/QLF4/0Cxef9AsXn/QLF5/0Cxef9AsXn/QLF5lDysdwI/sHkAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAABCq2oAQqtqGEKratdCq2v/Qqtr/0Ksa/9CrGv/Qqxr/0KsbP9CrGz/Qqxs/0Ks - bP9CrGz/Qq1t/0Ktbf9CrW3/Qq1t/0Ktbf9CrW7/Qq1u/0Ktbv9CrW7/Qaxt9z2hZFc+pWcAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQbN7ADyjaQBAsHeLQLB3/0Cwd/9AsHj/QLB4/0Cw - eP9AsHj/QLB4/0CweP9AsHj/QLF4/0CxeP9AsXj/QLF5/0Cxef9AsXn/QLF5/0Cxef9Asnr/QLJ6/0Cy - ev9AsnqePq94BT+weQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEKsawBCq2sZQqxr3EKs - a/9CrGv/Qqxs/0KsbP9CrGz/Qqxs/0KsbP9CrW3/Qq1t/0Ktbf9CrW3/Qq1t/0Ktbv9CrW7/Qq1u/0Kt - bv9CrW7/Qq5u/0Kub/9Crm/xQq1uRUKtbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AABDuX8AQLB3AECweIBAsHj/QLB4/0CweP9AsHj/QLB4/0CweP9AsXj/QLF4/0CxeP9AsXn/QLF5/0Cx - ef9AsXn/QLF5/0Cyev9Asnr/QLJ6/0Cyev9Asnr/QLJ7/0Cye6E+rnkGP7B6AAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAQqxsAEKsaxpCrGzdQqxs/0KsbP9CrGz/Qqxs/0KsbP9CrW3/Qq1t/0Kt - bf9CrW3/Qq1t/0Ktbv9CrW7/Qq1u/0Ktbv9CrW7/Qq5v/0Kub/9Crm//Qq5v/0Kub+9CrnBBQq5wAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAA7lFEAO5RRATuUUQs7lFEUO5RRFzuUURQ7lFEKO5RRATuUUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAsHgAQLB4f0CweP9AsHj/QLB4/0Cx - eP9AsXj/QLF4/0CxeP9AsXn/QLF5/0Cxef9AsXn/QLF5/0Cyev9Asnr/QLJ6/0Cyev9Asnr/QLJ7/0Cy - e/9Asnv/QLJ7oT6veQY/sHoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCrGwAQqxsGkKs - bN1CrGz/Qqxs/0Ktbf9CrW3/Qq1t/0Ktbf9CrW3/Qq1u/0Ktbv9CrW7/Qq1u/0Ktbv9Crm//Qq5v/0Ku - b/9Crm//Qq5v/0KucP9CrnD/Qq5w8EKvcEFCr3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7lFEAO5RRCjuUUT07lFGAO5RRrzuUUcw7lFHWO5RRyjuU - Ua07lFF7O5RRNzuUUQg7lFEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAECweQBAsHl/QLB4/0CxeP9AsXj/QLF4/0Cxef9AsXn/QLF5/0Cxef9AsXn/QLJ6/0Cy - ev9Asnr/QLJ6/0Cyev9Asnv/QLJ7/0Cye/9Asnv/QLJ7/0CyfP9AsnyhPrB6Bj+xewAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAEKtbQBCrGwaQq1t3UKtbf9CrW3/Qq1t/0Ktbf9CrW7/Qq1u/0Kt - bv9CrW7/Qq1u/0Kub/9Crm//Qq5v/0Kub/9Crm//Qq5w/0KucP9CrnD/Qq5w/0KvcP9Cr3HwQq9xQUKv - cQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7lFEAO5RRATuU - UTY7lFGkO5RR7DuUUf47lFH/O5RR/zuUUf87lFH/O5RR/zuUUf47lFHoO5RRmzuUUS87lFEBO5RRAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQLF5AECxeX9AsXj/QLF5/0Cx - ef9AsXn/QLF5/0Cxef9Asnr/QLJ6/0Cyev9Asnr/QLJ6/0Cye/9Asnv/QLJ7/0Cye/9Asnv/QLJ8/0Cy - fP9Asnz/QLJ8/0CyfKE+sHoGP7F7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQq1tAEKt - bRpCrW3dQq1t/0Ktbv9CrW7/Qq1u/0Ktbv9CrW7/Qq5u/0Kub/9Crm//Qq5v/0Kub/9CrnD/Qq5w/0Ku - cP9CrnD/Qq9w/0KvcP9Cr3H/Qq9x/0KvcfBCr3FBQq9xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAO5RRADuUUQQ7lFFeO5RR3juUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR1zuUUV47lFEJO5RRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAABAsXkAQLF6fkCxef9AsXn/QLF5/0Cyev9Asnr/QLJ6/0Cyev9Asnr/QLJ6/0Cy - e/9Asnv/QLJ7/0Cye/9Asnv/QLJ8/0CyfP9Asnz/QLJ8/0CyfP9Asn3/QLJ9oT+xfAY/sXwAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCrW0AQq1tGkKtbt1CrW7/Qq1u/0Ktbv9CrW7/Qq5v/0Ku - b/9Crm//Qq5v/0Kub/9CrnD/Qq5w/0KucP9Cr3D/Qq9w/0Kvcf9Cr3H/Qq9x/0Kvcf9Cr3H/Qq9y8EKv - ckFCr3IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADuUUQA7lFECO5RRYTuU - Uew7lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR8TuU - UY87lFEbO5RRADuUUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAECxegBAsXpzQLF6/0Cy - ev9Asnr/QLJ6/0Cyev9Asnr/QLJ7/0Cye/9Asnv/QLJ7/0Cye/9Asnz/QLJ8/0CyfP9Asnz/QLJ8/0Cy - ff9Asn3/QLJ9/z+zff8/s32VP7N8Aj+zfQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEKt - bgBCrW4aQq1u3UKtbv9Crm//Qq5v/0Kub/9Crm//Qq5v/0KucP9CrnD/Qq5w/0KvcP9Cr3D/Qq9x/0Kv - cf9Cr3H/Qq9x/0Kvcf9Cr3L/Qq9y/0Kvcv9Cr3LwQrByQUKwcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAA7lFEAO5RRADuUUUU7lFHjO5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/TuUUb07lFE9O5RRATuUUQAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAQLJ7AECze1dAsnr3QLJ6/0Cyev9Asnv/QLJ7/0Cye/9Asnv/QLJ7/0Cy - fP9Asnz/QLJ8/0CyfP9Asnz/QLJ9/0Cyff9Asn3/QLJ9/z+zff8/s37/P7N+/z+zfnk/s34AP7N9AAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQq5vAEKubxpCrm/dQq5v/0Kub/9Crm//Qq5w/0Ku - cP9CrnD/Qq5w/0KvcP9Cr3H/Qq9x/0Kvcf9Cr3H/Qq9x/0Kvcv9Cr3L/Qq9y/0Kvcv9CsHL/QrBz/0Kw - c/BCsHNBQrBzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADuUUQA7lFEmO5RRyTuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUeA7lFFqO5RRDDuUUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAs3sAQLN8KkCy - e+NAsnv/QLJ7/0Cye/9Asnv/QLJ8/0CyfP9Asnz/QLJ8/0CyfP9Asnz/QLJ9/0Cyff9Asn3/P7N9/z+z - fv8/s37/P7N+/z+zfv8/s37yP7R+Sj+0fgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AABCrm8AQq5vGkKub91Crm//Qq5w/0KucP9CrnD/Qq9w/0KvcP9Cr3H/Qq9x/0Kvcf9Cr3H/Qq9x/0Kv - cv9Cr3L/Qq9y/0Kwcv9CsHL/QrBz/0Kwc/9CsHP/QrBz8EKwc0FCsHMAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAA7lFEAO5RRETuUUaU7lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUfU7lFGbO5RRIzuU - UQA7lFEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAEC0fgBBtX8JQLN8qUCye/9Asnv/QLJ8/0CyfP9Asnz/QLJ8/0Cy - fP9Asn3/QLJ9/0Cyff8/s33/P7N9/z+zfv8/s37/P7N+/z+zfv8/s37/P7N//z+0f8g/tYAWP7WAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEKucABCrnAaQq5w3UKucP9Cr3D/Qq9w/0Kv - cf9Cr3H/Qq9x/0Kvcf9Cr3H/Qq9y/0Kvcv9Cr3L/QrBy/0Kwcv9CsHP/QrBz/0Kwc/9CsHP/QrBz/0Kw - dP9CsHTwQrF0QUKxdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO5RRADuUUQQ7lFF9O5RR+TuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf47lFHIO5RRRzuUUQQ7lFEAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARLuGAD+y - fABAtH5NQLJ88ECyfP9Asnz/QLJ8/0Cyff9Asn3/QLJ9/z+zff8/s33/P7N+/z+zfv8/s37/P7N+/z+z - fv8/s3//P7N//z+0f/8/tH/6P7WAbT6rdQA/t4IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAQq9wAEKvcBpCr3DdQq9x/0Kvcf9Cr3H/Qq9x/0Kvcf9Cr3L/Qq9y/0Kvcv9Cr3L/QrBy/0Kw - c/9CsHP/QrBz/0Kwc/9CsHP/QrB0/0KwdP9CsXT/QrF0/0KxdPBCsXVBQrF1AAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAADuUUQA7lFEAO5RRVDuUUew7lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFHnO5RRdzuUURA7lFEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQbaAAEG4gglAtH6XQLJ9/kCyff9Asn3/QLJ9/z+z - ff8/s37/P7N+/z+zfv8/s37/P7N+/z+zf/8/s3//P7R//z+0f/8/tH//P7SA/z+1gLZAtoIVP7aBAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCr3EAQq9xGkKvcd1Cr3H/Qq9x/0Kv - cf9Cr3L/Qq9y/0Kvcv9CsHL/QrBz/0Kwc/9CsHP/QrBz/0Kwc/9CsHP/QrB0/0KxdP9CsXT/QrF0/0Kx - dP9CsXX/QrF18EKxdUFCsXUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7lFEAO5RRADuUUTI7lFHVO5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH4O5RRqDuUUSs7lFEAO5RRAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAQbV/AEG2gB9AtH64P7N9/z+zff8/s37/P7N+/z+zfv8/s37/P7N+/z+zf/8/tH//P7R//z+0 - f/8/tH//P7SA/z+0gP8/tYHQQLaCMz+0gABBvIYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAEKvcgBCr3IaQq9x3UKvcv9Cr3L/Qq9y/0Kwcv9CsHL/QrBz/0Kwc/9CsHP/QrBz/0Kw - c/9CsHT/QrF0/0KxdP9CsXT/QrF0/0Kxdf9CsXX/QrF1/0Kxdf9CsXXwQrJ2QUKydQAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAADuUUQA7lFEZO5RRtTuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR0TuUUVM7lFEGO5RRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCv4kAPrJ8AEC3gSY/tX+xP7N++z+z - fv8/s37/P7N//z+zf/8/tH//P7R//z+0f/8/tID/P7SA/z+0gP8/tID+P7WBxkC2gjo3oWsAQLiEAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQq9yAEKvchpCr3LdQrBy/0Kw - cv9CsHP/QrBz/0Kwc/9CsHP/QrBz/0KwdP9CsHT/QrF0/0KxdP9CsXT/QrF1/0Kxdf9CsXX/QrF1/0Kx - df9Csnb/QrJ2/0KydvBCsnZBQrJ2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7lFEAO5RRCDuUUY07lFH8O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR7juU - UYQ7lFEWO5RRADuUUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAABFwI0APrN9AEC3ghdAtYB+P7SA3z+0f/0/tH//P7R//z+0gP8/tID/P7SA/z+0 - gP8/tID+P7WB6D+2gpNAt4QkOZpWAEC6hwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAABCsHMAQrByGkKwc91CsHP/QrBz/0Kwc/9CsHP/QrB0/0KwdP9CsXT/QrF0/0Kx - dP9CsXX/QrF1/0Kxdf9CsXX/QrF1/0Kydf9Csnb/QrJ2/0Kydv9Csnb/QrJ28EKyd0FCsncAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAO5RRADuUUQE7lFFkO5RR8juUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR+zuUUbQ7lFE0O5RRATuUUQAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQbqFAEK8 - iANAuIItP7aBeT+1gbY/tYHcP7WB6D+1geg/tYHgP7WCvj+2goVAuIQ5QLqGB0C5hQAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEKwcwBCsHMaQrBz3UKw - c/9CsHP/QrB0/0KxdP9CsXT/QrF0/0KxdP9CsXX/QrF1/0Kxdf9CsXX/QrF1/0Kydv9Csnb/QrJ2/0Ky - dv9Csnb/QrJ3/0Kyd/9CsnfwQrJ3QUKydwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADuUUQA7lFEAO5RRPjuUUd87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUdk7lFFfO5RRCTuUUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEK9iQBDwIwBQbqGDUC4gxxAuIQqQLiEK0C4 - hB5AuoYPQsSOAkLAiwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAQrBzAEKwcxpCsHTdQrB0/0KxdP9CsXT/QrF0/0Kxdf9CsXX/QrF1/0Kx - df9CsXX/QrJ2/0Kydv9Csnb/QrJ2/0Kydv9Csnf/QrJ3/0Kyd/9Csnf/QrJ3/0KzePBCs3hBQrN4AAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAO5RRADuUUSI7lFHDO5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUfI7lFGRO5RRHDuU - UQA7lFEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCsXQAQrF0GkKx - dN1CsXT/QrF1/0Kxdf9CsXX/QrF1/0Kxdf9Csnb/QrJ2/0Kydv9Csnb/QrJ2/0Kyd/9Csnf/QrJ3/0Ky - d/9Csnf/QrN4/0KzeP9Cs3j/QrN48EKzeEFCs3gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADuUUQA7lFEOO5RRnTuUUf47lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf07lFG/O5RRPjuUUQI7lFEAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAEKxdQBCsXUaQrF13UKxdf9CsXX/QrF1/0Kydf9Csnb/QrJ2/0Ky - dv9Csnb/QrJ2/0Kyd/9Csnf/QrJ3/0Kyd/9Csnf/QrN4/0KzeP9Cs3j/QrN4/0KzeP9Cs3nwQrN5QUKz - eQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAA7lFEAO5RRAzuUUXU7lFH3O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFHhO5RRbDuUUQ07lFEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQrF1AEKx - dRpCsXXdQrF1/0Kydv9Csnb/QrJ2/0Kydv9Csnb/QrJ3/0Kyd/9Csnf/QrJ3/0Kyd/9Cs3j/QrN4/0Kz - eP9Cs3j/QrN4/0Kzef9Cs3n/QrN5/0K0efBCtHlBQrR5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO5RRADuUUQA7lFFNO5RR6DuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH1O5RRnTuUUSQ7lFEAO5RRAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCsnYAQrJ2GkKydt1Csnb/QrJ2/0Kydv9Csnf/QrJ3/0Ky - d/9Csnf/QrJ3/0KzeP9Cs3j/QrN4/0KzeP9Cs3j/QrN5/0Kzef9Cs3n/QrN5/0K0ef9CtHr/QrR68EK0 - ekFCtHoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+Y - VQA7lFEAO5RRLDuUUc87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH+O5RRyTuUUUk7lFEEO5RRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEKy - dgBCsnYaQrJ23UKyd/9Csnf/QrJ3/0Kyd/9Csnf/QrN4/0KzeP9Cs3j/QrN4/0KzeP9Cs3j/QrN5/0Kz - ef9Cs3n/QrR5/0K0ev9CtHr/QrR6/0K0ev9CtHrwQrR6QUK0egAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO5RRADuVUhU7lFGuO5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR6DuU - UXk7lFERO5RRADuUUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQrJ3AEKydxpCsnfdQrJ3/0Kyd/9Csnf/QrN4/0Kz - eP9Cs3j/QrN4/0KzeP9Cs3n/QrN5/0Kzef9CtHn/QrR5/0K0ev9CtHr/QrR6/0K0ev9CtHr/QrR7/0K0 - e/BCtHtBQrR7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADyV - UgA8llIHO5RRhzuUUfw7lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR+DuUUao7lFEsO5RRADuUUQAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AABCs3gAQrN4GkKyd91Cs3j/QrN4/0KzeP9Cs3j/QrN4/0Kzef9Cs3n/QrN5/0K0ef9CtHn/QrR6/0K0 - ev9CtHr/QrR6/0K0ev9CtHv/QrR7/0K0e/9CtXv/QrV78EK1fEFCtXwAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7llMAPZ9cATuVUV47lFHwO5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUdI7lFFVO5RRBzuUUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEKzeABCs3gaQrN43UKzeP9Cs3j/QrN5/0Kz - ef9Cs3n/QrN5/0K0ef9CtHr/QrR6/0K0ev9CtHr/QrR6/0K0e/9CtHv/QrR7/0K0e/9CtXv/QrV8/0K1 - fP9CtXzwQrV8QUK1fAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPZdTADuU - UQA7lVI6O5RR2zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUe47lFGGO5RRFjuU - UQA7lFEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAQrN5AEKzeBpCs3ndQrN5/0Kzef9Cs3n/QrR5/0K0ev9CtHr/QrR6/0K0ev9CtHr/QrR6/0K0 - e/9CtHv/QrR7/0K1e/9CtXv/QrV8/0K1fP9CtXz/QrV8/0K1fPBCtX1BQrV8AAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7lVIAO5ZSHzuUUb47lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUfs7lFG2O5RRNjuUUQE7lFEAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCs3kAQrN5GkKzed1CtHn/QrR5/0K0 - ev9CtHr/QrR6/0K0ev9CtHr/QrR7/0K0e/9CtHv/QrV7/0K1e/9CtXz/QrV8/0K1fP9CtXz/QrV8/0K1 - ff9CtX3/QrZ98EK2fUFCtn0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO5RRADuU - UQc7lFGRO5RR/juUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFHbO5RRYTuUUQo7lFEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAEK0eQBCtHkaQrR63UK0ev9CtHr/QrR6/0K0ev9CtHv/QrR7/0K0e/9CtXv/QrV7/0K1 - fP9CtXz/QrV8/0K1fP9CtXz/QrV9/0K1ff9Ctn3/QrZ9/0K2ff9Ctn7wQrZ+QUK2fgAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAADuUUQA7lFEAO5RRSDuUUe07lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFHyO5RRozuUUdg7lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFHyO5RRkzuUUR07lFEAO5RRAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQrR6AEK0ehpCtHrdQrR6/0K0 - e/9CtHv/QrR7/0K0e/9CtXv/QrV7/0K1fP9CtXz/QrV8/0K1fP9CtXz/QrV9/0K2ff9Ctn3/QrZ9/0K2 - fv9Ctn7/QrZ+/0K2fvBCtn5BQrZ+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO5RRADuU - UQk7lFGnO5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/TuUUZQ7lFELO5RRNTuU - UbY7lFH7O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH9O5RRwTuUUUA7lFECO5RRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAABCtHoAQrR6GkK0e91CtHv/QrR7/0K1e/9CtXv/QrV8/0K1fP9CtXz/QrV8/0K1 - fP9CtX3/QrZ9/0K2ff9Ctn3/QrZ9/0K2fv9Ctn7/QrZ+/0K2fv9Ctn7/QrZ/8EK2f0FCtn8AAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7lFEAO5RRKzuUUeM7lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFG7O5RRHDuUUQA7lFEAO5RRFzuUUYc7lFHvO5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR4juU - UW07lFEMO5RRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEK1ewBCtHsaQrV73UK1 - e/9CtXz/QrV8/0K1fP9CtXz/QrV8/0K1ff9CtX3/QrZ9/0K2ff9Ctn3/QrZ+/0K2fv9Ctn7/QrZ+/0K2 - fv9Ctn//QrZ//0K3f/9Ct3/wQrd/QUK3fwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADuU - UQA7lFFaO5RR+DuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR2juUUTc7lFEAO5RRAAAA - AAA7lFEAO5RRBzuUUVc7lFHUO5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR9TuUUZk7lFEfO5RRADuUUQAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAQrV8AEK1fBpCtXzdQrV8/0K1fP9CtXz/QrV9/0K1ff9Ctn3/QrZ9/0K2 - ff9Ctn7/QrZ+/0K2fv9Ctn7/QrZ+/0K2f/9Ctn//Qrd//0K3f/9Ct3//QreA/0K3gPBCt4BBQreAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7lFEAO5RRADuUUXk7lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUe87lFFbO5RRADuUUQAAAAAAAAAAAAAAAAA7lFEAO5RRADuUUS47lFGtO5RR+TuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/juUUcA7lFE7O5RRATuUUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCtXwAQrV8GkK1 - fN1CtXz/QrV9/0K2ff9Ctn3/QrZ9/0K2ff9Ctn7/QrZ+/0K2fv9Ctn7/QrZ+/0K2f/9Ct3//Qrd//0K3 - f/9Ct3//QreA/0K3gP9Ct4D/QreA8EK3gEFCt4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADuU - UQA7lFEAO5RRhDuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH7O5RRhDuUUQY7lFEAAAAAAAAA - AAAAAAAAAAAAAAAAAAA7lFEAO5RRADuUURI7lFF9O5RR6juUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUd07lFFfOY5NCDqR - TwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAEK2fQBCtX0aQrZ93UK2ff9Ctn3/QrZ9/0K2fv9Ctn7/QrZ+/0K2 - fv9Ctn7/QrZ//0K2f/9Ct3//Qrd//0K3f/9Ct4D/QreA/0K3gP9Ct4D/QreA/0K4gf9CuIHwQriBQUK4 - gQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO5RRADuUUQA7lFF9O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUaw7lFEUO5RRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO5RRADuU - UQU7lFFNO5RRzTuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zqTUPE2jEuGNIpLEjWKSgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQrZ9AEK2 - fRpCtn3dQrZ+/0K2fv9Ctn7/QrZ+/0K2fv9Ctn//QrZ//0K3f/9Ct3//Qrd//0K3gP9Ct4D/QreA/0K3 - gP9Ct4D/QriB/0K4gf9CuIH/QriB/0K4gfBCuIJBQriCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAO5RRADuUUWM7lFH6O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFHPO5RRKzuUUQA7lFEAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO5RRADuUUQA7lFEnO5RRozuUUfY7lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zaM - S/o0jE2bPa53FTqhZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCtn4AQrZ+GkK2ft1Ctn7/QrZ+/0K2f/9Ctn//Qrd//0K3 - f/9Ct3//Qrd//0K3gP9Ct4D/QreA/0K3gP9CuIH/QriB/0K4gf9CuIH/QriB/0K4gf9CuIL/QriC8EK4 - gkFCuIIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7lFEAO5RRNjuUUeo7lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR5zuUUUw7lFEAO5RRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAADuUUQA7lFEOO5RRcjuUUeU7lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/OI5N/zOISPg5ommZQ8eYF0C+jAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEK2 - fwBCtn8aQrZ+3UK2f/9Ct3//Qrd//0K3f/9Ct3//QreA/0K3gP9Ct4D/QreA/0K3gP9CuIH/QriB/0K4 - gf9CuIH/QriB/0K4gv9CuIL/QriC/0K5gv9CuYLwQrmDQUK5ggAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAADuUUQA7lFEOO5RRuTuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUfc7lFF0O5RRAzuUUQAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADuUUQA7lFEDO5RRRDuU - UcU7lFH+O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf85kU//MoRF/zWRVPM/uIWZQsWWE0HAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQrd/AEK2fxpCt3/dQrd//0K3f/9Ct4D/QreA/0K3 - gP9Ct4D/QreA/0K4gf9CuIH/QriB/0K4gf9CuIH/QriC/0K4gv9CuIL/QrmC/0K5gv9CuYP/QrmD/0K5 - g/BCuYNBQrmDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO5RRADuUUQA7lFFfO5RR9zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH+O5RRnTuUUQ07lFEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAADuUUQA7lFEAO5RRITuUUZk7lFH0O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zqSUP8yhUX/MYNE/TqlbvBBwZGMQcKSCkHB - kQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AABCt4AAQrd/GkK3gN1Ct4D/QreA/0K3gP9Ct4D/QriB/0K4gf9CuIH/QriB/0K4gf9CuIL/QriC/0K4 - gv9CuIL/QrmC/0K5gv9CuYP/QrmD/0K5g/9CuYP/QrmD8EK5hEFCuYQAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAO5RRADuUURA7lFGtO5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUcI7lFEhO5RRAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAA7lFEAO5RRCzuUUWg7lFHfO5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/OpNQ/zOGRv8wgEH/M4xQ9z+5h/BBwpNtQcGSAkHBkQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEK3gABCt4AaQreA3UK3gP9Ct4D/QriB/0K4 - gf9CuIH/QriB/0K4gf9CuIL/QriC/0K4gv9CuYL/QrmC/0K5g/9CuYP/QrmD/0K5g/9CuYP/QrmE/0K5 - hP9CuYTwQbqEQUK6hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7lFEAO5RRADuU - US47lFHMO5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFHYO5RROjuUUQA7lFEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7lFEAO5RRATuUUTs7lFG8O5RR/DuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf86k1D/MoVG/y+AQf8vgEL8OqVv9kHC - kuNBwZJDQcCRAEHElAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAQriAAEK3gBpCuIHdQriB/0K4gf9CuIH/QriB/0K4gv9CuIL/QriC/0K5gv9CuYL/QrmD/0K5 - g/9CuYP/QrmD/0K5g/9CuYT/QrmE/0K5hP9BuoT/QbqE/0G6hfBBuoVBQbqFAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7lFEAO5RRADuUUTk7lFHHO5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR0TuUUUU7lFEAO5RRAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAA7lFEAO5RRADuUURs7lFGOO5RR8TuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zqTUP8yhEX/Ln9B/y5+QP8zjlP0QL2N/UHCk79BwpMaQcKTAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCuIEAQriBGkK4gd1CuIH/QriC/0K4 - gv9CuIL/QrmC/0K5gv9CuYP/QrmD/0K5g/9CuYP/QrmD/0K5hP9CuYT/QrmE/0K5hP9BuoT/QbqF/0G6 - hf9BuoX/QbqF8EG6hUFBuoUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAA7lFEAO5RRADuUUSY7lFGZO5RR7TuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR8DuU - UaQ7lFEvO5RRADuUUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO5RRADuU - UQk7lFFeO5RR2TuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/OpJQ/zGCQ/8ufkD/Ln5A/y+B - Q/s8r3v1QcOU/EHCk35BwpQCQcKTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAEK4ggBCuIIaQriC3UK4gv9CuIL/QrmC/0K5gv9CuYP/QrmD/0K5g/9CuYP/QrmE/0K5 - hP9CuYT/QrmE/0G6hP9BuoT/QbqF/0G6hf9BuoX/QbqF/0G6hf9BuobwQbuGQUG7hgAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO5RRADuUUQk7lFFCO5RRkzuU - Uc87lFHpO5RR8DuUUfA7lFHqO5RR0juUUZk7lFFKO5RRCzuUUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO5RRADuUUQE7lFEzO5RRszuUUfo7lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf85kU7/L39C/y19P/8tfT//LXs+/jacZfVBwpP/QcKU4EHClDRBwpQAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQriCAEK4ghpCuYLdQrmC/0K5 - g/9CuYP/QrmD/0K5g/9CuYP/QrmE/0K5hP9CuYT/QbqE/0G6hP9BuoX/QbqF/0G6hf9BuoX/QbqF/0G6 - hv9Buob/QbuG/0G7hvBBu4ZBQbuGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAADuUUQA7lFEFO5RRFjuUUS87lFFCO5RRRDuUUTE7lFEXO5RRBTuU - UQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAO5RRADuUUQA7lFEVO5RRhDuUUe47lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zaMS/8tfUD/LHw+/yx8 - Pv8sez3/MYtQ8kC+jvtBw5T/QcOUlkHDlgZBw5UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAABCuYMAQrmDGkK5g91CuYP/QrmD/0K5g/9CuYT/QrmE/0K5hP9BuoT/QbqE/0G6 - hf9BuoX/QbqF/0G6hf9BuoX/QbqG/0G6hv9Bu4b/QbuG/0G7hv9Bu4f/QbuH8EG7h0FBu4cAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADuUUQA7lFEGO5RRUzuU - UdI7lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/MoZG/yx7Pv8sez7/LHs+/yx6Pf8ugUX7PriH+kHElf9Bw5XlQcOVNUHD - lQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEK5gwBCuYMaQrmD3UK5 - hP9CuYT/QrmE/0K5hP9BuoT/QbqF/0G6hf9BuoX/QbqF/0G6hf9Buob/QbqG/0G7hv9Bu4b/QbuG/0G7 - hv9Bu4f/QbuH/0G7h/9Bu4fwQbuHQUG7hwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAADuUUQA7lFEAO5RRLDuUUao7lFH4O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zmQTv8ufkD/LHo9/yx6 - Pf8sej3/K3k8/yx7P/o7rXrwQcSW/0HDlf9Bw5WGQciaAUHElgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAQrmEAEK5hBpCuYTdQrmE/0G6hP9BuoT/QbqF/0G6hf9BuoX/QbqF/0G6 - hf9Buob/QbuG/0G7hv9Bu4b/QbuG/0G7h/9Bu4f/QbuH/0G7h/9Bu4f/QbuI/0G7iPBBvIhBQbyIAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAA7lFEAO5RRETuUUXk7lFHpO5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf87lFH/MoVG/yt5Pf8reTz/K3k8/yp4PP8qeDz/Kng8+jilcfBBxZf/QcSW/0HE - ls9BxJYaQcSWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBuoUAQbqFGkG6 - hN1BuoX/QbqF/0G6hf9BuoX/QbqF/0G6hv9Buob/QbuG/0G7hv9Bu4b/QbuH/0G7h/9Bu4f/QbuH/0G7 - h/9Bu4j/QbuI/0G8iP9BvIj/QbyI8EG8iEFBvIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7lFEAO5RRBDuUUUo7lFHKO5RR/juU - Uf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zWKSv8sej3/Kng8/yp4 - PP8qeDv/Knc7/yp3O/8qdjr8N6Jt9EHFmP9BxJb/QcSW9EHEl1BBxJcAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAEG6hQBBuoUaQbqF3UG6hf9BuoX/QbqG/0G6hv9Bu4b/QbuG/0G7 - hv9Bu4f/QbuH/0G7h/9Bu4f/QbuH/0G7iP9Bu4j/QbyI/0G8iP9BvIj/QbyI/0G8iP9BvInwQbyJQUG8 - iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAA7lFEAO5RRADuUUSU7lFGgO5RR9juUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuU - Uf87lFH/O5RR/zuUUf82i0r/LHs+/yp3O/8qdzv/Knc7/yp3Ov8qdjr/KnY6/yl1Ofs3om7zQcWY/0HE - l/9BxJf/QcSXiUH//wBBxZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQbqGAEG6 - hhpBuobdQbqG/0G7hv9Bu4b/QbuG/0G7h/9Bu4f/QbuH/0G7h/9Bu4f/QbuH/0G7iP9BvIj/QbyI/0G8 - iP9BvIj/QbyI/0G8if9BvIn/QbyJ/0G8ifBBvYlBQb2JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO5RRADuU - UQ07lFFyO5RR6zuUUf87lFH/O5RR/zuUUf87lFH/O5RR/zuUUf86kk//M4dH/yx5Pf8qdjr/KnY6/yp2 - Ov8qdjr/KXU6/yl1Of8pdDn/KXU6+jimc/BBxpj/QcWX/0HFmP9BxZi+QcWYEEHFmAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBuoUAQbqFGkG6hd1BuoX/QbuG/0G7hv9Buob/QbqG/0G6 - hv9Bu4f/QbuH/0G7h/9Bu4f/QbuH/0G8h/9BvIf/QbyI/0G8iP9BvIj/QbyI/0G8iP9BvYn/Qb2J8EG9 - iUJBvYkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO5RRADuUUQQ7lFFoO5RR8TuUUf87lFH/O5RR/zuU - Uf85kU//NYlJ/y5+QP8qdzv/KnY6/yp2Ov8pdTn/KXU5/yl1Of8odDn/KHQ5/yhzOP8peD37O7F/80HG - mf9BxZj/QcWY/0HFmOJBxZgjQcWYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEG6 - hABBuoMaQbqE3kG6hP9BuoT/QbqE/0G6hf9BuoX/QbqF/0G7hf9Bu4X/QbuF/0G7hf9Bu4b/QbuG/0G7 - hv9Bu4b/QbuG/0G7h/9Bu4f/QbuH/0G7h/9Bu4fxQbuHRUG7hwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAO5RRADyVUgg6k1CVOZBO/zeNTP80iEj/MYJE/y17Pv8qdzr/KXU5/yl1Of8pdTn/KHQ5/yh0 - Of8odDj/KHQ4/yhzOP8nczj/J3I3/yt+Rfc+vY78QcaZ/0HFmP9BxZn/QcWZ8UHFmUVBxZkAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQbqEAEG6hBlBuoTaQbqE/0G6hf9BuoX/QbuF/0G7 - hf9Bu4X/QbuF/0G7hf9Bu4b/QbuG/0G7hv9Bu4b/QbuG/0G7h/9Bu4f/QbuH/0G7h/9Bu4f/QbuI/0G7 - iPRBu4hQQbuIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL4BCADGDRDcsej3pK3g7/yp2 - Ov8pdTn/KXU5/yl0Of8odDn/KHQ5/yh0OP8oczj/J3M4/ydzOP8ncjf/J3I3/ydyN/8mcDX+MZFb9EHE - l/xBxZn/QcWZ/0HFmf9Bxpn5QcaaX0HGmgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AABBuoQAQbqEF0G6hdRBu4X/QbuF/0G7hf9Bu4X/QbuF/0G7hv9Bu4b/QbuG/0G7hv9Bu4b/QbuH/0G7 - h/9Bu4f/QbuH/0G7h/9Bu4j/QbuI/0G7iP9Bu4j/QbyI/UG8iGpBvIgAQbyJAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAufkAAMIBCESt4PMIpdTn/KHQ5/yh0Of8odDj/KHQ4/yhzOP8nczj/J3M4/ydy - N/8ncjf/J3I3/ydxNv8mcTb/JnA1/yd0Ovo6rXz2Qcaa/0HGmf9Bxpn/Qcaa/0HGmv9BxppyQcaaAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEG7hQBBu4UTQbuFyEG7hf9Bu4X/QbuF/0G7 - hv9Bu4b/QbuG/0G7hv9Bu4b/QbuH/0G7h/9Bu4f/QbuH/0G7h/9Bu4j/QbuI/0G7iP9BvIj/QbyI/0G8 - iP9BvIj/QbyImkG8igRBvIkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADKDRAA2ikoJKng7qyh0 - OP8oczj/J3M4/ydzOP8nczf/J3I3/ydyN/8ncjf/JnE2/yZxNv8mcDb/JXA1/yVwNf8lbjT+L41W9UDD - lfxBxpr/Qcaa/0HGmv9Bxpr/Qcab/0HGm3xBxpsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAQbuFAEG7hQ1Bu4W2QbuG/0G7hv9Bu4b/QbuG/0G7hv9Bu4f/QbuH/0G7h/9Bu4f/QbuH/0G7 - iP9Bu4j/QbuI/0G8iP9BvIj/QbyI/0G8iP9BvIj/QbyI/0G8iP9BvInXQb2JI0G8iQAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAMIBCADKFRg4qdzu5J3M3/ydyN/8ncjf/J3I3/ydxNv8mcTb/JnA2/yZw - Nv8lcDX/JXA1/yVvNf8lbzT/JW4z/yl7Qvc8tYb4Qceb/0HGmv9Bxpr/Qcab/0HGm/9Bxpv/QcedgEHH - nABByZ8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBu4YAQbqGBEG7hptBu4b/QbuG/0G7 - h/9Bu4f/QbuH/0G7h/9Bu4f/QbuI/0G7iP9Bu4j/QbuI/0G8iP9BvIj/QbyI/0G8iP9BvIj/QbyI/0G8 - if9BvIn/Qb2J/0G9iftBvYp2Qb2NAUG9igAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAreDsALHo9Hihz - ONoncTf/J3E2/yZxNv8mcDb/JXA1/yVwNf8lbzX/JW81/yVvNP8lbzT/JW40/yRtM/8ndTz6OKp590HH - m/9Bxpv/Qcab/0HGm/9Bxpv/Qcab/0HGnP9ByJ58QcieAEHJnwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAEG7hQBBu4cAQbuHfEG7h/9Bu4f/QbuH/0G7h/9Bu4j/QbuI/0G7iP9Bu4j/QbyI/0G8 - iP9BvIj/QbyI/0G8iP9BvIj/QbyI/0G8if9BvYn/Qb2J/0G9if9BvYn/Qb2K/0G9ittBvYs0Qb2JAEG+ - jwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAQp9YACdxNgAreDtYJ3E29iZwNv8lcDX/JXA1/yZwNf8mcDX/JW81/yVv - NP8lbjT/JG40/yRtM/8jbDL/J3Y9+TeodvhBxpr+Qcab/0HGm/9Bxpv/Qcab/0HGnP9Bxpz/Qced/0HJ - n3JByJ8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEG7hwBBu4dWQbuH9kG7 - h/9Bu4j/QbuI/0G7iP9BvIj/QbyI/0G8iP9BvIj/QbyI/0G8iP9BvIj/QbyJ/0G8if9BvYn/Qb2J/0G9 - if9BvYr/Qb2K/0G9iv9BvYr/Qb2K/0G+i7lBvowgQb6MAEG+jAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtfD4AMYJDDih0 - OLAmcDb/JnA2/ydwNv8ncDb/J3A2/ydwNv8nbzX/Jm81/yVuNP8kbDP/JGwz/SqASfY6r3/3Qcaa/0HG - mv9Bxpr/Qcaa/0HGm/9Bxpv/Qcab/0HGm/9Bx535QcmhX0HJoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAQbuIAEG7iCtBu4jmQbuI/0G8iP9BvIj/QbyI/0G8iP9BvIj/QbyI/0G8 - iP9BvIn/QbyJ/0G9if9BvYn/Qb2J/0G9iv9BvYr/Qb2K/0G9iv9BvYr/Qb6L/0G+i/9Bvov/Qb6L/kG+ - i7VBvowsQbyKAEG+jAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAANYJGAEmZXAQrdjtvKHE39ihwNv8ocDf/KHE3/ylwOP8pcDj/KXA4/yhv - N/8nbjX/J242/St5Qfk1mmb1P72O+kLHmv9Bxpn/QcaZ/0HGmf9Bxpn/Qcaa/0HGmv9Bxpr/Qcaa/0HI - nvBByqFEQcqhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBvIgAQbyID0G8 - iLxBvIj/QbyI/0G8iP9BvIj/QbyI/0G8if9BvIn/Qb2J/0G9if9BvYn/Qb2J/0G9iv9BvYr/Qb2K/0G9 - iv9BvYv/Qb6L/0G+i/9Bvov/Qb6L/0G+i/9Bvoz/Qb6M/0G+jNJBvoxiQb+NFUHAjQFBv40AAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOn85AAFfTQAxejwSK3U6dShw - N+wocDf/KXA4/ypxOf8rcTr/LHE6/y1xOv8ucjv9L3dB+zOFUPY7n232Q7qL+UbGmv5Ex5v/Q8WZ/0LF - mP9BxZj/QcWY/0HFmP9BxZn/QcWZ/0HFmf9Bxpr/Qcmf40HKoyVByqIAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAEG9iQBBuocAQbyIgUG8iP9BvIj/QbyI/0G8if9BvYn/Qb2J/0G9 - if9BvYn/Qb2K/0G9iv9BvYr/Qb2K/0G9iv9Bvov/Qb6L/0G+i/9Bvov/Qb6L/0G+jP9Bvoz/Qb6M/0G+ - jP9Bvoz/Qb+N/0G/jfZBv43DQb+Ne0G/jkdBv44oQb+OG0HAjxpBwJAaQcCQGkHAkBpBwJAaQcCQGkHA - kRpBwJEaQcCRGkHAkRpBwZEaQcGSGkHBkhpBwZIaQcGSGkHBkhpBwZIaQcGSGkHCkhpBwpIaQcKSGkHC - kxpBwpMaQcKTGkHCkxpBwpMaQcKUGkHClBpBw5QaQcOUGkHDlBpBw5QaQcOVGkHDlRpBw5UaQcOVGkHD - lRpBxJYaQcSWGkHElhpBxJYaQcSWGkHElxpBxJcaQcSXGkHElxpBxJcaQcSYGkHEmBpBxJgaQcaaGkHH - nBpBx50aQcedG0HJnxs7rnsnMYpRYSx9RLcqeED2LHhB/y15Qv4we0b/Mn1I/jaCTfg6iVbyP5Zm9kSm - ePdKuI32Tsef/E7Kof5NyJ3/Ssec/0jGmv9FxZn/QsSY/0HEl/9BxJf/QcSY/0HEmP9BxJj/QcSY/0HG - m/9ByaHAQcujEEHKogAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEG8 - iQBBvIlAQbyJ7kG8if9BvYn/Qb2J/0G9if9BvYr/Qb2K/0G9iv9BvYr/Qb2K/0G+i/9Bvov/Qb6L/0G+ - i/9Bvov/Qb6M/0G+jP9Bvoz/Qb6M/0G+jP9Bv43/Qb+N/0G/jf9Bv43/Qb+N/0G/jv9Bv479Qb+O8kG/ - judBwI7hQcCP3kHAj95BwI/eQcCP3kHAkN5BwJDeQcCQ3kHAkN5BwZDeQcGR3kHBkd5BwZHeQcGR3kHB - kd5BwZLeQcGS3kHBkt5BwpLeQcKS3kHCkt5BwpPeQcKT3kHCk95BwpPeQcKT3kHClN5BwpTeQcOU3kHD - lN5Bw5TeQcOV3kHDld5Bw5XeQcOV3kHDld5BxJbeQcSW3kHElt5BxJbeQcSW3kHEl95BxJfeQcSX3kHE - l95BxZfeQcWY3kHFmN5BxZjeQcWY3kHFmN5BxpveQced3UHHnd1Bx53hQcid40DEmeU/vI/1P7mN/UK6 - j/tFvJH6SL2T+0vAl/5Ow5v/Ucaf/VTKo/tXzqn8V9Gs/1jQrP9X0Kv/Vcuk/1TJoP9QyJ7/TMec/0fG - mv9ExZj/QsSX/0HEl/9BxJf/QcSX/0HEl/9BxJf/Qced/0HLo49BzKUBQcujAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQb2KAEG9ihBBvYm7Qb2J/0G9iv9BvYr/Qb2K/0G9 - iv9BvYr/Qb6L/0G+i/9Bvov/Qb6L/0G+i/9Bvoz/Qb6M/0G+jP9Bvoz/Qb6M/0G/jf9Bv43/Qb+N/0G/ - jf9Bv43/Qb+O/0G/jv9Bv47/Qb+O/0HAjv9BwI//QcCP/0HAj/9BwI//QcCP/0HAj/9BwJD/QcCQ/0HA - kP9BwZD/QcGQ/0HBkf9BwZH/QcGR/0HBkf9BwZH/QcGS/0HCkv9BwpL/QcKS/0HCkv9BwpP/QcKT/0HC - k/9BwpP/QcKT/0HClP9Bw5T/QcOU/0HDlP9Bw5T/QcOV/0HDlf9Bw5X/QcOV/0HDlf9BxJb/QcSW/0HE - lv9BxJb/QcSW/0HEl/9BxJf/QcSX/0HEl/9BxZf/QcWY/0HFmP9BxZj/QcWY/0HFmP9BxZj/QcWZ/0HH - nP9ByJ3/Qcid/0HInv9ByJ7/Qsif/0XKof9Iy6L/S8yk/0/Np/9Szqj/Vc+q/1nQrP9b0a3/XdGu/17S - r/9f0q//X9Kv/1/Rr/9ezaj/XMuk/1fKof9RyJ3/S8ab/0fFmP9ExJf/QsOW/0HDlf9Bw5b/QcOW/0HE - l/9ByaD2QcujVkHLowAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AABBvYoAQb2KAEG9impBvYr7Qb2K/0G9i/9Bvov/Qb6L/0G+i/9Bvov/Qb6M/0G+jP9Bvoz/Qb6M/0G+ - jP9Bvo3/Qb6N/0G/jf9Bv43/Qb+N/0G/jv9Bv47/Qb+O/0G/jv9Bv47/Qb+O/0HAjv9BwI//QcCP/0HA - j/9BwI//QcCP/0HAkP9BwJD/QcCQ/0HAkP9BwJD/QcCR/0HBkf9BwZH/QcCR/0HBkf9BwZH/QcGR/0HB - kv9BwZL/QcKS/0HCkv9BwpL/QcKT/0HCk/9BwpP/QcKT/0HCk/9BwpP/QcKT/0HDlP9Bw5T/QcOU/0HD - lP9Bw5T/QcOV/0HDlf9Bw5X/QcOV/0HDlv9Bw5b/QcOW/0HDlv9Bw5b/QcSW/0HEl/9BxJf/QcSX/0HE - l/9BxJf/QcSX/0HEmP9BxJf/QcSY/0HEmP9BxZn/Qcid/0HInv9ByJ7/Qcie/0LIn/9EyaD/R8qi/0vL - pP9Pzab/VM6p/1jQq/9c0a3/YNKv/2LSsf9k07L/ZtSz/2jUtP9o1LT/aNSz/2jQq/9kzaf/Xcuj/1bJ - n/9Oxpv/ScSZ/0XDl/9Dw5X/QcOU/0HDlf9BwpT/QcWZ/0HLotdBy6MgQcujAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBvYsAQb2LH0G9itFBvYr/Qb2L/0G+ - i/9Bvov/Qb6L/0G+i/9BvYz/Qb2M/0G+jP9Bvoz/Qb6M/0G+jP9Bvo3/Qb6N/0G+jf9Bvo3/Qb6N/0G+ - jv9Bv47/Qb+O/0G/jv9Bv47/Qb+O/0G/jv9Bv47/Qb+O/0G/jv9Bv4//Qb+P/0HAj/9BwI//QcCP/0HA - kP9BwJD/QcCQ/0HAkP9BwJD/QcCR/0HAkf9BwJH/QcCR/0HAkf9BwJH/QcCS/0HAkv9BwZL/QcGS/0HB - kv9BwpL/QcKS/0HCk/9BwpP/QcKT/0HCk/9BwpP/QcKU/0HDlP9Bw5T/QcOU/0HDlP9Bw5X/QcOV/0HD - lf9Bw5X/QcSV/0HElf9BxJb/QcSW/0HElv9BxJb/QcOW/0HEl/9BxJf/QcSX/0HEl/9BxJf/QcSX/0HG - m/9ByJ7/Qcie/0HInv9ByJ//Qsmg/0XKof9Jy6P/T82m/1XPqv9b0K3/YNKv/2TTsv9o1LT/a9W1/23W - tv9v17j/cde5/3LYuv9y17j/cdGu/2vPqv9jzKX/Wsqg/1PHnP9MxZn/R8SW/0TDlP9CwpP/QcKT/0HC - k/9ByJ7/QcuklEHLpANBy6QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAEG9iwBBwMwAQb2KdUG9ivxBvYr/Qb2K/0G9iv9BvYv/Qb2L/0G9i/9BvYv/Qb6L/0G+ - i/9Bvov/Qb2L/0G9jP9Bvoz/Qb6M/0G+jP9Bvoz/Qb6N/0G/jf9Bvo3/Qb6N/0G+jf9Bvo7/Qb6O/0G+ - jv9Bv47/Qb+O/0G/jv9Bv4//Qb+P/0G/j/9Bv4//Qb+P/0G/j/9BwI//QcCP/0HAkP9BwJD/QcCQ/0HA - kP9BwJD/QcCR/0HAkf9BwJH/QcGR/0HBkf9BwZL/QcGS/0HBkv9BwZL/QcGS/0HBkv9BwZL/QcKS/0HC - kv9BwpP/QcKT/0HCk/9BwpP/QcKT/0HCk/9BwpT/QcKU/0HDlP9Bw5T/QcOV/0HDlf9Bw5X/QcKV/0HD - lf9Bw5X/QcOV/0HDlf9Bw5b/QcSW/0HDlv9BxJf/Qced/0HIn/9ByJ//Qcmf/0HJn/9DyqD/Rsqi/0vM - pf9Rzqj/WdCs/2HSsP9n1LT/bNa2/3DXuP902Lr/d9m8/3navf982r//fdvA/33ZvP9607L/cdCt/2fN - p/9eyqL/Vsed/0/Fmf9Jw5b/RcKU/0PBkv9BwJH/QcOW/0HLou9BzKRGQcykAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEG8igBBvIoeQbyJykG8 - if9BvIn/QbyK/0G9iv9BvYr/Qb2K/0G9iv9BvYv/Qb2L/0G9iv9BvYv/Qb2L/0G+i/9Bvov/Qb6L/0G+ - jP9Bvoz/Qb6M/0G+jP9Bvoz/Qb6N/0G+jf9Bvo3/Qb6N/0G/jf9Bv47/Qb+O/0G+jv9Bv47/Qb+O/0G/ - jv9Bv47/Qb+O/0HAjv9BwI//QcCP/0HAj/9BwI//Qb+P/0HAj/9BwJD/QcCQ/0HAkP9BwJD/QcCQ/0HA - kf9BwJH/QcCQ/0HAkP9BwZH/QcGR/0HBkf9BwZH/QcGR/0HBkv9BwZL/QcGS/0HBkv9BwZL/QcKT/0HC - k/9BwZP/QcGT/0HBk/9BwZT/QcKU/0HCk/9BwpP/QcKU/0HClP9Bw5T/QcKU/0HClP9BwpX/QcOV/0HF - mf9ByZ//Qcmf/0HJn/9ByaD/Qsmg/0PKof9Hy6P/TMym/1POqf9b0a7/ZNOy/23Wt/902Lr/etq+/37b - wP+B3MH/hN3D/4fexP+J38b/iNu//4DVtP910a7/a86o/2LLov9ZyJ3/UcWZ/0vDlf9GwpP/Q8GR/0LB - kf9ByJ7/QcylsEHMpQxBzKUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAQbyLAEG7hABBvIlfQbyI9UG8if9BvIn/QbyJ/0G8if9BvIn/QbyK/0G8 - iv9BvYr/Qb2K/0G9iv9BvYr/Qb2K/0G9iv9BvYv/Qb2L/0G9i/9BvYv/Qb2L/0G9i/9BvYz/Qb6M/0G9 - jP9BvYz/Qb2M/0G+jf9Bvo3/Qb6N/0G+jf9Bvo3/Qb+N/0G+jv9Bvo7/Qb6O/0G+jv9Bv47/Qb+O/0G/ - jv9Bv47/Qb+O/0G/j/9Bv4//Qb+P/0G/j/9Bv4//Qb+Q/0HAkP9BwJD/QcCQ/0HAkP9BwJD/QcCQ/0HA - kf9BwJH/QcCR/0HBkf9BwZH/QcGR/0HBkf9BwZL/QcGS/0HBkv9BwZL/QcGS/0HBk/9BwpP/QcKS/0HC - k/9BwpP/QcKT/0HCk/9BwpP/QcKT/0HCk/9Bw5T/Qcec/0HJoP9ByaD/Qcmg/0HJoP9CyaH/RMqi/0fL - pP9Mzaf/VM+q/1zRrv9k1LP/bda3/3fZvf+B3ML/id7F/4zfx/+P4Mj/keHK/5Lhyf+P27//hda2/3nS - r/9uzqn/Zcuj/1zInv9TxZn/TMOV/0fCkv9EwJD/QsSX/0HLpPBBzKVNQcylAEHMpQAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQbyIAEG8 - iQxBu4ijQbuI/0G7iP9Bu4j/QbuI/0G7if9BvIn/QbyJ/0G8if9BvIn/QbyJ/0G8if9BvIn/QbyK/0G8 - iv9BvIr/Qb2K/0G9iv9BvYv/Qb2L/0G9i/9BvYv/Qb2L/0G9i/9BvYv/Qb6L/0G+jP9Bvoz/Qb6M/0G+ - jP9Bvoz/Qb6M/0G+jf9Bvo3/Qb6N/0G/jf9Bv43/Qb+N/0G/jf9Bv43/Qb+N/0G/jv9Bv47/Qb+O/0G/ - jv9Bv47/QcCP/0G/j/9Bv4//Qb+P/0HAj/9BwI//QcCP/0HAj/9BwI//QcCQ/0HAkP9BwJD/QcCQ/0HA - kP9BwJH/QcCR/0HAkf9BwZH/QcGR/0HBkf9BwZH/QcGR/0HBkv9BwZL/QcGS/0HBkv9BwZL/QcGS/0HE - lv9ByZ//Qcmg/0HJoP9ByaD/Qcmh/0LKof9Ey6P/SMyl/03Op/9T0Kv/W9Gv/2TTs/9t1rf/d9m9/4Lc - wv+N4Mj/k+LL/5Tiy/+U4sv/lODH/5Lavv+K1rj/fdKw/3HOqf9ny6P/Xcid/1XFmP9Nw5T/SMGQ/0TB - kv9CyqH/QcymoEHMpgpBzKYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQbuHAEG7hyxBu4fTQbuH/0G7h/9Bu4f/QbuH/0G8 - h/9BvIf/QbyI/0G8iP9BvIj/QbuI/0G8iP9BvIn/QbyJ/0G8if9BvIn/QbyJ/0G8iv9BvIr/QbyK/0G9 - iv9BvYr/Qb2K/0G9iv9BvYr/Qb2K/0G9i/9BvYv/Qb2L/0G9i/9BvYv/Qb2L/0G9jP9Bvoz/Qb6M/0G+ - jP9Bvoz/Qb6M/0G+jP9Bvoz/Qb6M/0G/jP9Bv4z/Qb+N/0G/jf9Bvo3/Qb6N/0G+jf9Bv47/Qb+O/0G/ - jv9Bv47/Qb+O/0G/j/9Bv4//Qb+P/0G/j/9Bv4//QcCP/0HAj/9BwI//QcCP/0HAkP9BwJD/QcCQ/0HA - kP9BwJD/QcCQ/0HAkP9BwJD/QcCR/0HAkf9BwZL/Qcab/0HJoP9ByaH/Qcmh/0HKof9ByqH/Qsqi/0TL - o/9IzKX/Tc2o/1PPq/9b0q//Y9Sz/2vWt/912bz/gNzB/4vfx/+T4sv/lOLL/5Tiy/+U3ML/k9m9/4vX - uP9/0rD/c86p/2jLo/9fx53/VsSX/07Bk/9IwJH/RMid/0LNp9pBzaYxQs2mAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AABBu4gAQbl+AEG7h1NBuobrQbqG/0G7hv9Bu4b/QbqG/0G6hv9Buof/QbqH/0G7h/9Bu4f/QbuH/0G7 - iP9Bu4j/QbuI/0G7iP9Bu4j/QbuI/0G7iP9BvIj/QbyI/0G8iP9BvIn/QbyJ/0G8if9BvIn/QbyJ/0G8 - if9BvIn/Qb2K/0G9iv9BvYr/Qb2K/0G9iv9BvYv/Qb2L/0G9iv9BvYr/Qb2L/0G+i/9Bvov/Qb6L/0G+ - i/9BvYv/Qb6M/0G+jP9Bvoz/Qb6M/0G+jP9Bvo3/Qb6N/0G+jf9Bvo3/Qb6N/0G/jv9Bv43/Qb+N/0G/ - jf9Bv47/Qb+O/0G/jv9Bv47/Qb+O/0G/jv9Bv47/Qb+O/0G/jv9Bv4//Qb+P/0G/j/9Bv4//Qb+P/0HD - lf9ByaD/Qcqh/0HKof9ByqH/Qcqh/0HKov9CyqL/RMuk/0fMpf9Mzaj/Us+r/1nSr/9h1LP/ada2/3PZ - u/9928D/iN7G/5Lhy/+U4sz/lN/H/5LZvP+Q2Lr/ida2/4DSr/90zqj/asui/1/Hm/9WxJb/TsGR/0jH - m/9FzqfzQ86oZUfPpQFEzqcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBu4cAQbuIBEG6hXVBuoX1QbmF/0G6 - hf9BuoX/QbqF/0G6hf9BuoX/QbqG/0G6hv9Buob/QbqG/0G6hv9Buob/QbqH/0G7h/9Bu4f/QbuH/0G7 - h/9Bu4f/QbuH/0G7h/9Bu4f/QbuH/0G7iP9Bu4j/QbyI/0G8iP9BvIj/QbyI/0G8iP9BvIn/QbyJ/0G8 - if9BvIn/QbyJ/0G8if9BvIn/QbyK/0G8iv9BvIr/QbyK/0G8iv9BvYr/Qb2K/0G9iv9BvYv/Qb2L/0G9 - i/9BvYv/Qb2L/0G9jP9BvYz/Qb6M/0G9jP9BvYz/Qb2M/0G9jP9BvYz/Qb6N/0G+jf9Bvo3/Qb6N/0G+ - jf9Bvo3/Qb6N/0G+jf9Bvo7/Qb6O/0G+jf9BwJD/Qced/0HKof9ByqH/Qcqi/0HKov9ByqL/Qcqi/0LL - o/9EzKT/Rsyl/0vOqP9Qz6r/WNGu/1/Tsv9n1bb/cNi6/3rbv/+F3sX/juHJ/4/gyP+O2bv/itW1/4bT - sv+B0q//e9Cr/3PNp/9pyaD/X8aZ/1bDlP9Nxpr/SM6o/EbPqpBU0q8KTNCsAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAABBuoUAQbqGC0G5hIpBuYT5QbmD/0G5hP9BuYT/QbmE/0G5hP9BuYT/QbmF/0G5 - hf9BuoX/QbqF/0G6hf9BuoX/QbqF/0G6hv9BuoX/QbqG/0G6hv9Buob/QbqG/0G6hv9Buob/QbuG/0G7 - hv9Buof/QbqH/0G6h/9Bu4f/QbuH/0G7h/9Bu4f/QbuI/0G7iP9Bu4j/QbuI/0G7iP9Bu4j/QbyI/0G8 - iP9BvIj/QbyI/0G8if9BvIn/QbyJ/0G8if9BvIn/QbyJ/0G8iv9BvIr/QbyK/0G8iv9BvIr/QbyK/0G8 - iv9BvYv/Qb2L/0G9i/9BvYv/Qb2L/0G9i/9BvYv/Qb2L/0G9i/9BvYv/Qb2M/0G9jP9BvYz/Qb6M/0HE - mP9ByqL/Qcqi/0HKov9ByqL/Qcqi/0HLo/9By6P/Qcuj/0PMpP9GzKX/Sc2n/0/Pqv9W0a3/XdOx/2XV - tf9t2Ln/d9q+/4Ddw/+F3sT/hNe5/4LSr/9/0Kz/e8+q/3bNp/9yzKT/bcqh/2bInf9exZj/VMid/03P - qv5K0KyqU9KwGDrMpAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBuYQAQbmFD0G4 - g49BuYL4QbiC/0G5g/9BuIP/QbiD/0G4g/9BuYP/QbmD/0G5g/9BuYT/QbmE/0G5hP9BuYT/QbmE/0G5 - hP9BuYT/QbmE/0G5hf9BuYX/QbqF/0G6hf9BuoX/QbmF/0G6hf9BuoX/QbqF/0G6hv9BuoX/QbqG/0G6 - hv9Buob/QbqG/0G6hv9Buob/QbqG/0G7hv9Bu4b/QbuG/0G7h/9Bu4f/QbuH/0G7h/9Bu4j/QbuI/0G7 - iP9Bu4j/QbuI/0G7iP9Bu4j/QbuI/0G7iP9Bu4j/QbyI/0G8iP9BvIn/QbyJ/0G8if9BvIn/QbyJ/0G8 - if9BvIn/QbyJ/0G8iv9BvIr/QbyK/0G8iv9BwZL/Qcmg/0HKov9ByqL/Qcuj/0HLo/9By6P/Qcuj/0HL - o/9By6P/Q8uk/0XMpf9Izaf/Tc6q/1PRrf9a07D/YdW0/2nXuP9y2bz/edvA/3vVtv95zqj/eM2m/3TM - pP9xyqL/bcmg/2nHnf9lxpv/X8SY/1nJoP9S0a3+UNGusmbXuCP///8B////AP///wAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBuYMAQbqED0G4goZBuIHzQbiB/0G4gf9BuIH/QbiB/0G4 - gf9BuIL/QbiC/0G4gv9BuIL/QbiC/0G4gv9BuIL/QbiD/0G5g/9BuYP/QbmD/0G4g/9BuIT/QbiE/0G4 - hP9BuYT/QbmE/0G5hP9BuYT/QbmE/0G5hP9BuYT/QbmE/0G5hP9BuYT/QbqE/0G6hP9BuoT/QbmE/0G5 - hf9BuYX/QbmF/0G6hf9Buob/QbqG/0G6hv9BuoX/QbqG/0G6hv9Buob/QbqG/0G6hv9Buof/QbqG/0G7 - h/9Bu4f/QbuG/0G6h/9Buof/QbqH/0G7h/9Bu4f/QbuI/0G7iP9Bu4j/QbuI/0G7iP9Bu4j/Qb6O/0HI - nv9By6P/Qcuj/0HLo/9By6P/Qcuj/0HLo/9By6P/Qcuk/0HLpP9Cy6T/RMyl/0bNp/9Lzqn/UNCs/1bS - r/9d1LP/Zda2/2zXuf9w0rD/cMqh/2/Jn/9uyJ7/bMed/2nGm/9lxZn/YsOW/17El/9Yy6T/U9Kv/FTT - sax0278m////A////wL///8A////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AABBuIMAQbiECkG4gW5Bt4DnQbeA/0G3gP9Bt4D/QbeA/0G3gP9Bt4D/QbeA/0G3gP9Bt4H/QbeB/0G3 - gf9Bt4H/QbeB/0G3gf9Bt4H/QbiB/0G4gv9BuIL/QbiB/0G4gv9BuIL/QbiC/0G4gv9BuIL/QbiC/0G4 - g/9BuYP/QbmD/0G5g/9BuYP/QbmD/0G5g/9BuYP/QbmD/0G5g/9BuYP/QbmD/0G5g/9BuYT/QbmD/0G5 - hP9BuYT/QbmE/0G5hP9BuYT/QbmF/0G5hf9BuYX/QbmF/0G5hP9BuYX/QbmF/0G5hf9BuoX/QbqF/0G6 - hv9BuoX/QbqG/0G6hv9BuoX/QbqF/0G9iv9Bx5z/Qcuj/0HLo/9By6P/Qcuj/0HLo/9By6P/Qcuk/0HL - pP9By6T/Qcyk/0HMpf9Dzab/Rc2m/0jOqP9Mz6v/UtGu/1jTsf9g07L/Zs2n/2jFmf9nxJf/ZsSX/2XE - l/9kw5X/YcKT/17Bk/9axZn/Vs6o/1LSsPRW1LKUhd/HH////wT///8D////Af///wD///8AAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBuYIAQbuGA0G3gEpBtn/LQbZ+/kG1 - fv9Btn7/QbZ+/0G2f/9Btn7/QbZ+/0G2f/9Btn//QbZ//0G2f/9Btn//Qbd//0G3f/9Bt3//Qbd//0G3 - gP9Bt4D/QbeA/0G3gP9Bt4D/QbeA/0G3gP9Bt4D/QbeB/0G3gf9Bt4H/QbeB/0G3gf9Bt4H/QbeB/0G3 - gf9Bt4H/QbeC/0G3gv9Bt4L/QbeC/0G3gv9BuIL/QbiC/0G4gv9BuIL/QbiC/0G4gv9BuIP/QbiD/0G4 - g/9BuIL/QbiC/0G4g/9BuIP/QbmD/0G5g/9BuYP/QbmE/0G5hP9BuYT/QbiD/0G4g/9BvIj/Qcab/0HL - o/9By6P/Qcuj/0HLo/9By6T/Qcuk/0HLpP9BzKT/Qcyk/0HMpf9BzKX/Qcyl/0LMpf9Dzab/Rs2o/0nP - qv9O0Kz/VM6o/1rGmv9ewJD/X8CQ/1/AkP9ewJD/XsCP/1zAj/9awpP/V8qg/1PRrf9S0rDdW9W0bJ3m - 0hP///8F////A////wH///8A////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAABBuYMAQdS2AEG3gCNBtX6UQbV970G1ff9BtX3/QbV9/0G1ff9BtX3/QbV9/0G1 - ff9BtX3/QbV9/0G1ff9Btn3/QbZ+/0G1fv9BtX7/QbZ+/0G2fv9Btn7/QbZ+/0G2fv9Btn7/QbZ+/0G2 - fv9Btn7/QbZ//0G2f/9Btn//QbZ//0G2f/9Btn//QbZ//0G2f/9Btn//QbZ//0G2gP9BtoD/QbeA/0G3 - gP9Bt4D/QbeA/0G3gP9Bt4D/QbeB/0G3gf9Bt4H/QbeB/0G3gf9Bt4H/QbeB/0G3gf9Bt4H/QbeB/0G3 - gf9Bt4H/QbeB/0G3gf9Bt4H/QbuI/0HGm/9By6P/Qcuj/0HLpP9By6T/Qcuk/0HMpP9BzKT/Qcyl/0HM - pf9BzKX/Qcyl/0HMpf9BzKb/Qcym/0LNp/9Ezqj/Rsyl/0vFmP9QvYr/VLuG/1W8h/9WvIj/V7yJ/1e9 - if9Vv47/VMeb/1LPqf9Q0q/zU9Oxq2nYuzzu+vcJ////Bf///wT///8C////AP///wD///8AAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQbiBAEG5 - gglBtn5NQbV8ukG0fPdBs3v/QbR7/0G0e/9BtHv/QbR7/0G0e/9BtHz/QbR8/0G0fP9BtHz/QbR8/0G1 - fP9BtXz/QbV8/0G1fP9BtHz/QbR8/0G0fP9BtHz/QbR8/0G1fP9BtX3/QbV9/0G1ff9BtX3/QbV9/0G1 - ff9BtX3/QbV9/0G1ff9BtX3/QbZ9/0G2ff9Btn7/QbV+/0G1fv9BtX7/QbV+/0G1fv9Btn7/QbZ+/0G2 - fv9Btn7/QbZ+/0K2fv9Ctn//QrZ//0K2f/9Ctn//QrZ//0K2f/9Ctn//QbZ//0G8iv9Bx53/Qcuk/0HL - pP9By6T/Qcuk/0HMpP9BzKX/Qcyl/0HMpf9BzKX/Qcyl/0HMpf9BzKb/Qc2m/0HNp/9Bzab/Qcqi/0PD - lf9FuoT/SLV8/0u2ff9Nt3//TreA/0+6hP9Qv43/T8ab/07OqP9N0a73UNKwwFvVtVyb5dIV////Bf// - /wX///8D////Av///wD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQbmHADT//wBBtoASQbR9XkKze71Cs3rzQrN5/0Kz - ef9Cs3n/QrN6/0Kzef9Cs3n/QrN5/0Kzev9Cs3r/QrR6/0K0ev9CtHr/QrN6/0Kzev9Cs3r/QrN6/0Kz - ev9CtHv/QrR7/0K0e/9CtHv/QrR7/0K0e/9Cs3r/QrR7/0K0e/9CtHv/QrR7/0K0e/9CtHv/QrR7/0K0 - e/9CtHv/QrR7/0K0fP9CtHz/QrR8/0K0fP9CtXz/QrV8/0K1e/9CtHz/QrR8/0K0fP9CtXz/QrV8/0K1 - fP9CtXz/QrR8/0K2gP9BwJD/Qcmg/0HLpP9By6T/Qcyk/0HMpP9BzKX/Qcyl/0HMpf9BzKX/Qcyl/0HM - pv9Bzab/Qc2m/0HNpv9By6T/Qcec/0G/jf9Ctn7/QrJ2/0Oydv9FtHr/R7d//0e8iP9Iw5T/Scqh/0nO - qf5K0K3uTNGutlTTsl983cQb+f38BP///wX///8E////A////wH///8A////AP///wAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAEG6hQBAwpQAQbZ/EUG0fE5Cs3qdQrJ43UKyePlCsXf/QrJ3/0Kyd/9Csnf/QrJ3/0Ky - eP9Csnj/QrJ4/0KyeP9Csnj/QrJ4/0KyeP9Cs3j/QrN4/0KzeP9Cs3j/QrN4/0KzeP9Cs3n/QrN4/0Ky - eP9Cs3j/QrN4/0Kzef9Cs3j/QrN5/0Kzef9Cs3n/QrN5/0Kzef9Cs3n/QrN5/0Kzef9Cs3n/QrN5/0Kz - ef9Cs3n/QrN5/0Kzef9Cs3n/QrN5/0Kzef9Cs3n/QrN5/0K0e/9Cuob/QcWZ/0HLo/9BzKT/Qcyk/0HM - pf9BzKX/Qcyl/0HMpf9BzKX/Qcym/0HMpv9Bzab/Qc2m/0HNpv9ByZ//QcKU/0G7h/9Ctn//QrZ//0K5 - g/9BvYr/QsGR/0LGmf9Dy6L/RM2n/UXPq+9G0KzLSdCtilHSsEJ228ES9v36Av///wP///8D////A/// - /wL///8B////AP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQbZ/AEG3 - gQdBtHwjQbN6XUKyeJRCsnjJQrF25kKxdvVCsXb9QrF2/0Kxdf9CsXX/QrF1/0Kxdf9CsXX/QrF1/0Kx - df9CsXX/QrF2/0Kxdv9CsXb/QrF2/0Kxdv9CsXb/QrF2/0Kxdv9CsXb/QrF2/0Kxdv9CsXb/QrF3/0Kx - d/9CsXf/QrF3/0Kxd/9CsXf/QrF3/0Kxd/9CsXf/QrF3/0Kyd/9Csnf/QrJ3/0Kyd/9Csnf/QrJ3/0Kz - ef9CuIP/QcKU/0HKof9BzKX/Qcyl/0HMpf9BzKX/Qcyl/0HMpf9BzKb/Qcym/0HNpv9Bzab/Qc2m/0HN - p/9Bzaf/Qc2n/0HMpf9ByqL/Qcqh/0HLov9BzKT/Qc2m+0HOqPJBz6noQc6q0EHOqqVCz6p3Rc+rQVHS - sBdx28AEAFkAAP///wH///8C////Af///wH///8B////AP///wD///8AAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBuIIAQLmFBEG0exNCs3koQbN7UUKy - eG1CsHV8QrF1jEKxdppCsnehQrJ3pEKyd6RCsnekQrJ3pEKyd6RCsnekQrJ3pEKyd6RCsnekQrJ3pEKy - eKRCsnilQrJ4pUKyeKVCsnelQrJ3pUKyd6VCsnelQrN4pUKzeKVCsnilQrJ4pUKyeKVCsnilQrJ4pUKy - eKVCsnilQrJ4pUKyeKVCsnmlQrJ5pUKyeaRCtHydQb2LmUHInplBzKWZQcylmUHMpZlBzKWZQcylmUHM - pZlBzKaZQcymmUHNpplBzaaZQc2mmUHNp5lBzaeZQc2nmUHNp5lBzaeZQc6omEHOqZRBzqmOQc6phkHO - qXZBzqljQc6pSkHOqStBzqkWQc6pBz7OqABAzqgA////AP///wD///8B////AP///wD///8A////AP// - /wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEDMowBB07ABQMGSBEC8igZAu4oHQLyKB0C8 - igdAvIoHQLyKB0C8igdAvIoHQLyKB0C8iwdAvIsHQLyLB0C8iwdAvIsHQLyLB0C9iwdAvYsHQL2LB0C9 - iwdAvYwHQL2MB0C9jAdAvYwHQL2MB0C9jAdAvYwHQL2MB0C9jAdAvYwHQL2MB0C9jQdAvY0HQL6PB0DS - sAVA6NMDQde2A0HNpwNBzKYDQcylA0HMpQNBzKUDQcynA0HNpwNBzqYDQc6mA0HNpgNBzagDQc2oA0HN - pwNBzacDQc2nA0HPqQNBz6kDQc+pAkHOqABBzqgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - ////////gAAAAAAAAAB/////////8AAAAAAAAAAAB////////8AAAAAAAAAAAAD///////8AAAAAAAAA - AAAAP//////8AAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAH/////+AAAAAAAAAAAAAAAf/////AAAAA - AAAAAAAAAAD/////gAAAAAAAAAAAAAAAf////wAAAAAAAAAAAAAAAD////4AAAAAAAAAAAAAAAAf///8 - AAAAAAAAAAAAAAAAD///+AAAAAAAAAAAAAAAAAf///AAAAAAAAAAAAAAAAAH///wAAAAAAAAAAAAAAAA - A///4AAAAAAAAAAAAAAAAAH//8AAAAAAAAAAAAAAAAAB///AAAAAAAAAAAAAAAAAAP//gAAAAAAAAAAA - AAAAAAD//4AAAAAAAAAAAAAAAAAAf/8AAAAAAAAAAAAAAAAAAH//AAAAAAAAAAAAAAAAAAA//wAAAAAA - AAAAAAAAAAAAP/4AAAAP/////////AAAAD/+AAAAP/////////8AAAAf/gAAAP//////////gAAAH/4A - AAH//////////8AAAB/+AAAB///////////gAAAf/AAAA///////////8AAAH/wAAAP///////////AA - AB/8AAAH///////////wAAAP/AAAB///////////+AAAD/wAAAf///////////gAAA/8AAAH/////Af/ - ///4AAAP/AAAB/////AB////+AAAD/wAAAf////AAH////gAAA/8AAAH////gAA////4AAAP/AAAB/// - /wAAH///+AAAD/wAAAf///8AAAf///gAAB/8AAAH///+AAAD///4AAAf/AAAB////AAAAf//+AAAH/wA - AAf///gAAAB///wAAD/8AAAH///4AAAAP//8AAA//AAAB///8AAAAB///gAAf/wAAAf//+AAAAAH//8A - AP/8AAAH///AAAAAA///gAH//AAAB///gAAAAAD//8AD//wAAAf//4AAAAAAf//wD//8AAAH//8AAAAA - AD///////AAAB//+AAAAAAAP//////wAAAf//AAAAAAAB//////8AAAH//wAAAAAAAP//////AAAB//4 - AAAAAAAA//////wAAAf/8AAAAAAAAH/////8AAAH/+AAAAAAAAA//////AAAB//AAAAAAAAAD/////wA - AAf/wAAAAAAAAAf////8AAAH/4AAAAAAAAAB/////AAAB/8AAAAAAAAAAP////wAAAf/AAAAAAAAAAB/ - ///8AAAH/gAAAAAAAAAAH////AAAB/4AAAAYAAAAAA////wAAAf+AAAAPAAAAAAH///8AAAH/gAAAH8A - AAAAAf///AAAB/4AAAB/gAAAAAD///wAAAf+AAAA/8AAAAAAf//8AAAH/gAAAf/wAAAAAD///AAAB/4A - AAP/+AAAAAAf//wAAAf+AAAD//wAAAAAD//8AAAH/wAAB///AAAAAAf//AAAB/8AAA///4AAAAAD//wA - AAf/gAAf///AAAAAA//8AAAH/8AAP///8AAAAAH//AAAB//gAH////gAAAAA//wAAAf/8AD////8AAAA - AP/8AAAH//wD/////wAAAAB//AAAB/////////+AAAAAf/wAAAf/////////4AAAAD/8AAAH//////// - //AAAAA//AAAB//////////4AAAAP/wAAAf//////////gAAAD/8AAAH//////////8AAAAf/AAAB/// - ////////gAAAH/wAAAf//////////8AAAB/8AAAH///////////gAAAf/AAAB///////////4AAAH/wA - AAP//////////+AAAB/8AAAD///////////gAAAf/AAAAf//////////4AAAH/4AAAH//////////+AA - AB/+AAAA///////////AAAAf/gAAAH//////////gAAAH/4AAAAP/////////wAAAB//AAAAAAAAAAAA - AAAAAAAf/wAAAAAAAAAAAAAAAAAAH/8AAAAAAAAAAAAAAAAAAD//gAAAAAAAAAAAAAAAAAA//4AAAAAA - AAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAH//wAAAAAAAAAAAAAAAAAB//+AAAAAAAAAAAAAAAAAA///g - AAAAAAAAAAAAAAAAAP//8AAAAAAAAAAAAAAAAAH///gAAAAAAAAAAAAAAAAB///4AAAAAAAAAAAAAAAA - A////AAAAAAAAAAAAAAAAAf///4AAAAAAAAAAAAAAAAH////AAAAAAAAAAAAAAAAB////4AAAAAAAAAA - AAAAAAf////AAAAAAAAAAAAAAAAP////8AAAAAAAAAAAAAAAH/////gAAAAAAAAAAAAAAD/////+AAAA - AAAAAAAAAAB//////4AAAAAAAAAAAAAA///////gAAAAAAAAAAAAg////////AAAAAAAAAAAD3////// - ///wAAAAAAAAD/////////////////////////////////////////////////////////////////// - /////////////////////////////////////////////4lQTkcNChoKAAAADUlIRFIAAAEAAAABAAgG - AAAAXHKoZgAASuhJREFUeNrtfXmcJEWV/zcy6+hz7uEWOfyJqHggKmuBTjeKri66pS63ou6uChYq4goo - ngNy6O66S6uIIqyKrqI04sEl0wqUyuEqKiKKgCggzD3T3dNdVRnv90dekXfkUZXV3fmdT01XZUa+eBEZ - 78V7Ly5GRChQoMDShJI3AwUKFMgPhQIoUGAJo1AABQosYRQKoECBJYxCARQosIRRKIACBZYwCgVQoMAS - RqEAChRYwigUQIECSxiFAihQYAmjUAAFCixhlJI+yBjLm/ee4Lwbx1ZwYk8h0G4gVAioMmBZWrosya1E - D6WHmzZj0AbKmF0+gOmBClpJ+GCSD0nT8ybcBWAewJzw2XH8oVOzXayqvoHsGh+WdDHQYlEAH/r+uFJR - cSgRvVQjvIBz7MeJ7aFxrOHAMAGqo9xd5CWMNsVIzAIfyp7HgQpht2Fg+SDAlOB00mVmkunCaIYnngbw - OIAnmP73EQC/A3A/gPuOO3Rqi0weRORlnbG+WVlXKIAAnHfj2HCH440axys6nB2mcRxAhLJcob2XZKov - 65rKXGgyYLCsAKtHCKuHAIU5afaRVSBD70kAvwDQBPAzAHccd+jUjJ/Aux71bQl5KYVCAQj4+PVjB3DC - qR2Oo9saOxiQFPjQCgj9mQjim0jcg4r0krzahAUxHyspwNoRwqohQwAT1lN/KAMGABqAXzGm/FBh6g+O - 2P+CX+y+7PlRNUtBv3ulEJa8Alh/w9gajePMNke9o7Gnk/BuM2WdkEhofHvxLJtGBmVMQsJ8pqISdh8F - Rgf8CcYy6SWZYgBmWsC2XcCOOYbpOVj1qqq6ciqrQLVEqKhAuQQMlIChMlApeTNQAKGxWNf/xsBuUJXK - tw57ypm3PGXlGBcSBAq+8J10st1VBEtWAXzihrFXdzSc2dLYkQjq6c0ip+ztRFJ+N2OTT8lXmnJkm9h+ - ZKRK2HMUKKnB9LoVL+hwXRlsm9UVQlhLVxRgsMQwVCWMVhmGq8BASVQGnlAoGGOPMZS+Nlhe89W/f+aV - f4T+Bv2E3v3bStctRbCkFMAHvzeuVEv09raG93U4+3+BPIcWKEZaGSQhQBnQyIr/AL6SvHaFAbuNElYM - RjPbLRehw4Gts8CWWYbpljedAmYlZlDAGIPKgJEBwvIBhuVVoFJmYAGZMai3l9TB/zzq6ZdcP1zZwy3o - jt7ffa0bSmBJKIBzvjeuDJbp1FYH52ic7a3zlQHhODRI4hFJ5RIq/3HL5fNaZellqIccGKkQdl8OlIII - 9ihesKsNbJoBNs8ww4PThV8XbgbGmOM7jDQDZWD5ALBySHcdmEVVlGvl/rI6+N/P3fud39h35VHzALgr - ARdYciiILBXBolcAn7h+7Lg2x0Wc46nBTGaQUQSN2K8s1lhfPBqJixshNP4BcFc6ycxVRthrOTBQllea - 3YoXaFxXAhtnGDQuCr9iKQFbGZjl1Mc6B8oMKwcJKwcBVSUjhSjn7NGyOrz+pQdc/I1lg/tqsIWfQj6Z - KYFFqwDOu3HsOS0Nn9c4XtJTDjKIF4TdZED8IGAPA31Z1jVjwNoRZ4Awa2UgFy9gUABwYtgyy/DktAJO - hvAzBQwMClM90WMmTKBljDBa1Yc/h6pkZ0UEAoGB3TtQXvWhVx18xS3GIxy2IhAVAqC7AxwZYNEpgAtv - Hiu1NHy6peE0pBjGy6PBdyuz0N6Ogm/1SwWsGARWD8fMOrN4gdGvG2OVDAxEDJtmVGyZVQEwKIqqWwNW - Oli/3c2fiFAtcawZJkuxMRCIdHlmTL159fAz33/EAec9CFvoufCBeT0LJbCoFMB5N469pKXha8Sxv81A - cnosAxqhdDNK1w1GkvBIGdALwkgFWDMS7EIE0k8VLzCEX7GFXzf/FTAo6GgqnpxWMNtSdQvAVBJWnECg - ZphuohxVVMKaEY6RKgHEDV3MAaK5kjr0yb976kcuWT1ycAdOa0Azqxu2IkjsDiwKBXD2dePKUIXOa2v4 - Nxa2biELUzjZrLFks3cCHiHJdLHo9nCGUtKsBivAbiPh7yBbq8Dp2zMoYIpi+PwKGFOhQMXOeRUbp1Uw - pjrMfm9O3iA/EaFS4lg7wjFY1i0BAoFIg8LUn68eOvgdRxx4/kPQBd/tEliBw6RKYMErgPNvGtujo+G7 - GuFFoXzI8itdsBh1gKD5n13mMWNE5Rs4PSGLYKSReLAMrB2WU8TplIHX9FeMnt8UfsbMnl8F5yqenFYx - 31GdwUDdwDfqR2gFRCDGQQSQ3utjZIBjzTCHyritCMB3VtTRd7/mmV/9NpzugBkwBAC+JBXAeTeNHdHR - 8G0CdtcrOx8ktgoSpktpTMjnHbOnpah0CYZNPfSYPjKwZiRF1D/kpsP0Z07TXzEFH4oh+AoUVjL+lsGg - YusuFdvn7JEBvSwkCL+hDIxrulzpck0ggDSsGeUYrRAIHEQaODhUVrn0xU89+9zdRw+dg60AzBgAR0JX - YMEqgPU3jr1d47gEQMU33ywySTNbT550l5hPTzq28EY0kTjKJaq1jVT1cfZM68AV+DOH8nRhVu1hP6ZC - YSUosK0AhZWgsDIURcXMvILNs0xYY0HCTHCyhB+WEuDCX/37YFnD2lEOBZp1HWC3H7DqVSc9Z++3b4ZT - CSQOCi5IBXDeDWMXaISzxFdmfUsYDpE1WyNuJXqo35VLN/RRqslLBpYP6IoASDaxK9T0FwJ/1jAfU8Ac - Qq/ayoCVBUWgYq7NsGkW4OQy+y13QP/NTaEnsv8SBycNCtOw2yhHtaRZ1gCAB1YPP/MNRx5w/p9gKwAr - SBjXClhQCuCzt42xLbO4khPeHP0ifXhJmnHWE2oy4CGTMveBMghUvBSRzsDKYX22nSNtqnKZ5r/Z+5uB - P933V02T31QESlmwBkpQlJLxm6GlKdg8A3Bd2q1/APRe3RJ6vRPXBd8OAhIRNOpgxYCGZYOalZbAH19W - fcrrj3r6Jb+GrgSsCUSLVgF89rYxtnUW3+LAG8NL5PtWvXzJ8p9xOtmEshMBM/ODE9J0PNQjRekYYGN6 - PED1ySR+09MfUDy+v+oJ/Im9vdn7M1aCalgDzFAUrQ6weYYL/T6zTX2jpwcAThywFIAdBORcQwdtDJU6 - WD0MEDr6h/jm0eper37FQZeaSsC0AGK5AQtCAUzcNsa2z2JSI7wu2xleMcvSTXpJ0/VBL+6h2eO6KanA - quHwZ+SaoTP4p1hj/qYCUBy+PoPtBpSUsqEAdItAVSrWkOCuDrB1Vu/lzVEBW/j1mAA3A35kCD/ZCkKj - Dog4SmoHa4bbYNDAoYHzzuaR6h6vetXBl/8ahhvQLQWQ66ag22bxdW4KP7M/LOTjSSdeCnhGcX1cZIRm - AjASPgj+KCEfGZ78yuLLVJq6kfgoER/G0tW1++NTJF96YPoKvun58DZEZH+iYff+BHshkKESDILmb10B - kHVftxRg/FWUCoYrFawcrKKsVlBSyygpJZSUMspKBSWlgpJShqqoUI3rqlKCqpagqCoUVUVJKUFVVLQ1 - hienVWjWeCtbPT3/+Peuv++fD7DLKbEgIwFyswA+edPYZznhNJ93FPYzfYEzfrAb5nd0NDvDMicYd++l - VUDQpwyX1Rh17WMmmv6/Ff4TTX9D2PU4gApV0Yf+VCMOwFjJ+F62rimsBAYFBML2XRwtDY7JPmYcgJNm - 9fjmb+vDO9CoA4230eEtKOhgzWgbCjTTinhgtLpP7VUHf2kzYsYB+toCOP+msX/zFX7As4LavaBaBlE9 - S6JeEv6fwHxdH0e6iB6cjE8oEcl8WVTaAGsn0KKJeF9JeAx7iDHdCtAn1si1BV+rQNQKPnuVMaboAUKm - 6JYBs0tuWwmK4R6UobAKFKUMValgxVAFZbWMslq1en9V0eMG+veybgEYsYSSEUzUebWZ7BDDxp0MnCyV - 9bQdc49cffuDH61EVVVSJN4WPCkuuHns9ZxwoZ8B0ZXePoPZNYEkWDDJJL1VqK/bjbqRvSm78WnWU4YN - epz0NfxDFc+tSHpkKDddqMUnhICgoBBMcSfxF1OFO/ZzCtO3OVJYGcsHCNPzerBPIQUEVY8BkAZOKjh1 - wEgBOKCRBliU9NKY39sa8OS0PivSKOVLH9v+s4sBvEe22uKgpwrggpvHDibClUzC8pBtoFmb9Ikfz6LB - h0Baj7H4eUbSS0AzSzAA822gWjJGBVyMhNeNsOkHOQvDDPvGDOrZIinEBKy9zpmlQewJRPY+Z9USQ5vr - Q4Qg/TqnDjgp0HhH3zeCc3DR+lQUKGDgGoy1CfrftgZs2QWsGmLm5KLGt3559E8BfCPruu2ZC3DhzWPD - AK4Fw2ikzSqYwVGmcGIXIaNAn4ceBbMra6pHuSShboxJK4a7E0WvW+6YbPDQ5HHW3MorhBG/y8y647xq - KQbXX51XxXIDmDFcCBhugqA0RAyVGVQoUBUVihH8U41AH/OrYxiCz+zgtF5mhrk2sGPOps1Ju/Sbv3zl - /jGqXgq9jAFcDsLTZQQvkQAlbPAOxFFCZj5+JCIUQVBZLOUiORIRWjcuGlJ1GJSOIZO6tpRJiOCGKZcO - B9rclU6anrt0RjoSSssU46tbxdsKgUGxCufOWmH6TsMw652psIYHjSnCzAhO6JOE9MVC7oC6mfP0nO76 - GFim8fZXvv6LsUxlticuwAU/GjuZCMfJOMyyZmbXXQTZvGVN/wwYibU4KWhv2gR142lxKeIqllUhm971 - e66j7yHgYSOEp6BbzHHBz0UwdwRiulAbOwUprhoRV0sOlIB2x3hXZPv2IHtrQNPc158xFAPsj72vEMO2 - WX33JMP1OQLAqQA+G6/Wg9F1C+DCm8f2BWFCvBbYW7melempQumRPL0o68KvV5M11WXH0CPpxakbiS5e - xsKJ445l8u4i6po40NG8+flaBfa4OoJueakIlQPFshDsXtoMCvo/zZg4ZMmNbcHM3+aqX81oE8a2YYyM - 8jGr4TLjQwC27nL4YBd+/e6xPZERuu8CMFzGgOVpzNYohL7ULIYUE5r0gelS0nPUYUJlkllZ/D4hLkKk - cgkgLqab91EAgW2BoA8jOJQBCWmZkBAQRYIgnPlB5pJhQ5QpeGJepSTwTfb0X33dgLlXgJEfI5Ah6GBc - qCdTEehuz86WVa4RAJ9GRuiqArjo5rGTGPDKNMGsuD2mFD0Xn9IN3sc3txuL5Bi1mM71UCL+BBqRlozx - CQtuKkKdiUG4xHXtyjwq2Bf0vsQPJzsWIF3XQOALso1vsdJdZwAwZgzrcXCuGZN9zA93TDpQFZ2qLvjm - pB5x/08zPdfbEgfcEQV3mWdbgMYtxXXiVXePhW6UI4uuxQA+fcvYaIfwH646DUSkW+mzLY2slcAkbyah - x+I8mJRH2XSSvnloMnGVaxZ17coscHchWXrGhQ7Xj/qSng9g9LkKkUuwyTedRxUT6cJsFsqoHH0dgbGm - QKiwkgJ0uLEaEJqx5NfePpwZCoEZvT6IOzoXstLZ/O2ch3i4ykUAxiSrMRBdswA44WMM2C1Jb+ULHxMx - ax82US8OuYdkTHqSeFCmvO5ypR1STGwxuT8JYjOedMbzXPPO/5d7d+RMx+GaNij+ZYYHoUGjFji1wXkb - Gm9B487fHW0eHW0eGrXBqQOFtY15AMZyX2YqEGNKMOPQ/+nX9QKalSPEDcz3Dn2S0HzHKsq6q+4eW4eU - 6IoF8Klbxg4kwrtkeqvESwpSRrZD0zLJdDGIy/RULOx3CBN+t1z7VejpIgoi1TuzOL2uN11Qjy5Dz52u - rQEVFRF1TZ4E5hUOvQc0V/HBHBJk+hRdzjQoJOzPRRoUVgIIUJhixAWYPsMPxvoCjRnug7EtGGk6D2Sv - C4AQ+TdjCdb+AcTBXHaI/QL1w0/LqrWw6iMAfixZZb7oigVAwHpiqEr1zhA0t6QTG9pThaVzpRcbU1BP - FZou7CMxMSiKpiNdTHq+Prb4XAZWQZy6CWssSQK1BP1kHx7xkBl3d98y/XZd+M10epBOv8DBecfoxTuG - BWBaAvoiHk5taIYFoH9vGdbAHDpaCwxtaNQGGUqAEddNf0PIYf3WwIisCWb2sKBeArFNca5bAUZxx752 - 99jzkQKZWwCfumXsYAKOle3lPG8rKCHJJUviw3bdJ5boMmNZLpJdcOK6TkIvad2koGcG+E3LJrSuSU9o - +9YMBA5m2AD6ZdMg14zhO9WYqGPEDRRNXzkIxRED8CwpNrNnDNxcD8A7loKxXAHGrcUKJDgEAPQJQ8we - rRBjAbuMadFGh/ceAG+RrHIPumEBrGeAGnRTehjOHStI01tFpQugFxovkPTHA4e5AupFpm5Cx7xNSPKX - ebwgjrXmZFcqXuB+hgujccGxGXsQzjS/7XSmUOofbvTs+iIeY7kuGT0516BpRq9vWALc8PnNJb1ifICo - DU4tELVB6AAwAxdkTAzSPwQzQKgrG31oECDmEgLzDwGtjlXGY79219gyiWbji0wtgE/dMrY/Af8oNiYZ - RCaLGS8I68VFHzZWrxtEM4UPK/NQHB6DHorT2aeOFwTUtZWWhdML5dFd10bsjnyeIVc6q3AKExQBB4c5 - 3EcADFPd6L8Y2dN/7XMAGBSh99f9fcXiz1pTQIquULghzFbP3zECgZq1T6Ap/NZ0YYd6EsomFHKuo1sB - AAYB/BOAy5EAWbsA74PR+7vNsVTKwOdiJsolC7M1g2BkWOtPYKln7iJkpXjjVoescuHkv3eg72OiecBs - q4BTG2SeC2DF3DQwqIIisB0IfcUgByNhvoBPRXEApBkmPu/ow4FkB/yIa9ZkIXGOgBkL8JbAuEJAS9MD - ggDejIQKILMdgS6+ZWwZgMcADIc/FyMPaV4yoJeDDxtJL4t4geSDXVcGKesmlJyij7uH07P3BXTsCmSd - CGSv+tM3/dBDcuZaAGshECCsEmQCZcWuG6Hbnuvoboq4M5A5PMipA87b9lAhGbsJwTxZWDx4xAtVAYbt - PRIOeNMLpx6yXpmkXGdpAZxMhvCHBtxiNCZZUz2u2epLU8gszTCX383EwciACohl0vvRC6EZZYE5SMj2 - ukGJYtQ1wtKJowiBdW0c1k0kpNEFTCFjQJC4FRXj4GBMMfb/Z7pSANcVCOmOg37LDP6Zw4hm7224FcTQ - EUcczI0/DTfAYpKMKYHWu6LIutEVizUk+DoAn5GsQgtZKoB/Ed9HGONWOkllkDU9kWZW8YKuKpcMXISu - KJcuxQuS1LUlCKF1bSsBfWqvbnZzphjLdwGFG0E4YmCKvXWoAoJmxQuMI8INwWcBHOvbfwNciFTqpr8G - CBaBOQBpHifmPm7MUYeurNqaFQt4NRIogExcgIt/NPYcAu6Jens9NemzptcHLoInbRZ1nTW9nOpaYSFx - AA895xFhsEx8Zpv3UOxzBAwXAVAEs990B8Qgoji+oQtzWyO0rIO/NWvSETemB5umv7WVOPQ9A+wQYHg9 - MVhuQAvAqje9cGoG6LELQMAJltuT1MwU02Vh0vvQi6IZw6SfZsYclH4PHmbtIkTRzLyuJfPlMAL83nRl - EKzTBokBW3e2ZwBGimPBjy68xj5/TF/5BwxU1CFFUVhZYSiXVcPsh6UsxN26GcTcuVUA6wQhcWWgKPyw - hR9E9nqDqPdnjIAY6yIqAI4CcB1iICsX4A2+LyulmZlzvIAD+D8G3ALgLgD3A/jL+8amtmdUZwVywtHn - H3ZIu9V+0/xs+9h2q/NUGG4BY+ZJwfrOwApj1iYgjDEoUDqlsjo/MFCeGRxQd60YrbTWrqqoe64pr16z - Ul0u5sEMRcEZQJw7zXoSTX5u9PhkxSeYT88f1lw1zbJ+jkRMBZDaBbjoR2OHEPDr0LSSJekTF+FRAJ9T - GL5yxrqpvyaqnAILBq88/4Wvm9kxe9H8fOcg06+37AJTIRjf9T+66a+Y7gPpSkItsfnRkYEn99mrOn/w - fgN7rBhVRsAYNE5od7gg/nZAEKLf79hfgGLJCYN+tDqAW9/8oqmXAfIuQGoFcOEtY2eDcIHUM5EXpG65 - +JBMF53kSQac2+H4ylkvn5qPTl5gsYCI2NHrD/vIjq0zHwShou/S41AFhsnPHMoA5h3jtyjDg0OlzU/d - Z2jLcw8a3HtgUB0yMgJcgg/oJw2Lv3WqjiwCYd6qlgCFYQbA8je/aErrXQyA8PfySV2M90+84HIGvP/M - 8altqeujwIIDY4yI6BPHXPySWzc9se064hjR/Wt9tx5mRNvIGD0A55ZC0CcReWnOzGqrf3vf3Op7f098 - 1ZqBR17w7GVDe+9WXqPfJSNsSFYDZrKdYUA6YxRkGMAzANwrXfY0FsAnbxobVBi2AyiHMRdJS6KAccjH - sApmAfzz+8en/jcZ5wUWE4iIvfrCww/funH7Bs4xADjbHGPMHEjUf+taQUxgmd5uueKcsGxF5dGXvGBF - 5Sm7V9YaieSi/SZ5d1IxeMyMpdHA8ae8aOqbPTkaTGF4MUzhN5mTXu0D/8dCaMiSlzwwcjOA8UL4C5hg - jNH159zxs9FVI2eYi4itxVzQTXW909ZNdo00aODgzFhKZEzr5cL0Xm4eDc4I27fP7339LX9be82PNj60 - Y6azy0/4WchHTBCysOoAxEAqBUAMRwQKZEplEEUjjTJgwA4GHPX+8ak70pS/wOLEzefefWl1qHKbcZyP - EbU3t/cSVxLq4me2LTKj/goDmUuPjcbHiKwhwCefmNn/m9c9hl/dv/Nhd97S7RpeWTFiEPvHKWu65cCE - F9lfQxhPoAz8ChilDCJpGnMzGHDM+8en7klV9gKLGoMj1ffrsTohQGcuz4WtEEwBJ8M6sJcwG7v9KqYF - YadlADjng3f8Yst+392w6WGtTZTFiVLG5ii9swAAHOJ3UUoZxECgMoiTrwmGD585PnVrynIXWOS46YO/ - uLMyVLmbiVF+awchY7ow47C29ba299a39jAVgmONgrj1MXThfeJvs/t944d/2zg7r81FCTgQrgiM7PaK - U87ECuD8m8dGCdgvKl23XISE8YJbVYaLk5a5wNLCwFDlK6azzcxJQeb8W6NxkeVfkjC+D4/k2isQjeeF - vdBnZ9q7ffOHT+zaNt2ZjW36i/f0iyNxyphYATDgmVEMyTLei3gBgDaAxvvGppINexRYciiXS19hDB0m - 9rPW7ECXQAPW3PzAHaasZMypEBSGVktbec1NT7Z2GEpAyqWFjwwAsXYHSu4CEA6MZEiW8SREoirC+/zX - P3DU1G8Sl7fAksP1Z925o1It/w6CQNvGu33BYx0IsBSC8FiQddBu8RXX3rJppt2hqL1OPbDSEpZLJLeQ - XAGw8GBDYi2WhEgQPWHiFRg+mbisBZYsylX1Xk8v7xiGE60DyFkHCLYO5nZ11l73402PuPmQVQYcwBV3 - jElP8EusAAjYL3VvH5A2FRF/erd+YHzqD0nLWmDpQlGV+2FM/jGF27WAUFAIDFLWgfHXYVUIj27eNL/f - L343/WAQT1Hi8NYXT3UgiTSjAKtkGco0XTJl8PUU5SywlEF4wpZSveHpPbigDJJaBxCeg9M6+OVvt++9 - Y0abjWbPKQpkHTMkhzQKYE0YQ32mDG5IUc4CSxmMDVoy7ojuCcqgC9YBgapTd257PK6ccMJMnOKlCQKu - jE6S0vQPSBczXvCns14+9QgKFEgA4nxfU4odbrv7sANLITAp6wAS1sHGjXMHPLmlvcWaSwApWWnHKV+a - GMByWY6ytgqAWFbB75KWsUCBToc/356H753I47UOABnrINhVsBUCGNgdv965BTZJSCiDx+OUL91aAJGB - nJRBpFUA/DFNGQssXRx9wWHDnVbnMOfYv4EQZRDLOvC4Ck5qGzfu2m9unloOxgKUgYHH4pQxjQKwTiqX - narrRi+UARE2pyhjgaUMonfCfc6FSxl4YgMZWwcAK/3mTzMPy1i8xv2/xClimg1BKn4XRSZlT6gRn4tI - FjsdgOkUZSywRFGfqFUBvHN42QC4xtHpcGhtDe1WB+35Djpt7hB2ALDW94sRfvOUHxNM2PFPWKIqBgLd - h4E8/OjcwGHPHDHuCaTcTOtK4NE45UysAAixhFBaGcjqjBi6JXIopUABH3wYwNMAQFEVVFQFqJYwiCoA - fYOP1q425ne1ML+rbewWzBzKAADIvTuNqBCYa/tPc3cg838j4fTO9p4dTigpTlp+nSEDfhunkIkVAIPj - EBb53XoMzi0FIvkg83zxz9xHK8YaFy1QoD5RexWAc8LSKArDwHAFA8MVECfsmpnH7M55aB1jY8AMrQOA - lR/b1Hp8392qe/rx4nIN/i9OWRPHABS32+MX0PD5+AU93AsoQo+mdmalf8j4uHhk8CrZAgXCUJ+ovRjA - 1YghG0xhGBodwJo9l2P56mGoJZ9HowKJ7tiBK5C4cVNnu0QcbPs7alN/ilPe5DGAEBs8kRmfRbzARaOQ - /AJxUJ+ojQG4FjGX1FpgwMBwBdWhMmZ2zGF2xxwAeLem83MVjOsQrovte/OOtnk6eVgc7J64LKeKAVhM - SCiDnscLCukvIIn6RI1BP9r+Aoh7XCYEYwwjywdRHShj++YZcI077jutewlXAcDcHNdlVXjW5yDU2+Ly - mnZHIOkhwMSTfDKeX1CggIj6RG0NgB8A+DQyEH4R5WoJq3YfRamiOl1Yp9XvhN8wI4BWm7yjbt4hwOvj - 8phaAQTwE7lBR6Jx/ZjzCwoUCEN9orYO+qlW0mdbxIWiKli5dhSlcsm7DBi+YQAb5hRkfbtxNWLS23aV - 4edx+cvyeHAXP0I5cooXFEqggB/qEzUVwEcBfAgZd4J+YArDirUj2PbkTmgdzTGi5RwG9IQBLGicSq6k - JgkTG/71JVOxR7xSxwBcTISmzTpeEEWvQAE36hO1faAvDz+yl/kqCsOy1cPYtnGnfUIY3MOATmtXVAaq - ynzX+AvN/7uJ+EpcIuvEBJa5SZ+aXtH1F/BBfaJ2DIBfocfCb6JUVjG8bFBwA7xj3OItcay7XFLnQg66 - mSPCNYl4yqRkZjiSUeYmfeKZgbLmRIFFD2Na70UA3pM3L4MjVczvaulTiQHoXb1p7ltzgeG2DqoV3QII - OAvzuncdObUzCT/ZTgV2jEtQ5iZ9auVSYMmhPlF7GoBvAjg0b15MDC0bxI7N5r4dRs9vjwNCnBBsNuaR - YdXh37uOJPxSUl4yWQ7sH5XM0EUIcRNkeCywNFGfqJ0E4JfoI+EHgEq1hHJFDTjEVhgGZABTADBg1fJy - JYDcH1WGHyXlJbNRgPBJOSldBPFCQqugwNJBfaI2DOASAG/Nm5cgDAxXMb1t1vb1zbX9jh7Ltg7WrCit - Clj8c8k7asnPuujKMGDwVF1/F8E3rQ8947HAhwplUKA+UTsEwLcAPCNvXsJQGShZx40DsJQAM21ycvj7 - c6uWlVbDvmU+skXjuDwNH2m2BEu5W4/tIsjS86TLYLJRgcWD+kTtVAB3oc+FH9CnC5erJZiHgugX3Wl0 - hTA0VH48oEP7z9NfNpVquXu6xUAsYWDOc5MJXykZvQXa/dcnavtDP9N9T+jHOlUAbAGwCcAfADw42Wjy - 5DksftQnaisBfBHAG/LmJQ7K1RLa8/rwPnM1WlEO1q4qzRI81u8mTvivtDykcwFCVt+lVgZdiBf0A4zG - +loAdQA1BGyvLmC2PlG7DfrW5t+cbDRjbfq42FGfqP0d9Ik9++XNS1yUKyX75GFhQj/gVAgH7DOwu57G - vAeAcP7pL0029CciuxhAgDJIvMVX1vGCnFGfqB0E4EwAJ0PYT1ECQwBeaXw+XZ+o/RDAJycbzdjzvhcT - jBV8ZwFYjy5Oae8m1JJi+/5+W4IRoKjK1jXLS+5O4o+qgs9lwUN3pgKHL1lMQC/d/II8UZ+orQLwCQDv - BKCmJKcCOAbAMfWJ2vcBnD7ZaD6cdxl7jfpEbTcAXwPwirx5SQtFVTzLhRnZMYHd11QeA5xncBBwxqlH - TLVk8wjNPwsiEauUICi0TIOH/R7oq0/UjgbwGwDvQnrhd+MfANxrBL6WDOoTtVdAX8G34IUfAFRV8awQ - FKcAH7T/wB5iO2fA5OkvnfpBVvlnbjol2a2nl/GCXqE+UTsLwIVdzmYIwOcMP/hfJhvNTHqFfkR9olaC - bkmdjf54xZmAKa4NQYQJgJWy8tjqZaW9hOTbSe9MMkNyF8C1WslzXyxkxM284gXdgOGbTgA4rYfZvgnA - 7vWJWn2y0Vx0uyDXJ2r7AvgGgJfkzUvWYObKH2sTDeM6gAP3GdgBwl7mBcbw3tOPnMo0CJxuKjDZn9B0 - kHARKHsXARK0uoBPo7fCb+JoANcYa90XDeoTtTr0ve4WnfADsHf+ce2MqyjK9NP2HTzIMv0J3zn9yKkr - s84/u6nAzsUJwenEwgfd7ML8gl6gPlF7J/S95fLCK6FbHws+LlCfqA1AV6aZmrx9CcY8m4DuvrbycEnF - s42fjxDw9m5k3ZXdUGSsAkDOKvD5GUkvj6BgfaL2AiD9xIwM8M76RO2f82YiDeoTtWcA+DmWgvCbcO4N - 1j7kwMEDAYABLQa88d0vm9rSjWy7OxU4YxdBNt846bKAEaD6IgKOS8sBn61P1PpqBZws6hO1UwDcDeC5 - efPSCxCRZz/APXar/GFwQBk02vDp737Z1F3dyj/7XYEDC5pfvKAHOA3A83uTlRSqAL5tzDpcEKhP1Ebq - E7WvArgS7gM5FzHcrjNTMPfcA4eeZuwT8rn3vGzqsm7mn2JLMP9LUr1zTBchq/kF3UB9ojaIiGOkcsL+ - AL5qjEr0NeoTtedDX7d/ct689Bpc48L6f4Z9dq8+UK2wKoAfqAzv7nb+2awFSLpzj2TgMCSrxEOKGeIk - AHv0LrtYeA2ADwI4P29G/GAopwb0YF+/uE89A3Fnl6UobMuzDxx6JgF3gXBc46Xxd/mNi9QxAPL8CEkX - Ri8nFyED9HvA7RP1idrL82bCDWOK9LUA/htLUPgB/YRhx6y//QY2lVT8ngGvPGNsaiYtfRlkOhXY8aOP - lEG3YExQObx7OWQCBcDXje2w+wL1idoR0Mf2X5s3L3lCPyNA/zc4oD50wN7VDgPG3rtuamuveOjeyUC+ - F7xpI2lmES/oHo7ubXaJsRbA1fWJWq49bX2iptYnaucC+DGAvlFIeUHrcLP3bz//GUOboAv/k73kIZUL - EHXfVxlEpQuiJ2kVQJJeRjiiN9lkgsOh+9q5oD5R2wvATdCX7y6q2YpJQETgXF8FuNuqyq0rh9V/OKPH - wg90c1fgoHQ5uAhdxCHdJZ85Tq9P1I7vdab1idqroB/IMZ53BfQLtA4HwFAuK3fts3vlpDPGei/8QIYu - QF57+sWxDLqAA3LJNR2+VJ+oPbMXGdUnauX6RO1T0E+tXZt3wfsJnbYGVVWu3n1Ndd1Fr7/1ibz4SDcP - II3gIr94QRYwZv+t6E1umWIYwHfqE7WRbmZi7HV4O4D3513gfgNx4gpTPnz9WXcde8Xb8l29mX4qcBa9 - OJBbvCAFuipAXcYzgHTbSYehPlE7FrrJ/6K8C9qHeJIp7OU/+Lc7zsubESDDqcCOH1kpg4xchC6h65M0 - uoxj6xO192RJsD5RG6xP1L4A/SiuZXkXsA9xJ4AXTDaaU3kzYiLzGECmJn1Mer0MA0w2mjsBdFITyhef - qk/UMllnX5+oPQt6A+/KstVFgM8DOHKy0fxr3oyI6M5yYGRs0iN75ZIRHutdVl1BGcC3jE02E6M+UfsX - 6AdyPDsNnUWKWQAnTzaap/Xjlm3ZTAWWTdeH8YKU+GN3yfcEewP4RpKdhOoTtWX1idr/Ql8KHWer86WC - +wG8aLLRvCpvRoKQyShAbkOAkFMuXcSdPc2texiHPkFHGvWJ2mHQV/AdlzfzfYqrAbxwstG8N29GwpB+ - SzBB4BKfARCyfFB2dR9J0ssYP0F/LgVOgnPqE7WfTTaa3wtLZKzgex+AC6C7EAWcaAH4wGSj2Q+7Q0Ui - 26nACdbo9yRe0D1MAdjR1Rx6i6/UJ2qBk5vqE7U1AL4PfUpxIfxePADgJQtF+IGMpgIH3kijDDJ0EboF - I6hzdRez6DVWQJ8kNOC+UZ+orYO+gu/VeTPZp7gKwKGTjeYv8mYkDjLZFTjU4nbdzNqkl6XXRVyC/t8T - IA6eB+BzAN4G6Cv4AHwEwLno0qjRAscMgHdNNpr/kzcjSZD5C5Vdo79Ao/4eTDaa9wDI7KimPsFb6xO1 - txl7CGyArgAK4ffiV9An9ixI4Qe6vSswJJRBVLogev01MegDWPgzA934HPQG/tK8GelTXALg8MlG8/68 - GUmD1JuCJhoC9LuRkJ6MMug2JhvN3yHHtfZdQhXA6ryZ6ENsAfC6yUbz3ZON5nzezKRFOrMuC5M+JT0g - wEXosS+gKOwjjOE3vc21QI9xG4DnTjaa1+XNSFbIzq/LYggw4GbW8YJu4Dun3d5iCjsBbFENCxbQwaGf - TDzWb3P50yL7GEAWJn1IZpkoly7hO6fefi9j7J09zLJA9/EodMH/6GSjudjiPF0+GSgLkz4kszyi/lG4 - 5rTbv8EUtmAmghQIxfegm/y35s1It9DdXYEDbuYZL+gFGGPvZwy3581HgcRoAXgP9GDf5ryZ6Sa6Nrbb - U5O+z5TBd069rWPEA/6WIxsFkuGP0If3/nuy0eyXPqVrSB4DIHTtGHBZerLKJQ9859Tb/8oYOxELf9OQ - pYSvQJ/O+8u8GekVsjkZSFIZ5BkvyAPXnHb7FGPs3Pw4KCCJaQBvmmw0T5lsNKfzZqaXyH4qcE7KoA/k - PaA+6GLGcG3efBQIxP9B7/W/ljcjeaBrJwMB8V2EhTwEGITJRpMYY2/F4tg9aLHhM9CX7y7Zd9Obk4Fy - jhfkje+cdvs2xtg/Qd8frkD+2AzgmMlG84zFMJ03Dbq3K3BQuhzjBXnimnfdfg+Af82bjwL4MYDnTDaa - 38+bkX5Ab3YFDkq3xJTBZKP5dQCfzZuPJQoOfVnzyycbzYW+m3NmSLwhiCm0LGInDlMYIzcAiUnPl6aQ - Wb8qAej76b0Qxak5vcRfAZww2WgWk7NcSD8VOItePAE9QD5e0E8wthF7I3Q/tED38V3o03kL4fdBtlOB - c1IGkS5Cn2Gy0fwLgBOgm6UFuoN5AI3JRvMfJxvNLXkz06/o3lTgLIYAfehlpVzyxmSjeTOAj+fNxyLF - /QBePNloFvGWCHT/ZKAsTPoAmlnRyxHrAVyfNxOLDFdA36fvnrwZWQjIZiow8unFe3QMeNdgLDY5GcDD - efOyCDAN4KTJRvNtk43mTN7MLBRkcjSYxGVvukIZAAAM//SfoPusBZLhbgDPM4ZZC8RA+qnAEYogD5N+ - oSmDyUbzbgDvzpuPBYp/B1CbbDT/lDcjCxHZTQUOkfg8A30LSAlcBmDB7i+fAzYCePVko/n+fjx2e6Eg - k5OBANcEnZDZOqETecR0QsKwyUGy9BYITgXwfADPyZuRPscG6Mt3F+SMvgtuHqsC2JMBI9BlcDsYtp39 - 8qmtveYlMwUgwjH7T0IZyM4SBBa3MphsNHfVJ2pvgO7TLs+bnz6EBn0674WTjeaCmUNxwc1jTyXCMZzT - OCcc2u7QU0CkkCAADMD669dtYcBvmYqfqAq7CUDz7JdPddWGZZTQRj7zu0dtA7BcVtBY4I+QdGH0JBMy - 4K0XvXbDlWkqqdeoT9T+EcBk3nz0GR6BPp33p3kzIoNP3jymEOE4TaNTiehIklRXTPiiKOwRRcWXVYX9 - d1zrQFauMzsZKNYa/R7HCxYaJhvNawFcnDcffYRroEf5F4Twn3/j2DGdDt3XavOvaxodyXkCOSGAa7Rv - p0Ufa7f4X8+/cd36C380NhCZeUykcwFcNre0SS8+1sN4wQLDB6EvGFqXNyM5Yh7AGZON5ufzZkQG5980 - tkbT6MutNj9GxvX1ueWbTuMY4pzO5RwnX3DT2JvPOXrqtqx4zv5koDR7+klYBpH0FtgQYBCMQyhOAPB4 - 3rzkhPsAvHChCP/6G8YO73Tonk6HjiGK365lLANNo/1abT51/g3rzs6K7+5MBU6gDDzpeji/oF8x2Wj+ - DcCxWHo7C38JwGGTjeaCOGvxvBvHXtPR+JSm0V7ue4HtOmEnRwS1rdEF669f9/kLbx5T0/Le/anAPtt4 - 9TpesJBhLGP9QN589Ag7ABw/2Wj+62SjuSC2T1t/49grWx0+yTkGetbJEaBp9M52hy5Ny3/2uwIj2ioI - TRf22NJVBp8B8O28megy7gTw/MlG85t5MyKL9TeMP6/dpmtIY2WQ7s33spPTNPqX9dev+2iaMnRtV+Cs - XQQgQHumiBcsFBiLht4G4A9589IlfArAEZON5oN5MyKL9TeOj3Y0+g5xDFkXidkf9KZda5w+sv6Gda9I - Wo7e7AqMbJVBXFNqMWCy0dwJ4PVYXDsLPwngVZON5gcmG8123szEgabRZzSNDghu17Yy6GocjKBwjf7n - gpvHRpOUI/1qwDQmfdDNqHTBlbG4pN6FyUbzXiyenYVvhr5V1415MxIXn7hh7HBNo7eK18LbtdcqyNJF - 4IQ9W21an6Qs2cQAsjDpQ2oza1NqIWMR7CzcAXAO9J5/QR6e2unQBUTBQ/gyVkFougB6YcqAE522/oZ1 - e8ctS/JdgY2/gTvzwiqnfzr/R7pPb3Fgoe4s/DCAEycbzZ/lzUhSfPz68cNbHb7O/J28XTPhK0GGnkjT - s84GKHNOZyHmsvL0uwJDoiePStdleosNC3Rn4auhR/kXrPADQKfD3+HolJBFu84mXsA5Tv7kzWOVOOXJ - dldgoHsmvQS9xSjsQVhAOwvPAXjHZKN57GSjuS1vZtLgEzeMVwl4Q9D9bOJgKeIFhJWtef4PccrU+5OB - soj6h9xcSopgAewsfC/0GX2X5c1IFmhrVOOE0VTtNSCt90ayeAEHXhOnTMnnARCyO9YrRqV1Y37BAke/ - 7ix8GfS5/PfmzUhWIE5j1ndk0F5l08VzEV4ap0zZTAWWUARiIaNKn3W8YDFD2Fn4obx5MbAdwLGTjeY7 - JhvNXXkzkyUIeG7A9f5RBoQDPvTdl0ovG+6/k4G6ES9Y5DB2Fn4NdOHLEz+Hvm7/6rzrpBsgjv8XmQYp - 22tAuhjxAkVV2TNky9S9qcAZK4Ostexiw2SjeR+AfwSQx574BOBCAEdONpoP510XXcTazLezl0wHyFkF - AMA51soWKJOpwJHpco4XLBVMNpo/BnAUgK09zPYJAK+cbDTPmWw0F/uy5WHxR17KIMoqYGArZAvU05OB - xEqTpRmV2VLt8YMw2WjeAeAFAH7Vg+xuBPAcYzRiKSDQt878LMwU6YhIev5b15YD99pFAApFYGKy0XwI - wOHQRwi6schmJ4C3A/j7yUbzybzL2ytk2a5l6SVJF0cGkk8FNnLJYpvuTLb9Fm7KThlezJhsNOcBfKQ+ - UfsKgE8AOD6D6pgDcCmA8ycbzU15lzEv9LRdJ0gXB6nPBZBRBCLzPTkDQMhsqVsEk43mAwBOrE/UPgR9 - T4GTAOwfk8w9AL4K4H+WsuCD0DcH3WSlDLI7GSjjAoo0EyuXpS79Agy34MMAPlyfqB0E4EgAzwNwIIA9 - AKw0km6EHtj7A4BfALjVmHZcAAhtwHE7Odl2HUUzjTLozslAWWu7LiiXpYzJRvN+APfnzcdCAwVd6MF2 - 9tLKBb2KAcgy1AfKoECBrkLCKvC55UyXpZzEaPzpYwCSBRQL2et4QYECPUOGLgLQfYs3zZZgLe+lHg4B - BtD0QaK90goUEPHhH44rsa3KgMbb03kzEUjjAsz24zHgbno7ts/vk7SMBQoIWAYk7HV7LCcUQxekcgEc - Jk0fmj5EQGueFwqgQGpwjfZ0X5Nt174P+TyYmTJg2CbLThoFYK088zCeMjoqFjJtvKA93zkoRRkLFAAA - aJwOzqJdyz6YqtMk+dmfaRTAlsgy9YGLMDPdLhRAgdQgwqGWUGbQrr0ZpKcnyIr0ZK00awEiM3EEJkIi - H10OHo78/frnvTFFOQsUAICXmV8c7SuDdi37kCy9doekN4tNsyWYdCYexiUKKZG/VHR0YLCEnTta70la - zgIFzv3B+CoK2II963bt+1A8ZaA9/vjcRtks0lgADyc5fjtQGcgX0JkuwiqoDJawbePMQts/v0Afod2h - k4gQut121u06zoOufB+/6vQ7pfdlSKMArIMc4yyBDCxTl1yEoaESZne2K0d//LlL5YjtAhniQ98fZ8Tp - HUDCNfpZuwhAFL1H4pBKowAe8uUtpTKIqpm4yqA6qMc5Nz02/aEUZS2wRME51YnwrKR7T/Q6XkD66UvS - SLMn4H1ZBe1Cy5TSr1IUBdWBErZv3rXsFR977nlJy1tg6eGD3x+vdDT6pOeG0CZjzepDdu06mCeKtQ17 - YgVw6bEbpgE8mHXQzrdMETUT9RKqw2UADI89uO2sYy46THrDxAJLG5pGZxPhoND2lUAZdDNeQITfxClj - 2i3Bfh2X2TziBYPDJTAGzM91Shsf23lXyjIXWAI4+7qxmqbRh93XpZRBVLogelkMAbb5L+OUM60CuCOy - UGGF71G8YHC4bM2i2PT49FPXnfOsa1OWu8AixlnXjT2lo9G3EDFRTsYqCE0X9lgCZUBEjzZ/tvnROGVN - ty04oRmrUOG0uhYvGFlWAcDAmP559MHtrxv/8CGfT1P2AosT53xvfK3WoZuIY6/EJn3AzW7HCwj4+Z2f - +V2s7jStBXAXEdqZ74KacbxgdGXVMY2YMeCvD2x95/iHDvnflOUvsIhw1nfH9m23eZMI+sk6aU36kJtd - iRcQfhq3zKkUwBeO2zAH4HaLCclevNfxgtHRKsB0wdcVgb5b6KMPbj3uJWce/JvXXnzYcLwcCiw2/Nu1 - Y69od+huTj7Hf2Vh0gfdjEoXRM/noU6Hboxb7izOBfihL7N9pAwUVcHAkO3O6YqAAWDY/Nj0s//ywJaN - rzrveW/JoC4KLDCc/b3x4TOvWfdfmkY3APqRWl036QPoISk9AojjkeZPN/0ubvlTKwCSOJo681NTEiiD - 4WVV0QQAYHxlwOxMe/Dh+zZf8ZL3PeOB11xw6MvT1kmB/sdZ141XzrxmXaPV4n8kwrsRIAtdN+kzoseJ - borr/wMAo7hdqvmgIEhv/+b47wEcBMgvgZTdwy8reg/ctxl/vm+LgyjzPExgDFi+ZvBvo8sH/3d0ZfVj - 17z3zrxP3C2QIc68Zt0hRDiFCCdB3w7dQpx9JZnkDen2m5KeptFr/v2NP7GscVm5zmpb8KsBnAs4NVae - W4G5sXLVIP5sCj4zTgxhNmFG9oPbN83tsX3T3HuZyt7zosbTtg4MVx4qV0q/V8vq70sqNnHCrJgHCWwy - Zq8WZwAREWPMq8gdLDKmDQ1Xdhi8C0FdZ3kYc18XVqYbz9lnxNrXrDLb9Bw8wj+99V1xnrQkpGcEZ3CV - /L87XwhjNo/uunGUKYSmzpfLmhPTMCgMbBmB1gDsIMbwLAA1zuHZ2cd6j5JtUnwJoWdRsJB0KemJaYmw - efPm+UTnM2ajAAjfBHBuv+4LCAArVg84nzK9AVN6mZM4AwM4sentrVXTO1qrQHiB1ZCFZ0VmbDvC+O6i - 6cc3Y8DQsgFoqw0PRWDa/q3/x0SFZSVj1m/rL2yhcyoPV1qBJ0fZHH8ZBBYc+bpk1XKpDOkT8iXrh1gv - Ji0GsV7JQc+uYkHYjf84kcWjtYMUILxX8z6BSC9jT9ukcFP2uDpZeqIyIKJrrnzHzxOdAZnJ4aCXHb/h - twDulh2vDEO3hhQVVcHw8rI7DGA0OmGIgDE7jTFvgBlzCGA0cKGHNRo1c1xjFh3mFBxHQ9fTKYqC0RWD - jnLJQjZYFJg2QfApMq3gw8rw6DvMlSRfMV2X2lBex9tHxQs6Gl0pUQxfZHY6MAFflB6vlCl8xqMIALBs - pSlozBZ664rQ45r/M/GmKcDM2yVYD9saQowv2EoE1ncz0ciKQSiq/2uQFkqKpzgCM3N9lW2gsvRkWIjT - hmTrpUfbz8vxGBD1T6oMiOg3P/3ppp/JVIcfsjwe/BsApj3MSlgFvVIGq9YOur0AR89uX4TTDGf2dduk - NmcWei19Bm96MOeHMX2l4uBINbJiZQUyriKQbaCZ0JMtgx8bfdSGMqWXwRAg57giSfTfRGYK4IvHb9gJ - 4EthzGbpIiSp+NW7DUFRmMcNcPTsjAk6wJZ+swcHnArB1ABOReEJegkuALPSDS2rggkRNtmeRfwbVX6Z - Ss16WAoS9CRZ89DNuw11jV6CuuaEbbO7Ol+OUY0eZGkBAMBnAGhShU+p0YH45liprGJkxYCPrw9XTx7c - rYuug3mZBAXithDMDIi56IAF9v5x10NIpZG0DkjiZqYuAsV438i/DcnS60W8gIguv/TNzVTD1JkqgC8e - v+HPBFwdy5/psXm3cq0dcBN7fP233ZOTfclr1kMUcEf80FYCTqPCqTQYUBksQ1WVaIbFvxL1GpkmhiIg - iZuZBLRilsFDrw9dBJGmbFmiMnP9nG+1+H9JVlcgsrYAAOCjALREWr0HL3L17kMevx1wCTpgRf6JecwD - R0ImmPT2fdttcD5iWw/VobKjbDL1JNvyZBtnaqsgpX8feCOBTxxEQ/KWp2762UUAAI3TlyZOvO0vEtUT - iswVwJeO3/AHAF+LW0lwp+uSr7dsxQAqA6q3d3Z043D24LAFnfkqAqf6sDp8cShRcDmYwlAdKPvzLFPJ - MSpVWhkguoFG0otpFYTSS+ATA71pQxHsdp8eYbbd4udLsB+JblgAAOFjIMwlriQEvMiE9ABnpa/eYxgO - gXWP6gm+vH4B9vi+8dst97Ye8cYIzC9kuBulSskR/AuqA/nqziaNmTATegmVgaxlIFsvizFewDldMnHi - bY9LVkMouqIAvnTChocJ+I9MzDExXUbm3dq9Rj0Re2dkHzADft5prMI4vvCN/NwAj8mgXy9XSxbPzi/+ - 5ZJCjF5cilxMqyAqmBWnLJGmcFS+AY8shngBJ3p8errzyeiUcuiOBaDjAgIez9QcQzbKYNmKKgaMbcLE - 4T7HnD5xmNCtCBxy7Zz1xxzWgPN583ep7K322A05ImGcBipV71kFtBBPMCBBL3ZZ0L/KIIoe5/jQF9/a - 3CFZdZHomgK4/IQN0wAavoXPwhzzoxdDuey+z4j+JcDUd5j41n3mUgyuNO7hRb80ANSSmrp+YwlQDN9e - WrlI8hjKfAz/PpS/JRIvIKJbf/bTjVdKsCKNbloAuPyEDdcAuDaw8Fm7CJCnt/s+o1CYAnHM3yGnruCd - OB2Yucx7Z9APcBMUJxYxhUUP/wk8+//wXpZuoHHzjaKX1idOYBlEuggJlMsCiBfMtVr87Wlm/fmhqwrA - wLsQcpR415RBBL1SRcWqPcwhQddiH88YIfNYBUzs9V3xAOciIWf3r0QE/4LKlWX6OI1TOsMMXYTQdAGP - hSoYmXR+9PrIReCcPvbZE2+7X6JKYqHrCuDyEzY8RsC/RqXL3BxD9Ivc86nL9C+iPy9M13V7AIDTC/CO - HvopAnHiEJzRf8ke2V2uOBUiZdJLJJS1NGTnF0j14lHpZKsibtDB77EclQERTf3pgR2fjse9HHphAeDL - J2y4hoDLczPH/OgRMLq8ipGVxnRc93x+4xp8BDxoqrDfrD8AwjRghsD+P4Ey8C1o/Fv+9SSRjaxy6fUy - WsjQS6gMomh0IV6wdb7F3/L9D/5SkyAbGz1RAEZJTgfhHrGSem6Owfsi9zlghWcmny7r3uidc54Q8x0d - ENf6i3GEGPWU2CqQ9t1lecjQh5V1EUJpJowXIIpejArvcbyAaxo/5fMn3RbrxN846JkC+PKJG3YBeD0I - 2/xeZGQloTvKYPmqQQwvq3pm+olDeeSnCOBwGFzzA2DHCcSRBRZDWONKddBjEVaBVD1JJIzT2OMIXc/i - BX3oInBO511y3K3fi8dVPPTOAgDw5RM3PAjgOJgrBoWaycKkD00Xgn2ftsL45pn/6xJk4YfP8B7gdCGI - 3AMDzFeYpM3uhMrA8YMk0qbkIU6Dl7EMpAQ3TRtKwnwYvQyUAef03ccfm/14PC7io6cKAAC+fOKGmwg4 - NbBmYlRSVubY6MoBLF894L/0T5zfbz7gniTgsfBF0981VAiAcx5apigkORvBl3YaZRCzB88yQBZIL4Ey - kFUusghskzE6KCK6a2amc9LV770ruKFkhJ4rAAC44sQNXyTgPJlK71W84KkHrQJjdnV4ovviJB/jkmO4 - L8DXJyMNCYpA06LfazcUgUjX1zoIqCsZPrIcVoxLL8t4QddchBAarnQPtVr8dZe/tTkTL7dkyEUBAMAV - J274MIDPxdHA3XIRCMDAYAl77DsSOPQHCH25OEnIvMF0YRdX/Qm37MAiY+AdLh3si+VbJ0RUA43LR2ZT - kE2rIE09+bz/PF2EiA7qr60WP+rSk7NZ6COD3BSAgQaAK3wryY0szLsIZbDXfstRHS5bPb0DfpqB4AkZ - QOjxPfsJGl87He6kIVEWkf2oREniBZ5HUioCWT6k5UnSRQjlsQ9cBA9/5g9Oj7fb/JWfP+nWh+JRS4dc - FcAVJ24gAP8M4NKgSuqaeefzEFMY9j94NXRPwDk70E7kP7/fukfi1GBxoZBNi2vc/+SWmL6mTKK4ysBj - VmdlFWRYrkzjBchPGQiP/KXdoZd//sRbY5/tlxZ5WwCmEjgNwL8HpYnrIqSJFwyPVrDHvsuFYH+wjy+u - JPRfUOBKbNAiAJ1W8LyOTJbi+qRL0lM5HpMUuFBeu6QMEtdTFm1IOjNfPNhu8Zd9/qTeCz+AbM4GzApv - +fr4GQz4NCQUE5O8KculO90ff7sR09vmHQkYMXsSIAOM42a8zxtH04hThsn4Yj5bUhUMLhuwk0OgC9sF - EdccWPFIx1/meNb+K8xHCLjm0FviGQnCTEh/OnBYNM7REfse89zzngxkzpHwlEFMJz7r4c/5EPO976pD - mbaRQRuKvEl0Z7tDr730pFufkMxCGrJynbsFIOLKEzf8JwH/RMCurMyxpBp9v6evRqWq+gz/2XCfKOQ3 - E9C91bgJTePgGnl4iISkvpaOKSSMFWRlFYgEZd6RDE3Tyuj1/II4LgInmpxv8bFuCH8c9JUCAIArT9xw - DQiHA3gwa3MsDr1SRcGBz1oDteQUYNH/J/urDu+BA3B0W67b7flEx7lZTOZhSvtVbVS8II5F3K0ly3m0 - oYB0nHP62BOP7XrjZW+6bVayGF1DX7kAIt5y1fhKAF8F8Jpum2Nhaae3z+PB320GEdmmrTHFj8R6IKfp - Kf4WXQD7OoExBYOjVagK85q7bjOWBZnAzqnHDjdCKBwTfjjTee856XldAIu6202BEBcBHC6Gm1fA6H18 - rnvoKfZN5pvOds287og3f9mmm1UbMkHAZtLozZ870T7Gu1tYkC6AiCtP2rAVwDEATgdhvpvmWBi9keVV - 7H/wascR2Y7TghxRf9iBQ5dr4LUgdC3Rnu9k15NLmr5RZXbQi2Fp+FZviN0u/S5jRP17Ri9GGzLyvKXd - 0p7XC+GPg761AES85arxZwH4HwAvsBlw8SPLt+RNd7odW+fwyB+2wJzFa/XuBEcvZ9WNYAGQI3AoWgb6 - iMDgcAVqSRHoujYfETKUCfZZPMDmNbCXF4j6B9CEwCdsBRZmATg2WhX/ukZKQoOTDnpe3p3eljMI6Lrk - zSfo9WdsGRive5aIPvLE47P/+Z0zuj+114SsXC8IBQAAb7lqXAXwXgDrAQw6bmatDALozUy38ef7N0Nr - c8ddozM3tIHLBDYJkC3wTExHAFMZhkaEfQnExh6gAOxL3tEBkQeRDz++/FwGx18/BWB8sdJJKgA/IQ5V - YkCoArDLF64AzN+KdMvIQBnor/YWTeNv/8KJtz4onXFGWHQKwMQpV43vz4CLAbzRnzHfr+FliXGzPd/B - n+/fgvldHSsBY44RQZgXHArAr86ERlqplvTtwn0UgJGLj5DbPzy9bYgC8Ah5YMzAlS/gVQAmHVEAJRWA - 3eP7KwCBNY//7qhKFjZEKP5mTroSSKIICPgLEX3wF3dsvCrrPfxksWgVgIlTrhpfB+DTTHQLPEz6fg0v - l8RNzgl/e3g7tm6chWUBCM8Sc/amZHiH4vi4OzfGgIGhMpSSEqoArKdYhLD5CIVH0MzvEgrAvBWkABx8 - xVQAjs1VHV+CLZQgBSC+K2fcJtgFyFAZ7CCi/+p0+EVffNNtPVnME4RFrwAA4JSrxhmA1wH4OIDnxDXp - I8sYcXPHll342593oGO4BLYr4NQIVlUZ8QK7kTubpKIwVIcrUHyi6JEKwLyWQAGI9H39doe5bdMKUgAO - YfVReEEKQKgWZ34BCooJifwUgEP+lWAFIP3OxXTOhLMEXKZ1+HmXnXzrZkkSXcWSUAAmDEXwGgD/BuCl - siZ9nBIEpeWc44m/TGPLxhmHUJiNVXQNnMKkawO3MCglBdXBikeg/RQAIPS2Ag2PchEEzZFOpCPSZ5BS - AB5ehP98rYnAGITLNPezOMy68nEBmIQCMC2ATAJ9NjYRcClxuuQLJ/3kSblHeoMlpQBEnHLV+GHQNxw5 - DsBw1sogKN38XAdPPLoDM9tacAoAWfMAGDFvAxasA7OBq6USqgMlj7vAQhSASDNyJMGPDry8WUojRAH4 - 0/NXAGYZ4igAUVOJJr2wdYPvGo3QGIDzT5J3fhcBX2rPa1+7/C35T+bxw5JVACZOuWp8FMDxxmcdXC6h - t0C+XyH5iIW5mTY2PzmL6a279KPFhXTM8xBz9cZkuRDlsoryQCmRAggMmrl7YPF+iALw0AnKV8g7TAGI - z4l8ecrmqC/ns05l4H0T7riMnwKIepcu/BXAt4nTlV846Sf3RCfPF0teAYg45arx3QC8HsCrARwFYKjb - 8YJOi2Pbll3YuXUOrXlhxMAMCDJjuRCDOXro7BGJUKqUUKmqdq/qEbRoBeAMmgnCHCKcYQoAAi3/iHxQ - 3t4yOEZNIPj1EgpA5NGzM7ObJ4t2dNfvunUvgBsBXFuuKLdf8oYNuUT0k6BQAAE45arxKoAagCMAHMGA - vwMw4l9I36/RdeP63ZrrYOf2eeyabmHXTFufgWYKvmAB2B6C/b9aUVGpqA7/3bzp8OsRrgD8rIIgF8MS - XCGxnwIws1AiFIDoZoQqAJEGk1MA+nf/590vJWIqMAfhfgA/A3A7gX502Yk/+UuM195XKBSAJIwA4v7Q - RxEOAXAggP2Mz+4AjDW7Qtll68jnGhFhfraD+fkO5nfpf3mbo93m9txUV4NWSgqq1bJXoIzu1WnmIlIB - BEbS3coFNv0wBeAVXH8F4HZjwhSAlUbxPgv4KwCx4hXXb6P8BGArGB4F8BAIf2bAfQTcw4B7vnDij3Md - ussShQLICG+5anwIwGoAywGUAJTAbIshjTJw35yb7Qy25ztDWoeXOYeqabwCDoUYoChMUxTWMdMbbdqc - YGCuNSIPUfOea1a+y2wmAFDENJ4gGrPyYk56LuUopGN2fo48BT6Zbvg4eXXGBOy0ikjLp6zO620A0wpj - RKDtDGzbZSf9eKPk61rw6LoCKFCgwMJH364GLFCgQPdRKIACBZYwCgVQoMASRqEAChRYwigUQIECSxiF - AihQYAmjUAAFCixhFAqgQIEljEIBFCiwhFEogAIFljAKBVCgwBJGoQAKFFjC+P//wC7VvMLlNQAAAABJ - RU5ErkJggg== - - - \ No newline at end of file diff --git a/CxViewerAction/Web References/CxVSWebService/Reference.cs b/CxViewerAction/Web References/CxVSWebService/Reference.cs index 37b39cf7..8ed4ce68 100644 --- a/CxViewerAction/Web References/CxVSWebService/Reference.cs +++ b/CxViewerAction/Web References/CxVSWebService/Reference.cs @@ -23,7 +23,7 @@ namespace CxViewerAction.CxVSWebService { /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Web.Services.WebServiceBindingAttribute(Name="CxVSWebServiceSoap", Namespace="http://Checkmarx.com/v7")] @@ -1599,7 +1599,7 @@ private bool IsLocalFileSystemWebService(string url) { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -1632,7 +1632,7 @@ public string Pass { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -1713,7 +1713,7 @@ public int UserPreferedLanguageLCID { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -1746,7 +1746,7 @@ public long ScanID { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] public enum CxWSReportType { @@ -1765,7 +1765,7 @@ public enum CxWSReportType { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -1798,7 +1798,7 @@ public long ID { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -1879,7 +1879,7 @@ public string data { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -1960,7 +1960,7 @@ public string Path { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] public enum GroupType { @@ -1980,7 +1980,7 @@ public enum GroupType { /// [System.Xml.Serialization.XmlIncludeAttribute(typeof(UserData))] - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -2253,7 +2253,7 @@ public string[] AllowedIPs { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -2287,7 +2287,7 @@ public Role RoleData { /// [System.Xml.Serialization.XmlIncludeAttribute(typeof(CxWSRoleWithUserPrivileges))] - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -2320,7 +2320,7 @@ public string ID { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -2341,7 +2341,7 @@ public CxWSItemAndCRUD[] ItemsCRUD { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -2374,7 +2374,7 @@ public CxWSEnableCRUDAction[] CRUDActionList { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] public enum CxWSItemTypeEnum { @@ -2423,7 +2423,7 @@ public enum CxWSItemTypeEnum { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -2456,7 +2456,7 @@ public bool Enable { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] public enum CxWSCrudEnum { @@ -2481,7 +2481,7 @@ public enum CxWSCrudEnum { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -2514,7 +2514,7 @@ public long ResultID { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -2559,7 +2559,7 @@ public int Order { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -2604,7 +2604,7 @@ public CxCategoryType CategoryType { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -2733,7 +2733,7 @@ public long QueryVersionCode { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -3018,7 +3018,7 @@ public bool IsLocked { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -3099,7 +3099,7 @@ public int Year { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] public enum ScanType { @@ -3124,7 +3124,7 @@ public enum ScanType { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -3277,7 +3277,7 @@ public int TotalOsaScans { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -3334,7 +3334,7 @@ public bool IsAllowedToUpdate { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -3451,7 +3451,7 @@ public int PathNodeId { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -3544,7 +3544,7 @@ public CxWSPathNode[] Nodes { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -3757,7 +3757,7 @@ public long QueryVersionCode { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Xml.Serialization.XmlTypeAttribute(Namespace="CxDataTypes.xsd")] public enum CompareStatusType { @@ -3773,7 +3773,7 @@ public enum CompareStatusType { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -3794,7 +3794,7 @@ public int NumOfScansToKeep { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -3827,7 +3827,7 @@ public string Value { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -3872,7 +3872,7 @@ public string Type { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -3905,7 +3905,7 @@ public CxWSIssueTrackingParam[] Params { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -3950,7 +3950,7 @@ public ScanActionType Action { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] public enum ScanEventType { @@ -3966,7 +3966,7 @@ public enum ScanEventType { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] public enum ScanActionType { @@ -3979,7 +3979,7 @@ public enum ScanActionType { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -4000,7 +4000,7 @@ public ScanAction[] ScanActionList { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -4081,7 +4081,7 @@ public int SchedulingFrequency { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] public enum ScheduleType { @@ -4097,7 +4097,7 @@ public enum ScheduleType { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] public enum DayOfWeek { @@ -4125,7 +4125,7 @@ public enum DayOfWeek { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -4158,7 +4158,7 @@ public string ExcludeFoldersPatterns { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -4192,7 +4192,7 @@ public string FileName { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -4237,7 +4237,7 @@ public int EventsThreshold { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -4426,7 +4426,7 @@ public CxWSPerforceBrowsingMode PerforceBrowsingMode { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] public enum RepositoryType { @@ -4451,7 +4451,7 @@ public enum RepositoryType { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] public enum SourceControlProtocolType { @@ -4470,7 +4470,7 @@ public enum SourceControlProtocolType { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] public enum GitLsRemoteViewType { @@ -4489,7 +4489,7 @@ public enum GitLsRemoteViewType { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] public enum CxWSPerforceBrowsingMode { @@ -4505,7 +4505,7 @@ public enum CxWSPerforceBrowsingMode { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -4538,7 +4538,7 @@ public bool IncludeSubTree { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -4631,7 +4631,7 @@ public SourceFilterPatterns SourceFilterLists { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] public enum SourceLocationType { @@ -4650,7 +4650,7 @@ public enum SourceLocationType { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -4683,7 +4683,7 @@ public Credentials Credentials { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -4824,7 +4824,7 @@ public ProjectOrigin OpenSourceAnalysisOrigin { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] public enum ProjectOrigin { @@ -4855,7 +4855,7 @@ public enum ProjectOrigin { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -4948,7 +4948,7 @@ public DataRetentionSettings DataRetentionSettings { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -5041,7 +5041,7 @@ public bool isUserAllowToDelete { [System.Xml.Serialization.XmlIncludeAttribute(typeof(CxWSResponseQueryDescription))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(CxWSResponseSessionID))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(CxWSResponseLoginData))] - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -5074,7 +5074,7 @@ public string ErrorMessage { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -5095,7 +5095,7 @@ public AssignUser[] AssignUsers { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -5116,7 +5116,7 @@ public CxWSResultPath[] Paths { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -5137,7 +5137,7 @@ public bool scanReportReady { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -5170,7 +5170,7 @@ public long scanId { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -5204,7 +5204,7 @@ public bool containsAllResults { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -5237,7 +5237,7 @@ public bool IsFailed { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -5258,7 +5258,7 @@ public long ID { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -5279,7 +5279,7 @@ public ConfigurationSet[] ConfigSetList { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -5300,7 +5300,7 @@ public Group[] GroupList { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -5321,7 +5321,7 @@ public CxWSResponseScanStatus[] statusArr { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -5654,7 +5654,7 @@ public bool PartialResults { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] public enum CurrentStatusEnum { @@ -5688,7 +5688,7 @@ public enum CurrentStatusEnum { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -5709,7 +5709,7 @@ public UserData[] UserDataList { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -5730,7 +5730,7 @@ public ResultState[] ResultStateList { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -5751,7 +5751,7 @@ public CxWSQueryVulnerabilityData[] Queries { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -5772,7 +5772,7 @@ public ScanDisplayData[] ScanList { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -5793,7 +5793,7 @@ public ProjectDisplayData[] projectList { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -5814,7 +5814,7 @@ public CxWSResultPath Path { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -5835,7 +5835,7 @@ public CxWSSingleResultData[] Results { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -5868,7 +5868,7 @@ public string RunId { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -5901,7 +5901,7 @@ public UserPermission Permission { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -5922,7 +5922,7 @@ public Preset[] PresetList { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -5944,7 +5944,7 @@ public string QueryDescription { /// [System.Xml.Serialization.XmlIncludeAttribute(typeof(CxWSResponseLoginData))] - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -5965,7 +5965,7 @@ public string SessionId { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -6310,7 +6310,7 @@ public bool IsAllowedToDeleteScans { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] public enum CxClientType { @@ -6356,7 +6356,7 @@ public enum CxClientType { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] public enum ResultLabelTypeEnum { @@ -6381,11 +6381,11 @@ public enum ResultLabelTypeEnum { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] public delegate void LoginCompletedEventHandler(object sender, LoginCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class LoginCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -6407,11 +6407,11 @@ public CxWSResponseLoginData Result { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] public delegate void LoginWithTokenCompletedEventHandler(object sender, LoginWithTokenCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class LoginWithTokenCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -6433,11 +6433,11 @@ public CxWSResponseLoginData Result { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] public delegate void LoginBySIDCompletedEventHandler(object sender, LoginBySIDCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class LoginBySIDCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -6459,11 +6459,11 @@ public CxWSResponseLoginData Result { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] public delegate void GetQueryDescriptionCompletedEventHandler(object sender, GetQueryDescriptionCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetQueryDescriptionCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -6485,11 +6485,11 @@ public CxWSResponseQueryDescription Result { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] public delegate void GetQueryDescriptionByQueryIdCompletedEventHandler(object sender, GetQueryDescriptionByQueryIdCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetQueryDescriptionByQueryIdCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -6511,11 +6511,11 @@ public CxWSResponseQueryDescription Result { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] public delegate void VerifySupportedVersionCompletedEventHandler(object sender, VerifySupportedVersionCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class VerifySupportedVersionCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -6537,11 +6537,11 @@ public CxWSBasicRepsonse Result { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] public delegate void LogoutCompletedEventHandler(object sender, LogoutCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class LogoutCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -6563,11 +6563,11 @@ public CxWSBasicRepsonse Result { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] public delegate void SsoLoginCompletedEventHandler(object sender, SsoLoginCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class SsoLoginCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -6589,11 +6589,11 @@ public CxWSResponseLoginData Result { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] public delegate void GetPresetListCompletedEventHandler(object sender, GetPresetListCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetPresetListCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -6615,11 +6615,11 @@ public CxWSResponsePresetList Result { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] public delegate void GetProjectConfigurationCompletedEventHandler(object sender, GetProjectConfigurationCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetProjectConfigurationCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -6641,11 +6641,11 @@ public CxWSResponseProjectConfig Result { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] public delegate void RunScanAndAddToProjectCompletedEventHandler(object sender, RunScanAndAddToProjectCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class RunScanAndAddToProjectCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -6667,11 +6667,11 @@ public CxWSResponseRunID Result { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] public delegate void RunIncrementalScanCompletedEventHandler(object sender, RunIncrementalScanCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class RunIncrementalScanCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -6693,11 +6693,11 @@ public CxWSResponseRunID Result { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] public delegate void CreateAndRunProjectCompletedEventHandler(object sender, CreateAndRunProjectCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class CreateAndRunProjectCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -6719,11 +6719,11 @@ public CxWSResponseRunID Result { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] public delegate void GetResultsForQueryCompletedEventHandler(object sender, GetResultsForQueryCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetResultsForQueryCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -6745,11 +6745,11 @@ public CxWSResponceScanResults Result { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] public delegate void GetResultPathCompletedEventHandler(object sender, GetResultPathCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetResultPathCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -6771,11 +6771,11 @@ public CxWSResponceResultPath Result { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] public delegate void GetPathCommentsHistoryCompletedEventHandler(object sender, GetPathCommentsHistoryCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetPathCommentsHistoryCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -6797,11 +6797,11 @@ public CxWSResponceResultPath Result { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] public delegate void GetProjectsDisplayDataCompletedEventHandler(object sender, GetProjectsDisplayDataCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetProjectsDisplayDataCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -6823,11 +6823,11 @@ public CxWSResponseProjectsDisplayData Result { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] public delegate void GetScansDisplayDataCompletedEventHandler(object sender, GetScansDisplayDataCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetScansDisplayDataCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -6849,11 +6849,11 @@ public CxWSResponseScansDisplayData Result { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] public delegate void GetQueriesForScanCompletedEventHandler(object sender, GetQueriesForScanCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetQueriesForScanCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -6875,11 +6875,11 @@ public CxWSResponceQuerisForScan Result { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] public delegate void SetFalsePositiveFlagCompletedEventHandler(object sender, SetFalsePositiveFlagCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class SetFalsePositiveFlagCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -6901,11 +6901,11 @@ public CxWSBasicRepsonse Result { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] public delegate void GetResultStateListCompletedEventHandler(object sender, GetResultStateListCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetResultStateListCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -6927,11 +6927,11 @@ public CxWSResponseResultStateList Result { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] public delegate void GetAllUsersCompletedEventHandler(object sender, GetAllUsersCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetAllUsersCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -6953,11 +6953,11 @@ public CxWSResponseUserData Result { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] public delegate void UpdateSetOfResultStateCompletedEventHandler(object sender, UpdateSetOfResultStateCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class UpdateSetOfResultStateCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -6979,11 +6979,11 @@ public CxWSBasicRepsonse Result { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] public delegate void UpdateResultStateCompletedEventHandler(object sender, UpdateResultStateCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class UpdateResultStateCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -7005,11 +7005,11 @@ public CxWSBasicRepsonse Result { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] public delegate void UpdateProjectIncrementalConfigurationCompletedEventHandler(object sender, UpdateProjectIncrementalConfigurationCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class UpdateProjectIncrementalConfigurationCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -7031,11 +7031,11 @@ public CxWSBasicRepsonse Result { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] public delegate void GetScansStatusesCompletedEventHandler(object sender, GetScansStatusesCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetScansStatusesCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -7057,11 +7057,11 @@ public CxWSResponseScanStatusArray Result { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] public delegate void IsValidProjectNameCompletedEventHandler(object sender, IsValidProjectNameCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class IsValidProjectNameCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -7083,11 +7083,11 @@ public CxWSBasicRepsonse Result { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] public delegate void GetAssociatedGroupsListCompletedEventHandler(object sender, GetAssociatedGroupsListCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetAssociatedGroupsListCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -7109,11 +7109,11 @@ public CxWSResponseGroupList Result { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] public delegate void GetConfigurationSetListCompletedEventHandler(object sender, GetConfigurationSetListCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetConfigurationSetListCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -7135,11 +7135,11 @@ public CxWSResponseConfigSetList Result { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] public delegate void CancelScanCompletedEventHandler(object sender, CancelScanCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class CancelScanCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -7161,11 +7161,11 @@ public CxWSBasicRepsonse Result { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] public delegate void GetStatusOfSingleScanCompletedEventHandler(object sender, GetStatusOfSingleScanCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetStatusOfSingleScanCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -7187,11 +7187,11 @@ public CxWSResponseScanStatus Result { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] public delegate void CreateScanReportCompletedEventHandler(object sender, CreateScanReportCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class CreateScanReportCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -7213,11 +7213,11 @@ public CxWSCreateReportResponse Result { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] public delegate void GetScanReportStatusCompletedEventHandler(object sender, GetScanReportStatusCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetScanReportStatusCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -7239,11 +7239,11 @@ public CxWSReportStatusResponse Result { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] public delegate void GetScanReportCompletedEventHandler(object sender, GetScanReportCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetScanReportCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -7265,11 +7265,11 @@ public CxWSResponseScanResults Result { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] public delegate void GetQueriesForScanByRunIdCompletedEventHandler(object sender, GetQueriesForScanByRunIdCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetQueriesForScanByRunIdCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -7291,11 +7291,11 @@ public CxWSResponceQuerisForScanAndId Result { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] public delegate void GetScanXMLReportStatusCompletedEventHandler(object sender, GetScanXMLReportStatusCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetScanXMLReportStatusCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -7317,11 +7317,11 @@ public CXWSResponseScanReportStatus Result { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] public delegate void GetResultPathsForQueryCompletedEventHandler(object sender, GetResultPathsForQueryCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetResultPathsForQueryCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -7343,11 +7343,11 @@ public CxWSResponseResultPaths Result { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] public delegate void GetProjectAssignUsersCompletedEventHandler(object sender, GetProjectAssignUsersCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetProjectAssignUsersCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -7369,11 +7369,11 @@ public CxWSResponseUserData Result { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] public delegate void GetProjectAssignUsersListCompletedEventHandler(object sender, GetProjectAssignUsersListCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetProjectAssignUsersListCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -7395,11 +7395,11 @@ public CxWSResponseAssignUsers Result { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] public delegate void CreateScanXMLReportCompletedEventHandler(object sender, CreateScanXMLReportCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class CreateScanXMLReportCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -7421,11 +7421,11 @@ public CxWSBasicRepsonse Result { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] public delegate void GetScanXMLReportCompletedEventHandler(object sender, GetScanXMLReportCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3056.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetScanXMLReportCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { diff --git a/CxViewerAction/Web References/CxWsResolver/Reference.cs b/CxViewerAction/Web References/CxWsResolver/Reference.cs index 7cbbaa5f..f723fa1d 100644 --- a/CxViewerAction/Web References/CxWsResolver/Reference.cs +++ b/CxViewerAction/Web References/CxWsResolver/Reference.cs @@ -23,7 +23,7 @@ namespace CxViewerAction.CxWsResolver { /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.6.1055.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Web.Services.WebServiceBindingAttribute(Name="CxWSResolverSoap", Namespace="http://Checkmarx.com")] @@ -124,7 +124,7 @@ private bool IsLocalFileSystemWebService(string url) { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.6.1055.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com")] public enum CxClientType { @@ -170,7 +170,7 @@ public enum CxClientType { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.6.1055.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -192,7 +192,7 @@ public string ServiceURL { /// [System.Xml.Serialization.XmlIncludeAttribute(typeof(CxWSResponseDiscovery))] - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.6.1055.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -225,11 +225,11 @@ public string ErrorMessage { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.6.1055.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] public delegate void GetWebServiceUrlCompletedEventHandler(object sender, GetWebServiceUrlCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.6.1055.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetWebServiceUrlCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { diff --git a/CxViewerAction/packages.config b/CxViewerAction/packages.config index 990eb0ca..5e2930fd 100644 --- a/CxViewerAction/packages.config +++ b/CxViewerAction/packages.config @@ -1,4 +1,74 @@  - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/CxViewerAction2019/CxViewerAction.xml b/CxViewerAction2019/CxViewerAction.xml new file mode 100644 index 00000000..9ef2a9a5 --- /dev/null +++ b/CxViewerAction2019/CxViewerAction.xml @@ -0,0 +1,7154 @@ + + + + CxViewerAction2019 + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represent commandResult class structure + + + + + Execute command + + + + + Execute login command + + + + + + + Execute upload command + + + + + + + Execute scan command + + + + + + + Execute scan command + + + + + + + Execute scan command + + + + + + + Represent dispatcher class structure + + + + + Dispatch command + + + + + + + Handler for excution + + + + + + + Represent dispatcher object + + + + + Dispatch command + + + + + + + Represent base methods-properties graph object + + + + + Gets or sets graph severity + + + + + Gets or sets current selected graph path + + + + + Gets graph horizontal length (max horizontal elements) + + + + + Gets graph vertical length (max vertical elements) + + + + + Gets or sets list of path sequances + + + + + Gets or sets the max node relations comparing to all graph nodes + + + + + Gets item position in graph matrix start from top-left corner + + Grapth element + X-Y position of element inside graph + + + + Perform adding new path to graph and updating item references + + + + + + Represent main methods-properties for path object + + + + + Gets or sets current selected graph item + + + + + Problem sequance length + + + + + Gets or sets problems sequance from begin to end + + + + + Get the position of first path element in comparission + with most top element in all graph paths + + + + + Gets the vertical position of path in graph matrix + + + + + Represent main methods-properties for graph path item object + + + + + Gets or sets problem file name + + + + + Gets or sets item name + + + + + Gets or sets problem line position + + + + + Gets or sets problem column position + + + + + Gets or sets problem text length + + + + + Determine that this item exist in other graph paths. + + + + + Determine that this item exist in other graph paths. + + + + + Gets or sets parent item + + + + + Gets or sets value indicated that current graph item id connection point + for all same items + + + + + Gets or sets column element position in graph object + + + + + Gets or sets row element position in graph object + + + + + Represent presenter class structure + + + + + Represent upload controller object + + + + + Constructor + + + + + + Load event handler + + + + + + + Perform upload project + + Parent view + Upload data + + + + Map upload object data to view + + + + + + Map view data to upload object + + + + + + + Represent main scan view class methods + + + + + Perform scan + + Parent view + data + + + + Represent main login view class methods + + + + + Perform login + + Parent view + Login data + + + + Represent main scan view class methods + + + + + Perform scan + + Parent view + data + + + + Represent main scan view class methods + + + + + Perform scan + + Parent view + Scan data + + + + Represent main upload view class methods + + + + + Perform project upload + + Parent view + Upload data + + + + Represent login controller object + + + + + Constructor + + Related view + + + + Load event handler + + + + + + + Perform login + + Parent view + Login data + + + + Map object data to view + + + + + + Map view data to object + + + + + + Represent scan controller + + + + + Get Related View + + + + + Constructor + + Scan data + + + + Load event handler + + + + + + + Perform scan + + Parent view + Scan data + + + + Represent upload controller object + + + + + Constructor + + + + + + Load event handler + + + + + + + Perform upload project + + Parent view + Upload data + + + + Map upload object data to view + + + + + + Map view data to upload object + + + + + + + Represent View class structure + + + + + View load handler + + + + + Show modal dialog + + + + + + Show modal dialog + + parent view + + + + + Show non-modal view + + + + + Show non-modal view + + parent view + + + + Close view + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized string similar to Aktion. + + + + + Looks up a localized string similar to Add-Ins. + + + + + Looks up a localized string similar to Analyse. + + + + + Looks up a localized string similar to Erstellen. + + + + + Looks up a localized string similar to Klassendiagramm. + + + + + Looks up a localized string similar to Community. + + + + + Looks up a localized string similar to Daten. + + + + + Looks up a localized string similar to Datenbank. + + + + + Looks up a localized string similar to Datenbankdiagramm. + + + + + Looks up a localized string similar to Debuggen. + + + + + Looks up a localized string similar to Diagramm. + + + + + Looks up a localized string similar to Bearbeiten. + + + + + Looks up a localized string similar to Datei. + + + + + Looks up a localized string similar to Format. + + + + + Looks up a localized string similar to Rahmen. + + + + + Looks up a localized string similar to Hilfe. + + + + + Looks up a localized string similar to Bild. + + + + + Looks up a localized string similar to Layout. + + + + + Looks up a localized string similar to Makros. + + + + + Looks up a localized string similar to Projekt. + + + + + Looks up a localized string similar to Query. + + + + + Looks up a localized string similar to Abfrage-Designer. + + + + + Looks up a localized string similar to Umgestalten. + + + + + Looks up a localized string similar to Bericht. + + + + + Looks up a localized string similar to Ressourcen. + + + + + Looks up a localized string similar to Schema. + + + + + Looks up a localized string similar to Formate. + + + + + Looks up a localized string similar to Tabelle. + + + + + Looks up a localized string similar to Tabellen-Designer. + + + + + Looks up a localized string similar to Team. + + + + + Looks up a localized string similar to Test. + + + + + Looks up a localized string similar to Extras. + + + + + Looks up a localized string similar to Ansicht. + + + + + Looks up a localized string similar to Fenster. + + + + + Looks up a localized string similar to XML. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized string similar to Action. + + + + + Looks up a localized string similar to Addins. + + + + + Looks up a localized string similar to Analyze. + + + + + Looks up a localized string similar to Build. + + + + + Looks up a localized string similar to Class Diagram. + + + + + Looks up a localized string similar to Community. + + + + + Looks up a localized string similar to Data. + + + + + Looks up a localized string similar to Database. + + + + + Looks up a localized string similar to Database Diagram. + + + + + Looks up a localized string similar to Debug. + + + + + Looks up a localized string similar to Diagram. + + + + + Looks up a localized string similar to Edit. + + + + + Looks up a localized string similar to File. + + + + + Looks up a localized string similar to Format. + + + + + Looks up a localized string similar to Frames. + + + + + Looks up a localized string similar to Help. + + + + + Looks up a localized string similar to Image. + + + + + Looks up a localized string similar to Layout. + + + + + Looks up a localized string similar to Macros. + + + + + Looks up a localized string similar to Project. + + + + + Looks up a localized string similar to Query. + + + + + Looks up a localized string similar to Query Designer. + + + + + Looks up a localized string similar to Refactor. + + + + + Looks up a localized string similar to Report. + + + + + Looks up a localized string similar to Resources. + + + + + Looks up a localized string similar to Schema. + + + + + Looks up a localized string similar to Styles. + + + + + Looks up a localized string similar to Table. + + + + + Looks up a localized string similar to Table Designer. + + + + + Looks up a localized string similar to Team. + + + + + Looks up a localized string similar to Test. + + + + + Looks up a localized string similar to Tools. + + + + + Looks up a localized string similar to View. + + + + + Looks up a localized string similar to Window. + + + + + Looks up a localized string similar to XML. + + + + + Looks up a localized string similar to Acción. + + + + + Looks up a localized string similar to Complementos. + + + + + Looks up a localized string similar to Analizar. + + + + + Looks up a localized string similar to Generar. + + + + + Looks up a localized string similar to Diagrama de clase. + + + + + Looks up a localized string similar to Comunidad. + + + + + Looks up a localized string similar to Datos. + + + + + Looks up a localized string similar to Base de datos. + + + + + Looks up a localized string similar to Diagrama de base de datos. + + + + + Looks up a localized string similar to Depurar. + + + + + Looks up a localized string similar to Diagrama. + + + + + Looks up a localized string similar to Editar. + + + + + Looks up a localized string similar to Archivo. + + + + + Looks up a localized string similar to Formato. + + + + + Looks up a localized string similar to Marcos. + + + + + Looks up a localized string similar to Ayuda. + + + + + Looks up a localized string similar to Imagen. + + + + + Looks up a localized string similar to Diseño. + + + + + Looks up a localized string similar to Macros. + + + + + Looks up a localized string similar to Proyecto. + + + + + Looks up a localized string similar to Consulta. + + + + + Looks up a localized string similar to Diseñador de consultas. + + + + + Looks up a localized string similar to Refactorizar. + + + + + Looks up a localized string similar to Informe. + + + + + Looks up a localized string similar to Recursos. + + + + + Looks up a localized string similar to Esquema. + + + + + Looks up a localized string similar to Estilos. + + + + + Looks up a localized string similar to Tabla. + + + + + Looks up a localized string similar to Diseñador de tablas. + + + + + Looks up a localized string similar to Equipo. + + + + + Looks up a localized string similar to Prueba. + + + + + Looks up a localized string similar to Herramientas. + + + + + Looks up a localized string similar to Ver. + + + + + Looks up a localized string similar to Ventana. + + + + + Looks up a localized string similar to XML. + + + + + Looks up a localized string similar to Action. + + + + + Looks up a localized string similar to Compléments. + + + + + Looks up a localized string similar to Analyser. + + + + + Looks up a localized string similar to Générer. + + + + + Looks up a localized string similar to Diagramme de classes. + + + + + Looks up a localized string similar to Communauté. + + + + + Looks up a localized string similar to Données. + + + + + Looks up a localized string similar to Base de données. + + + + + Looks up a localized string similar to Schéma de base de données. + + + + + Looks up a localized string similar to Déboguer. + + + + + Looks up a localized string similar to Schéma. + + + + + Looks up a localized string similar to Edition. + + + + + Looks up a localized string similar to Fichier. + + + + + Looks up a localized string similar to Format. + + + + + Looks up a localized string similar to Frames. + + + + + Looks up a localized string similar to ?. + + + + + Looks up a localized string similar to Image. + + + + + Looks up a localized string similar to Disposition. + + + + + Looks up a localized string similar to Macros. + + + + + Looks up a localized string similar to Projet. + + + + + Looks up a localized string similar to Requête. + + + + + Looks up a localized string similar to Concepteur de requêtes. + + + + + Looks up a localized string similar to Refactoriser. + + + + + Looks up a localized string similar to Rapport. + + + + + Looks up a localized string similar to Ressources. + + + + + Looks up a localized string similar to Schéma. + + + + + Looks up a localized string similar to Styles. + + + + + Looks up a localized string similar to Tableau. + + + + + Looks up a localized string similar to Concepteur de tables. + + + + + Looks up a localized string similar to équipe. + + + + + Looks up a localized string similar to Test. + + + + + Looks up a localized string similar to Outils. + + + + + Looks up a localized string similar to Affichage. + + + + + Looks up a localized string similar to Fenêtre. + + + + + Looks up a localized string similar to XML. + + + + + Looks up a localized string similar to Azione. + + + + + Looks up a localized string similar to Componenti aggiuntivi. + + + + + Looks up a localized string similar to Analizza. + + + + + Looks up a localized string similar to Genera. + + + + + Looks up a localized string similar to Diagramma classi. + + + + + Looks up a localized string similar to Comunità. + + + + + Looks up a localized string similar to Dati. + + + + + Looks up a localized string similar to Database. + + + + + Looks up a localized string similar to Diagramma database. + + + + + Looks up a localized string similar to Debug. + + + + + Looks up a localized string similar to Diagramma. + + + + + Looks up a localized string similar to Modifica. + + + + + Looks up a localized string similar to File. + + + + + Looks up a localized string similar to Formato. + + + + + Looks up a localized string similar to Frame. + + + + + Looks up a localized string similar to ?. + + + + + Looks up a localized string similar to Immagine. + + + + + Looks up a localized string similar to Layout. + + + + + Looks up a localized string similar to Macro. + + + + + Looks up a localized string similar to Progetto. + + + + + Looks up a localized string similar to Query. + + + + + Looks up a localized string similar to Progettazione query. + + + + + Looks up a localized string similar to Effettua refactoring. + + + + + Looks up a localized string similar to Report. + + + + + Looks up a localized string similar to Risorse. + + + + + Looks up a localized string similar to Schema. + + + + + Looks up a localized string similar to Stili. + + + + + Looks up a localized string similar to Tabella. + + + + + Looks up a localized string similar to Progettazione tabelle. + + + + + Looks up a localized string similar to Team. + + + + + Looks up a localized string similar to Test. + + + + + Looks up a localized string similar to Strumenti. + + + + + Looks up a localized string similar to Visualizza. + + + + + Looks up a localized string similar to Finestra. + + + + + Looks up a localized string similar to XML. + + + + + Looks up a localized string similar to 操作. + + + + + Looks up a localized string similar to アドイン. + + + + + Looks up a localized string similar to 分析. + + + + + Looks up a localized string similar to ビルド. + + + + + Looks up a localized string similar to クラス ダイアグラム. + + + + + Looks up a localized string similar to コミュニティ. + + + + + Looks up a localized string similar to データ. + + + + + Looks up a localized string similar to データベース. + + + + + Looks up a localized string similar to データベース ダイアグラム. + + + + + Looks up a localized string similar to デバッグ. + + + + + Looks up a localized string similar to ダイアグラム. + + + + + Looks up a localized string similar to 編集. + + + + + Looks up a localized string similar to ファイル. + + + + + Looks up a localized string similar to 書式. + + + + + Looks up a localized string similar to フレーム. + + + + + Looks up a localized string similar to ヘルプ. + + + + + Looks up a localized string similar to イメージ. + + + + + Looks up a localized string similar to レイアウト. + + + + + Looks up a localized string similar to マクロ. + + + + + Looks up a localized string similar to プロジェクト. + + + + + Looks up a localized string similar to クエリ. + + + + + Looks up a localized string similar to クエリ デザイナ. + + + + + Looks up a localized string similar to リファクタ. + + + + + Looks up a localized string similar to レポート. + + + + + Looks up a localized string similar to リソース. + + + + + Looks up a localized string similar to スキーマ. + + + + + Looks up a localized string similar to スタイル. + + + + + Looks up a localized string similar to テーブル. + + + + + Looks up a localized string similar to テーブル デザイナ. + + + + + Looks up a localized string similar to チーム. + + + + + Looks up a localized string similar to テスト. + + + + + Looks up a localized string similar to ツール. + + + + + Looks up a localized string similar to 表示. + + + + + Looks up a localized string similar to ウィンドウ. + + + + + Looks up a localized string similar to XML. + + + + + Looks up a localized string similar to 작업. + + + + + Looks up a localized string similar to 추가 기능. + + + + + Looks up a localized string similar to 분석. + + + + + Looks up a localized string similar to 빌드. + + + + + Looks up a localized string similar to 클래스 다이어그램. + + + + + Looks up a localized string similar to 커뮤니티. + + + + + Looks up a localized string similar to 데이터. + + + + + Looks up a localized string similar to 데이터베이스. + + + + + Looks up a localized string similar to 데이터베이스 다이어그램. + + + + + Looks up a localized string similar to 디버그. + + + + + Looks up a localized string similar to 다이어그램. + + + + + Looks up a localized string similar to 편집. + + + + + Looks up a localized string similar to 파일. + + + + + Looks up a localized string similar to 서식. + + + + + Looks up a localized string similar to 프레임. + + + + + Looks up a localized string similar to 도움말. + + + + + Looks up a localized string similar to 이미지. + + + + + Looks up a localized string similar to 레이아웃. + + + + + Looks up a localized string similar to 매크로. + + + + + Looks up a localized string similar to 프로젝트. + + + + + Looks up a localized string similar to 쿼리. + + + + + Looks up a localized string similar to 쿼리 디자이너. + + + + + Looks up a localized string similar to 리팩터링. + + + + + Looks up a localized string similar to 보고서. + + + + + Looks up a localized string similar to 리소스. + + + + + Looks up a localized string similar to 스키마. + + + + + Looks up a localized string similar to 스타일. + + + + + Looks up a localized string similar to 테이블. + + + + + Looks up a localized string similar to 테이블 디자이너. + + + + + Looks up a localized string similar to 팀. + + + + + Looks up a localized string similar to 테스트. + + + + + Looks up a localized string similar to 도구. + + + + + Looks up a localized string similar to 보기. + + + + + Looks up a localized string similar to 창. + + + + + Looks up a localized string similar to XML. + + + + + Looks up a localized string similar to 操作. + + + + + Looks up a localized string similar to 外接程序. + + + + + Looks up a localized string similar to 分析. + + + + + Looks up a localized string similar to 生成. + + + + + Looks up a localized string similar to 类关系图. + + + + + Looks up a localized string similar to 社区. + + + + + Looks up a localized string similar to 数据. + + + + + Looks up a localized string similar to 数据库. + + + + + Looks up a localized string similar to 数据库关系图. + + + + + Looks up a localized string similar to 调试. + + + + + Looks up a localized string similar to 关系图. + + + + + Looks up a localized string similar to 编辑. + + + + + Looks up a localized string similar to 文件. + + + + + Looks up a localized string similar to 格式. + + + + + Looks up a localized string similar to 框架. + + + + + Looks up a localized string similar to 帮助. + + + + + Looks up a localized string similar to 图像. + + + + + Looks up a localized string similar to 布局. + + + + + Looks up a localized string similar to 宏. + + + + + Looks up a localized string similar to 项目. + + + + + Looks up a localized string similar to 查询. + + + + + Looks up a localized string similar to 查询设计器. + + + + + Looks up a localized string similar to 重构. + + + + + Looks up a localized string similar to 报表. + + + + + Looks up a localized string similar to 资源. + + + + + Looks up a localized string similar to 架构. + + + + + Looks up a localized string similar to 样式. + + + + + Looks up a localized string similar to 表. + + + + + Looks up a localized string similar to 表设计器. + + + + + Looks up a localized string similar to 工作组. + + + + + Looks up a localized string similar to 测试. + + + + + Looks up a localized string similar to 工具. + + + + + Looks up a localized string similar to 视图. + + + + + Looks up a localized string similar to 窗口. + + + + + Looks up a localized string similar to XML. + + + + + Looks up a localized string similar to 動作. + + + + + Looks up a localized string similar to 增益集. + + + + + Looks up a localized string similar to 分析. + + + + + Looks up a localized string similar to 建置. + + + + + Looks up a localized string similar to 類別圖表. + + + + + Looks up a localized string similar to 社群. + + + + + Looks up a localized string similar to 資料. + + + + + Looks up a localized string similar to 資料庫. + + + + + Looks up a localized string similar to 資料庫圖表. + + + + + Looks up a localized string similar to 偵錯. + + + + + Looks up a localized string similar to 圖表. + + + + + Looks up a localized string similar to 編輯. + + + + + Looks up a localized string similar to 檔案. + + + + + Looks up a localized string similar to 格式. + + + + + Looks up a localized string similar to 框架. + + + + + Looks up a localized string similar to 說明. + + + + + Looks up a localized string similar to 影像. + + + + + Looks up a localized string similar to 配置. + + + + + Looks up a localized string similar to 巨集. + + + + + Looks up a localized string similar to 專案. + + + + + Looks up a localized string similar to 查詢. + + + + + Looks up a localized string similar to 查詢設計工具. + + + + + Looks up a localized string similar to 重整. + + + + + Looks up a localized string similar to 報表. + + + + + Looks up a localized string similar to 資源. + + + + + Looks up a localized string similar to 結構描述. + + + + + Looks up a localized string similar to 樣式. + + + + + Looks up a localized string similar to 資料表. + + + + + Looks up a localized string similar to 資料表設計工具. + + + + + Looks up a localized string similar to 小組. + + + + + Looks up a localized string similar to 測試. + + + + + Looks up a localized string similar to 工具. + + + + + Looks up a localized string similar to 檢視. + + + + + Looks up a localized string similar to 視窗. + + + + + Looks up a localized string similar to XML. + + + + + Execute system command, like "Save All", "Close" etc + + + + + + Get project path for current selected project in solution explorer + + + + + + Get problem file from entire project or solution + + + + + + + + + + Show selected project file + + + + + + + + + The object for implementing an Add-in. + OnConnection + + + + Implements the OnConnection method of the IDTExtensibility2 interface. Receives notification that the Add-in is being loaded. + + Root object of the host application. + Describes how the Add-in is being loaded. + Object representing this Add-in. + + + + + Initialize Project and Solution menu. + + + + + Entity data + + + + + Class represent Dicitionary object with serialization capability + + + + + + + Read data xml in serialization process + + + + + + Write data xml in serialization process + + + + + + Represent user choise + + + + + Not selected + + + + + Agree decision + + + + + Disagree deicission + + + + + Represent scanb dialod data + + + + + Scanned project name + + + + + Start position in progress + + + + + End position in progress + + + + + Current progress position + + + + + Current status activity name + + + + + Current stage + + + + + Current stage message + + + + + Current stage complete percent + + + + + Current stage number + + + + + Ordered graph data representation + + + + + Find item dependences in previous paths + + + + + Sequence of graph elements + + + + + Grapth element + + + + + Represent command class structure + + + + + Login data + + + + + Default language code + + + + + Full service path url format + + + + + Get or set server domain + + + + + Get or set server full url + + + + + Gets or sets value indicating that connection must be established throw htts protocol + + + + + Gets or sets value indicating that Authenticationa Type Log in Form Or User Submit Form throw htts protocol + + + + + Get or set Entity prorepty + + + + + Gets or sets interval to call server to get current process state + + + + + Get or set dialog state. If true - dialog validated sucessfull and user hit button go next step + + + + + Get or set status to show scan dialog window + + + + + Get or set status to show open perspective dialog after scan completed + + + + + Stored projects perspective URL + + + + + Gets or sets extensions list to exclude when project compressed before scan + + + + + Gets or sets folder list to exclude when project compressed before scan + + + + + Gets or sets reconnection interval in seconds + + + + + Gets or sets counts to reconnect + + + + + Gets or sets max allowed zip file size in megabites for scan + + + + + Gets or sets the option to disable connection optimizations + This optimization should be disabled when there is a proxy or firewall between the plugin and the server + + + + + Verify if user enter all data to start auth verification + + + + + + Adding project perspective dictionary + + + + + + + + Clear user auth data + + + + + Class represent project entity + + + + + Sulution project name + + + + + Gets or sets solution project name + + + + + Sulution path or single project path + + + + + Gets or sets root solution path or single project path + + + + + Sulution projects full file paths + + + + + Gets or sets solution project full file path + + + + + Scan Data Class + + + + + Server data that was received on user auth request + + + + + Upload project settings + + + + + Server data that was received on start scan request + + + + + Scan executing now + + + + + Check for cancel button state + + + + + VS-addin scan dock window to represent scan data + + + + + VS-addin scan dock window to represent scan data + + + + + Associated scan project + + + + + Event handler for RunInBackground button + + + + + Event handler for Cancel button + + + + + Event handler for Details button + + + + + Check for cancel button state + + + + + Verify that user press cancel button + + + + + Empty constructor + + + + + Constructor with param + + auth server result + + + + Constructor with param + + auth server result + handler for runInBackground button + handler for cancel button + handler for details button + + + + Verify if Cancel button pressed. Thread sleep until timeout expired or cancel button pressed + + + + + + Upload Data Class + + + + + Entity identifier + + + + + Project name + + + + + Project description + + + + + Gets or sets presets list + + + + + Selected preset + + + + + Gets or sets teams list + + + + + Selected team + + + + + If true - upload form was validated sucessfully and user confirm to start scanning + + + + + Represent service configuration object + + + + + Get or set service perform status + + + + + Get or set configuration property list + + + + + Get first configuration key in list + + + + + Convert ConfigurationResult from xml + + xml string + + + + + Represent service login object + + + + + Get or set service perform status + + + + + Current user session identifier + + + + + User authentification data + + + + + Represent service preset object + + + + + Get or set service perform status + + + + + Get or set list of presets + + + + + Convert PresetResult from xml + + xml string + + + + + Gets or sets query identifier + + + + + Gets or sets value indication that object received succesfull + + + + + Gets or sets query description + + + + + Save query description object to file + + + + + + Read query description from file + + + + + + Get query object from xml + + + + + + + Gets or sets query problem file name + + + + + Gets or sets query problem line position + + + + + Gets or sets query problem column position + + + + + Gets or sets query problem name + + + + + Gets or sets query problem length + + + + + Gets or sets node position + + + + + Gets or sets parent element + + + + + Gets or seta parent container + + + + + Gets or sets query report node identifier + + + + + Gets or sets query report node identifier + + + + + Gets or sets query problem file name + + + + + Gets or sets query problem line position + + + + + Gets or sets query problem column position + + + + + Gets or sets query problem path + + + + + Gets or sets query identifier + + + + + Gets or sets query Cwe identifier + + + + + Gets or sets query name + + + + + Gets or sets query group + + + + + Gets or sets query problem importance + + + + + Gets or sets query report list + + + + + Gets or sets parent element + + + + + Represent report result object + + + + + Get or set list detected source problems + + + + + Get tree list of problems where top level are severity types with personal report list + + + + + Convert ReportResult object from xml + + xml string + + + + + Run scan object + + + + + Get or set service perform status + + + + + Get or set scan identifier + + + + + Get or set status scan result + + + + + Convert RunScanResult from xml + + xml string + + + + + Scan status + + + + + Unknown status + + + + + Scan run + + + + + Scan finished + + + + + Project are queued for scan + + + + + Scan cann't be processed + + + + + Represent remote service status scan object + + + + + Get or set service perform status + + + + + Get or set scan identifier + + + + + Get or set scan status + + + + + Get or set completed work status in percent + + + + + Get or set current stage number + + + + + Get or set current stage name + + + + + Get or set current stage completed work in percent + + + + + Get or set stage message + + + + + Get or set step message + + + + + Get or set scan details + + + + + Get or set scan start time + + + + + Get or set scan end time + + + + + Get or set queue project position in scan status is 'Queue' + + + + + Convert StatusScanResult object from xml + + + + + + + Convert RunStatus object from string + + + + + + + Represent remote service team object + + + + + Service perform request successfully + + + + + Teams dictionary + + + + + Get or set service perform status + + + + + Get or set teams dictionary + + + + + Get first team name + + + + + Convert xml to TeamResult object + + + + + + + Represent service perspective object + + + + + Get or set service perform status + + + + + Generated report URL + + + + + Convert PerspectiveResult from xml + + xml string + + + + + Perform background work by parallel threads to improve UI responsibility + + + + + Set the numbers of attempts to execute function in exeception occurs + + + + + Set the delay interval beetween repeat + + + + + Main background worker delegate + + + + + Main background worker funck + + + + + Relogin handler + + + + + Perform background job and show view while process executes + + View title message + If false - cancel buton in supported view was pressed + + + + Wait dialog caption message + + + + + Encrypt the given string using AES. The string can be decrypted using + DecryptStringAES(). The sharedSecret parameters must match. + + The text to encrypt. + A password used to generate a key for encryption. + + + + Decrypt the given string. Assumes the string was encrypted using + EncryptStringAES(), using an identical sharedSecret. + + The text to decrypt. + A password used to generate a key for decryption. + + + + Helper class for downloading content via HTTP + + + + + Download page content + + page url + + + + + File name to store user settings + + + + + Wait dialog progress text + + + + + Load login data + + How many times load method completed with problems + + + + + Save login info + + Login class + + + + Execute login + + + + + + Logout from service + + + + + Load stored user data + + + + + + Helper class for perspective manipulation + + + + + Perspective not exist message + + + + + Execute 'Previous Result' command + + + + + Ask user to open perspective now + + user auth data + + + + + Execute 'Show Stored' command + + + + + + + + Helper class that manipulate with stored problem description + + + + + Find specified problem description + + Problem identifier + If file description was found method returns full path to file, otherwise retutn null + + + + Helper class for scan execution + + + + + Execute scan + + Upload project folder + + + + + + + + Execute scan + + Upload project folder + + + + + + + Handler for ScanInBackground button + + + + + + + Handler for Cancel button + + + + + + + Handler for Details button + + + + + + + Main storage folder under VS path + + + + + Retutn content of specific file + + + + + + + Save file + + content + file name to save + + + + + Show Message on the top of all windows + + + + + Settings upload project params + + + + + Set upload params + + Auth user data for uploading + Selected solution project data + + + + + Class encapsulates methods for transforming XML string to system objects + + + + + Convert XML string into PresetResult object + + xml string + + + + + Convert XML string into TeamResult object + + xml string + + + + + Convert XML string into ConfigurationResult object + + xml string + + + + + Convert XML string into RunScanResult object + + xml string + + + + + Convert XML string into StatusScanResult object + + xml string + + + + + Convert XML string into PerspectiveResult object + + xml string + + + + + Convert XML string into ReportResult object + + xml string + + + + + Convert XML string into ReportQueryItemPathResult list + + + + + + + Convert XML string into QueryDescriptionResult object + + + + + + + Creates ZIP archives + + + + + Regular expression to make selection include file range + + + + + Regular expression to make selection include directory range + + + + + Compress string with Zip technology. If in process of zip generation the archive size + exceed maxAllowedZipFileSize value operation canceled. + + List of projects to zip + List of file extensions to exclude from zip + List of folders to exclude from zip + Max allowed zip file size + If maxAllowedZipFileSize value exceed function return null otherwise zip byte stream + + + + Zip a folder of files in a new zip file + + + + + Writes a single entry (file or folder) to an open zip file + + The open zip file stream + The entry name to be created + The file path of the file to be written + Open mode (share/non share) + + + + Show previous scanned result for selected project + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to <?xml version="1.0" encoding="utf-8"?> + <root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader n [rest of string was truncated]";. + + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Changes for bug Plug-513 unable to see scan results + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to <?xml version="1.0" encoding="utf-8"?> + <root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader n [rest of string was truncated]";. + + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Wrapper for service client + + + + + Servive client object + + + + + Constructor + + server url + + + + Close client and clear object data + + + + + Return selected problem description + + Problem identifier + + + + + LoginUserNamePassword Call Rest Api when AuthTypeUsernamePassword + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Interface that represent main problematic file entity properties and methods + + + + + Problem file name + + + + + Problem line position + + + + + Problem column position + + + + + Problem source code element name + + + + + Length of name param + + + + + Parent object container + + + + + Represent main method-properties for perspective graph view + + + + + Graph to represent on view + + + + + Find path in graph by query item data + + + + + + + Generate view representation + + + + + Gets or sets event handler on path item button click + + + + + Interface that represent main problematic file options and events + + + + + QueryItem attached to current problem + + + + + Bind view controls with new data + + + + + Event handler, attached to path buttons + + + + + Interface that represent main report view problem properties and methods + + + + + Event that fired when user binded project and changed a scan by using UI + + + + + Event that fired when user select view problem description inside control + + + + + Gets or sets currently selected problem type + + + + + Gets or sets report + + + + + Bind contols with object values + + + + + Change control activity and set loading message when control perform data binding + + Activity state + Message to show while control is perform data binding + + + + Interface that represent main report view problem properties and methods + + + + + Event that fired when user select Node in tree + + + + + Event that fired when user binded project and changed a scan by using UI + + + + + Event that fired when user select view problem description inside control + + + + + Gets or sets currently selected problem type + + + + + Gets or sets report + + + + + Bind contols with object values + + + + + Change control activity and set loading message when control perform data binding + + Activity state + Message to show while control is perform data binding + + + + Added scan list control to the perspective control + + + + + + Remove scan list control from the perspective control + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Control represent addin custom settings form, available through "Tools" - "Options" menu item + + + + + Login click button handler + + + + + + + Bind object data to form controls + + + + + Bind form contol values to object data + + + + + + Validate server name + + + + + + + "Restore default" button handler + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Control represent addin custom settings form, available through "Tools" - "Options" menu item + + + + + Gets or sets user decision value to open perspective immediately after scan complete + + + + + Save button click handler + + + + + + + Bind object data to form controls + + + + + Bind form control values to object data + + + + + + Validate set of excluded extensions: not empty + + + + + + + Validate set of excluded folders: not empty + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Gets or sets currently selected report problem type + + + + + Gets or sets currently selected report + + + + + Bind object data to form controld + + + + + Set form visiblity and show specified loading message if no active + + + + + + + Generating tree view perspective representation + + + + + + Set form activity + + + + + + + Handler attached to mouse up button in tree control + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Graph view + + + + + Used for restoring scroll X position aftet rebinding + + + + + Used for restoring scroll Y position after rebinding + + + + + Gets or sets graph object + + + + + Bind object to view representation + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + User control to visualize problem path flow + + + + + Path click handler + + + + + Problem flow paths + + + + + Gets or sets problem flow paths + + + + + Sets handler for path button click event + + + + + Bind object data to form controls. Generate path sequance + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Gets or sets currently selected Node + + + + + Gets or sets currently selected report problem type + + + + + Gets or sets currently selected report + + + + + Bind object data to form controld + + + + + Set form visiblity and show specified loading message if no active + + + + + + + Generating tree view perspective representation + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represent upload view obligatory methods and properties + + + + + Represent login view obligatory properties and methods + + + + + Get or set entity identitifier + + + + + Gets or sets to use secured connection + + + + + Get or set server domain name (i.e. example.com) + + + + + Represent scan view obligatory properties and methods + + + + + Get or set entity identifier + + + + + Get or set scan progress + + + + + Get or set to run scan in background mode + + + + + Get or set form visibility + + + + + Increment progress for num positions + + position + + + + Clear progress and start from begin + + + + + RunInBackground button handler + + + + + Cancel buttom handler + + + + + Details button handler + + + + + Represent upload view obligatory methods and properties + + + + + Get or set entity identifier + + + + + Get or set project name + + + + + Get or set project description + + + + + Get or set selected preset + + + + + Gets or sets presets list + + + + + Get or set selected team + + + + + Gets or sets teams list + + + + + Gets or sets progress title message + + + + + Gets or sets cancel button handler + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Gets or sets custom entity identifier + + + + + Sets progress bar state + + + + + Gets alwaysInBackground checkbox state + + + + + Gets or sets dialog visibility + + + + + Gets or sets RunInBackground button handler + + + + + Gets or sets cancel button handler + + + + + Gets or sets details button handler + + + + + Show modal dialog + + + + + + Show modal dialog + + Parent view container + + + + + Show non-modal dialog + + + + + Show non-modal dialog + + Parent view container + + + + Close view + + + + + Increment progress state + + increment value + + + + Calculate percent difference by current and max values + + + + + + + + Update project name delegate function. Used for async calls + + + + + + Update project scan progress delegate function. Used for async calls + + + + + + Update project project scan progress delegate function. Used for async calls + + + + + + Update current iteration name delegate function. Used for async calls + + + + + + Update current iteration progress status delegate function. Used for async calls + + + + + + Update progress status delegate function. Used for async calls + + + + + + Increment progress delegate function. Used for async calls + + + + + + Clear progress. Fill by empty values + + + + + Close view + + + + + Set dialog visibility delegate function. Used for async calls + + + + + + Cancel button event handler + + + + + + + Details button event handler + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represent custom button control to place inside graph control + + + + + Execute graph drawing + + + + + Generate sequence of controls for graph path + + + + + + Generate sequence of controls for graph path item + + + + + + + + SubmitUserFrm + + + + + SubmitUserFrm + + + + + CloseForm + + + + + Close dialog + + + + + Show modal dialog + + + + + + Gets or sets User Name + + + + + Gets or sets User Name + + + + + Show modal dialog + + Parent view container + + + + + Show non modal dialog + + + + + Show non modal dialog + + Parent view container + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Project name allowed format RegEx + + + + + Gets or sets custom identity + + + + + Gets or sets project name + + + + + Gets or sets project description + + + + + Gets or sets selected preset + + + + + Gets or sets selected team + + + + + Gets or sets preset list + + + + + Gets or sets team list + + + + + Close dialog + + + + + Show modal dialog + + + + + + Show modal dialog + + Parent view container + + + + + Show non modal dialog + + + + + Show non modal dialog + + Parent view container + + + + Validation handler to control project name entered value + + + + + + + Validation handler to control thar preset item was selected + + + + + + + Validation handler to control thar team item was selected + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Delegate mrthod. Used for async call Cancel handler function + + + + + Gets or sets dialog process name + + + + + Sets cancel button click handler + + + + + Close view + + + + + Show modal dialog view + + + + + + Show modal dialog view + + Parent container view + + + + + Show non-modal dialog view + + + + + Show non-modal dialog view + + Parent container view + + + + Cancel button click handler + + + + + + + Change cancel button state after button pressed + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + diff --git a/CxViewerAction2019/CxViewerAction2019.csproj b/CxViewerAction2019/CxViewerAction2019.csproj new file mode 100644 index 00000000..53848457 --- /dev/null +++ b/CxViewerAction2019/CxViewerAction2019.csproj @@ -0,0 +1,505 @@ + + + + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {3F7B5740-0C62-4CFB-883A-02B5722DAE37} + Library + + + false + CxViewerAction2019 + .\bin\ + v4.7.2 + + + SAK + SAK + SAK + SAK + false + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + true + + + + + + + true + false + bin\Debug\ + false + DEBUG;TRACE + 4 + false + + + AllRules.ruleset + false + + + false + true + .\bin\Release\ + false + TRACE + 4 + false + CxViewerAction.xml + AllRules.ruleset + false + + + CxViewerAction2019 + + + x86 + ..\Output\ + AllRules.ruleset + TRACE;DEBUG + false + + + x86 + bin\x86\Release\ + AllRules.ruleset + false + + + bin\Build\ + TRACE + CxViewerAction.xml + true + AnyCPU + AllRules.ruleset + false + + + bin\x86\Build\ + x86 + AllRules.ruleset + false + + + true + + + + + + + true + bin\x64\Debug\ + DEBUG;TRACE + x64 + 7.3 + AllRules.ruleset + + + bin\x64\Release\ + TRACE + CxViewerAction.xml + true + x64 + 7.3 + AllRules.ruleset + + + bin\x64\Build\ + TRACE + CxViewerAction.xml + true + x64 + 7.3 + AllRules.ruleset + + + USE_NEWTONSOFT_V9 + + + USE_NEWTONSOFT_V13 + + + + ..\packages\CefSharp.Common.119.4.30\lib\net462\CefSharp.dll + + + ..\packages\CefSharp.Common.119.4.30\lib\net462\CefSharp.Core.dll + + + ..\packages\CefSharp.WinForms.119.4.30\lib\net462\CefSharp.WinForms.dll + + + True + + + False + + + False + + + True + + + False + ..\References\Ionic.Zip.dll + + + ..\packages\log4net.2.0.14\lib\net45\log4net.dll + + + + False + ..\References\Microsoft.Msagl.dll + + + False + ..\References\Microsoft.Msagl.Drawing.dll + + + False + ..\References\Microsoft.Msagl.GraphViewerGdi.dll + + + True + + + ..\packages\Microsoft.VisualStudio.Imaging.14.3.25407\lib\net45\Microsoft.VisualStudio.Imaging.dll + + + False + ..\References\Microsoft.VisualStudio.Modeling.SDK.Integration.Shell.10.0.dll + + + ..\packages\Microsoft.VisualStudio.OLE.Interop.7.10.6070\lib\Microsoft.VisualStudio.OLE.Interop.dll + + + ..\packages\Microsoft.VisualStudio.Shell.14.0.14.3.25407\lib\Microsoft.VisualStudio.Shell.14.0.dll + + + ..\packages\Microsoft.VisualStudio.Shell.Immutable.10.0.10.0.30319\lib\net40\Microsoft.VisualStudio.Shell.Immutable.10.0.dll + + + ..\packages\Microsoft.VisualStudio.Shell.Immutable.11.0.11.0.50727\lib\net45\Microsoft.VisualStudio.Shell.Immutable.11.0.dll + + + ..\packages\Microsoft.VisualStudio.Shell.Immutable.12.0.12.0.21003\lib\net45\Microsoft.VisualStudio.Shell.Immutable.12.0.dll + + + ..\packages\Microsoft.VisualStudio.Shell.Immutable.14.0.14.3.25407\lib\net45\Microsoft.VisualStudio.Shell.Immutable.14.0.dll + + + ..\packages\Microsoft.VisualStudio.Shell.Interop.7.10.6071\lib\Microsoft.VisualStudio.Shell.Interop.dll + + + ..\packages\Microsoft.VisualStudio.Shell.Interop.8.0.8.0.50727\lib\Microsoft.VisualStudio.Shell.Interop.8.0.dll + + + ..\packages\Microsoft.VisualStudio.Shell.Interop.9.0.9.0.30729\lib\Microsoft.VisualStudio.Shell.Interop.9.0.dll + + + ..\packages\Microsoft.VisualStudio.TextManager.Interop.7.10.6070\lib\Microsoft.VisualStudio.TextManager.Interop.dll + + + ..\packages\Microsoft.VisualStudio.TextManager.Interop.8.0.8.0.50727\lib\Microsoft.VisualStudio.TextManager.Interop.8.0.dll + + + ..\packages\Microsoft.VisualStudio.Threading.14.1.111\lib\net45\Microsoft.VisualStudio.Threading.dll + + + ..\packages\Microsoft.VisualStudio.Utilities.14.3.25407\lib\net45\Microsoft.VisualStudio.Utilities.dll + + + ..\packages\Microsoft.VisualStudio.Validation.14.1.111\lib\net45\Microsoft.VisualStudio.Validation.dll + + + + + + + + + + + + + + + + + + + ..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll + True + + + + + ..\packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll + + + + + True + True + Resources.resx + + + True + True + Settings.settings + + + True + True + Reference.map + + + True + True + Reference.map + + + + + + + + Reference.map + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + Designer + + + Reference.map + + + Reference.map + + + Reference.map + + + Reference.map + + + Reference.map + + + Reference.map + + + Reference.map + + + Reference.map + + + Reference.map + + + Reference.map + + + Reference.map + + + Reference.map + + + Reference.map + + + Reference.map + + + Reference.map + + + Reference.map + + + Reference.map + + + Reference.map + + + Reference.map + + + Reference.map + + + Reference.map + + + Reference.map + + + Reference.map + + + MSDiscoCodeGenerator + Reference.cs + + + + Reference.map + + + MSDiscoCodeGenerator + Reference.cs + + + + + + + + Designer + ResXFileCodeGenerator + Resources.Designer.cs + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 2.0 %28x86%29 + false + + + False + .NET Framework 3.0 %28x86%29 + false + + + False + .NET Framework 3.5 + false + + + False + .NET Framework 3.5 SP1 + true + + + False + Windows Installer 3.1 + true + + + + + Dynamic + Web References\CxWsResolver\ + http://localhost:1515/Cxwebinterface/CxWsResolver.asmx + + + + + Settings + CxViewerAction_CxWsResolver_CxWSResolver + + + Dynamic + Web References\CxVSWebService\ + http://localhost:1515/cxwebinterface/VS/CxVSWebService.asmx + + + + + Settings + CxViewerAction_CxVSWebService_CxVSWebService + + + + + {9b747803-8500-4115-953e-ce7cbf2a14c2} + Common + + + {defbe28b-3b2e-4324-bbae-9b9783a29607} + ColorButton + + + {4b9be5fd-303e-4270-9c4d-fa3bde6c34eb} + DgvFilterPopup + + + + + + + + + + + + + + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + + + + \ No newline at end of file diff --git a/CxViewerAction2019/CxViewerAction2019.csproj.user b/CxViewerAction2019/CxViewerAction2019.csproj.user new file mode 100644 index 00000000..b424de9a --- /dev/null +++ b/CxViewerAction2019/CxViewerAction2019.csproj.user @@ -0,0 +1,12 @@ + + + + ShowAllFiles + + + Program + C:\Program Files %28x86%29\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\devenv.exe + C:\Program Files %28x86%29\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\ + /rootsuffix Exp + + \ No newline at end of file diff --git a/CxViewerAction2019/CxViewerAction2019.xml b/CxViewerAction2019/CxViewerAction2019.xml new file mode 100644 index 00000000..481bc929 --- /dev/null +++ b/CxViewerAction2019/CxViewerAction2019.xml @@ -0,0 +1,7086 @@ + + + + CxViewerAction2019 + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represent commandResult class structure + + + + + Execute command + + + + + Execute login command + + + + + + + Execute upload command + + + + + + + Execute scan command + + + + + + + Execute scan command + + + + + + + Execute scan command + + + + + + + Represent dispatcher class structure + + + + + Dispatch command + + + + + + + Handler for excution + + + + + + + Represent dispatcher object + + + + + Dispatch command + + + + + + + Represent base methods-properties graph object + + + + + Gets or sets graph severity + + + + + Gets or sets current selected graph path + + + + + Gets graph horizontal length (max horizontal elements) + + + + + Gets graph vertical length (max vertical elements) + + + + + Gets or sets list of path sequances + + + + + Gets or sets the max node relations comparing to all graph nodes + + + + + Gets item position in graph matrix start from top-left corner + + Grapth element + X-Y position of element inside graph + + + + Perform adding new path to graph and updating item references + + + + + + Represent main methods-properties for path object + + + + + Gets or sets current selected graph item + + + + + Problem sequance length + + + + + Gets or sets problems sequance from begin to end + + + + + Get the position of first path element in comparission + with most top element in all graph paths + + + + + Gets the vertical position of path in graph matrix + + + + + Represent main methods-properties for graph path item object + + + + + Gets or sets problem file name + + + + + Gets or sets item name + + + + + Gets or sets problem line position + + + + + Gets or sets problem column position + + + + + Gets or sets problem text length + + + + + Determine that this item exist in other graph paths. + + + + + Determine that this item exist in other graph paths. + + + + + Gets or sets parent item + + + + + Gets or sets value indicated that current graph item id connection point + for all same items + + + + + Gets or sets column element position in graph object + + + + + Gets or sets row element position in graph object + + + + + Represent presenter class structure + + + + + Represent upload controller object + + + + + Constructor + + + + + + Load event handler + + + + + + + Perform upload project + + Parent view + Upload data + + + + Map upload object data to view + + + + + + Map view data to upload object + + + + + + + Represent main scan view class methods + + + + + Perform scan + + Parent view + data + + + + Represent main login view class methods + + + + + Perform login + + Parent view + Login data + + + + Represent main scan view class methods + + + + + Perform scan + + Parent view + data + + + + Represent main scan view class methods + + + + + Perform scan + + Parent view + Scan data + + + + Represent main upload view class methods + + + + + Perform project upload + + Parent view + Upload data + + + + Represent login controller object + + + + + Constructor + + Related view + + + + Load event handler + + + + + + + Perform login + + Parent view + Login data + + + + Map object data to view + + + + + + Map view data to object + + + + + + Represent scan controller + + + + + Get Related View + + + + + Constructor + + Scan data + + + + Load event handler + + + + + + + Perform scan + + Parent view + Scan data + + + + Represent upload controller object + + + + + Constructor + + + + + + Load event handler + + + + + + + Perform upload project + + Parent view + Upload data + + + + Map upload object data to view + + + + + + Map view data to upload object + + + + + + + Represent View class structure + + + + + View load handler + + + + + Show modal dialog + + + + + + Show modal dialog + + parent view + + + + + Show non-modal view + + + + + Show non-modal view + + parent view + + + + Close view + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized string similar to Aktion. + + + + + Looks up a localized string similar to Add-Ins. + + + + + Looks up a localized string similar to Analyse. + + + + + Looks up a localized string similar to Erstellen. + + + + + Looks up a localized string similar to Klassendiagramm. + + + + + Looks up a localized string similar to Community. + + + + + Looks up a localized string similar to Daten. + + + + + Looks up a localized string similar to Datenbank. + + + + + Looks up a localized string similar to Datenbankdiagramm. + + + + + Looks up a localized string similar to Debuggen. + + + + + Looks up a localized string similar to Diagramm. + + + + + Looks up a localized string similar to Bearbeiten. + + + + + Looks up a localized string similar to Datei. + + + + + Looks up a localized string similar to Format. + + + + + Looks up a localized string similar to Rahmen. + + + + + Looks up a localized string similar to Hilfe. + + + + + Looks up a localized string similar to Bild. + + + + + Looks up a localized string similar to Layout. + + + + + Looks up a localized string similar to Makros. + + + + + Looks up a localized string similar to Projekt. + + + + + Looks up a localized string similar to Query. + + + + + Looks up a localized string similar to Abfrage-Designer. + + + + + Looks up a localized string similar to Umgestalten. + + + + + Looks up a localized string similar to Bericht. + + + + + Looks up a localized string similar to Ressourcen. + + + + + Looks up a localized string similar to Schema. + + + + + Looks up a localized string similar to Formate. + + + + + Looks up a localized string similar to Tabelle. + + + + + Looks up a localized string similar to Tabellen-Designer. + + + + + Looks up a localized string similar to Team. + + + + + Looks up a localized string similar to Test. + + + + + Looks up a localized string similar to Extras. + + + + + Looks up a localized string similar to Ansicht. + + + + + Looks up a localized string similar to Fenster. + + + + + Looks up a localized string similar to XML. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized string similar to Action. + + + + + Looks up a localized string similar to Addins. + + + + + Looks up a localized string similar to Analyze. + + + + + Looks up a localized string similar to Build. + + + + + Looks up a localized string similar to Class Diagram. + + + + + Looks up a localized string similar to Community. + + + + + Looks up a localized string similar to Data. + + + + + Looks up a localized string similar to Database. + + + + + Looks up a localized string similar to Database Diagram. + + + + + Looks up a localized string similar to Debug. + + + + + Looks up a localized string similar to Diagram. + + + + + Looks up a localized string similar to Edit. + + + + + Looks up a localized string similar to File. + + + + + Looks up a localized string similar to Format. + + + + + Looks up a localized string similar to Frames. + + + + + Looks up a localized string similar to Help. + + + + + Looks up a localized string similar to Image. + + + + + Looks up a localized string similar to Layout. + + + + + Looks up a localized string similar to Macros. + + + + + Looks up a localized string similar to Project. + + + + + Looks up a localized string similar to Query. + + + + + Looks up a localized string similar to Query Designer. + + + + + Looks up a localized string similar to Refactor. + + + + + Looks up a localized string similar to Report. + + + + + Looks up a localized string similar to Resources. + + + + + Looks up a localized string similar to Schema. + + + + + Looks up a localized string similar to Styles. + + + + + Looks up a localized string similar to Table. + + + + + Looks up a localized string similar to Table Designer. + + + + + Looks up a localized string similar to Team. + + + + + Looks up a localized string similar to Test. + + + + + Looks up a localized string similar to Tools. + + + + + Looks up a localized string similar to View. + + + + + Looks up a localized string similar to Window. + + + + + Looks up a localized string similar to XML. + + + + + Looks up a localized string similar to Acción. + + + + + Looks up a localized string similar to Complementos. + + + + + Looks up a localized string similar to Analizar. + + + + + Looks up a localized string similar to Generar. + + + + + Looks up a localized string similar to Diagrama de clase. + + + + + Looks up a localized string similar to Comunidad. + + + + + Looks up a localized string similar to Datos. + + + + + Looks up a localized string similar to Base de datos. + + + + + Looks up a localized string similar to Diagrama de base de datos. + + + + + Looks up a localized string similar to Depurar. + + + + + Looks up a localized string similar to Diagrama. + + + + + Looks up a localized string similar to Editar. + + + + + Looks up a localized string similar to Archivo. + + + + + Looks up a localized string similar to Formato. + + + + + Looks up a localized string similar to Marcos. + + + + + Looks up a localized string similar to Ayuda. + + + + + Looks up a localized string similar to Imagen. + + + + + Looks up a localized string similar to Diseño. + + + + + Looks up a localized string similar to Macros. + + + + + Looks up a localized string similar to Proyecto. + + + + + Looks up a localized string similar to Consulta. + + + + + Looks up a localized string similar to Diseñador de consultas. + + + + + Looks up a localized string similar to Refactorizar. + + + + + Looks up a localized string similar to Informe. + + + + + Looks up a localized string similar to Recursos. + + + + + Looks up a localized string similar to Esquema. + + + + + Looks up a localized string similar to Estilos. + + + + + Looks up a localized string similar to Tabla. + + + + + Looks up a localized string similar to Diseñador de tablas. + + + + + Looks up a localized string similar to Equipo. + + + + + Looks up a localized string similar to Prueba. + + + + + Looks up a localized string similar to Herramientas. + + + + + Looks up a localized string similar to Ver. + + + + + Looks up a localized string similar to Ventana. + + + + + Looks up a localized string similar to XML. + + + + + Looks up a localized string similar to Action. + + + + + Looks up a localized string similar to Compléments. + + + + + Looks up a localized string similar to Analyser. + + + + + Looks up a localized string similar to Générer. + + + + + Looks up a localized string similar to Diagramme de classes. + + + + + Looks up a localized string similar to Communauté. + + + + + Looks up a localized string similar to Données. + + + + + Looks up a localized string similar to Base de données. + + + + + Looks up a localized string similar to Schéma de base de données. + + + + + Looks up a localized string similar to Déboguer. + + + + + Looks up a localized string similar to Schéma. + + + + + Looks up a localized string similar to Edition. + + + + + Looks up a localized string similar to Fichier. + + + + + Looks up a localized string similar to Format. + + + + + Looks up a localized string similar to Frames. + + + + + Looks up a localized string similar to ?. + + + + + Looks up a localized string similar to Image. + + + + + Looks up a localized string similar to Disposition. + + + + + Looks up a localized string similar to Macros. + + + + + Looks up a localized string similar to Projet. + + + + + Looks up a localized string similar to Requête. + + + + + Looks up a localized string similar to Concepteur de requêtes. + + + + + Looks up a localized string similar to Refactoriser. + + + + + Looks up a localized string similar to Rapport. + + + + + Looks up a localized string similar to Ressources. + + + + + Looks up a localized string similar to Schéma. + + + + + Looks up a localized string similar to Styles. + + + + + Looks up a localized string similar to Tableau. + + + + + Looks up a localized string similar to Concepteur de tables. + + + + + Looks up a localized string similar to équipe. + + + + + Looks up a localized string similar to Test. + + + + + Looks up a localized string similar to Outils. + + + + + Looks up a localized string similar to Affichage. + + + + + Looks up a localized string similar to Fenêtre. + + + + + Looks up a localized string similar to XML. + + + + + Looks up a localized string similar to Azione. + + + + + Looks up a localized string similar to Componenti aggiuntivi. + + + + + Looks up a localized string similar to Analizza. + + + + + Looks up a localized string similar to Genera. + + + + + Looks up a localized string similar to Diagramma classi. + + + + + Looks up a localized string similar to Comunità. + + + + + Looks up a localized string similar to Dati. + + + + + Looks up a localized string similar to Database. + + + + + Looks up a localized string similar to Diagramma database. + + + + + Looks up a localized string similar to Debug. + + + + + Looks up a localized string similar to Diagramma. + + + + + Looks up a localized string similar to Modifica. + + + + + Looks up a localized string similar to File. + + + + + Looks up a localized string similar to Formato. + + + + + Looks up a localized string similar to Frame. + + + + + Looks up a localized string similar to ?. + + + + + Looks up a localized string similar to Immagine. + + + + + Looks up a localized string similar to Layout. + + + + + Looks up a localized string similar to Macro. + + + + + Looks up a localized string similar to Progetto. + + + + + Looks up a localized string similar to Query. + + + + + Looks up a localized string similar to Progettazione query. + + + + + Looks up a localized string similar to Effettua refactoring. + + + + + Looks up a localized string similar to Report. + + + + + Looks up a localized string similar to Risorse. + + + + + Looks up a localized string similar to Schema. + + + + + Looks up a localized string similar to Stili. + + + + + Looks up a localized string similar to Tabella. + + + + + Looks up a localized string similar to Progettazione tabelle. + + + + + Looks up a localized string similar to Team. + + + + + Looks up a localized string similar to Test. + + + + + Looks up a localized string similar to Strumenti. + + + + + Looks up a localized string similar to Visualizza. + + + + + Looks up a localized string similar to Finestra. + + + + + Looks up a localized string similar to XML. + + + + + Looks up a localized string similar to 操作. + + + + + Looks up a localized string similar to アドイン. + + + + + Looks up a localized string similar to 分析. + + + + + Looks up a localized string similar to ビルド. + + + + + Looks up a localized string similar to クラス ダイアグラム. + + + + + Looks up a localized string similar to コミュニティ. + + + + + Looks up a localized string similar to データ. + + + + + Looks up a localized string similar to データベース. + + + + + Looks up a localized string similar to データベース ダイアグラム. + + + + + Looks up a localized string similar to デバッグ. + + + + + Looks up a localized string similar to ダイアグラム. + + + + + Looks up a localized string similar to 編集. + + + + + Looks up a localized string similar to ファイル. + + + + + Looks up a localized string similar to 書式. + + + + + Looks up a localized string similar to フレーム. + + + + + Looks up a localized string similar to ヘルプ. + + + + + Looks up a localized string similar to イメージ. + + + + + Looks up a localized string similar to レイアウト. + + + + + Looks up a localized string similar to マクロ. + + + + + Looks up a localized string similar to プロジェクト. + + + + + Looks up a localized string similar to クエリ. + + + + + Looks up a localized string similar to クエリ デザイナ. + + + + + Looks up a localized string similar to リファクタ. + + + + + Looks up a localized string similar to レポート. + + + + + Looks up a localized string similar to リソース. + + + + + Looks up a localized string similar to スキーマ. + + + + + Looks up a localized string similar to スタイル. + + + + + Looks up a localized string similar to テーブル. + + + + + Looks up a localized string similar to テーブル デザイナ. + + + + + Looks up a localized string similar to チーム. + + + + + Looks up a localized string similar to テスト. + + + + + Looks up a localized string similar to ツール. + + + + + Looks up a localized string similar to 表示. + + + + + Looks up a localized string similar to ウィンドウ. + + + + + Looks up a localized string similar to XML. + + + + + Looks up a localized string similar to 작업. + + + + + Looks up a localized string similar to 추가 기능. + + + + + Looks up a localized string similar to 분석. + + + + + Looks up a localized string similar to 빌드. + + + + + Looks up a localized string similar to 클래스 다이어그램. + + + + + Looks up a localized string similar to 커뮤니티. + + + + + Looks up a localized string similar to 데이터. + + + + + Looks up a localized string similar to 데이터베이스. + + + + + Looks up a localized string similar to 데이터베이스 다이어그램. + + + + + Looks up a localized string similar to 디버그. + + + + + Looks up a localized string similar to 다이어그램. + + + + + Looks up a localized string similar to 편집. + + + + + Looks up a localized string similar to 파일. + + + + + Looks up a localized string similar to 서식. + + + + + Looks up a localized string similar to 프레임. + + + + + Looks up a localized string similar to 도움말. + + + + + Looks up a localized string similar to 이미지. + + + + + Looks up a localized string similar to 레이아웃. + + + + + Looks up a localized string similar to 매크로. + + + + + Looks up a localized string similar to 프로젝트. + + + + + Looks up a localized string similar to 쿼리. + + + + + Looks up a localized string similar to 쿼리 디자이너. + + + + + Looks up a localized string similar to 리팩터링. + + + + + Looks up a localized string similar to 보고서. + + + + + Looks up a localized string similar to 리소스. + + + + + Looks up a localized string similar to 스키마. + + + + + Looks up a localized string similar to 스타일. + + + + + Looks up a localized string similar to 테이블. + + + + + Looks up a localized string similar to 테이블 디자이너. + + + + + Looks up a localized string similar to 팀. + + + + + Looks up a localized string similar to 테스트. + + + + + Looks up a localized string similar to 도구. + + + + + Looks up a localized string similar to 보기. + + + + + Looks up a localized string similar to 창. + + + + + Looks up a localized string similar to XML. + + + + + Looks up a localized string similar to 操作. + + + + + Looks up a localized string similar to 外接程序. + + + + + Looks up a localized string similar to 分析. + + + + + Looks up a localized string similar to 生成. + + + + + Looks up a localized string similar to 类关系图. + + + + + Looks up a localized string similar to 社区. + + + + + Looks up a localized string similar to 数据. + + + + + Looks up a localized string similar to 数据库. + + + + + Looks up a localized string similar to 数据库关系图. + + + + + Looks up a localized string similar to 调试. + + + + + Looks up a localized string similar to 关系图. + + + + + Looks up a localized string similar to 编辑. + + + + + Looks up a localized string similar to 文件. + + + + + Looks up a localized string similar to 格式. + + + + + Looks up a localized string similar to 框架. + + + + + Looks up a localized string similar to 帮助. + + + + + Looks up a localized string similar to 图像. + + + + + Looks up a localized string similar to 布局. + + + + + Looks up a localized string similar to 宏. + + + + + Looks up a localized string similar to 项目. + + + + + Looks up a localized string similar to 查询. + + + + + Looks up a localized string similar to 查询设计器. + + + + + Looks up a localized string similar to 重构. + + + + + Looks up a localized string similar to 报表. + + + + + Looks up a localized string similar to 资源. + + + + + Looks up a localized string similar to 架构. + + + + + Looks up a localized string similar to 样式. + + + + + Looks up a localized string similar to 表. + + + + + Looks up a localized string similar to 表设计器. + + + + + Looks up a localized string similar to 工作组. + + + + + Looks up a localized string similar to 测试. + + + + + Looks up a localized string similar to 工具. + + + + + Looks up a localized string similar to 视图. + + + + + Looks up a localized string similar to 窗口. + + + + + Looks up a localized string similar to XML. + + + + + Looks up a localized string similar to 動作. + + + + + Looks up a localized string similar to 增益集. + + + + + Looks up a localized string similar to 分析. + + + + + Looks up a localized string similar to 建置. + + + + + Looks up a localized string similar to 類別圖表. + + + + + Looks up a localized string similar to 社群. + + + + + Looks up a localized string similar to 資料. + + + + + Looks up a localized string similar to 資料庫. + + + + + Looks up a localized string similar to 資料庫圖表. + + + + + Looks up a localized string similar to 偵錯. + + + + + Looks up a localized string similar to 圖表. + + + + + Looks up a localized string similar to 編輯. + + + + + Looks up a localized string similar to 檔案. + + + + + Looks up a localized string similar to 格式. + + + + + Looks up a localized string similar to 框架. + + + + + Looks up a localized string similar to 說明. + + + + + Looks up a localized string similar to 影像. + + + + + Looks up a localized string similar to 配置. + + + + + Looks up a localized string similar to 巨集. + + + + + Looks up a localized string similar to 專案. + + + + + Looks up a localized string similar to 查詢. + + + + + Looks up a localized string similar to 查詢設計工具. + + + + + Looks up a localized string similar to 重整. + + + + + Looks up a localized string similar to 報表. + + + + + Looks up a localized string similar to 資源. + + + + + Looks up a localized string similar to 結構描述. + + + + + Looks up a localized string similar to 樣式. + + + + + Looks up a localized string similar to 資料表. + + + + + Looks up a localized string similar to 資料表設計工具. + + + + + Looks up a localized string similar to 小組. + + + + + Looks up a localized string similar to 測試. + + + + + Looks up a localized string similar to 工具. + + + + + Looks up a localized string similar to 檢視. + + + + + Looks up a localized string similar to 視窗. + + + + + Looks up a localized string similar to XML. + + + + + Execute system command, like "Save All", "Close" etc + + + + + + Get project path for current selected project in solution explorer + + + + + + Get problem file from entire project or solution + + + + + + + + + + Show selected project file + + + + + + + + + The object for implementing an Add-in. + OnConnection + + + + Implements the OnConnection method of the IDTExtensibility2 interface. Receives notification that the Add-in is being loaded. + + Root object of the host application. + Describes how the Add-in is being loaded. + Object representing this Add-in. + + + + + Initialize Project and Solution menu. + + + + + Entity data + + + + + Class represent Dicitionary object with serialization capability + + + + + + + Read data xml in serialization process + + + + + + Write data xml in serialization process + + + + + + Represent user choise + + + + + Not selected + + + + + Agree decision + + + + + Disagree deicission + + + + + Represent scanb dialod data + + + + + Scanned project name + + + + + Start position in progress + + + + + End position in progress + + + + + Current progress position + + + + + Current status activity name + + + + + Current stage + + + + + Current stage message + + + + + Current stage complete percent + + + + + Current stage number + + + + + Ordered graph data representation + + + + + Find item dependences in previous paths + + + + + Sequence of graph elements + + + + + Grapth element + + + + + Represent command class structure + + + + + Login data + + + + + Default language code + + + + + Full service path url format + + + + + Get or set server domain + + + + + Get or set server full url + + + + + Gets or sets value indicating that connection must be established throw htts protocol + + + + + Gets or sets value indicating that Authenticationa Type Log in Form Or User Submit Form throw htts protocol + + + + + Get or set Entity prorepty + + + + + Gets or sets interval to call server to get current process state + + + + + Get or set dialog state. If true - dialog validated sucessfull and user hit button go next step + + + + + Get or set status to show scan dialog window + + + + + Get or set status to show open perspective dialog after scan completed + + + + + Stored projects perspective URL + + + + + Gets or sets extensions list to exclude when project compressed before scan + + + + + Gets or sets folder list to exclude when project compressed before scan + + + + + Gets or sets reconnection interval in seconds + + + + + Gets or sets counts to reconnect + + + + + Gets or sets max allowed zip file size in megabites for scan + + + + + Gets or sets the option to disable connection optimizations + This optimization should be disabled when there is a proxy or firewall between the plugin and the server + + + + + Verify if user enter all data to start auth verification + + + + + + Adding project perspective dictionary + + + + + + + + Clear user auth data + + + + + Class represent project entity + + + + + Sulution project name + + + + + Gets or sets solution project name + + + + + Sulution path or single project path + + + + + Gets or sets root solution path or single project path + + + + + Sulution projects full file paths + + + + + Gets or sets solution project full file path + + + + + Scan Data Class + + + + + Server data that was received on user auth request + + + + + Upload project settings + + + + + Server data that was received on start scan request + + + + + Scan executing now + + + + + Check for cancel button state + + + + + VS-addin scan dock window to represent scan data + + + + + VS-addin scan dock window to represent scan data + + + + + Associated scan project + + + + + Event handler for RunInBackground button + + + + + Event handler for Cancel button + + + + + Event handler for Details button + + + + + Check for cancel button state + + + + + Verify that user press cancel button + + + + + Empty constructor + + + + + Constructor with param + + auth server result + + + + Constructor with param + + auth server result + handler for runInBackground button + handler for cancel button + handler for details button + + + + Verify if Cancel button pressed. Thread sleep until timeout expired or cancel button pressed + + + + + + Upload Data Class + + + + + Entity identifier + + + + + Project name + + + + + Project description + + + + + Gets or sets presets list + + + + + Selected preset + + + + + Gets or sets teams list + + + + + Selected team + + + + + If true - upload form was validated sucessfully and user confirm to start scanning + + + + + Represent service configuration object + + + + + Get or set service perform status + + + + + Get or set configuration property list + + + + + Get first configuration key in list + + + + + Convert ConfigurationResult from xml + + xml string + + + + + Represent service login object + + + + + Get or set service perform status + + + + + Current user session identifier + + + + + User authentification data + + + + + Represent service preset object + + + + + Get or set service perform status + + + + + Get or set list of presets + + + + + Convert PresetResult from xml + + xml string + + + + + Gets or sets query identifier + + + + + Gets or sets value indication that object received succesfull + + + + + Gets or sets query description + + + + + Save query description object to file + + + + + + Read query description from file + + + + + + Get query object from xml + + + + + + + Gets or sets query problem file name + + + + + Gets or sets query problem line position + + + + + Gets or sets query problem column position + + + + + Gets or sets query problem name + + + + + Gets or sets query problem length + + + + + Gets or sets node position + + + + + Gets or sets parent element + + + + + Gets or seta parent container + + + + + Gets or sets query report node identifier + + + + + Gets or sets query report node identifier + + + + + Gets or sets query problem file name + + + + + Gets or sets query problem line position + + + + + Gets or sets query problem column position + + + + + Gets or sets query problem path + + + + + Gets or sets query identifier + + + + + Gets or sets query Cwe identifier + + + + + Gets or sets query name + + + + + Gets or sets query group + + + + + Gets or sets query problem importance + + + + + Gets or sets query report list + + + + + Gets or sets parent element + + + + + Represent report result object + + + + + Get or set list detected source problems + + + + + Get tree list of problems where top level are severity types with personal report list + + + + + Convert ReportResult object from xml + + xml string + + + + + Run scan object + + + + + Get or set service perform status + + + + + Get or set scan identifier + + + + + Get or set status scan result + + + + + Convert RunScanResult from xml + + xml string + + + + + Scan status + + + + + Unknown status + + + + + Scan run + + + + + Scan finished + + + + + Project are queued for scan + + + + + Scan cann't be processed + + + + + Represent remote service status scan object + + + + + Get or set service perform status + + + + + Get or set scan identifier + + + + + Get or set scan status + + + + + Get or set completed work status in percent + + + + + Get or set current stage number + + + + + Get or set current stage name + + + + + Get or set current stage completed work in percent + + + + + Get or set stage message + + + + + Get or set step message + + + + + Get or set scan details + + + + + Get or set scan start time + + + + + Get or set scan end time + + + + + Get or set queue project position in scan status is 'Queue' + + + + + Convert StatusScanResult object from xml + + + + + + + Convert RunStatus object from string + + + + + + + Represent remote service team object + + + + + Service perform request successfully + + + + + Teams dictionary + + + + + Get or set service perform status + + + + + Get or set teams dictionary + + + + + Get first team name + + + + + Convert xml to TeamResult object + + + + + + + Represent service perspective object + + + + + Get or set service perform status + + + + + Generated report URL + + + + + Convert PerspectiveResult from xml + + xml string + + + + + Perform background work by parallel threads to improve UI responsibility + + + + + Set the numbers of attempts to execute function in exeception occurs + + + + + Set the delay interval beetween repeat + + + + + Main background worker delegate + + + + + Main background worker funck + + + + + Relogin handler + + + + + Perform background job and show view while process executes + + View title message + If false - cancel buton in supported view was pressed + + + + Wait dialog caption message + + + + + Encrypt the given string using AES. The string can be decrypted using + DecryptStringAES(). The sharedSecret parameters must match. + + The text to encrypt. + A password used to generate a key for encryption. + + + + Decrypt the given string. Assumes the string was encrypted using + EncryptStringAES(), using an identical sharedSecret. + + The text to decrypt. + A password used to generate a key for decryption. + + + + Helper class for downloading content via HTTP + + + + + Download page content + + page url + + + + + File name to store user settings + + + + + Wait dialog progress text + + + + + Load login data + + How many times load method completed with problems + + + + + Save login info + + Login class + + + + Execute login + + + + + + Logout from service + + + + + Load stored user data + + + + + + Helper class for perspective manipulation + + + + + Perspective not exist message + + + + + Execute 'Previous Result' command + + + + + Ask user to open perspective now + + user auth data + + + + + Execute 'Show Stored' command + + + + + + + + Helper class that manipulate with stored problem description + + + + + Find specified problem description + + Problem identifier + If file description was found method returns full path to file, otherwise retutn null + + + + Helper class for scan execution + + + + + Execute scan + + Upload project folder + + + + + + + + Execute scan + + Upload project folder + + + + + + + Handler for ScanInBackground button + + + + + + + Handler for Cancel button + + + + + + + Handler for Details button + + + + + + + Main storage folder under VS path + + + + + Retutn content of specific file + + + + + + + Save file + + content + file name to save + + + + + Show Message on the top of all windows + + + + + Settings upload project params + + + + + Set upload params + + Auth user data for uploading + Selected solution project data + + + + + Class encapsulates methods for transforming XML string to system objects + + + + + Convert XML string into PresetResult object + + xml string + + + + + Convert XML string into TeamResult object + + xml string + + + + + Convert XML string into ConfigurationResult object + + xml string + + + + + Convert XML string into RunScanResult object + + xml string + + + + + Convert XML string into StatusScanResult object + + xml string + + + + + Convert XML string into PerspectiveResult object + + xml string + + + + + Convert XML string into ReportResult object + + xml string + + + + + Convert XML string into ReportQueryItemPathResult list + + + + + + + Convert XML string into QueryDescriptionResult object + + + + + + + Creates ZIP archives + + + + + Regular expression to make selection include file range + + + + + Regular expression to make selection include directory range + + + + + Compress string with Zip technology. If in process of zip generation the archive size + exceed maxAllowedZipFileSize value operation canceled. + + List of projects to zip + List of file extensions to exclude from zip + List of folders to exclude from zip + Max allowed zip file size + If maxAllowedZipFileSize value exceed function return null otherwise zip byte stream + + + + Zip a folder of files in a new zip file + + + + + Writes a single entry (file or folder) to an open zip file + + The open zip file stream + The entry name to be created + The file path of the file to be written + Open mode (share/non share) + + + + Show previous scanned result for selected project + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to <?xml version="1.0" encoding="utf-8"?> + <root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader n [rest of string was truncated]";. + + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Wrapper for service client + + + + + Servive client object + + + + + Constructor + + server url + + + + Close client and clear object data + + + + + Return selected problem description + + Problem identifier + + + + + LoginUserNamePassword Call Rest Api when AuthTypeUsernamePassword + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Interface that represent main problematic file entity properties and methods + + + + + Problem file name + + + + + Problem line position + + + + + Problem column position + + + + + Problem source code element name + + + + + Length of name param + + + + + Parent object container + + + + + Represent main method-properties for perspective graph view + + + + + Graph to represent on view + + + + + Find path in graph by query item data + + + + + + + Generate view representation + + + + + Gets or sets event handler on path item button click + + + + + Interface that represent main problematic file options and events + + + + + QueryItem attached to current problem + + + + + Bind view controls with new data + + + + + Event handler, attached to path buttons + + + + + Interface that represent main report view problem properties and methods + + + + + Event that fired when user binded project and changed a scan by using UI + + + + + Event that fired when user select view problem description inside control + + + + + Gets or sets currently selected problem type + + + + + Gets or sets report + + + + + Bind contols with object values + + + + + Change control activity and set loading message when control perform data binding + + Activity state + Message to show while control is perform data binding + + + + Interface that represent main report view problem properties and methods + + + + + Event that fired when user select Node in tree + + + + + Event that fired when user binded project and changed a scan by using UI + + + + + Event that fired when user select view problem description inside control + + + + + Gets or sets currently selected problem type + + + + + Gets or sets report + + + + + Bind contols with object values + + + + + Change control activity and set loading message when control perform data binding + + Activity state + Message to show while control is perform data binding + + + + Added scan list control to the perspective control + + + + + + Remove scan list control from the perspective control + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Control represent addin custom settings form, available through "Tools" - "Options" menu item + + + + + Login click button handler + + + + + + + Bind object data to form controls + + + + + Bind form contol values to object data + + + + + + Validate server name + + + + + + + "Restore default" button handler + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Control represent addin custom settings form, available through "Tools" - "Options" menu item + + + + + Gets or sets user decision value to open perspective immediately after scan complete + + + + + Save button click handler + + + + + + + Bind object data to form controls + + + + + Bind form control values to object data + + + + + + Validate set of excluded extensions: not empty + + + + + + + Validate set of excluded folders: not empty + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Gets or sets currently selected report problem type + + + + + Gets or sets currently selected report + + + + + Bind object data to form controld + + + + + Set form visiblity and show specified loading message if no active + + + + + + + Generating tree view perspective representation + + + + + + Set form activity + + + + + + + Handler attached to mouse up button in tree control + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Graph view + + + + + Used for restoring scroll X position aftet rebinding + + + + + Used for restoring scroll Y position after rebinding + + + + + Gets or sets graph object + + + + + Bind object to view representation + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + User control to visualize problem path flow + + + + + Path click handler + + + + + Problem flow paths + + + + + Gets or sets problem flow paths + + + + + Sets handler for path button click event + + + + + Bind object data to form controls. Generate path sequance + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Gets or sets currently selected Node + + + + + Gets or sets currently selected report problem type + + + + + Gets or sets currently selected report + + + + + Bind object data to form controld + + + + + Set form visiblity and show specified loading message if no active + + + + + + + Generating tree view perspective representation + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represent upload view obligatory methods and properties + + + + + Represent login view obligatory properties and methods + + + + + Get or set entity identitifier + + + + + Gets or sets to use secured connection + + + + + Get or set server domain name (i.e. example.com) + + + + + Represent scan view obligatory properties and methods + + + + + Get or set entity identifier + + + + + Get or set scan progress + + + + + Get or set to run scan in background mode + + + + + Get or set form visibility + + + + + Increment progress for num positions + + position + + + + Clear progress and start from begin + + + + + RunInBackground button handler + + + + + Cancel buttom handler + + + + + Details button handler + + + + + Represent upload view obligatory methods and properties + + + + + Get or set entity identifier + + + + + Get or set project name + + + + + Get or set project description + + + + + Get or set selected preset + + + + + Gets or sets presets list + + + + + Get or set selected team + + + + + Gets or sets teams list + + + + + Gets or sets progress title message + + + + + Gets or sets cancel button handler + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Gets or sets custom entity identifier + + + + + Sets progress bar state + + + + + Gets alwaysInBackground checkbox state + + + + + Gets or sets dialog visibility + + + + + Gets or sets RunInBackground button handler + + + + + Gets or sets cancel button handler + + + + + Gets or sets details button handler + + + + + Show modal dialog + + + + + + Show modal dialog + + Parent view container + + + + + Show non-modal dialog + + + + + Show non-modal dialog + + Parent view container + + + + Close view + + + + + Increment progress state + + increment value + + + + Calculate percent difference by current and max values + + + + + + + + Update project name delegate function. Used for async calls + + + + + + Update project scan progress delegate function. Used for async calls + + + + + + Update project project scan progress delegate function. Used for async calls + + + + + + Update current iteration name delegate function. Used for async calls + + + + + + Update current iteration progress status delegate function. Used for async calls + + + + + + Update progress status delegate function. Used for async calls + + + + + + Increment progress delegate function. Used for async calls + + + + + + Clear progress. Fill by empty values + + + + + Close view + + + + + Set dialog visibility delegate function. Used for async calls + + + + + + Cancel button event handler + + + + + + + Details button event handler + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represent custom button control to place inside graph control + + + + + Execute graph drawing + + + + + Generate sequence of controls for graph path + + + + + + Generate sequence of controls for graph path item + + + + + + + + SubmitUserFrm + + + + + SubmitUserFrm + + + + + CloseForm + + + + + Close dialog + + + + + Show modal dialog + + + + + + Gets or sets User Name + + + + + Gets or sets User Name + + + + + Show modal dialog + + Parent view container + + + + + Show non modal dialog + + + + + Show non modal dialog + + Parent view container + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Project name allowed format RegEx + + + + + Gets or sets custom identity + + + + + Gets or sets project name + + + + + Gets or sets project description + + + + + Gets or sets selected preset + + + + + Gets or sets selected team + + + + + Gets or sets preset list + + + + + Gets or sets team list + + + + + Close dialog + + + + + Show modal dialog + + + + + + Show modal dialog + + Parent view container + + + + + Show non modal dialog + + + + + Show non modal dialog + + Parent view container + + + + Validation handler to control project name entered value + + + + + + + Validation handler to control thar preset item was selected + + + + + + + Validation handler to control thar team item was selected + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Delegate mrthod. Used for async call Cancel handler function + + + + + Gets or sets dialog process name + + + + + Sets cancel button click handler + + + + + Close view + + + + + Show modal dialog view + + + + + + Show modal dialog view + + Parent container view + + + + + Show non-modal dialog view + + + + + Show non-modal dialog view + + Parent container view + + + + Cancel button click handler + + + + + + + Change cancel button state after button pressed + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + diff --git a/CxViewerAction2019/Properties/Resources.Designer.cs b/CxViewerAction2019/Properties/Resources.Designer.cs new file mode 100644 index 00000000..8afc2f88 --- /dev/null +++ b/CxViewerAction2019/Properties/Resources.Designer.cs @@ -0,0 +1,84 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace CxViewerAction.Properties +{ + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if (object.ReferenceEquals(resourceMan, null)) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("CxViewerAction.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap cx + { + get + { + object obj = ResourceManager.GetObject("cx", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/CxViewerAction2019/Properties/Resources.resx b/CxViewerAction2019/Properties/Resources.resx new file mode 100644 index 00000000..1af7de15 --- /dev/null +++ b/CxViewerAction2019/Properties/Resources.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/CxViewerAction2019/Properties/Settings.Designer.cs b/CxViewerAction2019/Properties/Settings.Designer.cs new file mode 100644 index 00000000..0fddbf5e --- /dev/null +++ b/CxViewerAction2019/Properties/Settings.Designer.cs @@ -0,0 +1,46 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace CxViewerAction.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.10.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + + [global::System.Configuration.ApplicationScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.WebServiceUrl)] + [global::System.Configuration.DefaultSettingValueAttribute("http://localhost:1515/Cxwebinterface/CxWsResolver.asmx")] + public string CxViewerAction_CxWsResolver_CxWSResolver { + get { + return ((string)(this["CxViewerAction_CxWsResolver_CxWSResolver"])); + } + } + + [global::System.Configuration.ApplicationScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.WebServiceUrl)] + [global::System.Configuration.DefaultSettingValueAttribute("http://localhost:1515/cxwebinterface/VS/CxVSWebService.asmx")] + public string CxViewerAction_CxVSWebService_CxVSWebService { + get { + return ((string)(this["CxViewerAction_CxVSWebService_CxVSWebService"])); + } + } + } +} diff --git a/CxViewerAction2019/Properties/Settings.settings b/CxViewerAction2019/Properties/Settings.settings new file mode 100644 index 00000000..72f788c8 --- /dev/null +++ b/CxViewerAction2019/Properties/Settings.settings @@ -0,0 +1,12 @@ + + + + + + http://localhost:1515/Cxwebinterface/CxWsResolver.asmx + + + http://localhost:1515/cxwebinterface/VS/CxVSWebService.asmx + + + \ No newline at end of file diff --git a/CxViewerAction2019/Web References/CxVSWebService/CXWSResponseScanReportStatus.datasource b/CxViewerAction2019/Web References/CxVSWebService/CXWSResponseScanReportStatus.datasource new file mode 100644 index 00000000..5060c8cf --- /dev/null +++ b/CxViewerAction2019/Web References/CxVSWebService/CXWSResponseScanReportStatus.datasource @@ -0,0 +1,10 @@ + + + + CxViewerAction.CxVSWebService.CXWSResponseScanReportStatus, Web References.CxVSWebService.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/CxViewerAction2019/Web References/CxVSWebService/CxVSWebService.disco b/CxViewerAction2019/Web References/CxVSWebService/CxVSWebService.disco new file mode 100644 index 00000000..ea4a2830 --- /dev/null +++ b/CxViewerAction2019/Web References/CxVSWebService/CxVSWebService.disco @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/CxViewerAction2019/Web References/CxVSWebService/CxVSWebService.wsdl b/CxViewerAction2019/Web References/CxVSWebService/CxVSWebService.wsdl new file mode 100644 index 00000000..5c13fe4c --- /dev/null +++ b/CxViewerAction2019/Web References/CxVSWebService/CxVSWebService.wsdl @@ -0,0 +1,2779 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/CxViewerAction2019/Web References/CxVSWebService/CxWSBasicRepsonse.datasource b/CxViewerAction2019/Web References/CxVSWebService/CxWSBasicRepsonse.datasource new file mode 100644 index 00000000..4aad9bd8 --- /dev/null +++ b/CxViewerAction2019/Web References/CxVSWebService/CxWSBasicRepsonse.datasource @@ -0,0 +1,10 @@ + + + + CxViewerAction.CxVSWebService.CxWSBasicRepsonse, Web References.CxVSWebService.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/CxViewerAction2019/Web References/CxVSWebService/CxWSCreateReportResponse.datasource b/CxViewerAction2019/Web References/CxVSWebService/CxWSCreateReportResponse.datasource new file mode 100644 index 00000000..96670405 --- /dev/null +++ b/CxViewerAction2019/Web References/CxVSWebService/CxWSCreateReportResponse.datasource @@ -0,0 +1,10 @@ + + + + CxViewerAction.CxVSWebService.CxWSCreateReportResponse, Web References.CxVSWebService.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/CxViewerAction2019/Web References/CxVSWebService/CxWSReportStatusResponse.datasource b/CxViewerAction2019/Web References/CxVSWebService/CxWSReportStatusResponse.datasource new file mode 100644 index 00000000..375117bb --- /dev/null +++ b/CxViewerAction2019/Web References/CxVSWebService/CxWSReportStatusResponse.datasource @@ -0,0 +1,10 @@ + + + + CxViewerAction.CxVSWebService.CxWSReportStatusResponse, Web References.CxVSWebService.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/CxViewerAction2019/Web References/CxVSWebService/CxWSResponceQuerisForScan.datasource b/CxViewerAction2019/Web References/CxVSWebService/CxWSResponceQuerisForScan.datasource new file mode 100644 index 00000000..e4f47078 --- /dev/null +++ b/CxViewerAction2019/Web References/CxVSWebService/CxWSResponceQuerisForScan.datasource @@ -0,0 +1,10 @@ + + + + CxViewerAction.CxVSWebService.CxWSResponceQuerisForScan, Web References.CxVSWebService.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/CxViewerAction2019/Web References/CxVSWebService/CxWSResponceQuerisForScanAndId.datasource b/CxViewerAction2019/Web References/CxVSWebService/CxWSResponceQuerisForScanAndId.datasource new file mode 100644 index 00000000..9456e63a --- /dev/null +++ b/CxViewerAction2019/Web References/CxVSWebService/CxWSResponceQuerisForScanAndId.datasource @@ -0,0 +1,10 @@ + + + + CxViewerAction.CxVSWebService.CxWSResponceQuerisForScanAndId, Web References.CxVSWebService.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/CxViewerAction2019/Web References/CxVSWebService/CxWSResponceResultPath.datasource b/CxViewerAction2019/Web References/CxVSWebService/CxWSResponceResultPath.datasource new file mode 100644 index 00000000..a9a702e7 --- /dev/null +++ b/CxViewerAction2019/Web References/CxVSWebService/CxWSResponceResultPath.datasource @@ -0,0 +1,10 @@ + + + + CxViewerAction.CxVSWebService.CxWSResponceResultPath, Web References.CxVSWebService.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/CxViewerAction2019/Web References/CxVSWebService/CxWSResponceScanResults.datasource b/CxViewerAction2019/Web References/CxVSWebService/CxWSResponceScanResults.datasource new file mode 100644 index 00000000..798daf83 --- /dev/null +++ b/CxViewerAction2019/Web References/CxVSWebService/CxWSResponceScanResults.datasource @@ -0,0 +1,10 @@ + + + + CxViewerAction.CxVSWebService.CxWSResponceScanResults, Web References.CxVSWebService.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/CxViewerAction2019/Web References/CxVSWebService/CxWSResponseAssignUsers.datasource b/CxViewerAction2019/Web References/CxVSWebService/CxWSResponseAssignUsers.datasource new file mode 100644 index 00000000..2bec0c19 --- /dev/null +++ b/CxViewerAction2019/Web References/CxVSWebService/CxWSResponseAssignUsers.datasource @@ -0,0 +1,10 @@ + + + + CxViewerAction.CxVSWebService.CxWSResponseAssignUsers, Web References.CxVSWebService.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/CxViewerAction2019/Web References/CxVSWebService/CxWSResponseConfigSetList.datasource b/CxViewerAction2019/Web References/CxVSWebService/CxWSResponseConfigSetList.datasource new file mode 100644 index 00000000..91e5af52 --- /dev/null +++ b/CxViewerAction2019/Web References/CxVSWebService/CxWSResponseConfigSetList.datasource @@ -0,0 +1,10 @@ + + + + CxViewerAction.CxVSWebService.CxWSResponseConfigSetList, Web References.CxVSWebService.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/CxViewerAction2019/Web References/CxVSWebService/CxWSResponseGroupList.datasource b/CxViewerAction2019/Web References/CxVSWebService/CxWSResponseGroupList.datasource new file mode 100644 index 00000000..bdb96257 --- /dev/null +++ b/CxViewerAction2019/Web References/CxVSWebService/CxWSResponseGroupList.datasource @@ -0,0 +1,10 @@ + + + + CxViewerAction.CxVSWebService.CxWSResponseGroupList, Web References.CxVSWebService.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/CxViewerAction2019/Web References/CxVSWebService/CxWSResponseLoginData.datasource b/CxViewerAction2019/Web References/CxVSWebService/CxWSResponseLoginData.datasource new file mode 100644 index 00000000..909cc672 --- /dev/null +++ b/CxViewerAction2019/Web References/CxVSWebService/CxWSResponseLoginData.datasource @@ -0,0 +1,10 @@ + + + + CxViewerAction.CxVSWebService.CxWSResponseLoginData, Web References.CxVSWebService.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/CxViewerAction2019/Web References/CxVSWebService/CxWSResponsePresetList.datasource b/CxViewerAction2019/Web References/CxVSWebService/CxWSResponsePresetList.datasource new file mode 100644 index 00000000..0c168888 --- /dev/null +++ b/CxViewerAction2019/Web References/CxVSWebService/CxWSResponsePresetList.datasource @@ -0,0 +1,10 @@ + + + + CxViewerAction.CxVSWebService.CxWSResponsePresetList, Web References.CxVSWebService.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/CxViewerAction2019/Web References/CxVSWebService/CxWSResponseProjectConfig.datasource b/CxViewerAction2019/Web References/CxVSWebService/CxWSResponseProjectConfig.datasource new file mode 100644 index 00000000..ff6fdc07 --- /dev/null +++ b/CxViewerAction2019/Web References/CxVSWebService/CxWSResponseProjectConfig.datasource @@ -0,0 +1,10 @@ + + + + CxViewerAction.CxVSWebService.CxWSResponseProjectConfig, Web References.CxVSWebService.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/CxViewerAction2019/Web References/CxVSWebService/CxWSResponseProjectsDisplayData.datasource b/CxViewerAction2019/Web References/CxVSWebService/CxWSResponseProjectsDisplayData.datasource new file mode 100644 index 00000000..4bc8166c --- /dev/null +++ b/CxViewerAction2019/Web References/CxVSWebService/CxWSResponseProjectsDisplayData.datasource @@ -0,0 +1,10 @@ + + + + CxViewerAction.CxVSWebService.CxWSResponseProjectsDisplayData, Web References.CxVSWebService.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/CxViewerAction2019/Web References/CxVSWebService/CxWSResponseQueryDescription.datasource b/CxViewerAction2019/Web References/CxVSWebService/CxWSResponseQueryDescription.datasource new file mode 100644 index 00000000..5ec06747 --- /dev/null +++ b/CxViewerAction2019/Web References/CxVSWebService/CxWSResponseQueryDescription.datasource @@ -0,0 +1,10 @@ + + + + CxViewerAction.CxVSWebService.CxWSResponseQueryDescription, Web References.CxVSWebService.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/CxViewerAction2019/Web References/CxVSWebService/CxWSResponseResultPaths.datasource b/CxViewerAction2019/Web References/CxVSWebService/CxWSResponseResultPaths.datasource new file mode 100644 index 00000000..7db28452 --- /dev/null +++ b/CxViewerAction2019/Web References/CxVSWebService/CxWSResponseResultPaths.datasource @@ -0,0 +1,10 @@ + + + + CxViewerAction.CxVSWebService.CxWSResponseResultPaths, Web References.CxVSWebService.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/CxViewerAction2019/Web References/CxVSWebService/CxWSResponseResultStateList.datasource b/CxViewerAction2019/Web References/CxVSWebService/CxWSResponseResultStateList.datasource new file mode 100644 index 00000000..623c3928 --- /dev/null +++ b/CxViewerAction2019/Web References/CxVSWebService/CxWSResponseResultStateList.datasource @@ -0,0 +1,10 @@ + + + + CxViewerAction.CxVSWebService.CxWSResponseResultStateList, Web References.CxVSWebService.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/CxViewerAction2019/Web References/CxVSWebService/CxWSResponseRunID.datasource b/CxViewerAction2019/Web References/CxVSWebService/CxWSResponseRunID.datasource new file mode 100644 index 00000000..fd890a1d --- /dev/null +++ b/CxViewerAction2019/Web References/CxVSWebService/CxWSResponseRunID.datasource @@ -0,0 +1,10 @@ + + + + CxViewerAction.CxVSWebService.CxWSResponseRunID, Web References.CxVSWebService.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/CxViewerAction2019/Web References/CxVSWebService/CxWSResponseScanResults.datasource b/CxViewerAction2019/Web References/CxVSWebService/CxWSResponseScanResults.datasource new file mode 100644 index 00000000..842483a3 --- /dev/null +++ b/CxViewerAction2019/Web References/CxVSWebService/CxWSResponseScanResults.datasource @@ -0,0 +1,10 @@ + + + + CxViewerAction.CxVSWebService.CxWSResponseScanResults, Web References.CxVSWebService.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/CxViewerAction2019/Web References/CxVSWebService/CxWSResponseScanStatus.datasource b/CxViewerAction2019/Web References/CxVSWebService/CxWSResponseScanStatus.datasource new file mode 100644 index 00000000..7af1c2a2 --- /dev/null +++ b/CxViewerAction2019/Web References/CxVSWebService/CxWSResponseScanStatus.datasource @@ -0,0 +1,10 @@ + + + + CxViewerAction.CxVSWebService.CxWSResponseScanStatus, Web References.CxVSWebService.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/CxViewerAction2019/Web References/CxVSWebService/CxWSResponseScanStatusArray.datasource b/CxViewerAction2019/Web References/CxVSWebService/CxWSResponseScanStatusArray.datasource new file mode 100644 index 00000000..201df1bf --- /dev/null +++ b/CxViewerAction2019/Web References/CxVSWebService/CxWSResponseScanStatusArray.datasource @@ -0,0 +1,10 @@ + + + + CxViewerAction.CxVSWebService.CxWSResponseScanStatusArray, Web References.CxVSWebService.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/CxViewerAction2019/Web References/CxVSWebService/CxWSResponseScansDisplayData.datasource b/CxViewerAction2019/Web References/CxVSWebService/CxWSResponseScansDisplayData.datasource new file mode 100644 index 00000000..9b363010 --- /dev/null +++ b/CxViewerAction2019/Web References/CxVSWebService/CxWSResponseScansDisplayData.datasource @@ -0,0 +1,10 @@ + + + + CxViewerAction.CxVSWebService.CxWSResponseScansDisplayData, Web References.CxVSWebService.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/CxViewerAction2019/Web References/CxVSWebService/CxWSResponseUserData.datasource b/CxViewerAction2019/Web References/CxVSWebService/CxWSResponseUserData.datasource new file mode 100644 index 00000000..e6b1ad47 --- /dev/null +++ b/CxViewerAction2019/Web References/CxVSWebService/CxWSResponseUserData.datasource @@ -0,0 +1,10 @@ + + + + CxViewerAction.CxVSWebService.CxWSResponseUserData, Web References.CxVSWebService.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/CxViewerAction2019/Web References/CxVSWebService/Reference.cs b/CxViewerAction2019/Web References/CxVSWebService/Reference.cs new file mode 100644 index 00000000..85fdc3d5 --- /dev/null +++ b/CxViewerAction2019/Web References/CxVSWebService/Reference.cs @@ -0,0 +1,7450 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +// +// This source code was auto-generated by Microsoft.VSDesigner, Version 4.0.30319.42000. +// +#pragma warning disable 1591 + +namespace CxViewerAction.CxVSWebService { + using System; + using System.Web.Services; + using System.Diagnostics; + using System.Web.Services.Protocols; + using System.Xml.Serialization; + using System.ComponentModel; + + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Web.Services.WebServiceBindingAttribute(Name="CxVSWebServiceSoap", Namespace="http://Checkmarx.com/v7")] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(WebClientUser))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(CxWSIssueTrackingParam[]))] + public partial class CxVSWebService : System.Web.Services.Protocols.SoapHttpClientProtocol { + + private System.Threading.SendOrPostCallback LoginOperationCompleted; + + private System.Threading.SendOrPostCallback LoginWithTokenOperationCompleted; + + private System.Threading.SendOrPostCallback LoginBySIDOperationCompleted; + + private System.Threading.SendOrPostCallback GetQueryDescriptionOperationCompleted; + + private System.Threading.SendOrPostCallback GetQueryDescriptionByQueryIdOperationCompleted; + + private System.Threading.SendOrPostCallback VerifySupportedVersionOperationCompleted; + + private System.Threading.SendOrPostCallback LogoutOperationCompleted; + + private System.Threading.SendOrPostCallback SsoLoginOperationCompleted; + + private System.Threading.SendOrPostCallback GetPresetListOperationCompleted; + + private System.Threading.SendOrPostCallback GetProjectConfigurationOperationCompleted; + + private System.Threading.SendOrPostCallback RunScanAndAddToProjectOperationCompleted; + + private System.Threading.SendOrPostCallback RunIncrementalScanOperationCompleted; + + private System.Threading.SendOrPostCallback CreateAndRunProjectOperationCompleted; + + private System.Threading.SendOrPostCallback GetResultsForQueryOperationCompleted; + + private System.Threading.SendOrPostCallback GetResultPathOperationCompleted; + + private System.Threading.SendOrPostCallback GetPathCommentsHistoryOperationCompleted; + + private System.Threading.SendOrPostCallback GetProjectsDisplayDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetScansDisplayDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetQueriesForScanOperationCompleted; + + private System.Threading.SendOrPostCallback SetFalsePositiveFlagOperationCompleted; + + private System.Threading.SendOrPostCallback GetResultStateListOperationCompleted; + + private System.Threading.SendOrPostCallback GetAllUsersOperationCompleted; + + private System.Threading.SendOrPostCallback UpdateSetOfResultStateOperationCompleted; + + private System.Threading.SendOrPostCallback UpdateResultStateOperationCompleted; + + private System.Threading.SendOrPostCallback UpdateProjectIncrementalConfigurationOperationCompleted; + + private System.Threading.SendOrPostCallback GetScansStatusesOperationCompleted; + + private System.Threading.SendOrPostCallback IsValidProjectNameOperationCompleted; + + private System.Threading.SendOrPostCallback GetAssociatedGroupsListOperationCompleted; + + private System.Threading.SendOrPostCallback GetConfigurationSetListOperationCompleted; + + private System.Threading.SendOrPostCallback CancelScanOperationCompleted; + + private System.Threading.SendOrPostCallback GetStatusOfSingleScanOperationCompleted; + + private System.Threading.SendOrPostCallback CreateScanReportOperationCompleted; + + private System.Threading.SendOrPostCallback GetScanReportStatusOperationCompleted; + + private System.Threading.SendOrPostCallback GetScanReportOperationCompleted; + + private System.Threading.SendOrPostCallback GetQueriesForScanByRunIdOperationCompleted; + + private System.Threading.SendOrPostCallback GetScanXMLReportStatusOperationCompleted; + + private System.Threading.SendOrPostCallback GetResultPathsForQueryOperationCompleted; + + private System.Threading.SendOrPostCallback GetProjectAssignUsersOperationCompleted; + + private System.Threading.SendOrPostCallback GetProjectAssignUsersListOperationCompleted; + + private System.Threading.SendOrPostCallback CreateScanXMLReportOperationCompleted; + + private System.Threading.SendOrPostCallback GetScanXMLReportOperationCompleted; + + private bool useDefaultCredentialsSetExplicitly; + + /// + public CxVSWebService() { + this.Url = global::CxViewerAction.Properties.Settings.Default.CxViewerAction_CxVSWebService_CxVSWebService; + if ((this.IsLocalFileSystemWebService(this.Url) == true)) { + this.UseDefaultCredentials = true; + this.useDefaultCredentialsSetExplicitly = false; + } + else { + this.useDefaultCredentialsSetExplicitly = true; + } + } + + public new string Url { + get { + return base.Url; + } + set { + if ((((this.IsLocalFileSystemWebService(base.Url) == true) + && (this.useDefaultCredentialsSetExplicitly == false)) + && (this.IsLocalFileSystemWebService(value) == false))) { + base.UseDefaultCredentials = false; + } + base.Url = value; + } + } + + public new bool UseDefaultCredentials { + get { + return base.UseDefaultCredentials; + } + set { + base.UseDefaultCredentials = value; + this.useDefaultCredentialsSetExplicitly = true; + } + } + + /// + public event LoginCompletedEventHandler LoginCompleted; + + /// + public event LoginWithTokenCompletedEventHandler LoginWithTokenCompleted; + + /// + public event LoginBySIDCompletedEventHandler LoginBySIDCompleted; + + /// + public event GetQueryDescriptionCompletedEventHandler GetQueryDescriptionCompleted; + + /// + public event GetQueryDescriptionByQueryIdCompletedEventHandler GetQueryDescriptionByQueryIdCompleted; + + /// + public event VerifySupportedVersionCompletedEventHandler VerifySupportedVersionCompleted; + + /// + public event LogoutCompletedEventHandler LogoutCompleted; + + /// + public event SsoLoginCompletedEventHandler SsoLoginCompleted; + + /// + public event GetPresetListCompletedEventHandler GetPresetListCompleted; + + /// + public event GetProjectConfigurationCompletedEventHandler GetProjectConfigurationCompleted; + + /// + public event RunScanAndAddToProjectCompletedEventHandler RunScanAndAddToProjectCompleted; + + /// + public event RunIncrementalScanCompletedEventHandler RunIncrementalScanCompleted; + + /// + public event CreateAndRunProjectCompletedEventHandler CreateAndRunProjectCompleted; + + /// + public event GetResultsForQueryCompletedEventHandler GetResultsForQueryCompleted; + + /// + public event GetResultPathCompletedEventHandler GetResultPathCompleted; + + /// + public event GetPathCommentsHistoryCompletedEventHandler GetPathCommentsHistoryCompleted; + + /// + public event GetProjectsDisplayDataCompletedEventHandler GetProjectsDisplayDataCompleted; + + /// + public event GetScansDisplayDataCompletedEventHandler GetScansDisplayDataCompleted; + + /// + public event GetQueriesForScanCompletedEventHandler GetQueriesForScanCompleted; + + /// + public event SetFalsePositiveFlagCompletedEventHandler SetFalsePositiveFlagCompleted; + + /// + public event GetResultStateListCompletedEventHandler GetResultStateListCompleted; + + /// + public event GetAllUsersCompletedEventHandler GetAllUsersCompleted; + + /// + public event UpdateSetOfResultStateCompletedEventHandler UpdateSetOfResultStateCompleted; + + /// + public event UpdateResultStateCompletedEventHandler UpdateResultStateCompleted; + + /// + public event UpdateProjectIncrementalConfigurationCompletedEventHandler UpdateProjectIncrementalConfigurationCompleted; + + /// + public event GetScansStatusesCompletedEventHandler GetScansStatusesCompleted; + + /// + public event IsValidProjectNameCompletedEventHandler IsValidProjectNameCompleted; + + /// + public event GetAssociatedGroupsListCompletedEventHandler GetAssociatedGroupsListCompleted; + + /// + public event GetConfigurationSetListCompletedEventHandler GetConfigurationSetListCompleted; + + /// + public event CancelScanCompletedEventHandler CancelScanCompleted; + + /// + public event GetStatusOfSingleScanCompletedEventHandler GetStatusOfSingleScanCompleted; + + /// + public event CreateScanReportCompletedEventHandler CreateScanReportCompleted; + + /// + public event GetScanReportStatusCompletedEventHandler GetScanReportStatusCompleted; + + /// + public event GetScanReportCompletedEventHandler GetScanReportCompleted; + + /// + public event GetQueriesForScanByRunIdCompletedEventHandler GetQueriesForScanByRunIdCompleted; + + /// + public event GetScanXMLReportStatusCompletedEventHandler GetScanXMLReportStatusCompleted; + + /// + public event GetResultPathsForQueryCompletedEventHandler GetResultPathsForQueryCompleted; + + /// + public event GetProjectAssignUsersCompletedEventHandler GetProjectAssignUsersCompleted; + + /// + public event GetProjectAssignUsersListCompletedEventHandler GetProjectAssignUsersListCompleted; + + /// + public event CreateScanXMLReportCompletedEventHandler CreateScanXMLReportCompleted; + + /// + public event GetScanXMLReportCompletedEventHandler GetScanXMLReportCompleted; + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://Checkmarx.com/v7/Login", RequestNamespace="http://Checkmarx.com/v7", ResponseNamespace="http://Checkmarx.com/v7", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public CxWSResponseLoginData Login(Credentials applicationCredentials, int lcid) { + object[] results = this.Invoke("Login", new object[] { + applicationCredentials, + lcid}); + return ((CxWSResponseLoginData)(results[0])); + } + + /// + public void LoginAsync(Credentials applicationCredentials, int lcid) { + this.LoginAsync(applicationCredentials, lcid, null); + } + + /// + public void LoginAsync(Credentials applicationCredentials, int lcid, object userState) { + if ((this.LoginOperationCompleted == null)) { + this.LoginOperationCompleted = new System.Threading.SendOrPostCallback(this.OnLoginOperationCompleted); + } + this.InvokeAsync("Login", new object[] { + applicationCredentials, + lcid}, this.LoginOperationCompleted, userState); + } + + private void OnLoginOperationCompleted(object arg) { + if ((this.LoginCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.LoginCompleted(this, new LoginCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://Checkmarx.com/v7/LoginWithToken", RequestNamespace="http://Checkmarx.com/v7", ResponseNamespace="http://Checkmarx.com/v7", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public CxWSResponseLoginData LoginWithToken(string token, int lcid) { + object[] results = this.Invoke("LoginWithToken", new object[] { + token, + lcid}); + return ((CxWSResponseLoginData)(results[0])); + } + + /// + public void LoginWithTokenAsync(string token, int lcid) { + this.LoginWithTokenAsync(token, lcid, null); + } + + /// + public void LoginWithTokenAsync(string token, int lcid, object userState) { + if ((this.LoginWithTokenOperationCompleted == null)) { + this.LoginWithTokenOperationCompleted = new System.Threading.SendOrPostCallback(this.OnLoginWithTokenOperationCompleted); + } + this.InvokeAsync("LoginWithToken", new object[] { + token, + lcid}, this.LoginWithTokenOperationCompleted, userState); + } + + private void OnLoginWithTokenOperationCompleted(object arg) { + if ((this.LoginWithTokenCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.LoginWithTokenCompleted(this, new LoginWithTokenCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://Checkmarx.com/v7/LoginBySID", RequestNamespace="http://Checkmarx.com/v7", ResponseNamespace="http://Checkmarx.com/v7", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public CxWSResponseLoginData LoginBySID(string sessionID) { + object[] results = this.Invoke("LoginBySID", new object[] { + sessionID}); + return ((CxWSResponseLoginData)(results[0])); + } + + /// + public void LoginBySIDAsync(string sessionID) { + this.LoginBySIDAsync(sessionID, null); + } + + /// + public void LoginBySIDAsync(string sessionID, object userState) { + if ((this.LoginBySIDOperationCompleted == null)) { + this.LoginBySIDOperationCompleted = new System.Threading.SendOrPostCallback(this.OnLoginBySIDOperationCompleted); + } + this.InvokeAsync("LoginBySID", new object[] { + sessionID}, this.LoginBySIDOperationCompleted, userState); + } + + private void OnLoginBySIDOperationCompleted(object arg) { + if ((this.LoginBySIDCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.LoginBySIDCompleted(this, new LoginBySIDCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://Checkmarx.com/v7/GetQueryDescription", RequestNamespace="http://Checkmarx.com/v7", ResponseNamespace="http://Checkmarx.com/v7", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public CxWSResponseQueryDescription GetQueryDescription(string sessionId, int cweId) { + object[] results = this.Invoke("GetQueryDescription", new object[] { + sessionId, + cweId}); + return ((CxWSResponseQueryDescription)(results[0])); + } + + /// + public void GetQueryDescriptionAsync(string sessionId, int cweId) { + this.GetQueryDescriptionAsync(sessionId, cweId, null); + } + + /// + public void GetQueryDescriptionAsync(string sessionId, int cweId, object userState) { + if ((this.GetQueryDescriptionOperationCompleted == null)) { + this.GetQueryDescriptionOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetQueryDescriptionOperationCompleted); + } + this.InvokeAsync("GetQueryDescription", new object[] { + sessionId, + cweId}, this.GetQueryDescriptionOperationCompleted, userState); + } + + private void OnGetQueryDescriptionOperationCompleted(object arg) { + if ((this.GetQueryDescriptionCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetQueryDescriptionCompleted(this, new GetQueryDescriptionCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://Checkmarx.com/v7/GetQueryDescriptionByQueryId", RequestNamespace="http://Checkmarx.com/v7", ResponseNamespace="http://Checkmarx.com/v7", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public CxWSResponseQueryDescription GetQueryDescriptionByQueryId(string sessionId, int queryId) { + object[] results = this.Invoke("GetQueryDescriptionByQueryId", new object[] { + sessionId, + queryId}); + return ((CxWSResponseQueryDescription)(results[0])); + } + + /// + public void GetQueryDescriptionByQueryIdAsync(string sessionId, int queryId) { + this.GetQueryDescriptionByQueryIdAsync(sessionId, queryId, null); + } + + /// + public void GetQueryDescriptionByQueryIdAsync(string sessionId, int queryId, object userState) { + if ((this.GetQueryDescriptionByQueryIdOperationCompleted == null)) { + this.GetQueryDescriptionByQueryIdOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetQueryDescriptionByQueryIdOperationCompleted); + } + this.InvokeAsync("GetQueryDescriptionByQueryId", new object[] { + sessionId, + queryId}, this.GetQueryDescriptionByQueryIdOperationCompleted, userState); + } + + private void OnGetQueryDescriptionByQueryIdOperationCompleted(object arg) { + if ((this.GetQueryDescriptionByQueryIdCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetQueryDescriptionByQueryIdCompleted(this, new GetQueryDescriptionByQueryIdCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://Checkmarx.com/v7/VerifySupportedVersion", RequestNamespace="http://Checkmarx.com/v7", ResponseNamespace="http://Checkmarx.com/v7", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public CxWSBasicRepsonse VerifySupportedVersion(CxClientType clientType, string clientVersion, string APIVersion) { + object[] results = this.Invoke("VerifySupportedVersion", new object[] { + clientType, + clientVersion, + APIVersion}); + return ((CxWSBasicRepsonse)(results[0])); + } + + /// + public void VerifySupportedVersionAsync(CxClientType clientType, string clientVersion, string APIVersion) { + this.VerifySupportedVersionAsync(clientType, clientVersion, APIVersion, null); + } + + /// + public void VerifySupportedVersionAsync(CxClientType clientType, string clientVersion, string APIVersion, object userState) { + if ((this.VerifySupportedVersionOperationCompleted == null)) { + this.VerifySupportedVersionOperationCompleted = new System.Threading.SendOrPostCallback(this.OnVerifySupportedVersionOperationCompleted); + } + this.InvokeAsync("VerifySupportedVersion", new object[] { + clientType, + clientVersion, + APIVersion}, this.VerifySupportedVersionOperationCompleted, userState); + } + + private void OnVerifySupportedVersionOperationCompleted(object arg) { + if ((this.VerifySupportedVersionCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.VerifySupportedVersionCompleted(this, new VerifySupportedVersionCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://Checkmarx.com/v7/Logout", RequestNamespace="http://Checkmarx.com/v7", ResponseNamespace="http://Checkmarx.com/v7", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public CxWSBasicRepsonse Logout(string sessionID) { + object[] results = this.Invoke("Logout", new object[] { + sessionID}); + return ((CxWSBasicRepsonse)(results[0])); + } + + /// + public void LogoutAsync(string sessionID) { + this.LogoutAsync(sessionID, null); + } + + /// + public void LogoutAsync(string sessionID, object userState) { + if ((this.LogoutOperationCompleted == null)) { + this.LogoutOperationCompleted = new System.Threading.SendOrPostCallback(this.OnLogoutOperationCompleted); + } + this.InvokeAsync("Logout", new object[] { + sessionID}, this.LogoutOperationCompleted, userState); + } + + private void OnLogoutOperationCompleted(object arg) { + if ((this.LogoutCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.LogoutCompleted(this, new LogoutCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://Checkmarx.com/v7/SsoLogin", RequestNamespace="http://Checkmarx.com/v7", ResponseNamespace="http://Checkmarx.com/v7", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public CxWSResponseLoginData SsoLogin(Credentials encryptedCredentials, int lcid) { + object[] results = this.Invoke("SsoLogin", new object[] { + encryptedCredentials, + lcid}); + return ((CxWSResponseLoginData)(results[0])); + } + + /// + public void SsoLoginAsync(Credentials encryptedCredentials, int lcid) { + this.SsoLoginAsync(encryptedCredentials, lcid, null); + } + + /// + public void SsoLoginAsync(Credentials encryptedCredentials, int lcid, object userState) { + if ((this.SsoLoginOperationCompleted == null)) { + this.SsoLoginOperationCompleted = new System.Threading.SendOrPostCallback(this.OnSsoLoginOperationCompleted); + } + this.InvokeAsync("SsoLogin", new object[] { + encryptedCredentials, + lcid}, this.SsoLoginOperationCompleted, userState); + } + + private void OnSsoLoginOperationCompleted(object arg) { + if ((this.SsoLoginCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.SsoLoginCompleted(this, new SsoLoginCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://Checkmarx.com/v7/GetPresetList", RequestNamespace="http://Checkmarx.com/v7", ResponseNamespace="http://Checkmarx.com/v7", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public CxWSResponsePresetList GetPresetList(string SessionID) { + object[] results = this.Invoke("GetPresetList", new object[] { + SessionID}); + return ((CxWSResponsePresetList)(results[0])); + } + + /// + public void GetPresetListAsync(string SessionID) { + this.GetPresetListAsync(SessionID, null); + } + + /// + public void GetPresetListAsync(string SessionID, object userState) { + if ((this.GetPresetListOperationCompleted == null)) { + this.GetPresetListOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetPresetListOperationCompleted); + } + this.InvokeAsync("GetPresetList", new object[] { + SessionID}, this.GetPresetListOperationCompleted, userState); + } + + private void OnGetPresetListOperationCompleted(object arg) { + if ((this.GetPresetListCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetPresetListCompleted(this, new GetPresetListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://Checkmarx.com/v7/GetProjectConfiguration", RequestNamespace="http://Checkmarx.com/v7", ResponseNamespace="http://Checkmarx.com/v7", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public CxWSResponseProjectConfig GetProjectConfiguration(string sessionID, long projectID) { + object[] results = this.Invoke("GetProjectConfiguration", new object[] { + sessionID, + projectID}); + return ((CxWSResponseProjectConfig)(results[0])); + } + + /// + public void GetProjectConfigurationAsync(string sessionID, long projectID) { + this.GetProjectConfigurationAsync(sessionID, projectID, null); + } + + /// + public void GetProjectConfigurationAsync(string sessionID, long projectID, object userState) { + if ((this.GetProjectConfigurationOperationCompleted == null)) { + this.GetProjectConfigurationOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetProjectConfigurationOperationCompleted); + } + this.InvokeAsync("GetProjectConfiguration", new object[] { + sessionID, + projectID}, this.GetProjectConfigurationOperationCompleted, userState); + } + + private void OnGetProjectConfigurationOperationCompleted(object arg) { + if ((this.GetProjectConfigurationCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetProjectConfigurationCompleted(this, new GetProjectConfigurationCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://Checkmarx.com/v7/RunScanAndAddToProject", RequestNamespace="http://Checkmarx.com/v7", ResponseNamespace="http://Checkmarx.com/v7", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public CxWSResponseRunID RunScanAndAddToProject(string sessionId, ProjectSettings projectSettings, LocalCodeContainer localCodeContainer, bool visibleToUtherUsers, bool isScanPublic) { + object[] results = this.Invoke("RunScanAndAddToProject", new object[] { + sessionId, + projectSettings, + localCodeContainer, + visibleToUtherUsers, + isScanPublic}); + return ((CxWSResponseRunID)(results[0])); + } + + /// + public void RunScanAndAddToProjectAsync(string sessionId, ProjectSettings projectSettings, LocalCodeContainer localCodeContainer, bool visibleToUtherUsers, bool isScanPublic) { + this.RunScanAndAddToProjectAsync(sessionId, projectSettings, localCodeContainer, visibleToUtherUsers, isScanPublic, null); + } + + /// + public void RunScanAndAddToProjectAsync(string sessionId, ProjectSettings projectSettings, LocalCodeContainer localCodeContainer, bool visibleToUtherUsers, bool isScanPublic, object userState) { + if ((this.RunScanAndAddToProjectOperationCompleted == null)) { + this.RunScanAndAddToProjectOperationCompleted = new System.Threading.SendOrPostCallback(this.OnRunScanAndAddToProjectOperationCompleted); + } + this.InvokeAsync("RunScanAndAddToProject", new object[] { + sessionId, + projectSettings, + localCodeContainer, + visibleToUtherUsers, + isScanPublic}, this.RunScanAndAddToProjectOperationCompleted, userState); + } + + private void OnRunScanAndAddToProjectOperationCompleted(object arg) { + if ((this.RunScanAndAddToProjectCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.RunScanAndAddToProjectCompleted(this, new RunScanAndAddToProjectCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://Checkmarx.com/v7/RunIncrementalScan", RequestNamespace="http://Checkmarx.com/v7", ResponseNamespace="http://Checkmarx.com/v7", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public CxWSResponseRunID RunIncrementalScan(string sessionId, ProjectSettings projectSettings, LocalCodeContainer localCodeContainer, bool visibleToUtherUsers, bool isPublicScan) { + object[] results = this.Invoke("RunIncrementalScan", new object[] { + sessionId, + projectSettings, + localCodeContainer, + visibleToUtherUsers, + isPublicScan}); + return ((CxWSResponseRunID)(results[0])); + } + + /// + public void RunIncrementalScanAsync(string sessionId, ProjectSettings projectSettings, LocalCodeContainer localCodeContainer, bool visibleToUtherUsers, bool isPublicScan) { + this.RunIncrementalScanAsync(sessionId, projectSettings, localCodeContainer, visibleToUtherUsers, isPublicScan, null); + } + + /// + public void RunIncrementalScanAsync(string sessionId, ProjectSettings projectSettings, LocalCodeContainer localCodeContainer, bool visibleToUtherUsers, bool isPublicScan, object userState) { + if ((this.RunIncrementalScanOperationCompleted == null)) { + this.RunIncrementalScanOperationCompleted = new System.Threading.SendOrPostCallback(this.OnRunIncrementalScanOperationCompleted); + } + this.InvokeAsync("RunIncrementalScan", new object[] { + sessionId, + projectSettings, + localCodeContainer, + visibleToUtherUsers, + isPublicScan}, this.RunIncrementalScanOperationCompleted, userState); + } + + private void OnRunIncrementalScanOperationCompleted(object arg) { + if ((this.RunIncrementalScanCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.RunIncrementalScanCompleted(this, new RunIncrementalScanCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://Checkmarx.com/v7/CreateAndRunProject", RequestNamespace="http://Checkmarx.com/v7", ResponseNamespace="http://Checkmarx.com/v7", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public CxWSResponseRunID CreateAndRunProject(string SessionID, ProjectSettings ProjectSettings, LocalCodeContainer LocalCodeContainer, bool visibleToOtherUsers, bool isScanPublic) { + object[] results = this.Invoke("CreateAndRunProject", new object[] { + SessionID, + ProjectSettings, + LocalCodeContainer, + visibleToOtherUsers, + isScanPublic}); + return ((CxWSResponseRunID)(results[0])); + } + + /// + public void CreateAndRunProjectAsync(string SessionID, ProjectSettings ProjectSettings, LocalCodeContainer LocalCodeContainer, bool visibleToOtherUsers, bool isScanPublic) { + this.CreateAndRunProjectAsync(SessionID, ProjectSettings, LocalCodeContainer, visibleToOtherUsers, isScanPublic, null); + } + + /// + public void CreateAndRunProjectAsync(string SessionID, ProjectSettings ProjectSettings, LocalCodeContainer LocalCodeContainer, bool visibleToOtherUsers, bool isScanPublic, object userState) { + if ((this.CreateAndRunProjectOperationCompleted == null)) { + this.CreateAndRunProjectOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCreateAndRunProjectOperationCompleted); + } + this.InvokeAsync("CreateAndRunProject", new object[] { + SessionID, + ProjectSettings, + LocalCodeContainer, + visibleToOtherUsers, + isScanPublic}, this.CreateAndRunProjectOperationCompleted, userState); + } + + private void OnCreateAndRunProjectOperationCompleted(object arg) { + if ((this.CreateAndRunProjectCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.CreateAndRunProjectCompleted(this, new CreateAndRunProjectCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://Checkmarx.com/v7/GetResultsForQuery", RequestNamespace="http://Checkmarx.com/v7", ResponseNamespace="http://Checkmarx.com/v7", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public CxWSResponceScanResults GetResultsForQuery(string sessionID, long scanId, long queryId) { + object[] results = this.Invoke("GetResultsForQuery", new object[] { + sessionID, + scanId, + queryId}); + return ((CxWSResponceScanResults)(results[0])); + } + + /// + public void GetResultsForQueryAsync(string sessionID, long scanId, long queryId) { + this.GetResultsForQueryAsync(sessionID, scanId, queryId, null); + } + + /// + public void GetResultsForQueryAsync(string sessionID, long scanId, long queryId, object userState) { + if ((this.GetResultsForQueryOperationCompleted == null)) { + this.GetResultsForQueryOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetResultsForQueryOperationCompleted); + } + this.InvokeAsync("GetResultsForQuery", new object[] { + sessionID, + scanId, + queryId}, this.GetResultsForQueryOperationCompleted, userState); + } + + private void OnGetResultsForQueryOperationCompleted(object arg) { + if ((this.GetResultsForQueryCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetResultsForQueryCompleted(this, new GetResultsForQueryCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://Checkmarx.com/v7/GetResultPath", RequestNamespace="http://Checkmarx.com/v7", ResponseNamespace="http://Checkmarx.com/v7", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public CxWSResponceResultPath GetResultPath(string sessionId, long scanId, long pathId) { + object[] results = this.Invoke("GetResultPath", new object[] { + sessionId, + scanId, + pathId}); + return ((CxWSResponceResultPath)(results[0])); + } + + /// + public void GetResultPathAsync(string sessionId, long scanId, long pathId) { + this.GetResultPathAsync(sessionId, scanId, pathId, null); + } + + /// + public void GetResultPathAsync(string sessionId, long scanId, long pathId, object userState) { + if ((this.GetResultPathOperationCompleted == null)) { + this.GetResultPathOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetResultPathOperationCompleted); + } + this.InvokeAsync("GetResultPath", new object[] { + sessionId, + scanId, + pathId}, this.GetResultPathOperationCompleted, userState); + } + + private void OnGetResultPathOperationCompleted(object arg) { + if ((this.GetResultPathCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetResultPathCompleted(this, new GetResultPathCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://Checkmarx.com/v7/GetPathCommentsHistory", RequestNamespace="http://Checkmarx.com/v7", ResponseNamespace="http://Checkmarx.com/v7", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public CxWSResponceResultPath GetPathCommentsHistory(string sessionId, long scanId, long pathId, ResultLabelTypeEnum labelType) { + object[] results = this.Invoke("GetPathCommentsHistory", new object[] { + sessionId, + scanId, + pathId, + labelType}); + return ((CxWSResponceResultPath)(results[0])); + } + + /// + public void GetPathCommentsHistoryAsync(string sessionId, long scanId, long pathId, ResultLabelTypeEnum labelType) { + this.GetPathCommentsHistoryAsync(sessionId, scanId, pathId, labelType, null); + } + + /// + public void GetPathCommentsHistoryAsync(string sessionId, long scanId, long pathId, ResultLabelTypeEnum labelType, object userState) { + if ((this.GetPathCommentsHistoryOperationCompleted == null)) { + this.GetPathCommentsHistoryOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetPathCommentsHistoryOperationCompleted); + } + this.InvokeAsync("GetPathCommentsHistory", new object[] { + sessionId, + scanId, + pathId, + labelType}, this.GetPathCommentsHistoryOperationCompleted, userState); + } + + private void OnGetPathCommentsHistoryOperationCompleted(object arg) { + if ((this.GetPathCommentsHistoryCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetPathCommentsHistoryCompleted(this, new GetPathCommentsHistoryCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://Checkmarx.com/v7/GetProjectsDisplayData", RequestNamespace="http://Checkmarx.com/v7", ResponseNamespace="http://Checkmarx.com/v7", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public CxWSResponseProjectsDisplayData GetProjectsDisplayData(string sessionID) { + object[] results = this.Invoke("GetProjectsDisplayData", new object[] { + sessionID}); + return ((CxWSResponseProjectsDisplayData)(results[0])); + } + + /// + public void GetProjectsDisplayDataAsync(string sessionID) { + this.GetProjectsDisplayDataAsync(sessionID, null); + } + + /// + public void GetProjectsDisplayDataAsync(string sessionID, object userState) { + if ((this.GetProjectsDisplayDataOperationCompleted == null)) { + this.GetProjectsDisplayDataOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetProjectsDisplayDataOperationCompleted); + } + this.InvokeAsync("GetProjectsDisplayData", new object[] { + sessionID}, this.GetProjectsDisplayDataOperationCompleted, userState); + } + + private void OnGetProjectsDisplayDataOperationCompleted(object arg) { + if ((this.GetProjectsDisplayDataCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetProjectsDisplayDataCompleted(this, new GetProjectsDisplayDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://Checkmarx.com/v7/GetScansDisplayData", RequestNamespace="http://Checkmarx.com/v7", ResponseNamespace="http://Checkmarx.com/v7", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public CxWSResponseScansDisplayData GetScansDisplayData(string sessionID, long projectID) { + object[] results = this.Invoke("GetScansDisplayData", new object[] { + sessionID, + projectID}); + return ((CxWSResponseScansDisplayData)(results[0])); + } + + /// + public void GetScansDisplayDataAsync(string sessionID, long projectID) { + this.GetScansDisplayDataAsync(sessionID, projectID, null); + } + + /// + public void GetScansDisplayDataAsync(string sessionID, long projectID, object userState) { + if ((this.GetScansDisplayDataOperationCompleted == null)) { + this.GetScansDisplayDataOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetScansDisplayDataOperationCompleted); + } + this.InvokeAsync("GetScansDisplayData", new object[] { + sessionID, + projectID}, this.GetScansDisplayDataOperationCompleted, userState); + } + + private void OnGetScansDisplayDataOperationCompleted(object arg) { + if ((this.GetScansDisplayDataCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetScansDisplayDataCompleted(this, new GetScansDisplayDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://Checkmarx.com/v7/GetQueriesForScan", RequestNamespace="http://Checkmarx.com/v7", ResponseNamespace="http://Checkmarx.com/v7", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public CxWSResponceQuerisForScan GetQueriesForScan(string sessionID, long scanId) { + object[] results = this.Invoke("GetQueriesForScan", new object[] { + sessionID, + scanId}); + return ((CxWSResponceQuerisForScan)(results[0])); + } + + /// + public void GetQueriesForScanAsync(string sessionID, long scanId) { + this.GetQueriesForScanAsync(sessionID, scanId, null); + } + + /// + public void GetQueriesForScanAsync(string sessionID, long scanId, object userState) { + if ((this.GetQueriesForScanOperationCompleted == null)) { + this.GetQueriesForScanOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetQueriesForScanOperationCompleted); + } + this.InvokeAsync("GetQueriesForScan", new object[] { + sessionID, + scanId}, this.GetQueriesForScanOperationCompleted, userState); + } + + private void OnGetQueriesForScanOperationCompleted(object arg) { + if ((this.GetQueriesForScanCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetQueriesForScanCompleted(this, new GetQueriesForScanCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://Checkmarx.com/v7/SetFalsePositiveFlag", RequestNamespace="http://Checkmarx.com/v7", ResponseNamespace="http://Checkmarx.com/v7", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public CxWSBasicRepsonse SetFalsePositiveFlag(string sessionID, long ResultId, long PathId, long projectId, bool falsePositiveFlag) { + object[] results = this.Invoke("SetFalsePositiveFlag", new object[] { + sessionID, + ResultId, + PathId, + projectId, + falsePositiveFlag}); + return ((CxWSBasicRepsonse)(results[0])); + } + + /// + public void SetFalsePositiveFlagAsync(string sessionID, long ResultId, long PathId, long projectId, bool falsePositiveFlag) { + this.SetFalsePositiveFlagAsync(sessionID, ResultId, PathId, projectId, falsePositiveFlag, null); + } + + /// + public void SetFalsePositiveFlagAsync(string sessionID, long ResultId, long PathId, long projectId, bool falsePositiveFlag, object userState) { + if ((this.SetFalsePositiveFlagOperationCompleted == null)) { + this.SetFalsePositiveFlagOperationCompleted = new System.Threading.SendOrPostCallback(this.OnSetFalsePositiveFlagOperationCompleted); + } + this.InvokeAsync("SetFalsePositiveFlag", new object[] { + sessionID, + ResultId, + PathId, + projectId, + falsePositiveFlag}, this.SetFalsePositiveFlagOperationCompleted, userState); + } + + private void OnSetFalsePositiveFlagOperationCompleted(object arg) { + if ((this.SetFalsePositiveFlagCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.SetFalsePositiveFlagCompleted(this, new SetFalsePositiveFlagCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://Checkmarx.com/v7/GetResultStateList", RequestNamespace="http://Checkmarx.com/v7", ResponseNamespace="http://Checkmarx.com/v7", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public CxWSResponseResultStateList GetResultStateList(string sessionID) { + object[] results = this.Invoke("GetResultStateList", new object[] { + sessionID}); + return ((CxWSResponseResultStateList)(results[0])); + } + + /// + public void GetResultStateListAsync(string sessionID) { + this.GetResultStateListAsync(sessionID, null); + } + + /// + public void GetResultStateListAsync(string sessionID, object userState) { + if ((this.GetResultStateListOperationCompleted == null)) { + this.GetResultStateListOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetResultStateListOperationCompleted); + } + this.InvokeAsync("GetResultStateList", new object[] { + sessionID}, this.GetResultStateListOperationCompleted, userState); + } + + private void OnGetResultStateListOperationCompleted(object arg) { + if ((this.GetResultStateListCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetResultStateListCompleted(this, new GetResultStateListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://Checkmarx.com/v7/GetAllUsers", RequestNamespace="http://Checkmarx.com/v7", ResponseNamespace="http://Checkmarx.com/v7", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public CxWSResponseUserData GetAllUsers(string sessionID) { + object[] results = this.Invoke("GetAllUsers", new object[] { + sessionID}); + return ((CxWSResponseUserData)(results[0])); + } + + /// + public void GetAllUsersAsync(string sessionID) { + this.GetAllUsersAsync(sessionID, null); + } + + /// + public void GetAllUsersAsync(string sessionID, object userState) { + if ((this.GetAllUsersOperationCompleted == null)) { + this.GetAllUsersOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetAllUsersOperationCompleted); + } + this.InvokeAsync("GetAllUsers", new object[] { + sessionID}, this.GetAllUsersOperationCompleted, userState); + } + + private void OnGetAllUsersOperationCompleted(object arg) { + if ((this.GetAllUsersCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetAllUsersCompleted(this, new GetAllUsersCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://Checkmarx.com/v7/UpdateSetOfResultState", RequestNamespace="http://Checkmarx.com/v7", ResponseNamespace="http://Checkmarx.com/v7", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public CxWSBasicRepsonse UpdateSetOfResultState(string sessionID, ResultStateData[] resultsStates) { + object[] results = this.Invoke("UpdateSetOfResultState", new object[] { + sessionID, + resultsStates}); + return ((CxWSBasicRepsonse)(results[0])); + } + + /// + public void UpdateSetOfResultStateAsync(string sessionID, ResultStateData[] resultsStates) { + this.UpdateSetOfResultStateAsync(sessionID, resultsStates, null); + } + + /// + public void UpdateSetOfResultStateAsync(string sessionID, ResultStateData[] resultsStates, object userState) { + if ((this.UpdateSetOfResultStateOperationCompleted == null)) { + this.UpdateSetOfResultStateOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUpdateSetOfResultStateOperationCompleted); + } + this.InvokeAsync("UpdateSetOfResultState", new object[] { + sessionID, + resultsStates}, this.UpdateSetOfResultStateOperationCompleted, userState); + } + + private void OnUpdateSetOfResultStateOperationCompleted(object arg) { + if ((this.UpdateSetOfResultStateCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.UpdateSetOfResultStateCompleted(this, new UpdateSetOfResultStateCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://Checkmarx.com/v7/UpdateResultState", RequestNamespace="http://Checkmarx.com/v7", ResponseNamespace="http://Checkmarx.com/v7", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public CxWSBasicRepsonse UpdateResultState(string sessionID, long scanId, long PathId, long projectId, string Remarks, int ResultLabelType, string data) { + object[] results = this.Invoke("UpdateResultState", new object[] { + sessionID, + scanId, + PathId, + projectId, + Remarks, + ResultLabelType, + data}); + return ((CxWSBasicRepsonse)(results[0])); + } + + /// + public void UpdateResultStateAsync(string sessionID, long scanId, long PathId, long projectId, string Remarks, int ResultLabelType, string data) { + this.UpdateResultStateAsync(sessionID, scanId, PathId, projectId, Remarks, ResultLabelType, data, null); + } + + /// + public void UpdateResultStateAsync(string sessionID, long scanId, long PathId, long projectId, string Remarks, int ResultLabelType, string data, object userState) { + if ((this.UpdateResultStateOperationCompleted == null)) { + this.UpdateResultStateOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUpdateResultStateOperationCompleted); + } + this.InvokeAsync("UpdateResultState", new object[] { + sessionID, + scanId, + PathId, + projectId, + Remarks, + ResultLabelType, + data}, this.UpdateResultStateOperationCompleted, userState); + } + + private void OnUpdateResultStateOperationCompleted(object arg) { + if ((this.UpdateResultStateCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.UpdateResultStateCompleted(this, new UpdateResultStateCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://Checkmarx.com/v7/UpdateProjectIncrementalConfiguration", RequestNamespace="http://Checkmarx.com/v7", ResponseNamespace="http://Checkmarx.com/v7", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public CxWSBasicRepsonse UpdateProjectIncrementalConfiguration(string sessionID, long projectID, ProjectConfiguration projectConfiguration, bool isScanPublic) { + object[] results = this.Invoke("UpdateProjectIncrementalConfiguration", new object[] { + sessionID, + projectID, + projectConfiguration, + isScanPublic}); + return ((CxWSBasicRepsonse)(results[0])); + } + + /// + public void UpdateProjectIncrementalConfigurationAsync(string sessionID, long projectID, ProjectConfiguration projectConfiguration, bool isScanPublic) { + this.UpdateProjectIncrementalConfigurationAsync(sessionID, projectID, projectConfiguration, isScanPublic, null); + } + + /// + public void UpdateProjectIncrementalConfigurationAsync(string sessionID, long projectID, ProjectConfiguration projectConfiguration, bool isScanPublic, object userState) { + if ((this.UpdateProjectIncrementalConfigurationOperationCompleted == null)) { + this.UpdateProjectIncrementalConfigurationOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUpdateProjectIncrementalConfigurationOperationCompleted); + } + this.InvokeAsync("UpdateProjectIncrementalConfiguration", new object[] { + sessionID, + projectID, + projectConfiguration, + isScanPublic}, this.UpdateProjectIncrementalConfigurationOperationCompleted, userState); + } + + private void OnUpdateProjectIncrementalConfigurationOperationCompleted(object arg) { + if ((this.UpdateProjectIncrementalConfigurationCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.UpdateProjectIncrementalConfigurationCompleted(this, new UpdateProjectIncrementalConfigurationCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://Checkmarx.com/v7/GetScansStatuses", RequestNamespace="http://Checkmarx.com/v7", ResponseNamespace="http://Checkmarx.com/v7", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public CxWSResponseScanStatusArray GetScansStatuses(string sessionID) { + object[] results = this.Invoke("GetScansStatuses", new object[] { + sessionID}); + return ((CxWSResponseScanStatusArray)(results[0])); + } + + /// + public void GetScansStatusesAsync(string sessionID) { + this.GetScansStatusesAsync(sessionID, null); + } + + /// + public void GetScansStatusesAsync(string sessionID, object userState) { + if ((this.GetScansStatusesOperationCompleted == null)) { + this.GetScansStatusesOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetScansStatusesOperationCompleted); + } + this.InvokeAsync("GetScansStatuses", new object[] { + sessionID}, this.GetScansStatusesOperationCompleted, userState); + } + + private void OnGetScansStatusesOperationCompleted(object arg) { + if ((this.GetScansStatusesCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetScansStatusesCompleted(this, new GetScansStatusesCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://Checkmarx.com/v7/IsValidProjectName", RequestNamespace="http://Checkmarx.com/v7", ResponseNamespace="http://Checkmarx.com/v7", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public CxWSBasicRepsonse IsValidProjectName(string SessionID, string ProjectName, string GroupId) { + object[] results = this.Invoke("IsValidProjectName", new object[] { + SessionID, + ProjectName, + GroupId}); + return ((CxWSBasicRepsonse)(results[0])); + } + + /// + public void IsValidProjectNameAsync(string SessionID, string ProjectName, string GroupId) { + this.IsValidProjectNameAsync(SessionID, ProjectName, GroupId, null); + } + + /// + public void IsValidProjectNameAsync(string SessionID, string ProjectName, string GroupId, object userState) { + if ((this.IsValidProjectNameOperationCompleted == null)) { + this.IsValidProjectNameOperationCompleted = new System.Threading.SendOrPostCallback(this.OnIsValidProjectNameOperationCompleted); + } + this.InvokeAsync("IsValidProjectName", new object[] { + SessionID, + ProjectName, + GroupId}, this.IsValidProjectNameOperationCompleted, userState); + } + + private void OnIsValidProjectNameOperationCompleted(object arg) { + if ((this.IsValidProjectNameCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.IsValidProjectNameCompleted(this, new IsValidProjectNameCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://Checkmarx.com/v7/GetAssociatedGroupsList", RequestNamespace="http://Checkmarx.com/v7", ResponseNamespace="http://Checkmarx.com/v7", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public CxWSResponseGroupList GetAssociatedGroupsList(string SessionID) { + object[] results = this.Invoke("GetAssociatedGroupsList", new object[] { + SessionID}); + return ((CxWSResponseGroupList)(results[0])); + } + + /// + public void GetAssociatedGroupsListAsync(string SessionID) { + this.GetAssociatedGroupsListAsync(SessionID, null); + } + + /// + public void GetAssociatedGroupsListAsync(string SessionID, object userState) { + if ((this.GetAssociatedGroupsListOperationCompleted == null)) { + this.GetAssociatedGroupsListOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetAssociatedGroupsListOperationCompleted); + } + this.InvokeAsync("GetAssociatedGroupsList", new object[] { + SessionID}, this.GetAssociatedGroupsListOperationCompleted, userState); + } + + private void OnGetAssociatedGroupsListOperationCompleted(object arg) { + if ((this.GetAssociatedGroupsListCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetAssociatedGroupsListCompleted(this, new GetAssociatedGroupsListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://Checkmarx.com/v7/GetConfigurationSetList", RequestNamespace="http://Checkmarx.com/v7", ResponseNamespace="http://Checkmarx.com/v7", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public CxWSResponseConfigSetList GetConfigurationSetList(string SessionID) { + object[] results = this.Invoke("GetConfigurationSetList", new object[] { + SessionID}); + return ((CxWSResponseConfigSetList)(results[0])); + } + + /// + public void GetConfigurationSetListAsync(string SessionID) { + this.GetConfigurationSetListAsync(SessionID, null); + } + + /// + public void GetConfigurationSetListAsync(string SessionID, object userState) { + if ((this.GetConfigurationSetListOperationCompleted == null)) { + this.GetConfigurationSetListOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetConfigurationSetListOperationCompleted); + } + this.InvokeAsync("GetConfigurationSetList", new object[] { + SessionID}, this.GetConfigurationSetListOperationCompleted, userState); + } + + private void OnGetConfigurationSetListOperationCompleted(object arg) { + if ((this.GetConfigurationSetListCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetConfigurationSetListCompleted(this, new GetConfigurationSetListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://Checkmarx.com/v7/CancelScan", RequestNamespace="http://Checkmarx.com/v7", ResponseNamespace="http://Checkmarx.com/v7", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public CxWSBasicRepsonse CancelScan(string sessionID, string RunId) { + object[] results = this.Invoke("CancelScan", new object[] { + sessionID, + RunId}); + return ((CxWSBasicRepsonse)(results[0])); + } + + /// + public void CancelScanAsync(string sessionID, string RunId) { + this.CancelScanAsync(sessionID, RunId, null); + } + + /// + public void CancelScanAsync(string sessionID, string RunId, object userState) { + if ((this.CancelScanOperationCompleted == null)) { + this.CancelScanOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCancelScanOperationCompleted); + } + this.InvokeAsync("CancelScan", new object[] { + sessionID, + RunId}, this.CancelScanOperationCompleted, userState); + } + + private void OnCancelScanOperationCompleted(object arg) { + if ((this.CancelScanCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.CancelScanCompleted(this, new CancelScanCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://Checkmarx.com/v7/GetStatusOfSingleScan", RequestNamespace="http://Checkmarx.com/v7", ResponseNamespace="http://Checkmarx.com/v7", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public CxWSResponseScanStatus GetStatusOfSingleScan(string sessionID, string runId) { + object[] results = this.Invoke("GetStatusOfSingleScan", new object[] { + sessionID, + runId}); + return ((CxWSResponseScanStatus)(results[0])); + } + + /// + public void GetStatusOfSingleScanAsync(string sessionID, string runId) { + this.GetStatusOfSingleScanAsync(sessionID, runId, null); + } + + /// + public void GetStatusOfSingleScanAsync(string sessionID, string runId, object userState) { + if ((this.GetStatusOfSingleScanOperationCompleted == null)) { + this.GetStatusOfSingleScanOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetStatusOfSingleScanOperationCompleted); + } + this.InvokeAsync("GetStatusOfSingleScan", new object[] { + sessionID, + runId}, this.GetStatusOfSingleScanOperationCompleted, userState); + } + + private void OnGetStatusOfSingleScanOperationCompleted(object arg) { + if ((this.GetStatusOfSingleScanCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetStatusOfSingleScanCompleted(this, new GetStatusOfSingleScanCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://Checkmarx.com/v7/CreateScanReport", RequestNamespace="http://Checkmarx.com/v7", ResponseNamespace="http://Checkmarx.com/v7", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public CxWSCreateReportResponse CreateScanReport(string sessionID, CxWSReportRequest reportRequest) { + object[] results = this.Invoke("CreateScanReport", new object[] { + sessionID, + reportRequest}); + return ((CxWSCreateReportResponse)(results[0])); + } + + /// + public void CreateScanReportAsync(string sessionID, CxWSReportRequest reportRequest) { + this.CreateScanReportAsync(sessionID, reportRequest, null); + } + + /// + public void CreateScanReportAsync(string sessionID, CxWSReportRequest reportRequest, object userState) { + if ((this.CreateScanReportOperationCompleted == null)) { + this.CreateScanReportOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCreateScanReportOperationCompleted); + } + this.InvokeAsync("CreateScanReport", new object[] { + sessionID, + reportRequest}, this.CreateScanReportOperationCompleted, userState); + } + + private void OnCreateScanReportOperationCompleted(object arg) { + if ((this.CreateScanReportCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.CreateScanReportCompleted(this, new CreateScanReportCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://Checkmarx.com/v7/GetScanReportStatus", RequestNamespace="http://Checkmarx.com/v7", ResponseNamespace="http://Checkmarx.com/v7", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public CxWSReportStatusResponse GetScanReportStatus(string SessionID, long ReportID) { + object[] results = this.Invoke("GetScanReportStatus", new object[] { + SessionID, + ReportID}); + return ((CxWSReportStatusResponse)(results[0])); + } + + /// + public void GetScanReportStatusAsync(string SessionID, long ReportID) { + this.GetScanReportStatusAsync(SessionID, ReportID, null); + } + + /// + public void GetScanReportStatusAsync(string SessionID, long ReportID, object userState) { + if ((this.GetScanReportStatusOperationCompleted == null)) { + this.GetScanReportStatusOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetScanReportStatusOperationCompleted); + } + this.InvokeAsync("GetScanReportStatus", new object[] { + SessionID, + ReportID}, this.GetScanReportStatusOperationCompleted, userState); + } + + private void OnGetScanReportStatusOperationCompleted(object arg) { + if ((this.GetScanReportStatusCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetScanReportStatusCompleted(this, new GetScanReportStatusCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://Checkmarx.com/v7/GetScanReport", RequestNamespace="http://Checkmarx.com/v7", ResponseNamespace="http://Checkmarx.com/v7", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public CxWSResponseScanResults GetScanReport(string SessionID, long ReportID) { + object[] results = this.Invoke("GetScanReport", new object[] { + SessionID, + ReportID}); + return ((CxWSResponseScanResults)(results[0])); + } + + /// + public void GetScanReportAsync(string SessionID, long ReportID) { + this.GetScanReportAsync(SessionID, ReportID, null); + } + + /// + public void GetScanReportAsync(string SessionID, long ReportID, object userState) { + if ((this.GetScanReportOperationCompleted == null)) { + this.GetScanReportOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetScanReportOperationCompleted); + } + this.InvokeAsync("GetScanReport", new object[] { + SessionID, + ReportID}, this.GetScanReportOperationCompleted, userState); + } + + private void OnGetScanReportOperationCompleted(object arg) { + if ((this.GetScanReportCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetScanReportCompleted(this, new GetScanReportCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://Checkmarx.com/v7/GetQueriesForScanByRunId", RequestNamespace="http://Checkmarx.com/v7", ResponseNamespace="http://Checkmarx.com/v7", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public CxWSResponceQuerisForScanAndId GetQueriesForScanByRunId(string sessionID, string runId) { + object[] results = this.Invoke("GetQueriesForScanByRunId", new object[] { + sessionID, + runId}); + return ((CxWSResponceQuerisForScanAndId)(results[0])); + } + + /// + public void GetQueriesForScanByRunIdAsync(string sessionID, string runId) { + this.GetQueriesForScanByRunIdAsync(sessionID, runId, null); + } + + /// + public void GetQueriesForScanByRunIdAsync(string sessionID, string runId, object userState) { + if ((this.GetQueriesForScanByRunIdOperationCompleted == null)) { + this.GetQueriesForScanByRunIdOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetQueriesForScanByRunIdOperationCompleted); + } + this.InvokeAsync("GetQueriesForScanByRunId", new object[] { + sessionID, + runId}, this.GetQueriesForScanByRunIdOperationCompleted, userState); + } + + private void OnGetQueriesForScanByRunIdOperationCompleted(object arg) { + if ((this.GetQueriesForScanByRunIdCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetQueriesForScanByRunIdCompleted(this, new GetQueriesForScanByRunIdCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://Checkmarx.com/v7/GetScanXMLReportStatus", RequestNamespace="http://Checkmarx.com/v7", ResponseNamespace="http://Checkmarx.com/v7", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public CXWSResponseScanReportStatus GetScanXMLReportStatus(string sessionID, long scanID) { + object[] results = this.Invoke("GetScanXMLReportStatus", new object[] { + sessionID, + scanID}); + return ((CXWSResponseScanReportStatus)(results[0])); + } + + /// + public void GetScanXMLReportStatusAsync(string sessionID, long scanID) { + this.GetScanXMLReportStatusAsync(sessionID, scanID, null); + } + + /// + public void GetScanXMLReportStatusAsync(string sessionID, long scanID, object userState) { + if ((this.GetScanXMLReportStatusOperationCompleted == null)) { + this.GetScanXMLReportStatusOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetScanXMLReportStatusOperationCompleted); + } + this.InvokeAsync("GetScanXMLReportStatus", new object[] { + sessionID, + scanID}, this.GetScanXMLReportStatusOperationCompleted, userState); + } + + private void OnGetScanXMLReportStatusOperationCompleted(object arg) { + if ((this.GetScanXMLReportStatusCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetScanXMLReportStatusCompleted(this, new GetScanXMLReportStatusCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://Checkmarx.com/v7/GetResultPathsForQuery", RequestNamespace="http://Checkmarx.com/v7", ResponseNamespace="http://Checkmarx.com/v7", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public CxWSResponseResultPaths GetResultPathsForQuery(string sessionId, long scanId, long queryId) { + object[] results = this.Invoke("GetResultPathsForQuery", new object[] { + sessionId, + scanId, + queryId}); + return ((CxWSResponseResultPaths)(results[0])); + } + + /// + public void GetResultPathsForQueryAsync(string sessionId, long scanId, long queryId) { + this.GetResultPathsForQueryAsync(sessionId, scanId, queryId, null); + } + + /// + public void GetResultPathsForQueryAsync(string sessionId, long scanId, long queryId, object userState) { + if ((this.GetResultPathsForQueryOperationCompleted == null)) { + this.GetResultPathsForQueryOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetResultPathsForQueryOperationCompleted); + } + this.InvokeAsync("GetResultPathsForQuery", new object[] { + sessionId, + scanId, + queryId}, this.GetResultPathsForQueryOperationCompleted, userState); + } + + private void OnGetResultPathsForQueryOperationCompleted(object arg) { + if ((this.GetResultPathsForQueryCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetResultPathsForQueryCompleted(this, new GetResultPathsForQueryCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://Checkmarx.com/v7/GetProjectAssignUsers", RequestNamespace="http://Checkmarx.com/v7", ResponseNamespace="http://Checkmarx.com/v7", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public CxWSResponseUserData GetProjectAssignUsers(string sessionID, long projectId) { + object[] results = this.Invoke("GetProjectAssignUsers", new object[] { + sessionID, + projectId}); + return ((CxWSResponseUserData)(results[0])); + } + + /// + public void GetProjectAssignUsersAsync(string sessionID, long projectId) { + this.GetProjectAssignUsersAsync(sessionID, projectId, null); + } + + /// + public void GetProjectAssignUsersAsync(string sessionID, long projectId, object userState) { + if ((this.GetProjectAssignUsersOperationCompleted == null)) { + this.GetProjectAssignUsersOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetProjectAssignUsersOperationCompleted); + } + this.InvokeAsync("GetProjectAssignUsers", new object[] { + sessionID, + projectId}, this.GetProjectAssignUsersOperationCompleted, userState); + } + + private void OnGetProjectAssignUsersOperationCompleted(object arg) { + if ((this.GetProjectAssignUsersCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetProjectAssignUsersCompleted(this, new GetProjectAssignUsersCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://Checkmarx.com/v7/GetProjectAssignUsersList", RequestNamespace="http://Checkmarx.com/v7", ResponseNamespace="http://Checkmarx.com/v7", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public CxWSResponseAssignUsers GetProjectAssignUsersList(string sessionID, long projectId) { + object[] results = this.Invoke("GetProjectAssignUsersList", new object[] { + sessionID, + projectId}); + return ((CxWSResponseAssignUsers)(results[0])); + } + + /// + public void GetProjectAssignUsersListAsync(string sessionID, long projectId) { + this.GetProjectAssignUsersListAsync(sessionID, projectId, null); + } + + /// + public void GetProjectAssignUsersListAsync(string sessionID, long projectId, object userState) { + if ((this.GetProjectAssignUsersListOperationCompleted == null)) { + this.GetProjectAssignUsersListOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetProjectAssignUsersListOperationCompleted); + } + this.InvokeAsync("GetProjectAssignUsersList", new object[] { + sessionID, + projectId}, this.GetProjectAssignUsersListOperationCompleted, userState); + } + + private void OnGetProjectAssignUsersListOperationCompleted(object arg) { + if ((this.GetProjectAssignUsersListCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetProjectAssignUsersListCompleted(this, new GetProjectAssignUsersListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://Checkmarx.com/v7/CreateScanXMLReport", RequestNamespace="http://Checkmarx.com/v7", ResponseNamespace="http://Checkmarx.com/v7", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public CxWSBasicRepsonse CreateScanXMLReport(string sessionID, long scanID) { + object[] results = this.Invoke("CreateScanXMLReport", new object[] { + sessionID, + scanID}); + return ((CxWSBasicRepsonse)(results[0])); + } + + /// + public void CreateScanXMLReportAsync(string sessionID, long scanID) { + this.CreateScanXMLReportAsync(sessionID, scanID, null); + } + + /// + public void CreateScanXMLReportAsync(string sessionID, long scanID, object userState) { + if ((this.CreateScanXMLReportOperationCompleted == null)) { + this.CreateScanXMLReportOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCreateScanXMLReportOperationCompleted); + } + this.InvokeAsync("CreateScanXMLReport", new object[] { + sessionID, + scanID}, this.CreateScanXMLReportOperationCompleted, userState); + } + + private void OnCreateScanXMLReportOperationCompleted(object arg) { + if ((this.CreateScanXMLReportCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.CreateScanXMLReportCompleted(this, new CreateScanXMLReportCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://Checkmarx.com/v7/GetScanXMLReport", RequestNamespace="http://Checkmarx.com/v7", ResponseNamespace="http://Checkmarx.com/v7", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public CxWSResponseScanResults GetScanXMLReport(string sessionID, long scanID) { + object[] results = this.Invoke("GetScanXMLReport", new object[] { + sessionID, + scanID}); + return ((CxWSResponseScanResults)(results[0])); + } + + /// + public void GetScanXMLReportAsync(string sessionID, long scanID) { + this.GetScanXMLReportAsync(sessionID, scanID, null); + } + + /// + public void GetScanXMLReportAsync(string sessionID, long scanID, object userState) { + if ((this.GetScanXMLReportOperationCompleted == null)) { + this.GetScanXMLReportOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetScanXMLReportOperationCompleted); + } + this.InvokeAsync("GetScanXMLReport", new object[] { + sessionID, + scanID}, this.GetScanXMLReportOperationCompleted, userState); + } + + private void OnGetScanXMLReportOperationCompleted(object arg) { + if ((this.GetScanXMLReportCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetScanXMLReportCompleted(this, new GetScanXMLReportCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + public new void CancelAsync(object userState) { + base.CancelAsync(userState); + } + + private bool IsLocalFileSystemWebService(string url) { + if (((url == null) + || (url == string.Empty))) { + return false; + } + System.Uri wsUri = new System.Uri(url); + if (((wsUri.Port >= 1024) + && (string.Compare(wsUri.Host, "localHost", System.StringComparison.OrdinalIgnoreCase) == 0))) { + return true; + } + return false; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class Credentials { + + private string userField; + + private string passField; + + /// + public string User { + get { + return this.userField; + } + set { + this.userField = value; + } + } + + /// + public string Pass { + get { + return this.passField; + } + set { + this.passField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class AssignUser { + + private long idField; + + private string userNameField; + + private string firstNameField; + + private string lastNameField; + + private string emailField; + + private int userPreferedLanguageLCIDField; + + /// + public long Id { + get { + return this.idField; + } + set { + this.idField = value; + } + } + + /// + public string UserName { + get { + return this.userNameField; + } + set { + this.userNameField = value; + } + } + + /// + public string FirstName { + get { + return this.firstNameField; + } + set { + this.firstNameField = value; + } + } + + /// + public string LastName { + get { + return this.lastNameField; + } + set { + this.lastNameField = value; + } + } + + /// + public string Email { + get { + return this.emailField; + } + set { + this.emailField = value; + } + } + + /// + public int UserPreferedLanguageLCID { + get { + return this.userPreferedLanguageLCIDField; + } + set { + this.userPreferedLanguageLCIDField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class CxWSReportRequest { + + private CxWSReportType typeField; + + private long scanIDField; + + /// + public CxWSReportType Type { + get { + return this.typeField; + } + set { + this.typeField = value; + } + } + + /// + public long ScanID { + get { + return this.scanIDField; + } + set { + this.scanIDField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public enum CxWSReportType { + + /// + PDF, + + /// + RTF, + + /// + CSV, + + /// + XML, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class ConfigurationSet { + + private string configSetNameField; + + private long idField; + + /// + public string ConfigSetName { + get { + return this.configSetNameField; + } + set { + this.configSetNameField = value; + } + } + + /// + public long ID { + get { + return this.idField; + } + set { + this.idField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class ResultStateData { + + private long scanIdField; + + private long pathIdField; + + private long projectIdField; + + private string remarksField; + + private int resultLabelTypeField; + + private string dataField; + + /// + public long scanId { + get { + return this.scanIdField; + } + set { + this.scanIdField = value; + } + } + + /// + public long PathId { + get { + return this.pathIdField; + } + set { + this.pathIdField = value; + } + } + + /// + public long projectId { + get { + return this.projectIdField; + } + set { + this.projectIdField = value; + } + } + + /// + public string Remarks { + get { + return this.remarksField; + } + set { + this.remarksField = value; + } + } + + /// + public int ResultLabelType { + get { + return this.resultLabelTypeField; + } + set { + this.resultLabelTypeField = value; + } + } + + /// + public string data { + get { + return this.dataField; + } + set { + this.dataField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class Group { + + private string groupNameField; + + private string idField; + + private GroupType typeField; + + private string guidField; + + private string fullPathField; + + private string pathField; + + /// + public string GroupName { + get { + return this.groupNameField; + } + set { + this.groupNameField = value; + } + } + + /// + public string ID { + get { + return this.idField; + } + set { + this.idField = value; + } + } + + /// + public GroupType Type { + get { + return this.typeField; + } + set { + this.typeField = value; + } + } + + /// + public string Guid { + get { + return this.guidField; + } + set { + this.guidField = value; + } + } + + /// + public string FullPath { + get { + return this.fullPathField; + } + set { + this.fullPathField = value; + } + } + + /// + public string Path { + get { + return this.pathField; + } + set { + this.pathField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public enum GroupType { + + /// + Team, + + /// + Company, + + /// + SP, + + /// + Server, + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(UserData))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class WebClientUser { + + private long idField; + + private string firstNameField; + + private string lastNameField; + + private int userPreferedLanguageLCIDField; + + private string passwordField; + + private string jobTitleField; + + private string emailField; + + private string userNameField; + + private string uPNField; + + private string phoneField; + + private string cellPhoneField; + + private string skypeField; + + private string companyIDField; + + private string companyNameField; + + private string willExpireAfterDaysField; + + private string countryField; + + private System.DateTime dateCreatedField; + + private bool auditUserField; + + private Group[] groupListField; + + private System.DateTime lastLoginDateField; + + private bool limitAccessByIPAddressField; + + private string[] allowedIPsField; + + /// + public long ID { + get { + return this.idField; + } + set { + this.idField = value; + } + } + + /// + public string FirstName { + get { + return this.firstNameField; + } + set { + this.firstNameField = value; + } + } + + /// + public string LastName { + get { + return this.lastNameField; + } + set { + this.lastNameField = value; + } + } + + /// + public int UserPreferedLanguageLCID { + get { + return this.userPreferedLanguageLCIDField; + } + set { + this.userPreferedLanguageLCIDField = value; + } + } + + /// + public string Password { + get { + return this.passwordField; + } + set { + this.passwordField = value; + } + } + + /// + public string JobTitle { + get { + return this.jobTitleField; + } + set { + this.jobTitleField = value; + } + } + + /// + public string Email { + get { + return this.emailField; + } + set { + this.emailField = value; + } + } + + /// + public string UserName { + get { + return this.userNameField; + } + set { + this.userNameField = value; + } + } + + /// + public string UPN { + get { + return this.uPNField; + } + set { + this.uPNField = value; + } + } + + /// + public string Phone { + get { + return this.phoneField; + } + set { + this.phoneField = value; + } + } + + /// + public string CellPhone { + get { + return this.cellPhoneField; + } + set { + this.cellPhoneField = value; + } + } + + /// + public string Skype { + get { + return this.skypeField; + } + set { + this.skypeField = value; + } + } + + /// + public string CompanyID { + get { + return this.companyIDField; + } + set { + this.companyIDField = value; + } + } + + /// + public string CompanyName { + get { + return this.companyNameField; + } + set { + this.companyNameField = value; + } + } + + /// + public string willExpireAfterDays { + get { + return this.willExpireAfterDaysField; + } + set { + this.willExpireAfterDaysField = value; + } + } + + /// + public string country { + get { + return this.countryField; + } + set { + this.countryField = value; + } + } + + /// + public System.DateTime DateCreated { + get { + return this.dateCreatedField; + } + set { + this.dateCreatedField = value; + } + } + + /// + public bool AuditUser { + get { + return this.auditUserField; + } + set { + this.auditUserField = value; + } + } + + /// + public Group[] GroupList { + get { + return this.groupListField; + } + set { + this.groupListField = value; + } + } + + /// + public System.DateTime LastLoginDate { + get { + return this.lastLoginDateField; + } + set { + this.lastLoginDateField = value; + } + } + + /// + public bool LimitAccessByIPAddress { + get { + return this.limitAccessByIPAddressField; + } + set { + this.limitAccessByIPAddressField = value; + } + } + + /// + public string[] AllowedIPs { + get { + return this.allowedIPsField; + } + set { + this.allowedIPsField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class UserData : WebClientUser { + + private bool isActiveField; + + private Role roleDataField; + + /// + public bool IsActive { + get { + return this.isActiveField; + } + set { + this.isActiveField = value; + } + } + + /// + public Role RoleData { + get { + return this.roleDataField; + } + set { + this.roleDataField = value; + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(CxWSRoleWithUserPrivileges))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class Role { + + private string nameField; + + private string idField; + + /// + public string Name { + get { + return this.nameField; + } + set { + this.nameField = value; + } + } + + /// + public string ID { + get { + return this.idField; + } + set { + this.idField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class CxWSRoleWithUserPrivileges : Role { + + private CxWSItemAndCRUD[] itemsCRUDField; + + /// + public CxWSItemAndCRUD[] ItemsCRUD { + get { + return this.itemsCRUDField; + } + set { + this.itemsCRUDField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class CxWSItemAndCRUD { + + private CxWSItemTypeEnum typeField; + + private CxWSEnableCRUDAction[] cRUDActionListField; + + /// + public CxWSItemTypeEnum Type { + get { + return this.typeField; + } + set { + this.typeField = value; + } + } + + /// + public CxWSEnableCRUDAction[] CRUDActionList { + get { + return this.cRUDActionListField; + } + set { + this.cRUDActionListField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public enum CxWSItemTypeEnum { + + /// + Project, + + /// + Task, + + /// + Scan, + + /// + Preset, + + /// + Configuration, + + /// + Users, + + /// + Roles, + + /// + Other, + + /// + SystemSettings, + + /// + Ignore_Path, + + /// + ResultComment, + + /// + ResultSeverity, + + /// + ResultStatus, + + /// + AuditUser, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class CxWSEnableCRUDAction { + + private CxWSCrudEnum typeField; + + private bool enableField; + + /// + public CxWSCrudEnum Type { + get { + return this.typeField; + } + set { + this.typeField = value; + } + } + + /// + public bool Enable { + get { + return this.enableField; + } + set { + this.enableField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public enum CxWSCrudEnum { + + /// + Create, + + /// + Delete, + + /// + Update, + + /// + View, + + /// + Run, + + /// + Investigate, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class ResultState { + + private string resultNameField; + + private long resultIDField; + + /// + public string ResultName { + get { + return this.resultNameField; + } + set { + this.resultNameField = value; + } + } + + /// + public long ResultID { + get { + return this.resultIDField; + } + set { + this.resultIDField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class CxCategoryType { + + private long idField; + + private string nameField; + + private int orderField; + + /// + public long Id { + get { + return this.idField; + } + set { + this.idField = value; + } + } + + /// + public string Name { + get { + return this.nameField; + } + set { + this.nameField = value; + } + } + + /// + public int Order { + get { + return this.orderField; + } + set { + this.orderField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class CxQueryCategory { + + private long idField; + + private string categoryNameField; + + private CxCategoryType categoryTypeField; + + /// + public long Id { + get { + return this.idField; + } + set { + this.idField = value; + } + } + + /// + public string CategoryName { + get { + return this.categoryNameField; + } + set { + this.categoryNameField = value; + } + } + + /// + public CxCategoryType CategoryType { + get { + return this.categoryTypeField; + } + set { + this.categoryTypeField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class CxWSQueryVulnerabilityData { + + private CxQueryCategory[] categoriesField; + + private long queryIdField; + + private string queryNameField; + + private long groupIdField; + + private string groupNameField; + + private int severityField; + + private long cWEField; + + private int amountOfResultsField; + + private string languageNameField; + + private long queryVersionCodeField; + + /// + public CxQueryCategory[] Categories { + get { + return this.categoriesField; + } + set { + this.categoriesField = value; + } + } + + /// + public long QueryId { + get { + return this.queryIdField; + } + set { + this.queryIdField = value; + } + } + + /// + public string QueryName { + get { + return this.queryNameField; + } + set { + this.queryNameField = value; + } + } + + /// + public long GroupId { + get { + return this.groupIdField; + } + set { + this.groupIdField = value; + } + } + + /// + public string GroupName { + get { + return this.groupNameField; + } + set { + this.groupNameField = value; + } + } + + /// + public int Severity { + get { + return this.severityField; + } + set { + this.severityField = value; + } + } + + /// + public long CWE { + get { + return this.cWEField; + } + set { + this.cWEField = value; + } + } + + /// + public int AmountOfResults { + get { + return this.amountOfResultsField; + } + set { + this.amountOfResultsField = value; + } + } + + /// + public string LanguageName { + get { + return this.languageNameField; + } + set { + this.languageNameField = value; + } + } + + /// + public long QueryVersionCode { + get { + return this.queryVersionCodeField; + } + set { + this.queryVersionCodeField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class ScanDisplayData { + + private long scanIDField; + + private bool isAllowedToDeleteField; + + private CxDateTime queuedDateTimeField; + + private int riskLevelScoreField; + + private CxDateTime finishedDateTimeField; + + private long projectIdField; + + private string projectNameField; + + private string initiatorNameField; + + private string teamNameField; + + private bool isIncrementalField; + + private string cxVersionField; + + private long lOCField; + + private int highSeverityResultsField; + + private int mediumSeverityResultsField; + + private int lowSeverityResultsField; + + private string commentsField; + + private ScanType scanDisplayTypeField; + + private string serverNameField; + + private string originField; + + private string failedLOCField; + + private CxDateTime statisticsCalculationDateField; + + private bool isPublicField; + + private bool isLockedField; + + /// + public long ScanID { + get { + return this.scanIDField; + } + set { + this.scanIDField = value; + } + } + + /// + public bool IsAllowedToDelete { + get { + return this.isAllowedToDeleteField; + } + set { + this.isAllowedToDeleteField = value; + } + } + + /// + public CxDateTime QueuedDateTime { + get { + return this.queuedDateTimeField; + } + set { + this.queuedDateTimeField = value; + } + } + + /// + public int RiskLevelScore { + get { + return this.riskLevelScoreField; + } + set { + this.riskLevelScoreField = value; + } + } + + /// + public CxDateTime FinishedDateTime { + get { + return this.finishedDateTimeField; + } + set { + this.finishedDateTimeField = value; + } + } + + /// + public long ProjectId { + get { + return this.projectIdField; + } + set { + this.projectIdField = value; + } + } + + /// + public string ProjectName { + get { + return this.projectNameField; + } + set { + this.projectNameField = value; + } + } + + /// + public string InitiatorName { + get { + return this.initiatorNameField; + } + set { + this.initiatorNameField = value; + } + } + + /// + public string TeamName { + get { + return this.teamNameField; + } + set { + this.teamNameField = value; + } + } + + /// + public bool IsIncremental { + get { + return this.isIncrementalField; + } + set { + this.isIncrementalField = value; + } + } + + /// + public string CxVersion { + get { + return this.cxVersionField; + } + set { + this.cxVersionField = value; + } + } + + /// + public long LOC { + get { + return this.lOCField; + } + set { + this.lOCField = value; + } + } + + /// + public int HighSeverityResults { + get { + return this.highSeverityResultsField; + } + set { + this.highSeverityResultsField = value; + } + } + + /// + public int MediumSeverityResults { + get { + return this.mediumSeverityResultsField; + } + set { + this.mediumSeverityResultsField = value; + } + } + + /// + public int LowSeverityResults { + get { + return this.lowSeverityResultsField; + } + set { + this.lowSeverityResultsField = value; + } + } + + /// + public string Comments { + get { + return this.commentsField; + } + set { + this.commentsField = value; + } + } + + /// + public ScanType ScanDisplayType { + get { + return this.scanDisplayTypeField; + } + set { + this.scanDisplayTypeField = value; + } + } + + /// + public string ServerName { + get { + return this.serverNameField; + } + set { + this.serverNameField = value; + } + } + + /// + public string Origin { + get { + return this.originField; + } + set { + this.originField = value; + } + } + + /// + public string FailedLOC { + get { + return this.failedLOCField; + } + set { + this.failedLOCField = value; + } + } + + /// + public CxDateTime StatisticsCalculationDate { + get { + return this.statisticsCalculationDateField; + } + set { + this.statisticsCalculationDateField = value; + } + } + + /// + public bool IsPublic { + get { + return this.isPublicField; + } + set { + this.isPublicField = value; + } + } + + /// + public bool IsLocked { + get { + return this.isLockedField; + } + set { + this.isLockedField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class CxDateTime { + + private int hourField; + + private int minuteField; + + private int secondField; + + private int dayField; + + private int monthField; + + private int yearField; + + /// + public int Hour { + get { + return this.hourField; + } + set { + this.hourField = value; + } + } + + /// + public int Minute { + get { + return this.minuteField; + } + set { + this.minuteField = value; + } + } + + /// + public int Second { + get { + return this.secondField; + } + set { + this.secondField = value; + } + } + + /// + public int Day { + get { + return this.dayField; + } + set { + this.dayField = value; + } + } + + /// + public int Month { + get { + return this.monthField; + } + set { + this.monthField = value; + } + } + + /// + public int Year { + get { + return this.yearField; + } + set { + this.yearField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public enum ScanType { + + /// + UNKNOWN, + + /// + ALLSCANS, + + /// + REGULAR, + + /// + SUBSET, + + /// + PARTIAL, + + /// + RUNNING, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class ProjectDisplayData { + + private UserPermission permissionField; + + private long projectIDField; + + private string serviceProviderField; + + private string companyField; + + private string ownerField; + + private string projectNameField; + + private string groupField; + + private string presetField; + + private CxDateTime lastScanDateField; + + private int totalScansField; + + private bool isPublicField; + + private int totalOsaScansField; + + /// + public UserPermission Permission { + get { + return this.permissionField; + } + set { + this.permissionField = value; + } + } + + /// + public long projectID { + get { + return this.projectIDField; + } + set { + this.projectIDField = value; + } + } + + /// + public string ServiceProvider { + get { + return this.serviceProviderField; + } + set { + this.serviceProviderField = value; + } + } + + /// + public string Company { + get { + return this.companyField; + } + set { + this.companyField = value; + } + } + + /// + public string Owner { + get { + return this.ownerField; + } + set { + this.ownerField = value; + } + } + + /// + public string ProjectName { + get { + return this.projectNameField; + } + set { + this.projectNameField = value; + } + } + + /// + public string Group { + get { + return this.groupField; + } + set { + this.groupField = value; + } + } + + /// + public string Preset { + get { + return this.presetField; + } + set { + this.presetField = value; + } + } + + /// + public CxDateTime LastScanDate { + get { + return this.lastScanDateField; + } + set { + this.lastScanDateField = value; + } + } + + /// + public int TotalScans { + get { + return this.totalScansField; + } + set { + this.totalScansField = value; + } + } + + /// + public bool IsPublic { + get { + return this.isPublicField; + } + set { + this.isPublicField = value; + } + } + + /// + public int TotalOsaScans { + get { + return this.totalOsaScansField; + } + set { + this.totalOsaScansField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class UserPermission { + + private bool isAllowedToDeleteField; + + private bool isAllowedToDuplicateField; + + private bool isAllowedToRunField; + + private bool isAllowedToUpdateField; + + /// + public bool IsAllowedToDelete { + get { + return this.isAllowedToDeleteField; + } + set { + this.isAllowedToDeleteField = value; + } + } + + /// + public bool IsAllowedToDuplicate { + get { + return this.isAllowedToDuplicateField; + } + set { + this.isAllowedToDuplicateField = value; + } + } + + /// + public bool IsAllowedToRun { + get { + return this.isAllowedToRunField; + } + set { + this.isAllowedToRunField = value; + } + } + + /// + public bool IsAllowedToUpdate { + get { + return this.isAllowedToUpdateField; + } + set { + this.isAllowedToUpdateField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class CxWSPathNode { + + private int columnField; + + private string fullNameField; + + private string fileNameField; + + private int lengthField; + + private int lineField; + + private string nameField; + + private int dOM_IdField; + + private int methodLineField; + + private int pathNodeIdField; + + /// + public int Column { + get { + return this.columnField; + } + set { + this.columnField = value; + } + } + + /// + public string FullName { + get { + return this.fullNameField; + } + set { + this.fullNameField = value; + } + } + + /// + public string FileName { + get { + return this.fileNameField; + } + set { + this.fileNameField = value; + } + } + + /// + public int Length { + get { + return this.lengthField; + } + set { + this.lengthField = value; + } + } + + /// + public int Line { + get { + return this.lineField; + } + set { + this.lineField = value; + } + } + + /// + public string Name { + get { + return this.nameField; + } + set { + this.nameField = value; + } + } + + /// + public int DOM_Id { + get { + return this.dOM_IdField; + } + set { + this.dOM_IdField = value; + } + } + + /// + public int MethodLine { + get { + return this.methodLineField; + } + set { + this.methodLineField = value; + } + } + + /// + public int PathNodeId { + get { + return this.pathNodeIdField; + } + set { + this.pathNodeIdField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class CxWSResultPath { + + private long similarityIdField; + + private long pathIdField; + + private string commentField; + + private int stateField; + + private int severityField; + + private string assignedUserField; + + private CxWSPathNode[] nodesField; + + /// + public long SimilarityId { + get { + return this.similarityIdField; + } + set { + this.similarityIdField = value; + } + } + + /// + public long PathId { + get { + return this.pathIdField; + } + set { + this.pathIdField = value; + } + } + + /// + public string Comment { + get { + return this.commentField; + } + set { + this.commentField = value; + } + } + + /// + public int State { + get { + return this.stateField; + } + set { + this.stateField = value; + } + } + + /// + public int Severity { + get { + return this.severityField; + } + set { + this.severityField = value; + } + } + + /// + public string AssignedUser { + get { + return this.assignedUserField; + } + set { + this.assignedUserField = value; + } + } + + /// + public CxWSPathNode[] Nodes { + get { + return this.nodesField; + } + set { + this.nodesField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class CxWSSingleResultData { + + private long queryIdField; + + private long pathIdField; + + private string sourceFolderField; + + private string sourceFileField; + + private long sourceLineField; + + private string sourceObjectField; + + private string destFolderField; + + private string destFileField; + + private long destLineField; + + private string destObjectField; + + private string commentField; + + private int stateField; + + private int severityField; + + private string assignedUserField; + + private CompareStatusType resultStatusField; + + private string issueTicketIDField; + + private long queryVersionCodeField; + + /// + public long QueryId { + get { + return this.queryIdField; + } + set { + this.queryIdField = value; + } + } + + /// + public long PathId { + get { + return this.pathIdField; + } + set { + this.pathIdField = value; + } + } + + /// + public string SourceFolder { + get { + return this.sourceFolderField; + } + set { + this.sourceFolderField = value; + } + } + + /// + public string SourceFile { + get { + return this.sourceFileField; + } + set { + this.sourceFileField = value; + } + } + + /// + public long SourceLine { + get { + return this.sourceLineField; + } + set { + this.sourceLineField = value; + } + } + + /// + public string SourceObject { + get { + return this.sourceObjectField; + } + set { + this.sourceObjectField = value; + } + } + + /// + public string DestFolder { + get { + return this.destFolderField; + } + set { + this.destFolderField = value; + } + } + + /// + public string DestFile { + get { + return this.destFileField; + } + set { + this.destFileField = value; + } + } + + /// + public long DestLine { + get { + return this.destLineField; + } + set { + this.destLineField = value; + } + } + + /// + public string DestObject { + get { + return this.destObjectField; + } + set { + this.destObjectField = value; + } + } + + /// + public string Comment { + get { + return this.commentField; + } + set { + this.commentField = value; + } + } + + /// + public int State { + get { + return this.stateField; + } + set { + this.stateField = value; + } + } + + /// + public int Severity { + get { + return this.severityField; + } + set { + this.severityField = value; + } + } + + /// + public string AssignedUser { + get { + return this.assignedUserField; + } + set { + this.assignedUserField = value; + } + } + + /// + public CompareStatusType ResultStatus { + get { + return this.resultStatusField; + } + set { + this.resultStatusField = value; + } + } + + /// + public string IssueTicketID { + get { + return this.issueTicketIDField; + } + set { + this.issueTicketIDField = value; + } + } + + /// + public long QueryVersionCode { + get { + return this.queryVersionCodeField; + } + set { + this.queryVersionCodeField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="CxDataTypes.xsd")] + public enum CompareStatusType { + + /// + Fixed, + + /// + Reoccured, + + /// + New, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class DataRetentionSettings { + + private int numOfScansToKeepField; + + /// + public int NumOfScansToKeep { + get { + return this.numOfScansToKeepField; + } + set { + this.numOfScansToKeepField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class CxWSProjectCustomField { + + private long customFieldIdField; + + private string valueField; + + /// + public long CustomFieldId { + get { + return this.customFieldIdField; + } + set { + this.customFieldIdField = value; + } + } + + /// + public string Value { + get { + return this.valueField; + } + set { + this.valueField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class CxWSIssueTrackingParam { + + private string nameField; + + private object valueField; + + private string typeField; + + /// + public string Name { + get { + return this.nameField; + } + set { + this.nameField = value; + } + } + + /// + public object Value { + get { + return this.valueField; + } + set { + this.valueField = value; + } + } + + /// + public string Type { + get { + return this.typeField; + } + set { + this.typeField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class CxWSProjectIssueTrackingSettings { + + private long trackingSystemIDField; + + private CxWSIssueTrackingParam[] paramsField; + + /// + public long TrackingSystemID { + get { + return this.trackingSystemIDField; + } + set { + this.trackingSystemIDField = value; + } + } + + /// + public CxWSIssueTrackingParam[] Params { + get { + return this.paramsField; + } + set { + this.paramsField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class ScanAction { + + private string[] parametersField; + + private ScanEventType triggerField; + + private ScanActionType actionField; + + /// + public string[] Parameters { + get { + return this.parametersField; + } + set { + this.parametersField = value; + } + } + + /// + public ScanEventType Trigger { + get { + return this.triggerField; + } + set { + this.triggerField = value; + } + } + + /// + public ScanActionType Action { + get { + return this.actionField; + } + set { + this.actionField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public enum ScanEventType { + + /// + BeforeScanStarts, + + /// + AfterScanSucceeds, + + /// + OnScanFailure, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public enum ScanActionType { + + /// + EmailNotification, + + /// + PostScanAction, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class ScanActionSettings { + + private ScanAction[] scanActionListField; + + /// + public ScanAction[] ScanActionList { + get { + return this.scanActionListField; + } + set { + this.scanActionListField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class ScheduleSettings { + + private ScheduleType scheduleField; + + private DayOfWeek[] scheduledDaysField; + + private CxDateTime timeField; + + private CxDateTime startSchedulingPeriodField; + + private CxDateTime endSchedulingPeriodField; + + private int schedulingFrequencyField; + + /// + public ScheduleType Schedule { + get { + return this.scheduleField; + } + set { + this.scheduleField = value; + } + } + + /// + public DayOfWeek[] ScheduledDays { + get { + return this.scheduledDaysField; + } + set { + this.scheduledDaysField = value; + } + } + + /// + public CxDateTime Time { + get { + return this.timeField; + } + set { + this.timeField = value; + } + } + + /// + public CxDateTime StartSchedulingPeriod { + get { + return this.startSchedulingPeriodField; + } + set { + this.startSchedulingPeriodField = value; + } + } + + /// + public CxDateTime EndSchedulingPeriod { + get { + return this.endSchedulingPeriodField; + } + set { + this.endSchedulingPeriodField = value; + } + } + + /// + public int SchedulingFrequency { + get { + return this.schedulingFrequencyField; + } + set { + this.schedulingFrequencyField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public enum ScheduleType { + + /// + None, + + /// + Now, + + /// + Weekly, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public enum DayOfWeek { + + /// + Sunday, + + /// + Monday, + + /// + Tuesday, + + /// + Wednesday, + + /// + Thursday, + + /// + Friday, + + /// + Saturday, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class SourceFilterPatterns { + + private string excludeFilesPatternsField; + + private string excludeFoldersPatternsField; + + /// + public string ExcludeFilesPatterns { + get { + return this.excludeFilesPatternsField; + } + set { + this.excludeFilesPatternsField = value; + } + } + + /// + public string ExcludeFoldersPatterns { + get { + return this.excludeFoldersPatternsField; + } + set { + this.excludeFoldersPatternsField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class LocalCodeContainer { + + private byte[] zippedFileField; + + private string fileNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary")] + public byte[] ZippedFile { + get { + return this.zippedFileField; + } + set { + this.zippedFileField = value; + } + } + + /// + public string FileName { + get { + return this.fileNameField; + } + set { + this.fileNameField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class GitHubIntegrationSettings { + + private Credentials contributorCredentialsField; + + private Credentials ownerCredentialsField; + + private int eventsThresholdField; + + /// + public Credentials ContributorCredentials { + get { + return this.contributorCredentialsField; + } + set { + this.contributorCredentialsField = value; + } + } + + /// + public Credentials OwnerCredentials { + get { + return this.ownerCredentialsField; + } + set { + this.ownerCredentialsField = value; + } + } + + /// + public int EventsThreshold { + get { + return this.eventsThresholdField; + } + set { + this.eventsThresholdField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class SourceControlSettings { + + private int portField; + + private bool useSSLField; + + private bool useSSHField; + + private string serverNameField; + + private RepositoryType repositoryField; + + private Credentials userCredentialsField; + + private SourceControlProtocolType protocolField; + + private string repositoryNameField; + + private string protocolParametersField; + + private string gITBranchField; + + private GitLsRemoteViewType gitLsViewTypeField; + + private string sSHPublicKeyField; + + private string sSHPrivateKeyField; + + private GitHubIntegrationSettings gitHubSettingsField; + + private CxWSPerforceBrowsingMode perforceBrowsingModeField; + + /// + public int Port { + get { + return this.portField; + } + set { + this.portField = value; + } + } + + /// + public bool UseSSL { + get { + return this.useSSLField; + } + set { + this.useSSLField = value; + } + } + + /// + public bool UseSSH { + get { + return this.useSSHField; + } + set { + this.useSSHField = value; + } + } + + /// + public string ServerName { + get { + return this.serverNameField; + } + set { + this.serverNameField = value; + } + } + + /// + public RepositoryType Repository { + get { + return this.repositoryField; + } + set { + this.repositoryField = value; + } + } + + /// + public Credentials UserCredentials { + get { + return this.userCredentialsField; + } + set { + this.userCredentialsField = value; + } + } + + /// + public SourceControlProtocolType Protocol { + get { + return this.protocolField; + } + set { + this.protocolField = value; + } + } + + /// + public string RepositoryName { + get { + return this.repositoryNameField; + } + set { + this.repositoryNameField = value; + } + } + + /// + public string ProtocolParameters { + get { + return this.protocolParametersField; + } + set { + this.protocolParametersField = value; + } + } + + /// + public string GITBranch { + get { + return this.gITBranchField; + } + set { + this.gITBranchField = value; + } + } + + /// + public GitLsRemoteViewType GitLsViewType { + get { + return this.gitLsViewTypeField; + } + set { + this.gitLsViewTypeField = value; + } + } + + /// + public string SSHPublicKey { + get { + return this.sSHPublicKeyField; + } + set { + this.sSHPublicKeyField = value; + } + } + + /// + public string SSHPrivateKey { + get { + return this.sSHPrivateKeyField; + } + set { + this.sSHPrivateKeyField = value; + } + } + + /// + public GitHubIntegrationSettings GitHubSettings { + get { + return this.gitHubSettingsField; + } + set { + this.gitHubSettingsField = value; + } + } + + /// + public CxWSPerforceBrowsingMode PerforceBrowsingMode { + get { + return this.perforceBrowsingModeField; + } + set { + this.perforceBrowsingModeField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public enum RepositoryType { + + /// + TFS, + + /// + SVN, + + /// + CVS, + + /// + GIT, + + /// + Perforce, + + /// + NONE, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public enum SourceControlProtocolType { + + /// + WindowsAuthentication, + + /// + SSL, + + /// + SSH, + + /// + PasswordServer, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public enum GitLsRemoteViewType { + + /// + TAGS, + + /// + HEADS, + + /// + TAGS_AND_HEADS, + + /// + ALL, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public enum CxWSPerforceBrowsingMode { + + /// + None, + + /// + Depot, + + /// + Workspace, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class ScanPath { + + private string pathField; + + private bool includeSubTreeField; + + /// + public string Path { + get { + return this.pathField; + } + set { + this.pathField = value; + } + } + + /// + public bool IncludeSubTree { + get { + return this.includeSubTreeField; + } + set { + this.includeSubTreeField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class SourceCodeSettings { + + private SourceLocationType sourceOriginField; + + private Credentials userCredentialsField; + + private ScanPath[] pathListField; + + private SourceControlSettings sourceControlSettingField; + + private LocalCodeContainer packagedCodeField; + + private string sourcePullingActionField; + + private SourceFilterPatterns sourceFilterListsField; + + /// + public SourceLocationType SourceOrigin { + get { + return this.sourceOriginField; + } + set { + this.sourceOriginField = value; + } + } + + /// + public Credentials UserCredentials { + get { + return this.userCredentialsField; + } + set { + this.userCredentialsField = value; + } + } + + /// + public ScanPath[] PathList { + get { + return this.pathListField; + } + set { + this.pathListField = value; + } + } + + /// + public SourceControlSettings SourceControlSetting { + get { + return this.sourceControlSettingField; + } + set { + this.sourceControlSettingField = value; + } + } + + /// + public LocalCodeContainer PackagedCode { + get { + return this.packagedCodeField; + } + set { + this.packagedCodeField = value; + } + } + + /// + public string SourcePullingAction { + get { + return this.sourcePullingActionField; + } + set { + this.sourcePullingActionField = value; + } + } + + /// + public SourceFilterPatterns SourceFilterLists { + get { + return this.sourceFilterListsField; + } + set { + this.sourceFilterListsField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public enum SourceLocationType { + + /// + Local, + + /// + Shared, + + /// + SourceControl, + + /// + SourcePulling, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class ProjectSharedLocation { + + private string[] pathField; + + private Credentials credentialsField; + + /// + public string[] Path { + get { + return this.pathField; + } + set { + this.pathField = value; + } + } + + /// + public Credentials Credentials { + get { + return this.credentialsField; + } + set { + this.credentialsField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class ProjectSettings { + + private long projectIDField; + + private string projectNameField; + + private long presetIDField; + + private string associatedGroupIDField; + + private long scanConfigurationIDField; + + private string descriptionField; + + private string ownerField; + + private bool isPublicField; + + private ProjectSharedLocation openSourceSettingsField; + + private bool openSourceAnalysisEnabledField; + + private ProjectOrigin openSourceAnalysisOriginField; + + /// + public long projectID { + get { + return this.projectIDField; + } + set { + this.projectIDField = value; + } + } + + /// + public string ProjectName { + get { + return this.projectNameField; + } + set { + this.projectNameField = value; + } + } + + /// + public long PresetID { + get { + return this.presetIDField; + } + set { + this.presetIDField = value; + } + } + + /// + public string AssociatedGroupID { + get { + return this.associatedGroupIDField; + } + set { + this.associatedGroupIDField = value; + } + } + + /// + public long ScanConfigurationID { + get { + return this.scanConfigurationIDField; + } + set { + this.scanConfigurationIDField = value; + } + } + + /// + public string Description { + get { + return this.descriptionField; + } + set { + this.descriptionField = value; + } + } + + /// + public string Owner { + get { + return this.ownerField; + } + set { + this.ownerField = value; + } + } + + /// + public bool IsPublic { + get { + return this.isPublicField; + } + set { + this.isPublicField = value; + } + } + + /// + public ProjectSharedLocation OpenSourceSettings { + get { + return this.openSourceSettingsField; + } + set { + this.openSourceSettingsField = value; + } + } + + /// + public bool OpenSourceAnalysisEnabled { + get { + return this.openSourceAnalysisEnabledField; + } + set { + this.openSourceAnalysisEnabledField = value; + } + } + + /// + public ProjectOrigin OpenSourceAnalysisOrigin { + get { + return this.openSourceAnalysisOriginField; + } + set { + this.openSourceAnalysisOriginField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public enum ProjectOrigin { + + /// + LocalPath, + + /// + SharedPath, + + /// + TFS, + + /// + External, + + /// + SVN, + + /// + CVS, + + /// + GIT, + + /// + Perforce, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class ProjectConfiguration { + + private ProjectSettings projectSettingsField; + + private SourceCodeSettings sourceCodeSettingsField; + + private ScheduleSettings scheduleSettingsField; + + private ScanActionSettings scanActionSettingsField; + + private CxWSProjectIssueTrackingSettings projectIssueTrackingSettingsField; + + private CxWSProjectCustomField[] customFieldsField; + + private DataRetentionSettings dataRetentionSettingsField; + + /// + public ProjectSettings ProjectSettings { + get { + return this.projectSettingsField; + } + set { + this.projectSettingsField = value; + } + } + + /// + public SourceCodeSettings SourceCodeSettings { + get { + return this.sourceCodeSettingsField; + } + set { + this.sourceCodeSettingsField = value; + } + } + + /// + public ScheduleSettings ScheduleSettings { + get { + return this.scheduleSettingsField; + } + set { + this.scheduleSettingsField = value; + } + } + + /// + public ScanActionSettings ScanActionSettings { + get { + return this.scanActionSettingsField; + } + set { + this.scanActionSettingsField = value; + } + } + + /// + public CxWSProjectIssueTrackingSettings ProjectIssueTrackingSettings { + get { + return this.projectIssueTrackingSettingsField; + } + set { + this.projectIssueTrackingSettingsField = value; + } + } + + /// + public CxWSProjectCustomField[] CustomFields { + get { + return this.customFieldsField; + } + set { + this.customFieldsField = value; + } + } + + /// + public DataRetentionSettings DataRetentionSettings { + get { + return this.dataRetentionSettingsField; + } + set { + this.dataRetentionSettingsField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class Preset { + + private string presetNameField; + + private long idField; + + private string owningUserField; + + private bool isUserAllowToUpdateField; + + private bool isUserAllowToDeleteField; + + /// + public string PresetName { + get { + return this.presetNameField; + } + set { + this.presetNameField = value; + } + } + + /// + public long ID { + get { + return this.idField; + } + set { + this.idField = value; + } + } + + /// + public string owningUser { + get { + return this.owningUserField; + } + set { + this.owningUserField = value; + } + } + + /// + public bool isUserAllowToUpdate { + get { + return this.isUserAllowToUpdateField; + } + set { + this.isUserAllowToUpdateField = value; + } + } + + /// + public bool isUserAllowToDelete { + get { + return this.isUserAllowToDeleteField; + } + set { + this.isUserAllowToDeleteField = value; + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(CxWSResponseAssignUsers))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(CxWSResponseResultPaths))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(CXWSResponseScanReportStatus))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(CxWSResponceQuerisForScanAndId))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(CxWSResponseScanResults))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(CxWSReportStatusResponse))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(CxWSCreateReportResponse))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(CxWSResponseConfigSetList))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(CxWSResponseGroupList))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(CxWSResponseScanStatusArray))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(CxWSResponseUserData))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(CxWSResponseResultStateList))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(CxWSResponceQuerisForScan))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(CxWSResponseScansDisplayData))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(CxWSResponseProjectsDisplayData))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(CxWSResponceResultPath))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(CxWSResponceScanResults))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(CxWSResponseRunID))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(CxWSResponseScanStatus))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(CxWSResponseProjectConfig))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(CxWSResponsePresetList))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(CxWSResponseQueryDescription))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(CxWSResponseSessionID))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(CxWSResponseLoginData))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class CxWSBasicRepsonse { + + private bool isSuccesfullField; + + private string errorMessageField; + + /// + public bool IsSuccesfull { + get { + return this.isSuccesfullField; + } + set { + this.isSuccesfullField = value; + } + } + + /// + public string ErrorMessage { + get { + return this.errorMessageField; + } + set { + this.errorMessageField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class CxWSResponseAssignUsers : CxWSBasicRepsonse { + + private AssignUser[] assignUsersField; + + /// + public AssignUser[] AssignUsers { + get { + return this.assignUsersField; + } + set { + this.assignUsersField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class CxWSResponseResultPaths : CxWSBasicRepsonse { + + private CxWSResultPath[] pathsField; + + /// + public CxWSResultPath[] Paths { + get { + return this.pathsField; + } + set { + this.pathsField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class CXWSResponseScanReportStatus : CxWSBasicRepsonse { + + private bool scanReportReadyField; + + /// + public bool scanReportReady { + get { + return this.scanReportReadyField; + } + set { + this.scanReportReadyField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class CxWSResponceQuerisForScanAndId : CxWSBasicRepsonse { + + private CxWSQueryVulnerabilityData[] queriesField; + + private long scanIdField; + + /// + public CxWSQueryVulnerabilityData[] Queries { + get { + return this.queriesField; + } + set { + this.queriesField = value; + } + } + + /// + public long scanId { + get { + return this.scanIdField; + } + set { + this.scanIdField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class CxWSResponseScanResults : CxWSBasicRepsonse { + + private byte[] scanResultsField; + + private bool containsAllResultsField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary")] + public byte[] ScanResults { + get { + return this.scanResultsField; + } + set { + this.scanResultsField = value; + } + } + + /// + public bool containsAllResults { + get { + return this.containsAllResultsField; + } + set { + this.containsAllResultsField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class CxWSReportStatusResponse : CxWSBasicRepsonse { + + private bool isReadyField; + + private bool isFailedField; + + /// + public bool IsReady { + get { + return this.isReadyField; + } + set { + this.isReadyField = value; + } + } + + /// + public bool IsFailed { + get { + return this.isFailedField; + } + set { + this.isFailedField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class CxWSCreateReportResponse : CxWSBasicRepsonse { + + private long idField; + + /// + public long ID { + get { + return this.idField; + } + set { + this.idField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class CxWSResponseConfigSetList : CxWSBasicRepsonse { + + private ConfigurationSet[] configSetListField; + + /// + public ConfigurationSet[] ConfigSetList { + get { + return this.configSetListField; + } + set { + this.configSetListField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class CxWSResponseGroupList : CxWSBasicRepsonse { + + private Group[] groupListField; + + /// + public Group[] GroupList { + get { + return this.groupListField; + } + set { + this.groupListField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class CxWSResponseScanStatusArray : CxWSBasicRepsonse { + + private CxWSResponseScanStatus[] statusArrField; + + /// + public CxWSResponseScanStatus[] statusArr { + get { + return this.statusArrField; + } + set { + this.statusArrField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class CxWSResponseScanStatus : CxWSBasicRepsonse { + + private int currentStageField; + + private int queuePositionField; + + private int totalPercentField; + + private int currentStagePercentField; + + private string ownerField; + + private string stageNameField; + + private string stageMessageField; + + private string stepMessageField; + + private string stepDetailsField; + + private long resultIdField; + + private long scanIdField; + + private long projectIdField; + + private long taskIdField; + + private string taskNameField; + + private string projectNameField; + + private string runIdField; + + private string sourceIdField; + + private long lOCField; + + private CxDateTime timeScheduledField; + + private CxDateTime elapsedTimeField; + + private CxDateTime timeFinishedField; + + private CxDateTime timeBeginWorkingField; + + private CurrentStatusEnum currentStatusField; + + private string serverNameField; + + private string originField; + + private bool isPublicField; + + private bool partialResultsField; + + /// + public int CurrentStage { + get { + return this.currentStageField; + } + set { + this.currentStageField = value; + } + } + + /// + public int QueuePosition { + get { + return this.queuePositionField; + } + set { + this.queuePositionField = value; + } + } + + /// + public int TotalPercent { + get { + return this.totalPercentField; + } + set { + this.totalPercentField = value; + } + } + + /// + public int CurrentStagePercent { + get { + return this.currentStagePercentField; + } + set { + this.currentStagePercentField = value; + } + } + + /// + public string Owner { + get { + return this.ownerField; + } + set { + this.ownerField = value; + } + } + + /// + public string StageName { + get { + return this.stageNameField; + } + set { + this.stageNameField = value; + } + } + + /// + public string StageMessage { + get { + return this.stageMessageField; + } + set { + this.stageMessageField = value; + } + } + + /// + public string StepMessage { + get { + return this.stepMessageField; + } + set { + this.stepMessageField = value; + } + } + + /// + public string StepDetails { + get { + return this.stepDetailsField; + } + set { + this.stepDetailsField = value; + } + } + + /// + public long ResultId { + get { + return this.resultIdField; + } + set { + this.resultIdField = value; + } + } + + /// + public long ScanId { + get { + return this.scanIdField; + } + set { + this.scanIdField = value; + } + } + + /// + public long ProjectId { + get { + return this.projectIdField; + } + set { + this.projectIdField = value; + } + } + + /// + public long TaskId { + get { + return this.taskIdField; + } + set { + this.taskIdField = value; + } + } + + /// + public string TaskName { + get { + return this.taskNameField; + } + set { + this.taskNameField = value; + } + } + + /// + public string ProjectName { + get { + return this.projectNameField; + } + set { + this.projectNameField = value; + } + } + + /// + public string RunId { + get { + return this.runIdField; + } + set { + this.runIdField = value; + } + } + + /// + public string SourceId { + get { + return this.sourceIdField; + } + set { + this.sourceIdField = value; + } + } + + /// + public long LOC { + get { + return this.lOCField; + } + set { + this.lOCField = value; + } + } + + /// + public CxDateTime TimeScheduled { + get { + return this.timeScheduledField; + } + set { + this.timeScheduledField = value; + } + } + + /// + public CxDateTime ElapsedTime { + get { + return this.elapsedTimeField; + } + set { + this.elapsedTimeField = value; + } + } + + /// + public CxDateTime TimeFinished { + get { + return this.timeFinishedField; + } + set { + this.timeFinishedField = value; + } + } + + /// + public CxDateTime TimeBeginWorking { + get { + return this.timeBeginWorkingField; + } + set { + this.timeBeginWorkingField = value; + } + } + + /// + public CurrentStatusEnum CurrentStatus { + get { + return this.currentStatusField; + } + set { + this.currentStatusField = value; + } + } + + /// + public string ServerName { + get { + return this.serverNameField; + } + set { + this.serverNameField = value; + } + } + + /// + public string Origin { + get { + return this.originField; + } + set { + this.originField = value; + } + } + + /// + public bool IsPublic { + get { + return this.isPublicField; + } + set { + this.isPublicField = value; + } + } + + /// + public bool PartialResults { + get { + return this.partialResultsField; + } + set { + this.partialResultsField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public enum CurrentStatusEnum { + + /// + Queued, + + /// + Working, + + /// + Finished, + + /// + Failed, + + /// + Canceled, + + /// + Deleted, + + /// + Unknown, + + /// + Unzipping, + + /// + WaitingToProcess, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class CxWSResponseUserData : CxWSBasicRepsonse { + + private UserData[] userDataListField; + + /// + public UserData[] UserDataList { + get { + return this.userDataListField; + } + set { + this.userDataListField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class CxWSResponseResultStateList : CxWSBasicRepsonse { + + private ResultState[] resultStateListField; + + /// + public ResultState[] ResultStateList { + get { + return this.resultStateListField; + } + set { + this.resultStateListField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class CxWSResponceQuerisForScan : CxWSBasicRepsonse { + + private CxWSQueryVulnerabilityData[] queriesField; + + /// + public CxWSQueryVulnerabilityData[] Queries { + get { + return this.queriesField; + } + set { + this.queriesField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class CxWSResponseScansDisplayData : CxWSBasicRepsonse { + + private ScanDisplayData[] scanListField; + + /// + public ScanDisplayData[] ScanList { + get { + return this.scanListField; + } + set { + this.scanListField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class CxWSResponseProjectsDisplayData : CxWSBasicRepsonse { + + private ProjectDisplayData[] projectListField; + + /// + public ProjectDisplayData[] projectList { + get { + return this.projectListField; + } + set { + this.projectListField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class CxWSResponceResultPath : CxWSBasicRepsonse { + + private CxWSResultPath pathField; + + /// + public CxWSResultPath Path { + get { + return this.pathField; + } + set { + this.pathField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class CxWSResponceScanResults : CxWSBasicRepsonse { + + private CxWSSingleResultData[] resultsField; + + /// + public CxWSSingleResultData[] Results { + get { + return this.resultsField; + } + set { + this.resultsField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class CxWSResponseRunID : CxWSBasicRepsonse { + + private long projectIDField; + + private string runIdField; + + /// + public long ProjectID { + get { + return this.projectIDField; + } + set { + this.projectIDField = value; + } + } + + /// + public string RunId { + get { + return this.runIdField; + } + set { + this.runIdField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class CxWSResponseProjectConfig : CxWSBasicRepsonse { + + private ProjectConfiguration projectConfigField; + + private UserPermission permissionField; + + /// + public ProjectConfiguration ProjectConfig { + get { + return this.projectConfigField; + } + set { + this.projectConfigField = value; + } + } + + /// + public UserPermission Permission { + get { + return this.permissionField; + } + set { + this.permissionField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class CxWSResponsePresetList : CxWSBasicRepsonse { + + private Preset[] presetListField; + + /// + public Preset[] PresetList { + get { + return this.presetListField; + } + set { + this.presetListField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class CxWSResponseQueryDescription : CxWSBasicRepsonse { + + private string queryDescriptionField; + + /// + public string QueryDescription { + get { + return this.queryDescriptionField; + } + set { + this.queryDescriptionField = value; + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(CxWSResponseLoginData))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class CxWSResponseSessionID : CxWSBasicRepsonse { + + private string sessionIdField; + + /// + public string SessionId { + get { + return this.sessionIdField; + } + set { + this.sessionIdField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public partial class CxWSResponseLoginData : CxWSResponseSessionID { + + private string familyNameField; + + private string firstNameField; + + private string userNameField; + + private string emailField; + + private long userIDField; + + private int userPreferedLanguageLCIDField; + + private bool isAllowedToCreateProjectField; + + private bool isAllowedToChangeProjectField; + + private bool isAllowedToManageUsersField; + + private bool isAllowedToViewCompaniesField; + + private bool isAllowedToManageCompaniesField; + + private bool isAllowedToManageServerField; + + private bool isAllowedToViewInstallationDataField; + + private bool isAllowedToViewSpField; + + private bool isAllowedToManageSpField; + + private bool isScannerField; + + private bool isAuditorField; + + private bool isAllowedToManagePresetsField; + + private bool isAllowedToManagePredefinedCommandField; + + private bool isAllowedToManagePostScanActionField; + + private bool isAllowedToModifyResultDetailsField; + + private bool enableIncrementalScanField; + + private bool showSaaSPackageNotificationAndErrorsField; + + private bool showSaaSPackageDetailsField; + + private bool isAdviseChangePasswordField; + + private bool isAllowedToManageITSServersField; + + private bool allowedToChangeNotExploitableField; + + private bool isAllowedToDeleteScansField; + + /// + public string FamilyName { + get { + return this.familyNameField; + } + set { + this.familyNameField = value; + } + } + + /// + public string FirstName { + get { + return this.firstNameField; + } + set { + this.firstNameField = value; + } + } + + /// + public string UserName { + get { + return this.userNameField; + } + set { + this.userNameField = value; + } + } + + /// + public string Email { + get { + return this.emailField; + } + set { + this.emailField = value; + } + } + + /// + public long UserID { + get { + return this.userIDField; + } + set { + this.userIDField = value; + } + } + + /// + public int UserPreferedLanguageLCID { + get { + return this.userPreferedLanguageLCIDField; + } + set { + this.userPreferedLanguageLCIDField = value; + } + } + + /// + public bool IsAllowedToCreateProject { + get { + return this.isAllowedToCreateProjectField; + } + set { + this.isAllowedToCreateProjectField = value; + } + } + + /// + public bool IsAllowedToChangeProject { + get { + return this.isAllowedToChangeProjectField; + } + set { + this.isAllowedToChangeProjectField = value; + } + } + + /// + public bool IsAllowedToManageUsers { + get { + return this.isAllowedToManageUsersField; + } + set { + this.isAllowedToManageUsersField = value; + } + } + + /// + public bool IsAllowedToViewCompanies { + get { + return this.isAllowedToViewCompaniesField; + } + set { + this.isAllowedToViewCompaniesField = value; + } + } + + /// + public bool IsAllowedToManageCompanies { + get { + return this.isAllowedToManageCompaniesField; + } + set { + this.isAllowedToManageCompaniesField = value; + } + } + + /// + public bool IsAllowedToManageServer { + get { + return this.isAllowedToManageServerField; + } + set { + this.isAllowedToManageServerField = value; + } + } + + /// + public bool IsAllowedToViewInstallationData { + get { + return this.isAllowedToViewInstallationDataField; + } + set { + this.isAllowedToViewInstallationDataField = value; + } + } + + /// + public bool IsAllowedToViewSp { + get { + return this.isAllowedToViewSpField; + } + set { + this.isAllowedToViewSpField = value; + } + } + + /// + public bool IsAllowedToManageSp { + get { + return this.isAllowedToManageSpField; + } + set { + this.isAllowedToManageSpField = value; + } + } + + /// + public bool IsScanner { + get { + return this.isScannerField; + } + set { + this.isScannerField = value; + } + } + + /// + public bool IsAuditor { + get { + return this.isAuditorField; + } + set { + this.isAuditorField = value; + } + } + + /// + public bool IsAllowedToManagePresets { + get { + return this.isAllowedToManagePresetsField; + } + set { + this.isAllowedToManagePresetsField = value; + } + } + + /// + public bool isAllowedToManagePredefinedCommand { + get { + return this.isAllowedToManagePredefinedCommandField; + } + set { + this.isAllowedToManagePredefinedCommandField = value; + } + } + + /// + public bool IsAllowedToManagePostScanAction { + get { + return this.isAllowedToManagePostScanActionField; + } + set { + this.isAllowedToManagePostScanActionField = value; + } + } + + /// + public bool IsAllowedToModifyResultDetails { + get { + return this.isAllowedToModifyResultDetailsField; + } + set { + this.isAllowedToModifyResultDetailsField = value; + } + } + + /// + public bool EnableIncrementalScan { + get { + return this.enableIncrementalScanField; + } + set { + this.enableIncrementalScanField = value; + } + } + + /// + public bool ShowSaaSPackageNotificationAndErrors { + get { + return this.showSaaSPackageNotificationAndErrorsField; + } + set { + this.showSaaSPackageNotificationAndErrorsField = value; + } + } + + /// + public bool ShowSaaSPackageDetails { + get { + return this.showSaaSPackageDetailsField; + } + set { + this.showSaaSPackageDetailsField = value; + } + } + + /// + public bool IsAdviseChangePassword { + get { + return this.isAdviseChangePasswordField; + } + set { + this.isAdviseChangePasswordField = value; + } + } + + /// + public bool IsAllowedToManageITSServers { + get { + return this.isAllowedToManageITSServersField; + } + set { + this.isAllowedToManageITSServersField = value; + } + } + + /// + public bool AllowedToChangeNotExploitable { + get { + return this.allowedToChangeNotExploitableField; + } + set { + this.allowedToChangeNotExploitableField = value; + } + } + + /// + public bool IsAllowedToDeleteScans { + get { + return this.isAllowedToDeleteScansField; + } + set { + this.isAllowedToDeleteScansField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public enum CxClientType { + + /// + None, + + /// + WebPortal, + + /// + CLI, + + /// + Eclipse, + + /// + VS, + + /// + InteliJ, + + /// + Audit, + + /// + SDK, + + /// + Jenkins, + + /// + TFSBuild, + + /// + Importer, + + /// + Other, + + /// + Sonar, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com/v7")] + public enum ResultLabelTypeEnum { + + /// + IgnorePath, + + /// + Remark, + + /// + Severity, + + /// + State, + + /// + Assign, + + /// + IssueTracking, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void LoginCompletedEventHandler(object sender, LoginCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class LoginCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal LoginCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public CxWSResponseLoginData Result { + get { + this.RaiseExceptionIfNecessary(); + return ((CxWSResponseLoginData)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void LoginWithTokenCompletedEventHandler(object sender, LoginWithTokenCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class LoginWithTokenCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal LoginWithTokenCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public CxWSResponseLoginData Result { + get { + this.RaiseExceptionIfNecessary(); + return ((CxWSResponseLoginData)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void LoginBySIDCompletedEventHandler(object sender, LoginBySIDCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class LoginBySIDCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal LoginBySIDCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public CxWSResponseLoginData Result { + get { + this.RaiseExceptionIfNecessary(); + return ((CxWSResponseLoginData)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void GetQueryDescriptionCompletedEventHandler(object sender, GetQueryDescriptionCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class GetQueryDescriptionCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal GetQueryDescriptionCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public CxWSResponseQueryDescription Result { + get { + this.RaiseExceptionIfNecessary(); + return ((CxWSResponseQueryDescription)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void GetQueryDescriptionByQueryIdCompletedEventHandler(object sender, GetQueryDescriptionByQueryIdCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class GetQueryDescriptionByQueryIdCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal GetQueryDescriptionByQueryIdCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public CxWSResponseQueryDescription Result { + get { + this.RaiseExceptionIfNecessary(); + return ((CxWSResponseQueryDescription)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void VerifySupportedVersionCompletedEventHandler(object sender, VerifySupportedVersionCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class VerifySupportedVersionCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal VerifySupportedVersionCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public CxWSBasicRepsonse Result { + get { + this.RaiseExceptionIfNecessary(); + return ((CxWSBasicRepsonse)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void LogoutCompletedEventHandler(object sender, LogoutCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class LogoutCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal LogoutCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public CxWSBasicRepsonse Result { + get { + this.RaiseExceptionIfNecessary(); + return ((CxWSBasicRepsonse)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void SsoLoginCompletedEventHandler(object sender, SsoLoginCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class SsoLoginCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal SsoLoginCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public CxWSResponseLoginData Result { + get { + this.RaiseExceptionIfNecessary(); + return ((CxWSResponseLoginData)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void GetPresetListCompletedEventHandler(object sender, GetPresetListCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class GetPresetListCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal GetPresetListCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public CxWSResponsePresetList Result { + get { + this.RaiseExceptionIfNecessary(); + return ((CxWSResponsePresetList)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void GetProjectConfigurationCompletedEventHandler(object sender, GetProjectConfigurationCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class GetProjectConfigurationCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal GetProjectConfigurationCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public CxWSResponseProjectConfig Result { + get { + this.RaiseExceptionIfNecessary(); + return ((CxWSResponseProjectConfig)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void RunScanAndAddToProjectCompletedEventHandler(object sender, RunScanAndAddToProjectCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class RunScanAndAddToProjectCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal RunScanAndAddToProjectCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public CxWSResponseRunID Result { + get { + this.RaiseExceptionIfNecessary(); + return ((CxWSResponseRunID)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void RunIncrementalScanCompletedEventHandler(object sender, RunIncrementalScanCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class RunIncrementalScanCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal RunIncrementalScanCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public CxWSResponseRunID Result { + get { + this.RaiseExceptionIfNecessary(); + return ((CxWSResponseRunID)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void CreateAndRunProjectCompletedEventHandler(object sender, CreateAndRunProjectCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class CreateAndRunProjectCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal CreateAndRunProjectCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public CxWSResponseRunID Result { + get { + this.RaiseExceptionIfNecessary(); + return ((CxWSResponseRunID)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void GetResultsForQueryCompletedEventHandler(object sender, GetResultsForQueryCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class GetResultsForQueryCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal GetResultsForQueryCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public CxWSResponceScanResults Result { + get { + this.RaiseExceptionIfNecessary(); + return ((CxWSResponceScanResults)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void GetResultPathCompletedEventHandler(object sender, GetResultPathCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class GetResultPathCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal GetResultPathCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public CxWSResponceResultPath Result { + get { + this.RaiseExceptionIfNecessary(); + return ((CxWSResponceResultPath)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void GetPathCommentsHistoryCompletedEventHandler(object sender, GetPathCommentsHistoryCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class GetPathCommentsHistoryCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal GetPathCommentsHistoryCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public CxWSResponceResultPath Result { + get { + this.RaiseExceptionIfNecessary(); + return ((CxWSResponceResultPath)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void GetProjectsDisplayDataCompletedEventHandler(object sender, GetProjectsDisplayDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class GetProjectsDisplayDataCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal GetProjectsDisplayDataCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public CxWSResponseProjectsDisplayData Result { + get { + this.RaiseExceptionIfNecessary(); + return ((CxWSResponseProjectsDisplayData)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void GetScansDisplayDataCompletedEventHandler(object sender, GetScansDisplayDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class GetScansDisplayDataCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal GetScansDisplayDataCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public CxWSResponseScansDisplayData Result { + get { + this.RaiseExceptionIfNecessary(); + return ((CxWSResponseScansDisplayData)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void GetQueriesForScanCompletedEventHandler(object sender, GetQueriesForScanCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class GetQueriesForScanCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal GetQueriesForScanCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public CxWSResponceQuerisForScan Result { + get { + this.RaiseExceptionIfNecessary(); + return ((CxWSResponceQuerisForScan)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void SetFalsePositiveFlagCompletedEventHandler(object sender, SetFalsePositiveFlagCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class SetFalsePositiveFlagCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal SetFalsePositiveFlagCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public CxWSBasicRepsonse Result { + get { + this.RaiseExceptionIfNecessary(); + return ((CxWSBasicRepsonse)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void GetResultStateListCompletedEventHandler(object sender, GetResultStateListCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class GetResultStateListCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal GetResultStateListCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public CxWSResponseResultStateList Result { + get { + this.RaiseExceptionIfNecessary(); + return ((CxWSResponseResultStateList)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void GetAllUsersCompletedEventHandler(object sender, GetAllUsersCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class GetAllUsersCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal GetAllUsersCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public CxWSResponseUserData Result { + get { + this.RaiseExceptionIfNecessary(); + return ((CxWSResponseUserData)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void UpdateSetOfResultStateCompletedEventHandler(object sender, UpdateSetOfResultStateCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class UpdateSetOfResultStateCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal UpdateSetOfResultStateCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public CxWSBasicRepsonse Result { + get { + this.RaiseExceptionIfNecessary(); + return ((CxWSBasicRepsonse)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void UpdateResultStateCompletedEventHandler(object sender, UpdateResultStateCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class UpdateResultStateCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal UpdateResultStateCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public CxWSBasicRepsonse Result { + get { + this.RaiseExceptionIfNecessary(); + return ((CxWSBasicRepsonse)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void UpdateProjectIncrementalConfigurationCompletedEventHandler(object sender, UpdateProjectIncrementalConfigurationCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class UpdateProjectIncrementalConfigurationCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal UpdateProjectIncrementalConfigurationCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public CxWSBasicRepsonse Result { + get { + this.RaiseExceptionIfNecessary(); + return ((CxWSBasicRepsonse)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void GetScansStatusesCompletedEventHandler(object sender, GetScansStatusesCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class GetScansStatusesCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal GetScansStatusesCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public CxWSResponseScanStatusArray Result { + get { + this.RaiseExceptionIfNecessary(); + return ((CxWSResponseScanStatusArray)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void IsValidProjectNameCompletedEventHandler(object sender, IsValidProjectNameCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class IsValidProjectNameCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal IsValidProjectNameCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public CxWSBasicRepsonse Result { + get { + this.RaiseExceptionIfNecessary(); + return ((CxWSBasicRepsonse)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void GetAssociatedGroupsListCompletedEventHandler(object sender, GetAssociatedGroupsListCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class GetAssociatedGroupsListCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal GetAssociatedGroupsListCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public CxWSResponseGroupList Result { + get { + this.RaiseExceptionIfNecessary(); + return ((CxWSResponseGroupList)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void GetConfigurationSetListCompletedEventHandler(object sender, GetConfigurationSetListCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class GetConfigurationSetListCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal GetConfigurationSetListCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public CxWSResponseConfigSetList Result { + get { + this.RaiseExceptionIfNecessary(); + return ((CxWSResponseConfigSetList)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void CancelScanCompletedEventHandler(object sender, CancelScanCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class CancelScanCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal CancelScanCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public CxWSBasicRepsonse Result { + get { + this.RaiseExceptionIfNecessary(); + return ((CxWSBasicRepsonse)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void GetStatusOfSingleScanCompletedEventHandler(object sender, GetStatusOfSingleScanCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class GetStatusOfSingleScanCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal GetStatusOfSingleScanCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public CxWSResponseScanStatus Result { + get { + this.RaiseExceptionIfNecessary(); + return ((CxWSResponseScanStatus)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void CreateScanReportCompletedEventHandler(object sender, CreateScanReportCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class CreateScanReportCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal CreateScanReportCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public CxWSCreateReportResponse Result { + get { + this.RaiseExceptionIfNecessary(); + return ((CxWSCreateReportResponse)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void GetScanReportStatusCompletedEventHandler(object sender, GetScanReportStatusCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class GetScanReportStatusCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal GetScanReportStatusCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public CxWSReportStatusResponse Result { + get { + this.RaiseExceptionIfNecessary(); + return ((CxWSReportStatusResponse)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void GetScanReportCompletedEventHandler(object sender, GetScanReportCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class GetScanReportCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal GetScanReportCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public CxWSResponseScanResults Result { + get { + this.RaiseExceptionIfNecessary(); + return ((CxWSResponseScanResults)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void GetQueriesForScanByRunIdCompletedEventHandler(object sender, GetQueriesForScanByRunIdCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class GetQueriesForScanByRunIdCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal GetQueriesForScanByRunIdCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public CxWSResponceQuerisForScanAndId Result { + get { + this.RaiseExceptionIfNecessary(); + return ((CxWSResponceQuerisForScanAndId)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void GetScanXMLReportStatusCompletedEventHandler(object sender, GetScanXMLReportStatusCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class GetScanXMLReportStatusCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal GetScanXMLReportStatusCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public CXWSResponseScanReportStatus Result { + get { + this.RaiseExceptionIfNecessary(); + return ((CXWSResponseScanReportStatus)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void GetResultPathsForQueryCompletedEventHandler(object sender, GetResultPathsForQueryCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class GetResultPathsForQueryCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal GetResultPathsForQueryCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public CxWSResponseResultPaths Result { + get { + this.RaiseExceptionIfNecessary(); + return ((CxWSResponseResultPaths)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void GetProjectAssignUsersCompletedEventHandler(object sender, GetProjectAssignUsersCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class GetProjectAssignUsersCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal GetProjectAssignUsersCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public CxWSResponseUserData Result { + get { + this.RaiseExceptionIfNecessary(); + return ((CxWSResponseUserData)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void GetProjectAssignUsersListCompletedEventHandler(object sender, GetProjectAssignUsersListCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class GetProjectAssignUsersListCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal GetProjectAssignUsersListCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public CxWSResponseAssignUsers Result { + get { + this.RaiseExceptionIfNecessary(); + return ((CxWSResponseAssignUsers)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void CreateScanXMLReportCompletedEventHandler(object sender, CreateScanXMLReportCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class CreateScanXMLReportCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal CreateScanXMLReportCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public CxWSBasicRepsonse Result { + get { + this.RaiseExceptionIfNecessary(); + return ((CxWSBasicRepsonse)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void GetScanXMLReportCompletedEventHandler(object sender, GetScanXMLReportCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class GetScanXMLReportCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal GetScanXMLReportCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public CxWSResponseScanResults Result { + get { + this.RaiseExceptionIfNecessary(); + return ((CxWSResponseScanResults)(this.results[0])); + } + } + } +} + +#pragma warning restore 1591 \ No newline at end of file diff --git a/CxViewerAction2019/Web References/CxVSWebService/Reference.map b/CxViewerAction2019/Web References/CxVSWebService/Reference.map new file mode 100644 index 00000000..dc7a27bc --- /dev/null +++ b/CxViewerAction2019/Web References/CxVSWebService/Reference.map @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/CxViewerAction2019/Web References/CxWsResolver/CxWSResponseDiscovery.datasource b/CxViewerAction2019/Web References/CxWsResolver/CxWSResponseDiscovery.datasource new file mode 100644 index 00000000..ef46ed04 --- /dev/null +++ b/CxViewerAction2019/Web References/CxWsResolver/CxWSResponseDiscovery.datasource @@ -0,0 +1,10 @@ + + + + CxViewerAction.CxWsResolver.CxWSResponseDiscovery, Web References.CxWsResolver.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/CxViewerAction2019/Web References/CxWsResolver/CxWsResolver.disco b/CxViewerAction2019/Web References/CxWsResolver/CxWsResolver.disco new file mode 100644 index 00000000..6f0362fe --- /dev/null +++ b/CxViewerAction2019/Web References/CxWsResolver/CxWsResolver.disco @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/CxViewerAction2019/Web References/CxWsResolver/CxWsResolver.wsdl b/CxViewerAction2019/Web References/CxWsResolver/CxWsResolver.wsdl new file mode 100644 index 00000000..c4713eee --- /dev/null +++ b/CxViewerAction2019/Web References/CxWsResolver/CxWsResolver.wsdl @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/CxViewerAction2019/Web References/CxWsResolver/Reference.cs b/CxViewerAction2019/Web References/CxWsResolver/Reference.cs new file mode 100644 index 00000000..3fd6b723 --- /dev/null +++ b/CxViewerAction2019/Web References/CxWsResolver/Reference.cs @@ -0,0 +1,254 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +// +// This source code was auto-generated by Microsoft.VSDesigner, Version 4.0.30319.42000. +// +#pragma warning disable 1591 + +namespace CxViewerAction.CxWsResolver { + using System; + using System.Web.Services; + using System.Diagnostics; + using System.Web.Services.Protocols; + using System.Xml.Serialization; + using System.ComponentModel; + + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Web.Services.WebServiceBindingAttribute(Name="CxWSResolverSoap", Namespace="http://Checkmarx.com")] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(CxWSBasicRepsonse))] + public partial class CxWSResolver : System.Web.Services.Protocols.SoapHttpClientProtocol { + + private System.Threading.SendOrPostCallback GetWebServiceUrlOperationCompleted; + + private bool useDefaultCredentialsSetExplicitly; + + /// + public CxWSResolver() { + this.Url = global::CxViewerAction.Properties.Settings.Default.CxViewerAction_CxWsResolver_CxWSResolver; + if ((this.IsLocalFileSystemWebService(this.Url) == true)) { + this.UseDefaultCredentials = true; + this.useDefaultCredentialsSetExplicitly = false; + } + else { + this.useDefaultCredentialsSetExplicitly = true; + } + } + + public new string Url { + get { + return base.Url; + } + set { + if ((((this.IsLocalFileSystemWebService(base.Url) == true) + && (this.useDefaultCredentialsSetExplicitly == false)) + && (this.IsLocalFileSystemWebService(value) == false))) { + base.UseDefaultCredentials = false; + } + base.Url = value; + } + } + + public new bool UseDefaultCredentials { + get { + return base.UseDefaultCredentials; + } + set { + base.UseDefaultCredentials = value; + this.useDefaultCredentialsSetExplicitly = true; + } + } + + /// + public event GetWebServiceUrlCompletedEventHandler GetWebServiceUrlCompleted; + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://Checkmarx.com/GetWebServiceUrl", RequestNamespace="http://Checkmarx.com", ResponseNamespace="http://Checkmarx.com", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public CxWSResponseDiscovery GetWebServiceUrl(CxClientType ClientType, int APIVersion) { + object[] results = this.Invoke("GetWebServiceUrl", new object[] { + ClientType, + APIVersion}); + return ((CxWSResponseDiscovery)(results[0])); + } + + /// + public void GetWebServiceUrlAsync(CxClientType ClientType, int APIVersion) { + this.GetWebServiceUrlAsync(ClientType, APIVersion, null); + } + + /// + public void GetWebServiceUrlAsync(CxClientType ClientType, int APIVersion, object userState) { + if ((this.GetWebServiceUrlOperationCompleted == null)) { + this.GetWebServiceUrlOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetWebServiceUrlOperationCompleted); + } + this.InvokeAsync("GetWebServiceUrl", new object[] { + ClientType, + APIVersion}, this.GetWebServiceUrlOperationCompleted, userState); + } + + private void OnGetWebServiceUrlOperationCompleted(object arg) { + if ((this.GetWebServiceUrlCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetWebServiceUrlCompleted(this, new GetWebServiceUrlCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + public new void CancelAsync(object userState) { + base.CancelAsync(userState); + } + + private bool IsLocalFileSystemWebService(string url) { + if (((url == null) + || (url == string.Empty))) { + return false; + } + System.Uri wsUri = new System.Uri(url); + if (((wsUri.Port >= 1024) + && (string.Compare(wsUri.Host, "localHost", System.StringComparison.OrdinalIgnoreCase) == 0))) { + return true; + } + return false; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com")] + public enum CxClientType { + + /// + None, + + /// + WebPortal, + + /// + CLI, + + /// + Eclipse, + + /// + VS, + + /// + InteliJ, + + /// + Audit, + + /// + SDK, + + /// + Jenkins, + + /// + TFSBuild, + + /// + Importer, + + /// + Other, + + /// + Sonar, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com")] + public partial class CxWSResponseDiscovery : CxWSBasicRepsonse { + + private string serviceURLField; + + /// + public string ServiceURL { + get { + return this.serviceURLField; + } + set { + this.serviceURLField = value; + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(CxWSResponseDiscovery))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://Checkmarx.com")] + public partial class CxWSBasicRepsonse { + + private bool isSuccesfullField; + + private string errorMessageField; + + /// + public bool IsSuccesfull { + get { + return this.isSuccesfullField; + } + set { + this.isSuccesfullField = value; + } + } + + /// + public string ErrorMessage { + get { + return this.errorMessageField; + } + set { + this.errorMessageField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void GetWebServiceUrlCompletedEventHandler(object sender, GetWebServiceUrlCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class GetWebServiceUrlCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal GetWebServiceUrlCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public CxWSResponseDiscovery Result { + get { + this.RaiseExceptionIfNecessary(); + return ((CxWSResponseDiscovery)(this.results[0])); + } + } + } +} + +#pragma warning restore 1591 \ No newline at end of file diff --git a/CxViewerAction2019/Web References/CxWsResolver/Reference.map b/CxViewerAction2019/Web References/CxWsResolver/Reference.map new file mode 100644 index 00000000..636375eb --- /dev/null +++ b/CxViewerAction2019/Web References/CxWsResolver/Reference.map @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/CxViewerAction2019/packages.config b/CxViewerAction2019/packages.config new file mode 100644 index 00000000..27fb2397 --- /dev/null +++ b/CxViewerAction2019/packages.config @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/CxViewerColorButton/ColorButton.csproj b/CxViewerColorButton/ColorButton.csproj index a7b711f7..c139e8cc 100644 --- a/CxViewerColorButton/ColorButton.csproj +++ b/CxViewerColorButton/ColorButton.csproj @@ -31,7 +31,7 @@ SAK SAK SAK - v4.7.1 + v4.7.2 @@ -107,6 +107,39 @@ true + + true + bin\x64\Debug\ + DEBUG;TRACE + 285212672 + 4096 + full + x64 + 7.3 + prompt + + + bin\x64\Release\ + CODE_ANALYSIS;TRACE + 285212672 + true + 4096 + x64 + true + 7.3 + prompt + + + bin\x64\Build\ + TRACE + 285212672 + true + 4096 + x64 + 7.3 + prompt + MinimumRecommendedRules.ruleset + System diff --git a/CxViewerColorButton/ColorButton.csproj.user b/CxViewerColorButton/ColorButton.csproj.user new file mode 100644 index 00000000..0bf2b65d --- /dev/null +++ b/CxViewerColorButton/ColorButton.csproj.user @@ -0,0 +1,15 @@ + + + + Program + C:\Program Files %28x86%29\Microsoft Visual Studio\2019\Professional\Common7\IDE\devenv.exe + /rootsuffix Exp + C:\Program Files %28x86%29\Microsoft Visual Studio\2019\Professional\Common7\IDE\ + + + C:\Program Files %28x86%29\Microsoft Visual Studio\2019\Professional\Common7\IDE\devenv.exe + C:\Program Files %28x86%29\Microsoft Visual Studio\2019\Professional\Common7\IDE\ + /rootsuffix Exp + Program + + \ No newline at end of file diff --git a/CxViewerColorButton/CxViewerResources.Designer.cs b/CxViewerColorButton/CxViewerResources.Designer.cs index 5ca5b72f..db917e72 100644 --- a/CxViewerColorButton/CxViewerResources.Designer.cs +++ b/CxViewerColorButton/CxViewerResources.Designer.cs @@ -19,7 +19,7 @@ namespace ColorButton { // class via a tool like ResGen or Visual Studio. // To add or remove a member, edit your .ResX file then rerun ResGen // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] internal class CxViewerResources { diff --git a/CxViewerDgvFilterPopup/DgvFilterPopup.csproj b/CxViewerDgvFilterPopup/DgvFilterPopup.csproj index 716b3776..6ce1d4da 100644 --- a/CxViewerDgvFilterPopup/DgvFilterPopup.csproj +++ b/CxViewerDgvFilterPopup/DgvFilterPopup.csproj @@ -20,7 +20,7 @@ SAK SAK SAK - v4.7.1 + v4.7.2 @@ -62,6 +62,66 @@ key.snk + + true + bin\x64\Debug\ + DEBUG;TRACE + bin\Debug\DgvFilterPopup.XML + full + x64 + 7.3 + prompt + + + bin\x64\Release\ + CODE_ANALYSIS;TRACE + true + pdbonly + x64 + true + 7.3 + prompt + + + bin\x64\Build\ + TRACE + true + pdbonly + x64 + 7.3 + prompt + MinimumRecommendedRules.ruleset + + + true + bin\x86\Debug\ + DEBUG;TRACE + bin\Debug\DgvFilterPopup.XML + full + x86 + 7.3 + prompt + + + bin\x86\Release\ + CODE_ANALYSIS;TRACE + true + pdbonly + x86 + true + 7.3 + prompt + + + bin\x86\Build\ + TRACE + true + pdbonly + x86 + 7.3 + prompt + MinimumRecommendedRules.ruleset + diff --git a/CxViewerDgvFilterPopup/ResourceImages.Designer.cs b/CxViewerDgvFilterPopup/ResourceImages.Designer.cs index 26cdac34..54e99b38 100644 --- a/CxViewerDgvFilterPopup/ResourceImages.Designer.cs +++ b/CxViewerDgvFilterPopup/ResourceImages.Designer.cs @@ -19,7 +19,7 @@ namespace DgvFilterPopup { // class via a tool like ResGen or Visual Studio. // To add or remove a member, edit your .ResX file then rerun ResGen // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] internal class ResourceImages { diff --git a/CxViewerVSIX/Commands/BindCommand.cs b/CxViewerShared/Commands/BindCommand.cs similarity index 95% rename from CxViewerVSIX/Commands/BindCommand.cs rename to CxViewerShared/Commands/BindCommand.cs index 00f2eda9..4b010a70 100644 --- a/CxViewerVSIX/Commands/BindCommand.cs +++ b/CxViewerShared/Commands/BindCommand.cs @@ -1,104 +1,109 @@ -//------------------------------------------------------------------------------ -// -// Copyright (c) Company. All rights reserved. -// -//------------------------------------------------------------------------------ - -using System; -using Microsoft.VisualStudio.Shell; -using EnvDTE; -using CxViewerAction.MenuLogic; - -namespace CxViewerVSIX.Commands -{ - /// - /// Command handler - /// - internal sealed class BindCommand : CommandBase - { - /// - /// Command ID. - /// - public const int CommandId = 0x0102; - - /// - /// Bind Project Logic - /// - private BindProjectLogic _logic = new BindProjectLogic(); - - /// - /// Initializes a new instance of the class. - /// Adds our command handlers for menu (commands must exist in the command table file) - /// - /// Owner package, not null. - private BindCommand(Package package) : base (package) - { - - } - - /// - /// Gets the instance of the command. - /// - public static BindCommand Instance - { - get; - private set; - } - - /// - /// Initializes the singleton instance of the command. - /// - /// Owner package, not null. - public static void Initialize(Package package) - { - Instance = new BindCommand(package); - } - - protected override int GetCommandId - { - get { return CommandId; } - } - - /// - /// This function is the callback used to execute the command when the menu item is clicked. - /// See the constructor to see how the menu item is associated with this function using - /// OleMenuCommandService service and MenuCommand class. - /// - /// Event sender. - /// Event args. - protected override void MenuItemCallback(object sender, EventArgs e) - { - base.MenuItemCallback(sender, e); - _logic.Act(); - } - - - protected override CommandStatus GetStatus() - { - return _logic.GetStatus(); - } - - protected override void OnBeforeQueryStatus(object sender, EventArgs e) - { - var bindCommand = sender as OleMenuCommand; - CommandStatus status = GetStatus(); - if (null != bindCommand) - { - if (status != null) - { - if (status == (CommandStatus.CommandStatusSupported | CommandStatus.CommandStatusEnabled) - && !_logic.IsBinded) - { - bindCommand.Text = "Bind..."; - } - else - { - bindCommand.Text = "Unbind"; - } - bindCommand.Supported = true; - bindCommand.Enabled = true; - } - } - } - } -} +//------------------------------------------------------------------------------ +// +// Copyright (c) Company. All rights reserved. +// +//------------------------------------------------------------------------------ + +using System; +using Microsoft.VisualStudio.Shell; +using EnvDTE; +using CxViewerAction.MenuLogic; + +namespace CxViewerVSIX.Commands +{ + /// + /// Command handler + /// + internal sealed class BindCommand : CommandBase + { + /// + /// Command ID. + /// + public const int CommandId = 0x0102; + + /// + /// Bind Project Logic + /// + private BindProjectLogic _logic = new BindProjectLogic(); + + /// + /// Initializes a new instance of the class. + /// Adds our command handlers for menu (commands must exist in the command table file) + /// + /// Owner package, not null. + private BindCommand(Package package) : base (package) + { + + } + + /// + /// Gets the instance of the command. + /// + public static BindCommand Instance + { + get; + private set; + } + + /// + /// Initializes the singleton instance of the command. + /// + /// Owner package, not null. + public static void Initialize(Package package) + { + Instance = new BindCommand(package); + } + + protected override int GetCommandId + { + get { return CommandId; } + } + + /// + /// This function is the callback used to execute the command when the menu item is clicked. + /// See the constructor to see how the menu item is associated with this function using + /// OleMenuCommandService service and MenuCommand class. + /// + /// Event sender. + /// Event args. + protected override void MenuItemCallback(object sender, EventArgs e) + { + base.MenuItemCallback(sender, e); + var bindCommand = sender as OleMenuCommand; + if(bindCommand.Text == "Unbind") + { + _logic.UnBindProject(); + } + _logic.Act(); + } + + + protected override CommandStatus GetStatus() + { + return _logic.GetStatus(); + } + + protected override void OnBeforeQueryStatus(object sender, EventArgs e) + { + var bindCommand = sender as OleMenuCommand; + CommandStatus status = GetStatus(); + if (null != bindCommand) + { + if (status != null) + { + if (status == (CommandStatus.CommandStatusSupported | CommandStatus.CommandStatusEnabled) + && !_logic.IsBinded) + { + bindCommand.Text = "Bind..."; + } + else + { + bindCommand.Text = "Unbind"; + } + bindCommand.Supported = true; + bindCommand.Enabled = true; + } + } + } + } +} diff --git a/CxViewerVSIX/Commands/CommandBase.cs b/CxViewerShared/Commands/CommandBase.cs similarity index 95% rename from CxViewerVSIX/Commands/CommandBase.cs rename to CxViewerShared/Commands/CommandBase.cs index d894324c..463b72b1 100644 --- a/CxViewerVSIX/Commands/CommandBase.cs +++ b/CxViewerShared/Commands/CommandBase.cs @@ -1,115 +1,116 @@ -using System; -using System.ComponentModel.Design; -using CxViewerAction; -using CxViewerAction.MenuLogic; -using CxViewerVSIX.ToolWindows; -using EnvDTE; -using Microsoft.VisualStudio.Shell; -using Microsoft.VisualStudio.Shell.Interop; - -namespace CxViewerVSIX.Commands -{ - public abstract class CommandBase - { - /// - /// Command menu group (command set GUID). - /// - public static readonly Guid CommandSet = new Guid(CxViewerPackageGuids.guidCxViewerPackageCmdSetString); - - /// - /// VS Package that provides this command, not null. - /// - protected readonly Package _package; - - /// - /// Gets the service provider from the owner package. - /// - protected IServiceProvider ServiceProvider - { - get - { - return _package; - } - } - - /// - /// Initializes a new instance of the class. - /// Adds our command handlers for menu (commands must exist in the command table file) - /// - /// Owner package, not null. - protected CommandBase(Package package) - { - if (package == null) - { - throw new ArgumentNullException("package"); - } - - _package = package; - - OleMenuCommandService commandService = ServiceProvider.GetService(typeof(IMenuCommandService)) as OleMenuCommandService; - if (commandService != null) - { - var menuCommandId = new CommandID(CommandSet, GetCommandId); - var menuItem = new OleMenuCommand(MenuItemCallback, menuCommandId) {Enabled = true}; - menuItem.BeforeQueryStatus += OnBeforeQueryStatus; - commandService.AddCommand(menuItem); - } - } - - protected abstract int GetCommandId { get; } - - /// - /// This function is the callback used to execute the command when the menu item is clicked. - /// See the constructor to see how the menu item is associated with this function using - /// OleMenuCommandService service and MenuCommand class. - /// - /// Event sender. - /// Event args. - protected virtual void MenuItemCallback(object sender, EventArgs e) - { - CommonActions ca = CommonActionsInstance.getInstance(); - - ca.ScanProgressWin = _package.FindToolWindow(typeof(ScanProcessToolWindow), ScanProcessToolWindow.ID, true); - ca.ResultWin = _package.FindToolWindow(typeof(ResultsToolWindow), ResultsToolWindow.ID, true); - ca.ReportWin = _package.FindToolWindow(typeof(ReportToolWindow), ReportToolWindow.ID, true); - ca.PathWin = _package.FindToolWindow(typeof(PathToolWindow), PathToolWindow.ID, true); - ca.GraphWin = _package.FindToolWindow(typeof(GraphToolWindow), GraphToolWindow.ID, true); - } - - protected void ShowToolWindow(ToolWindowPane windowPane) - { - ShowView(windowPane); - } - - protected abstract CommandStatus GetStatus(); - - protected virtual void OnBeforeQueryStatus(object sender, EventArgs e) - { - OleMenuCommand scanCommand = sender as OleMenuCommand; - - if (scanCommand != null) - { - var status = GetStatus(); - - scanCommand.Enabled = (status == (CommandStatus.CommandStatusSupported | CommandStatus.CommandStatusEnabled)); - scanCommand.Supported = true; - } - } - - protected virtual void InitLogic() - { - //ObserversManager.Instance.Subscribe(typeof(ScanStatusBar), this); - } - - private void ShowView(ToolWindowPane window) - { - if ((null == window) || (null == window.Frame)) - { - throw new NotSupportedException("Cannot create tool window"); - } - - IVsWindowFrame windowFrame = (IVsWindowFrame)window.Frame; - Microsoft.VisualStudio.ErrorHandler.ThrowOnFailure(windowFrame.Show()); - } - } -} +using System; +using System.ComponentModel.Design; +using CxViewerAction; +using CxViewerAction.MenuLogic; +using CxViewerVSIX.ToolWindows; +using EnvDTE; +using Microsoft.VisualStudio; +using Microsoft.VisualStudio.Shell; +using Microsoft.VisualStudio.Shell.Interop; + +namespace CxViewerVSIX.Commands +{ + public abstract class CommandBase + { + /// + /// Command menu group (command set GUID). + /// + public static readonly Guid CommandSet = new Guid(CxViewerPackageGuids.guidCxViewerPackageCmdSetString); + + /// + /// VS Package that provides this command, not null. + /// + protected readonly Package _package; + + /// + /// Gets the service provider from the owner package. + /// + protected IServiceProvider ServiceProvider + { + get + { + return _package; + } + } + + /// + /// Initializes a new instance of the class. + /// Adds our command handlers for menu (commands must exist in the command table file) + /// + /// Owner package, not null. + protected CommandBase(Package package) + { + if (package == null) + { + throw new ArgumentNullException("package"); + } + + _package = package; + + OleMenuCommandService commandService = ServiceProvider.GetService(typeof(IMenuCommandService)) as OleMenuCommandService; + if (commandService != null) + { + var menuCommandId = new CommandID(CommandSet, GetCommandId); + var menuItem = new OleMenuCommand(MenuItemCallback, menuCommandId) {Enabled = true}; + menuItem.BeforeQueryStatus += OnBeforeQueryStatus; + commandService.AddCommand(menuItem); + } + } + + protected abstract int GetCommandId { get; } + + /// + /// This function is the callback used to execute the command when the menu item is clicked. + /// See the constructor to see how the menu item is associated with this function using + /// OleMenuCommandService service and MenuCommand class. + /// + /// Event sender. + /// Event args. + protected virtual void MenuItemCallback(object sender, EventArgs e) + { + CommonActions ca = CommonActionsInstance.getInstance(); + + ca.ScanProgressWin = _package.FindToolWindow(typeof(ScanProcessToolWindow), ScanProcessToolWindow.ID, true); + ca.ResultWin = _package.FindToolWindow(typeof(ResultsToolWindow), ResultsToolWindow.ID, true); + ca.ReportWin = _package.FindToolWindow(typeof(ReportToolWindow), ReportToolWindow.ID, true); + ca.PathWin = _package.FindToolWindow(typeof(PathToolWindow), PathToolWindow.ID, true); + ca.GraphWin = _package.FindToolWindow(typeof(GraphToolWindow), GraphToolWindow.ID, true); + } + + protected void ShowToolWindow(ToolWindowPane windowPane) + { + ShowView(windowPane); + } + + protected abstract CommandStatus GetStatus(); + + protected virtual void OnBeforeQueryStatus(object sender, EventArgs e) + { + OleMenuCommand scanCommand = sender as OleMenuCommand; + + if (scanCommand != null) + { + var status = GetStatus(); + + scanCommand.Enabled = (status == (CommandStatus.CommandStatusSupported | CommandStatus.CommandStatusEnabled)); + scanCommand.Supported = true; + } + } + + protected virtual void InitLogic() + { + //ObserversManager.Instance.Subscribe(typeof(ScanStatusBar), this); + } + + private void ShowView(ToolWindowPane window) + { + if ((null == window) || (null == window.Frame)) + { + throw new NotSupportedException("Cannot create tool window"); + } + + IVsWindowFrame windowFrame = (IVsWindowFrame)window.Frame; + // Microsoft.VisualStudio.Shell.eErrorHandler.ThrowOnFailure(windowFrame.Show()); + } + } +} diff --git a/CxViewerVSIX/Commands/IncrementalScanCommand.cs b/CxViewerShared/Commands/IncrementalScanCommand.cs similarity index 97% rename from CxViewerVSIX/Commands/IncrementalScanCommand.cs rename to CxViewerShared/Commands/IncrementalScanCommand.cs index 62f09667..2d3f73fb 100644 --- a/CxViewerVSIX/Commands/IncrementalScanCommand.cs +++ b/CxViewerShared/Commands/IncrementalScanCommand.cs @@ -1,112 +1,112 @@ -//------------------------------------------------------------------------------ -// -// Copyright (c) Company. All rights reserved. -// -//------------------------------------------------------------------------------ - -using System; -using Microsoft.VisualStudio.Shell; -using CxViewerAction.MenuLogic; -using CxViewerVSIX.ToolWindows; -using EnvDTE; - -namespace CxViewerVSIX.Commands -{ - /// - /// Command handler - /// - internal sealed class IncrementalScanCommand : CommandBase /*: IPluginObserver, IDisposable*/ - { - /// - /// Command ID. - /// - public const int CommandId = 0x0101; - - /// - /// Scan Logic. - /// - private IncrementalScanLogic _logic = new IncrementalScanLogic(); - - /// - /// Initializes a new instance of the class. - /// Adds our command handlers for menu (commands must exist in the command table file) - /// - /// Owner package, not null. - private IncrementalScanCommand(Package package) : base(package) - { - - } - - /// - /// Gets the instance of the command. - /// - public static IncrementalScanCommand Instance - { - get; - private set; - } - - /// - /// Initializes the singleton instance of the command. - /// - /// Owner package, not null. - public static void Initialize(Package package) - { - Instance = new IncrementalScanCommand(package); - } - - protected override int GetCommandId - { - get { return CommandId; } - } - - /// - /// This function is the callback used to execute the command when the menu item is clicked. - /// See the constructor to see how the menu item is associated with this function using - /// OleMenuCommandService service and MenuCommand class. - /// - /// Event sender. - /// Event args. - protected override void MenuItemCallback(object sender, EventArgs e) - { - base.MenuItemCallback(sender, e); - _logic.Act(); - - // Get the instance number 0 of this tool window. This window is single instance so this instance - // is actually the only one. - // The last flag is set to true so that if the tool window does not exists it will be created. - ToolWindowPane window = _package.FindToolWindow(typeof(ReportToolWindow), ReportToolWindow.ID, true); - window.Caption = "CxViewer Scan Progress"; - ShowToolWindow(window); - } - - protected override CommandStatus GetStatus() - { - return _logic.GetStatus(); - } - - //#region IPluginObserver - //public void Handle(object data) - //{ - // var value = data as ScanStatusBar; - - // if (value == null) return; - - // IVsStatusbar statusbar = (IVsStatusbar)ServiceProvider.GetService(typeof(ScanStatusBar)); - - // if (value.ClearBeforeUpdateProgress) - // { - // statusbar.Clear(); - // } - - // uint cookie = 0; - // statusbar.Progress(ref cookie, value.InProgress ? 1 : 0, value.Label, value.Completed, value.Total); - //} - //#endregion - - //public void Dispose() - //{ - // ObserversManager.Instance.Unsubscribe(typeof(ScanStatusBar), this); - //} - } -} +//------------------------------------------------------------------------------ +// +// Copyright (c) Company. All rights reserved. +// +//------------------------------------------------------------------------------ + +using System; +using Microsoft.VisualStudio.Shell; +using CxViewerAction.MenuLogic; +using CxViewerVSIX.ToolWindows; +using EnvDTE; + +namespace CxViewerVSIX.Commands +{ + /// + /// Command handler + /// + internal sealed class IncrementalScanCommand : CommandBase /*: IPluginObserver, IDisposable*/ + { + /// + /// Command ID. + /// + public const int CommandId = 0x0101; + + /// + /// Scan Logic. + /// + private IncrementalScanLogic _logic = new IncrementalScanLogic(); + + /// + /// Initializes a new instance of the class. + /// Adds our command handlers for menu (commands must exist in the command table file) + /// + /// Owner package, not null. + private IncrementalScanCommand(Package package) : base(package) + { + + } + + /// + /// Gets the instance of the command. + /// + public static IncrementalScanCommand Instance + { + get; + private set; + } + + /// + /// Initializes the singleton instance of the command. + /// + /// Owner package, not null. + public static void Initialize(Package package) + { + Instance = new IncrementalScanCommand(package); + } + + protected override int GetCommandId + { + get { return CommandId; } + } + + /// + /// This function is the callback used to execute the command when the menu item is clicked. + /// See the constructor to see how the menu item is associated with this function using + /// OleMenuCommandService service and MenuCommand class. + /// + /// Event sender. + /// Event args. + protected override void MenuItemCallback(object sender, EventArgs e) + { + base.MenuItemCallback(sender, e); + _logic.Act(); + + // Get the instance number 0 of this tool window. This window is single instance so this instance + // is actually the only one. + // The last flag is set to true so that if the tool window does not exists it will be created. + ToolWindowPane window = _package.FindToolWindow(typeof(ReportToolWindow), ReportToolWindow.ID, true); + window.Caption = "CxViewer Scan Progress"; + ShowToolWindow(window); + } + + protected override CommandStatus GetStatus() + { + return _logic.GetStatus(); + } + + //#region IPluginObserver + //public void Handle(object data) + //{ + // var value = data as ScanStatusBar; + + // if (value == null) return; + + // IVsStatusbar statusbar = (IVsStatusbar)ServiceProvider.GetService(typeof(ScanStatusBar)); + + // if (value.ClearBeforeUpdateProgress) + // { + // statusbar.Clear(); + // } + + // uint cookie = 0; + // statusbar.Progress(ref cookie, value.InProgress ? 1 : 0, value.Label, value.Completed, value.Total); + //} + //#endregion + + //public void Dispose() + //{ + // ObserversManager.Instance.Unsubscribe(typeof(ScanStatusBar), this); + //} + } +} diff --git a/CxViewerVSIX/Commands/RetrieveResultsCommand.cs b/CxViewerShared/Commands/RetrieveResultsCommand.cs similarity index 97% rename from CxViewerVSIX/Commands/RetrieveResultsCommand.cs rename to CxViewerShared/Commands/RetrieveResultsCommand.cs index 4dd7a844..fba9cb73 100644 --- a/CxViewerVSIX/Commands/RetrieveResultsCommand.cs +++ b/CxViewerShared/Commands/RetrieveResultsCommand.cs @@ -1,87 +1,87 @@ -//------------------------------------------------------------------------------ -// -// Copyright (c) Company. All rights reserved. -// -//------------------------------------------------------------------------------ - -using System; -using Microsoft.VisualStudio.Shell; -using EnvDTE; -using CxViewerVSIX.ToolWindows; -using CxViewerAction.MenuLogic; - -namespace CxViewerVSIX.Commands -{ - /// - /// Command handler - /// - internal sealed class RetrieveResultsCommand : CommandBase - { - /// - /// Command ID. - /// - public const int CommandId = 0x0103; - - /// - /// Retrieved Scan Result Logic - /// - private RetrievedScanResultLogic _logic = new RetrievedScanResultLogic(); - - /// - /// Initializes a new instance of the class. - /// Adds our command handlers for menu (commands must exist in the command table file) - /// - /// Owner package, not null. - private RetrieveResultsCommand(Package package) : base (package) - { - - } - - /// - /// Gets the instance of the command. - /// - public static RetrieveResultsCommand Instance - { - get; - private set; - } - - /// - /// Initializes the singleton instance of the command. - /// - /// Owner package, not null. - public static void Initialize(Package package) - { - Instance = new RetrieveResultsCommand(package); - } - - protected override int GetCommandId - { - get { return CommandId; } - } - - /// - /// This function is the callback used to execute the command when the menu item is clicked. - /// See the constructor to see how the menu item is associated with this function using - /// OleMenuCommandService service and MenuCommand class. - /// - /// Event sender. - /// Event args. - protected override void MenuItemCallback(object sender, EventArgs e) - { - base.MenuItemCallback(sender, e); - _logic.Act(); - - // Get the instance number 0 of this tool window. This window is single instance so this instance - // is actually the only one. - // The last flag is set to true so that if the tool window does not exists it will be created. - ToolWindowPane window = _package.FindToolWindow(typeof(ReportToolWindow), ReportToolWindow.ID, true); - ShowToolWindow(window); - } - - protected override CommandStatus GetStatus() - { - return _logic.GetStatus(); - } - } -} +//------------------------------------------------------------------------------ +// +// Copyright (c) Company. All rights reserved. +// +//------------------------------------------------------------------------------ + +using System; +using Microsoft.VisualStudio.Shell; +using EnvDTE; +using CxViewerVSIX.ToolWindows; +using CxViewerAction.MenuLogic; + +namespace CxViewerVSIX.Commands +{ + /// + /// Command handler + /// + internal sealed class RetrieveResultsCommand : CommandBase + { + /// + /// Command ID. + /// + public const int CommandId = 0x0103; + + /// + /// Retrieved Scan Result Logic + /// + private RetrievedScanResultLogic _logic = new RetrievedScanResultLogic(); + + /// + /// Initializes a new instance of the class. + /// Adds our command handlers for menu (commands must exist in the command table file) + /// + /// Owner package, not null. + private RetrieveResultsCommand(Package package) : base (package) + { + + } + + /// + /// Gets the instance of the command. + /// + public static RetrieveResultsCommand Instance + { + get; + private set; + } + + /// + /// Initializes the singleton instance of the command. + /// + /// Owner package, not null. + public static void Initialize(Package package) + { + Instance = new RetrieveResultsCommand(package); + } + + protected override int GetCommandId + { + get { return CommandId; } + } + + /// + /// This function is the callback used to execute the command when the menu item is clicked. + /// See the constructor to see how the menu item is associated with this function using + /// OleMenuCommandService service and MenuCommand class. + /// + /// Event sender. + /// Event args. + protected override void MenuItemCallback(object sender, EventArgs e) + { + base.MenuItemCallback(sender, e); + _logic.Act(); + + // Get the instance number 0 of this tool window. This window is single instance so this instance + // is actually the only one. + // The last flag is set to true so that if the tool window does not exists it will be created. + ToolWindowPane window = _package.FindToolWindow(typeof(ReportToolWindow), ReportToolWindow.ID, true); + ShowToolWindow(window); + } + + protected override CommandStatus GetStatus() + { + return _logic.GetStatus(); + } + } +} diff --git a/CxViewerVSIX/Commands/ScanCommand.cs b/CxViewerShared/Commands/ScanCommand.cs similarity index 96% rename from CxViewerVSIX/Commands/ScanCommand.cs rename to CxViewerShared/Commands/ScanCommand.cs index 8dcf4427..515a861a 100644 --- a/CxViewerVSIX/Commands/ScanCommand.cs +++ b/CxViewerShared/Commands/ScanCommand.cs @@ -1,112 +1,112 @@ -//------------------------------------------------------------------------------ -// -// Copyright (c) Company. All rights reserved. -// -//------------------------------------------------------------------------------ - -using System; -using Microsoft.VisualStudio.Shell; -using CxViewerAction.MenuLogic; -using CxViewerVSIX.ToolWindows; -using EnvDTE; - -namespace CxViewerVSIX.Commands -{ - /// - /// Command handler - /// - internal sealed class ScanCommand : CommandBase/*: IPluginObserver, IDisposable*/ - { - /// - /// Command ID. - /// - public const int CommandId = 0x0100; - - /// - /// Scan Logic. - /// - private ScanLogic _logic = new ScanLogic(); - - /// - /// Initializes a new instance of the class. - /// Adds our command handlers for menu (commands must exist in the command table file) - /// - /// Owner package, not null. - private ScanCommand(Package package) : base(package) - { - - } - - /// - /// Gets the instance of the command. - /// - public static ScanCommand Instance - { - get; - private set; - } - - /// - /// Initializes the singleton instance of the command. - /// - /// Owner package, not null. - public static void Initialize(Package package) - { - Instance = new ScanCommand(package); - } - - protected override int GetCommandId - { - get { return CommandId; } - } - - /// - /// This function is the callback used to execute the command when the menu item is clicked. - /// See the constructor to see how the menu item is associated with this function using - /// OleMenuCommandService service and MenuCommand class. - /// - /// Event sender. - /// Event args. - protected override void MenuItemCallback(object sender, EventArgs e) - { - base.MenuItemCallback(sender, e); - - _logic.IsIncremental = false; - _logic.Act(); - - ToolWindowPane window = _package.FindToolWindow(typeof(ReportToolWindow), ReportToolWindow.ID, true); - window.Caption = "CxViewer Scan Progress"; - - ShowToolWindow(window); - } - - protected override CommandStatus GetStatus() - { - return _logic.GetStatus(); - } - - //#region IPluginObserver - //public void Handle(object data) - //{ - // var value = data as ScanStatusBar; - - // if (value == null) return; - - // IVsStatusbar statusbar = (IVsStatusbar)ServiceProvider.GetService(typeof(ScanStatusBar)); - - // if (value.ClearBeforeUpdateProgress) - // { - // statusbar.Clear(); - // } - - // uint cookie = 0; - // statusbar.Progress(ref cookie, value.InProgress ? 1 : 0, value.Label, value.Completed, value.Total); - //} - //#endregion - - //public void Dispose() - //{ - // ObserversManager.Instance.Unsubscribe(typeof(ScanStatusBar), this); - //} - } -} +//------------------------------------------------------------------------------ +// +// Copyright (c) Company. All rights reserved. +// +//------------------------------------------------------------------------------ + +using System; +using Microsoft.VisualStudio.Shell; +using CxViewerAction.MenuLogic; +using CxViewerVSIX.ToolWindows; +using EnvDTE; + +namespace CxViewerVSIX.Commands +{ + /// + /// Command handler + /// + internal sealed class ScanCommand : CommandBase/*: IPluginObserver, IDisposable*/ + { + /// + /// Command ID. + /// + public const int CommandId = 0x0100; + + /// + /// Scan Logic. + /// + private ScanLogic _logic = new ScanLogic(); + + /// + /// Initializes a new instance of the class. + /// Adds our command handlers for menu (commands must exist in the command table file) + /// + /// Owner package, not null. + private ScanCommand(Package package) : base(package) + { + + } + + /// + /// Gets the instance of the command. + /// + public static ScanCommand Instance + { + get; + private set; + } + + /// + /// Initializes the singleton instance of the command. + /// + /// Owner package, not null. + public static void Initialize(Package package) + { + Instance = new ScanCommand(package); + } + + protected override int GetCommandId + { + get { return CommandId; } + } + + /// + /// This function is the callback used to execute the command when the menu item is clicked. + /// See the constructor to see how the menu item is associated with this function using + /// OleMenuCommandService service and MenuCommand class. + /// + /// Event sender. + /// Event args. + protected override void MenuItemCallback(object sender, EventArgs e) + { + base.MenuItemCallback(sender, e); + + _logic.IsIncremental = false; + _logic.Act(); + + ToolWindowPane window = _package.FindToolWindow(typeof(ReportToolWindow), ReportToolWindow.ID, true); + window.Caption = "CxViewer Scan Progress"; + + ShowToolWindow(window); + } + + protected override CommandStatus GetStatus() + { + return _logic.GetStatus(); + } + + //#region IPluginObserver + //public void Handle(object data) + //{ + // var value = data as ScanStatusBar; + + // if (value == null) return; + + // IVsStatusbar statusbar = (IVsStatusbar)ServiceProvider.GetService(typeof(ScanStatusBar)); + + // if (value.ClearBeforeUpdateProgress) + // { + // statusbar.Clear(); + // } + + // uint cookie = 0; + // statusbar.Progress(ref cookie, value.InProgress ? 1 : 0, value.Label, value.Completed, value.Total); + //} + //#endregion + + //public void Dispose() + //{ + // ObserversManager.Instance.Unsubscribe(typeof(ScanStatusBar), this); + //} + } +} diff --git a/CxViewerVSIX/Commands/ShowStoredResultsCommand.cs b/CxViewerShared/Commands/ShowStoredResultsCommand.cs similarity index 97% rename from CxViewerVSIX/Commands/ShowStoredResultsCommand.cs rename to CxViewerShared/Commands/ShowStoredResultsCommand.cs index 8d9dbde6..a15441de 100644 --- a/CxViewerVSIX/Commands/ShowStoredResultsCommand.cs +++ b/CxViewerShared/Commands/ShowStoredResultsCommand.cs @@ -1,86 +1,86 @@ -//------------------------------------------------------------------------------ -// -// Copyright (c) Company. All rights reserved. -// -//------------------------------------------------------------------------------ - -using System; -using Microsoft.VisualStudio.Shell; -using CxViewerVSIX.ToolWindows; -using EnvDTE; -using CxViewerAction.MenuLogic; - -namespace CxViewerVSIX.Commands -{ - /// - /// Command handler - /// - internal sealed class ShowStoredResultsCommand : CommandBase - { - /// - /// Command ID. - /// - public const int CommandId = 0x0104; - - /// - /// Show Saved Scan Result Logic - /// - private readonly ShowSavedScanResultLogic _logic = new ShowSavedScanResultLogic(); - - /// - /// Initializes a new instance of the class. - /// Adds our command handlers for menu (commands must exist in the command table file) - /// - /// Owner package, not null. - private ShowStoredResultsCommand(Package package) : base(package) - { - - } - - /// - /// Gets the instance of the command. - /// - public static ShowStoredResultsCommand Instance - { - get; - private set; - } - - /// - /// Initializes the singleton instance of the command. - /// - /// Owner package, not null. - public static void Initialize(Package package) - { - Instance = new ShowStoredResultsCommand(package); - } - - protected override int GetCommandId - { - get { return CommandId; } - } - - /// - /// This function is the callback used to execute the command when the menu item is clicked. - /// See the constructor to see how the menu item is associated with this function using - /// OleMenuCommandService service and MenuCommand class. - /// - /// Event sender. - /// Event args. - protected override void MenuItemCallback(object sender, EventArgs e) - { - base.MenuItemCallback(sender, e); - _logic.Act(); - // Get the instance number 0 of this tool window. This window is single instance so this instance - // is actually the only one. - // The last flag is set to true so that if the tool window does not exists it will be created. - ToolWindowPane window = _package.FindToolWindow(typeof(ReportToolWindow), ReportToolWindow.ID, true); - ShowToolWindow(window); - } - - protected override CommandStatus GetStatus() - { - return _logic.GetStatus(); - } - } -} +//------------------------------------------------------------------------------ +// +// Copyright (c) Company. All rights reserved. +// +//------------------------------------------------------------------------------ + +using System; +using Microsoft.VisualStudio.Shell; +using CxViewerVSIX.ToolWindows; +using EnvDTE; +using CxViewerAction.MenuLogic; + +namespace CxViewerVSIX.Commands +{ + /// + /// Command handler + /// + internal sealed class ShowStoredResultsCommand : CommandBase + { + /// + /// Command ID. + /// + public const int CommandId = 0x0104; + + /// + /// Show Saved Scan Result Logic + /// + private readonly ShowSavedScanResultLogic _logic = new ShowSavedScanResultLogic(); + + /// + /// Initializes a new instance of the class. + /// Adds our command handlers for menu (commands must exist in the command table file) + /// + /// Owner package, not null. + private ShowStoredResultsCommand(Package package) : base(package) + { + + } + + /// + /// Gets the instance of the command. + /// + public static ShowStoredResultsCommand Instance + { + get; + private set; + } + + /// + /// Initializes the singleton instance of the command. + /// + /// Owner package, not null. + public static void Initialize(Package package) + { + Instance = new ShowStoredResultsCommand(package); + } + + protected override int GetCommandId + { + get { return CommandId; } + } + + /// + /// This function is the callback used to execute the command when the menu item is clicked. + /// See the constructor to see how the menu item is associated with this function using + /// OleMenuCommandService service and MenuCommand class. + /// + /// Event sender. + /// Event args. + protected override void MenuItemCallback(object sender, EventArgs e) + { + base.MenuItemCallback(sender, e); + _logic.Act(); + // Get the instance number 0 of this tool window. This window is single instance so this instance + // is actually the only one. + // The last flag is set to true so that if the tool window does not exists it will be created. + ToolWindowPane window = _package.FindToolWindow(typeof(ReportToolWindow), ReportToolWindow.ID, true); + ShowToolWindow(window); + } + + protected override CommandStatus GetStatus() + { + return _logic.GetStatus(); + } + } +} diff --git a/CxViewerVSIX/CxViewerPackage.cs b/CxViewerShared/CxViewerPackage.cs similarity index 94% rename from CxViewerVSIX/CxViewerPackage.cs rename to CxViewerShared/CxViewerPackage.cs index f9169c1c..a31e899c 100644 --- a/CxViewerVSIX/CxViewerPackage.cs +++ b/CxViewerShared/CxViewerPackage.cs @@ -1,102 +1,113 @@ -//------------------------------------------------------------------------------ -// -// Copyright (c) Company. All rights reserved. -// -//------------------------------------------------------------------------------ - -using System; -using System.Diagnostics.CodeAnalysis; -using System.Runtime.InteropServices; -using Microsoft.VisualStudio.Shell; -using CxViewerVSIX.OptionsPages; -using CxViewerVSIX.Commands; -using EnvDTE80; -using CxViewerAction; -using Microsoft.VisualStudio.Shell.Interop; - -namespace CxViewerVSIX -{ - /// - /// This is the class that implements the package exposed by this assembly. - /// - /// - /// - /// The minimum requirement for a class to be considered a valid package for Visual Studio - /// is to implement the IVsPackage interface and register itself with the shell. - /// This package uses the helper classes defined inside the Managed Package Framework (MPF) - /// to do it: it derives from the Package class that provides the implementation of the - /// IVsPackage interface and uses the registration attributes defined in the framework to - /// register itself and its components with the shell. These attributes tell the pkgdef creation - /// utility what data to put into .pkgdef file. - /// - /// - /// To get loaded into VS, the package must be referred by <Asset Type="Microsoft.VisualStudio.VsPackage" ...> in .vsixmanifest file. - /// - /// - [PackageRegistration(UseManagedResourcesOnly = true)] - [InstalledProductRegistration("#110", "#112", "9.00.0", IconResourceID = 400)] // Info on this package for Help/About - [ProvideMenuResource("Menus.ctmenu", 1)] - //[ProvideAutoLoad("ADFC4E64-0397-11D1-9F4E-00A0C911004F")] - [Guid(CxViewerPackage.PackageGuidString)] - [ProvideOptionPage(typeof(AuthenticationOptionPage),"CxViewer", "Authentication", 0, 0, true)] - [ProvideOptionPage(typeof(ConnectionOptionPage), "CxViewer", "Connection", 0, 1, true)] - [ProvideOptionPage(typeof(CompressionOptionPage), "CxViewer", "Compression", 0, 2, true)] - [SuppressMessage("StyleCop.CSharp.DocumentationRules", "SA1650:ElementDocumentationMustBeSpelledCorrectly", Justification = "pkgdef, VS and vsixmanifest are valid VS terms")] - [ProvideToolWindow(typeof(CxViewerVSIX.ToolWindows.ResultsToolWindow))] - //[ProvideToolWindowVisibility(typeof(CxViewerVSIX.ToolWindows.ResultsToolWindow), VSConstants.UICONTEXT.SolutionExists_string)] - [ProvideToolWindow(typeof(CxViewerVSIX.ToolWindows.ScanProcessToolWindow))] - //[ProvideToolWindowVisibility(typeof(CxViewerVSIX.ToolWindows.ScanProcessToolWindow), VSConstants.UICONTEXT.SolutionExists_string)] - [ProvideToolWindow(typeof(CxViewerVSIX.ToolWindows.ReportToolWindow))] - //[ProvideToolWindowVisibility(typeof(CxViewerVSIX.ToolWindows.ReportToolWindow), VSConstants.UICONTEXT.SolutionExists_string)] - [ProvideToolWindow(typeof(CxViewerVSIX.ToolWindows.PathToolWindow))] - //[ProvideToolWindowVisibility(typeof(CxViewerVSIX.ToolWindows.PathToolWindow), VSConstants.UICONTEXT.SolutionExists_string)] - [ProvideToolWindow(typeof(CxViewerVSIX.ToolWindows.GraphToolWindow))] - //[ProvideToolWindowVisibility(typeof(CxViewerVSIX.ToolWindows.GraphToolWindow), VSConstants.UICONTEXT.SolutionExists_string)] - public sealed class CxViewerPackage : Package - { - /// - /// CxViewerPackage GUID string. - /// - public const string PackageGuidString = "a0f2f05a-074f-4c52-9af8-a14f1e28cf09"; - - /// - /// Initializes a new instance of the class. - /// - public CxViewerPackage() - { - // Inside this method you can place any initialization code that does not require - // any Visual Studio service because at this point the package object is created but - // not sited yet inside Visual Studio environment. The place to do all the other - // initialization is the Initialize method. - } - - #region Package Members - - /// - /// Initialization of the package; this method is called right after the package is sited, so this is the place - /// where you can put all the initialization code that rely on services provided by VisualStudio. - /// - protected override void Initialize() - { - base.Initialize(); - ScanCommand.Initialize(this); - BindCommand.Initialize(this); - ShowStoredResultsCommand.Initialize(this); - RetrieveResultsCommand.Initialize(this); - IncrementalScanCommand.Initialize(this); - - Connect connect = new Connect(); - connect.OnConnection(GetDTE()); - - - CommonActions ca = CommonActionsInstance.getInstance(); - ca.ApplicationObject = GetDTE(); - } - - public DTE2 GetDTE() { - return GetService(typeof(SDTE)) as DTE2; - } - #endregion - - } -} +//------------------------------------------------------------------------------ +// +// Copyright (c) Company. All rights reserved. +// +//------------------------------------------------------------------------------ + +using System; +using System.Diagnostics.CodeAnalysis; +using System.Runtime.InteropServices; +using Microsoft.VisualStudio.Shell; +using CxViewerVSIX.OptionsPages; +using CxViewerVSIX.Commands; +using EnvDTE80; +using CxViewerAction; +using Microsoft.VisualStudio.Shell.Interop; +using Task = System.Threading.Tasks.Task; + + +namespace CxViewerVSIX +{ + /// + /// This is the class that implements the package exposed by this assembly. + /// + /// + /// + /// The minimum requirement for a class to be considered a valid package for Visual Studio + /// is to implement the IVsPackage interface and register itself with the shell. + /// This package uses the helper classes defined inside the Managed Package Framework (MPF) + /// to do it: it derives from the Package class that provides the implementation of the + /// IVsPackage interface and uses the registration attributes defined in the framework to + /// register itself and its components with the shell. These attributes tell the pkgdef creation + /// utility what data to put into .pkgdef file. + /// + /// + /// To get loaded into VS, the package must be referred by <Asset Type="Microsoft.VisualStudio.VsPackage" ...> in .vsixmanifest file. + /// + /// + /// + [PackageRegistration(UseManagedResourcesOnly = true)] + [InstalledProductRegistration("#110", "#112", "9.00.19", IconResourceID = 400)] // Info on this package for Help/About + [ProvideMenuResource("Menus.ctmenu", 1)] + //[ProvideAutoLoad("ADFC4E64-0397-11D1-9F4E-00A0C911004F")] + [Guid(CxViewerPackage.PackageGuidString)] + [ProvideOptionPage(typeof(AuthenticationOptionPage),"CxViewer", "Authentication", 0, 0, true)] + [ProvideOptionPage(typeof(ConnectionOptionPage), "CxViewer", "Connection", 0, 1, true)] + [ProvideOptionPage(typeof(CompressionOptionPage), "CxViewer", "Compression", 0, 2, true)] + [SuppressMessage("StyleCop.CSharp.DocumentationRules", "SA1650:ElementDocumentationMustBeSpelledCorrectly", Justification = "pkgdef, VS and vsixmanifest are valid VS terms")] + [ProvideToolWindow(typeof(CxViewerVSIX.ToolWindows.ResultsToolWindow))] + //[ProvideToolWindowVisibility(typeof(CxViewerVSIX.ToolWindows.ResultsToolWindow), VSConstants.UICONTEXT.SolutionExists_string)] + [ProvideToolWindow(typeof(CxViewerVSIX.ToolWindows.ScanProcessToolWindow))] + //[ProvideToolWindowVisibility(typeof(CxViewerVSIX.ToolWindows.ScanProcessToolWindow), VSConstants.UICONTEXT.SolutionExists_string)] + [ProvideToolWindow(typeof(CxViewerVSIX.ToolWindows.ReportToolWindow))] + //[ProvideToolWindowVisibility(typeof(CxViewerVSIX.ToolWindows.ReportToolWindow), VSConstants.UICONTEXT.SolutionExists_string)] + [ProvideToolWindow(typeof(CxViewerVSIX.ToolWindows.PathToolWindow))] + //[ProvideToolWindowVisibility(typeof(CxViewerVSIX.ToolWindows.PathToolWindow), VSConstants.UICONTEXT.SolutionExists_string)] + [ProvideToolWindow(typeof(CxViewerVSIX.ToolWindows.GraphToolWindow))] + //[ProvideToolWindowVisibility(typeof(CxViewerVSIX.ToolWindows.GraphToolWindow), VSConstants.UICONTEXT.SolutionExists_string)] + public sealed class CxViewerPackage : Package + { + /// + /// CxViewerPackage GUID string. + /// + public const string PackageGuidString = "a0f2f05a-074f-4c52-9af8-a14f1e28cf09"; + + /// + /// Initializes a new instance of the class. + /// + public CxViewerPackage() + { + // Inside this method you can place any initialization code that does not require + // any Visual Studio service because at this point the package object is created but + // not sited yet inside Visual Studio environment. The place to do all the other + // initialization is the Initialize method. + } + + #region Package Members + + /// + /// Initialization of the package; this method is called right after the package is sited, so this is the place + /// where you can put all the initialization code that rely on services provided by VisualStudio. + /// + protected override void Initialize() + { + base.Initialize(); + ScanCommand.Initialize(this); + BindCommand.Initialize(this); + ShowStoredResultsCommand.Initialize(this); + RetrieveResultsCommand.Initialize(this); + IncrementalScanCommand.Initialize(this); + + Connect connect = new Connect(); + connect.OnConnection(GetDTE()); + + + CommonActions ca = CommonActionsInstance.getInstance(); + ca.ApplicationObject = GetDTE(); + } +#if CxViewer2022 + public DTE2 GetDTE() { + return GetService(typeof(SDTE)) as DTE2; + } + +#else + public DTE2 GetDTE() + { + return GetService(typeof(SDTE)) as DTE2; + } +#endif + +#endregion + + } +} diff --git a/CxViewerVSIX/CxViewerPackageGuids.cs b/CxViewerShared/CxViewerPackageGuids.cs similarity index 96% rename from CxViewerVSIX/CxViewerPackageGuids.cs rename to CxViewerShared/CxViewerPackageGuids.cs index 6c926266..9867095c 100644 --- a/CxViewerVSIX/CxViewerPackageGuids.cs +++ b/CxViewerShared/CxViewerPackageGuids.cs @@ -1,16 +1,16 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace CxViewerVSIX -{ - static internal class CxViewerPackageGuids - { - public const string guidCxViewerPackageCmdSetString = "6fe6907c-5802-49b0-9203-e9f5a52a01cb"; - - public static readonly Guid guidCxViewerPackageCmdSet = new Guid(guidCxViewerPackageCmdSetString); - - } -} +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CxViewerVSIX +{ + static internal class CxViewerPackageGuids + { + public const string guidCxViewerPackageCmdSetString = "6fe6907c-5802-49b0-9203-e9f5a52a01cb"; + + public static readonly Guid guidCxViewerPackageCmdSet = new Guid(guidCxViewerPackageCmdSetString); + + } +} diff --git a/CxViewerShared/CxViewerShared.projitems b/CxViewerShared/CxViewerShared.projitems new file mode 100644 index 00000000..e4dfa8ed --- /dev/null +++ b/CxViewerShared/CxViewerShared.projitems @@ -0,0 +1,53 @@ + + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) + true + 0627d27e-4065-4b98-94a7-01f77f1357e1 + + + CxViewerShared + + + + + + + + + + + + Component + + + Component + + + Component + + + + + + + + + + + Always + + + + Always + + + + + + + + Designer + + + \ No newline at end of file diff --git a/CxViewerShared/CxViewerShared.shproj b/CxViewerShared/CxViewerShared.shproj new file mode 100644 index 00000000..33fd18bd --- /dev/null +++ b/CxViewerShared/CxViewerShared.shproj @@ -0,0 +1,13 @@ + + + + 0627d27e-4065-4b98-94a7-01f77f1357e1 + 14.0 + + + + + + + + diff --git a/CxViewerVSIX/OptionsPages/AuthenticationOptionPage.cs b/CxViewerShared/OptionsPages/AuthenticationOptionPage.cs similarity index 95% rename from CxViewerVSIX/OptionsPages/AuthenticationOptionPage.cs rename to CxViewerShared/OptionsPages/AuthenticationOptionPage.cs index 7ce11819..5c1d43ec 100644 --- a/CxViewerVSIX/OptionsPages/AuthenticationOptionPage.cs +++ b/CxViewerShared/OptionsPages/AuthenticationOptionPage.cs @@ -1,40 +1,40 @@ -using CxViewerAction.Views.DockedView; -using Microsoft.VisualStudio.Shell; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Runtime.InteropServices; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; - -namespace CxViewerVSIX.OptionsPages -{ - [Guid("CF7539CD-011B-4D31-9DEA-1297078C05A0")] - public class AuthenticationOptionPage : DialogPage - { - protected OptionsAuthCtrl _page; - - protected override void OnApply(PageApplyEventArgs e) - { - Page.OnOK(); - } - - protected override IWin32Window Window - { - get - { - return Page; - } - } - - public OptionsAuthCtrl Page { - get { - if (_page == null) - _page = new OptionsAuthCtrl(); - return _page; - } - } - } - -} +using CxViewerAction.Views.DockedView; +using Microsoft.VisualStudio.Shell; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.InteropServices; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace CxViewerVSIX.OptionsPages +{ + [Guid("CF7539CD-011B-4D31-9DEA-1297078C05A0")] + public class AuthenticationOptionPage : DialogPage + { + protected OptionsAuthCtrl _page; + + protected override void OnApply(PageApplyEventArgs e) + { + Page.OnOK(); + } + + protected override IWin32Window Window + { + get + { + return Page; + } + } + + public OptionsAuthCtrl Page { + get { + if (_page == null) + _page = new OptionsAuthCtrl(); + return _page; + } + } + } + +} diff --git a/CxViewerVSIX/OptionsPages/CompressionOptionPage.cs b/CxViewerShared/OptionsPages/CompressionOptionPage.cs similarity index 95% rename from CxViewerVSIX/OptionsPages/CompressionOptionPage.cs rename to CxViewerShared/OptionsPages/CompressionOptionPage.cs index 566c8551..519059ad 100644 --- a/CxViewerVSIX/OptionsPages/CompressionOptionPage.cs +++ b/CxViewerShared/OptionsPages/CompressionOptionPage.cs @@ -1,40 +1,40 @@ -using CxViewerAction.Views.DockedView; -using Microsoft.VisualStudio.Shell; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Runtime.InteropServices; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; - -namespace CxViewerVSIX.OptionsPages -{ - [Guid("ED15360C-D6F5-42D9-A5D2-A86FDBD32A1D")] - public class CompressionOptionPage : DialogPage - { - protected OptionsZipCtrl _page; - - protected override void OnApply(PageApplyEventArgs e) - { - Page.OnOK(); - } - - protected override IWin32Window Window - { - get - { - return Page; - } - } - - public OptionsZipCtrl Page { - get { - if (_page == null) - _page = new OptionsZipCtrl(); - return _page; - } - } - } - -} +using CxViewerAction.Views.DockedView; +using Microsoft.VisualStudio.Shell; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.InteropServices; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace CxViewerVSIX.OptionsPages +{ + [Guid("ED15360C-D6F5-42D9-A5D2-A86FDBD32A1D")] + public class CompressionOptionPage : DialogPage + { + protected OptionsZipCtrl _page; + + protected override void OnApply(PageApplyEventArgs e) + { + Page.OnOK(); + } + + protected override IWin32Window Window + { + get + { + return Page; + } + } + + public OptionsZipCtrl Page { + get { + if (_page == null) + _page = new OptionsZipCtrl(); + return _page; + } + } + } + +} diff --git a/CxViewerVSIX/OptionsPages/ConnectionOptionPage.cs b/CxViewerShared/OptionsPages/ConnectionOptionPage.cs similarity index 95% rename from CxViewerVSIX/OptionsPages/ConnectionOptionPage.cs rename to CxViewerShared/OptionsPages/ConnectionOptionPage.cs index 496a1569..837d1222 100644 --- a/CxViewerVSIX/OptionsPages/ConnectionOptionPage.cs +++ b/CxViewerShared/OptionsPages/ConnectionOptionPage.cs @@ -1,40 +1,40 @@ -using CxViewerAction.Views.DockedView; -using Microsoft.VisualStudio.Shell; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Runtime.InteropServices; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; - -namespace CxViewerVSIX.OptionsPages -{ - [Guid("DE81EF74-9A1A-4175-A780-6E6F7BA5B8C7")] - public class ConnectionOptionPage : DialogPage - { - protected ConnectionCtrl _page; - - protected override void OnApply(PageApplyEventArgs e) - { - Page.OnOK(); - } - - protected override IWin32Window Window - { - get - { - return Page; - } - } - - public ConnectionCtrl Page { - get { - if (_page == null) - _page = new ConnectionCtrl(); - return _page; - } - } - } - -} +using CxViewerAction.Views.DockedView; +using Microsoft.VisualStudio.Shell; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.InteropServices; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace CxViewerVSIX.OptionsPages +{ + [Guid("DE81EF74-9A1A-4175-A780-6E6F7BA5B8C7")] + public class ConnectionOptionPage : DialogPage + { + protected ConnectionCtrl _page; + + protected override void OnApply(PageApplyEventArgs e) + { + Page.OnOK(); + } + + protected override IWin32Window Window + { + get + { + return Page; + } + } + + public ConnectionCtrl Page { + get { + if (_page == null) + _page = new ConnectionCtrl(); + return _page; + } + } + } + +} diff --git a/CxViewerVSIX/Resources/Checkmarx.ico b/CxViewerShared/Resources/Checkmarx.ico similarity index 100% rename from CxViewerVSIX/Resources/Checkmarx.ico rename to CxViewerShared/Resources/Checkmarx.ico diff --git a/CxViewerShared/Resources/LICENSE2 b/CxViewerShared/Resources/LICENSE2 new file mode 100644 index 00000000..abbeb4c6 --- /dev/null +++ b/CxViewerShared/Resources/LICENSE2 @@ -0,0 +1,30 @@ +// Copyright The CefSharp Authors. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// * Neither the name of Google Inc. nor the name Chromium Embedded +// Framework nor the name CefSharp nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/CxViewerVSIX/Resources/bind.png b/CxViewerShared/Resources/bind.png similarity index 100% rename from CxViewerVSIX/Resources/bind.png rename to CxViewerShared/Resources/bind.png diff --git a/CxViewerVSIX/Resources/incremental_scan.png b/CxViewerShared/Resources/incremental_scan.png similarity index 100% rename from CxViewerVSIX/Resources/incremental_scan.png rename to CxViewerShared/Resources/incremental_scan.png diff --git a/CxViewerVSIX/Resources/retrieve_results.png b/CxViewerShared/Resources/retrieve_results.png similarity index 100% rename from CxViewerVSIX/Resources/retrieve_results.png rename to CxViewerShared/Resources/retrieve_results.png diff --git a/CxViewerVSIX/Resources/scan.png b/CxViewerShared/Resources/scan.png similarity index 100% rename from CxViewerVSIX/Resources/scan.png rename to CxViewerShared/Resources/scan.png diff --git a/CxViewerVSIX/Resources/stored_results.png b/CxViewerShared/Resources/stored_results.png similarity index 100% rename from CxViewerVSIX/Resources/stored_results.png rename to CxViewerShared/Resources/stored_results.png diff --git a/CxViewerVSIX/ToolWindows/BindToolWindow.cs b/CxViewerShared/ToolWindows/BindToolWindow.cs similarity index 97% rename from CxViewerVSIX/ToolWindows/BindToolWindow.cs rename to CxViewerShared/ToolWindows/BindToolWindow.cs index 331eca0c..dd7f933d 100644 --- a/CxViewerVSIX/ToolWindows/BindToolWindow.cs +++ b/CxViewerShared/ToolWindows/BindToolWindow.cs @@ -1,53 +1,53 @@ -//------------------------------------------------------------------------------ -// -// Copyright (c) Company. All rights reserved. -// -//------------------------------------------------------------------------------ - -namespace CxViewerVSIX.ToolWindows -{ - using System; - using System.Runtime.InteropServices; - using Microsoft.VisualStudio.Shell; - using CxViewerAction.Views; - using System.Windows.Forms; - - /// - /// This class implements the tool window exposed by this package and hosts a user control. - /// - /// - /// In Visual Studio tool windows are composed of a frame (implemented by the shell) and a pane, - /// usually implemented by the package implementer. - /// - /// This class derives from the ToolWindowPane class provided from the MPF in order to use its - /// implementation of the IVsUIElementPane interface. - /// - /// - [Guid("79837dd0-fdf7-4a00-8d78-19147dec642b")] - public class BindToolWindow : ToolWindowPane - { - private frmBindingPrjList _window; - - /// - /// Initializes a new instance of the class. - /// - public BindToolWindow() : base(null) - { - this.Caption = "BindToolWindow"; - - // This is the user control hosted by the tool window; Note that, even if this class implements IDisposable, - // we are not calling Dispose on this object. This is because ToolWindowPane calls Dispose on - // the object returned by the Content property. - //this.Content = new BindToolWindowControl(); - _window = new frmBindingPrjList(); - } - - public override IWin32Window Window - { - get - { - return this._window; - } - } - } -} +//------------------------------------------------------------------------------ +// +// Copyright (c) Company. All rights reserved. +// +//------------------------------------------------------------------------------ + +namespace CxViewerVSIX.ToolWindows +{ + using System; + using System.Runtime.InteropServices; + using Microsoft.VisualStudio.Shell; + using CxViewerAction.Views; + using System.Windows.Forms; + + /// + /// This class implements the tool window exposed by this package and hosts a user control. + /// + /// + /// In Visual Studio tool windows are composed of a frame (implemented by the shell) and a pane, + /// usually implemented by the package implementer. + /// + /// This class derives from the ToolWindowPane class provided from the MPF in order to use its + /// implementation of the IVsUIElementPane interface. + /// + /// + [Guid("79837dd0-fdf7-4a00-8d78-19147dec642b")] + public class BindToolWindow : ToolWindowPane + { + private frmBindingPrjList _window; + + /// + /// Initializes a new instance of the class. + /// + public BindToolWindow() : base(null) + { + this.Caption = "BindToolWindow"; + + // This is the user control hosted by the tool window; Note that, even if this class implements IDisposable, + // we are not calling Dispose on this object. This is because ToolWindowPane calls Dispose on + // the object returned by the Content property. + //this.Content = new BindToolWindowControl(); + _window = new frmBindingPrjList(); + } + + public override IWin32Window Window + { + get + { + return this._window; + } + } + } +} diff --git a/CxViewerVSIX/ToolWindows/GraphToolWindow.cs b/CxViewerShared/ToolWindows/GraphToolWindow.cs similarity index 87% rename from CxViewerVSIX/ToolWindows/GraphToolWindow.cs rename to CxViewerShared/ToolWindows/GraphToolWindow.cs index 5ebc7be8..07500895 100644 --- a/CxViewerVSIX/ToolWindows/GraphToolWindow.cs +++ b/CxViewerShared/ToolWindows/GraphToolWindow.cs @@ -1,66 +1,61 @@ -//------------------------------------------------------------------------------ -// -// Copyright (c) Company. All rights reserved. -// -//------------------------------------------------------------------------------ - -using CxViewerAction.Views.DockedView; -using EnvDTE; - -namespace CxViewerVSIX.ToolWindows -{ - using System; - using System.Runtime.InteropServices; - using System.Windows.Forms; - using Microsoft.VisualStudio.Shell; - - /// - /// This class implements the tool window exposed by this package and hosts a user control. - /// - /// - /// In Visual Studio tool windows are composed of a frame (implemented by the shell) and a pane, - /// usually implemented by the package implementer. - /// - /// This class derives from the ToolWindowPane class provided from the MPF in order to use its - /// implementation of the IVsUIElementPane interface. - /// - /// - [Guid("10636cbc-e7e2-4d03-b905-e91de94c7cb1")] - public class GraphToolWindow : ToolWindowPane - { - /// - /// Initializes a new instance of the class. - /// - public GraphToolWindow() : base(null) - { - this.Caption = "CxViewer Graph"; - - // This is the user control hosted by the tool window; Note that, even if this class implements IDisposable, - // we are not calling Dispose on this object. This is because ToolWindowPane calls Dispose on - // the object returned by the Content property. - - } - - private PerspectiveGraphCtrl ctrl = new PerspectiveGraphCtrl(); - public override IWin32Window Window - { - get - { - return ctrl; - } - } - - private static int id = 0; - public static int ID - { - get { return id; } - } - - protected override void Dispose(bool disposing) - { - PerspectiveGraphCtrl ctrl = this.Window as PerspectiveGraphCtrl; - ctrl.ClearGraphView(); - base.Dispose(disposing); - } - } -} +//------------------------------------------------------------------------------ +// +// Copyright (c) Company. All rights reserved. +// +//------------------------------------------------------------------------------ + +using CxViewerAction.Views.DockedView; +using EnvDTE; + +namespace CxViewerVSIX.ToolWindows +{ + using System; + using System.Runtime.InteropServices; + using System.Windows.Forms; + using Microsoft.VisualStudio.Shell; + using Microsoft.VisualStudio.Utilities; + + /// + /// This class implements the tool window exposed by this package and hosts a user control. + /// + /// + /// In Visual Studio tool windows are composed of a frame (implemented by the shell) and a pane, + /// usually implemented by the package implementer. + /// + /// This class derives from the ToolWindowPane class provided from the MPF in order to use its + /// implementation of the IVsUIElementPane interface. + /// + /// + [Guid("10636cbc-e7e2-4d03-b905-e91de94c7cb1")] + public class GraphToolWindow : ToolWindowPane + { + /// + /// Initializes a new instance of the class. + /// + public GraphToolWindow() : base(null) + { + this.Caption = "CxViewer Graph"; + + // This is the user control hosted by the tool window; Note that, even if this class implements IDisposable, + // we are not calling Dispose on this object. This is because ToolWindowPane calls Dispose on + // the object returned by the Content property. + + } + + private PerspectiveGraphCtrl ctrl; + override public IWin32Window Window { get { using (DpiAwareness.EnterDpiScope(DpiAwarenessContext.SystemAware)) { if (ctrl == null) ctrl = new PerspectiveGraphCtrl(); return ctrl; } } } + + private static int id = 0; + public static int ID + { + get { return id; } + } + + protected override void Dispose(bool disposing) + { + PerspectiveGraphCtrl ctrl = this.Window as PerspectiveGraphCtrl; + ctrl.ClearGraphView(); + base.Dispose(disposing); + } + } +} diff --git a/CxViewerVSIX/ToolWindows/PathToolWindow.cs b/CxViewerShared/ToolWindows/PathToolWindow.cs similarity index 87% rename from CxViewerVSIX/ToolWindows/PathToolWindow.cs rename to CxViewerShared/ToolWindows/PathToolWindow.cs index 9f8f7c17..8712d436 100644 --- a/CxViewerVSIX/ToolWindows/PathToolWindow.cs +++ b/CxViewerShared/ToolWindows/PathToolWindow.cs @@ -1,66 +1,61 @@ -//------------------------------------------------------------------------------ -// -// Copyright (c) Company. All rights reserved. -// -//------------------------------------------------------------------------------ - -using CxViewerAction.Views.DockedView; -using EnvDTE; - -namespace CxViewerVSIX.ToolWindows -{ - using System; - using System.Runtime.InteropServices; - using Microsoft.VisualStudio.Shell; - using System.Windows.Forms; - - /// - /// This class implements the tool window exposed by this package and hosts a user control. - /// - /// - /// In Visual Studio tool windows are composed of a frame (implemented by the shell) and a pane, - /// usually implemented by the package implementer. - /// - /// This class derives from the ToolWindowPane class provided from the MPF in order to use its - /// implementation of the IVsUIElementPane interface. - /// - /// - [Guid("9076c67c-b323-4590-a171-f0a657efa281")] - public class PathToolWindow : ToolWindowPane - { - /// - /// Initializes a new instance of the class. - /// - public PathToolWindow() : base(null) - { - this.Caption = "CxViewer Path"; - - // This is the user control hosted by the tool window; Note that, even if this class implements IDisposable, - // we are not calling Dispose on this object. This is because ToolWindowPane calls Dispose on - // the object returned by the Content property. - - } - - private PerspectivePathCtrl ctrl = new PerspectivePathCtrl(); - public override IWin32Window Window - { - get - { - return ctrl; - } - } - - private static int id = 1; - public static int ID - { - get { return id; } - } - - protected override void Dispose(bool disposing) - { - PerspectivePathCtrl ctrl = this.Window as PerspectivePathCtrl; - ctrl.ClearView(); - base.Dispose(disposing); - } - } -} +//------------------------------------------------------------------------------ +// +// Copyright (c) Company. All rights reserved. +// +//------------------------------------------------------------------------------ + +using CxViewerAction.Views.DockedView; +using EnvDTE; + +namespace CxViewerVSIX.ToolWindows +{ + using System; + using System.Runtime.InteropServices; + using Microsoft.VisualStudio.Shell; + using System.Windows.Forms; + using Microsoft.VisualStudio.Utilities; + + /// + /// This class implements the tool window exposed by this package and hosts a user control. + /// + /// + /// In Visual Studio tool windows are composed of a frame (implemented by the shell) and a pane, + /// usually implemented by the package implementer. + /// + /// This class derives from the ToolWindowPane class provided from the MPF in order to use its + /// implementation of the IVsUIElementPane interface. + /// + /// + [Guid("9076c67c-b323-4590-a171-f0a657efa281")] + public class PathToolWindow : ToolWindowPane + { + /// + /// Initializes a new instance of the class. + /// + public PathToolWindow() : base(null) + { + this.Caption = "CxViewer Path"; + + // This is the user control hosted by the tool window; Note that, even if this class implements IDisposable, + // we are not calling Dispose on this object. This is because ToolWindowPane calls Dispose on + // the object returned by the Content property. + + } + + private PerspectivePathCtrl ctrl; + override public IWin32Window Window { get { using (DpiAwareness.EnterDpiScope(DpiAwarenessContext.SystemAware)) { if (ctrl == null) ctrl = new PerspectivePathCtrl(); return ctrl; } } } + + private static int id = 1; + public static int ID + { + get { return id; } + } + + protected override void Dispose(bool disposing) + { + PerspectivePathCtrl ctrl = this.Window as PerspectivePathCtrl; + ctrl.ClearView(); + base.Dispose(disposing); + } + } +} diff --git a/CxViewerVSIX/ToolWindows/ReportToolWindow.cs b/CxViewerShared/ToolWindows/ReportToolWindow.cs similarity index 88% rename from CxViewerVSIX/ToolWindows/ReportToolWindow.cs rename to CxViewerShared/ToolWindows/ReportToolWindow.cs index 2d64b79c..1f9183d2 100644 --- a/CxViewerVSIX/ToolWindows/ReportToolWindow.cs +++ b/CxViewerShared/ToolWindows/ReportToolWindow.cs @@ -1,65 +1,60 @@ -//------------------------------------------------------------------------------ -// -// Copyright (c) Company. All rights reserved. -// -//------------------------------------------------------------------------------ - -using CxViewerAction.Views.DockedView; -using EnvDTE; - -namespace CxViewerVSIX.ToolWindows -{ - using System; - using System.Runtime.InteropServices; - using Microsoft.VisualStudio.Shell; - using System.Windows.Forms; - - /// - /// This class implements the tool window exposed by this package and hosts a user control. - /// - /// - /// In Visual Studio tool windows are composed of a frame (implemented by the shell) and a pane, - /// usually implemented by the package implementer. - /// - /// This class derives from the ToolWindowPane class provided from the MPF in order to use its - /// implementation of the IVsUIElementPane interface. - /// - /// - [Guid("adbf8b86-91e9-4f27-ab37-3614f17c594d")] - public class ReportToolWindow : ToolWindowPane - { - /// - /// Initializes a new instance of the class. - /// - public ReportToolWindow() : base(null) - { - this.Caption = "CxViewer Tree"; - - // This is the user control hosted by the tool window; Note that, even if this class implements IDisposable, - // we are not calling Dispose on this object. This is because ToolWindowPane calls Dispose on - // the object returned by the Content property. - } - - private PerspectiveCtrl ctrl = new PerspectiveCtrl(); - public override IWin32Window Window - { - get - { - return ctrl; - } - } - - private static int id = 2; - public static int ID - { - get { return id; } - } - - protected override void Dispose(bool disposing) - { - PerspectiveCtrl ctrl = this.Window as PerspectiveCtrl; - // clear? - base.Dispose(disposing); - } - } -} +//------------------------------------------------------------------------------ +// +// Copyright (c) Company. All rights reserved. +// +//------------------------------------------------------------------------------ + +using CxViewerAction.Views.DockedView; +using EnvDTE; + +namespace CxViewerVSIX.ToolWindows +{ + using System; + using System.Runtime.InteropServices; + using Microsoft.VisualStudio.Shell; + using System.Windows.Forms; + using Microsoft.VisualStudio.Utilities; + + /// + /// This class implements the tool window exposed by this package and hosts a user control. + /// + /// + /// In Visual Studio tool windows are composed of a frame (implemented by the shell) and a pane, + /// usually implemented by the package implementer. + /// + /// This class derives from the ToolWindowPane class provided from the MPF in order to use its + /// implementation of the IVsUIElementPane interface. + /// + /// + [Guid("adbf8b86-91e9-4f27-ab37-3614f17c594d")] + public class ReportToolWindow : ToolWindowPane + { + /// + /// Initializes a new instance of the class. + /// + public ReportToolWindow() : base(null) + { + this.Caption = "CxViewer Tree"; + + // This is the user control hosted by the tool window; Note that, even if this class implements IDisposable, + // we are not calling Dispose on this object. This is because ToolWindowPane calls Dispose on + // the object returned by the Content property. + } + + private PerspectiveCtrl ctrl; + override public IWin32Window Window { get { using (DpiAwareness.EnterDpiScope(DpiAwarenessContext.SystemAware)) { if (ctrl == null) ctrl = new PerspectiveCtrl(); return ctrl; } } } + + private static int id = 2; + public static int ID + { + get { return id; } + } + + protected override void Dispose(bool disposing) + { + PerspectiveCtrl ctrl = this.Window as PerspectiveCtrl; + // clear? + base.Dispose(disposing); + } + } +} diff --git a/CxViewerVSIX/ToolWindows/ResultsToolWindow.cs b/CxViewerShared/ToolWindows/ResultsToolWindow.cs similarity index 87% rename from CxViewerVSIX/ToolWindows/ResultsToolWindow.cs rename to CxViewerShared/ToolWindows/ResultsToolWindow.cs index 12ff10ef..b2432731 100644 --- a/CxViewerVSIX/ToolWindows/ResultsToolWindow.cs +++ b/CxViewerShared/ToolWindows/ResultsToolWindow.cs @@ -1,67 +1,62 @@ -//------------------------------------------------------------------------------ -// -// Copyright (c) Company. All rights reserved. -// -//------------------------------------------------------------------------------ - -using CxViewerAction.Views.DockedView; -using EnvDTE; - -namespace CxViewerVSIX.ToolWindows -{ - using System; - using System.Runtime.InteropServices; - using System.Windows.Forms; - using Microsoft.VisualStudio.Shell; - using EnvDTE; - - /// - /// This class implements the tool window exposed by this package and hosts a user control. - /// - /// - /// In Visual Studio tool windows are composed of a frame (implemented by the shell) and a pane, - /// usually implemented by the package implementer. - /// - /// This class derives from the ToolWindowPane class provided from the MPF in order to use its - /// implementation of the IVsUIElementPane interface. - /// - /// - [Guid("14306b97-381f-4f13-8795-cb6fc39aff5d")] - public class ResultsToolWindow : ToolWindowPane - { - - /// - /// Initializes a new instance of the class. - /// - public ResultsToolWindow() : base(null) - { - this.Caption = "CxViewer Result"; - - // This is the user control hosted by the tool window; Note that, even if this class implements IDisposable, - // we are not calling Dispose on this object. This is because ToolWindowPane calls Dispose on - // the object returned by the Content property. - } - - private PerspectiveResultCtrl ctrl = new PerspectiveResultCtrl(); - public override IWin32Window Window - { - get - { - return ctrl; - } - } - - private static int id = 3; - public static int ID - { - get { return id; } - } - - protected override void Dispose(bool disposing) - { - PerspectiveResultCtrl ctrl = this.Window as PerspectiveResultCtrl; - // clear? - base.Dispose(disposing); - } - } -} +//------------------------------------------------------------------------------ +// +// Copyright (c) Company. All rights reserved. +// +//------------------------------------------------------------------------------ + +using CxViewerAction.Views.DockedView; +using EnvDTE; + +namespace CxViewerVSIX.ToolWindows +{ + using System; + using System.Runtime.InteropServices; + using System.Windows.Forms; + using Microsoft.VisualStudio.Shell; + using EnvDTE; + using Microsoft.VisualStudio.Utilities; + + /// + /// This class implements the tool window exposed by this package and hosts a user control. + /// + /// + /// In Visual Studio tool windows are composed of a frame (implemented by the shell) and a pane, + /// usually implemented by the package implementer. + /// + /// This class derives from the ToolWindowPane class provided from the MPF in order to use its + /// implementation of the IVsUIElementPane interface. + /// + /// + [Guid("14306b97-381f-4f13-8795-cb6fc39aff5d")] + public class ResultsToolWindow : ToolWindowPane + { + + /// + /// Initializes a new instance of the class. + /// + public ResultsToolWindow() : base(null) + { + this.Caption = "CxViewer Result"; + + // This is the user control hosted by the tool window; Note that, even if this class implements IDisposable, + // we are not calling Dispose on this object. This is because ToolWindowPane calls Dispose on + // the object returned by the Content property. + } + + private PerspectiveResultCtrl ctrl; + override public IWin32Window Window { get { using (DpiAwareness.EnterDpiScope(DpiAwarenessContext.SystemAware)) { if (ctrl == null) ctrl = new PerspectiveResultCtrl(); return ctrl; } } } + + private static int id = 3; + public static int ID + { + get { return id; } + } + + protected override void Dispose(bool disposing) + { + PerspectiveResultCtrl ctrl = this.Window as PerspectiveResultCtrl; + // clear? + base.Dispose(disposing); + } + } +} diff --git a/CxViewerVSIX/ToolWindows/ScanProcessToolWindow.cs b/CxViewerShared/ToolWindows/ScanProcessToolWindow.cs similarity index 88% rename from CxViewerVSIX/ToolWindows/ScanProcessToolWindow.cs rename to CxViewerShared/ToolWindows/ScanProcessToolWindow.cs index cfb2f99b..76cdc2a7 100644 --- a/CxViewerVSIX/ToolWindows/ScanProcessToolWindow.cs +++ b/CxViewerShared/ToolWindows/ScanProcessToolWindow.cs @@ -1,68 +1,64 @@ -//------------------------------------------------------------------------------ -// -// Copyright (c) Company. All rights reserved. -// -//------------------------------------------------------------------------------ - -using CxViewerAction.Views.DockedView; -using EnvDTE; - -namespace CxViewerVSIX.ToolWindows -{ - using System; - using System.Runtime.InteropServices; - using Microsoft.VisualStudio.Shell; - using System.Windows.Forms; - - /// - /// This class implements the tool window exposed by this package and hosts a user control. - /// - /// - /// In Visual Studio tool windows are composed of a frame (implemented by the shell) and a pane, - /// usually implemented by the package implementer. - /// - /// This class derives from the ToolWindowPane class provided from the MPF in order to use its - /// implementation of the IVsUIElementPane interface. - /// - /// - [Guid("a2ba5807-2044-4db7-9ecf-b1fd8d2ed894")] - public class ScanProcessToolWindow : ToolWindowPane - { - /// - /// Initializes a new instance of the class. - /// - public ScanProcessToolWindow() : base(null) - { - this.Caption = "CxViewer Scan Progress"; - - // This is the user control hosted by the tool window; Note that, even if this class implements IDisposable, - // we are not calling Dispose on this object. This is because ToolWindowPane calls Dispose on - // the object returned by the Content property. - //this.Content = ctrl; - //((Window) Content).IsFloating = false; - } - - - private ScanProcessCtrl ctrl = new ScanProcessCtrl(); - public override IWin32Window Window - { - get - { - return ctrl; - } - } - - private static int id = 4; - public static int ID - { - get { return id; } - } - - protected override void Dispose(bool disposing) - { - ScanProcessCtrl ctrl = this.Window as ScanProcessCtrl; - ctrl.Clear(); - base.Dispose(disposing); - } - } -} +//------------------------------------------------------------------------------ +// +// Copyright (c) Company. All rights reserved. +// +//------------------------------------------------------------------------------ + +using CxViewerAction.Views.DockedView; +using EnvDTE; + +namespace CxViewerVSIX.ToolWindows +{ + using System; + using System.Runtime.InteropServices; + using Microsoft.VisualStudio.Shell; + using System.Windows.Forms; + using Microsoft.VisualStudio.Utilities; + + /// + /// This class implements the tool window exposed by this package and hosts a user control. + /// + /// + /// In Visual Studio tool windows are composed of a frame (implemented by the shell) and a pane, + /// usually implemented by the package implementer. + /// + /// This class derives from the ToolWindowPane class provided from the MPF in order to use its + /// implementation of the IVsUIElementPane interface. + /// + /// + [Guid("a2ba5807-2044-4db7-9ecf-b1fd8d2ed894")] + public class ScanProcessToolWindow : ToolWindowPane + { + /// + /// Initializes a new instance of the class. + /// + public ScanProcessToolWindow() : base(null) + { + this.Caption = "CxViewer Scan Progress"; + + // This is the user control hosted by the tool window; Note that, even if this class implements IDisposable, + // we are not calling Dispose on this object. This is because ToolWindowPane calls Dispose on + // the object returned by the Content property. + //this.Content = ctrl; + //((Window) Content).IsFloating = false; + } + + + private ScanProcessCtrl ctrl; + override public IWin32Window Window { get { using (DpiAwareness.EnterDpiScope(DpiAwarenessContext.SystemAware)) { if (ctrl == null) ctrl = new ScanProcessCtrl(); return ctrl; } } } + + + private static int id = 4; + public static int ID + { + get { return id; } + } + + protected override void Dispose(bool disposing) + { + ScanProcessCtrl ctrl = this.Window as ScanProcessCtrl; + ctrl.Clear(); + base.Dispose(disposing); + } + } +} diff --git a/CxViewerVSIX/VSPackage.resx b/CxViewerShared/VSPackage.resx similarity index 97% rename from CxViewerVSIX/VSPackage.resx rename to CxViewerShared/VSPackage.resx index f2ed92be..e1448027 100644 --- a/CxViewerVSIX/VSPackage.resx +++ b/CxViewerShared/VSPackage.resx @@ -1,130 +1,130 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - CxViewer - - - Checkmarx Visual Studio Extension - - - - Resources\Checkmarx.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + CxViewer + + + Checkmarx Visual Studio Extension + + + + Resources\Checkmarx.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + \ No newline at end of file diff --git a/CxViewerVSIX/Checkmarx-X.ico b/CxViewerVSIX/Checkmarx-X.ico new file mode 100644 index 00000000..92a980b0 Binary files /dev/null and b/CxViewerVSIX/Checkmarx-X.ico differ diff --git a/CxViewerVSIX/CxViewerPackage.vsct b/CxViewerVSIX/CxViewerPackage.vsct deleted file mode 100644 index e274affd..00000000 --- a/CxViewerVSIX/CxViewerPackage.vsct +++ /dev/null @@ -1,278 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IconAndText - - CxViewer - CxViewer - - - - - - IconAndText - - CxViewer - CxViewer - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/CxViewerVSIX/CxViewerVSIX.csproj b/CxViewerVSIX/CxViewerVSIX.csproj index a38ac01c..a2324328 100644 --- a/CxViewerVSIX/CxViewerVSIX.csproj +++ b/CxViewerVSIX/CxViewerVSIX.csproj @@ -1,5 +1,6 @@  + 15.0 @@ -37,9 +38,13 @@ true - Key.snk + + + + bin\x86\Release\ + Debug @@ -51,7 +56,7 @@ Properties CxViewerVSIX CxViewerVSIX - v4.7.1 + v4.7.2 true true true @@ -64,7 +69,7 @@ full false bin\Debug\ - DEBUG;TRACE + TRACE prompt 4 false @@ -77,53 +82,24 @@ prompt 4 false + false - - - - - - - - Component - - - Component - - - Component - - - - - - - - - - - - - - Designer - - - + + LICENSE2 true + + Always + true - - - - - - Menus.ctmenu + + Designer - + @@ -132,58 +108,233 @@ False - - False + + True False - + + ..\packages\MessagePack.2.2.85\lib\netstandard2.0\MessagePack.dll + + + ..\packages\MessagePack.Annotations.2.2.85\lib\netstandard2.0\MessagePack.Annotations.dll + + + ..\packages\Microsoft.Bcl.AsyncInterfaces.6.0.0\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll + + + ..\packages\Microsoft.Build.Framework.16.5.0\lib\net472\Microsoft.Build.Framework.dll + + + ..\packages\Microsoft.ServiceHub.Client.3.1.2036\lib\net472\Microsoft.ServiceHub.Client.dll + + + ..\packages\Microsoft.ServiceHub.Framework.3.1.2036\lib\netstandard2.0\Microsoft.ServiceHub.Framework.dll + False - - - False - ..\References\Microsoft.VisualStudio.Shell.10.0.dll + + ..\packages\Microsoft.VisualStudio.ComponentModelHost.17.1.386\lib\net472\Microsoft.VisualStudio.ComponentModelHost.dll + + + ..\packages\Microsoft.VisualStudio.CoreUtility.17.0.487\lib\net472\Microsoft.VisualStudio.CoreUtility.dll + + + ..\packages\Microsoft.VisualStudio.GraphModel.17.1.32210.191\lib\net472\Microsoft.VisualStudio.GraphModel.dll + + + ..\packages\Microsoft.VisualStudio.ImageCatalog.17.1.32210.191\lib\net472\Microsoft.VisualStudio.ImageCatalog.dll + + + ..\packages\Microsoft.VisualStudio.Imaging.17.1.32210.191\lib\net472\Microsoft.VisualStudio.Imaging.dll + + + ..\packages\Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime.17.1.32210.191\lib\net472\Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime.dll + True + + + ..\packages\Microsoft.VisualStudio.OLE.Interop.16.7.30328.74\lib\net45\Microsoft.VisualStudio.OLE.Interop.dll + + + ..\packages\Microsoft.VisualStudio.ProjectAggregator.17.1.32210.191\lib\net472\Microsoft.VisualStudio.ProjectAggregator.dll + True + + + ..\packages\Microsoft.VisualStudio.RemoteControl.16.3.44\lib\net45\Microsoft.VisualStudio.RemoteControl.dll + + + ..\packages\Microsoft.VisualStudio.RpcContracts.17.1.13\lib\netstandard2.0\Microsoft.VisualStudio.RpcContracts.dll + + + + ..\packages\Microsoft.VisualStudio.Shell.Framework.17.1.32210.191\lib\net472\Microsoft.VisualStudio.Shell.Framework.dll + + + + ..\packages\Microsoft.VisualStudio.Shell.Immutable.11.0.11.0.50727\lib\net45\Microsoft.VisualStudio.Shell.Immutable.11.0.dll + + + ..\packages\Microsoft.VisualStudio.Shell.Immutable.12.0.12.0.21003\lib\net45\Microsoft.VisualStudio.Shell.Immutable.12.0.dll + + + ..\packages\Microsoft.VisualStudio.Shell.Immutable.14.0.14.3.25407\lib\net45\Microsoft.VisualStudio.Shell.Immutable.14.0.dll - True + ..\packages\Microsoft.VisualStudio.Shell.Interop.10.0.16.7.30328.74\lib\net45\Microsoft.VisualStudio.Shell.Interop.10.0.dll + True + + + ..\packages\Microsoft.VisualStudio.Shell.Interop.15.3.DesignTime.16.7.30328.74\lib\net45\Microsoft.VisualStudio.Shell.Interop.15.3.DesignTime.dll + True - + + ..\packages\Microsoft.VisualStudio.Shell.Interop.9.0.9.0.30730\lib\net11\Microsoft.VisualStudio.Shell.Interop.9.0.dll + + + ..\packages\Microsoft.VisualStudio.Telemetry.16.4.22\lib\net45\Microsoft.VisualStudio.Telemetry.dll + + + ..\packages\Microsoft.VisualStudio.Text.Data.17.0.487\lib\net472\Microsoft.VisualStudio.Text.Data.dll + + + ..\packages\Microsoft.VisualStudio.TextManager.Interop.16.7.30328.74\lib\net45\Microsoft.VisualStudio.TextManager.Interop.dll + + + ..\packages\Microsoft.VisualStudio.TextManager.Interop.8.0.16.7.30328.74\lib\net45\Microsoft.VisualStudio.TextManager.Interop.8.0.dll + + + ..\packages\Microsoft.VisualStudio.Threading.17.1.46\lib\net472\Microsoft.VisualStudio.Threading.dll + + + + ..\packages\Microsoft.VisualStudio.Utilities.Internal.16.3.36\lib\net45\Microsoft.VisualStudio.Utilities.Internal.dll + + + ..\packages\Microsoft.VisualStudio.Validation.17.0.43\lib\netstandard2.0\Microsoft.VisualStudio.Validation.dll + + + ..\packages\Microsoft.Win32.Registry.5.0.0\lib\net461\Microsoft.Win32.Registry.dll + + + ..\packages\Nerdbank.Streams.2.6.81\lib\netstandard2.0\Nerdbank.Streams.dll + + + + ..\packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll + False + + ..\packages\StreamJsonRpc.2.8.28\lib\netstandard2.0\StreamJsonRpc.dll + + + ..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + + + ..\packages\System.Collections.Immutable.5.0.0\lib\net461\System.Collections.Immutable.dll + + + + + ..\packages\System.Diagnostics.DiagnosticSource.5.0.1\lib\net46\System.Diagnostics.DiagnosticSource.dll + + + + ..\packages\System.IO.4.3.0\lib\net462\System.IO.dll + True + True + + + ..\packages\System.IO.Pipelines.5.0.1\lib\net461\System.IO.Pipelines.dll + + + + ..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll + + + ..\packages\System.Net.Http.4.3.4\lib\net46\System.Net.Http.dll + True + True + + + ..\packages\System.Net.WebSockets.4.3.0\lib\net46\System.Net.WebSockets.dll + True + True + + + + ..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + + + ..\packages\System.Runtime.4.3.0\lib\net462\System.Runtime.dll + True + True + + + ..\packages\System.Runtime.CompilerServices.Unsafe.5.0.0\lib\net45\System.Runtime.CompilerServices.Unsafe.dll + + + ..\packages\System.Security.AccessControl.6.0.0\lib\net461\System.Security.AccessControl.dll + + + ..\packages\System.Security.Cryptography.Algorithms.4.3.0\lib\net463\System.Security.Cryptography.Algorithms.dll + True + True + + + ..\packages\System.Security.Cryptography.Encoding.4.3.0\lib\net46\System.Security.Cryptography.Encoding.dll + True + True + + + ..\packages\System.Security.Cryptography.Primitives.4.3.0\lib\net46\System.Security.Cryptography.Primitives.dll + True + True + + + ..\packages\System.Security.Cryptography.X509Certificates.4.3.0\lib\net461\System.Security.Cryptography.X509Certificates.dll + True + True + + + ..\packages\System.Security.Principal.Windows.5.0.0\lib\net461\System.Security.Principal.Windows.dll + + + ..\packages\System.Threading.AccessControl.6.0.0\lib\net461\System.Threading.AccessControl.dll + + + ..\packages\System.Threading.Tasks.Dataflow.6.0.0\lib\net461\System.Threading.Tasks.Dataflow.dll + + + ..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll + + - - - true - VSPackage - Designer - - {9b747803-8500-4115-953e-ce7cbf2a14c2} Common - - {a3841a67-dae8-42bd-b0d4-9d0d1657f902} - CxViewerAction + + {3f7b5740-0c62-4cfb-883a-02b5722dae37} + CxViewerAction2019 {defbe28b-3b2e-4324-bbae-9b9783a29607} @@ -202,16 +353,58 @@ false + + + Menus.ctmenu + Designer + CxViewerPackage.vsct + + + bind.png + true + + + Checkmarx.ico + true + + + incremental_scan.png + true + + + retrieve_results.png + true + + + scan.png + true + + + stored_results.png + true + + + + + + + + + + + + + + + + - - - This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IconAndText + + CxViewer + CxViewer + + + + + + IconAndText + + CxViewer + CxViewer + + + + + + IconAndText + + CxViewer + CxViewer + + + + + IconAndText + + CxViewer + CxViewer + + + + + + IconAndText + + CxViewer + CxViewer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/CxViewerVSIX/Key.snk b/Shared/Key.snk similarity index 100% rename from CxViewerVSIX/Key.snk rename to Shared/Key.snk diff --git a/Shared/Resources/Checkmarx-X.ico b/Shared/Resources/Checkmarx-X.ico new file mode 100644 index 00000000..92a980b0 Binary files /dev/null and b/Shared/Resources/Checkmarx-X.ico differ diff --git a/Shared/Resources/Checkmarx.ico b/Shared/Resources/Checkmarx.ico new file mode 100644 index 00000000..adf7855e Binary files /dev/null and b/Shared/Resources/Checkmarx.ico differ diff --git a/Shared/Resources/LICENSE2 b/Shared/Resources/LICENSE2 new file mode 100644 index 00000000..abbeb4c6 --- /dev/null +++ b/Shared/Resources/LICENSE2 @@ -0,0 +1,30 @@ +// Copyright The CefSharp Authors. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// * Neither the name of Google Inc. nor the name Chromium Embedded +// Framework nor the name CefSharp nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/Shared/Resources/bind.png b/Shared/Resources/bind.png new file mode 100644 index 00000000..50c2f1ff Binary files /dev/null and b/Shared/Resources/bind.png differ diff --git a/Shared/Resources/checkmarx-80.png b/Shared/Resources/checkmarx-80.png new file mode 100644 index 00000000..20f2eebd Binary files /dev/null and b/Shared/Resources/checkmarx-80.png differ diff --git a/Shared/Resources/incremental_scan.png b/Shared/Resources/incremental_scan.png new file mode 100644 index 00000000..2cf57b25 Binary files /dev/null and b/Shared/Resources/incremental_scan.png differ diff --git a/Shared/Resources/retrieve_results.png b/Shared/Resources/retrieve_results.png new file mode 100644 index 00000000..e786180f Binary files /dev/null and b/Shared/Resources/retrieve_results.png differ diff --git a/Shared/Resources/scan.png b/Shared/Resources/scan.png new file mode 100644 index 00000000..ed0087ba Binary files /dev/null and b/Shared/Resources/scan.png differ diff --git a/Shared/Resources/stored_results.png b/Shared/Resources/stored_results.png new file mode 100644 index 00000000..75a38136 Binary files /dev/null and b/Shared/Resources/stored_results.png differ diff --git a/ci.msbuild b/ci.msbuild index cc8e0324..3c7dbfef 100644 --- a/ci.msbuild +++ b/ci.msbuild @@ -8,8 +8,9 @@ msbuild ci.msbuild /t:Pack - for pack $(MSBuildProjectDirectory) Release - Any CPU + x86 $(WorkingFolder)\CxViewer.sln + $(WorkingFolder)\CxViewerVSIX\CxViewerVSIX.csproj $(WorkingFolder)\.build $(WorkingFolder)\Artifacts @@ -24,7 +25,7 @@ msbuild ci.msbuild /t:Pack - for pack - @@ -35,8 +36,8 @@ msbuild ci.msbuild /t:Pack - for pack - + diff --git a/ci.msbuild2022 b/ci.msbuild2022 new file mode 100644 index 00000000..9b5d4aa4 --- /dev/null +++ b/ci.msbuild2022 @@ -0,0 +1,50 @@ + + + + + $(MSBuildProjectDirectory) + Release + x64 + $(WorkingFolder)\CxViewer.sln + $(WorkingFolder)\CxViewer2022\CxViewer2022.csproj + $(WorkingFolder)\.build + $(WorkingFolder)\Artifacts + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/.signature.p7s b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/.signature.p7s new file mode 100644 index 00000000..3b0d3869 Binary files /dev/null and b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/.signature.p7s differ diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/Microsoft.VSSDK.BuildTools.16.4.1057.nupkg b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/Microsoft.VSSDK.BuildTools.16.4.1057.nupkg new file mode 100644 index 00000000..ecced186 Binary files /dev/null and b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/Microsoft.VSSDK.BuildTools.16.4.1057.nupkg differ diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/build/Microsoft.VSSDK.BuildTools.props b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/build/Microsoft.VSSDK.BuildTools.props new file mode 100644 index 00000000..5e2cb731 --- /dev/null +++ b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/build/Microsoft.VSSDK.BuildTools.props @@ -0,0 +1,9 @@ + + + $(MSBuildThisFileDirectory)..\ + $(ThisPackageDirectory)\tools + $(VSToolsPath)\VSSDK + $(VsSDKInstall)\inc + $(VsSDKInstall)\bin + + \ No newline at end of file diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/build/Microsoft.VSSDK.BuildTools.targets b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/build/Microsoft.VSSDK.BuildTools.targets new file mode 100644 index 00000000..3cb90c40 --- /dev/null +++ b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/build/Microsoft.VSSDK.BuildTools.targets @@ -0,0 +1,17 @@ + + + + + + + + + System.Environment.SetEnvironmentVariable("VsSDKToolsPath", System.IO.Path.GetFullPath(ProjectDirectory + @"\..\tools\VSSDK\bin"),EnvironmentVariableTarget.Process); + System.Environment.SetEnvironmentVariable("VsSDKSchemaDir", System.IO.Path.GetFullPath(ProjectDirectory + @"\..\tools\VSSDK\schemas"),EnvironmentVariableTarget.Process); + + + + + + + \ No newline at end of file diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/Empty.resx b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/Empty.resx new file mode 100644 index 00000000..559f36d1 --- /dev/null +++ b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/Empty.resx @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + \ No newline at end of file diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/Microsoft.VisualStudio.ExtensionEngine.dll b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/Microsoft.VisualStudio.ExtensionEngine.dll new file mode 100644 index 00000000..b3a2b0c3 Binary files /dev/null and b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/Microsoft.VisualStudio.ExtensionEngine.dll differ diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/Microsoft.VisualStudio.Sdk.BuildTasks.16.0.dll b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/Microsoft.VisualStudio.Sdk.BuildTasks.16.0.dll new file mode 100644 index 00000000..7e1089fd Binary files /dev/null and b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/Microsoft.VisualStudio.Sdk.BuildTasks.16.0.dll differ diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/Microsoft.VisualStudio.Sdk.BuildTasks.dll b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/Microsoft.VisualStudio.Sdk.BuildTasks.dll new file mode 100644 index 00000000..3f692c06 Binary files /dev/null and b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/Microsoft.VisualStudio.Sdk.BuildTasks.dll differ diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/Microsoft.VisualStudio.Sdk.Common.targets b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/Microsoft.VisualStudio.Sdk.Common.targets new file mode 100644 index 00000000..09d2d277 --- /dev/null +++ b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/Microsoft.VisualStudio.Sdk.Common.targets @@ -0,0 +1,180 @@ + + + + Microsoft.VisualStudio.Sdk.BuildTasks.dll + Microsoft.VisualStudio.Sdk.BuildTasks.16.0.dll + + + + + + + + + 16.0 + 16.0 + $(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VsSDKVersion)\VSSDK + Software\Microsoft\VisualStudio\$(VSSDKTargetPlatformVersion) + Exp + + + + + + + + + + + + + $(VSCTCompileDependsOn);FindSDKInstallation + + <__internal_VSCTDefinitions>__CTC__;_CTC_GUIDS_;$(VSCTDefinitions) + false + + + + + + + + <_InternalVSCTIncludePath Include="@(VSCTIncludePath)" Condition="'@(VSCTIncludePath)' != ''"/> + + <_InternalVSCTIncludePath Include="$(VsSDKIncludes)" Condition="'$(VsSDKIncludes)' != ''"/> + <_InternalVSCTIncludePath Include="$(VsSDKIncludes)\office10" Condition="'$(VsSDKIncludes)' != ''"/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + $(MSBuildProjectFile).VsixDeployedFileListAbsolute.txt + true + + + + + + + + + + + + + + + + + + + + <_VsixCleanRemainingFileWritesAfterIncrementalClean Include="@(_VsixUniqueCleanPriorFileWrites)" Exclude="@(_VsixCleanFilesDeleted)"/> + + + + + + + + diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/Microsoft.VisualStudio.Setup.Common.dll b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/Microsoft.VisualStudio.Setup.Common.dll new file mode 100644 index 00000000..0f4c0384 Binary files /dev/null and b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/Microsoft.VisualStudio.Setup.Common.dll differ diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/Microsoft.VisualStudio.Threading.dll b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/Microsoft.VisualStudio.Threading.dll new file mode 100644 index 00000000..aa2d109c Binary files /dev/null and b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/Microsoft.VisualStudio.Threading.dll differ diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/Microsoft.VisualStudio.Validation.dll b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/Microsoft.VisualStudio.Validation.dll new file mode 100644 index 00000000..e4e493bd Binary files /dev/null and b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/Microsoft.VisualStudio.Validation.dll differ diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/Microsoft.VsSDK.Cpp.Overrides.targets b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/Microsoft.VsSDK.Cpp.Overrides.targets new file mode 100644 index 00000000..ae6b353f --- /dev/null +++ b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/Microsoft.VsSDK.Cpp.Overrides.targets @@ -0,0 +1,32 @@ + + + + + + + <_BuiltProjectOutputGroupOutput Include="$(OutDir)$(TargetName)$(TargetExt)" /> + + + + + + + <_DebugSymbolsProjectOutputGroupOutput Include="$(OutDir)$(TargetName).pdb" /> + + + diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/Microsoft.VsSDK.Cpp.targets b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/Microsoft.VsSDK.Cpp.targets new file mode 100644 index 00000000..102b5eb8 --- /dev/null +++ b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/Microsoft.VsSDK.Cpp.targets @@ -0,0 +1,56 @@ + + + + + + + + + + + + $(BeforeResourceCompileTargets); + VSCTCompile + + + $(AfterBuildLinkTargets); + IsolatedShellFiles; + RegisterStubTarget; + _VsixCleanRecordFileWrites + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/Microsoft.VsSDK.targets b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/Microsoft.VsSDK.targets new file mode 100644 index 00000000..47732c63 --- /dev/null +++ b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/Microsoft.VsSDK.targets @@ -0,0 +1,1511 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + false + false + false + true + VerifyTargetVersion;$(BuildDependsOn) + true + $(GetVsixItemsToBundleDependsOn);Compile + $(DeployVsixExtensionFilesDependsOn);Compile + $(VSSDKTargetPlatformVersion) + true + false + true + true + $(TargetPath) + true + true + false + + + + + + + + + + + + + + + + + + + + + $(ValidateVsixManifestDependsOn);FindSourceVsixManifest + false + + + + + + $(DetokenizeVsixManifestFileDependsOn);AssignProjectConfiguration;FindSourceVsixManifest + extension.vsixmanifest + $(IntermediateOutputPath)$(VsixManifestFileName) + + + + + <_VsixManifestProjectReference Include="@(_MSBuildProjectReferenceExistent)" /> + + <_VsixManifestProjectReference Include="$(ProjectFileName)"> + $(ProjectName) + $(AssemblyVSIXSubPath) + + + + + + + + + + + + + + + + + + + + + + $(CopyVsixManifestFileDependsOn);DetokenizeVsixManifestFile + + + + + + + + + + + + + + + $(TargetName).vsix + $(OutDir)$(TargetVsixContainerName) + $(GetVsixSourceItemsDependsOn);AssignProjectConfiguration;DetokenizeVsixManifestFile;ZipProjects;ZipItems + $(ValidateVsixPartsDependsOn);GetVsixSourceItems + $(GenerateFileManifestDependsOn);ValidateVsixParts + $(GenerateTemplatesManifestDependsOn);GenerateFileManifest + $(GenerateResourcePackagesManifestDependsOn);SatelliteDllsProjectOutputGroup + $(CreateVsixContainerDependsOn);GenerateTemplatesManifest;GenerateFileManifest;GenerateResourcePackagesManifest + + NotCompressed + Normal + NotCompressed + + + true + true + true + false + true + false + true + true + true + $(IncludeCopyLocalReferencesInVSIXContainer) + true + + $(GetVsixSourceItemsDependsOn);SatelliteDllsProjectOutputGroup + + $(IntermediateOutputPath)\files.json + $(IntermediateOutputPath)\templateFiles.json + $(IntermediateOutputPath)\resources.json + $(IntermediateOutputPath)\ctoFiles.json + $(IntermediateOutputPath)\mergeCto.cache + $(IntermediateOutputPath)\createTemplateManifests.cache + $(IntermediateOutputPath)\resourcePackages.json + $(IntermediateOutputPath) + + + + + + + + $(AssemblyVSIXSubPath) + $(InstallRoot) + $(Ngen) + $(NgenApplication) + $(NgenArchitecture) + $(NgenPriority) + + + + + + $(AssemblyVSIXSubPath) + $(InstallRoot) + + + + + + $(AssemblyVSIXSubPath) + $(InstallRoot) + $(Ngen) + $(NgenApplication) + $(NgenArchitecture) + $(NgenPriority) + + + + + + $(AssemblyVSIXSubPath) + $(InstallRoot) + + + + $(AssemblyVSIXSubPath) + $(InstallRoot) + + + + + + $(AssemblyVSIXSubPath) + $(InstallRoot) + + + + + + $(AssemblyVSIXSubPath) + $(InstallRoot) + + + $(AssemblyVSIXSubPath) + $(InstallRoot) + + + + + + $(AssemblyVSIXSubPath) + $(InstallRoot) + + + + + + + $(AssemblyVSIXSubPath) + $(InstallRoot) + + + + + + + <_ReferenceCopyLocalPathsFromNuGet Include="@(ReferenceCopyLocalPaths)" Condition=" '%(ReferenceCopyLocalPaths.NuGetSourceType)' == 'Package' " /> + + + + + + + + true + $(AssemblyVSIXSubPath) + $(InstallRoot) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + $(PkgdefVSIXSubPath) + + + + + + + + %(Content.RelativeDir) + + $([System.IO.Path]::GetDirectoryName(%(Content.Link))) + + + + + + + + + <_MSBuildProjectReferenceExistent Condition="'%(_MSBuildProjectReferenceExistent.Private)' != 'false' AND + '%(_MSBuildProjectReferenceExistent.IncludeOutputGroupsInVSIX)' == '' AND + '%(_MSBuildProjectReferenceExistent.IncludeOutputGroupsInVSIXLocalOnly)' == ''"> + BuiltProjectOutputGroup;BuiltProjectOutputGroupDependencies;GetCopyToOutputDirectoryItems;SatelliteDllsProjectOutputGroup + DebugSymbolsProjectOutputGroup; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + %(VSIXSourceItem.VSIXSubPath)\%(VSIXSourceItem.TemplateSubPath) + + + %(VSIXSourceItemLocalOnly.VSIXSubPath)\%(VSIXSourceItemLocalOnly.TemplateSubPath) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_TargetVsixContainerItem Include="$(TargetVsixContainer)" /> + <_SourceVsixManifest Include="$(IntermediateVsixManifest)" /> + + + + + <_TargetResourcePackageFilenameTemplate>%(_TargetVsixContainerItem.RootDir)%(_TargetVsixContainerItem.Directory)%(_TargetVsixContainerItem.Filename).{0}%(_TargetVsixContainerItem.Extension) + + + + + <_TargetResourceItem Include="$([System.String]::Format('$(_TargetResourcePackageFilenameTemplate)', '%(SatelliteDllsProjectOutputGroupOutput.Lang)'))" + Condition=" '%(SatelliteDllsProjectOutputGroupOutput.SpecificCulture)' != '' and '%(SatelliteDllsProjectOutputGroupOutput.Lang)' != '' "> + %(SatelliteDllsProjectOutputGroupOutput.SpecificCulture) + %(SatelliteDllsProjectOutputGroupOutput.Culture) + + + + + + + + + + + $(_VSIXIdentifier).Resources + $(_VSIXVersion) + + + + + + + + + + + + + <_VsixManifest Include="$(IntermediateVsixManifest)" /> + + + + + + + + + + + + + + + + $(GetVsixDeploymentPathDependsOn);DetokenizeVsixManifestFile + + + + + + + + + + + + + + + + + + + + + + $(DeployVsixExtensionFilesDependsOn);GetVsixDeploymentPath;FindExistingDeploymentPath;GetVsixSourceItems + $(FindExistingDeploymentPathDependsOn);GetVsixDeploymentPath + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + $(CopyVsixExtensionFilesDependsOn);GetVsixSourceItems + + + + + + + + + + + + + + + + + + + + + + + + + <_VSIXContainerOutputGroupOutput Include="$(TargetVsixContainer)" /> + + + + + + + + + $(VSIXIdentifierProjectOutputGroupDependsOn);FindSourceVsixManifest + + + + + + + <_VSIXName> + + + + + + + + + + + + + $(VSIXIdentifierProjectOutputGroupDependsOn);FindSourceVsixManifest + + + + + + <_VSIXIdentifier> + + + + + + + + + + + + + + + $(PrepareForBuildDependsOn); + RunRegRiched + + $(RunRegRichedDependsOn);FindSDKInstallation + + + + + + + + + + + + + + + + + + + + + + + $(PrepareResourcesDependsOn);MergeCtoResource + $(MergeCtoResourceDependsOn);GenerateListOfCTO;VSCTCompile;CheckCTOFileHasChanged;GenerateResourceToMergeWithCTO + + + + + + <_CtoResx Include="%(EmbeddedResource.Identity)" Condition=" '%(EmbeddedResource.MergeWithCTO)' == 'true' " /> + + true + _EmptyResource + + + + + + + + <_ResourcesToMergeWithCTO Include="%(EmbeddedResource.OutputResource)" Condition="'%(EmbeddedResource.MergeWithCTO)'=='true'"/> + + + + + + + + + + + + <_GeneratedCTOFiles Include="@(VSCTCompile->'$(IntermediateOutputPath)%(FileName).cto')" Condition="'@(VSCTCompile)' != ''"/> + + + + + + + + + + + + + + + + + + + + + + + + $(PrepareForRunDependsOn); + GeneratePkgDef; + CopyPkgDef; + CreateVsixContainer; + DeployVsixExtensionFiles; + CopyVsixManifestFile; + CopyVsixExtensionFiles; + + $(GeneratePkgDefDependsOn);Compile + true + $(RegisterWithCodebase) + + + + + + + + + + + + + + + + + + + + + + + + <_PkgdefOutputGroupOutput Include="$(IntermediateOutputPath)$(TargetName).pkgdef" /> + + + + + + + + + + + + $(TemplateProjectOutputGroupDependsOn); + GetZipFilesFromVSTemplates; + CalculateZipFiles + + + + + + <_TemplateOutputGroupOutput Include="@(_ZipProject->'%(ZipFile)')" > + %(_ZipProject.Language)\%(_ZipProject.OutputSubPath)\%(_ZipProject.Culture) + + + <_TemplateOutputGroupOutput Include="@(_ZipItem->'%(ZipFile)')" > + %(_ZipItem.Language)\%(_ZipItem.OutputSubPath)\%(_ZipItem.Culture) + + + + + + + + + + + + + $(CopyPkgDefDependsOn);GeneratePkgDef;CheckCTOFileHasChanged + + + + + + + + + + + + + + + + + + + + + ZipProjects; + ZipItems; + $(PrepareForRunDependsOn) + + GetZipFilesFromVSTemplates;CalculateZipFiles + + + + + $(OutputPath) + $(OutputPath) + $(IntermediateOutputPath) + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/Newtonsoft.Json.dll b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/Newtonsoft.Json.dll new file mode 100644 index 00000000..be6558d2 Binary files /dev/null and b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/Newtonsoft.Json.dll differ diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/PkgDefMgmt.dll b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/PkgDefMgmt.dll new file mode 100644 index 00000000..ac103ffd Binary files /dev/null and b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/PkgDefMgmt.dll differ diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/ProjectItemsSchema.xml b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/ProjectItemsSchema.xml new file mode 100644 index 00000000..f92c362d --- /dev/null +++ b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/ProjectItemsSchema.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/ConvertCTCToVSCT.pl b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/ConvertCTCToVSCT.pl new file mode 100644 index 00000000..271b16f8 --- /dev/null +++ b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/ConvertCTCToVSCT.pl @@ -0,0 +1,917 @@ +#*************************************************************************** +# +# Copyright (c) Microsoft Corporation. All rights reserved. +# THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF +# ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY +# IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR +# PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT. +# +#*************************************************************************** + + +# +# This script will convert a ctc into a vsct +# +# It will not process conditionals. If your file has #if... or #else directives they will be +# marked in comments in the xml but will not be processed in to Conditional attributes. +# +# Line comments will be ignored however block comments i.e. /* */ will not be marked. +# +# After processing with this script, examine the result for errors conditional, directives, +# and block comments making hand edits for conditionals and block comments. +# +# + + +# flags for sections being read +$bCommands = 0; +$bMenus = 0; +$bGroups = 0; +$bPlacements = 0; +$bKeyBindings = 0; +$bBitmaps = 0; +$bButtons = 0; +$bCombos = 0; +$bVisibilities = 0; +$bUsed = 0; + +# Map values to new casing +@Flags = ( +"NoCustomize", +"NoKeyCustomize", +"NoButtonCustomize", +"TextContextUseButton", +"TextChangesButton", +"TextChanges", +"DefaultDisabled", +"DefaultInvisible", +"DynamicVisibility", +"Repeat", +"DynamicItemStart", +"CommandWellOnly", +"Pict", +"TextOnly", +"IconAndText", +"AllowParams", +"FilterKeys", +"PostExec", +"DontCache", +"FixMenuController", +"NoShowOnMenuController", +"RouteToDocs", +"NoAutoComplete", +"TextMenuUseButton", +"TextMenuCtrlUseMenu", +"TextCascadeUseButton", +"CaseSensitive", +"DefaultDocked", +"NoToolbarClose", +"NotInTBList", +"AlwaysCreate", +"TextIsAnchorCommand", +"StretchHorizontally", +"ProfferedCmd", + +"Separator", +"Button", +"MenuButton", +"Swatch", +"SplitDropDown", +"DropDownCombo", +"MRUCombo", +"DynamicCombo", +"OwnerDrawCombo", +"IndexCombo", +"Menu", +"MenuController", +"Toolbar", +"Context", +"ToolWindowToolbar", +"MenuControllerLatched", +"Shared", +"AppID", +"DefaultDocked", +"NotToolbarClose", +"NotInTBList", +"AlwaysCreate" +); + + +# these mappings are for common combinations of flags usualy appearing as #define macros +# these must be expanded first before splitting the flags of buttons, combos or menus +$MacroFlags{"BTN_FLAGS"}="DYNAMICVISIBILITY|DEFAULTINVISIBLE|DEFAULTDISABLED"; +$MacroFlags{"BTNDOCS_FLAGS"}="DYNAMICVISIBILITY|DEFAULTINVISIBLE|DEFAULTDISABLED|ROUTETODOCS"; +$MacroFlags{"ZOOM_FLAGS"}="DYNAMICVISIBILITY|DEFAULTINVISIBLE|DEFAULTDISABLED|ROUTETODOCS|FIXMENUCONTROLLER|NOSHOWONMENUCONTROLLER"; +$MacroFlags{"BTNTXT_FLAGS"}="DYNAMICVISIBILITY|DEFAULTINVISIBLE|DEFAULTDISABLED|TEXTCHANGESBUTTON|TEXTCHANGES"; +$MacroFlags{"CWO_FLAGS"}="COMMANDWELLONLY|DYNAMICVISIBILITY|DEFAULTINVISIBLE|DEFAULTDISABLED"; +$MacroFlags{"CWOTXT_FLAGS"}="COMMANDWELLONLY|DYNAMICVISIBILITY|DEFAULTINVISIBLE|DEFAULTDISABLED|TEXTCHANGES"; +$MacroFlags{"COMBO_FLAGS"}="DYNAMICVISIBILITY|DEFAULTINVISIBLE|DEFAULTDISABLED"; +$MacroFlags{"ADDSYM_FLAGS"}="DYNAMICVISIBILITY|DEFAULTINVISIBLE|DEFAULTDISABLED|TEXTCHANGES|TEXTCHANGESBUTTON"; +$MacroFlags{"DIS_DEF"}="DEFAULTDISABLED | DEFAULTINVISIBLE | DYNAMICVISIBILITY"; +$MacroFlags{"VIS_DEF"}="COMMANDWELLONLY"; +$MacroFlags{"TBR_DEF"}="TOOLBAR | ALWAYSCREATE | DEFAULTDOCKED"; + +foreach $flag (@Flags) +{ + $upperFlag = ToUpper($flag); + $flagMap{$upperFlag} = $flag; + $flagMap{$flag} = $flag; +} + +foreach $key (%flagMap) +{ + $value = $flagMap{$key}; +} + + + + + + + +$source = $ARGV[0]; +$dest = $ARGV[1]; +if ($dest eq "") +{ + #default target file with the .vsct extension + $dest = "$source.vsct"; +} + +print "Converting \"$source\" to VSCT\n"; + + +#open the source file +open (INPUT, $source) || die "Could not open $source\n"; + + +# open the target file +open (VSCT, ">$dest"); + +print VSCT "\n"; +print VSCT "\n"; +ConvertFile(); +print VSCT "\n"; +close VSCT; +close INPUT; + + + + +sub Trim +{ + $text = shift(@_); + for ($text) + { # trim white space in $variable, cheap + s/^\s+//; + s/\s+$//; + } + return $text; +} + +sub TrimEnd +{ + $text = shift(@_); + for ($text) + { # trim white space in $variable, cheap + s/\s+$//; + } + return $text; +} + +sub TrimQuotes +{ + $text = Trim(shift(@_)); + for ($text) + { + s/^[\"\']//; + s/[\"\']$//; + } + return $text; +} + +sub EscapeChars +{ + $text = shift(@_); + for ($text) + { + s/\&/\[amp\]/g; + s/\[amp\]/&\;/g; + s//>/g; + } + return $text +} + +sub WriteStrings +{ + my $strings = Trim(shift(@_)); + # split up the strings portion taking into acount that the old compiler didn't even require them to be comma separated + if ($strings =~ /(\"([^\"]*)\"|\s*)(\s*,?\s*(\"([^\"]*)\"|\s*))?(\s*,?\s*(\"([^\"]*)\"|\s*))?(\s*,?\s*(\"([^\"]*)\"|\s*))?(\s*,?\s*(\"([^\"]*)\"|\s*))?(\s*,?\s*(\"([^\"]*)\"|\s*))?/) + { + $buttonText = EscapeChars($2); + $menuText = EscapeChars($5); + $tipText = EscapeChars($8); + $commandName = EscapeChars($11); + $canonicalName = EscapeChars($14); + $locName = EscapeChars($17); + + if ($bMenus) + { + $locName = $commandName; + $canonicalName = $tipText; + $commandName = $menuText;; + + $menuText = ""; # menus don't use these fields + $tipText = ""; + } + + print VSCT " \n"; + if ($buttonText ne "") + { + print VSCT " $buttonText\n"; + } + if ($menuText ne "") + { + print VSCT " $menuText\n"; + } + if ($tipText ne "") + { + print VSCT " $tipText\n"; + } + if ($commandName ne "") + { + print VSCT " $commandName\n"; + } + if ($canonicalName ne "") + { + print VSCT " $canonicalName\n"; + } + if ($locName ne "") + { + print VSCT " $locName\n"; + } + print VSCT " \n"; + } +} + +sub ToUpper +{ + $text = Trim(shift(@_)); + for ($text) + { + tr/[a-z]/[A-Z]/; + } + return $text +} + + +sub ConvertFile() +{ + while () + { + chomp; + $line = TrimEnd($_); + + # if this line does not begin as a comment but it does contain one, just remove it + if (!($line =~ /^\s*\/\//) && ($line =~ /\/\//)) + { + $line =~ s/\s*\/\/.*//; + } + + SetSection(); + # if a line does not begin as a comment and it ends in a semicoln we need to parse it as a CTC item + # dump in place and process as comments + if ($line =~ /;$/ && !($line =~ /^\s*\/\//) ) # everything we want ends in a semicoln + { + chop($line); + if ($bButtons) + { + @tokens = split(/,/, $line); + + $scope = $tokens[0]; + $parent = $tokens[1]; + + $scope =~ /\s*([^\s,]*)\s*:\s*([^\s,]*)\s*/; + $scopeGuid = Trim($1); + $scopeID = Trim($2); + + $parent =~ /\s*([^\s,]*)\s*:\s*([^\s,]*)\s*/; + $parentGuid = Trim($1); + $parentID = Trim($2); + + $priority = Trim($tokens[2]); + if (!($priority =~ /^\d/)) + { + print VSCT "\n"; + } + + $icon = Trim($tokens[3]); + if ($icon =~ /(NOICON|NO_ICON)/) + { + $iconGuid = ""; + } + elsif ($icon =~ /MSO_ICON\((.*)\)/) + { + $iconGuid = "guidOfficeIcon"; + $iconID = "msotcid$1"; + } + elsif ($icon =~ /HAT_ICON\((.*)\)/) + { + $iconGuid = "guidHatPackageCmdSet"; + $iconID = "icon$1"; + } + else + { + $icon =~ /\s*([^\s,]*)\s*:\s*([^\s,]*)\s*/; + $iconGuid = Trim($1); + $iconID = Trim($2); + if ($iconGuid eq "guidOfficeIcon" && $iconID eq "msotcidNoIcon") + { + $iconGuid = ""; + } + } + + $type = Trim($tokens[4]); + $flags = Trim($tokens[5]); + print "Format error \n" if (!(Trim($tokens[6]) =~ /^\"/)); + + @buttonflags = split(/\|/, $flags); + # preprocess flas to get rid of macros and resplit the list + foreach $flag (@buttonflags) + { + $flag = Trim($flag); + if ($MacroFlags{$flag} ne "") + { + $flags =~ s/$flag/$MacroFlags{$flag}/; + } + } + @buttonflags = split(/\|/, $flags); + + if ($type eq "") + { + $type = "Button"; + } + + $typeUpper = ToUpper($type); + $type = $flagMap{ $typeUpper }; + + print VSCT " \n"; + } + elsif ($bCombos) + { + @tokens = split(/,/, $line); + + $scope = $tokens[0]; + $parent = $tokens[1]; + + $scope =~ /\s*([^\s,]*)\s*:\s*([^\s,]*)\s*/; + $scopeGuid = Trim($1); + $scopeID = Trim($2); + + $parent =~ /\s*([^\s,]*)\s*:\s*([^\s,]*)\s*/; + $parentGuid = Trim($1); + $parentID = Trim($2); + + $priority = Trim($tokens[2]); + if (!($priority =~ /^\d/)) + { + print VSCT "\n"; + } + + $getListCmd = Trim($tokens[3]); + $defaultWidth = Trim($tokens[4]); + + $type = Trim($tokens[5]); + $flags = Trim($tokens[6]); + print "Format error \n" if (!(Trim($tokens[7]) =~ /^\"/)); + + @buttonflags = split(/\|/, $flags); + # preprocess flas to get rid of macros and resplit the list + foreach $flag (@buttonflags) + { + $flag = Trim($flag); + if ($MacroFlags{$flag} ne "") + { + $flags =~ s/$flag/$MacroFlags{$flag}/; + } + } + @buttonflags = split(/\|/, $flags); + + if ($type eq "") + { + $type = "DynamicCombo"; + } + + $typeUpper = ToUpper($type); + $type = $flagMap{ $typeUpper }; + + print VSCT " \n"; + + # if the parent is itself or group undefined or in the same guid group with id==0 skip it + # in the xml parent definition is optional + if ($parentGuid ne "Group_Undefined") + { + print VSCT " \n" + } + + if ($iconGuid ne "Group_Undefined" && $iconGuid ne "") + { + print VSCT " \n" + } + + foreach $flag (@buttonflags) + { + $flag = Trim($flag); + $flagUpper = ToUpper($flag); + $flag = $flagMap{$flagUpper}; + if ($flag ne "") + { + print VSCT " $flag\n"; + } + } + + $line =~ /[^\"]*(\".*)/; + $strings = $1; + WriteStrings($strings); + + print VSCT " \n"; + } + elsif ($bMenus) + { + @tokens = split(/,/, $line); + + $scope = $tokens[0]; + $parent = $tokens[1]; + + $scope =~ /\s*([^\s,]*)\s*:\s*([^\s,]*)\s*/; + $scopeGuid = Trim($1); + $scopeID = Trim($2); + + $parent =~ /\s*([^\s,]*)\s*:\s*([^\s,]*)\s*/; + $parentGuid = Trim($1); + $parentID = Trim($2); + + $priority = Trim($tokens[2]); + if (!($priority =~ /^\d/)) + { + print VSCT "\n"; + } + + $flags = Trim($tokens[3]); + print "Format error \n" if (!(Trim($tokens[4]) =~ /^\"/)); + + if ($flags =~ /.*(Context|MenuControllerLatched|ToolWindowToolbar).*/i) + { + $type = $1; + } + elsif ($flags =~ /.*(MenuController).*/i) + { + $type = $1; + } + # get these in a second pass so they will not match first + elsif ($flags =~ /.*(Menu|Toolbar).*/i) + { + $type = $1; + } + else + { + $type = ""; + } + + + @flags = split(/\|/, $flags); + + if ($type eq "") + { + $type = "Menu"; + } + + $typeUpper = ToUpper($type); + $type = $flagMap{ $typeUpper }; + + print VSCT " \n"; + + # if the parent is itself or group undefined or in the same guid group with id==0 skip it + # in the xml parent definition is optional + if ($parentGuid ne "Group_Undefined") + { + print VSCT " \n" + } + + foreach $flag (@flags) + { + $flag = Trim($flag); + $flagUpper = ToUpper($flag); + $flag = $flagMap{$flagUpper}; + if ($flag ne "" && $flag ne $type) + { + print VSCT " $flag\n"; + } + } + + $line =~ /[^\"]*(\".*)/; + $strings = $1; + WriteStrings($strings); + + print VSCT " \n"; + } + elsif ($bGroups) + { + @tokens = split(/,/, $line); + $tokenCount = @tokens; + if ($tokenCount < 3) + { + print VSCT "\n"; + } + + $scope = $tokens[0]; + $parent = $tokens[1]; + + $scope =~ /\s*([^\s,]*)\s*:\s*([^\s,]*)\s*/; + $scopeGuid = Trim($1); + $scopeID = Trim($2); + + $parent =~ /\s*([^\s,]*)\s*:\s*([^\s,]*)\s*/; + $parentGuid = Trim($1); + $parentID = Trim($2); + + $priority = Trim($tokens[2]); + $dynamic = $tokens[3]; + + if ($dynamic ne "" || ($parentGuid ne "Group_Undefined")) + { + print VSCT " \n"; + # if the parent is itself or group undefined or in the same guid group with id==0 skip it + # in the xml parent definition is optional + if ($parentGuid ne "Group_Undefined") + { + print VSCT " \n" + } + + if ($dynamic ne "") + { + print VSCT " Dynamic\n"; + } + + print VSCT " \n"; + } + else + { + print VSCT " \n"; + } + + } + elsif ($bBitmaps) + { + $line =~ /\s*([^\s,]*)\s*:\s*([^\s,]*)\s*,\s*(.*)$/; + $scopeGuid = Trim($1); + $scopeID = Trim($2); + $usedList = $3; + + print VSCT " \n"; + } + elsif ($bPlacements) + { + @tokens = split(/,/, $line); + $tokenCount = @tokens; + if ($tokenCount != 3) + { + print VSCT "\n"; + } + + $scope = $tokens[0]; + $parent = $tokens[1]; + + $scope =~ /\s*([^\s,]*)\s*:\s*([^\s,]*)\s*/; + $scopeGuid = Trim($1); + $scopeID = Trim($2); + + $parent =~ /\s*([^\s,]*)\s*:\s*([^\s,]*)\s*/; + $parentGuid = Trim($1); + $parentID = Trim($2); + + $priority = Trim($tokens[2]); + + print VSCT " \n"; + if ($parentGuid ne $scopeGuid || $parentID ne $scopeID) + { + print VSCT " \n" + } + print VSCT " \n"; + } + elsif ($bVisibilities) + { + @tokens = split(/,/, $line); + $tokenCount = @tokens; + if ($tokenCount != 2) + { + print VSCT "\n"; + } + + $scope = $tokens[0]; + $context = Trim($tokens[1]); + + $scope =~ /\s*([^\s,]*)\s*:\s*([^\s,]*)\s*/; + $scopeGuid = Trim($1); + $scopeID = Trim($2); + + print VSCT " \n"; + } + elsif ($bKeyBindings) + { + @tokens = split(/,/, $line); + $tokenCount = @tokens; + if ($tokenCount != 4) + { + print VSCT "\n"; + } + + $scope = $tokens[0]; + $editor = Trim($tokens[1]); + $emulator = Trim($tokens[2]); + $chord = Trim($tokens[3]); + + $scope =~ /\s*([^\s,]*)\s*:\s*([^\s,]*)\s*/; + $scopeGuid = Trim($1); + $scopeID = Trim($2); + + @keys = split(/:/, $chord); + + $key1 = TrimQuotes($keys[0]); + $mod1 = Trim($keys[1]); + + $key2 = TrimQuotes($keys[2]); + $mod2 = Trim($keys[3]); + + $key1 =~ tr/a-z/A-Z/; + $key2 =~ tr/a-z/A-Z/; + + $mod1 = join(' ', split(//, $mod1)); + $mod2 = join(' ', split(//, $mod2)); + + $mod1 =~ s/C/Control/i; + $mod1 =~ s/A/Alt/i; + $mod1 =~ s/S/Shift/i; + + $mod2 =~ s/C/Control/i; + $mod2 =~ s/A/Alt/i; + $mod2 =~ s/S/Shift/i; + + print VSCT " \n"; + } + elsif ($bUsed) + { + $line =~ /\s*([^\s,]*)\s*:\s*([^\s,]*)\s*/; + $scopeGuid = Trim($1); + $scopeID = Trim($2); + + $parent =~ /\s*([^\s,]*)\s*:\s*([^\s,]*)\s*/; + $parentGuid = Trim($1); + $parentID = Trim($2); + + print VSCT " \n"; + } + } + else + { + if (/^\s*#include\s*[\"\'<]([^\"].*)[\"\'>]/) + { + $includefile = $1; + if ($includefile =~ /\.ctc/) + { + $includefile =~ s/\.ctc/\.vsct/; + print VSCT "\n"; + } + else + { + print VSCT "\n"; + } + } + elsif (/#if/ || /#else/) + { + print VSCT "\n"; + } + + s/--/**/g; # "--" is ilegal in xml comments + print VSCT "\n"; + } + + } +} + +sub SetSection() +{ + if (/^\s*CMDS_SECTION/) + { + /CMDS_SECTION\s*([^\s]*)/; + $bCommands = 1; + if ($1 ne "") + { + print VSCT "\n"; + } + else + { + print VSCT "\n"; + } + } + elsif (/^\s*CMDS_END/) + { + $bCommands = 0; + print VSCT "\n"; + } + elsif (/^\s*(APPID|SHARED)?(_)?BUTTONS_BEGIN/) + { + $bButtons = 1; + if ($1 eq "APPID") + { + $tag = "AppID"; + } + elsif ($1 eq "SHARED") + { + $tag = "Shared"; + } + else + { + $tag = ""; + } + print VSCT " <$tag"; + print VSCT "Buttons>\n"; + } + elsif (/^\s*(APPID|SHARED)?_?BUTTONS_END/) + { + $bButtons = 0; + if ($1 eq "APPID") + { + $tag = "AppID"; + } + elsif ($1 eq "SHARED") + { + $tag = "Shared"; + } + else + { + $tag = ""; + } + print VSCT " \n"; + } + elsif (/^\s*(APPID|SHARED)?(_)?COMBOS_BEGIN/) + { + $bCombos = 1; + if ($1 eq "APPID") + { + $tag = "AppID"; + } + elsif ($1 eq "SHARED") + { + $tag = "Shared"; + } + else + { + $tag = ""; + } + + print VSCT " <$tag"; + print VSCT "Combos>\n"; + } + elsif (/^\s*(APPID|SHARED)?_?COMBOS_END/) + { + $bCombos = 0; + if ($1 eq "APPID") + { + $tag = "AppID"; + } + elsif ($1 eq "SHARED") + { + $tag = "Shared"; + } + else + { + $tag = ""; + } + + print VSCT " \n"; + } + elsif (/^\s*MENUS_BEGIN/) + { + $bMenus = 1; + print VSCT " \n"; + } + elsif (/^\s*MENUS_END/) + { + $bMenus = 0; + print VSCT " \n"; + } + elsif (/^\s*NEWGROUPS_BEGIN/) + { + $bGroups = 1; + print VSCT " \n"; + } + elsif (/^\s*NEWGROUPS_END/) + { + $bGroups = 0; + print VSCT " \n"; + } + elsif (/^\s*BITMAPS_BEGIN/) + { + $bBitmaps = 1; + print VSCT "\n"; + } + elsif (/^\s*BITMAPS_END/) + { + $bBitmaps = 0; + print VSCT "\n"; + } + elsif (/^\s*CMDPLACEMENT_SECTION/) + { + $bPlacements = 1; + print VSCT "\n"; + } + elsif (/^\s*CMDPLACEMENT_END/) + { + $bPlacements = 0; + print VSCT "\n"; + } + elsif (/^\s*VISIBILITY_SECTION/) + { + $bVisibilities = 1; + print VSCT "\n"; + } + elsif (/^\s*VISIBILITY_END/) + { + $bVisibilities = 0; + print VSCT "\n"; + } + elsif (/^\s*KEYBINDINGS_SECTION/) + { + $bKeyBindings = 1; + print VSCT "\n"; + } + elsif (/^\s*KEYBINDINGS_END/) + { + $bKeyBindings = 0; + print VSCT "\n"; + } + elsif (/^\s*CMDUSED_SECTION/) + { + $bUsed = 1; + print VSCT "\n"; + } + elsif (/^\s*CMDUSED_END/) + { + $bUsed = 0; + print VSCT "\n"; + } +} diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/CreatePkgDef.exe b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/CreatePkgDef.exe new file mode 100644 index 00000000..6d69545e Binary files /dev/null and b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/CreatePkgDef.exe differ diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/CreatePkgDef.exe.config b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/CreatePkgDef.exe.config new file mode 100644 index 00000000..8fc1afb2 --- /dev/null +++ b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/CreatePkgDef.exe.config @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/DebugSamples.dll b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/DebugSamples.dll new file mode 100644 index 00000000..2778d09b Binary files /dev/null and b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/DebugSamples.dll differ diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/RegPkg.exe b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/RegPkg.exe new file mode 100644 index 00000000..e61dee5c Binary files /dev/null and b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/RegPkg.exe differ diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/RegPkg.exe.config b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/RegPkg.exe.config new file mode 100644 index 00000000..7c14b74f --- /dev/null +++ b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/RegPkg.exe.config @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/RegRiched20.exe b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/RegRiched20.exe new file mode 100644 index 00000000..26e6a66a Binary files /dev/null and b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/RegRiched20.exe differ diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/VSCT.exe b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/VSCT.exe new file mode 100644 index 00000000..b5336ff7 Binary files /dev/null and b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/VSCT.exe differ diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/VSCTCompress.dll b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/VSCTCompress.dll new file mode 100644 index 00000000..9511142f Binary files /dev/null and b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/VSCTCompress.dll differ diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/VSCTLibrary.dll b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/VSCTLibrary.dll new file mode 100644 index 00000000..183d64c1 Binary files /dev/null and b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/VSCTLibrary.dll differ diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/VsixCommandLine.dll b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/VsixCommandLine.dll new file mode 100644 index 00000000..30d93bc7 Binary files /dev/null and b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/VsixCommandLine.dll differ diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/VsixPublisher.exe b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/VsixPublisher.exe new file mode 100644 index 00000000..efb6133e Binary files /dev/null and b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/VsixPublisher.exe differ diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/VsixPublisher.exe.config b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/VsixPublisher.exe.config new file mode 100644 index 00000000..13966788 --- /dev/null +++ b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/VsixPublisher.exe.config @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/VsixUtil.exe b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/VsixUtil.exe new file mode 100644 index 00000000..181fe00f Binary files /dev/null and b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/VsixUtil.exe differ diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/VsixUtil.exe.config b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/VsixUtil.exe.config new file mode 100644 index 00000000..13966788 --- /dev/null +++ b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/VsixUtil.exe.config @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/lib/Microsoft.TeamFoundation.Common.dll b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/lib/Microsoft.TeamFoundation.Common.dll new file mode 100644 index 00000000..bf288e51 Binary files /dev/null and b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/lib/Microsoft.TeamFoundation.Common.dll differ diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/lib/Microsoft.VisualStudio.RemoteControl.dll b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/lib/Microsoft.VisualStudio.RemoteControl.dll new file mode 100644 index 00000000..7ebc83c3 Binary files /dev/null and b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/lib/Microsoft.VisualStudio.RemoteControl.dll differ diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/lib/Microsoft.VisualStudio.Services.Common.dll b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/lib/Microsoft.VisualStudio.Services.Common.dll new file mode 100644 index 00000000..8f1c7763 Binary files /dev/null and b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/lib/Microsoft.VisualStudio.Services.Common.dll differ diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/lib/Microsoft.VisualStudio.Services.WebApi.dll b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/lib/Microsoft.VisualStudio.Services.WebApi.dll new file mode 100644 index 00000000..3d761249 Binary files /dev/null and b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/lib/Microsoft.VisualStudio.Services.WebApi.dll differ diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/lib/Microsoft.VisualStudio.Setup.Common.dll b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/lib/Microsoft.VisualStudio.Setup.Common.dll new file mode 100644 index 00000000..0f4c0384 Binary files /dev/null and b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/lib/Microsoft.VisualStudio.Setup.Common.dll differ diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/lib/Microsoft.VisualStudio.Shell.Framework.dll b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/lib/Microsoft.VisualStudio.Shell.Framework.dll new file mode 100644 index 00000000..5113819c Binary files /dev/null and b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/lib/Microsoft.VisualStudio.Shell.Framework.dll differ diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/lib/Microsoft.VisualStudio.Shell.Immutable.10.0.dll b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/lib/Microsoft.VisualStudio.Shell.Immutable.10.0.dll new file mode 100644 index 00000000..14243bea Binary files /dev/null and b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/lib/Microsoft.VisualStudio.Shell.Immutable.10.0.dll differ diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/lib/Microsoft.VisualStudio.Telemetry.dll b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/lib/Microsoft.VisualStudio.Telemetry.dll new file mode 100644 index 00000000..6231fa90 Binary files /dev/null and b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/lib/Microsoft.VisualStudio.Telemetry.dll differ diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/lib/Microsoft.VisualStudio.Utilities.Internal.dll b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/lib/Microsoft.VisualStudio.Utilities.Internal.dll new file mode 100644 index 00000000..1c24fdd2 Binary files /dev/null and b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/lib/Microsoft.VisualStudio.Utilities.Internal.dll differ diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/lib/Newtonsoft.Json.dll b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/lib/Newtonsoft.Json.dll new file mode 100644 index 00000000..be6558d2 Binary files /dev/null and b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/lib/Newtonsoft.Json.dll differ diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/lib/System.Net.Http.Formatting.dll b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/lib/System.Net.Http.Formatting.dll new file mode 100644 index 00000000..24ca3830 Binary files /dev/null and b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/lib/System.Net.Http.Formatting.dll differ diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/lib/System.ValueTuple.dll b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/lib/System.ValueTuple.dll new file mode 100644 index 00000000..785b1f55 Binary files /dev/null and b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/lib/System.ValueTuple.dll differ diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/lib/VsixCommandLine.dll b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/lib/VsixCommandLine.dll new file mode 100644 index 00000000..30d93bc7 Binary files /dev/null and b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/bin/lib/VsixCommandLine.dll differ diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/AppIDCmdUsed.vsct b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/AppIDCmdUsed.vsct new file mode 100644 index 00000000..8d5344ae --- /dev/null +++ b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/AppIDCmdUsed.vsct @@ -0,0 +1,1419 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/EmulatorCmdUsed.vsct b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/EmulatorCmdUsed.vsct new file mode 100644 index 00000000..b859cfbe --- /dev/null +++ b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/EmulatorCmdUsed.vsct @@ -0,0 +1,173 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/KnownImageIds.vsct b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/KnownImageIds.vsct new file mode 100644 index 00000000..30134f89 --- /dev/null +++ b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/KnownImageIds.vsct @@ -0,0 +1,3756 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/Menus.vsct b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/Menus.vsct new file mode 100644 index 00000000..ece87a6a --- /dev/null +++ b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/Menus.vsct @@ -0,0 +1,565 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Selection + + + + + Container + + + + + TraySelection + + + + + Component Tray + + + + + Document Outline + + + + + + + DefaultDocked + + Layout + Layout + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Dynamic + + + + + Dynamic + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/MnuHelpIds.h b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/MnuHelpIds.h new file mode 100644 index 00000000..29361572 --- /dev/null +++ b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/MnuHelpIds.h @@ -0,0 +1,145 @@ + //---------------------------------------------------------------------------- +// +// Microsoft Visual Studio +// +// Microsoft Confidential +// Copyright 1997-1998 Microsoft Corporation. All Rights Reserved. +// +// File: menucmds.h +// Area: Help Package Commands +// +// Contents: +// Helps System Package Menu, Group, Command IDs +// +//---------------------------------------------------------------------------- +#ifndef __HELPIDS_H_ +#define __HELPIDS_H_ + + +#ifndef NOGUIDS + +#ifdef DEFINE_GUID + // WB package object CLSID + DEFINE_GUID (guidHelpCmdId, + 0x4a79114a, 0x19e4, 0x11d3, 0xb8, 0x6b, 0x0, 0xc0, 0x4f, 0x79, 0xf8, 0x2); + + DEFINE_GUID (guidHelpGrpId, + 0x4a79114b, 0x19e4, 0x11d3, 0xb8, 0x6b, 0x0, 0xc0, 0x4f, 0x79, 0xf8, 0x2); + + DEFINE_GUID (guidHelpPkg, + 0x4a791146, 0x19e4, 0x11d3, 0xb8, 0x6b, 0x0, 0xc0, 0x4f, 0x79, 0xf8, 0x2); + + // This is the GUID used by Search Window to do web toolbar visibility. It should be in sync with + // VsCoreResIds (defined in \env\vscore\package\vscorepackage.cs + // {E2F8DA06-F098-4508-B732-D8684EC10972} + DEFINE_GUID (guidHelpSearchCmdUI, + 0xe2f8da06, 0xf098, 0x4508, 0xb7, 0x32, 0xd8, 0x68, 0x4e, 0xc1, 0x9, 0x72); + +#else +// {4A79114A-19E4-11d3-B86B-00C04F79F802} +#define guidHelpCmdId {0x4a79114a, 0x19e4, 0x11d3, {0xb8, 0x6b, 0x0, 0xc0, 0x4f, 0x79, 0xf8, 0x2 }} + +// {4A79114B-19E4-11d3-B86B-00C04F79F802} +#define guidHelpGrpId {0x4a79114b, 0x19e4, 0x11d3, {0xb8, 0x6b, 0x0, 0xc0, 0x4f, 0x79, 0xf8, 0x2 }} + + +// The following is the same as CLSID_HelpPackage but for consumption by CTC. +// {4A791146-19E4-11d3-B86B-00C04F79F802} +#define guidHelpPkg {0x4a791146, 0x19e4, 0x11d3, {0xb8, 0x6b, 0x0, 0xc0, 0x4f, 0x79, 0xf8, 0x2}} + +// This is the GUID used by Search Window to do web toolbar visibility. It should be in sync with +// VsCoreResIds (defined in \env\vscore\package\vscorepackage.cs +// {E2F8DA06-F098-4508-B732-D8684EC10972} +#define guidHelpSearchCmdUI {0xe2f8da06, 0xf098, 0x4508, { 0xb7, 0x32, 0xd8, 0x68, 0x4e, 0xc1, 0x9, 0x72}} + +#endif //DEFINE_GUID + +#endif //NOGUIDS + + +// Menus +#define IDM_HELP_CONTENTS 0x0001 +#define IDM_HELP_KEYWORDS 0x0002 +#define IDM_HELP_SEARCH 0x0003 + +#define IDM_HELP_MENU_MSONTHWEB 0x0100 + +#define IDM_HLPTOC_CTX 0x0200 +#define IDM_HELP_RESLIST_CTX 0x0300 +#define IDM_HELP_RESLIST_CTX_SORTBY 0x0400 + +// Groups +#define IDG_HELP_GRP 0x0010 +#define IDG_HELP_FEEDBACK_GRP 0x0040 +#define IDG_HELP_MENU_FEEDBACK_GRP 0x0041 + +#define IDG_HLPTOC_CTX_PRINT 0x0050 + +#define IDG_HELP_RESLIST_CTX_SORTBY 0x0060 +#define IDG_HELP_RESLIST_CTX_COLUMNS 0x0070 + +#define IDG_HELP_MSONTHEWEB_NEWS 0x0100 +#define IDG_HELP_MSONTHEWEB_INFO 0x0200 +#define IDG_HELP_MSONTHEWEB_HOME 0x0300 +#define IDM_HELP_SET_PREFS 0X0500 +#define IDM_HELP_SET_SUB_PREFS 0x0600 +#define IDM_HELP_FEEDBACK 0X0700 + +//Command IDs +#define icmdHelpViewer 0x0100 +#define icmdHelpAskAQuestion 0x0106 +#define icmdHelpSendFeedback 0x0107 + +#define icmdHelpSearchControls 0x010B +#define icmdHelpSearchAddins 0x010C +#define icmdHelpSearchSamples 0x010D +#define icmdHelpSearchSnippets 0x010E +#define icmdHelpSearchStarterKits 0x010F + +#define icmdHelpForceSelfDestruct 0x011C + +#define icmdHelpManager 0x011D + +//#define icmdHelpManager 0x011D + +#define icmdHelpPrefOnline 0x011E +#define icmdHelpPrefOffline 0x011F + +// TOC contex menu +#define icmdPrintTopic 0x0120 +#define icmdPrintChildren 0x0121 + +#define icmdSortByCol1 0x0130 +#define icmdSortByCol2 0x0131 +#define icmdSortByCol3 0x0132 +#define icmdSortByCol4 0x0133 +#define icmdSortByCol5 0x0134 +#define icmdSortByCol6 0x0135 +#define icmdSortByCol7 0x0136 +#define icmdSortByCol8 0x0137 +#define icmdSortByCol9 0x0138 +#define icmdSortByCol10 0x0139 + +#define icmdSortByColMin icmdSortByCol1 +#define icmdSortByColMax icmdSortByCol10 + +#define icmdHelpF1AsyncComplete 0x0300 + +/////////////////////////////////////////////////////////////////////////////// +//Menu cmds Bitmap IDs + +#define bmpidVsHelpContentsCmd 1 +#define bmpidVsHelpIndexCmd 2 +#define bmpidVsHelpSearchCmd 3 +#define bmpidVsHelpIndexResultsCmd 4 +#define bmpidVsHelpSearchResultsCmd 5 +#define bmpidVSHelpFavWindowCmd 6 +#define bmpidVSHelpFavAddCmd 7 +#define bmpidVSHelpSaveSearchCmd 8 +#define bmpidVSHelpAskAQuestionCmd 9 +#define bmpidVSHelpCheckQuestionStatusCmd 10 +#define bmpidVSHelpSendProductFeedbackCmd 11 +#define bmpidVSHelpHowDoICmd 12 + + +#endif //__HELPIDS_H_ diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/RazorCmdId.h b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/RazorCmdId.h new file mode 100644 index 00000000..c4b7587e --- /dev/null +++ b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/RazorCmdId.h @@ -0,0 +1,109 @@ +//------------------------------------------------------------------------------ +// +// Copyright (c) Microsoft Corporation. All Rights Reserved. +// Information Contained Herein is Proprietary and Confidential. +// +//------------------------------------------------------------------------------ +// +// Definition of the numeric part of the IDs for the VSCT elements of this +// package. +// +// NOTE: if you make any changes here, make sure to make the same changes in +// PkgCmdId.cs. +// + +///////////////////////////////////////////////////////////////////// +// Menus +// +#define IDM_DEBUGGER_PROJECT_CONTEXT_MENU 0x0201 +#define IDG_DEBUGGER_PROJECT_CONTEXT_MENU_MAIN_GROUP 0x0202 +#define IDG_DATA_TIPS_ON_DEBUG 0x0205 +#define IDM_THREAD_WINDOW_TOOLBAR 0x0206 +#define IDG_THREAD_WINDOW_TOOLBAR_FLAG 0x0207 +#define IDG_THREAD_WINDOW_TOOLBAR_STACKS 0x0208 +#define IDG_THREAD_WINDOW_TOOLBAR_GROUPS 0x0209 +#define IDG_THREAD_WINDOW_TOOLBAR_SEARCH 0x0210 +#define IDG_THREAD_WINDOW_TOOLBAR_FLAG_MENU 0x0211 +#define IDG_THREAD_WINDOW_TOOLBAR_FLAG_MENU_GROUP 0x0212 +#define IDG_THREAD_WINDOW_TOOLBAR_ARRANGE 0x0213 +#define IDG_THREAD_WINDOW_TOOLBAR_TOGGLE_SUSPENDED 0x0214 +#define IDG_DATA_TIPS_CONTEXT 0x0215 +#define IDM_DATA_TIPS_CONTEXT 0x0216 +#define IDG_DATA_TIPS_CONTEXT_CLEAR 0x0217 +#define IDG_DATA_TIPS_MENU_CLEAR 0x0218 +#define IDG_THREAD_WINDOW_SELECT_COLUMNS 0x0219 +#define IDM_DATA_TIPS_WATCH_ITEM_CONTEXT 0x021A +#define IDM_DATA_TIPS_TEXT_BOX_CONTEXT 0x021B +#define IDG_DATATIP_TEXTBOX_CLIPBOARD 0x021C +#define IDG_DATATIP_RADIX 0x021D +#define IDG_DATATIP_EXPRESSIONS 0x021E +#define IDM_DISASSEMBLY_WINDOW_TOOLBAR 0x0220 +#define IDG_DISASSEMBLY_WINDOW_TOOLBAR_ADDRESS 0x0221 +#define IDM_MANAGEDMEMORYANALYSIS_SUBMENU 0x0222 +#define IDG_MANAGEDMEMORYANALYSIS_SUBMENU 0x0223 + +// These values must be synced with intellitrace\Includes\PackageCommandIds.h +#define IDM_IntelliTraceHubDetailsViewFilterContextMenu 0x0225 +#define IDM_IntelliTraceHubDetailsViewFilterCategorySubMenu 0x0226 +#define IDG_IntelliTraceHubDetailsViewFilterCategoryEventsGroup 0x0227 +#define IDG_IntelliTraceHubDetailsViewFilterCategorySubMenuGroup 0x0228 + + +// TODO: re-enabled this constant +#define cmdidClearAllTips 0x00000101 +#define cmdidRazorThreadWindowToolbarExpandStacks 0x00000103 +#define cmdidRazorThreadWindowToolbarCollapseStacks 0x00000104 +#define cmdidRazorThreadWindowToolbarExpandGroups 0x00000105 +#define cmdidRazorThreadWindowToolbarCollapseGroups 0x00000106 +#define cmdidRazorThreadWindowToolbarSearchCombo 0x00000107 +#define cmdidRazorThreadWindowToolbarSearchHandler 0x00000108 +#define cmdidRazorThreadWindowToolbarClearSearch 0x00000109 +#define cmdidRazorThreadWindowToolbarSearchCallStack 0x00000110 +#define cmdidRazorThreadWindowToolbarFlagJustMyCode 0x00000111 +#define cmdidRazorThreadWindowToolbarFlagCustomModules 0x00000112 +#define cmdidRazorThreadWindowToolbarFlag 0x00000113 +#define cmdidToolsProgramToDebug 0x00000114 +#define cmdidDebugProgramToDebug 0x00000115 +#define cmdidInstallJitDebugger 0x00000116 +#define cmdidClearDataTipsSubMenu 0x00000119 +#define cmdidClearDataTipsContextRoot 0x0000011A +#define cmdidClearDataTipsContextSingle 0x0000011B +#define cmdidClearDataTipsContextFirst 0x0000011C +#define cmdidClearDataTipsContextLast 0x0000021C +#define cmdidClearDataTipsMenuFirst 0x0000021D +#define cmdidClearDataTipsMenuLast 0x0000031D +#define cmdidClearActivePinnedTips 0x0000031E +#define cmdidArrangePinnedTipsOnLine 0x0000031F +#define cmdidExportDataTips 0x00000320 +#define cmdidImportDataTips 0x00000321 +#define cmdidRazorThreadWindowToolbarGroupCombo 0x00000322 +#define cmdidRazorThreadWindowToolbarGroupHandler 0x00000323 +#define cmdidRazorThreadWindowToolbarColumnsMenu 0x00000324 +#define cmdidThreadWindowToolbarSelectColumnFirst 0x00000325 +#define cmdidThreadWindowToolbarSelectColumnLast 0x00000345 +#define cmdidRazorThreadWindowToolbarFreezeThreads 0x00000346 +#define cmdidRazorThreadWindowToolbarThawThreads 0x00000347 +#define cmdidPinExpression 0x00000348 +#define cmdidAddExpression 0x00000349 +#define cmdidRemoveExpression 0x0000034A +#define cmdidRazorThreadWindowToolbarShowFlaggedOnly 0x0000034B +#define cmdidRazorThreadWindowToolbarShowCurProcOnly 0x0000034C +#define cmdidRazorDisassemblyWindowToolbarAddressCombo 0x00000360 +#define cmdidLaunchManagedMemoryAnalysis 0x00000600 + +// This must match values in HubExtensions/UIConstants.cs +#define cmdidIntelliTraceHubDetailsViewFilterCategoryTopLevelBase 0x00000700 +#define cmdidIntelliTraceHubDetailsViewFilterCategoryTopLevelLast 0x0000072A // excluded +#define cmdidIntelliTraceHubDetailsViewFilterCategorySecondLevelBase 0x0000072A +#define cmdidIntelliTraceHubDetailsViewFilterCategorySecondLevelLast 0x00000750 // excluded + +// Bitmaps +#define bmpShieldIcon 1 + +// Thread window icon strip (image well) +#define imgThreadsExpandCallstack 1 +#define imgThreadsCollapseCallstack 2 +#define imgThreadsExpandGroups 3 +#define imgThreadsCollapseGroups 4 +#define imgThreadsFreezeThreads 5 +#define imgThreadsThawThreads 6 diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/RazorCmdUsed.vsct b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/RazorCmdUsed.vsct new file mode 100644 index 00000000..213bfc1a --- /dev/null +++ b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/RazorCmdUsed.vsct @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/RazorGuids.h b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/RazorGuids.h new file mode 100644 index 00000000..95871638 --- /dev/null +++ b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/RazorGuids.h @@ -0,0 +1,29 @@ + + +///////////////////////////////////////////////////////////////////////////// +// Razor Package +// +// NOTE: make sure any changes to this file is synchronized with Guids.cs +// +// +// Guid of the client package +#define guidRazorPackage { 0xBEB01DDF, 0x9D2B, 0x435B, { 0xA9, 0xE7, 0x76, 0x55, 0x7E, 0x2B, 0x6B, 0x52 } } + +// Guid of the command set containing the command IDs of the client package +#define guidRazorCmdSet { 0x5289d302, 0x2432, 0x4761, { 0x8c, 0x45, 0x5, 0x1c, 0x64, 0xbd, 0x0, 0xc4 } } + +#define guidVsDebugPresentationIcon { 0x271f465f, 0x409, 0x4cbc, { 0x95, 0xf6, 0x56, 0x30, 0x85, 0x77, 0xdc, 0xe6 } } + +// Guid of our icons for toolbar buttons +#define guidRazorToolbarIcons {0xC760F489, 0xE2D2, 0x4D20, {0xB5, 0x9B, 0xAD, 0x53, 0x65, 0xF2, 0xF8, 0xD9 } } + +// Guid of the App Thumbnail icon +#define guidAppThumbnailIcon { 0xa879711, 0xd2f9, 0x4312, { 0x93, 0x12, 0xf7, 0xd7, 0x3c, 0xb6, 0x6a, 0x9 } } + +// This must match values in HubExtensions/UIConstants.cs +// and intellitrace/Includes/PackageGuids.h +#define guidIntelliTraceHubExtensionCmdSet { 0x11A58127, 0xDD59, 0x4506, { 0x83, 0x9B, 0xF6, 0xF6, 0x27, 0x61, 0x15, 0x21 } } + +// +///////////////////////////////////////////////////////////////////////////// + diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/SharedCmdDef.vsct b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/SharedCmdDef.vsct new file mode 100644 index 00000000..ed7e463f --- /dev/null +++ b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/SharedCmdDef.vsct @@ -0,0 +1,10694 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DynamicVisibility + DefaultInvisible + DefaultDisabled + + Font Name + + + + DynamicVisibility + DefaultInvisible + DefaultDisabled + + Font Size + + + + DynamicVisibility + DefaultInvisible + DefaultDisabled + + Block Format + + + + DynamicVisibility + DefaultInvisible + DefaultDisabled + + Target Schema for Validation + + + + DynamicVisibility + DefaultInvisible + DefaultDisabled + + Cascading Style Sheet Version for Validation + + + + + + + DynamicVisibility + DefaultInvisible + DefaultDisabled + + &Zoom... + &Zoom... + Zoom + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/SharedCmdPlace.vsct b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/SharedCmdPlace.vsct new file mode 100644 index 00000000..fbc4dbfc --- /dev/null +++ b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/SharedCmdPlace.vsct @@ -0,0 +1,4556 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + AlwaysCreate + + Class View + Class View + + + + + AlwaysCreate + + Class View Go Toolbar + Class View Go Toolbar + + + + + + AlwaysCreate + + Find Symbol Window Toolbar + Find Symbol Window Toolbar + + + + + + AlwaysCreate + + Properties + Properties + + + + + + + + + + DefaultDocked + + XML Schema + XML Schema + + + + + DefaultDocked + + XML Data + XML Data + + + + + + + + + + La&yout + La&yout + + + + + + + + &Font + &Font + + + + + + &Justify + &Justify + + + + + + Align + &Align + + + + + + Make Same Size + &Make Same Size + + + + + + Horizontal Spacing + &Horizontal Spacing + + + + + + Vertical Spacing + &Vertical Spacing + + + + + + Center in Form + &Center in Form + + + + + + Order + &Order + + + + + + Position + &Position + + + + + + &Insert + &Insert + + + + + + &Delete + &Delete + + + + + + &Select + &Select + + + + + + &Resize + &Resize + + + + + + We&b Project + We&b Project + + + + + + + + + + Add + A&dd + + + + + + + + Vie&w + Vie&w + + + + + + Analy&ze + Analy&ze + + + + + + &Convert + &Convert + + + + + + &Build Dependencies + &Build Dependencies + + + + + + &Source Control + &Source Control + + + + + + Add + A&dd + + + + + + Debu&g + Debu&g + + + + + + + Add + A&dd + + + + + + + Add + Add + + + + + + Add + Add + + + + + + + Ad&vanced + Ad&vanced + + + + + + Boo&kmarks + Boo&kmarks + + + + + + &Outlining + &Outlining + + + + + + &IntelliSense + &IntelliSense + + + + + + Refactor + &Refactor + + + + + DefaultDocked + + Text Editor + Text Editor + + + + + + + + + + NotInTBList + NoCustomize + + Project and Solution Context Menus + + + + + + NotInTBList + + Misc Files Project + + + + + + + NotInTBList + + Solution Folder + + + + + + NotInTBList + + Solution + + + + + NotInTBList + + Cross Project Solution Project + + + + + NotInTBList + + Cross Project Solution Item + + + + + NotInTBList + + Cross Project Project Item + + + + + + + NotInTBList + + Cross Project Multi Project/Folder + + + + + + NotInTBList + + Cross Project Multi Project + + + + + NotInTBList + + Cross Project Multi Item + + + + + + + NotInTBList + + Cross Project Multi Solution Folder + + + + + + NotInTBList + + Project + + + + + NotInTBList + + Item + + + + + NotInTBList + + Folder + + + + + NotInTBList + + Web Reference Folder + + + + + NotInTBList + + Reference Root + + + + + NotInTBList + + Reference Item + + + + + NotInTBList + + App Designer Folder + + + + + + NotInTBList + + Web Project Folder + + + + + NotInTBList + + Web Folder + + + + + NotInTBList + + Web Item + + + + + NotInTBList + + Web SubWeb + + + + + NotInTBList + + File Contents + + + + + + &Change View To + + + + + + + NotInTBList + NoCustomize + + Class View Context Menus + + + + + NotInTBList + + Class View Project + + + + + NotInTBList + + Class View Project Reference + + + + + NotInTBList + + Class View Project References Folder + + + + + + NotInTBList + + Class View Item + + + + + NotInTBList + + Class View Project Reference Item + + + + + + NotInTBList + + Class View Member + + + + + NotInTBList + + Class View Project Reference Member + + + + + + NotInTBList + + Class View Grouping Members + + + + + NotInTBList + + Class View Folder + + + + + NotInTBList + + Class View Grouping Folder + + + + + NotInTBList + + Class View Multi-select + + + + + NotInTBList + + Class View Multi-select Project references Items + + + + + NotInTBList + + Class View Multi-select members + + + + + NotInTBList + + Class View Multi-select Project references members + + + + + + + NotInTBList + NoCustomize + + Editor Context Menus + + + + + + + + Drag and Drop + + + + + + + + Settings + + + + + + + + Error Correction + + + + + + + AlwaysCreate + NotInTBList + NoCustomize + + Other Context Menus + + + + + + + Server Explorer + + + + + + + Server Explorer + Server Explorer + + + + + + + Peek result context menu + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Dynamic + + + + Dynamic + + + + Dynamic + + + + Dynamic + + + + Dynamic + + + + Dynamic + + + + Dynamic + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/ShellCmdDef.vsct b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/ShellCmdDef.vsct new file mode 100644 index 00000000..3142b7b7 --- /dev/null +++ b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/ShellCmdDef.vsct @@ -0,0 +1,7154 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DynamicVisibility + + Load/Save Window UI + + + + CaseSensitive + NoAutoComplete + CommandWellOnly + FilterKeys + + Find + Go To Find Combo + Go To Find Combo + Go To Find Combo + + + + CaseSensitive + NoAutoComplete + CommandWellOnly + FilterKeys + StretchHorizontally + + Object Browser Search + + + + CaseSensitive + NoAutoComplete + CommandWellOnly + FilterKeys + StretchHorizontally + + Search + + + + DynamicVisibility + DefaultInvisible + DefaultDisabled + IconAndText + CommandWellOnly + + Browse: + Object Browsing Scope: + Choose object browsing scope + Object Browsing Scope + Object Browsing Scope + Object Browsing Scope + + + + DynamicVisibility + DefaultInvisible + CommandWellOnly + + Solution Configurations + + + + DynamicVisibility + DefaultInvisible + CommandWellOnly + + Solution Platforms + + + + DynamicVisibility + IconAndText + + &Show output from: + + + + DynamicVisibility + StretchHorizontally + + &Categories + + + + CaseSensitive + NoAutoComplete + CommandWellOnly + FilterKeys + StretchHorizontally + + Call Browser Search + + + + CaseSensitive + NoAutoComplete + CommandWellOnly + FilterKeys + StretchHorizontally + + Call Browser Search + + + + CaseSensitive + NoAutoComplete + CommandWellOnly + FilterKeys + StretchHorizontally + + Call Browser Search + + + + CaseSensitive + NoAutoComplete + CommandWellOnly + FilterKeys + StretchHorizontally + + Call Browser Search + + + + CaseSensitive + NoAutoComplete + CommandWellOnly + FilterKeys + StretchHorizontally + + Call Browser Search + + + + CaseSensitive + NoAutoComplete + CommandWellOnly + FilterKeys + StretchHorizontally + + Call Browser Search + + + + CaseSensitive + NoAutoComplete + CommandWellOnly + FilterKeys + StretchHorizontally + + Call Browser Search + + + + CaseSensitive + NoAutoComplete + CommandWellOnly + FilterKeys + StretchHorizontally + + Call Browser Search + + + + CaseSensitive + NoAutoComplete + CommandWellOnly + FilterKeys + StretchHorizontally + + Call Browser Search + + + + CaseSensitive + NoAutoComplete + CommandWellOnly + FilterKeys + StretchHorizontally + + Call Browser Search + + + + CaseSensitive + NoAutoComplete + CommandWellOnly + FilterKeys + StretchHorizontally + + Call Browser Search + + + + CaseSensitive + NoAutoComplete + CommandWellOnly + FilterKeys + StretchHorizontally + + Call Browser Search + + + + CaseSensitive + NoAutoComplete + CommandWellOnly + FilterKeys + StretchHorizontally + + Call Browser Search + + + + CaseSensitive + NoAutoComplete + CommandWellOnly + FilterKeys + StretchHorizontally + + Call Browser Search + + + + CaseSensitive + NoAutoComplete + CommandWellOnly + FilterKeys + StretchHorizontally + + Call Browser Search + + + + CaseSensitive + NoAutoComplete + CommandWellOnly + FilterKeys + StretchHorizontally + + Call Browser Search + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/ShellCmdPlace.vsct b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/ShellCmdPlace.vsct new file mode 100644 index 00000000..a071fd76 --- /dev/null +++ b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/ShellCmdPlace.vsct @@ -0,0 +1,6722 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AlwaysCreate + + MenuBar + Menu Bar + + + + + AlwaysCreate + + Standard + Standard + + + + + AlwaysCreate + + Add Command + Add Command + + + + + AlwaysCreate + + Undefined + Undefined + + + + + AlwaysCreate + NotInTBList + NoCustomize + + Context Menus + Context Menus + + + + + AlwaysCreate + + Explorer + Explorer + + + + + AlwaysCreate + + Object Browser + Object Browser + + + + + AlwaysCreate + + Object Browser Go Toolbar + Object Browser Go Toolbar + + + + + + Object Browser and Class view groups + Object Browser and Class view groups + + + + + AlwaysCreate + + Output Window + Output Window + + + + + AlwaysCreate + + Find Results 1 + Find Results 1 + + + + + AlwaysCreate + + Find Results 2 + Find Results 2 + + + + + AlwaysCreate + + Unified Find + Unified Find + + + + + AlwaysCreate + + Snippet Window + Snippet Window + + + + + AlwaysCreate + + Bookmark Window + Bookmark Window + + + + + AlwaysCreate + + Task List + Task List + + + + + AlwaysCreate + + User Tasks + User Tasks + + + + + AlwaysCreate + + Error List + Error List + + + + + + AlwaysCreate + + Find All References Window Toolbar + Find All References Window Toolbar + + + + + + + + Build + Build + + + + + + + AlwaysCreate + + Call Browser + Call Browser + + + + + AlwaysCreate + + Call Browser + Call Browser + + + + + AlwaysCreate + + Call Browser + Call Browser + + + + + AlwaysCreate + + Call Browser + Call Browser + + + + + AlwaysCreate + + Call Browser + Call Browser + + + + + AlwaysCreate + + Call Browser + Call Browser + + + + + AlwaysCreate + + Call Browser + Call Browser + + + + + AlwaysCreate + + Call Browser + Call Browser + + + + + AlwaysCreate + + Call Browser + Call Browser + + + + + AlwaysCreate + + Call Browser + Call Browser + + + + + AlwaysCreate + + Call Browser + Call Browser + + + + + AlwaysCreate + + Call Browser + Call Browser + + + + + AlwaysCreate + + Call Browser + Call Browser + + + + + AlwaysCreate + + Call Browser + Call Browser + + + + + AlwaysCreate + + Call Browser + Call Browser + + + + + AlwaysCreate + + Call Browser + Call Browser + + + + + + + + File + &File + + + + + + Edit + &Edit + + + + + + View + &View + + + + + + + Refactor + &Refactor + + + + + + + TextChanges + + Project + &Project + + + + + + + + Project + &Project + + + + + + + Build + &Build + + + + + + + Format + F&ormat + + + + + + Tools + &Tools + + + + + + Window + &Window + + + + + NoCustomize + + Addins + &Addins + + + + + + Community + &Community + + + + + + Help + &Help + + + + + + + + New + &New + + + + + + Open + &Open + + + + + + + + Add Project + A&dd + + + + + + + Recent Files + Recent &Files + + + + + + Recent Projects + Recent Pro&jects and Solutions + + + + + TextChanges + DynamicVisibility + + Move into Project + Move &into Project + + + + + + Interactive Windows + Intera&ctive Windows + + + + + + Find Results + Fi&nd Results + + + + + + Other Windows + Oth&er Windows + + + + + + Apply Window Layout + Appl&y Window Layout + + + + + + Toolbars + &Toolbars + + + + + + Paste &Special + Paste &Special + + + + + + &Find and Replace + &Find and Replace + + + + + + &Go To + + + + + + Menu + &Menu + + + + + + Object + Ob&ject + + + + + + + Build + B&uild + + + + + + Rebuild + R&ebuild All + + + + + + + + + + Project Only + Pro&ject Only + + + + + + + + + Profile Guided Optimization + &Profile Guided Optimization + + + + + + + + + + &Call Browser + &Call Browser + + + + + + + + Filter Solution Explorer To + + + + + + + New Project + + + + + + Add Item + + + + + + Other Windows + + + + + + N&avigate Backward + + + + + + Object Browser Settings + &Object Browser Settings + + + + + + + Object Browser Search Options + + + + + + + Call Browser Settings + Call Browser Settings + + + + + + Call Browser Settings + Call Browser Settings + + + + + + Call Browser Settings + Call Browser Settings + + + + + + Call Browser Settings + Call Browser Settings + + + + + + Call Browser Settings + Call Browser Settings + + + + + + Call Browser Settings + Call Browser Settings + + + + + + Call Browser Settings + Call Browser Settings + + + + + + Call Browser Settings + Call Browser Settings + + + + + + Call Browser Settings + Call Browser Settings + + + + + + Call Browser Settings + Call Browser Settings + + + + + + Call Browser Settings + Call Browser Settings + + + + + + Call Browser Settings + Call Browser Settings + + + + + + Call Browser Settings + Call Browser Settings + + + + + + Call Browser Settings + Call Browser Settings + + + + + + Call Browser Settings + Call Browser Settings + + + + + + Call Browser Settings + Call Browser Settings + + + + + + + Docked Window + + + + + + Menu Designer + + + + + + Toolbox + + + + + + Open Drop Down + + + + + + Windows Presentation Foundation Version Drop Down + + + + + + External Tools Directories + + + + + + External Tools Arguments + + + + + + Project Window + + + + + + Stub Project + + + + + + Code Window + + + + + + Results List + + + + + + Command Window + + + + + + Expansion Manager + + + + + + No Commands Available + + + + + + Bookmark Window + + + + + + + Find Regular Expression Builder + + + + + + Replace Regular Expression Builder + + + + + + Wild Card Expression Builder + + + + + + Wild Card Expression Builder + + + + + + + EzMDI Files + + + + + + + AutoHidden Windows + + + + + + Object Browser Objects Pane + + + + + + Object Browser Members Pane + + + + + + Object Browser Description Pane + + + + + + Find Symbol + + + + + + Find All References + + + + + + Ca&ll Browser + Ca&ll Browser + Call Browser + + + + + + Preview Changes + + + + + + + Easy MDI Tool Window + + + + + + Easy MDI Document Window + + + + + + Easy MDI Dragging + + + + + + Easy MDI Windows + + + + + + Toolbar List + + + + + + + + Snippet + &Snippet + + + + + + + + Annotation + &Annotation + + + + + + + + Outlining + Out&lining + + + + + + + + + + + + Show items contained by + + + + + + + Show issues generated + + + + + + IconAndText + + Group by: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Sort By + &Sort By + + + + + + Show Columns + Show &Columns + + + + + + Grouping + &Grouping + + + + + + + + Task List + + + + + + Error List + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/VsDbgCmd.h b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/VsDbgCmd.h new file mode 100644 index 00000000..9d751463 --- /dev/null +++ b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/VsDbgCmd.h @@ -0,0 +1,668 @@ + // PkgCmdID.h +// Command IDs used in defining command bars +// + +#ifndef _VSDBGCMD_H_INCLUDED +#define _VSDBGCMD_H_INCLUDED + +#define MULTIPLE_WATCH_WINDOWS 1 + +/////////////////////////////////////////////////////////////////////////////// +// Menu IDs + +// menus +#define IDM_DEBUG_MENU 0x0401 +#define IDM_DEBUG_WINDOWS 0x0402 +#define IDM_STEPINTOSPECIFIC 0x0403 +#define IDM_STEP_UNIT 0x0404 +#define IDM_MEMORY_WINDOWS 0x0405 +#define IDM_BREAKPOINTS_WINDOW_COLUMN_LIST 0x0406 +#define IDM_HIDDEN_COMMANDS 0x0407 +#ifdef MULTIPLE_WATCH_WINDOWS +#define IDM_WATCH_WINDOWS 0x0408 +#endif +#define IDM_DEBUG_TOOLBAR_WINDOWS 0x0409 +#define IDM_DEBUGGER_CONTEXT_MENUS 0x0410 +//#define unused menu ID 0x0411 +#define IDM_BREAKPOINT_SUBMENU 0x0412 +#define IDM_DISASM_BREAKPOINT_SUBMENU 0x0413 +#define IDM_CALLSTACK_BREAKPOINT_SUBMENU 0x0414 +#define IDM_BREAKPOINTS_WINDOW_NEW_LIST 0x0415 +#define IDM_NEW_BREAKPOINT_SUBMENU 0x0416 +#define IDM_MODULES_LOADSYMBOLS_SUBMENU 0x0417 +#define IDM_CALLSTACK_LOADSYMBOLS_SUBMENU 0x0418 +#define IDM_STEPINTOSPECIFIC_CONTEXT 0x0419 +#define IDM_OTHER_DEBUG_TARGETS_SUBMENU 0x041A + +// toolbars +// NOTE: IDM_DEBUG_CONTEXT_TOOLBAR comes before IDM_DEBUG_TOOLBAR +// so that the Debug toolbar will appear to the left of the Debug Location toolbar. +// This uses the fact that the toolbar defined earlier go to the right when on the same line +// (see VS7 bug 295621) +#define IDM_DEBUG_CONTEXT_TOOLBAR 0x0420 +#define IDM_DEBUG_TOOLBAR 0x0421 +#define IDM_BREAKPOINTS_WINDOW_TOOLBAR 0x0422 +#define IDM_DISASM_WINDOW_TOOLBAR 0x0423 +#define IDM_ATTACHED_PROCS_TOOLBAR 0x0424 +#define IDM_MODULES_WINDOW_TOOLBAR 0x0425 + +#define IDM_MEMORY_WINDOW_TOOLBAR 0x0430 +#define IDM_MEMORY_WINDOW_TOOLBAR1 0x0431 +#define IDM_MEMORY_WINDOW_TOOLBAR2 0x0432 +#define IDM_MEMORY_WINDOW_TOOLBAR3 0x0433 +#define IDM_MEMORY_WINDOW_TOOLBAR4 0x0434 +#define IDM_BREAKPOINTS_WINDOW_SORT_LIST 0x0435 + +#define IDM_WATCH_WINDOW_TOOLBAR 0x0440 +#define IDM_WATCH_WINDOW_TOOLBAR1 0x0441 +#define IDM_WATCH_WINDOW_TOOLBAR2 0x0442 +#define IDM_WATCH_WINDOW_TOOLBAR3 0x0443 +#define IDM_WATCH_WINDOW_TOOLBAR4 0x0444 +#define IDM_LOCALS_WINDOW_TOOLBAR 0x0445 +#define IDM_AUTOS_WINDOW_TOOLBAR 0x0446 +#define IDM_WATCH_LOADSYMBOLS_SUBMENU 0x0447 + +// context menus +#define IDM_WATCH_CONTEXT 0x0500 +#define IDM_LOCALS_CONTEXT 0x0501 +#define IDM_AUTOS_CONTEXT 0x0502 +#define IDM_THREADS_CONTEXT 0x0503 +#define IDM_CALLSTACK_CONTEXT 0x0504 +#define IDM_DISASM_CONTEXT 0x0505 +#define IDM_BREAKPOINTS_WINDOW_CONTEXT 0x0506 +#define IDM_MEMORY_CONTEXT 0x0507 +#define IDM_REGISTERS_CONTEXT 0x0508 +#define IDM_MODULES_CONTEXT 0x0509 +#define IDM_DATATIP_CONTEXT 0x050A +#define IDM_ATTACHED_PROCS_CONTEXT 0x050B +#define IDM_BREAKPOINT_CONTEXT 0x050C +#define IDM_CONSOLE_CONTEXT 0x050D +#define IDM_OUTPUT_CONTEXT 0x050E +#define IDM_SCRIPT_PROJECT_CONTEXT 0x050F +#define IDM_THREADTIP_CONTEXT 0x0510 +#define IDM_THREAD_IP_MARKER_CONTEXT 0x0511 +#define IDM_THREAD_IP_MARKERS_CONTEXT 0x0512 +#define IDM_LOADSYMBOLS_CONTEXT 0x0513 +#define IDM_SYMBOLINCLUDELIST_CONTEXT 0x0514 +#define IDM_SYMBOLEXCLUDELIST_CONTEXT 0x0515 +#define IDM_DEBUG_VS_CODEWIN_ADD_WATCH_MENU 0x0516 + +/////////////////////////////////////////////////////////////////////////////// +// Menu Group IDs +#define IDG_DEBUG_MENU 0x0001 +#define IDG_DEBUG_WINDOWS_GENERAL 0x0002 +#define IDG_DEBUG_TOOLBAR 0x0003 +#define IDG_EXECUTION 0x0004 +#define IDG_STEPPING 0x0005 +#define IDG_WATCH 0x0006 +#define IDG_BREAKPOINTS 0x0007 +#define IDG_HIDDEN_COMMANDS 0x0008 +#define IDG_WINDOWS 0x0009 +#define IDG_STEPINTOSPECIFIC 0x000A +#define IDG_VARIABLES 0x000B +#define IDG_WATCH_EDIT 0x000C +#define IDG_THREAD_CONTROL 0x000F +#define IDG_DEBUG_DISPLAY 0x0010 +#define IDG_DEBUG_TOOLBAR_STEPPING 0x0011 +#define IDG_DEBUGGER_CONTEXT_MENUS 0x0012 +#define IDG_MEMORY_WINDOWS 0x0013 +#define IDG_DISASM_NAVIGATION 0x0014 +#define IDG_DISASM_BREAKPOINTS 0x0015 +#define IDG_DISASM_EXECUTION 0x0016 +#define IDG_DISASM_DISPLAY 0x0017 +#define IDG_BREAKPOINTS_WINDOW_NEW 0x0018 +#define IDG_BREAKPOINTS_WINDOW_DELETE 0x0019 +#define IDG_BREAKPOINTS_WINDOW_ALL 0x001A +#define IDG_BREAKPOINTS_WINDOW_VIEW 0x001B +#define IDG_BREAKPOINTS_WINDOW_EDIT 0x001C +#define IDG_BREAKPOINTS_WINDOW_COLUMNS 0x001D +#define IDG_BREAKPOINTS_WINDOW_COLUMN_LIST 0x001E +#define IDG_BREAKPOINTS_WINDOW_NEW_LIST 0x001F +#define IDG_BREAKPOINTS_WINDOW_PROPERTIES_LIST 0x0020 +#define IDG_NEW_BREAKPOINT_SUBMENU 0x0021 +#define IDG_PROGRAM_TO_DEBUG 0x0024 +#define IDG_DEBUG_TOOLBAR_WATCH 0x0025 +#define IDG_DEBUG_VS_CODEWIN_ADD_WATCH_GROUP 0x0026 +#define IDG_DEBUG_CONTEXT_TOOLBAR 0x0027 +#define IDG_DISASM_WINDOW_TOOLBAR 0x0028 +#define IDG_MEMORY_FORMAT 0x0100 +#define IDG_MEMORY_INT_FORMAT 0x0101 +#define IDG_MEMORY_FLT_FORMAT 0x0102 +#define IDG_MEMORY_TEXT 0x0103 +#define IDG_MEMORY_MISC 0x0104 +#define IDG_MEMORY_TOOLBAR 0x0105 +#define IDG_REGISTERS_GROUPS 0x0108 +#define IDG_REGISTERS_EDIT 0x0109 +#define IDG_CUSTOMIZABLE_CONTEXT_MENU_COMMANDS 0x0110 +#define IDG_CALLSTACK_COPY 0x0111 +#define IDG_CALLSTACK_NAVIGATE 0x0112 +#define IDG_CALLSTACK_BREAKPOINTS 0x0113 +#define IDG_CALLSTACK_DISPLAY 0x0114 +#define IDG_CALLSTACK_OPTIONS 0x0115 +#define IDG_DEBUG_WINDOWS_INSPECT 0x0116 +#define IDG_DEBUG_WINDOWS_CONTEXT 0x0117 +#define IDG_DEBUG_WINDOWS_DISASM 0x0118 +#define IDG_CRASHDUMP 0x0119 +#define IDG_DEBUG_TOOLBAR_WINDOWS 0x011A +#define IDG_DEBUG_TOOLBAR_EXECUTION 0x011B +#define IDG_THREAD_COPY 0x011C +#define IDG_TOOLS_DEBUG 0x011D +#define IDG_STEP_UNIT 0x011E +#ifdef MULTIPLE_WATCH_WINDOWS +#define IDG_WATCH_WINDOWS 0x011F +#endif +#define IDG_CALLSTACK_SYMBOLS 0x0120 +#define IDG_MODULES_COPY 0x0121 +#define IDG_MODULES_SYMBOLS 0x0122 +#define IDG_MODULES_DISPLAY 0x0123 +#define IDG_DATATIP_WATCH 0x0124 +#define IDG_DATATIP_VISIBILITY 0x0125 +#define IDG_ATTACHED_PROCS_COPY 0x0126 +#define IDG_ATTACHED_PROCS_EXECCNTRL 0x0127 +#define IDG_ATTACHED_PROCS_ADDBP 0x0128 +#define IDG_ATTACHED_PROCS_ATTACH 0x0129 +#define IDG_ATTACHED_PROCS_COLUMNS 0x0130 +#define IDG_ATTACHED_PROCS_DETACHONSTOP 0x0131 +#define IDG_DEBUG_CONSOLE 0x0132 +#define IDG_MODULES_JMC 0x0133 +//#define unused group ID 0x0134 +//#define unused group ID 0x0135 +#define IDG_BREAKPOINT_CONTEXT_ADD_DELETE 0x0136 +#define IDG_BREAKPOINT_CONTEXT_MODIFY 0x0137 +#define IDG_ATTACHED_PROCS_STEPPING 0x0138 +#define IDG_CONSOLE_CONTEXT 0x0139 +#define IDG_DATATIP_CLIPBOARD 0x013A +#define IDG_ATTACHED_PROCS_EXECCNTRL2 0x013B +#define IDG_OUTPUT_CONTEXT 0x013C +#define IDG_SINGLEPROC_EXECUTION 0x013D +#define IDG_THREAD_FLAGGING 0x013E +#define IDG_THREADTIP_WATCH 0x013f +#define IDG_THREADTIP_CLIPBOARD 0x0140 +#define IDG_THREAD_IP_MARKER_CONTEXT 0x0141 +#define IDG_THREAD_IP_MARKERS_CONTEXT 0x0142 +#define IDG_THREAD_IP_MARKERS_SWITCHCONTEXT 0x0143 +#define IDG_THREAD_IP_MARKERS_FLAG 0x0144 +#define IDG_THREAD_IP_MARKERS_UNFLAG 0x0145 +#define IDG_DEBUG_CONTEXT_TOGGLE_SUBGROUP 0x0146 +#define IDG_DEBUG_CONTEXT_STACKFRAME_SUBGROUP 0x0147 +#define IDG_LOAD_SYMBOLS_DEFAULTS 0x0149 +#define IDG_BREAKPOINTS_WINDOW_SET_FILTER 0x0151 +#define IDG_BREAKPOINTS_WINDOW_SORT 0x0152 +#define IDG_BREAKPOINTS_WINDOW_SORT_LIST 0x0153 +#define IDG_BREAKPOINTS_WINDOW_SORT_DIRECTION 0x0154 +#define IDG_BREAKPOINTS_WINDOW_SORT_NONE 0x0155 +#define IDG_BREAKPOINTS_WINDOW_UNDO_REDO 0x0156 +#define IDG_BREAKPOINTS_WINDOW_IMPORT_EXPORT 0x0157 +#define IDG_BREAKPOINTS_WINDOW_EXPORT 0x0158 +#define IDG_BREAKPOINT_EXPORT 0x0159 +#define IDG_AUTOLOAD_SYMBOLS_DEFAULTS 0x0160 +#define IDG_SYMBOLS_INCLUDELIST_DEFAULTS 0x0161 +#define IDG_SYMBOLS_EXCLUDELIST_DEFAULTS 0x0162 +#define IDG_DEBUGGER_OPTIONS 0x0163 + +#define IDG_WATCH_WINDOW_REAL_FUNC_EVAL 0x0164 +#define IDG_WATCH_WINDOW_REAL_FUNC_EVAL1 0x0165 +#define IDG_WATCH_WINDOW_REAL_FUNC_EVAL2 0x0166 +#define IDG_WATCH_WINDOW_REAL_FUNC_EVAL3 0x0167 +#define IDG_WATCH_WINDOW_REAL_FUNC_EVAL4 0x0168 +#define IDG_LOCALS_WINDOW_REAL_FUNC_EVAL 0x0169 +#define IDG_AUTOS_WINDOW_REAL_FUNC_EVAL 0x0170 +#define IDG_WATCH_SYMBOLS 0x0171 +#define IDG_MODULES_WINDOW_TOOLBAR_FILTER 0x0172 +#define IDG_VARIABLE_NAVIGATION 0x0173 +#define IDG_OTHER_DEBUG_TARGETS_SUBMENU 0x0174 +#define IDG_DATATIP_SYMBOLS 0x0175 + +// Call out memory window instances separately for multiple toolbar support +#define IDG_MEMORY_EXPRESSION1 0x0201 +#define IDG_MEMORY_EXPRESSION2 0x0202 +#define IDG_MEMORY_EXPRESSION3 0x0203 +#define IDG_MEMORY_EXPRESSION4 0x0204 +#define IDG_MEMORY_COLUMNS1 0x0211 +#define IDG_MEMORY_COLUMNS2 0x0212 +#define IDG_MEMORY_COLUMNS3 0x0213 +#define IDG_MEMORY_COLUMNS4 0x0214 + +#define IDG_MODULES_SYMBOLS_SETTINGS 0x0215 +#define IDG_CALLSTACK_SYMBOLS_SETTINGS 0x0216 +#define IDG_WATCH_SYMBOLS_SETTINGS 0x0217 +#define IDG_DATATIP_SYMBOLS_SETTINGS 0x0218 + +#define IDG_VS_CODEWIN_DEBUG_BP 0x0230 + +// this group is for commands that are available in the command window, +// but are not on any menus by default +#define IDG_COMMAND_WINDOW 0x0300 + +#define IDG_INTELLITRACE_STEP 0x0400 +#define IDG_INTELLITRACE_TOOLBAR_STEP 0x0401 + +/////////////////////////////////////////////////////////////////////////////// +// Indexes into bitmaps (image wells) + +//Instructions for adding new icons: +// First, see if the icon is already in the VS Image Catalog. +// If so, use it. If not, view the readme.txt file for vsimage +// service to find out how to add new images. + +// DbgToolwindowIcons.bmp +#define IDBI_TW_THREADS 1 +#define IDBI_TW_RUNNING_DOCS 2 +#define IDBI_TW_INSERT_BREAKPOINT 3 +#define IDBI_TW_STACK 4 +#define IDBI_TW_LOCALS 5 +#define IDBI_TW_AUTOS 6 +#define IDBI_TW_DISASM 7 +#define IDBI_TW_MEMORY 8 +#define IDBI_TW_REGISTERS 9 +#define IDBI_TW_WATCH 10 +#define IDBI_TW_MODULES 11 +#define IDBI_TW_CONSOLE_WINDOW 12 +#define IDBI_TW_PROCESSES 13 + +#define IDBI_MAX 13 + + +/////////////////////////////////////////////////////////////////////////////// +// Command IDs +// Unfortunately several debugger cmdid's found in vs\src\common\inc\stdidcmd.h +// cannot be moved into this file for backward compatibility reasons. +// Otherwise, all V7 debugger cmdid's should be defined in here. + +/////////////////////////////////////////////////////////////////////////////// +// IMPORTANT: Our implementation of multiple-instance toolwindows make use of +// the high-end byte of the cmdid's to store instance information. Do not use +// this byte unless you are implementing a multiple-instance toolwindow. +/////////////////////////////////////////////////////////////////////////////// +#ifdef __cplusplus +inline DWORD DBGCMDID_STRIP(DWORD cmdid) +{ + return cmdid & 0x00ffffff; +} +inline long DBGCMDID_TOOLWINDOW_ID(DWORD cmdid) +{ + return (cmdid >> 24) & 0x000000ff; +} +#endif + +// General debugger commands +#define cmdidDebuggerFirst 0x00000000 +#define cmdidDebuggerLast 0x00000fff + +#define cmdidBreakpointsWindowShow 0x00000100 +#define cmdidDisasmWindowShow 0x00000101 +#define cmdidRegisterWindowShow 0x00000103 +#define cmdidModulesWindowShow 0x00000104 +#define cmdidApplyCodeChanges 0x00000105 +#define cmdidStopApplyCodeChanges 0x00000106 +#define cmdidGoToDisassembly 0x00000107 +#define cmdidShowDebugOutput 0x00000108 +#define cmdidStepUnitLine 0x00000110 +#define cmdidStepUnitStatement 0x00000111 +#define cmdidStepUnitInstruction 0x00000112 +#define cmdidStepUnitList 0x00000113 +#define cmdidStepUnitListEnum 0x00000114 +#define cmdidWriteCrashDump 0x00000115 +#define cmdidProcessList 0x00000116 +#define cmdidProcessListEnum 0x00000117 +#define cmdidThreadList 0x00000118 +#define cmdidThreadListEnum 0x00000119 +#define cmdidStackFrameList 0x00000120 +#define cmdidStackFrameListEnum 0x00000121 +#define cmdidDisableAllBreakpoints 0x00000122 +#define cmdidEnableAllBreakpoints 0x00000123 +#define cmdidToggleAllBreakpoints 0x00000124 +#define cmdidTerminateAll 0x00000125 +#define cmdidSymbolOptions 0x00000126 +#define cmdidLoadSymbolsFromCurrentPath 0x00000127 +#define cmdidSymbolLoadInfo 0x00000128 +#define cmdidStopEvaluatingExpression 0x00000129 +#define cmdidAttachedProcsWindowShow 0x00000131 +#define cmdidToggleFlaggedThreads 0x00000132 +#define cmdidThreadFlag 0x00000133 +#define cmdidThreadUnflag 0x00000134 +#define cmdidJustMyCode 0x00000135 +#define cmdidNewFunctionBreakpoint 0x00000137 +#define cmdidNewAddressBreakpoint 0x00000138 +#define cmdidNewDataBreakpoint 0x00000139 +#define cmdidProcessRefreshRequest 0x0000013A +#define cmdidThreadUnflagAll 0x00000040 +#define cmdidInsertTracepoint 0x00000041 +#define cmdidBreakpointSettings 0x0000013B +#define cmdidBreakpointSettingsCondition 0x00000140 +#define cmdidBreakpointSettingsAction 0x00000141 +#define cmdidBreakpointConstraints 0x00000145 +#define cmdidCreateObjectID 0x00000147 +//#define cmdid is available 0x00000148 +#define cmdidCopyExpression 0x00000149 +#define cmdidCopyValue 0x0000014A +#define cmdidDestroyObjectID 0x0000014B +#define cmdidOutputOnException 0x00000150 +#define cmdidOutputOnModuleLoad 0x00000151 +#define cmdidOutputOnModuleUnload 0x00000152 +#define cmdidOutputOnProcessDestroy 0x00000153 +#define cmdidOutputOnThreadDestroy 0x00000154 +#define cmdidOutputOnOutputDebugString 0x00000155 +#define cmdidSingleProcStepInto 0x00000156 +#define cmdidSingleProcStepOver 0x00000157 +#define cmdidSingleProcStepOut 0x00000158 +#define cmdidToggleCurrentThreadFlag 0x00000159 +#define cmdidShowThreadIpIndicators 0x0000015A +#define cmdidLoadSymbolsFromPublic 0x0000015B +#define cmdidOutputOnStepFilter 0x0000015D +#define cmdidStepFilterToggle 0x0000015E +#define cmdidShowStepIntoSpecificMenu 0x0000015F +#define cmdidBreakpointEditLabels 0x00000160 +#define cmdidBreakpointExport 0x00000161 +#define cmdidAutoLoadSymbolsEnabled 0x00000163 +#define cmdidAutoLoadSymbolsDisabled 0x00000164 +#define cmdidAddWatchExpression 0x00000171 +#define cmdidQuickWatchExpression 0x00000172 +#define cmdidDebuggerOptions 0x00000173 +#define cmdidRunThreadsToCursor 0x00000174 +#define cmdidToggleShowCurrentProcessOnly 0x00000175 +#define cmdidRunCurrentTileToCursor 0x00000176 +#define cmdidAddParallelWatch 0x00000179 +#define cmdidExitDebuggerDeploymentBuild 0x0000017A +#define cmdidLaunchAppx 0x0000017B +#define cmdidSymbolsIncludeExclude 0x0000017C +#define cmdidTriggerAppPrefetch 0x0000017D + +// App package menu control +#define cmdidAppPackageAppsControl 0x0000017E +#define cmdidAppPackageAppsMenuGroupTargetAnchor 0x0000017F +#define cmdidAppPackageAppsMenuGroup 0x00000180 +#define cmdidAppPackageAppsMenuGroupTarget 0x00000181 +#define cmdidAppPackageAppsMenuGroupTargetLast 0x0000019F + +// See above for explanation of these constants... +#define cmdidMemoryWindowShow 0x00000200 +#define cmdidMemoryWindowShow1 0x01000200 +#define cmdidMemoryWindowShow2 0x02000200 +#define cmdidMemoryWindowShow3 0x03000200 +#define cmdidMemoryWindowShow4 0x04000200 + +#ifdef MULTIPLE_WATCH_WINDOWS +#define cmdidWatchWindowShow 0x00000300 +#define cmdidWatchWindowShow1 0x01000300 +#define cmdidWatchWindowShow2 0x02000300 +#define cmdidWatchWindowShow3 0x03000300 +#define cmdidWatchWindowShow4 0x04000300 +#define cmdidWatchWindowShowSingle 0x05000300 +#endif + +// Breakpoint Window commands +#define cmdidBreakpointsWindowFirst 0x00001000 +#define cmdidBreakpointsWindowLast 0x00001fff + +#define cmdidBreakpointsWindowNewBreakpoint 0x00001001 // deprecated +#define cmdidBreakpointsWindowNewGroup 0x00001002 +#define cmdidBreakpointsWindowDelete 0x00001003 +#define cmdidBreakpointsWindowProperties 0x00001004 // deprecated +#define cmdidBreakpointsWindowDefaultGroup 0x00001005 +#define cmdidBreakpointsWindowGoToSource 0x00001006 +#define cmdidBreakpointsWindowGoToDisassembly 0x00001007 +#define cmdidBreakpointsWindowGoToBreakpoint 0x00001008 +#define cmdidBreakpointsWindowSetFilter 0x00001009 +#define cmdidBreakpointsWindowSetFilterList 0x0000100A +#define cmdidBreakpointsWindowSetFilterDropDown 0x0000100B +#define cmdidBreakpointsWindowSetFilterDropDownList 0x0000100C +#define cmdidBreakpointsWindowImport 0x0000100D +#define cmdidBreakpointsWindowUndo 0x0000100E +#define cmdidBreakpointsWindowRedo 0x0000100F +#define cmdidBreakpointsWindowExport 0x00001010 +#define cmdidBreakpointsWindowExportSelected 0x00001011 +#define cmdidBreakpointsWindowClearSearchFilter 0x00001013 +#define cmdidBreakpointsWindowDeleteAllMatching 0x00001014 +#define cmdidBreakpointsWindowToggleAllMatching 0x00001015 +#define cmdidBreakpointsWindowSortByColumnName 0x00001200 +#define cmdidBreakpointsWindowSortByColumnCondition 0x00001201 +#define cmdidBreakpointsWindowSortByColumnHitCount 0x00001202 +#define cmdidBreakpointsWindowSortByColumnLanguage 0x00001203 +#define cmdidBreakpointsWindowSortByColumnFunction 0x00001204 +#define cmdidBreakpointsWindowSortByColumnFile 0x00001205 +#define cmdidBreakpointsWindowSortByColumnAddress 0x00001206 +#define cmdidBreakpointsWindowSortByColumnData 0x00001207 +#define cmdidBreakpointsWindowSortByColumnProcess 0x00001208 +#define cmdidBreakpointsWindowSortByColumnConstraints 0x00001209 +#define cmdidBreakpointsWindowSortByColumnAction 0x0000120A +#define cmdidBreakpointsWindowSortByColumnLabel 0x0000120B +#define cmdidBreakpointsWindowSortByNone 0x0000120C +#define cmdidBreakpointsWindowSortAscending 0x0000120D +#define cmdidBreakpointsWindowSortDescending 0x0000120E + + +#define cmdidBreakpointsWindowColumnName 0x00001100 +#define cmdidBreakpointsWindowColumnCondition 0x00001101 +#define cmdidBreakpointsWindowColumnHitCount 0x00001102 +#define cmdidBreakpointsWindowColumnLanguage 0x00001103 +#define cmdidBreakpointsWindowColumnFunction 0x00001104 +#define cmdidBreakpointsWindowColumnFile 0x00001105 +#define cmdidBreakpointsWindowColumnAddress 0x00001106 +#define cmdidBreakpointsWindowColumnData 0x00001107 +#define cmdidBreakpointsWindowColumnProcess 0x00001108 +#define cmdidBreakpointsWindowColumnConstraints 0x00001109 +#define cmdidBreakpointsWindowColumnAction 0x0000110A +#define cmdidBreakpointsWindowColumnLabel 0x0000110B + + + +// Disassembly Window commands +#define cmdidDisasmWindowFirst 0x00002000 +#define cmdidDisasmWindowLast 0x00002fff + +#define cmdidGoToSource 0x00002001 +#define cmdidShowDisasmAddress 0x00002002 +#define cmdidShowDisasmSource 0x00002003 +#define cmdidShowDisasmCodeBytes 0x00002004 +#define cmdidShowDisasmSymbolNames 0x00002005 +#define cmdidShowDisasmLineNumbers 0x00002006 +#define cmdidShowDisasmToolbar 0x00002007 +#define cmdidDisasmExpression 0x00002008 +#define cmdidToggleDisassembly 0x00002009 + +// Memory Window commands +#define cmdidMemoryWindowFirst 0x00003000 +#define cmdidMemoryWindowLast 0x00003fff + +// The following are specific to each instance of the memory window. The high-end +// byte is critical for proper operation of these commands. The high-byte indicates +// the particular toolwindow that this cmdid applies to. You can change the +// lowest 3 bytes to be whatever you want. + +// The first constant in each group marks a cmdid representing the entire group. +// We use this constant inside our switch statements so as to not have to list +// out each separate instance of cmdid. +#define cmdidMemoryExpression 0x00003001 +#define cmdidMemoryExpression1 0x01003001 +#define cmdidMemoryExpression2 0x02003001 +#define cmdidMemoryExpression3 0x03003001 +#define cmdidMemoryExpression4 0x04003001 + +#define cmdidAutoReevaluate 0x00003002 +#define cmdidAutoReevaluate1 0x01003002 +#define cmdidAutoReevaluate2 0x02003002 +#define cmdidAutoReevaluate3 0x03003002 +#define cmdidAutoReevaluate4 0x04003002 + +#define cmdidMemoryColumns 0x00003003 +#define cmdidMemoryColumns1 0x01003003 +#define cmdidMemoryColumns2 0x02003003 +#define cmdidMemoryColumns3 0x03003003 +#define cmdidMemoryColumns4 0x04003003 + +#define cmdidColCountList 0x00003004 +#define cmdidColCountList1 0x01003004 +#define cmdidColCountList2 0x02003004 +#define cmdidColCountList3 0x03003004 +#define cmdidColCountList4 0x04003004 + +#define cmdidWatchRealFuncEvalFirst 0x0000e001 +#define cmdidWatchRealFuncEvalLast 0x0000e001 + +#define cmdidWatchRealFuncEval 0x0000e001 +#define cmdidWatchRealFuncEval1 0x0100e001 +#define cmdidWatchRealFuncEval2 0x0200e001 +#define cmdidWatchRealFuncEval3 0x0300e001 +#define cmdidWatchRealFuncEval4 0x0400e001 + +#define cmdidAutosRealFuncEvalFirst 0x0000e005 +#define cmdidAutosRealFuncEvalLast 0x0000e005 + +#define cmdidAutosRealFuncEval 0x0000e005 + +#define cmdidLocalsRealFuncEvalFirst 0x0000e006 +#define cmdidLocalsRealFuncEvalLast 0x0000e006 + +#define cmdidLocalsRealFuncEval 0x0000e006 + + +// The following apply to all instances of the memory windows. If any of these +// are added to the toolbar, they must be made per-instance! +#define cmdidShowNoData 0x00003011 +#define cmdidOneByteInt 0x00003012 +#define cmdidTwoByteInt 0x00003013 +#define cmdidFourByteInt 0x00003014 +#define cmdidEightByteInt 0x00003015 +#define cmdidFloat 0x00003020 +#define cmdidDouble 0x00003021 +#define cmdidFormatHex 0x00003030 +#define cmdidFormatSigned 0x00003031 +#define cmdidFormatUnsigned 0x00003032 +#define cmdidFormatBigEndian 0x00003033 +#define cmdidShowNoText 0x00003040 +#define cmdidShowAnsiText 0x00003041 +#define cmdidShowUnicodeText 0x00003042 +#define cmdidEditValue 0x00003050 +#define cmdidShowToolbar 0x00003062 + +// MemoryView-specific commands. These are used internally by the MemoryView implementation. +#define cmdidStopInPlaceEdit 0x00003100 + +// Registers Window commands +#define cmdidRegisterWindowFirst 0x00004000 +#define cmdidRegWinGroupFirst 0x00004001 +#define cmdidRegWinGroupLast 0x00004100 + +#define cmdidRegisterWindowLast 0x00004fff + +// QuickWatch commands +#define cmdidQuickWatchFirst 0x00005000 +#define cmdidQuickWatchLast 0x00005fff + + +// Debug Context toolbar commands +//#define cmdidDebugContextFirst 0x00006000 +//#define cmdidDebugContextLast 0x00006fff + + +// Modules Window commands +#define cmdidModulesWindowFirst 0x00007000 +#define cmdidModulesWindowLast 0x00007100 + +#define cmdidReloadSymbols 0x00007001 // deprecated +#define cmdidShowAllModules 0x00007002 +#define cmdidToggleUserCode 0x00007003 + +#define cmdidModulesWindowFilter 0x00007004 +#define cmdidModulesWindowFilterList 0x00007005 +#define cmdidModulesWindowClearSearchFilter 0x00007006 + +// step into specific +#define cmdidStepIntoSpecificFirst 0x00007200 +#define cmdidStepIntoSpecificMaxDisplay 0x00007231 +// This is currently unused, but the entire range was previously +// used for step into specific, so leaving it in to maintain that range. +#define cmdidStepIntoSpecificLast 0x00007FFF + +// Call Stack commands +#define cmdidCallStackWindowFirst 0x00008000 +#define cmdidCallStackWindowLast 0x00008fff + +#define cmdidSetCurrentFrame 0x00008001 +#define cmdidCallStackValues 0x00008002 +#define cmdidCallStackTypes 0x00008003 +#define cmdidCallStackNames 0x00008004 +#define cmdidCallStackModules 0x00008005 +#define cmdidCallStackLineOffset 0x00008006 +#define cmdidCallStackByteOffset 0x00008007 +#define cmdidCrossThreadCallStack 0x00008008 +#define cmdidShowExternalCode 0x00008009 +#define cmdidUnwindFromException 0x0000800a +#define cmdidCallstackShowFrameType 0x0000800b + +// Datatip commands +#define cmdidDatatipFirst 0x00009000 +#define cmdidDatatipLast 0x00009fff + +#define cmdidDatatipNoTransparency 0x00009010 +#define cmdidDatatipLowTransparency 0x00009011 +#define cmdidDatatipMedTransparency 0x00009012 +#define cmdidDatatipHighTransparency 0x00009013 + +// Attached Processes Window commands +#define cmdidAttachedProcsWindowFirst 0x0000a000 +#define cmdidAttachedProcsWindowLast 0x0000a100 + +#define cmdidAttachedProcsStartProcess 0x0000a001 +#define cmdidAttachedProcsPauseProcess 0x0000a002 +#define cmdidAttachedProcsStepIntoProcess 0x0000a003 +#define cmdidAttachedProcsStepOverProcess 0x0000a004 +#define cmdidAttachedProcsStepOutProcess 0x0000a005 +#define cmdidAttachedProcsDetachProcess 0x0000a006 +#define cmdidAttachedProcsTerminateProcess 0x0000a007 +#define cmdidAttachedProcsDetachOnStop 0x0000a008 +#define cmdidAttachedProcsColumnName 0x0000a010 +#define cmdidAttachedProcsColumnID 0x0000a011 +#define cmdidAttachedProcsColumnPath 0x0000a012 +#define cmdidAttachedProcsColumnTitle 0x0000a013 +#define cmdidAttachedProcsColumnMachine 0x0000a014 +#define cmdidAttachedProcsColumnState 0x0000a015 +#define cmdidAttachedProcsColumnTransport 0x0000a016 +#define cmdidAttachedProcsColumnTransportQualifier 0x0000a017 + +#define cmdidThreadIpMarkerSwitchContext 0x0000a018 +#define cmdidThreadIpMarkerFlagUnflag 0x0000a019 +#define cmdidThreadIpMarkersSwitchContext 0x0000b000 +#define cmdidThreadIpMarkersSwitchContextFirst 0x0000b001 +#define cmdidThreadIpMarkersSwitchContextLast 0x0000bfff +#define cmdidThreadIpMarkersFlag 0x0000c000 +#define cmdidThreadIpMarkersFlagFirst 0x0000c001 +#define cmdidThreadIpMarkersFlagLast 0x0000cfff +#define cmdidThreadIpMarkersUnflag 0x0000d000 +#define cmdidThreadIpMarkersUnflagFirst 0x0000d001 +#define cmdidThreadIpMarkersUnflagLast 0x0000dfff +#define cmdidAppPrelaunch 0x00000219 +#define cmdidDebugForAccessibility 0x00000220 + + +// Command Window commands +// while all commands are available in the command window, +// these are not on any menus by default +// +#define cmdidCommandWindowFirst 0x0000f000 +#define cmdidCommandWindowLast 0x0000ffff + +#define cmdidListMemory 0x0000f001 +#define cmdidListCallStack 0x0000f002 +#define cmdidListDisassembly 0x0000f003 +#define cmdidListRegisters 0x0000f004 +// unused 0x0000f005 +#define cmdidListThreads 0x0000f006 +#define cmdidSetRadix 0x0000f007 +// unused 0x0000f008 +#define cmdidSetCurrentThread 0x0000f009 +#define cmdidSetCurrentStackFrame 0x0000f00a +#define cmdidListSource 0x0000f00b +#define cmdidSymbolPath 0x0000f00c +#define cmdidListModules 0x0000f00d +#define cmdidListProcesses 0x0000f00e +#define cmdidSetCurrentProcess 0x0000f00f + +#define guidSuspendAppPackageAppIcon { 0xb203ce85, 0x9889, 0x4b2e, { 0x81, 0xea, 0x18, 0xec, 0x9a, 0xd0, 0x85, 0xa2 } } +#define guidResumeAppPackageAppIcon { 0xfa813ed0, 0xbb98, 0x4a0e, { 0x9c, 0x27, 0x31, 0xc1, 0xab, 0xd7, 0xa7, 0x97 } } +#define guidShutDownAppPackageAppIcon { 0x6edd202e, 0x1c6, 0x4a4a, { 0xab, 0x1a, 0x48, 0x56, 0xff, 0xc4, 0x9a, 0x3e } } + +#define cmdidReattach 0x0000f010 + +#endif // _VSDBGCMD_H_INCLUDED diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/VsDbgCmdPlace.vsct b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/VsDbgCmdPlace.vsct new file mode 100644 index 00000000..6c0b768b --- /dev/null +++ b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/VsDbgCmdPlace.vsct @@ -0,0 +1,2277 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Debug + &Debug + + + + + + + + Windows + &Windows + + + + + + &Windows + + + + + NotInTBList + NoCustomize + + Debugger Context Menus + + + + + + Step Into Specific + Step Into Speci&fic + + + + + + Step Into Specific + Step Into Speci&fic + + + + + + New + New + + + + + + Show Columns + Show Columns + + + + + + Sort By: + S&ort by + + + + + + &Memory + + + + + + + + &Watch + + + + + + + &Breakpoint + + + + + + New &Breakpoint + New &Breakpoint + + + + + + &Breakpoint + + + + + + &Breakpoint + + + + + + Switch To + + + + + + Flag + + + + + + Unflag + + + + + + Ot&her Debug Targets + + + + + + + + DefaultDocked + + Debug + Debug + + + + + + + DefaultDocked + + Debug Location + Debug Location + + + + + + + Breakpoints Window + Breakpoints Window + + + + + + Modules Window + Modules Window + + + + + + Watch 1 Toolbar + Watch 1 Toolbar + + + + + + Watch 2 Toolbar + Watch 2 Toolbar + + + + + + Watch 3 Toolbar + Watch 3 Toolbar + + + + + + Watch 4 Toolbar + Watch 4 Toolbar + + + + + + Locals Toolbar + Locals Toolbar + + + + + + Autos Toolbar + Autos Toolbar + + + + + + + Disassembly Window + Disassembly Window + + + + + + Memory 1 + Memory &1 + + + + + + Memory 2 + Memory &2 + + + + + + Memory 3 + Memory &3 + + + + + + Memory 4 + Memory &4 + + + + + + Processes Window + Processes Window + + + + + + + + + + Autos Window + + + + + + Breakpoint + + + + + + Load Symbols From + + + + + + Symbol Include List + + + + + + Symbol Exclude List + + + + + + Breakpoints Window + + + + + + Call Stack Window + + + + + + Thread Tip Window + + + + + + Data Tip Window + + + + + + Disassembly Window + + + + + + Locals Window + + + + + + Memory Window + + + + + + Modules Window + + + + + + Output Window + + + + + + Processes Window + + + + + + Registers Window + + + + + + Threads Window + + + + + + Watch Window + + + + + + Script Project + + + + + + Thread IP Marker + + + + + + Thread IP Markers + + + + + + + + + Hidden Commands + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/VsDbgCmdUsed.vsct b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/VsDbgCmdUsed.vsct new file mode 100644 index 00000000..0192ec1c --- /dev/null +++ b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/VsDbgCmdUsed.vsct @@ -0,0 +1,546 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/editids.h b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/editids.h new file mode 100644 index 00000000..59d61084 --- /dev/null +++ b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/editids.h @@ -0,0 +1,13 @@ +// +// editids.h +// NOTE this file is superseded and defines moved to vsshlids.h +// +#ifndef _EDITIDS_H_ +#define _EDITIDS_H_ + + +#include "virtkeys.h" +#include "stdidcmd.h" +#include "vsshlids.h" +#include "sharedids.h" +#endif //_EDITIDS_H_ \ No newline at end of file diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/sccmnid.h b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/sccmnid.h new file mode 100644 index 00000000..841d0665 --- /dev/null +++ b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/sccmnid.h @@ -0,0 +1,157 @@ +/*------------------------------------------------------------------------------- +Microsoft Visual Studio Enterprise Edition + +Namespace: None +Subsystem: Visual Studio Source Code Control +Copyright: (c) 1997-2000, Microsoft Corporation + All Rights Reserved + +@doc internal + +@module sccmnid.h - SCC Package Menu IDs | + +-------------------------------------------------------------------------------*/ + +// Can't use pragma once here, as this passes through ctc +#ifndef SccMnID_H_Included +#define SccMnID_H_Included + +// Note that we have code that depends on the adjacency of the context and non-context +// versions of the commands, and also upon the odd/even dichotomy + +#define icmdFlagContext 1 + +#define icmdSccAdd 21000 +#define icmdSccContextAdd 21001 // (icmdSccAdd+icmdFlagContext) +#define icmdSccCheckout 21002 +#define icmdSccContextCheckout 21003 // (icmdSccCheckout+icmdFlagContext) +#define icmdSccCheckoutShared 21004 +#define icmdSccContextCheckoutShared 21005 // (icmdSccCheckoutShared+icmdFlagContext) +#define icmdSccCheckoutExclusive 21006 +#define icmdSccContextCheckoutExclusive 21007 // (icmdSccCheckoutExclusive+icmdFlagContext) +#define icmdSccUndoCheckout 21008 +#define icmdSccContextUndoCheckout 21009 // (icmdSccUndoCheckout+icmdFlagContext) +#define icmdSccGetLatestVersion 21010 +#define icmdSccContextGetLatestVersion 21011 // (icmdSccGetLatestVersion+icmdFlagContext) +#define icmdSccShowNonEmptyCheckinWindow 21012 +#define icmdSccContextShowNonEmptyCheckinWindow 21013 // (icmdSccShowNonEmptyCheckinWindow+icmdFlagContext) +#define icmdSccCheckin 21014 +#define icmdSccContextCheckin 21015 // (icmdSccCheckin+icmdFlagContext) + +// The order for the "Add" commands are important because they are used as a range +#define icmdSccAddSolution 21016 +#define icmdSccContextAddSolution 21017 // (icmdSccAddSolution + icmdFlagContext) +#define icmdSccAddSelection 21018 +#define icmdSccContextAddSelection 21019 // (icmdSccAddSelection + icmdFlagContext) + +#define icmdSccShelve 21020 +#define icmdSccContextShelve 21021 // (icmdSccShelve + icmdFlagContext) + +#define icmdSccGetVersion 21500 +#define icmdSccContextGetVersion 21501 // (icmdSccGetVersion + icmdFlagContext) +#define icmdSccShowCheckinWindow 21502 +#define icmdSccProperties 21504 +#define icmdSccDiff 21506 +#define icmdSccHistory 21508 +#define icmdSccShare 21510 +#define icmdSccRemove 21512 +#define icmdSccAdmin 21514 +#define icmdSccRefreshStatus 21516 +#define icmdSccRename 21518 +#define icmdSccSetLocation 21520 + +#define icmdSccOpenFromSourceControl 21522 +#define icmdSccAddSelectionWithSolution 21524 // "Virtual provider" - the same provider as the current solution has +#define icmdSccShowConnectionManager 21526 + +#define icmdSccAddFromSourceControlSingleProvider 21536 // AddFromSC with a single versioning provider + +#define igrpSccMainAdd 22000 // IDG_SCC_ADD 28 +#define igrpSccMainCommands 22001 +#define igrpSccMainAction 22002 // IDG_SCC_MAIN 26 +#define igrpSccMainSecondary 22003 // IDG_SCC_MAIN2 30 +#define igrpSccMainAdmin 22004 // IDG_SCC_MAIN3 31 +#define igrpSccCommands 22005 // IDG_SCC_SUBMENU 29 +#define igrpSccEditorContext 22006 // IDG_SCC_CTXT_EDIT 32 +#define igrpSccOpenFromSourceControl 22007 +#define igrpSccOpenFromSourceControlProviders 22008 +#define igrpSccAddSolutionToSourceControlProviders 22009 +#define igrpSccAddSelectionToSourceControlProviders 22010 + +#define igrpSccSccAddSelectionWithSolution 22011 +#define igrpSccOpenFromSourceControlMSSCCIProvider 22012 +#define igrpSccAddSolutionToSourceControlMSSCCIProvider 22013 +#define igrpSccAddSelectionToSourceControlMSSCCIProvider 22014 +#define igrpSccAddFromSourceControl 22015 +#define igrpSccAddFromSourceControlMSSCCIProvider 22016 +#define igrpSccAddFromSourceControlProviders 22017 + +#define imnuSccMenu 23000 // IDM_VS_MENU_SCC 18 +#define imnuSccOpenFromSourceControl 23001 +#define imnuSccAddSolutionToSourceControl 23002 +#define imnuSccAddSelectionToSourceControl 23003 +#define imnuSccAddFromSourceControl 23004 + +#define itbrSccToolbar 24000 // IDM_VS_TOOL_SCC 17 + +#ifdef DEFINE_GUID // presumably compiling code, not ctc. + +DEFINE_GUID(guidSccPkg, +0xAA8EB8CD, 0x7A51, 0x11D0, 0x92, 0xC3, 0x00, 0xA0, 0xC9, 0x13, 0x8C, 0x45); + +// {53544C4D-C4AD-4998-9808-00935EA47729} +DEFINE_GUID(guidSccOpenFromSourceControl, +0x53544C4D, 0xc4ad, 0x4998, 0x98, 0x8, 0x0, 0x93, 0x5e, 0xa4, 0x77, 0x29); + +// {53544C4D-0E51-4941-83F6-29423FED03EF} +DEFINE_GUID(guidSccAddSolutionToSourceControl, +0x53544C4D, 0xe51, 0x4941, 0x83, 0xf6, 0x29, 0x42, 0x3f, 0xed, 0x3, 0xef); + +// {53544C4D-5DAE-4c96-A292-5057FD62BCC2} +DEFINE_GUID(guidSccAddSelectionToSourceControl, +0x53544C4D, 0x5dae, 0x4c96, 0xa2, 0x92, 0x50, 0x57, 0xfd, 0x62, 0xbc, 0xc2); + +// {53544C4D-7D04-46b0-87D4-35A81DC2FEFC} +DEFINE_GUID(guidSccAddFromSourceControl, +0x53544C4D, 0x7d04, 0x46b0, 0x87, 0xd4, 0x35, 0xa8, 0x1d, 0xc2, 0xfe, 0xfc); + +// {53544C4D-3BF2-4b83-A468-295691EB8609} +DEFINE_GUID(guidSccViewTeamExplorer, +0x53544C4D, 0x3bf2, 0x4b83, 0xa4, 0x68, 0x29, 0x56, 0x91, 0xeb, 0x86, 0x9); + +// {53544C4D-3BF3-4b83-A468-295691EB8609} +DEFINE_GUID(guidSccViewVisualComponentManager, +0x53544C4D, 0x3bf3, 0x4b83, 0xa4, 0x68, 0x29, 0x56, 0x91, 0xeb, 0x86, 0x9); + +#else // ctc + +#define guidSccPkg { \ +0xAA8EB8CD, 0x7A51, 0x11D0, { 0x92, 0xC3, 0x00, 0xA0, 0xC9, 0x13, 0x8C, 0x45 }} + +// {53544C4D-C4AD-4998-9808-00935EA47729} +#define guidSccOpenFromSourceControl { \ +0x53544C4D, 0xC4Ad, 0x4998, { 0x98, 0x08, 0x00, 0x93, 0x5E, 0xA4, 0x77, 0x29 }} + +// {53544C4D-0E51-4941-83F6-29423FED03EF} +#define guidSccAddSolutionToSourceControl { \ +0x53544C4D, 0x0E51, 0x4941, { 0x83, 0xF6, 0x29, 0x42, 0x3F, 0xED, 0x03, 0xEF }} + +// {53544C4D-5DAE-4c96-A292-5057FD62BCC2} +#define guidSccAddSelectionToSourceControl { \ +0x53544C4D, 0x5DAE, 0x4C96, { 0xA2, 0x92, 0x50, 0x57, 0xFD, 0x62, 0xBC, 0xC2 }} + +// {53544C4D-7D04-46b0-87D4-35A81DC2FEFC} +#define guidSccAddFromSourceControl { \ +0x53544C4D, 0x7d04, 0x46b0, { 0x87, 0xd4, 0x35, 0xa8, 0x1d, 0xc2, 0xfe, 0xfc }} + +// {53544C4D-3BF2-4b83-A468-295691EB8609} +#define guidSccViewTeamExplorer { \ +0x53544C4D, 0x3bf2, 0x4b83, { 0xa4, 0x68, 0x29, 0x56, 0x91, 0xeb, 0x86, 0x9 }} + +// {53544C4D-3BF3-4b83-A468-295691EB8609} +#define guidSccViewVisualComponentManager { \ +0x53544C4D, 0x3bf3, 0x4b83, { 0xa4, 0x68, 0x29, 0x56, 0x91, 0xeb, 0x86, 0x9 }} + +#endif // DEFINE_GUID + +#endif // #pragma once diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/sharedids.h b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/sharedids.h new file mode 100644 index 00000000..bb1cdbb3 --- /dev/null +++ b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/sharedids.h @@ -0,0 +1,459 @@ +#ifndef _SHAREDIDS_H_ +#define _SHAREDIDS_H_ + +////////////////////////////////////////////////////////////////////////////// +// +// GUID Identifiers, created by WebBrowse package +// +////////////////////////////////////////////////////////////////////////////// +#ifndef NOGUIDS + +#ifdef DEFINE_GUID + // {83285929-227C-11d3-B870-00C04F79F802} + DEFINE_GUID(Group_Undefined, + 0x83285929, 0x227c, 0x11d3, 0xb8, 0x70, 0x0, 0xc0, 0x4f, 0x79, 0xf8, 0x2); + + // {8328592A-227C-11d3-B870-00C04F79F802} + DEFINE_GUID(Pkg_Undefined, + 0x8328592a, 0x227c, 0x11d3, 0xb8, 0x70, 0x0, 0xc0, 0x4f, 0x79, 0xf8, 0x2); + + // {8328592B-227C-11d3-B870-00C04F79F802} + DEFINE_GUID(guidSharedCmd, + 0x8328592b, 0x227c, 0x11d3, 0xb8, 0x70, 0x0, 0xc0, 0x4f, 0x79, 0xf8, 0x2); + + // {8328592C-227C-11d3-B870-00C04F79F802} + DEFINE_GUID(guidSharedBmps, + 0x8328592c, 0x227c, 0x11d3, 0xb8, 0x70, 0x0, 0xc0, 0x4f, 0x79, 0xf8, 0x2); + + // {52FD9855-984F-48af-99F2-B718F913FF02} + DEFINE_GUID(guidSharedBmps2, + 0x52fd9855, 0x984f, 0x48af, 0x99, 0xf2, 0xb7, 0x18, 0xf9, 0x13, 0xff, 0x2); + + // {DF81EA62-BAAB-4d89-B550-073BA96AD0A2} + DEFINE_GUID(guidSharedBmps3, + 0xdf81ea62, 0xbaab, 0x4d89, 0xb5, 0x50, 0x7, 0x3b, 0xa9, 0x6a, 0xd0, 0xa2); + + // {B155A99C-CBFC-4de4-B99A-ED6B1FB03217} + DEFINE_GUID(guidSharedBmps4, + 0xb155a99c, 0xcbfc, 0x4de4, 0xb9, 0x9a, 0xed, 0x6b, 0x1f, 0xb0, 0x32, 0x17); + + // {2BBED035-8A0C-4c19-8CD2-298937BEB38C} + DEFINE_GUID(guidSharedBmps5, + 0x2bbed035, 0x8a0c, 0x4c19, 0x8c, 0xd2, 0x29, 0x89, 0x37, 0xbe, 0xb3, 0x8c); + + // {EB28B762-7E54-492b-9336-4853994FE349} + DEFINE_GUID(guidSharedBmps6, + 0xeb28b762, 0x7e54, 0x492b, 0x93, 0x36, 0x48, 0x53, 0x99, 0x4f, 0xe3, 0x49); + + // {634F8946-FFF0-491f-AF41-B599FC20D561} + DEFINE_GUID(guidSharedBmps7, + 0x634f8946, 0xfff0, 0x491f, 0xaf, 0x41, 0xb5, 0x99, 0xfc, 0x20, 0xd5, 0x61); + + // {2B671D3D-AB51-434a-8D38-CBF1728530BB} + DEFINE_GUID(guidSharedBmps8, + 0x2b671d3d, 0xab51, 0x434a, 0x8d, 0x38, 0xcb, 0xf1, 0x72, 0x85, 0x30, 0xbb); + + // {222989A7-37A5-429f-AE43-8E9E960E7025} + DEFINE_GUID(guidSharedBmps9, + 0x222989a7, 0x37a5, 0x429f, 0xae, 0x43, 0x8e, 0x9e, 0x96, 0xe, 0x70, 0x25); + + // {3EA44CF4-2BBE-4d17-AA21-63B6A24BE9F6} + DEFINE_GUID(guidSharedBmps10, + 0x3ea44cf4, 0x2bbe, 0x4d17, 0xaa, 0x21, 0x63, 0xb6, 0xa2, 0x4b, 0xe9, 0xf6); + + // {7C9FA578-7C66-4495-98E6-1F5457E6C7AA} + DEFINE_GUID(guidSharedBmps11, + 0x7c9fa578, 0x7c66, 0x4495, 0x98, 0xe6, 0x1f, 0x54, 0x57, 0xe6, 0xc7, 0xaa); + + // guid for C# groups and menus (used because the IDM_VS_CTX_REFACTORING menu is defined under this GUID and is publically + // exposed). + // {5D7E7F65-A63F-46ee-84F1-990B2CAB23F9} + DEFINE_GUID (guidCSharpGrpId, 0x5d7e7f65, 0xa63f, 0x46ee, 0x84, 0xf1, 0x99, 0xb, 0x2c, 0xab, 0x23, 0xf9); +#else + +// {83285929-227C-11d3-B870-00C04F79F802} +#define Group_Undefined { 0x83285929, 0x227c, 0x11d3, { 0xb8, 0x70, 0x00, 0xc0, 0x4f, 0x79, 0xf8, 0x02 } } + +// {8328592A-227C-11d3-B870-00C04F79F802} +#define Pkg_Undefined { 0x8328592a, 0x227c, 0x11d3, { 0xb8, 0x70, 0x0, 0xc0, 0x4f, 0x79, 0xf8, 0x2 } } + +// {8328592B-227C-11d3-B870-00C04F79F802} +#define guidSharedCmd { 0x8328592b, 0x227c, 0x11d3, { 0xb8, 0x70, 0x0, 0xc0, 0x4f, 0x79, 0xf8, 0x2 } } + +// {8328592C-227C-11d3-B870-00C04F79F802} +#define guidSharedBmps { 0x8328592c, 0x227c, 0x11d3, { 0xb8, 0x70, 0x0, 0xc0, 0x4f, 0x79, 0xf8, 0x2 } } + +// {52FD9855-984F-48af-99F2-B718F913FF02} +#define guidSharedBmps2 { 0x52fd9855, 0x984f, 0x48af, { 0x99, 0xf2, 0xb7, 0x18, 0xf9, 0x13, 0xff, 0x2 } } + +// {DF81EA62-BAAB-4d89-B550-073BA96AD0A2} +#define guidSharedBmps3 { 0xdf81ea62, 0xbaab, 0x4d89, { 0xb5, 0x50, 0x7, 0x3b, 0xa9, 0x6a, 0xd0, 0xa2 } } + +// {B155A99C-CBFC-4de4-B99A-ED6B1FB03217} +#define guidSharedBmps4 { 0xb155a99c, 0xcbfc, 0x4de4, { 0xb9, 0x9a, 0xed, 0x6b, 0x1f, 0xb0, 0x32, 0x17 } } + +// {2BBED035-8A0C-4c19-8CD2-298937BEB38C} +#define guidSharedBmps5 { 0x2bbed035, 0x8a0c, 0x4c19, { 0x8c, 0xd2, 0x29, 0x89, 0x37, 0xbe, 0xb3, 0x8c } } + +// {EB28B762-7E54-492b-9336-4853994FE349} +#define guidSharedBmps6 { 0xeb28b762, 0x7e54, 0x492b, { 0x93, 0x36, 0x48, 0x53, 0x99, 0x4f, 0xe3, 0x49 } } + +// {634F8946-FFF0-491f-AF41-B599FC20D561} +#define guidSharedBmps7 { 0x634f8946, 0xfff0, 0x491f, { 0xaf, 0x41, 0xb5, 0x99, 0xfc, 0x20, 0xd5, 0x61 } } + +// {2B671D3D-AB51-434a-8D38-CBF1728530BB} +#define guidSharedBmps8 { 0x2b671d3d, 0xab51, 0x434a, { 0x8d, 0x38, 0xcb, 0xf1, 0x72, 0x85, 0x30, 0xbb } } + +// {222989A7-37A5-429f-AE43-8E9E960E7025} +#define guidSharedBmps9 { 0x222989a7, 0x37a5, 0x429f, { 0xae, 0x43, 0x8e, 0x9e, 0x96, 0xe, 0x70, 0x25 } } + +// {3EA44CF4-2BBE-4d17-AA21-63B6A24BE9F6} +#define guidSharedBmps10 { 0x3ea44cf4, 0x2bbe, 0x4d17, { 0xaa, 0x21, 0x63, 0xb6, 0xa2, 0x4b, 0xe9, 0xf6 } } + +// {7C9FA578-7C66-4495-98E6-1F5457E6C7AA} +#define guidSharedBmps11 { 0x7c9fa578, 0x7c66, 0x4495, { 0x98, 0xe6, 0x1f, 0x54, 0x57, 0xe6, 0xc7, 0xaa } } + +// {5D7E7F65-A63F-46ee-84F1-990B2CAB23F9} +#define guidCSharpGrpId { 0x5D7E7F65, 0xA63F, 0x46ee, { 0x84, 0xF1, 0x99, 0x0B, 0x2C, 0xAB, 0x23, 0xF9 } } + +#endif //DEFINE_GUID + +#endif //NOGUIDS + + +/////////////////////////////////////////////////////////////////////////////// +// Command IDs + + +//////////////////////////////////////////////////////////////// +// BITMAPS +//////////////////////////////////////////////////////////////// +// guidSharedBmps +//////////////////////////////////////////////////////////////// +#define bmpidVisibleBorders 1 +#define bmpidShowDetails 2 +#define bmpidMake2d 3 +#define bmpidLockElement 4 +#define bmpid2dDropMode 5 +#define bmpidSnapToGrid 6 +#define bmpidForeColor 7 +#define bmpidBackColor 8 +#define bmpidScriptOutline 9 +#define bmpidDisplay1D 10 +#define bmpidDisplay2D 11 +#define bmpidInsertLink 12 +#define bmpidInsertBookmark 13 +#define bmpidInsertImage 14 +#define bmpidInsertForm 15 +#define bmpidInsertDiv 16 +#define bmpidInsertSpan 17 +#define bmpidInsertMarquee 18 +#define bmpidOutlineHTML 19 +#define bmpidOutlineScript 20 +#define bmpidShowGrid 21 +#define bmpidCopyWeb 22 +#define bmpidHyperLink 23 +#define bmpidSynchronize 24 +#define bmpidIsolatedMode 25 +#define bmpidDirectMode 26 +#define bmpidDiscardChanges 27 +#define bmpidGetWorkingCopy 28 +#define bmpidReleaseWorkingCopy 29 +#define bmpidGet 30 +#define bmpidShowAllFiles 31 +#define bmpidStopNow 32 +#define bmpidBrokenLinkReport 33 +#define bmpidAddDataCommand 34 +#define bmpidRemoveWebFromScc 35 +// +#define bmpidAddPageFromFile 36 +#define bmpidOpenTopic 37 +#define bmpidAddBlankPage 38 +#define bmpidEditTitleString 39 +#define bmpidChangeNodeURL 40 +// +#define bmpidDeleteTable 41 +#define bmpidSelectTable 42 +#define bmpidSelectColumn 43 +#define bmpidSelectRow 44 +#define bmpidSelectCell 45 + +#define bmpidAddNewWebForm 46 +#define bmpidAddNewHTMLPage 47 +#define bmpidAddNewWebService 48 +#define bmpidAddNewComponent 49 +#define bmpidaddNewModule 50 +#define bmpidAddNewForm 51 +#define bmpidAddNewInheritedForm 52 +#define bmpidAddNewUserControl 53 +#define bmpidAddNewInheritedUserControl 54 +#define bmpidAddNewXSDSchema 55 +#define bmpidAddNewXMLPage 56 +#define bmpidNewLeftFrame 57 +#define bmpidNewRightFrame 58 +#define bmpidNewTopFrame 59 +#define bmpidNewBottomFrame 60 +#define bmpidNewWebUserControl 61 +// +#define bmpidCompile 62 +#define bmpidStartWebAdminTool 63 +#define bmpidNestRelatedFiles 64 +#define bmpidGenPageResource 65 + +//////////////////////////////////////////////////////////////// +// guidSharedBmps2 +//////////////////////////////////////////////////////////////// +#define bmpid2Filter 1 +#define bmpid2EventLog 2 +#define bmpid2View 3 +#define bmpid2TimelineViewer 4 +#define bmpid2BlockDiagramViewer 5 +#define bmpid2MultipleEventViewer 6 +#define bmpid2SingleEventViewer 7 +#define bmpid2SummaryViewer 8 +#define bmpid2ChartViewer 9 +#define bmpid2AddMachine 10 +#define bmpid2AddFilter 11 +#define bmpid2EditFilter 12 +#define bmpid2ApplyFilter 13 +#define bmpid2StartCollecting 14 +#define bmpid2StopCollecting 15 +#define bmpid2IncreaseSpeed 16 +#define bmpid2DecreaseSpeed 17 +#define bmpid2Unknown1 18 +#define bmpid2FirstRecord 19 +#define bmpid2PrevRecord 20 +#define bmpid2NextRecord 21 +#define bmpid2LastRecord 22 +#define bmpid2Play 23 +#define bmpid2Stop 24 +#define bmpid2Duplicate 25 +#define bmpid2Export 26 +#define bmpid2Import 27 +#define bmpid2PlayFrom 28 +#define bmpid2PlayTo 29 +#define bmpid2Goto 30 +#define bmpid2ZoomToFit 31 +#define bmpid2AutoFilter 32 +#define bmpid2AutoSelect 33 +#define bmpid2AutoPlayTrack 34 +#define bmpid2ExpandSelection 35 +#define bmpid2ContractSelection 36 +#define bmpid2PauseRecording 37 +#define bmpid2AddLog 38 +#define bmpid2Connect 39 +#define bmpid2Disconnect 40 +#define bmpid2MachineDiagram 41 +#define bmpid2ProcessDiagram 42 +#define bmpid2ComponentDiagram 43 +#define bmpid2StructureDiagram 44 +//////////////////////////////////////////////////////////////// +// guidSharedBmps3 +//////////////////////////////////////////////////////////////// +#define bmpid3FileSystemEditor 1 +#define bmpid3RegistryEditor 2 +#define bmpid3FileTypesEditor 3 +#define bmpid3UserInterfaceEditor 4 +#define bmpid3CustomActionsEditor 5 +#define bmpid3LaunchConditionsEditor 6 +//////////////////////////////////////////////////////////////// +// guidSharedBmps4 +//////////////////////////////////////////////////////////////// +#define bmpid4FldView 1 +#define bmpid4SelExpert 2 +#define bmpid4TopNExpert 3 +#define bmpid4SortOrder 4 +#define bmpid4PropPage 5 +#define bmpid4Help 6 +#define bmpid4SaveRpt 7 +#define bmpid4InsSummary 8 +#define bmpid4InsGroup 9 +#define bmpid4InsSubreport 10 +#define bmpid4InsChart 11 +#define bmpid4InsPicture 12 +#define bmpid4SortCategory 13 +//////////////////////////////////////////////////////////////// +// guidSharedBmps5 +//////////////////////////////////////////////////////////////// +#define bmpid5AddDataConn 1 +//////////////////////////////////////////////////////////////// +// guidSharedBmps6 +//////////////////////////////////////////////////////////////// +#define bmpid6ViewFieldList 1 +#define bmpid6ViewGrid 2 +#define bmpid6ViewKeys 3 +#define bmpid6ViewCollapsed 4 +#define bmpid6Remove 5 +#define bmpid6Refresh 6 +#define bmpid6ViewUserDefined 7 +#define bmpid6ViewPageBreaks 8 +#define bmpid6RecalcPageBreaks 9 +#define bmpid6ZoomToFit 10 +#define bmpid6DeleteFromDB 11 +//////////////////////////////////////////////////////////////// +// guidSharedBmps7 +//////////////////////////////////////////////////////////////// +#define bmpid7SelectQuery 1 +#define bmpid7InsertQuery 2 +#define bmpid7UpdateQuery 3 +#define bmpid7DeleteQuery 4 +#define bmpid7SortAsc 5 +#define bmpid7SortDesc 6 +#define bmpid7RemoveFilter 7 +#define bmpid7VerifySQL 8 +#define bmpid7RunQuery 9 +#define bmpid7DiagramPane 10 +#define bmpid7GridPane 11 +#define bmpid7ResultsPane 12 +#define bmpid7SQLPane 13 +#define bmpid7Totals 14 +#define bmpid7MakeTableQuery 15 +#define bmpid7InsertValuesQuery 16 +#define bmpid7RowFirst 17 +#define bmpid7RowLast 18 +#define bmpid7RowNext 19 +#define bmpid7RowPrevious 20 +#define bmpid7RowNew 21 +#define bmpid7RowDelete 22 +#define bmpid7GenerateSQL 23 +#define bmpid7JoinLeftAll 24 +#define bmpid7JoinRightAll 25 +#define bmpid7RowGoto 26 +#define bmpid7ClearQuery 27 +#define bmpid7QryManageIndexes 28 +//////////////////////////////////////////////////////////////// +// guidSharedBmps8 +//////////////////////////////////////////////////////////////// +#define bmpid8NewTable 1 +#define bmpid8SaveChangeScript 2 +#define bmpid8PrimaryKey 3 +#define bmpid8LayoutDiagram 4 +#define bmpid8LayoutSelection 5 +#define bmpid8AddRelatedTables 6 +#define bmpid8NewTextAnnotation 7 +#define bmpid8InsertCol 8 +#define bmpid8DeleteCol 9 +#define bmpid8ShowRelLabels 10 +#define bmpid8AutosizeSelTables 11 +#define bmpid8SaveSelection 12 +#define bmpid8EditUDV 13 +#define bmpid8AddTableView 14 +#define bmpid8ManangeIndexes 15 +#define bmpid8ManangeConstraints 16 +#define bmpid8ManangeRelationships 17 +#define bmpid8AddDerivedTable 18 +#define bmpid8Navigate 19 +//////////////////////////////////////////////////////////////// +// guidSharedBmps9 +//////////////////////////////////////////////////////////////// +#define bmpid9NewElement 1 +#define bmpid9NewSimpleType 2 +#define bmpid9NewComplexType 3 +#define bmpid9NewAttribute 4 +#define bmpid9NewGroup 5 +#define bmpid9NewAttributeGroup 6 +#define bmpid9Diamond 7 +#define bmpid9NewAnyAttribute 8 +#define bmpid9NewKey 9 +#define bmpid9NewRelation 10 +#define bmpid9EditKey 11 +#define bmpid9EditRelation 12 +#define bmpid9MakeTypeGlobal 13 +#define bmpid9CreateSchema 14 +#define bmpid9PreviewDataSet 15 +#define bmpid9NewFacet 16 +#define bmpid9ValidateHtmlData 17 +#define bmpid9DataPreview 18 +#define bmpid9DataGenerateDataSet 19 +#define bmpid9DataGenerateMethods 20 +//////////////////////////////////////////////////////////////// +// guidSharedBmps10 +//////////////////////////////////////////////////////////////// +#define bmpid10NewDialog 1 +#define bmpid10NewMenu 2 +#define bmpid10NewCursor 3 +#define bmpid10NewIcon 4 +#define bmpid10NewBitmap 5 +#define bmpid10NewToolbar 6 +#define bmpid10NewAccel 7 +#define bmpid10NewString 8 +#define bmpid10NewVersion 9 +#define bmpid10ResourceInc 10 +// +#define bmpid10DlgTest 12 +// +#define bmpid10CenterVert 17 +#define bmpid10CenterHorz 18 +#define bmpid10SpaceAcross 19 +#define bmpid10SpaceDown 20 +// +#define bmpid10ToggleGrid 24 +#define bmpid10ToggleGuides 25 +// +#define bmpid10CheckMnemonics 27 +#define bmpid10AutoLayoutGrow 28 +#define bmpid10AutoLayoutOptimize 29 +#define bmpid10AutoLayoutNoResize 30 +//////////////////////////////////////////////////////////////// +// guidSharedBmps11 +//////////////////////////////////////////////////////////////// +#define bmpid11Pick 1 +#define bmpid11PickRegion 2 +#define bmpid11PickColor 3 +#define bmpid11Eraser 4 +#define bmpid11Fill 5 +#define bmpid11Zoom 6 +#define bmpid11Pencil 7 +#define bmpid11Brush 8 +#define bmpid11AirBrush 9 +#define bmpid11Line 10 +#define bmpid11Curve 11 +#define bmpid11Text 12 +#define bmpid11Rect 13 +#define bmpid11OutlineRect 14 +#define bmpid11FilledRect 15 +#define bmpid11RoundedRect 16 +#define bmpid11OutlineRoundedRect 17 +#define bmpid11FilledRoundedRect 18 +#define bmpid11Ellipse 19 +#define bmpid11OutlineEllipse 20 +#define bmpid11FilledEllipse 21 +#define bmpid11HotSpot 22 +#define bmpid11EraserSize1 23 +#define bmpid11EraserSize2 24 +#define bmpid11EraserSize3 25 +#define bmpid11EraserSize4 26 +#define bmpid11LineWidth1 27 +#define bmpid11LineWidth2 28 +#define bmpid11LineWidth3 29 +#define bmpid11LineWidth4 30 +#define bmpid11LineWidth5 31 +#define bmpid11LargeCircle 32 +#define bmpid11MediumCircle 33 +#define bmpid11SmallCircle 34 +#define bmpid11SmallSquare 35 +#define bmpid11LeftDiagLarge 36 +#define bmpid11LeftDiagMedium 37 +#define bmpid11LeftDiagSmall 38 +#define bmpid11RightDiagLarge 39 +#define bmpid11RightDiagMedium 40 +#define bmpid11RightDiagSmall 41 +#define bmpid11SplashSmall 42 +#define bmpid11SplashMedium 43 +#define bmpid11SplashLarge 44 +#define bmpid11Transparent 45 +#define bmpid11Opaque 46 +#define bmpid11Zoom1x 47 +#define bmpid11Zoom2x 48 +#define bmpid11Zoom6x 49 +#define bmpid11Zoom8x 50 +#define bmpid11ColorWindow 51 +#define bmpid11ResView 52 +// These two were removed from the bitmap strip +//#define bmpid11Flip 53 +//#define bmpid11Stretch 54 +// +#define bmpid11NewImageType 53 +#define bmpid11ImageOptions 54 + +#endif //_SHAREDIDS_H_ diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/stdidcmd.h b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/stdidcmd.h new file mode 100644 index 00000000..6f6746fc --- /dev/null +++ b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/stdidcmd.h @@ -0,0 +1,3467 @@ +//----------------------------------------------------------------------------- +// Microsoft Visual Studio +// +// Copyright 1995-2003 Microsoft Corporation. All Rights Reserved. +// +// File: stdidcmd.h +// Area: IOleCommandTarget and IOleComponentUIManager +// +// Contents: +// Contains ids used for commands used in StandardCommandSet97. +// StandardCommandSet97 is defined by the following guid: +// +// {5efc7975-14bc-11cf-9b2b-00aa00573819} +// DEFINE_GUID(CLSID_StandardCommandSet97, +// 0x5efc7975, 0x14bc, 0x11cf, 0x9b, 0x2b, 0x00, 0xaa, 0x00, +// 0x57, 0x38, 0x19); +// +// Contains ids used for commands used in StandardCommandSet2K. +// StandardCommandSet2K is defined by the following guid: +// +// {1496A755-94DE-11D0-8C3F-00C04FC2AAE2} +// DEFINE_GUID(CMDSETID_StandardCommandSet2K, +// 0x1496A755, 0x94DE, 0x11D0, 0x8C, 0x3F, 0x00, 0xC0, 0x4F, 0xC2, 0xAA, 0xE2); +// +// +// Contains ids used for commands used in StandardCommandSet10. +// StandardCommandSet10 is defined by the following guid: +// +// {5DD0BB59-7076-4c59-88D3-DE36931F63F0} +// DEFINE_GUID(CMDSETID_StandardCommandSet10, +// 0x5dd0bb59, 0x7076, 0x4c59, 0x88, 0xd3, 0xde, 0x36, 0x93, 0x1f, 0x63, 0xf0); +// +// +// Contains ids used for commands used in StandardCommandSet11. +// StandardCommandSet11 is defined by the following guid: +// +// {D63DB1F0-404E-4B21-9648-CA8D99245EC3} +// DEFINE_GUID(CMDSETID_StandardCommandSet11, +// 0xd63db1f0, 0x404e, 0x4b21, 0x96, 0x48, 0xca, 0x8d, 0x99, 0x24, 0x5e, 0xc3); +// +// Contains ids used for commands used in StandardCommandSet12. +// StandardCommandSet12 is defined by the following guid: +// +// {2A8866DC-7BDE-4dc8-A360-A60679534384} +// DEFINE_GUID(CMDSETID_StandardCommandSet12, +// 0x2A8866DC, 0x7BDE, 0x4dc8, 0xA3, 0x60, 0xA6, 0x06, 0x79, 0x53, 0x43, 0x84); +// +// Contains ids used for commands used in StandardCommandSet14. +// StandardCommandSet14 is defined by the following guid: +// +// {4C7763BF-5FAF-4264-A366-B7E1F27BA958} +// DEFINE_GUID(CMDSETID_StandardCommandSet14, +// 0x4c7763bf, 0x5faf, 0x4264, 0xa3, 0x66, 0xb7, 0xe1, 0xf2, 0x7b, 0xa9, 0x58); +// +// {712C6C80-883B-4AAD-B430-BBCA5256FA9D} +// DEFINE_GUID(CMDSETID_StandardCommandSet15, +// 0x712c6c80, 0x883b, 0x4aad, 0xb4, 0x30, 0xbb, 0xca, 0x52, 0x56, 0xfa, 0x9d); +// +// NOTE that new commands should be added to the end of StandardCommandSet2K +// and that CLSID_StandardCommandSet97 should not be further added to. +// NOTE also that in StandardCommandSet2K all commands up to ECMD_FINAL are +// standard editor commands and have been moved here from editcmd.h. +//----------------------------------------------------------------------------- + +#ifndef _STDIDCMD_H_ +#define _STDIDCMD_H_ + +#ifndef __CTC__ +#ifdef __cplusplus + +// for specialized contracts +enum +{ + CMD_ZOOM_PAGEWIDTH = -1, + CMD_ZOOM_ONEPAGE = -2, + CMD_ZOOM_TWOPAGES = -3, + CMD_ZOOM_SELECTION = -4, + CMD_ZOOM_FIT = -5 +}; + +#endif //__cplusplus +#endif //__CTC__ + +#define cmdidAlignBottom 1 +#define cmdidAlignHorizontalCenters 2 +#define cmdidAlignLeft 3 +#define cmdidAlignRight 4 +#define cmdidAlignToGrid 5 +#define cmdidAlignTop 6 +#define cmdidAlignVerticalCenters 7 +#define cmdidArrangeBottom 8 +#define cmdidArrangeRight 9 +#define cmdidBringForward 10 +#define cmdidBringToFront 11 +#define cmdidCenterHorizontally 12 +#define cmdidCenterVertically 13 +#define cmdidCode 14 +#define cmdidCopy 15 +#define cmdidCut 16 +#define cmdidDelete 17 +#define cmdidFontName 18 +#define cmdidFontNameGetList 500 +#define cmdidFontSize 19 +#define cmdidFontSizeGetList 501 +#define cmdidGroup 20 +#define cmdidHorizSpaceConcatenate 21 +#define cmdidHorizSpaceDecrease 22 +#define cmdidHorizSpaceIncrease 23 +#define cmdidHorizSpaceMakeEqual 24 +#define cmdidLockControls 369 +#define cmdidInsertObject 25 +#define cmdidPaste 26 +#define cmdidPrint 27 +#define cmdidProperties 28 +#define cmdidRedo 29 +#define cmdidMultiLevelRedo 30 +#define cmdidSelectAll 31 +#define cmdidSendBackward 32 +#define cmdidSendToBack 33 +#define cmdidShowTable 34 +#define cmdidSizeToControl 35 +#define cmdidSizeToControlHeight 36 +#define cmdidSizeToControlWidth 37 +#define cmdidSizeToFit 38 +#define cmdidSizeToGrid 39 +#define cmdidSnapToGrid 40 +#define cmdidTabOrder 41 +#define cmdidToolbox 42 +#define cmdidUndo 43 +#define cmdidMultiLevelUndo 44 +#define cmdidUngroup 45 +#define cmdidVertSpaceConcatenate 46 +#define cmdidVertSpaceDecrease 47 +#define cmdidVertSpaceIncrease 48 +#define cmdidVertSpaceMakeEqual 49 +#define cmdidZoomPercent 50 +#define cmdidBackColor 51 +#define cmdidBold 52 +#define cmdidBorderColor 53 +#define cmdidBorderDashDot 54 +#define cmdidBorderDashDotDot 55 +#define cmdidBorderDashes 56 +#define cmdidBorderDots 57 +#define cmdidBorderShortDashes 58 +#define cmdidBorderSolid 59 +#define cmdidBorderSparseDots 60 +#define cmdidBorderWidth1 61 +#define cmdidBorderWidth2 62 +#define cmdidBorderWidth3 63 +#define cmdidBorderWidth4 64 +#define cmdidBorderWidth5 65 +#define cmdidBorderWidth6 66 +#define cmdidBorderWidthHairline 67 +#define cmdidFlat 68 +#define cmdidForeColor 69 +#define cmdidItalic 70 +#define cmdidJustifyCenter 71 +#define cmdidJustifyGeneral 72 +#define cmdidJustifyLeft 73 +#define cmdidJustifyRight 74 +#define cmdidRaised 75 +#define cmdidSunken 76 +#define cmdidUnderline 77 +#define cmdidChiseled 78 +#define cmdidEtched 79 +#define cmdidShadowed 80 +#define cmdidCompDebug1 81 +#define cmdidCompDebug2 82 +#define cmdidCompDebug3 83 +#define cmdidCompDebug4 84 +#define cmdidCompDebug5 85 +#define cmdidCompDebug6 86 +#define cmdidCompDebug7 87 +#define cmdidCompDebug8 88 +#define cmdidCompDebug9 89 +#define cmdidCompDebug10 90 +#define cmdidCompDebug11 91 +#define cmdidCompDebug12 92 +#define cmdidCompDebug13 93 +#define cmdidCompDebug14 94 +#define cmdidCompDebug15 95 +#define cmdidExistingSchemaEdit 96 +#define cmdidFind 97 +#define cmdidGetZoom 98 +#define cmdidQueryOpenDesign 99 +#define cmdidQueryOpenNew 100 +#define cmdidSingleTableDesign 101 +#define cmdidSingleTableNew 102 +#define cmdidShowGrid 103 +#define cmdidNewTable 104 +#define cmdidCollapsedView 105 +#define cmdidFieldView 106 +#define cmdidVerifySQL 107 +#define cmdidHideTable 108 + +#define cmdidPrimaryKey 109 +#define cmdidSave 110 +#define cmdidSaveAs 111 +#define cmdidSortAscending 112 + +#define cmdidSortDescending 113 +#define cmdidAppendQuery 114 +#define cmdidCrosstabQuery 115 +#define cmdidDeleteQuery 116 +#define cmdidMakeTableQuery 117 + +#define cmdidSelectQuery 118 +#define cmdidUpdateQuery 119 +#define cmdidParameters 120 +#define cmdidTotals 121 +#define cmdidViewCollapsed 122 + +#define cmdidViewFieldList 123 + + +#define cmdidViewKeys 124 +#define cmdidViewGrid 125 +#define cmdidInnerJoin 126 + +#define cmdidRightOuterJoin 127 +#define cmdidLeftOuterJoin 128 +#define cmdidFullOuterJoin 129 +#define cmdidUnionJoin 130 +#define cmdidShowSQLPane 131 + +#define cmdidShowGraphicalPane 132 +#define cmdidShowDataPane 133 +#define cmdidShowQBEPane 134 +#define cmdidSelectAllFields 135 + +#define cmdidOLEObjectMenuButton 136 + +// ids on the ole verbs menu - these must be sequential ie verblist0-verblist9 +#define cmdidObjectVerbList0 137 +#define cmdidObjectVerbList1 138 +#define cmdidObjectVerbList2 139 +#define cmdidObjectVerbList3 140 +#define cmdidObjectVerbList4 141 +#define cmdidObjectVerbList5 142 +#define cmdidObjectVerbList6 143 +#define cmdidObjectVerbList7 144 +#define cmdidObjectVerbList8 145 +#define cmdidObjectVerbList9 146 // Unused on purpose! + +#define cmdidConvertObject 147 +#define cmdidCustomControl 148 +#define cmdidCustomizeItem 149 +#define cmdidRename 150 + +#define cmdidImport 151 +#define cmdidNewPage 152 +#define cmdidMove 153 +#define cmdidCancel 154 + +#define cmdidFont 155 + +#define cmdidExpandLinks 156 +#define cmdidExpandImages 157 +#define cmdidExpandPages 158 +#define cmdidRefocusDiagram 159 +#define cmdidTransitiveClosure 160 +#define cmdidCenterDiagram 161 +#define cmdidZoomIn 162 +#define cmdidZoomOut 163 +#define cmdidRemoveFilter 164 +#define cmdidHidePane 165 +#define cmdidDeleteTable 166 +#define cmdidDeleteRelationship 167 +#define cmdidRemove 168 +#define cmdidJoinLeftAll 169 +#define cmdidJoinRightAll 170 +#define cmdidAddToOutput 171 // Add selected fields to query output +#define cmdidOtherQuery 172 // change query type to 'other' +#define cmdidGenerateChangeScript 173 +#define cmdidSaveSelection 174 // Save current selection +#define cmdidAutojoinCurrent 175 // Autojoin current tables +#define cmdidAutojoinAlways 176 // Toggle Autojoin state +#define cmdidEditPage 177 // Launch editor for url +#define cmdidViewLinks 178 // Launch new webscope for url +#define cmdidStop 179 // Stope webscope rendering +#define cmdidPause 180 // Pause webscope rendering +#define cmdidResume 181 // Resume webscope rendering +#define cmdidFilterDiagram 182 // Filter webscope diagram +#define cmdidShowAllObjects 183 // Show All objects in webscope diagram +#define cmdidShowApplications 184 // Show Application objects in webscope diagram +#define cmdidShowOtherObjects 185 // Show other objects in webscope diagram +#define cmdidShowPrimRelationships 186 // Show primary relationships +#define cmdidExpand 187 // Expand links +#define cmdidCollapse 188 // Collapse links +#define cmdidRefresh 189 // Refresh Webscope diagram +#define cmdidLayout 190 // Layout websope diagram +#define cmdidShowResources 191 // Show resouce objects in webscope diagram +#define cmdidInsertHTMLWizard 192 // Insert HTML using a Wizard +#define cmdidShowDownloads 193 // Show download objects in webscope diagram +#define cmdidShowExternals 194 // Show external objects in webscope diagram +#define cmdidShowInBoundLinks 195 // Show inbound links in webscope diagram +#define cmdidShowOutBoundLinks 196 // Show out bound links in webscope diagram +#define cmdidShowInAndOutBoundLinks 197 // Show in and out bound links in webscope diagram +#define cmdidPreview 198 // Preview page +#define cmdidOpen 261 // Open +#define cmdidOpenWith 199 // Open with +#define cmdidShowPages 200 // Show HTML pages +#define cmdidRunQuery 201 // Runs a query +#define cmdidClearQuery 202 // Clears the query's associated cursor +#define cmdidRecordFirst 203 // Go to first record in set +#define cmdidRecordLast 204 // Go to last record in set +#define cmdidRecordNext 205 // Go to next record in set +#define cmdidRecordPrevious 206 // Go to previous record in set +#define cmdidRecordGoto 207 // Go to record via dialog +#define cmdidRecordNew 208 // Add a record to set + +#define cmdidInsertNewMenu 209 // menu designer +#define cmdidInsertSeparator 210 // menu designer +#define cmdidEditMenuNames 211 // menu designer + +#define cmdidDebugExplorer 212 +#define cmdidDebugProcesses 213 +#define cmdidViewThreadsWindow 214 +#define cmdidWindowUIList 215 + +// ids on the file menu +#define cmdidNewProject 216 +#define cmdidOpenProject 217 +#define cmdidOpenSolution 218 +#define cmdidCloseSolution 219 +#define cmdidFileNew 221 +#define cmdidNewProjectFromExisting 385 +#define cmdidFileOpen 222 +#define cmdidFileOpenFromWeb 451 +#define cmdidFileClose 223 +#define cmdidSaveSolution 224 +#define cmdidSaveSolutionAs 225 +#define cmdidSaveProjectItemAs 226 +#define cmdidPageSetup 227 +#define cmdidPrintPreview 228 +#define cmdidExit 229 + +// ids on the edit menu +#define cmdidReplace 230 +#define cmdidGoto 231 + +// ids on the view menu +#define cmdidPropertyPages 232 +#define cmdidFullScreen 233 +#define cmdidProjectExplorer 234 +#define cmdidPropertiesWindow 235 +#define cmdidTaskListWindow 236 +//#define cmdidErrorListWindow 320 // defined below +#define cmdidOutputWindow 237 +#define cmdidObjectBrowser 238 +#define cmdidDocOutlineWindow 239 +#define cmdidImmediateWindow 240 +#define cmdidWatchWindow 241 +#define cmdidLocalsWindow 242 +#define cmdidCallStack 243 +// moved below definition +//#define cmdidAutosWindow cmdidDebugReserved1 +//#define cmdidThisWindow cmdidDebugReserved2 + +// ids on project menu +#define cmdidAddNewItem 220 +#define cmdidAddExistingItem 244 +#define cmdidNewFolder 245 +#define cmdidSetStartupProject 246 +#define cmdidProjectSettings 247 +#define cmdidProjectReferences 367 + +// ids on the debug menu +#define cmdidStepInto 248 +#define cmdidStepOver 249 +#define cmdidStepOut 250 +#define cmdidRunToCursor 251 +#define cmdidAddWatch 252 +#define cmdidEditWatch 253 +#define cmdidQuickWatch 254 + +#define cmdidToggleBreakpoint 255 +#define cmdidClearBreakpoints 256 +#define cmdidShowBreakpoints 257 +#define cmdidSetNextStatement 258 +#define cmdidShowNextStatement 259 +#define cmdidEditBreakpoint 260 +#define cmdidDetachDebugger 262 + +// ids on the tools menu +#define cmdidCustomizeKeyboard 263 +#define cmdidToolsOptions 264 + +// ids on the windows menu +#define cmdidNewWindow 265 +#define cmdidSplit 266 +#define cmdidCascade 267 +#define cmdidTileHorz 268 +#define cmdidTileVert 269 + +// ids on the help menu +#define cmdidTechSupport 270 +// #define cmdidDebugContextWindow 327 // defined below + +// NOTE cmdidAbout and cmdidDebugOptions must be consecutive +// cmd after cmdidDebugOptions (ie 273) must not be used +#define cmdidAbout 271 +#define cmdidDebugOptions 272 + +// ids on the watch context menu +// CollapseWatch appears as 'Collapse Parent', on any +// non-top-level item +#define cmdidDeleteWatch 274 +#define cmdidCollapseWatch 275 +// ids 276, 277, 278, 279, 280 are in use +// below +// ids on the property browser context menu +#define cmdidPbrsToggleStatus 282 +#define cmdidPropbrsHide 283 + +// ids on the docking context menu +#define cmdidDockingView 284 +#define cmdidHideActivePane 285 +// ids for window selection via keyboard +//#define cmdidPaneNextPane 316 (listed below in order) +//#define cmdidPanePrevPane 317 (listed below in order) +#define cmdidPaneNextTab 286 +#define cmdidPanePrevTab 287 +#define cmdidPaneCloseToolWindow 288 +#define cmdidPaneActivateDocWindow 289 +#define cmdidDockingViewDocument 290 +#define cmdidDockingViewFloater 291 +#define cmdidAutoHideWindow 292 +#define cmdidMoveToDropdownBar 293 +#define cmdidFindCmd 294 // internal Find commands +#define cmdidStart 295 +#define cmdidRestart 296 + +#define cmdidMultiLevelUndoList 298 +#define cmdidMultiLevelRedoList 299 + +#define cmdidToolboxAddTab 300 +#define cmdidToolboxDeleteTab 301 +#define cmdidToolboxRenameTab 302 +#define cmdidToolboxTabMoveUp 303 +#define cmdidToolboxTabMoveDown 304 +#define cmdidToolboxRenameItem 305 +#define cmdidToolboxListView 306 +//(below) cmdidSearchSetCombo 307 + +#define cmdidWindowUIGetList 308 +#define cmdidInsertValuesQuery 309 + +#define cmdidShowProperties 310 + +#define cmdidThreadSuspend 311 +#define cmdidThreadResume 312 +#define cmdidThreadSetFocus 313 +#define cmdidDisplayRadix 314 + +#define cmdidOpenProjectItem 315 + +#define cmdidPaneNextPane 316 +#define cmdidPanePrevPane 317 + +#define cmdidClearPane 318 +#define cmdidGotoErrorTag 319 + +#define cmdidErrorListWindow 320 + +#define cmdidCancelEZDrag 326 + +#define cmdidDebugContextWindow 327 + +// Samples are no longer supported post d15 +// #define cmdidHelpSamples 328 + +#define cmdidToolboxAddItem 329 +#define cmdidToolboxReset 330 + +#define cmdidSaveProjectItem 331 +#define cmdidSaveOptions 959 +#define cmdidViewForm 332 +#define cmdidViewCode 333 +#define cmdidPreviewInBrowser 334 +#define cmdidBrowseWith 336 +#define cmdidSearchSetCombo 307 +#define cmdidSearchCombo 337 +#define cmdidEditLabel 338 +#define cmdidExceptions 339 +// UNUSED 340 + +#define cmdidToggleSelMode 341 +#define cmdidToggleInsMode 342 + +#define cmdidLoadUnloadedProject 343 +#define cmdidUnloadLoadedProject 344 + +// ids on the treegrids (watch/local/threads/stack) +#define cmdidElasticColumn 345 +#define cmdidHideColumn 346 + +#define cmdidToggleDesigner 347 + +#define cmdidZoomDialog 348 + +// find/replace options +#define cmdidFindInSelection 354 +#define cmdidFindStop 355 +#define cmdidFindInFiles 277 +#define cmdidReplaceInFiles 278 +#define cmdidNextLocation 279 // next item in task list, results lists, etc. +#define cmdidPreviousLocation 280 // prev item " +#define cmdidGotoQuick 281 +#define cmdidGotoFIF 282 +#define cmdidGotoSymbol 283 +#define cmdidGotoQuickReplace 285 +#define cmdidGotoReplaceInFiles 286 + +// UNUSED: 356 - 366 + +// 367 is used above in cmdidProjectReferences +#define cmdidStartNoDebug 368 +// 369 is used above in cmdidLockControls + +#define cmdidFindNext 370 +#define cmdidFindPrev 371 +#define cmdidFindSelectedNext 372 +#define cmdidFindSelectedPrev 373 +#define cmdidSearchGetList 374 +#define cmdidInsertBreakpoint 375 +#define cmdidEnableBreakpoint 376 +#define cmdidF1Help 377 + +// UNUSED: 378 - 383 + +#define cmdidMoveToNextEZCntr 384 +// 385 is used above in cmdidNewProjectFromExisting +#define cmdidUpdateMarkerSpans 386 + +//UNUSED 387-392 + + +#define cmdidMoveToPreviousEZCntr 393 + +//UNUSED 394-395 + +#define cmdidProjectProperties 396 +#define cmdidPropSheetOrProperties 397 + +// NOTE - the next items are debug only !! +#define cmdidTshellStep 398 +#define cmdidTshellRun 399 + +// marker commands on the codewin menu +#define cmdidMarkerCmd0 400 +#define cmdidMarkerCmd1 401 +#define cmdidMarkerCmd2 402 +#define cmdidMarkerCmd3 403 +#define cmdidMarkerCmd4 404 +#define cmdidMarkerCmd5 405 +#define cmdidMarkerCmd6 406 +#define cmdidMarkerCmd7 407 +#define cmdidMarkerCmd8 408 +#define cmdidMarkerCmd9 409 +#define cmdidMarkerLast 409 +#define cmdidMarkerEnd 410 // list terminator reserved + +// user-invoked project reload and unload +#define cmdidReloadProject 412 +#define cmdidUnloadProject 413 + +#define cmdidNewBlankSolution 414 +#define cmdidSelectProjectTemplate 415 + +// document outline commands +#define cmdidDetachAttachOutline 420 +#define cmdidShowHideOutline 421 +#define cmdidSyncOutline 422 + +#define cmdidRunToCallstCursor 423 +#define cmdidNoCmdsAvailable 424 + +#define cmdidContextWindow 427 +#define cmdidAlias 428 +#define cmdidGotoCommandLine 429 +#define cmdidEvaluateExpression 430 +#define cmdidImmediateMode 431 +#define cmdidEvaluateStatement 432 + +#define cmdidFindResultWindow1 433 +#define cmdidFindResultWindow2 434 + +#define cmdidRenameBookmark 559 +#define cmdidToggleBookmark 560 +#define cmdidDeleteBookmark 561 +#define cmdidBookmarkWindowGoToBookmark 562 +//563 unused +#define cmdidEnableBookmark 564 +#define cmdidNewBookmarkFolder 565 +//566 unused +//567 unused +#define cmdidNextBookmarkFolder 568 +#define cmdidPrevBookmarkFolder 569 + +// 500 is used above in cmdidFontNameGetList +// 501 is used above in cmdidFontSizeGetList + +// ids on the window menu - these must be sequential ie window1-morewind +#define cmdidWindow1 570 +#define cmdidWindow2 571 +#define cmdidWindow3 572 +#define cmdidWindow4 573 +#define cmdidWindow5 574 +#define cmdidWindow6 575 +#define cmdidWindow7 576 +#define cmdidWindow8 577 +#define cmdidWindow9 578 +#define cmdidWindow10 579 +#define cmdidWindow11 580 +#define cmdidWindow12 581 +#define cmdidWindow13 582 +#define cmdidWindow14 583 +#define cmdidWindow15 584 +#define cmdidWindow16 585 +#define cmdidWindow17 586 +#define cmdidWindow18 587 +#define cmdidWindow19 588 +#define cmdidWindow20 589 +#define cmdidWindow21 590 +#define cmdidWindow22 591 +#define cmdidWindow23 592 +#define cmdidWindow24 593 +#define cmdidWindow25 594 // note cmdidWindow25 is unused on purpose! +#define cmdidMoreWindows 595 + +#define cmdidAutoHideAllWindows 597 + +// UNUSED: 598 + +#define cmdidClassView 599 + +#define cmdidMRUProj1 600 +#define cmdidMRUProj2 601 +#define cmdidMRUProj3 602 +#define cmdidMRUProj4 603 +#define cmdidMRUProj5 604 +#define cmdidMRUProj6 605 +#define cmdidMRUProj7 606 +#define cmdidMRUProj8 607 +#define cmdidMRUProj9 608 +#define cmdidMRUProj10 609 +#define cmdidMRUProj11 610 +#define cmdidMRUProj12 611 +#define cmdidMRUProj13 612 +#define cmdidMRUProj14 613 +#define cmdidMRUProj15 614 +#define cmdidMRUProj16 615 +#define cmdidMRUProj17 616 +#define cmdidMRUProj18 617 +#define cmdidMRUProj19 618 +#define cmdidMRUProj20 619 +#define cmdidMRUProj21 620 +#define cmdidMRUProj22 621 +#define cmdidMRUProj23 622 +#define cmdidMRUProj24 623 +#define cmdidMRUProj25 624 // note cmdidMRUProj25 is unused on purpose! + +#define cmdidSplitNext 625 +#define cmdidSplitPrev 626 + +#define cmdidCloseAllDocuments 627 +#define cmdidNextDocument 628 +#define cmdidPrevDocument 629 + +#define cmdidTool1 630 // note cmdidTool1 - cmdidTool24 must be +#define cmdidTool2 631 // consecutive +#define cmdidTool3 632 +#define cmdidTool4 633 +#define cmdidTool5 634 +#define cmdidTool6 635 +#define cmdidTool7 636 +#define cmdidTool8 637 +#define cmdidTool9 638 +#define cmdidTool10 639 +#define cmdidTool11 640 +#define cmdidTool12 641 +#define cmdidTool13 642 +#define cmdidTool14 643 +#define cmdidTool15 644 +#define cmdidTool16 645 +#define cmdidTool17 646 +#define cmdidTool18 647 +#define cmdidTool19 648 +#define cmdidTool20 649 +#define cmdidTool21 650 +#define cmdidTool22 651 +#define cmdidTool23 652 +#define cmdidTool24 653 +#define cmdidExternalCommands 654 + +#define cmdidPasteNextTBXCBItem 655 +#define cmdidToolboxShowAllTabs 656 +#define cmdidProjectDependencies 657 +#define cmdidCloseDocument 658 +#define cmdidToolboxSortItems 659 + +#define cmdidViewBarView1 660 //UNUSED +#define cmdidViewBarView2 661 //UNUSED +#define cmdidViewBarView3 662 //UNUSED +#define cmdidViewBarView4 663 //UNUSED +#define cmdidViewBarView5 664 //UNUSED +#define cmdidViewBarView6 665 //UNUSED +#define cmdidViewBarView7 666 //UNUSED +#define cmdidViewBarView8 667 //UNUSED +#define cmdidViewBarView9 668 //UNUSED +#define cmdidViewBarView10 669 //UNUSED +#define cmdidViewBarView11 670 //UNUSED +#define cmdidViewBarView12 671 //UNUSED +#define cmdidViewBarView13 672 //UNUSED +#define cmdidViewBarView14 673 //UNUSED +#define cmdidViewBarView15 674 //UNUSED +#define cmdidViewBarView16 675 //UNUSED +#define cmdidViewBarView17 676 //UNUSED +#define cmdidViewBarView18 677 //UNUSED +#define cmdidViewBarView19 678 //UNUSED +#define cmdidViewBarView20 679 //UNUSED +#define cmdidViewBarView21 680 //UNUSED +#define cmdidViewBarView22 681 //UNUSED +#define cmdidViewBarView23 682 //UNUSED +#define cmdidViewBarView24 683 //UNUSED + +#define cmdidSolutionCfg 684 +#define cmdidSolutionCfgGetList 685 + +// +// Schema table commands: +// All invoke table property dialog and select appropriate page. +// +#define cmdidManageIndexes 675 +#define cmdidManageRelationships 676 +#define cmdidManageConstraints 677 + +// UNUSED: 678 - 727 + +#define cmdidWhiteSpace 728 + +#define cmdidCommandWindow 729 +#define cmdidCommandWindowMarkMode 730 +#define cmdidLogCommandWindow 731 + +#define cmdidShell 732 + +#define cmdidSingleChar 733 +#define cmdidZeroOrMore 734 +#define cmdidOneOrMore 735 +#define cmdidBeginLine 736 +#define cmdidEndLine 737 +#define cmdidBeginWord 738 +#define cmdidEndWord 739 +#define cmdidCharInSet 740 +#define cmdidCharNotInSet 741 +#define cmdidOr 742 +#define cmdidEscape 743 +#define cmdidTagExp 744 + +// See more commands in StandardCommandSet2K, IDs 2509 through 2516 + +// Regex builder context help menu commands +#define cmdidPatternMatchHelp 745 +#define cmdidRegExList 746 + +#define cmdidDebugReserved1 747 +#define cmdidDebugReserved2 748 +#define cmdidDebugReserved3 749 +//USED ABOVE 750 +//USED ABOVE 751 +//USED ABOVE 752 +//USED ABOVE 753 + +#define cmdidAutosWindow cmdidDebugReserved1 +#define cmdidThisWindow cmdidDebugReserved2 + +//Regex builder wildcard menu commands +#define cmdidWildZeroOrMore 754 +#define cmdidWildSingleChar 755 +#define cmdidWildSingleDigit 756 +#define cmdidWildCharInSet 757 +#define cmdidWildCharNotInSet 758 +#define cmdidWildEscape 774 + +#define cmdidFindWhatText 759 +#define cmdidTaggedExp1 760 +#define cmdidTaggedExp2 761 +#define cmdidTaggedExp3 762 +#define cmdidTaggedExp4 763 +#define cmdidTaggedExp5 764 +#define cmdidTaggedExp6 765 +#define cmdidTaggedExp7 766 +#define cmdidTaggedExp8 767 +#define cmdidTaggedExp9 768 + +// See more commands in StandardCommandSet2K, IDs 2517 through 2527 + +#define cmdidEditorWidgetClick 769 // param 0 is the moniker as VT_BSTR, param 1 is the buffer line as VT_I4, and param 2 is the buffer index as VT_I4 +#define cmdidCmdWinUpdateAC 770 + +#define cmdidSlnCfgMgr 771 + +#define cmdidAddNewProject 772 +#define cmdidAddExistingProject 773 +// Used above in cmdidWildEscape 774 +#define cmdidAutoHideContext1 776 +#define cmdidAutoHideContext2 777 +#define cmdidAutoHideContext3 778 +#define cmdidAutoHideContext4 779 +#define cmdidAutoHideContext5 780 +#define cmdidAutoHideContext6 781 +#define cmdidAutoHideContext7 782 +#define cmdidAutoHideContext8 783 +#define cmdidAutoHideContext9 784 +#define cmdidAutoHideContext10 785 +#define cmdidAutoHideContext11 786 +#define cmdidAutoHideContext12 787 +#define cmdidAutoHideContext13 788 +#define cmdidAutoHideContext14 789 +#define cmdidAutoHideContext15 790 +#define cmdidAutoHideContext16 791 +#define cmdidAutoHideContext17 792 +#define cmdidAutoHideContext18 793 +#define cmdidAutoHideContext19 794 +#define cmdidAutoHideContext20 795 +#define cmdidAutoHideContext21 796 +#define cmdidAutoHideContext22 797 +#define cmdidAutoHideContext23 798 +#define cmdidAutoHideContext24 799 +#define cmdidAutoHideContext25 800 +#define cmdidAutoHideContext26 801 +#define cmdidAutoHideContext27 802 +#define cmdidAutoHideContext28 803 +#define cmdidAutoHideContext29 804 +#define cmdidAutoHideContext30 805 +#define cmdidAutoHideContext31 806 +#define cmdidAutoHideContext32 807 +#define cmdidAutoHideContext33 808 // must remain unused + +#define cmdidShellNavBackward 809 +#define cmdidShellNavForward 810 + + +#define cmdidShellWindowNavigate1 844 +#define cmdidShellWindowNavigate2 845 +#define cmdidShellWindowNavigate3 846 +#define cmdidShellWindowNavigate4 847 +#define cmdidShellWindowNavigate5 848 +#define cmdidShellWindowNavigate6 849 +#define cmdidShellWindowNavigate7 850 +#define cmdidShellWindowNavigate8 851 +#define cmdidShellWindowNavigate9 852 +#define cmdidShellWindowNavigate10 853 +#define cmdidShellWindowNavigate11 854 +#define cmdidShellWindowNavigate12 855 +#define cmdidShellWindowNavigate13 856 +#define cmdidShellWindowNavigate14 857 +#define cmdidShellWindowNavigate15 858 +#define cmdidShellWindowNavigate16 859 +#define cmdidShellWindowNavigate17 860 +#define cmdidShellWindowNavigate18 861 +#define cmdidShellWindowNavigate19 862 +#define cmdidShellWindowNavigate20 863 +#define cmdidShellWindowNavigate21 864 +#define cmdidShellWindowNavigate22 865 +#define cmdidShellWindowNavigate23 866 +#define cmdidShellWindowNavigate24 867 +#define cmdidShellWindowNavigate25 868 +#define cmdidShellWindowNavigate26 869 +#define cmdidShellWindowNavigate27 870 +#define cmdidShellWindowNavigate28 871 +#define cmdidShellWindowNavigate29 872 +#define cmdidShellWindowNavigate30 873 +#define cmdidShellWindowNavigate31 874 +#define cmdidShellWindowNavigate32 875 +#define cmdidShellWindowNavigate33 876 // must remain unused + +// ObjectSearch cmds +#define cmdidOBSDoFind 877 +#define cmdidOBSMatchCase 878 +#define cmdidOBSMatchSubString 879 +#define cmdidOBSMatchWholeWord 880 +#define cmdidOBSMatchPrefix 881 + +// build cmds +#define cmdidBuildSln 882 +#define cmdidRebuildSln 883 +#define cmdidDeploySln 884 +#define cmdidCleanSln 885 + +#define cmdidBuildSel 886 +#define cmdidRebuildSel 887 +#define cmdidDeploySel 888 +#define cmdidCleanSel 889 + + +#define cmdidCancelBuild 890 +#define cmdidBatchBuildDlg 891 + +#define cmdidBuildCtx 892 +#define cmdidRebuildCtx 893 +#define cmdidDeployCtx 894 +#define cmdidCleanCtx 895 + +#define cmdidQryManageIndexes 896 +#define cmdidPrintDefault 897 // quick print +// Unused 898 +#define cmdidShowStartPage 899 + +#define cmdidMRUFile1 900 +#define cmdidMRUFile2 901 +#define cmdidMRUFile3 902 +#define cmdidMRUFile4 903 +#define cmdidMRUFile5 904 +#define cmdidMRUFile6 905 +#define cmdidMRUFile7 906 +#define cmdidMRUFile8 907 +#define cmdidMRUFile9 908 +#define cmdidMRUFile10 909 +#define cmdidMRUFile11 910 +#define cmdidMRUFile12 911 +#define cmdidMRUFile13 912 +#define cmdidMRUFile14 913 +#define cmdidMRUFile15 914 +#define cmdidMRUFile16 915 +#define cmdidMRUFile17 916 +#define cmdidMRUFile18 917 +#define cmdidMRUFile19 918 +#define cmdidMRUFile20 919 +#define cmdidMRUFile21 920 +#define cmdidMRUFile22 921 +#define cmdidMRUFile23 922 +#define cmdidMRUFile24 923 +#define cmdidMRUFile25 924 // note cmdidMRUFile25 is unused on purpose! + +//External Tools Context Menu Commands +// continued at 1109 +#define cmdidExtToolsCurPath 925 +#define cmdidExtToolsCurDir 926 +#define cmdidExtToolsCurFileName 927 +#define cmdidExtToolsCurExtension 928 +#define cmdidExtToolsProjDir 929 +#define cmdidExtToolsProjFileName 930 +#define cmdidExtToolsSlnDir 931 +#define cmdidExtToolsSlnFileName 932 + +// Object Browsing & ClassView cmds +// Shared shell cmds (for accessing Object Browsing functionality) +#define cmdidGotoDefn 935 +#define cmdidGotoDecl 936 +#define cmdidBrowseDefn 937 +#define cmdidSyncClassView 938 +#define cmdidShowMembers 939 +#define cmdidShowBases 940 +#define cmdidShowDerived 941 +#define cmdidShowDefns 942 +#define cmdidShowRefs 943 +#define cmdidShowCallers 944 +#define cmdidShowCallees 945 + +#define cmdidAddClass 946 +#define cmdidAddNestedClass 947 +#define cmdidAddInterface 948 +#define cmdidAddMethod 949 +#define cmdidAddProperty 950 +#define cmdidAddEvent 951 +#define cmdidAddVariable 952 +#define cmdidImplementInterface 953 +#define cmdidOverride 954 +#define cmdidAddFunction 955 +#define cmdidAddConnectionPoint 956 +#define cmdidAddIndexer 957 + +#define cmdidBuildOrder 958 +//959 used above for cmdidSaveOptions + +// Object Browser Tool Specific cmds +#define cmdidOBEnableGrouping 961 +#define cmdidOBSetGroupingCriteria 962 +#define cmdidOBShowPackages 965 +#define cmdidOBSearchOptWholeWord 967 +#define cmdidOBSearchOptSubstring 968 +#define cmdidOBSearchOptPrefix 969 +#define cmdidOBSearchOptCaseSensitive 970 + +// ClassView Tool Specific cmds + +#define cmdidCVGroupingNone 971 +#define cmdidCVGroupingSortOnly 972 +#define cmdidCVGroupingGrouped 973 +#define cmdidCVShowPackages 974 +#define cmdidCVNewFolder 975 +#define cmdidCVGroupingSortAccess 976 + +#define cmdidObjectSearch 977 +#define cmdidObjectSearchResults 978 + +// Further Obj Browsing cmds at 1095 + +// build cascade menus +#define cmdidBuild1 979 +#define cmdidBuild2 980 +#define cmdidBuild3 981 +#define cmdidBuild4 982 +#define cmdidBuild5 983 +#define cmdidBuild6 984 +#define cmdidBuild7 985 +#define cmdidBuild8 986 +#define cmdidBuild9 987 +#define cmdidBuildLast 988 + +#define cmdidRebuild1 989 +#define cmdidRebuild2 990 +#define cmdidRebuild3 991 +#define cmdidRebuild4 992 +#define cmdidRebuild5 993 +#define cmdidRebuild6 994 +#define cmdidRebuild7 995 +#define cmdidRebuild8 996 +#define cmdidRebuild9 997 +#define cmdidRebuildLast 998 + +#define cmdidClean1 999 +#define cmdidClean2 1000 +#define cmdidClean3 1001 +#define cmdidClean4 1002 +#define cmdidClean5 1003 +#define cmdidClean6 1004 +#define cmdidClean7 1005 +#define cmdidClean8 1006 +#define cmdidClean9 1007 +#define cmdidCleanLast 1008 + +#define cmdidDeploy1 1009 +#define cmdidDeploy2 1010 +#define cmdidDeploy3 1011 +#define cmdidDeploy4 1012 +#define cmdidDeploy5 1013 +#define cmdidDeploy6 1014 +#define cmdidDeploy7 1015 +#define cmdidDeploy8 1016 +#define cmdidDeploy9 1017 +#define cmdidDeployLast 1018 + +#define cmdidBuildProjPicker 1019 +#define cmdidRebuildProjPicker 1020 +#define cmdidCleanProjPicker 1021 +#define cmdidDeployProjPicker 1022 +#define cmdidResourceView 1023 +#define cmdidEditMenuIDs 1025 + +#define cmdidLineBreak 1026 +#define cmdidCPPIdentifier 1027 +#define cmdidQuotedString 1028 +#define cmdidSpaceOrTab 1029 +#define cmdidInteger 1030 + +//unused 1031-1035 + +#define cmdidCustomizeToolbars 1036 +#define cmdidMoveToTop 1037 +#define cmdidWindowHelp 1038 + +#define cmdidViewPopup 1039 +#define cmdidCheckMnemonics 1040 + +#define cmdidPRSortAlphabeticaly 1041 +#define cmdidPRSortByCategory 1042 + +#define cmdidViewNextTab 1043 + +#define cmdidCheckForUpdates 1044 + +#define cmdidBrowser1 1045 +#define cmdidBrowser2 1046 +#define cmdidBrowser3 1047 +#define cmdidBrowser4 1048 +#define cmdidBrowser5 1049 +#define cmdidBrowser6 1050 +#define cmdidBrowser7 1051 +#define cmdidBrowser8 1052 +#define cmdidBrowser9 1053 +#define cmdidBrowser10 1054 +#define cmdidBrowser11 1055 //note unused on purpose to end list + +#define cmdidOpenDropDownOpen 1058 +#define cmdidOpenDropDownOpenWith 1059 + +#define cmdidToolsDebugProcesses 1060 + +#define cmdidPaneNextSubPane 1062 +#define cmdidPanePrevSubPane 1063 + +#define cmdidMoveFileToProject1 1070 +#define cmdidMoveFileToProject2 1071 +#define cmdidMoveFileToProject3 1072 +#define cmdidMoveFileToProject4 1073 +#define cmdidMoveFileToProject5 1074 +#define cmdidMoveFileToProject6 1075 +#define cmdidMoveFileToProject7 1076 +#define cmdidMoveFileToProject8 1077 +#define cmdidMoveFileToProject9 1078 +#define cmdidMoveFileToProjectLast 1079 // unused in order to end list +#define cmdidMoveFileToProjectPick 1081 + + +#define cmdidDefineSubset 1095 +#define cmdidSubsetCombo 1096 +#define cmdidSubsetGetList 1097 +#define cmdidOBGroupObjectsAccess 1102 + +#define cmdidPopBrowseContext 1106 +#define cmdidGotoRef 1107 +#define cmdidOBSLookInReferences 1108 + +#define cmdidExtToolsTargetPath 1109 +#define cmdidExtToolsTargetDir 1110 +#define cmdidExtToolsTargetFileName 1111 +#define cmdidExtToolsTargetExtension 1112 +#define cmdidExtToolsCurLine 1113 +#define cmdidExtToolsCurCol 1114 +#define cmdidExtToolsCurText 1115 + +#define cmdidBrowseNext 1116 +#define cmdidBrowsePrev 1117 +#define cmdidBrowseUnload 1118 +#define cmdidQuickObjectSearch 1119 +#define cmdidExpandAll 1120 + +#define cmdidExtToolsBinDir 1121 + +#define cmdidBookmarkWindow 1122 +#define cmdidCodeExpansionWindow 1123 + +#define cmdidNextDocumentNav 1124 // added to Set97 because they are extentions on cmdidNextDocument +#define cmdidPrevDocumentNav 1125 +#define cmdidForwardBrowseContext 1126 + +#define cmdidCloneWindow 1127 + +#define cmdidStandardMax 1500 + +/////////////////////////////////////////// +// +// cmdidStandardMax is now thought to be +// obsolete. Any new shell commands should +// be added to the end of StandardCommandSet2K +// which appears below. +// +// If you are not adding shell commands, +// you shouldn't be doing it in this file! +// +/////////////////////////////////////////// + + +#define cmdidFormsFirst 0x00006000 + +#define cmdidFormsLast 0x00006FFF + +#define cmdidVBEFirst 0x00008000 + + +#define cmdidZoom200 0x00008002 +#define cmdidZoom150 0x00008003 +#define cmdidZoom100 0x00008004 +#define cmdidZoom75 0x00008005 +#define cmdidZoom50 0x00008006 +#define cmdidZoom25 0x00008007 +#define cmdidZoom10 0x00008010 + + +#define cmdidVBELast 0x00009FFF + +#define cmdidSterlingFirst 0x0000A000 +#define cmdidSterlingLast 0x0000BFFF + +#define uieventidFirst 0xC000 +#define uieventidSelectRegion 0xC001 +#define uieventidDrop 0xC002 +#define uieventidLast 0xDFFF + + + + +////////////////////////////////////////////////////////////////// +// +// The following commands form CMDSETID_StandardCommandSet2k. +// Note that commands up to ECMD_FINAL are standard editor +// commands and have been moved from editcmd.h. +// NOTE that all these commands are shareable and may be used +// in any appropriate menu. +// +////////////////////////////////////////////////////////////////// +// +// Shareable standard editor commands +// +#define ECMD_TYPECHAR 1 +#define ECMD_BACKSPACE 2 +#define ECMD_RETURN 3 +#define ECMD_TAB 4 +#define ECMD_BACKTAB 5 +#define ECMD_DELETE 6 +#define ECMD_LEFT 7 +#define ECMD_LEFT_EXT 8 +#define ECMD_RIGHT 9 +#define ECMD_RIGHT_EXT 10 +#define ECMD_UP 11 +#define ECMD_UP_EXT 12 +#define ECMD_DOWN 13 +#define ECMD_DOWN_EXT 14 +#define ECMD_HOME 15 +#define ECMD_HOME_EXT 16 +#define ECMD_END 17 +#define ECMD_END_EXT 18 +#define ECMD_BOL 19 +#define ECMD_BOL_EXT 20 +#define ECMD_FIRSTCHAR 21 +#define ECMD_FIRSTCHAR_EXT 22 +#define ECMD_EOL 23 +#define ECMD_EOL_EXT 24 +#define ECMD_LASTCHAR 25 +#define ECMD_LASTCHAR_EXT 26 +#define ECMD_PAGEUP 27 +#define ECMD_PAGEUP_EXT 28 +#define ECMD_PAGEDN 29 +#define ECMD_PAGEDN_EXT 30 +#define ECMD_TOPLINE 31 +#define ECMD_TOPLINE_EXT 32 +#define ECMD_BOTTOMLINE 33 +#define ECMD_BOTTOMLINE_EXT 34 +#define ECMD_SCROLLUP 35 +#define ECMD_SCROLLDN 36 +#define ECMD_SCROLLPAGEUP 37 +#define ECMD_SCROLLPAGEDN 38 +#define ECMD_SCROLLLEFT 39 +#define ECMD_SCROLLRIGHT 40 +#define ECMD_SCROLLBOTTOM 41 +#define ECMD_SCROLLCENTER 42 +#define ECMD_SCROLLTOP 43 +#define ECMD_SELECTALL 44 +#define ECMD_SELTABIFY 45 +#define ECMD_SELUNTABIFY 46 +#define ECMD_SELLOWCASE 47 +#define ECMD_SELUPCASE 48 +#define ECMD_SELTOGGLECASE 49 +#define ECMD_SELTITLECASE 50 +#define ECMD_SELSWAPANCHOR 51 +#define ECMD_GOTOLINE 52 +#define ECMD_GOTOBRACE 53 +#define ECMD_GOTOBRACE_EXT 54 +#define ECMD_GOBACK 55 +#define ECMD_SELECTMODE 56 +#define ECMD_TOGGLE_OVERTYPE_MODE 57 +#define ECMD_CUT 58 +#define ECMD_COPY 59 +#define ECMD_PASTE 60 +#define ECMD_CUTLINE 61 +#define ECMD_DELETELINE 62 +#define ECMD_DELETEBLANKLINES 63 +#define ECMD_DELETEWHITESPACE 64 +#define ECMD_DELETETOEOL 65 +#define ECMD_DELETETOBOL 66 +#define ECMD_OPENLINEABOVE 67 +#define ECMD_OPENLINEBELOW 68 +#define ECMD_INDENT 69 +#define ECMD_UNINDENT 70 +#define ECMD_UNDO 71 +#define ECMD_UNDONOMOVE 72 +#define ECMD_REDO 73 +#define ECMD_REDONOMOVE 74 +#define ECMD_DELETEALLTEMPBOOKMARKS 75 +#define ECMD_TOGGLETEMPBOOKMARK 76 +#define ECMD_GOTONEXTBOOKMARK 77 +#define ECMD_GOTOPREVBOOKMARK 78 +#define ECMD_FIND 79 +#define ECMD_REPLACE 80 +#define ECMD_REPLACE_ALL 81 +#define ECMD_FINDNEXT 82 +#define ECMD_FINDNEXTWORD 83 +#define ECMD_FINDPREV 84 +#define ECMD_FINDPREVWORD 85 +#define ECMD_FINDAGAIN 86 +#define ECMD_TRANSPOSECHAR 87 +#define ECMD_TRANSPOSEWORD 88 +#define ECMD_TRANSPOSELINE 89 +#define ECMD_SELECTCURRENTWORD 90 +#define ECMD_DELETEWORDRIGHT 91 +#define ECMD_DELETEWORDLEFT 92 +#define ECMD_WORDPREV 93 +#define ECMD_WORDPREV_EXT 94 +#define ECMD_WORDNEXT 96 +#define ECMD_WORDNEXT_EXT 97 +#define ECMD_COMMENTBLOCK 98 +#define ECMD_UNCOMMENTBLOCK 99 +#define ECMD_SETREPEATCOUNT 100 +#define ECMD_WIDGETMARGIN_LBTNDOWN 101 +#define ECMD_SHOWCONTEXTMENU 102 +#define ECMD_CANCEL 103 +#define ECMD_PARAMINFO 104 +#define ECMD_TOGGLEVISSPACE 105 +#define ECMD_TOGGLECARETPASTEPOS 106 +#define ECMD_COMPLETEWORD 107 +#define ECMD_SHOWMEMBERLIST 108 +#define ECMD_FIRSTNONWHITEPREV 109 +#define ECMD_FIRSTNONWHITENEXT 110 +#define ECMD_HELPKEYWORD 111 +#define ECMD_FORMATSELECTION 112 +#define ECMD_OPENURL 113 +#define ECMD_INSERTFILE 114 +#define ECMD_TOGGLESHORTCUT 115 +#define ECMD_QUICKINFO 116 +#define ECMD_LEFT_EXT_COL 117 +#define ECMD_RIGHT_EXT_COL 118 +#define ECMD_UP_EXT_COL 119 +#define ECMD_DOWN_EXT_COL 120 +#define ECMD_TOGGLEWORDWRAP 121 +#define ECMD_ISEARCH 122 +#define ECMD_ISEARCHBACK 123 +#define ECMD_BOL_EXT_COL 124 +#define ECMD_EOL_EXT_COL 125 +#define ECMD_WORDPREV_EXT_COL 126 +#define ECMD_WORDNEXT_EXT_COL 127 +#define ECMD_OUTLN_HIDE_SELECTION 128 +#define ECMD_OUTLN_TOGGLE_CURRENT 129 +#define ECMD_OUTLN_TOGGLE_ALL 130 +#define ECMD_OUTLN_STOP_HIDING_ALL 131 +#define ECMD_OUTLN_STOP_HIDING_CURRENT 132 +#define ECMD_OUTLN_COLLAPSE_TO_DEF 133 +#define ECMD_DOUBLECLICK 134 +#define ECMD_EXTERNALLY_HANDLED_WIDGET_CLICK 135 +#define ECMD_COMMENT_BLOCK 136 +#define ECMD_UNCOMMENT_BLOCK 137 +#define ECMD_OPENFILE 138 +#define ECMD_NAVIGATETOURL 139 + +// For editor internal use only +#define ECMD_HANDLEIMEMESSAGE 140 + +#define ECMD_SELTOGOBACK 141 +#define ECMD_COMPLETION_HIDE_ADVANCED 142 + +#define ECMD_FORMATDOCUMENT 143 +#define ECMD_OUTLN_START_AUTOHIDING 144 +#define ECMD_INCREASEFILTER 145 +#define ECMD_DECREASEFILTER 146 +#define ECMD_SMARTTASKS 147 +#define ECMD_COPYTIP 148 +#define ECMD_PASTETIP 149 +#define ECMD_LEFTCLICK 150 +#define ECMD_GOTONEXTBOOKMARKINDOC 151 +#define ECMD_GOTOPREVBOOKMARKINDOC 152 +#define ECMD_INVOKESNIPPETFROMSHORTCUT 154 + +// For managed language services internal use only (clovett) +#define ECMD_AUTOCOMPLETE 155 +#define ECMD_INVOKESNIPPETPICKER2 156 + +#define ECMD_DELETEALLBOOKMARKSINDOC 157 + +#define ECMD_CONVERTTABSTOSPACES 158 +#define ECMD_CONVERTSPACESTOTABS 159 + +// Last Standard Editor Command (+1) +#define ECMD_FINAL 160 + +/////////////////////////////////////////////////////////////// +// Some new commands created during CTC file rationalisation +/////////////////////////////////////////////////////////////// +#define ECMD_STOP 220 +#define ECMD_REVERSECANCEL 221 +#define ECMD_SLNREFRESH 222 +#define ECMD_SAVECOPYOFITEMAS 223 +// +// Shareable commands originating in the HTML editor +// Shared table commands are obsolete! If you still rely on them, please contact jbresler or mikhaila on +// the HTML editor team +// +#define ECMD_NEWELEMENT 224 +#define ECMD_NEWATTRIBUTE 225 +#define ECMD_NEWCOMPLEXTYPE 226 +#define ECMD_NEWSIMPLETYPE 227 +#define ECMD_NEWGROUP 228 +#define ECMD_NEWATTRIBUTEGROUP 229 +#define ECMD_NEWKEY 230 +#define ECMD_NEWRELATION 231 +#define ECMD_EDITKEY 232 +#define ECMD_EDITRELATION 233 +#define ECMD_MAKETYPEGLOBAL 234 +#define ECMD_PREVIEWDATASET 235 +#define ECMD_GENERATEDATASET 236 +#define ECMD_CREATESCHEMA 237 +#define ECMD_LAYOUTINDENT 238 +#define ECMD_LAYOUTUNINDENT 239 +#define ECMD_REMOVEHANDLER 240 +#define ECMD_EDITHANDLER 241 +#define ECMD_ADDHANDLER 242 +#define ECMD_FONTSTYLE 245 +#define ECMD_FONTSTYLEGETLIST 246 +#define ECMD_PASTEASHTML 247 +#define ECMD_VIEWBORDERS 248 +#define ECMD_VIEWDETAILS 249 +#define ECMD_INSERTTABLE 253 +#define ECMD_INSERTCOLLEFT 254 +#define ECMD_INSERTCOLRIGHT 255 +#define ECMD_INSERTROWABOVE 256 +#define ECMD_INSERTROWBELOW 257 +#define ECMD_DELETETABLE 258 +#define ECMD_DELETECOLS 259 +#define ECMD_DELETEROWS 260 +#define ECMD_SELECTTABLE 261 +#define ECMD_SELECTTABLECOL 262 +#define ECMD_SELECTTABLEROW 263 +#define ECMD_SELECTTABLECELL 264 +#define ECMD_MERGECELLS 265 +#define ECMD_SPLITCELL 266 +#define ECMD_INSERTCELLLEFT 267 +#define ECMD_DELETECELLS 268 +#define ECMD_SHOWGRID 277 +#define ECMD_SNAPTOGRID 278 +#define ECMD_BOOKMARK 279 +#define ECMD_HYPERLINK 280 +// unused 284 +#define ECMD_BULLETEDLIST 287 +#define ECMD_NUMBEREDLIST 288 +#define ECMD_EDITSCRIPT 289 +#define ECMD_EDITCODEBEHIND 290 +#define ECMD_DOCOUTLINEHTML 291 + +#define ECMD_RUNATSERVER 293 +#define ECMD_WEBFORMSVERBS 294 +#define ECMD_WEBFORMSTEMPLATES 295 +#define ECMD_ENDTEMPLATE 296 +#define ECMD_EDITDEFAULTEVENT 297 +#define ECMD_SUPERSCRIPT 298 +#define ECMD_SUBSCRIPT 299 +#define ECMD_EDITSTYLE 300 +#define ECMD_ADDIMAGEHEIGHTWIDTH 301 +#define ECMD_REMOVEIMAGEHEIGHTWIDTH 302 +#define ECMD_LOCKELEMENT 303 +#define ECMD_AUTOCLOSEOVERRIDE 305 +#define ECMD_NEWANY 306 +#define ECMD_NEWANYATTRIBUTE 307 +#define ECMD_DELETEKEY 308 +#define ECMD_AUTOARRANGE 309 +#define ECMD_VALIDATESCHEMA 310 +#define ECMD_NEWFACET 311 +#define ECMD_VALIDATEXMLDATA 312 +#define ECMD_DOCOUTLINETOGGLE 313 +#define ECMD_VALIDATEHTMLDATA 314 +#define ECMD_VIEWXMLSCHEMAOVERVIEW 315 +#define ECMD_SHOWDEFAULTVIEW 316 +#define ECMD_EXPAND_CHILDREN 317 +#define ECMD_COLLAPSE_CHILDREN 318 +#define ECMD_TOPDOWNLAYOUT 319 +#define ECMD_LEFTRIGHTLAYOUT 320 +#define ECMD_INSERTCELLRIGHT 321 +#define ECMD_EDITMASTER 322 +#define ECMD_INSERTSNIPPET 323 +#define ECMD_FORMATANDVALIDATION 324 +#define ECMD_COLLAPSETAG 325 +#define ECMD_SELECT_TAG 329 +#define ECMD_SELECT_TAG_CONTENT 330 +#define ECMD_CHECK_ACCESSIBILITY 331 +#define ECMD_UNCOLLAPSETAG 332 +#define ECMD_GENERATEPAGERESOURCE 333 +#define ECMD_SHOWNONVISUALCONTROLS 334 +#define ECMD_RESIZECOLUMN 335 +#define ECMD_RESIZEROW 336 +#define ECMD_MAKEABSOLUTE 337 +#define ECMD_MAKERELATIVE 338 +#define ECMD_MAKESTATIC 339 +#define ECMD_INSERTLAYER 340 +#define ECMD_UPDATEDESIGNVIEW 341 +#define ECMD_UPDATESOURCEVIEW 342 +#define ECMD_INSERTCAPTION 343 +#define ECMD_DELETECAPTION 344 +#define ECMD_MAKEPOSITIONNOTSET 345 +#define ECMD_AUTOPOSITIONOPTIONS 346 +#define ECMD_EDITIMAGE 347 +#define ECMD_VALIDATION_TARGET 11281 +#define ECMD_VALIDATION_TARGET_GET_LIST 11282 + +#define ECMD_CSS_TARGET 11283 +#define ECMD_CSS_TARGET_GET_LIST 11284 +// +// Shareable commands originating in the VC project +// +#define ECMD_COMPILE 350 +// +#define ECMD_PROJSETTINGS 352 +#define ECMD_LINKONLY 353 +// +#define ECMD_REMOVE 355 +#define ECMD_PROJSTARTDEBUG 356 +#define ECMD_PROJSTEPINTO 357 +#define ECMD_UPDATEMGDRES 358 +// +// +#define ECMD_UPDATEWEBREF 360 +// +#define ECMD_ADDRESOURCE 362 +#define ECMD_WEBDEPLOY 363 +// +#define ECMD_PROJTOOLORDER 367 +// +#define ECMD_PROJECTTOOLFILES 368 +// +#define ECMD_OTB_PGO_INSTRUMENT 369 +#define ECMD_OTB_PGO_OPT 370 +#define ECMD_OTB_PGO_UPDATE 371 +#define ECMD_OTB_PGO_RUNSCENARIO 372 + +#define cmdidUpgradeProject 390 +#define cmdidUpgradeAllProjects 391 +#define cmdidShowUpdateSolutionDialog 392 + +// +// Shareable commands originating in the VB and VBA projects +// Note that there are two versions of each command. One +// version is originally from the main (project) menu and the +// other version from a cascading "Add" context menu. The main +// difference between the two commands is that the main menu +// version starts with the text "Add" whereas this is not +// present on the context menu version. +// +#define ECMD_ADDHTMLPAGE 400 +#define ECMD_ADDHTMLPAGECTX 401 +#define ECMD_ADDMODULE 402 +#define ECMD_ADDMODULECTX 403 +// unused 404 +// unused 405 +#define ECMD_ADDWFCFORM 406 +// unused 407 +// unused 408 +// unused 409 +#define ECMD_ADDWEBFORM 410 +#define ECMD_ADDMASTERPAGE 411 +#define ECMD_ADDUSERCONTROL 412 +#define ECMD_ADDCONTENTPAGE 413 +// unused 414 to 425 +#define ECMD_ADDDHTMLPAGE 426 +// unused 427 to 431 +#define ECMD_ADDIMAGEGENERATOR 432 +// unused 433 +#define ECMD_ADDINHERWFCFORM 434 +// unused 435 +#define ECMD_ADDINHERCONTROL 436 +// unused 437 +#define ECMD_ADDWEBUSERCONTROL 438 +// unused 439 +// unused 440 +// unused 441 +#define ECMD_ADDTBXCOMPONENT 442 +// unused 443 +#define ECMD_ADDWEBSERVICE 444 +#define ECMD_ADDSTYLESHEET 445 +#define ECMD_SETBROWSELOCATION 446 +#define ECMD_REFRESHFOLDER 447 +#define ECMD_SETBROWSELOCATIONCTX 448 +#define ECMD_VIEWMARKUP 449 +#define ECMD_NEXTMETHOD 450 +#define ECMD_PREVMETHOD 451 + +// VB refactoring commands +#define ECMD_RENAMESYMBOL 452 +#define ECMD_SHOWREFERENCES 453 +#define ECMD_CREATESNIPPET 454 +#define ECMD_CREATEREPLACEMENT 455 +#define ECMD_INSERTCOMMENT 456 + +#define ECMD_VIEWCOMPONENTDESIGNER 457 + +#define ECMD_GOTOTYPEDEF 458 + +#define ECMD_SHOWSNIPPETHIGHLIGHTING 459 +#define ECMD_HIDESNIPPETHIGHLIGHTING 460 +// +// Shareable commands originating in the VFP project +// +#define ECMD_ADDVFPPAGE 500 +#define ECMD_SETBREAKPOINT 501 +// +// Shareable commands originating in the HELP WORKSHOP project +// +#define ECMD_SHOWALLFILES 600 +#define ECMD_ADDTOPROJECT 601 +#define ECMD_ADDBLANKNODE 602 +#define ECMD_ADDNODEFROMFILE 603 +#define ECMD_CHANGEURLFROMFILE 604 +#define ECMD_EDITTOPIC 605 +#define ECMD_EDITTITLE 606 +#define ECMD_MOVENODEUP 607 +#define ECMD_MOVENODEDOWN 608 +#define ECMD_MOVENODELEFT 609 +#define ECMD_MOVENODERIGHT 610 +// +// Shareable commands originating in the Deploy project +// +// Note there are two groups of deploy project commands. +// The first group of deploy commands. +#define ECMD_ADDOUTPUT 700 +#define ECMD_ADDFILE 701 +#define ECMD_MERGEMODULE 702 +#define ECMD_ADDCOMPONENTS 703 +#define ECMD_LAUNCHINSTALLER 704 +#define ECMD_LAUNCHUNINSTALL 705 +#define ECMD_LAUNCHORCA 706 +#define ECMD_FILESYSTEMEDITOR 707 +#define ECMD_REGISTRYEDITOR 708 +#define ECMD_FILETYPESEDITOR 709 +#define ECMD_USERINTERFACEEDITOR 710 +#define ECMD_CUSTOMACTIONSEDITOR 711 +#define ECMD_LAUNCHCONDITIONSEDITOR 712 +#define ECMD_EDITOR 713 +#define ECMD_EXCLUDE 714 +#define ECMD_REFRESHDEPENDENCIES 715 +#define ECMD_VIEWOUTPUTS 716 +#define ECMD_VIEWDEPENDENCIES 717 +#define ECMD_VIEWFILTER 718 + +// +// The Second group of deploy commands. +// Note that there is a special sub-group in which the relative +// positions are important (see below) +// +#define ECMD_KEY 750 +#define ECMD_STRING 751 +#define ECMD_BINARY 752 +#define ECMD_DWORD 753 +#define ECMD_KEYSOLO 754 +#define ECMD_IMPORT 755 +#define ECMD_FOLDER 756 +#define ECMD_PROJECTOUTPUT 757 +#define ECMD_FILE 758 +#define ECMD_ADDMERGEMODULES 759 +#define ECMD_CREATESHORTCUT 760 +#define ECMD_LARGEICONS 761 +#define ECMD_SMALLICONS 762 +#define ECMD_LIST 763 +#define ECMD_DETAILS 764 +#define ECMD_ADDFILETYPE 765 +#define ECMD_ADDACTION 766 +#define ECMD_SETASDEFAULT 767 +#define ECMD_MOVEUP 768 +#define ECMD_MOVEDOWN 769 +#define ECMD_ADDDIALOG 770 +#define ECMD_IMPORTDIALOG 771 +#define ECMD_ADDFILESEARCH 772 +#define ECMD_ADDREGISTRYSEARCH 773 +#define ECMD_ADDCOMPONENTSEARCH 774 +#define ECMD_ADDLAUNCHCONDITION 775 +#define ECMD_ADDCUSTOMACTION 776 +#define ECMD_OUTPUTS 777 +#define ECMD_DEPENDENCIES 778 +#define ECMD_FILTER 779 +#define ECMD_COMPONENTS 780 +#define ECMD_ENVSTRING 781 +#define ECMD_CREATEEMPTYSHORTCUT 782 +#define ECMD_ADDFILECONDITION 783 +#define ECMD_ADDREGISTRYCONDITION 784 +#define ECMD_ADDCOMPONENTCONDITION 785 +#define ECMD_ADDURTCONDITION 786 +#define ECMD_ADDIISCONDITION 787 + +// +// The relative positions of the commands within the following deploy +// subgroup must remain unaltered, although the group as a whole may +// be repositioned. Note that the first and last elements are special +// boundary elements. +#define ECMD_SPECIALFOLDERBASE 800 +#define ECMD_USERSAPPLICATIONDATAFOLDER 800 +#define ECMD_COMMONFILES64FOLDER 801 +#define ECMD_COMMONFILESFOLDER 802 +#define ECMD_CUSTOMFOLDER 803 +#define ECMD_USERSDESKTOP 804 +#define ECMD_USERSFAVORITESFOLDER 805 +#define ECMD_FONTSFOLDER 806 +#define ECMD_GLOBALASSEMBLYCACHEFOLDER 807 +#define ECMD_MODULERETARGETABLEFOLDER 808 +#define ECMD_USERSPERSONALDATAFOLDER 809 +#define ECMD_PROGRAMFILES64FOLDER 810 +#define ECMD_PROGRAMFILESFOLDER 811 +#define ECMD_USERSPROGRAMSMENU 812 +#define ECMD_USERSSENDTOMENU 813 +#define ECMD_SHAREDCOMPONENTSFOLDER 814 +#define ECMD_USERSSTARTMENU 815 +#define ECMD_USERSSTARTUPFOLDER 816 +#define ECMD_SYSTEM64FOLDER 817 +#define ECMD_SYSTEMFOLDER 818 +#define ECMD_APPLICATIONFOLDER 819 +#define ECMD_USERSTEMPLATEFOLDER 820 +#define ECMD_WEBCUSTOMFOLDER 821 +#define ECMD_WINDOWSFOLDER 822 +#define ECMD_SPECIALFOLDERLAST 822 +// End of deploy sub-group +// +// Shareable commands originating in the Visual Studio Analyzer project +// +#define ECMD_EXPORTEVENTS 900 +#define ECMD_IMPORTEVENTS 901 +#define ECMD_VIEWEVENT 902 +#define ECMD_VIEWEVENTLIST 903 +#define ECMD_VIEWCHART 904 +#define ECMD_VIEWMACHINEDIAGRAM 905 +#define ECMD_VIEWPROCESSDIAGRAM 906 +#define ECMD_VIEWSOURCEDIAGRAM 907 +#define ECMD_VIEWSTRUCTUREDIAGRAM 908 +#define ECMD_VIEWTIMELINE 909 +#define ECMD_VIEWSUMMARY 910 +#define ECMD_APPLYFILTER 911 +#define ECMD_CLEARFILTER 912 +#define ECMD_STARTRECORDING 913 +#define ECMD_STOPRECORDING 914 +#define ECMD_PAUSERECORDING 915 +#define ECMD_ACTIVATEFILTER 916 +#define ECMD_SHOWFIRSTEVENT 917 +#define ECMD_SHOWPREVIOUSEVENT 918 +#define ECMD_SHOWNEXTEVENT 919 +#define ECMD_SHOWLASTEVENT 920 +#define ECMD_REPLAYEVENTS 921 +#define ECMD_STOPREPLAY 922 +#define ECMD_INCREASEPLAYBACKSPEED 923 +#define ECMD_DECREASEPLAYBACKSPEED 924 +#define ECMD_ADDMACHINE 925 +#define ECMD_ADDREMOVECOLUMNS 926 +#define ECMD_SORTCOLUMNS 927 +#define ECMD_SAVECOLUMNSETTINGS 928 +#define ECMD_RESETCOLUMNSETTINGS 929 +#define ECMD_SIZECOLUMNSTOFIT 930 +#define ECMD_AUTOSELECT 931 +#define ECMD_AUTOFILTER 932 +#define ECMD_AUTOPLAYTRACK 933 +#define ECMD_GOTOEVENT 934 +#define ECMD_ZOOMTOFIT 935 +#define ECMD_ADDGRAPH 936 +#define ECMD_REMOVEGRAPH 937 +#define ECMD_CONNECTMACHINE 938 +#define ECMD_DISCONNECTMACHINE 939 +#define ECMD_EXPANDSELECTION 940 +#define ECMD_COLLAPSESELECTION 941 +#define ECMD_ADDFILTER 942 +#define ECMD_ADDPREDEFINED0 943 +#define ECMD_ADDPREDEFINED1 944 +#define ECMD_ADDPREDEFINED2 945 +#define ECMD_ADDPREDEFINED3 946 +#define ECMD_ADDPREDEFINED4 947 +#define ECMD_ADDPREDEFINED5 948 +#define ECMD_ADDPREDEFINED6 949 +#define ECMD_ADDPREDEFINED7 950 +#define ECMD_ADDPREDEFINED8 951 +#define ECMD_TIMELINESIZETOFIT 952 + +// +// Shareable commands originating with Crystal Reports +// +#define ECMD_FIELDVIEW 1000 +#define ECMD_SELECTEXPERT 1001 +#define ECMD_TOPNEXPERT 1002 +#define ECMD_SORTORDER 1003 +#define ECMD_PROPPAGE 1004 +#define ECMD_HELP 1005 +#define ECMD_SAVEREPORT 1006 +#define ECMD_INSERTSUMMARY 1007 +#define ECMD_INSERTGROUP 1008 +#define ECMD_INSERTSUBREPORT 1009 +#define ECMD_INSERTCHART 1010 +#define ECMD_INSERTPICTURE 1011 +// +// Shareable commands from the common project area (DirPrj) +// +#define ECMD_SETASSTARTPAGE 1100 +#define ECMD_RECALCULATELINKS 1101 +#define ECMD_WEBPERMISSIONS 1102 +#define ECMD_COMPARETOMASTER 1103 +#define ECMD_WORKOFFLINE 1104 +#define ECMD_SYNCHRONIZEFOLDER 1105 +#define ECMD_SYNCHRONIZEALLFOLDERS 1106 +#define ECMD_COPYPROJECT 1107 +#define ECMD_IMPORTFILEFROMWEB 1108 +#define ECMD_INCLUDEINPROJECT 1109 +#define ECMD_EXCLUDEFROMPROJECT 1110 +#define ECMD_BROKENLINKSREPORT 1111 +#define ECMD_ADDPROJECTOUTPUTS 1112 +#define ECMD_ADDREFERENCE 1113 +#define ECMD_ADDWEBREFERENCE 1114 +#define ECMD_ADDWEBREFERENCECTX 1115 +#define ECMD_UPDATEWEBREFERENCE 1116 +#define ECMD_RUNCUSTOMTOOL 1117 +#define ECMD_SETRUNTIMEVERSION 1118 +#define ECMD_VIEWREFINOBJECTBROWSER 1119 +#define ECMD_PUBLISH 1120 +#define ECMD_PUBLISHCTX 1121 +#define ECMD_STARTOPTIONS 1124 +#define ECMD_ADDREFERENCECTX 1125 + // note cmdidPropertyManager is consuming 1126 and it shouldn't +#define ECMD_STARTOPTIONSCTX 1127 +#define ECMD_DETACHLOCALDATAFILECTX 1128 +#define ECMD_ADDSERVICEREFERENCE 1129 +#define ECMD_ADDSERVICEREFERENCECTX 1130 +#define ECMD_UPDATESERVICEREFERENCE 1131 +#define ECMD_CONFIGURESERVICEREFERENCE 1132 + +// +// Shareable commands for right drag operations +// +#define ECMD_DRAG_MOVE 1140 +#define ECMD_DRAG_COPY 1141 +#define ECMD_DRAG_CANCEL 1142 + +// +// Shareable commands from the VC resource editor +// +#define ECMD_TESTDIALOG 1200 +#define ECMD_SPACEACROSS 1201 +#define ECMD_SPACEDOWN 1202 +#define ECMD_TOGGLEGRID 1203 +#define ECMD_TOGGLEGUIDES 1204 +#define ECMD_SIZETOTEXT 1205 +#define ECMD_CENTERVERT 1206 +#define ECMD_CENTERHORZ 1207 +#define ECMD_FLIPDIALOG 1208 +#define ECMD_SETTABORDER 1209 +#define ECMD_BUTTONRIGHT 1210 +#define ECMD_BUTTONBOTTOM 1211 +#define ECMD_AUTOLAYOUTGROW 1212 +#define ECMD_AUTOLAYOUTNORESIZE 1213 +#define ECMD_AUTOLAYOUTOPTIMIZE 1214 +#define ECMD_GUIDESETTINGS 1215 +#define ECMD_RESOURCEINCLUDES 1216 +#define ECMD_RESOURCESYMBOLS 1217 +#define ECMD_OPENBINARY 1218 +#define ECMD_RESOURCEOPEN 1219 +#define ECMD_RESOURCENEW 1220 +#define ECMD_RESOURCENEWCOPY 1221 +#define ECMD_INSERT 1222 +#define ECMD_EXPORT 1223 +#define ECMD_CTLMOVELEFT 1224 +#define ECMD_CTLMOVEDOWN 1225 +#define ECMD_CTLMOVERIGHT 1226 +#define ECMD_CTLMOVEUP 1227 +#define ECMD_CTLSIZEDOWN 1228 +#define ECMD_CTLSIZEUP 1229 +#define ECMD_CTLSIZELEFT 1230 +#define ECMD_CTLSIZERIGHT 1231 +#define ECMD_NEWACCELERATOR 1232 +#define ECMD_CAPTUREKEYSTROKE 1233 +#define ECMD_INSERTACTIVEXCTL 1234 +#define ECMD_INVERTCOLORS 1235 +#define ECMD_FLIPHORIZONTAL 1236 +#define ECMD_FLIPVERTICAL 1237 +#define ECMD_ROTATE90 1238 +#define ECMD_SHOWCOLORSWINDOW 1239 +#define ECMD_NEWSTRING 1240 +#define ECMD_NEWINFOBLOCK 1241 +#define ECMD_DELETEINFOBLOCK 1242 +#define ECMD_ADJUSTCOLORS 1243 +#define ECMD_LOADPALETTE 1244 +#define ECMD_SAVEPALETTE 1245 +#define ECMD_CHECKMNEMONICS 1246 +#define ECMD_DRAWOPAQUE 1247 +#define ECMD_TOOLBAREDITOR 1248 +#define ECMD_GRIDSETTINGS 1249 +#define ECMD_NEWDEVICEIMAGE 1250 +#define ECMD_OPENDEVICEIMAGE 1251 +#define ECMD_DELETEDEVICEIMAGE 1252 +#define ECMD_VIEWASPOPUP 1253 +#define ECMD_CHECKMENUMNEMONICS 1254 +#define ECMD_SHOWIMAGEGRID 1255 +#define ECMD_SHOWTILEGRID 1256 +#define ECMD_MAGNIFY 1257 +#define cmdidResProps 1258 +#define ECMD_IMPORTICONIMAGE 1259 +#define ECMD_EXPORTICONIMAGE 1260 +#define ECMD_OPENEXTERNALEDITOR 1261 + +// +// Shareable commands from the VC resource editor (Image editor toolbar) +// +#define ECMD_PICKRECTANGLE 1300 +#define ECMD_PICKREGION 1301 +#define ECMD_PICKCOLOR 1302 +#define ECMD_ERASERTOOL 1303 +#define ECMD_FILLTOOL 1304 +#define ECMD_PENCILTOOL 1305 +#define ECMD_BRUSHTOOL 1306 +#define ECMD_AIRBRUSHTOOL 1307 +#define ECMD_LINETOOL 1308 +#define ECMD_CURVETOOL 1309 +#define ECMD_TEXTTOOL 1310 +#define ECMD_RECTTOOL 1311 +#define ECMD_OUTLINERECTTOOL 1312 +#define ECMD_FILLEDRECTTOOL 1313 +#define ECMD_ROUNDRECTTOOL 1314 +#define ECMD_OUTLINEROUNDRECTTOOL 1315 +#define ECMD_FILLEDROUNDRECTTOOL 1316 +#define ECMD_ELLIPSETOOL 1317 +#define ECMD_OUTLINEELLIPSETOOL 1318 +#define ECMD_FILLEDELLIPSETOOL 1319 +#define ECMD_SETHOTSPOT 1320 +#define ECMD_ZOOMTOOL 1321 +#define ECMD_ZOOM1X 1322 +#define ECMD_ZOOM2X 1323 +#define ECMD_ZOOM6X 1324 +#define ECMD_ZOOM8X 1325 +#define ECMD_TRANSPARENTBCKGRND 1326 +#define ECMD_OPAQUEBCKGRND 1327 +//--------------------------------------------------- +// The commands ECMD_ERASERSMALL thru ECMD_LINELARGER +// must be left in the same order for the use of the +// Resource Editor - They may however be relocated as +// a complete block +//--------------------------------------------------- +#define ECMD_ERASERSMALL 1328 +#define ECMD_ERASERMEDIUM 1329 +#define ECMD_ERASERLARGE 1330 +#define ECMD_ERASERLARGER 1331 +#define ECMD_CIRCLELARGE 1332 +#define ECMD_CIRCLEMEDIUM 1333 +#define ECMD_CIRCLESMALL 1334 +#define ECMD_SQUARELARGE 1335 +#define ECMD_SQUAREMEDIUM 1336 +#define ECMD_SQUARESMALL 1337 +#define ECMD_LEFTDIAGLARGE 1338 +#define ECMD_LEFTDIAGMEDIUM 1339 +#define ECMD_LEFTDIAGSMALL 1340 +#define ECMD_RIGHTDIAGLARGE 1341 +#define ECMD_RIGHTDIAGMEDIUM 1342 +#define ECMD_RIGHTDIAGSMALL 1343 +#define ECMD_SPLASHSMALL 1344 +#define ECMD_SPLASHMEDIUM 1345 +#define ECMD_SPLASHLARGE 1346 +#define ECMD_LINESMALLER 1347 +#define ECMD_LINESMALL 1348 +#define ECMD_LINEMEDIUM 1349 +#define ECMD_LINELARGE 1350 +#define ECMD_LINELARGER 1351 +#define ECMD_LARGERBRUSH 1352 +#define ECMD_LARGEBRUSH 1353 +#define ECMD_STDBRUSH 1354 +#define ECMD_SMALLBRUSH 1355 +#define ECMD_SMALLERBRUSH 1356 +#define ECMD_ZOOMIN 1357 +#define ECMD_ZOOMOUT 1358 +#define ECMD_PREVCOLOR 1359 +#define ECMD_PREVECOLOR 1360 +#define ECMD_NEXTCOLOR 1361 +#define ECMD_NEXTECOLOR 1362 +#define ECMD_IMG_OPTIONS 1363 + +// +// Sharable Commands from Visual Web Developer (website projects) +// +#define ECMD_STARTWEBADMINTOOL 1400 +#define ECMD_NESTRELATEDFILES 1401 +#define ECMD_ADDCONFIGTRANSFORMS 1402 + +// +// Shareable commands from WINFORMS +// +#define ECMD_CANCELDRAG 1500 +#define ECMD_DEFAULTACTION 1501 +#define ECMD_CTLMOVEUPGRID 1502 +#define ECMD_CTLMOVEDOWNGRID 1503 +#define ECMD_CTLMOVELEFTGRID 1504 +#define ECMD_CTLMOVERIGHTGRID 1505 +#define ECMD_CTLSIZERIGHTGRID 1506 +#define ECMD_CTLSIZEUPGRID 1507 +#define ECMD_CTLSIZELEFTGRID 1508 +#define ECMD_CTLSIZEDOWNGRID 1509 +#define ECMD_NEXTCTL 1510 +#define ECMD_PREVCTL 1511 + +#define ECMD_RENAME 1550 +#define ECMD_EXTRACTMETHOD 1551 +#define ECMD_ENCAPSULATEFIELD 1552 +#define ECMD_EXTRACTINTERFACE 1553 +#define ECMD_REMOVEPARAMETERS 1555 +#define ECMD_REORDERPARAMETERS 1556 +#define ECMD_GENERATEMETHODSTUB 1557 +#define ECMD_IMPLEMENTINTERFACEIMPLICIT 1558 +#define ECMD_IMPLEMENTINTERFACEEXPLICIT 1559 +#define ECMD_IMPLEMENTABSTRACTCLASS 1560 +#define ECMD_SURROUNDWITH 1561 + +//--------------------------------------------------- +// Additional shell commands added to CMDSETID_StandardCommandSet2K +// because CLSID_StandardCommandSet97 is now considered closed. +//--------------------------------------------------- + + +#define cmdidToggleWordWrapOW 1600 + +#define cmdidGotoNextLocationOW 1601 +#define cmdidGotoPrevLocationOW 1602 + +#define cmdidBuildOnlyProject 1603 +#define cmdidRebuildOnlyProject 1604 +#define cmdidCleanOnlyProject 1605 + +#define cmdidSetBuildStartupsOnlyOnRun 1606 + +#define cmdidUnhideAll 1607 + +#define cmdidHideFolder 1608 +#define cmdidUnhideFolders 1609 + +#define cmdidCopyFullPathName 1610 + +#define cmdidSaveFolderAsSolution 1611 + +#define cmdidManageUserSettings 1612 + +#define cmdidNewSolutionFolder 1613 + +#define cmdidSetTrackSelInSlnExp 1614 //changed to match VS 2005 cmdid + +#define cmdidClearPaneOW 1615 +#define cmdidGotoErrorTagOW 1616 +#define cmdidGotoNextErrorTagOW 1617 +#define cmdidGotoPrevErrorTagOW 1618 + +#define cmdidClearPaneFR1 1619 +#define cmdidGotoErrorTagFR1 1620 +#define cmdidGotoNextErrorTagFR1 1621 +#define cmdidGotoPrevErrorTagFR1 1622 + +#define cmdidClearPaneFR2 1623 +#define cmdidGotoErrorTagFR2 1624 +#define cmdidGotoNextErrorTagFR2 1625 +#define cmdidGotoPrevErrorTagFR2 1626 + +// Output Window pane selection dropdown +#define cmdidOutputPaneCombo 1627 +#define cmdidOutputPaneComboList 1628 + +#define cmdidDisableDockingChanges 1629 +#define cmdidToggleFloat 1630 +#define cmdidResetLayout 1631 + +#define cmdidEditProjectFile 1632 + +#define cmdidOpenInFormView 1633 +#define cmdidOpenInCodeView 1634 + +#define cmdidExploreFolderInWindows 1635 + +#define cmdidEnableDPLSolution 1636 +#define cmdidDisableDPLSolution 1637 + +#define cmdidNewSolutionFolderBar 1638 + +#define cmdidDataShortcut 1639 + + + +// Tool window navigation +#define cmdidNextToolWindow 1640 +#define cmdidPrevToolWindow 1641 +#define cmdidBrowseToFileInExplorer 1642 +#define cmdidShowEzMDIFileMenu 1643 +#define cmdidNextToolWindowNav 1644 // command for NextToolWindow with navigator +#define cmdidPrevToolWindowNav 1645 + +// One Time build with static anlaysis for ProjOnly +#define cmdidStaticAnalysisOnlyProject 1646 + +//Run Code Analysis on Build Menu +#define ECMD_RUNFXCOPSEL 1647 +//Run Code Analysis on Context menu for the selected project +#define ECMD_RUNFXCOPPROJCTX 1648 + +#define cmdidCloseAllButThis 1650 + +// not real commands - used to define Class view and Object browser commands +#define SYM_TOOL_COMMAND_FIRST 1 + +#define cmdidSymToolShowInheritedMembers 1 +#define cmdidSymToolShowBaseTypes 2 +#define cmdidSymToolShowDerivedTypes 3 +#define cmdidSymToolShowHidden 4 +#define cmdidSymToolBack 5 +#define cmdidSymToolForward 6 +#define cmdidSymToolSearchCombo 7 +#define cmdidSymToolSearch 8 +#define cmdidSymToolSortObjectsAlpha 9 +#define cmdidSymToolSortObjectsType 10 +#define cmdidSymToolSortObjectsAccess 11 +#define cmdidSymToolGroupObjectsType 12 +#define cmdidSymToolSortMembersAlpha 13 +#define cmdidSymToolSortMembersType 14 +#define cmdidSymToolSortMembersAccess 15 +#define cmdidSymToolTypeBrowserSettings 16 +#define cmdidSymToolViewMembersAsImplementor 17 +#define cmdidSymToolViewMembersAsSubclass 18 +#define cmdidSymToolViewMembersAsUser 19 +#define cmdidSymToolNamespacesView 20 +#define cmdidSymToolContainersView 21 +#define cmdidSymToolShowProjectReferences 22 +#define cmdidSymToolGroupMembersType 23 +#define cmdidSymToolClearSearch 24 +#define cmdidSymToolFilterToType 25 +#define cmdidSymToolSortByBestMatch 26 +#define cmdidSymToolSearchMRUList 27 +#define cmdidSymToolViewOtherMembers 28 +#define cmdidSymToolSearchCmd 29 +#define cmdidSymToolGoToSearchCmd 30 +#define cmdidSymToolShowExtensionMembers 31 + +#define SYM_TOOL_COMMAND_LAST 31 + +//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +// the numbers from 1650 to 1699 are reserved for Class view specific commands +//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +#define CV_COMMANDS_BASE 1650 + +#define cmdidCVShowInheritedMembers 1651 //CV_COMMANDS_BASE + cmdidSymToolShowInheritedMembers +#define cmdidCVShowBaseTypes 1652 //CV_COMMANDS_BASE + cmdidSymToolShowBaseTypes +#define cmdidCVShowDerivedTypes 1653 //CV_COMMANDS_BASE + cmdidSymToolShowDerivedTypes +#define cmdidCVShowHidden 1654 //CV_COMMANDS_BASE + cmdidSymToolShowHidden +#define cmdidCVBack 1655 //CV_COMMANDS_BASE + cmdidSymToolBack +#define cmdidCVForward 1656 //CV_COMMANDS_BASE + cmdidSymToolForward +#define cmdidCVSearchCombo 1657 //CV_COMMANDS_BASE + cmdidSymToolSearchCombo +#define cmdidCVSearch 1658 //CV_COMMANDS_BASE + cmdidSymToolSearch +#define cmdidCVSortObjectsAlpha 1659 //CV_COMMANDS_BASE + cmdidSymToolSortObjectsAlpha +#define cmdidCVSortObjectsType 1660 //CV_COMMANDS_BASE + cmdidSymToolSortObjectsType +#define cmdidCVSortObjectsAccess 1661 //CV_COMMANDS_BASE + cmdidSymToolSortObjectsAccess +#define cmdidCVGroupObjectsType 1662 //CV_COMMANDS_BASE + cmdidSymToolGroupObjectsType +#define cmdidCVSortMembersAlpha 1663 //CV_COMMANDS_BASE + cmdidSymToolSortMembersAlpha +#define cmdidCVSortMembersType 1664 //CV_COMMANDS_BASE + cmdidSymToolSortMembersType +#define cmdidCVSortMembersAccess 1665 //CV_COMMANDS_BASE + cmdidSymToolSortMembersAccess +#define cmdidCVTypeBrowserSettings 1666 //CV_COMMANDS_BASE + cmdidSymToolTypeBrowserSettings +#define cmdidCVViewMembersAsImplementor 1667 //CV_COMMANDS_BASE + cmdidSymToolViewMembersAsImplementor +#define cmdidCVViewMembersAsSubclass 1668 //CV_COMMANDS_BASE + cmdidSymToolViewMembersAsSubclass +#define cmdidCVViewMembersAsUser 1669 //CV_COMMANDS_BASE + cmdidSymToolViewMembersAsUser +#define cmdidCVReserved1 1670 //CV_COMMANDS_BASE + cmdidSymToolNamespacesView +#define cmdidCVReserved2 1671 //CV_COMMANDS_BASE + cmdidSymToolContainersView +#define cmdidCVShowProjectReferences 1672 //CV_COMMANDS_BASE + cmdidSymToolShowProjectReferences +#define cmdidCVGroupMembersType 1673 //CV_COMMANDS_BASE + cmdidSymToolGroupMembersType +#define cmdidCVClearSearch 1674 //CV_COMMANDS_BASE + cmdidSymToolClearSearch +#define cmdidCVFilterToType 1675 //CV_COMMANDS_BASE + cmdidSymToolFilterToType +#define cmdidCVSortByBestMatch 1676 //CV_COMMANDS_BASE + cmdidSymToolSortByBestMatch +#define cmdidCVSearchMRUList 1677 //CV_COMMANDS_BASE + cmdidSymToolSearchMRUList +#define cmdidCVViewOtherMembers 1678 //CV_COMMANDS_BASE + cmdidSymToolViewOtherMembers +#define cmdidCVSearchCmd 1679 //CV_COMMANDS_BASE + cmdidSymToolSearchCmd +#define cmdidCVGoToSearchCmd 1680 //CV_COMMANDS_BASE + cmdidSymToolGoToSearchCmd + +#define cmdidCVUnused9 1681 // Reserved for future use +#define cmdidCVUnused10 1682 // Reserved for future use +#define cmdidCVUnused11 1683 // Reserved for future use +#define cmdidCVUnused12 1684 // Reserved for future use +#define cmdidCVUnused13 1685 // Reserved for future use +#define cmdidCVUnused14 1686 // Reserved for future use +#define cmdidCVUnused15 1687 // Reserved for future use +#define cmdidCVUnused16 1688 // Reserved for future use +#define cmdidCVUnused17 1689 // Reserved for future use +#define cmdidCVUnused18 1690 // Reserved for future use +#define cmdidCVUnused19 1691 // Reserved for future use +#define cmdidCVUnused20 1692 // Reserved for future use +#define cmdidCVUnused21 1693 // Reserved for future use +#define cmdidCVUnused22 1694 // Reserved for future use +#define cmdidCVUnused23 1695 // Reserved for future use +#define cmdidCVUnused24 1696 // Reserved for future use +#define cmdidCVUnused25 1697 // Reserved for future use +#define cmdidCVUnused26 1698 // Reserved for future use +#define cmdidCVUnused27 1699 // Reserved for future use + +//-------------------end of CV commands---------------------------------------------- + +#define cmdidControlGallery 1700 + +//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +// the numbers from 1710 to 1759 are reserved for Object Browser specific commands +//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +#define OB_COMMANDS_BASE 1710 + +#define cmdidOBShowInheritedMembers 1711 //OB_COMMANDS_BASE + cmdidSymToolShowInheritedMembers +#define cmdidOBShowBaseTypes 1712 //OB_COMMANDS_BASE + cmdidSymToolShowBaseTypes +#define cmdidOBShowDerivedTypes 1713 //OB_COMMANDS_BASE + cmdidSymToolShowDerivedTypes +#define cmdidOBShowHidden 1714 //OB_COMMANDS_BASE + cmdidSymToolShowHidden +#define cmdidOBBack 1715 //OB_COMMANDS_BASE + cmdidSymToolBack +#define cmdidOBForward 1716 //OB_COMMANDS_BASE + cmdidSymToolForward +#define cmdidOBSearchCombo 1717 //OB_COMMANDS_BASE + cmdidSymToolSearchCombo +#define cmdidOBSearch 1718 //OB_COMMANDS_BASE + cmdidSymToolSearch +#define cmdidOBSortObjectsAlpha 1719 //OB_COMMANDS_BASE + cmdidSymToolSortObjectsAlpha +#define cmdidOBSortObjectsType 1720 //OB_COMMANDS_BASE + cmdidSymToolSortObjectsType +#define cmdidOBSortObjectsAccess 1721 //OB_COMMANDS_BASE + cmdidSymToolSortObjectsAccess +#define cmdidOBGroupObjectsType 1722 //OB_COMMANDS_BASE + cmdidSymToolGroupObjectsType +#define cmdidOBSortMembersAlpha 1723 //OB_COMMANDS_BASE + cmdidSymToolSortMembersAlpha +#define cmdidOBSortMembersType 1724 //OB_COMMANDS_BASE + cmdidSymToolSortMembersType +#define cmdidOBSortMembersAccess 1725 //OB_COMMANDS_BASE + cmdidSymToolSortMembersAccess +#define cmdidOBTypeBrowserSettings 1726 //OB_COMMANDS_BASE + cmdidSymToolTypeBrowserSettings +#define cmdidOBViewMembersAsImplementor 1727 //OB_COMMANDS_BASE + cmdidSymToolViewMembersAsImplementor +#define cmdidOBViewMembersAsSubclass 1728 //OB_COMMANDS_BASE + cmdidSymToolViewMembersAsSubclass +#define cmdidOBViewMembersAsUser 1729 //OB_COMMANDS_BASE + cmdidSymToolViewMembersAsUser +#define cmdidOBNamespacesView 1730 //OB_COMMANDS_BASE + cmdidSymToolNamespacesView +#define cmdidOBContainersView 1731 //OB_COMMANDS_BASE + cmdidSymToolContainersView +#define cmdidOBReserved1 1732 //OB_COMMANDS_BASE + cmdidSymToolShowProjectReferences +#define cmdidOBGroupMembersType 1733 //OB_COMMANDS_BASE + cmdidSymToolGroupMembersType +#define cmdidOBClearSearch 1734 //OB_COMMANDS_BASE + cmdidSymToolClearSearch +#define cmdidOBFilterToType 1735 //OB_COMMANDS_BASE + cmdidSymToolFilterToType +#define cmdidOBSortByBestMatch 1736 //OB_COMMANDS_BASE + cmdidSymToolSortByBestMatch +#define cmdidOBSearchMRUList 1737 //OB_COMMANDS_BASE + cmdidSymToolSearchMRUList +#define cmdidOBViewOtherMembers 1738 //OB_COMMANDS_BASE + cmdidSymToolViewOtherMembers +#define cmdidOBSearchCmd 1739 //OB_COMMANDS_BASE + cmdidSymToolSearchCmd +#define cmdidOBGoToSearchCmd 1740 //OB_COMMANDS_BASE + cmdidSymToolGoToSearchCmd +#define cmdidOBShowExtensionMembers 1741 //OB_COMMANDS_BASE + cmdidSymToolShowExtensionMembers + +#define cmdidOBUnused10 1742 // Reserved for future use +#define cmdidOBUnused11 1743 // Reserved for future use +#define cmdidOBUnused12 1744 // Reserved for future use +#define cmdidOBUnused13 1745 // Reserved for future use +#define cmdidOBUnused14 1746 // Reserved for future use +#define cmdidOBUnused15 1747 // Reserved for future use +#define cmdidOBUnused16 1748 // Reserved for future use +#define cmdidOBUnused17 1749 // Reserved for future use +#define cmdidOBUnused18 1750 // Reserved for future use +#define cmdidOBUnused19 1751 // Reserved for future use +#define cmdidOBUnused20 1752 // Reserved for future use +#define cmdidOBUnused21 1753 // Reserved for future use +#define cmdidOBUnused22 1754 // Reserved for future use +#define cmdidOBUnused23 1755 // Reserved for future use +#define cmdidOBUnused24 1756 // Reserved for future use +#define cmdidOBUnused25 1757 // Reserved for future use +#define cmdidOBUnused26 1758 // Reserved for future use +#define cmdidOBUnused27 1759 // Reserved for future use + +//-------------------end of OB commands---------------------------------------------- + +#define cmdidFullScreen2 1775 + +// find symbol results sorting command +#define cmdidFSRSortObjectsAlpha 1776 +#define cmdidFSRSortByBestMatch 1777 + +#define cmdidNavigateBack 1800 +#define cmdidNavigateForward 1801 + +// Error correction commands (need to be consecutive) +#define ECMD_CORRECTION_1 1900 +#define ECMD_CORRECTION_2 1901 +#define ECMD_CORRECTION_3 1902 +#define ECMD_CORRECTION_4 1903 +#define ECMD_CORRECTION_5 1904 +#define ECMD_CORRECTION_6 1905 +#define ECMD_CORRECTION_7 1906 +#define ECMD_CORRECTION_8 1907 +#define ECMD_CORRECTION_9 1908 +#define ECMD_CORRECTION_10 1909 + +// Object Browser commands +#define cmdidOBAddReference 1914 + +// Edit.FindAllReferences +#define cmdidFindReferences 1915 + +// Code Definition View +#define cmdidCodeDefView 1926 +#define cmdidCodeDefViewGoToPrev 1927 +#define cmdidCodeDefViewGoToNext 1928 +#define cmdidCodeDefViewEditDefinition 1929 +#define cmdidCodeDefViewChooseEncoding 1930 + +// Class view +//#define cmdidCVShowProjectReferences 1930 +#define cmdidViewInClassDiagram 1931 + +// +// Shareable commands from VSDesigner +// +#define ECMD_ADDDBTABLE 1950 +#define ECMD_ADDDATATABLE 1951 +#define ECMD_ADDFUNCTION 1952 +#define ECMD_ADDRELATION 1953 +#define ECMD_ADDKEY 1954 +#define ECMD_ADDCOLUMN 1955 +#define ECMD_CONVERT_DBTABLE 1956 +#define ECMD_CONVERT_DATATABLE 1957 +#define ECMD_GENERATE_DATABASE 1958 +#define ECMD_CONFIGURE_CONNECTIONS 1959 +#define ECMD_IMPORT_XMLSCHEMA 1960 +#define ECMD_SYNC_WITH_DATABASE 1961 +#define ECMD_CONFIGURE 1962 +#define ECMD_CREATE_DATAFORM 1963 +#define ECMD_CREATE_ENUM 1964 +#define ECMD_INSERT_FUNCTION 1965 +#define ECMD_EDIT_FUNCTION 1966 +#define ECMD_SET_PRIMARY_KEY 1967 +#define ECMD_INSERT_COLUMN 1968 +#define ECMD_AUTO_SIZE 1969 +#define ECMD_SHOW_RELATION_LABELS 1970 + +#define cmdid_VSD_GenerateDataSet 1971 +#define cmdid_VSD_Preview 1972 +#define cmdid_VSD_ConfigureAdapter 1973 +#define cmdid_VSD_ViewDatasetSchema 1974 +#define cmdid_VSD_DatasetProperties 1975 +#define cmdid_VSD_ParameterizeForm 1976 +#define cmdid_VSD_AddChildForm 1977 + +#define ECMD_EDITCONSTRAINT 1978 +#define ECMD_DELETECONSTRAINT 1979 +#define ECMD_EDITDATARELATION 1980 + +#define cmdidCloseProject 1982 +#define cmdidReloadCommandBars 1983 + +#define cmdidSolutionPlatform 1990 +#define cmdidSolutionPlatformGetList 1991 + +// Initially used by DataSet Editor +#define ECMD_DATAACCESSOR 2000 +#define ECMD_ADD_DATAACCESSOR 2001 +#define ECMD_QUERY 2002 +#define ECMD_ADD_QUERY 2003 + +// Publish solution +#define ECMD_PUBLISHSELECTION 2005 +#define ECMD_PUBLISHSLNCTX 2006 +#define ECMD_MSDEPLOYPUBLISHSLNCTX 2007 + +// Call Browser +#define cmdidCallBrowserShowCallsTo 2010 +#define cmdidCallBrowserShowCallsFrom 2011 +#define cmdidCallBrowserShowNewCallsTo 2012 +#define cmdidCallBrowserShowNewCallsFrom 2013 + +#define cmdidCallBrowser1ShowCallsTo 2014 +#define cmdidCallBrowser2ShowCallsTo 2015 +#define cmdidCallBrowser3ShowCallsTo 2016 +#define cmdidCallBrowser4ShowCallsTo 2017 +#define cmdidCallBrowser5ShowCallsTo 2018 +#define cmdidCallBrowser6ShowCallsTo 2019 +#define cmdidCallBrowser7ShowCallsTo 2020 +#define cmdidCallBrowser8ShowCallsTo 2021 +#define cmdidCallBrowser9ShowCallsTo 2022 +#define cmdidCallBrowser10ShowCallsTo 2023 +#define cmdidCallBrowser11ShowCallsTo 2024 +#define cmdidCallBrowser12ShowCallsTo 2025 +#define cmdidCallBrowser13ShowCallsTo 2026 +#define cmdidCallBrowser14ShowCallsTo 2027 +#define cmdidCallBrowser15ShowCallsTo 2028 +#define cmdidCallBrowser16ShowCallsTo 2029 + +#define cmdidCallBrowser1ShowCallsFrom 2030 +#define cmdidCallBrowser2ShowCallsFrom 2031 +#define cmdidCallBrowser3ShowCallsFrom 2032 +#define cmdidCallBrowser4ShowCallsFrom 2033 +#define cmdidCallBrowser5ShowCallsFrom 2034 +#define cmdidCallBrowser6ShowCallsFrom 2035 +#define cmdidCallBrowser7ShowCallsFrom 2036 +#define cmdidCallBrowser8ShowCallsFrom 2037 +#define cmdidCallBrowser9ShowCallsFrom 2038 +#define cmdidCallBrowser10ShowCallsFrom 2039 +#define cmdidCallBrowser11ShowCallsFrom 2040 +#define cmdidCallBrowser12ShowCallsFrom 2041 +#define cmdidCallBrowser13ShowCallsFrom 2042 +#define cmdidCallBrowser14ShowCallsFrom 2043 +#define cmdidCallBrowser15ShowCallsFrom 2044 +#define cmdidCallBrowser16ShowCallsFrom 2045 + +#define cmdidCallBrowser1ShowFullNames 2046 +#define cmdidCallBrowser2ShowFullNames 2047 +#define cmdidCallBrowser3ShowFullNames 2048 +#define cmdidCallBrowser4ShowFullNames 2049 +#define cmdidCallBrowser5ShowFullNames 2050 +#define cmdidCallBrowser6ShowFullNames 2051 +#define cmdidCallBrowser7ShowFullNames 2052 +#define cmdidCallBrowser8ShowFullNames 2053 +#define cmdidCallBrowser9ShowFullNames 2054 +#define cmdidCallBrowser10ShowFullNames 2055 +#define cmdidCallBrowser11ShowFullNames 2056 +#define cmdidCallBrowser12ShowFullNames 2057 +#define cmdidCallBrowser13ShowFullNames 2058 +#define cmdidCallBrowser14ShowFullNames 2059 +#define cmdidCallBrowser15ShowFullNames 2060 +#define cmdidCallBrowser16ShowFullNames 2061 + +#define cmdidCallBrowser1Settings 2062 +#define cmdidCallBrowser2Settings 2063 +#define cmdidCallBrowser3Settings 2064 +#define cmdidCallBrowser4Settings 2065 +#define cmdidCallBrowser5Settings 2066 +#define cmdidCallBrowser6Settings 2067 +#define cmdidCallBrowser7Settings 2068 +#define cmdidCallBrowser8Settings 2069 +#define cmdidCallBrowser9Settings 2070 +#define cmdidCallBrowser10Settings 2071 +#define cmdidCallBrowser11Settings 2072 +#define cmdidCallBrowser12Settings 2073 +#define cmdidCallBrowser13Settings 2074 +#define cmdidCallBrowser14Settings 2075 +#define cmdidCallBrowser15Settings 2076 +#define cmdidCallBrowser16Settings 2077 + +#define cmdidCallBrowser1SortAlpha 2078 +#define cmdidCallBrowser2SortAlpha 2079 +#define cmdidCallBrowser3SortAlpha 2080 +#define cmdidCallBrowser4SortAlpha 2081 +#define cmdidCallBrowser5SortAlpha 2082 +#define cmdidCallBrowser6SortAlpha 2083 +#define cmdidCallBrowser7SortAlpha 2084 +#define cmdidCallBrowser8SortAlpha 2085 +#define cmdidCallBrowser9SortAlpha 2086 +#define cmdidCallBrowser10SortAlpha 2087 +#define cmdidCallBrowser11SortAlpha 2088 +#define cmdidCallBrowser12SortAlpha 2089 +#define cmdidCallBrowser13SortAlpha 2090 +#define cmdidCallBrowser14SortAlpha 2091 +#define cmdidCallBrowser15SortAlpha 2092 +#define cmdidCallBrowser16SortAlpha 2093 + +#define cmdidCallBrowser1SortAccess 2094 +#define cmdidCallBrowser2SortAccess 2095 +#define cmdidCallBrowser3SortAccess 2096 +#define cmdidCallBrowser4SortAccess 2097 +#define cmdidCallBrowser5SortAccess 2098 +#define cmdidCallBrowser6SortAccess 2099 +#define cmdidCallBrowser7SortAccess 2100 +#define cmdidCallBrowser8SortAccess 2101 +#define cmdidCallBrowser9SortAccess 2102 +#define cmdidCallBrowser10SortAccess 2103 +#define cmdidCallBrowser11SortAccess 2104 +#define cmdidCallBrowser12SortAccess 2105 +#define cmdidCallBrowser13SortAccess 2106 +#define cmdidCallBrowser14SortAccess 2107 +#define cmdidCallBrowser15SortAccess 2108 +#define cmdidCallBrowser16SortAccess 2109 + +#define cmdidCallBrowser1 2121 +#define cmdidCallBrowser2 2122 +#define cmdidCallBrowser3 2123 +#define cmdidCallBrowser4 2124 +#define cmdidCallBrowser5 2125 +#define cmdidCallBrowser6 2126 +#define cmdidCallBrowser7 2127 +#define cmdidCallBrowser8 2128 +#define cmdidCallBrowser9 2129 +#define cmdidCallBrowser10 2130 +#define cmdidCallBrowser11 2131 +#define cmdidCallBrowser12 2132 +#define cmdidCallBrowser13 2133 +#define cmdidCallBrowser14 2134 +#define cmdidCallBrowser15 2135 +#define cmdidCallBrowser16 2136 +#define cmdidCallBrowser17 2137 + +// Closed file undo +#define cmdidGlobalUndo 2138 +#define cmdidGlobalRedo 2139 + +// Call Browser Commands (No UI, Command window only). +#define cmdidCallBrowserShowCallsToCmd 2140 +#define cmdidCallBrowserShowCallsFromCmd 2141 +#define cmdidCallBrowserShowNewCallsToCmd 2142 +#define cmdidCallBrowserShowNewCallsFromCmd 2143 + +#define cmdidCallBrowser1Search 2145 +#define cmdidCallBrowser2Search 2146 +#define cmdidCallBrowser3Search 2147 +#define cmdidCallBrowser4Search 2148 +#define cmdidCallBrowser5Search 2149 +#define cmdidCallBrowser6Search 2150 +#define cmdidCallBrowser7Search 2151 +#define cmdidCallBrowser8Search 2152 +#define cmdidCallBrowser9Search 2153 +#define cmdidCallBrowser10Search 2154 +#define cmdidCallBrowser11Search 2155 +#define cmdidCallBrowser12Search 2156 +#define cmdidCallBrowser13Search 2157 +#define cmdidCallBrowser14Search 2158 +#define cmdidCallBrowser15Search 2159 +#define cmdidCallBrowser16Search 2160 + +#define cmdidCallBrowser1Refresh 2161 +#define cmdidCallBrowser2Refresh 2162 +#define cmdidCallBrowser3Refresh 2163 +#define cmdidCallBrowser4Refresh 2164 +#define cmdidCallBrowser5Refresh 2165 +#define cmdidCallBrowser6Refresh 2166 +#define cmdidCallBrowser7Refresh 2167 +#define cmdidCallBrowser8Refresh 2168 +#define cmdidCallBrowser9Refresh 2169 +#define cmdidCallBrowser10Refresh 2170 +#define cmdidCallBrowser11Refresh 2171 +#define cmdidCallBrowser12Refresh 2172 +#define cmdidCallBrowser13Refresh 2173 +#define cmdidCallBrowser14Refresh 2174 +#define cmdidCallBrowser15Refresh 2175 +#define cmdidCallBrowser16Refresh 2176 + +#define cmdidCallBrowser1SearchCombo 2180 +#define cmdidCallBrowser2SearchCombo 2181 +#define cmdidCallBrowser3SearchCombo 2182 +#define cmdidCallBrowser4SearchCombo 2183 +#define cmdidCallBrowser5SearchCombo 2184 +#define cmdidCallBrowser6SearchCombo 2185 +#define cmdidCallBrowser7SearchCombo 2186 +#define cmdidCallBrowser8SearchCombo 2187 +#define cmdidCallBrowser9SearchCombo 2188 +#define cmdidCallBrowser10SearchCombo 2189 +#define cmdidCallBrowser11SearchCombo 2190 +#define cmdidCallBrowser12SearchCombo 2191 +#define cmdidCallBrowser13SearchCombo 2192 +#define cmdidCallBrowser14SearchCombo 2193 +#define cmdidCallBrowser15SearchCombo 2194 +#define cmdidCallBrowser16SearchCombo 2195 + +// Callbrowser SearchComboList commands start with 2215 + +// Task List + +#define cmdidTaskListProviderCombo 2200 +#define cmdidTaskListProviderComboList 2201 + +// User Task toolbar commands +#define cmdidCreateUserTask 2202 + +// Error List + +// Error List toolbar commands +#define cmdidErrorListShowErrors 2210 +#define cmdidErrorListShowWarnings 2211 +#define cmdidErrorListShowMessages 2212 + +// Product activation (registration) +#define cmdidRegistration 2214 + + +// Callbrowser SearchComboList commands +#define cmdidCallBrowser1SearchComboList 2215 +#define cmdidCallBrowser2SearchComboList 2216 +#define cmdidCallBrowser3SearchComboList 2217 +#define cmdidCallBrowser4SearchComboList 2218 +#define cmdidCallBrowser5SearchComboList 2219 +#define cmdidCallBrowser6SearchComboList 2220 +#define cmdidCallBrowser7SearchComboList 2221 +#define cmdidCallBrowser8SearchComboList 2222 +#define cmdidCallBrowser9SearchComboList 2223 +#define cmdidCallBrowser10SearchComboList 2224 +#define cmdidCallBrowser11SearchComboList 2225 +#define cmdidCallBrowser12SearchComboList 2226 +#define cmdidCallBrowser13SearchComboList 2227 +#define cmdidCallBrowser14SearchComboList 2228 +#define cmdidCallBrowser15SearchComboList 2229 +#define cmdidCallBrowser16SearchComboList 2230 + + +//Snippet window buttons +#define cmdidSnippetProp 2240 +#define cmdidSnippetRef 2241 +#define cmdidSnippetRepl 2242 + +//Start Page Command: +#define cmdidStartPage 2245 + +// More editor commands +#define cmdidEditorLineFirstColumn 2250 +#define cmdidEditorLineFirstColumnExtend 2251 + +// Server Explorer Menu commands +#define cmdid_SE_ServerExplorer 2260 +#define cmdid_SE_DataExplorer 2261 + +// Commands for Floating, Docking and Hiding documents +#define cmdidDocumentFloat 2270 + +// Call hierarchy +#define cmdidContextMenuViewCallHierarchy 2301 + +#define cmdidToggleConsumeFirstMode 2303 + +// Highlight References commands +#define cmdidNextHighlightedReference 2400 +#define cmdidPreviousHighlightedReference 2401 + +// +// Shareable commands from the VC resource editor (Ribbon editor toolbar) +// +#define ECMD_TESTRIBBON 2504 +#define ECMD_RIBBON_VM 2505 +#define ECMD_RIBBON_VM_GET_LIST 2506 +#define ECMD_RIBBON_ITEMS 2507 +#define ECMD_RIBBON_BUTTONS 2508 + +// Regexp expression builder new commands +#define cmdidWordChar 2509 +#define cmdidCharInRange 2510 +#define cmdidOneAndZeroOrOne 2511 +#define cmdidOneAndZeroOrMore 2512 +#define cmdidOneAndOneOrMore 2513 +#define cmdidQuantifier 2514 +#define cmdidBackreference 2515 +#define cmdidNamedBackreference 2516 + +#define cmdidTaggedExp 2517 +#define cmdidNamedTaggedExp 2518 +#define cmdidDollarSubstitute 2519 +#define cmdidWholeMatch 2520 +#define cmdidLastTaggedExp 2521 +#define cmdidSpaceOrTabMap 2522 +#define cmdidNumericCharacterMap 2523 +#define cmdidCPPIdentifierMap 2524 +#define cmdidQuotedStringMap 2525 +#define cmdidHexadecimalNumberMap 2526 +#define cmdidIntegersDecimalsMap 2527 + +#define cmdidBuildFullPDB 2528 +#define cmdidBuildFullPDBSolution 2529 + +////////////////////////////////////////////////////////////////// +// +// The following commands form CMDSETID_StandardCommandSet10. +// NOTE that all these commands are shareable and may be used +// in any appropriate menu. +// +////////////////////////////////////////////////////////////////// + + +//The command that returns all shell toolbars sorted lexographically by their text +// +// NOTE: The range between cmdidDynamicToolBarListFirst and cmdidDynamicToolBarListLast is reserved +// for the dynamic toolbar list. Do not use command IDs in this range. +#define cmdidDynamicToolBarListFirst 1 +#define cmdidDynamicToolBarListLast 300 + +// Command for dropping window frame docking menu +#define cmdidWindowFrameDockMenu 500 + +// Commands for going to the next/previous tab in the document well +#define cmdidDocumentTabNext 600 +#define cmdidDocumentTabPrevious 601 + + +////////////////////////////////////////////////////////////////// +// +// Command ids for navigate backward submenus. These replaces cmdidShellNavigate* commands +// +// There must be 33 ids between each one since these are dynamic start items and each one +// can have up to 32 items. +// +////////////////////////////////////////////////////////////////// + +#define cmdidShellNavigate1First 1000 +#define cmdidShellNavigate2First 1033 +#define cmdidShellNavigate3First 1066 +#define cmdidShellNavigate4First 1099 +#define cmdidShellNavigate5First 1132 +#define cmdidShellNavigate6First 1165 +#define cmdidShellNavigate7First 1198 +#define cmdidShellNavigate8First 1231 +#define cmdidShellNavigate9First 1264 +#define cmdidShellNavigate10First 1297 +#define cmdidShellNavigate11First 1330 +#define cmdidShellNavigate12First 1363 +#define cmdidShellNavigate13First 1396 +#define cmdidShellNavigate14First 1429 +#define cmdidShellNavigate15First 1462 +#define cmdidShellNavigate16First 1495 +#define cmdidShellNavigate17First 1528 +#define cmdidShellNavigate18First 1561 +#define cmdidShellNavigate19First 1594 +#define cmdidShellNavigate20First 1627 +#define cmdidShellNavigate21First 1660 +#define cmdidShellNavigate22First 1693 +#define cmdidShellNavigate23First 1726 +#define cmdidShellNavigate24First 1759 +#define cmdidShellNavigate25First 1792 +#define cmdidShellNavigate26First 1825 +#define cmdidShellNavigate27First 1858 +#define cmdidShellNavigate28First 1891 +#define cmdidShellNavigate29First 1924 +#define cmdidShellNavigate30First 1957 +#define cmdidShellNavigate31First 1990 +#define cmdidShellNavigate32First 2023 +#define cmdidShellNavigateLast 2055 // last command in this series + +// Command ID for ForceGC +#define cmdidShellForceGC 2090 + +// +// Command ids for global zoom operations +// +#define cmdidViewZoomIn 2100 +#define cmdidViewZoomOut 2101 + +// More outlining commands +#define ECMD_OUTLN_EXPAND_ALL 2500 +#define ECMD_OUTLN_COLLAPSE_ALL 2501 +#define ECMD_OUTLN_EXPAND_CURRENT 2502 +#define ECMD_OUTLN_COLLAPSE_CURRENT 2503 + +// Command ID for Extension Manager command +#define cmdidExtensionManager 3000 + + +////////////////////////////////////////////////////////////////// +// +// End CMDSETID_StandardCommandSet10 commands. +// +////////////////////////////////////////////////////////////////// + + + +////////////////////////////////////////////////////////////////// +// +// The following commands form CMDSETID_StandardCommandSet11. +// NOTE that all these commands are shareable and may be used +// in any appropriate menu. +// +////////////////////////////////////////////////////////////////// + +// Commands for document management +#define cmdidFloatAll 1 +#define cmdidMoveAllToNext 2 +#define cmdidMoveAllToPrevious 3 +#define cmdidMultiSelect 4 +#define cmdidPaneNextTabAndMultiSelect 5 +#define cmdidPanePrevTabAndMultiSelect 6 +#define cmdidPinTab 7 +#define cmdidBringFloatingWindowsToFront 8 +#define cmdidPromoteTab 9 +#define cmdidMoveToMainTabWell 10 + +//Commands for error/task list filtering +#define cmdidToggleFilter 11 +#define cmdidFilterToCurrentProject 12 +#define cmdidFilterToCurrentDocument 13 +#define cmdidFilterToOpenDocuments 14 + +//15-16 range reserved for cmdidHelpSelectPreference commands + +//Commands for activating the search controls +#define cmdidWindowSearch 17 +#define cmdidGlobalSearch 18 +#define cmdidGlobalSearchBack 19 +#define cmdidSolutionExplorerSearch 20 +#define cmdidStartupProjectProperties 21 + +#define cmdidCloseAllButPinned 22 + +#define cmdidResolveFaultedProjects 23 + +//Commands for Interactive scripting (F#/Roslyn) +#define cmdidExecuteSelectionInInteractive 24 +#define cmdidExecuteLineInInteractive 25 +#define cmdidInteractiveSessionInterrupt 26 +#define cmdidInteractiveSessionRestart 27 + +//unused 28 +#define cmdidSolutionExplorerCollapseAll 29 +#define cmdidSolutionExplorerBack 30 +#define cmdidSolutionExplorerHome 31 +// unused 32 +#define cmdidSolutionExplorerForward 33 +#define cmdidSolutionExplorerNewScopedWindow 34 +#define cmdidSolutionExplorerToggleSingleClickPreview 35 +#define cmdidSolutionExplorerSyncWithActiveDocument 36 + +#define cmdidNewProjectFromTemplate 37 + +#define cmdidSolutionExplorerScopeToThis 38 +#define cmdidSolutionExplorerFilterOpened 39 +#define cmdidSolutionExplorerFilterPendingChanges 40 + +#define cmdidPasteAsLink 41 + +// Used by the find manager to locate find targets +#define cmdidLocateFindTarget 42 + +////////////////////////////////////////////////////////////////// +// +// End CMDSETID_StandardCommandSet11 commands. +// +////////////////////////////////////////////////////////////////// + + +////////////////////////////////////////////////////////////////// +// +// The following commands form CMDSETID_StandardCommandSet12. +// NOTE that all these commands are shareable and may be used +// in any appropriate menu. +// +////////////////////////////////////////////////////////////////// + +#define cmdidShowUserNotificationsToolWindow 1 +#define cmdidOpenProjectFromScc 2 +#define cmdidShareProject 3 +#define cmdidPeekDefinition 4 +#define cmdidAccountSettings 5 +#define cmdidPeekNavigateForward 6 +#define cmdidPeekNavigateBackward 7 +#define cmdidRetargetProject 8 +#define cmdidRetargetProjectInstallComponent 9 +#define cmdidAddReferenceProjectOnly 10 +#define cmdidAddWebReferenceProjectOnly 11 +#define cmdidAddServiceReferenceProjectOnly 12 +#define cmdidAddReferenceNonProjectOnly 13 +#define cmdidAddWebReferenceNonProjectOnly 14 +#define cmdidAddServiceReferenceNonProjectOnly 15 + +// Do not change the NavigateTo values (they were set to match when switching from a private to public release to prevent breaks) +#define cmdidNavigateTo 256 + +#define cmdidMoveSelLinesUp 258 +#define cmdidMoveSelLinesDown 259 +/* Add cmdid values in the 1-256 range first*/ + +////////////////////////////////////////////////////////////////// +// +// End CMDSETID_StandardCommandSet12 commands. +// +////////////////////////////////////////////////////////////////// + + +////////////////////////////////////////////////////////////////// +// +// The following commands form CMDSETID_StandardCommandSet14. +// NOTE that all these commands are shareable and may be used +// in any appropriate menu. +// +////////////////////////////////////////////////////////////////// + +#define cmdidShowQuickFixes 1 +#define cmdidShowRefactorings 2 +#define cmdidSmartBreakLine 3 +#define cmdidManageLayouts 4 +#define cmdidSaveLayout 5 +#define cmdidShowQuickFixesForPosition 6 +#define cmdidShowQuickFixesForPosition2 7 + +// Delete toolbar button commands for Find Results (FR) 1 & 2 tool windows +#define cmdidDeleteFR1 10 +#define cmdidDeleteFR2 20 + +#define cmdidErrorContextComboList 30 +#define cmdidErrorContextComboGetList 31 + +#define cmdidErrorBuildContextComboList 40 +#define cmdidErrorBuildContextComboGetList 41 + +#define cmdidErrorListClearFilters 50 + +// The values 0x1000 to 0x1FFF are reserved for the Apply Window Layout's list +// The first 9 commands are explicitly defined so they can be assigned key bindings +#define cmdidWindowLayoutList0 0x1000 +#define cmdidWindowLayoutList1 0x1001 +#define cmdidWindowLayoutList2 0x1002 +#define cmdidWindowLayoutList3 0x1003 +#define cmdidWindowLayoutList4 0x1004 +#define cmdidWindowLayoutList5 0x1005 +#define cmdidWindowLayoutList6 0x1006 +#define cmdidWindowLayoutList7 0x1007 +#define cmdidWindowLayoutList8 0x1008 +#define cmdidWindowLayoutList9 0x1009 +#define cmdidWindowLayoutListFirst cmdidWindowLayoutList0 +#define cmdidWindowLayoutListDynamicFirst 0x1010 +#define cmdidWindowLayoutListLast 0x1FFF + +////////////////////////////////////////////////////////////////// +// +// End CMDSETID_StandardCommandSet14 commands. +// +////////////////////////////////////////////////////////////////// + + +////////////////////////////////////////////////////////////////// +// +// The following commands form CMDSETID_StandardCommandSet15. +// NOTE that all these commands are shareable and may be used +// in any appropriate menu. +// +////////////////////////////////////////////////////////////////// + +#define cmdidNavigateToFile 1 +#define cmdidNavigateToType 2 +#define cmdidNavigateToSymbol 3 +#define cmdidNavigateToMember 4 +// Please start after 25 or after to reserve a few for filtered NavigateTo commands. + +// Find All References preset groupings +#define cmdidFindAllRefPresetGroupingComboList 0x2A +#define cmdidFindAllRefPresetGroupingComboGetList 0x2B +#define cmdidFindAllRefLockWindow 0x2C + +#define cmdidGetToolsAndFeatures 0x3C + +#define cmdidShowLineAnnotations 0x4C +#define cmdidMoveToNextAnnotation 0x4D +#define cmdidMoveToPreviousAnnotation 0x4E + +#define cmdidShowStructure 0x4F + +#define cmdidHelpAccessibility 0x70 + +////////////////////////////////////////////////////////////////// +// +// End CMDSETID_StandardCommandSet15 commands. +// +////////////////////////////////////////////////////////////////// + + +////////////////////////////////////////////////////////////////// +// +// The following commands form guidDataCmdId. +// NOTE that all these commands are shareable and may be used +// in any appropriate menu. +// +////////////////////////////////////////////////////////////////// +#define icmdDesign 0x3000 // design command for project items +#define icmdDesignOn 0x3001 // design on... command for project items + +#define icmdSEDesign 0x3003 // design command for the SE side +#define icmdNewDiagram 0x3004 +#define icmdNewTable 0x3006 + +#define icmdNewDBItem 0x300E +#define icmdNewTrigger 0x3010 + +#define icmdDebug 0x3012 +#define icmdNewProcedure 0x3013 +#define icmdNewQuery 0x3014 +#define icmdRefreshLocal 0x3015 + +#define icmdDbAddDataConnection 0x3017 +#define icmdDBDefDBRef 0x3018 +#define icmdRunCmd 0x3019 +#define icmdRunOn 0x301A +#define icmdidNewDBRef 0x301B +#define icmdidSetAsDef 0x301C +#define icmdidCreateCmdFile 0x301D +#define icmdCancel 0x301E + +#define icmdNewDatabase 0x3020 +#define icmdNewUser 0x3021 +#define icmdNewRole 0x3022 +#define icmdChangeLogin 0x3023 +#define icmdNewView 0x3024 +#define icmdModifyConnection 0x3025 +#define icmdDisconnect 0x3026 +#define icmdCopyScript 0x3027 +#define icmdAddSCC 0x3028 +#define icmdRemoveSCC 0x3029 +#define icmdGetLatest 0x3030 +#define icmdCheckOut 0x3031 +#define icmdCheckIn 0x3032 +#define icmdUndoCheckOut 0x3033 +#define icmdAddItemSCC 0x3034 +#define icmdNewPackageSpec 0x3035 +#define icmdNewPackageBody 0x3036 +#define icmdInsertSQL 0x3037 +#define icmdRunSelection 0x3038 +#define icmdUpdateScript 0x3039 +#define icmdCreateScript 0x303A // to be used by db project side +#define icmdSECreateScript 0x303B // to be used by SE side as opposed to db project side +#define icmdNewScript 0x303C +#define icmdNewFunction 0x303D +#define icmdNewTableFunction 0x303E +#define icmdNewInlineFunction 0x303F + +#define icmdAddDiagram 0x3040 +#define icmdAddTable 0x3041 +#define icmdAddSynonym 0x3042 +#define icmdAddView 0x3043 +#define icmdAddProcedure 0x3044 +#define icmdAddFunction 0x3045 +#define icmdAddTableFunction 0x3046 +#define icmdAddInlineFunction 0x3047 +#define icmdAddPkgSpec 0x3048 +#define icmdAddPkgBody 0x3049 +#define icmdAddTrigger 0x304A +#define icmdExportData 0x304B + +#define icmdDbnsVcsAdd 0x304C +#define icmdDbnsVcsRemove 0x304D +#define icmdDbnsVcsCheckout 0x304E +#define icmdDbnsVcsUndoCheckout 0x304F +#define icmdDbnsVcsCheckin 0x3050 + +#define icmdSERetrieveData 0x3060 +#define icmdSEEditTextObject 0x3061 +#define icmdSERun 0x3062 // to be used by SE side as opposed to db project side +#define icmdSERunSelection 0x3063 // to be used by SE side as opposed to db project side +#define icmdDesignSQLBlock 0x3064 + +#define icmdRegisterSQLInstance 0x3065 +#define icmdUnregisterSQLInstance 0x3066 + +///////////////////////////////////////////////////////// +// +// Command Windows submenu commands 0x31xx +// +// + +// It would be nice to make the 3 commands below +// group with the new related commands in VS 2005 +// but there are hard coded references to the original +// values above. +// Modifying the values above to those below +// would require changes to those references +// (in src\vsdesigner\..., and elsewhere) +// #define cmdidCommandWindow 0x3100 +// #define cmdidCommandWindowMarkMode 0x3101 +// #define cmdidLogCommandWindow 0x3102 +#define cmdidCommandWindowSaveScript 0x3106 +#define cmdidCommandWindowRunScript 0x3107 +#define cmdidCommandWindowCursorUp 0x3108 +#define cmdidCommandWindowCursorDown 0x3109 +#define cmdidCommandWindowCursorLeft 0x310A +#define cmdidCommandWindowCursorRight 0x310B +#define cmdidCommandWindowHistoryUp 0x310C +#define cmdidCommandWindowHistoryDown 0x310D + + +// Command ids reserved for data driven implementation of data explorer. +// used under guidDataCmdId + + +// from datamenu.h +#define icmdidCmdDTStart 0x3500 +#define icmdidCmdHeirarchyView0 0x3610 +#define icmdidCmdHeirarchyView1 0x3611 +#define icmdidCmdHeirarchyView2 0x3612 +#define icmdidCmdHeirarchyView3 0x3613 +#define icmdidCmdHeirarchyView4 0x3614 +#define icmdidCmdHeirarchyView5 0x3615 +#define icmdidCmdHeirarchyView6 0x3616 +#define icmdidCmdHeirarchyView7 0x3617 +#define icmdidCmdHeirarchyView8 0x3618 + +#define icmdidCmdModify 0x3620 +#define icmdidCmdClose 0x3621 +#define icmdidCmdDTLast 0x36FF + + + + +// end of Command Windows submenu commands + + +////////////////////////////////////////////////////////////////// +// +// The following commands form guidDavDataCmdId. +// NOTE that all these commands are shareable and may be used +// in any appropriate menu. +// +////////////////////////////////////////////////////////////////// +#define cmdidAddRelatedTables 0x0001 +#define cmdidLayoutDiagram 0x0002 +#define cmdidLayoutSelection 0x0003 +#define cmdidInsertColumn 0x0004 +#define cmdidDeleteColumn 0x0005 +#define cmdidNewTextAnnotation 0x0006 +#define cmdidShowRelLabels 0x0007 +#define cmdidViewPageBreaks 0x0008 +#define cmdidRecalcPageBreaks 0x0009 +#define cmdidViewUserDefined 0x000a +#define cmdidGenerateQuery 0x000b +#define cmdidDeleteFromDB 0x000c +#define cmdidAutoSize 0x000d +#define cmdidEditViewUserDefined 0x000e +#define cmdidSetAnnotationFont 0x000f +#define cmdidZoomPercent200 0x0010 +#define cmdidZoomPercent150 0x0011 +#define cmdidZoomPercent100 0x0012 +#define cmdidZoomPercent75 0x0013 +#define cmdidZoomPercent50 0x0014 +#define cmdidZoomPercent25 0x0015 +#define cmdidZoomPercent10 0x0016 +#define cmdidZoomPercentSelection 0x0017 +#define cmdidZoomPercentFit 0x0018 +#define cmdidInsertQBERow 0x0019 +#define cmdidInsertCriteria 0x0020 +#define cmdidAddTableView 0x0021 +#define cmdidManageTriggers 0x0022 +#define cmdidManagePermissions 0x0023 +#define cmdidViewDependencies 0x0024 +#define cmdidGenerateSQLScript 0x0025 +#define cmdidVerifySQLSilent 0x0026 +#define cmdidAddTableViewForQRY 0x0027 +#define cmdidManageIndexesForQRY 0x0028 +#define cmdidViewFieldListQry 0x0029 +#define cmdidViewCollapsedQry 0x002a +#define cmdidCopyDiagram 0x002b +#define cmdidRemoveFromDiagram 0x0033 +// defined in davmenu.h +// cmdidQryAddCTEBasic 0x002c +// cmdidQryAddCTERecursive 0x002d +// cmdidQryAddCTEMerged 0x002e +// cmdidQryAddDerivedTable 0x002f +// cmdidQryNavigate 0x0030 +// cmdidQryClear 0x0031 +// cmdidQryMerge 0x0032 + +// Emacs editor emulator commands. They are in their +// own group, guidEmacsCommandGroup, so they won't clash +#define cmdidEmacsCharLeft 1 +#define cmdidEmacsCharRight 2 +#define cmdidEmacsLineUp 3 +#define cmdidEmacsLineDown 4 +#define cmdidEmacsLineEnd 5 +#define cmdidEmacsHome 6 +#define cmdidEmacsEnd 7 +#define cmdidEmacsDocumentStart 8 +#define cmdidEmacsWordLeft 9 +#define cmdidEmacsWordRight 10 +#define cmdidEmacsGoto 11 +#define cmdidEmacsWindowScrollUp 12 +#define cmdidEmacsWindowScrollDown 13 +#define cmdidEmacsWindowScrollToCenter 14 +#define cmdidEmacsWindowStart 15 +#define cmdidEmacsWindowEnd 16 +#define cmdidEmacsWindowLineToTop 17 +#define cmdidEmacsWindowSplitVertical 18 +#define cmdidEmacsWindowOther 19 +#define cmdidEmacsWindowCloseOther 20 +#define cmdidEmacsReturn 21 +#define cmdidEmacsReturnAndIndent 22 +#define cmdidEmacsLineOpen 23 +#define cmdidEmacsCharTranspose 24 +#define cmdidEmacsWordTranspose 25 +//#define cmdidEmacsBackspaceUntabify 26 +//#define cmdidEmacsBackspace 27 +//#define cmdidEmacsDelete 28 +#define cmdidEmacsWordUpperCase 29 +#define cmdidEmacsWordLowerCase 30 +#define cmdidEmacsWordCapitalize 31 +#define cmdidEmacsWordDeleteToEnd 32 +#define cmdidEmacsWordDeleteToStart 33 +#define cmdidEmacsLineCut 34 +//#define cmdidEmacsCutSelection 35 +//#define cmdidEmacsPaste 36 +#define cmdidEmacsPasteRotate 37 +//#define cmdidEmacsCopySelection 38 +#define cmdidEmacsSetMark 39 +#define cmdidEmacsPopMark 40 +#define cmdidEmacsSwapPointAndMark 41 +#define cmdidEmacsDeleteSelection 42 +#define cmdidEmacsFileOpen 43 +#define cmdidEmacsFileSave 44 +#define cmdidEmacsFileSaveAs 45 +#define cmdidEmacsFileSaveSome 46 +#define cmdidEmacsSearchIncremental 47 +#define cmdidEmacsSearchIncrementalBack 48 +#define cmdidEmacsFindReplace 49 +//#define cmdidEmacsUndo 50 +#define cmdidEmacsQuit 51 +#define cmdidEmacsUniversalArgument 52 +#define cmdidEmacsExtendedCommand 53 +#define cmdidEmacsStartKbdMacro 54 +#define cmdidEmacsEndKbdMacro 55 +#define cmdidEmacsExecuteKbdMacro 56 +//#define cmdidEmacsIndentLine 57 +#define cmdidEmacsQuotedInsert 58 +#define cmdidEmacsActivateRegion 59 + +// Brief editor emulator commands. They are in their +// own group, guidBriefCommandGroup, so they won't clash +//#define cmdidBriefCharLeft 1 +//#define cmdidBriefCharRight 2 +//#define cmdidBriefLineUp 3 +//#define cmdidBriefLineDown 4 +#define cmdidBriefSelectColumn 5 +#define cmdidBriefLineIndent 7 +#define cmdidBriefBookmarks 8 +#define cmdidBriefSelectLine 9 +//#define cmdidBriefSelectionLowercase 10 +#define cmdidBriefSelectChar 11 +#define cmdidBriefSelectCharInclusive 12 +#define cmdidBriefLineUnindent 13 +#define cmdidBriefFilePrint 14 +#define cmdidBriefSelectSwapAnchor 15 +//#define cmdidBriefSelectionUppercase 16 +//#define cmdidBriefFileClose 17 +//#define cmdidBriefFileOpen +//#define cmdidBriefWindowNext 18 +//#define cmdidBriefWindowPrevious 19 +#define cmdidBriefInsertFile 20 +//#define cmdidBriefHome 21 +//#define cmdidBriefDocumentEnd 22 +//#define cmdidBriefEnd 23 +//#define cmdidBriefWindowEnd 24 +#define cmdidBriefGoTo 25 +#define cmdidBriefWindowLeftEdge 26 +#define cmdidBriefWordRight 27 +//#define cmdidBriefPageDown 28 +//#define cmdidBriefPageUp 29 +#define cmdidBriefWordLeft 30 +#define cmdidBriefWindowRightEdge 31 +#define cmdidBriefWindowScrollUp 32 +#define cmdidBriefWindowScrollDown 33 +#define cmdidBriefWindowStart 34 +#define cmdidBriefLineDelete 35 +#define cmdidBriefWordDeleteToEnd 36 +#define cmdidBriefWordDeleteToStart 37 +#define cmdidBriefLineDeleteToStart 38 +#define cmdidBriefLineDeleteToEnd 39 +//#define cmdidBriefToggleOvertype 40 +#define cmdidBriefLineOpenBelow 41 +#define cmdidBriefInsertQuoted 42 +#define cmdidBriefFileExit 43 +#define cmdidBriefFileSave 44 +#define cmdidBriefFileSaveAllExit 45 +//#define cmdidBriefCopy 46 +//#define cmdidBriefCut 47 +//#define cmdidBriefPaste 48 +#define cmdidBriefFindToggleCaseSensitivity 49 +#define cmdidBriefSearchIncremental 50 +#define cmdidBriefFindToggleRegExpr 51 +#define cmdidBriefFindRepeat 52 +#define cmdidBriefFindPrev 53 +#define cmdidBriefFind 54 +#define cmdidBriefFindReplace 55 +#define cmdidBriefBrowse 56 +#define cmdidBriefGoToNextErrorTag 57 +#define cmdidBriefSetRepeatCount 58 +//#define cmdidBriefUndo 59 +//#define cmdidBriefRedo 60 +#define cmdidBriefWindowScrollToCenter 61 +#define cmdidBriefWindowSwitchPane 62 +#define cmdidBriefWindowSplit 63 +//#define cmdidBriefWindowDelete 64 +#define cmdidBriefWindowScrollToBottom 65 +#define cmdidBriefWindowScrollToTop 66 +#define cmdidBriefWindowMaximize 67 +#define cmdidBriefBackspace 68 +//#define cmdidBriefDelete 69 +#define cmdidBriefReturn 70 +#define cmdidBriefEscape 71 +#define cmdidBriefBookmarkDrop0 72 +#define cmdidBriefBookmarkDrop1 73 +#define cmdidBriefBookmarkDrop2 74 +#define cmdidBriefBookmarkDrop3 75 +#define cmdidBriefBookmarkDrop4 76 +#define cmdidBriefBookmarkDrop5 77 +#define cmdidBriefBookmarkDrop6 78 +#define cmdidBriefBookmarkDrop7 79 +#define cmdidBriefBookmarkDrop8 80 +#define cmdidBriefBookmarkDrop9 81 + +////////////////////////////////////////////////////////////////// +// +// The following commands form Yukon projects. +// +////////////////////////////////////////////////////////////////// +#define cmdidAddNewUDF 0x0101 +#define cmdidAddNewSProc 0x0102 +#define cmdidAddNewAggregarte 0x0103 +#define cmdidAddNewTrigger 0x0104 +#define cmdidAddNewUDT 0x0105 +#define cmdidSetDefaultDebugScript 0x0106 +#define cmdidStartDebugScript 0x0107 +#define cmdidAddNewDebugScript 0x0108 + +#define cmdidPromptDatabaseConnection 0x0201 + + +//--------------------------------------------------- + +// +// Shareable commands for VS Enterprise team +// +#define cmdidAddToFavorites 0x0001 +#define cmdidAddNewFolder 0x0002 +#define cmdidStopTeamExplorerRefresh 0x0003 +#define cmdidAddDataboundMpp 0x0004 +#define cmdidAddDataboundXls 0x0005 + +// End of shareable commands for VS Enterprise team + + +////////////////////////////////////////////////////////////////// +// +// This command range is private to the EzMDI command set +// +////////////////////////////////////////////////////////////////// + +#define cmdidEzMDIFile1 0x0001 + +////////////////////////////////////////////////////////////////// +// +// Command ids for Server Explorer commands (guid_SE_CommandID group) +// +////////////////////////////////////////////////////////////////// + +#define cmdid_SE_ToolbarRefresh 0x03004 +#define cmdid_SE_ToolbarStopRefresh 0x03005 +#define cmdid_SE_AddToForm 0x03009 +#define cmdid_SE_AddConnection 0x03100 +#define cmdid_SE_AddServer 0x03101 + +////////////////////////////////////////////////////////////////// +// +// Command ids for task list / error list commands (CLSID_VsTaskListPackage group) +// +////////////////////////////////////////////////////////////////// + +// These were used in Everett, but are no longer applicable in Whidbey. I don't want to re-use +// them because it could cause unexpected behavior for third-party code which sends these +// so I'll just comment them out. + +//#define cmdidTaskListFilterByCategoryUser 359 +//#define cmdidTaskListFilterByCategoryShortcut 360 +//#define cmdidTaskListFilterByCategoryHTML 361 +//#define cmdidTaskListFilterByCurrentFile 362 +//#define cmdidTaskListFilterByChecked 363 +//#define cmdidTaskListFilterByUnchecked 364 +//#define cmdidTaskListSortByDescription 365 +//#define cmdidTaskListSortByChecked 366 +//#define cmdidTaskListCustomView1 678 +//#define cmdidTaskListCustomView2 679 +//#define cmdidTaskListCustomView3 680 +//#define cmdidTaskListCustomView4 681 +//#define cmdidTaskListCustomView5 682 +//#define cmdidTaskListCustomView6 683 +//#define cmdidTaskListCustomView7 684 +//#define cmdidTaskListCustomView8 685 +//#define cmdidTaskListCustomView9 686 +//#define cmdidTaskListCustomView10 687 +//#define cmdidTaskListCustomView11 688 +//#define cmdidTaskListCustomView12 689 +//#define cmdidTaskListCustomView13 690 +//#define cmdidTaskListCustomView14 691 +//#define cmdidTaskListCustomView15 692 +//#define cmdidTaskListCustomView16 693 +//#define cmdidTaskListCustomView17 694 +//#define cmdidTaskListCustomView18 695 +//#define cmdidTaskListCustomView19 696 +//#define cmdidTaskListCustomView20 697 +//#define cmdidTaskListCustomView21 698 +//#define cmdidTaskListCustomView22 699 +//#define cmdidTaskListCustomView23 700 +//#define cmdidTaskListCustomView24 701 +//#define cmdidTaskListCustomView25 702 +//#define cmdidTaskListCustomView26 703 +//#define cmdidTaskListCustomView27 704 +//#define cmdidTaskListCustomView28 705 +//#define cmdidTaskListCustomView29 706 +//#define cmdidTaskListCustomView30 707 +//#define cmdidTaskListCustomView31 708 +//#define cmdidTaskListCustomView32 709 +//#define cmdidTaskListCustomView33 710 +//#define cmdidTaskListCustomView34 711 +//#define cmdidTaskListCustomView35 712 +//#define cmdidTaskListCustomView36 713 +//#define cmdidTaskListCustomView37 714 +//#define cmdidTaskListCustomView38 715 +//#define cmdidTaskListCustomView39 716 +//#define cmdidTaskListCustomView40 717 +//#define cmdidTaskListCustomView41 718 +//#define cmdidTaskListCustomView42 719 +//#define cmdidTaskListCustomView43 720 +//#define cmdidTaskListCustomView44 721 +//#define cmdidTaskListCustomView45 722 +//#define cmdidTaskListCustomView46 723 +//#define cmdidTaskListCustomView47 724 +//#define cmdidTaskListCustomView48 725 +//#define cmdidTaskListCustomView49 726 +//#define cmdidTaskListCustomView50 727 //not used on purpose, ends the list + +// Pre-Whidbey commands + +#define cmdidTaskListNextError 357 +#define cmdidTaskListPrevError 358 +#define cmdidTaskListTaskHelp 598 + +// Whidbey commands + +#define cmdidErrorListNextError 1 +#define cmdidErrorListPrevError 2 + +#define cmdidTaskListColumnToggle1 3 +#define cmdidTaskListColumnToggle2 4 +#define cmdidTaskListColumnToggle3 5 +#define cmdidTaskListColumnToggle4 6 +#define cmdidTaskListColumnToggle5 7 +#define cmdidTaskListColumnToggle6 8 +#define cmdidTaskListColumnToggle7 9 +#define cmdidTaskListColumnToggle8 10 +#define cmdidTaskListColumnToggle9 11 +#define cmdidTaskListColumnToggle10 12 +#define cmdidTaskListColumnToggle11 13 +#define cmdidTaskListColumnToggle12 14 +#define cmdidTaskListColumnToggle13 15 +#define cmdidTaskListColumnToggle14 16 +#define cmdidTaskListColumnToggle15 17 +#define cmdidTaskListColumnToggle16 18 +#define cmdidTaskListColumnToggle17 19 +#define cmdidTaskListColumnToggle18 20 +#define cmdidTaskListColumnToggle19 21 +#define cmdidTaskListColumnToggle20 22 +#define cmdidTaskListColumnToggle21 23 +#define cmdidTaskListColumnToggle22 24 +#define cmdidTaskListColumnToggle23 25 +#define cmdidTaskListColumnToggle24 26 +#define cmdidTaskListColumnToggle25 27 + +// Leave some space for the future, just in case...since the handling of the +// cmdidTaskListColumnToggle* commands requires them to be in a contiguous range. + +#define cmdidTaskListColumnSort1 200 +#define cmdidTaskListColumnSort2 201 +#define cmdidTaskListColumnSort3 202 +#define cmdidTaskListColumnSort4 203 +#define cmdidTaskListColumnSort5 204 +#define cmdidTaskListColumnSort6 205 +#define cmdidTaskListColumnSort7 206 +#define cmdidTaskListColumnSort8 207 +#define cmdidTaskListColumnSort9 208 +#define cmdidTaskListColumnSort10 209 +#define cmdidTaskListColumnSort11 210 +#define cmdidTaskListColumnSort12 211 +#define cmdidTaskListColumnSort13 212 +#define cmdidTaskListColumnSort14 213 +#define cmdidTaskListColumnSort15 214 +#define cmdidTaskListColumnSort16 215 +#define cmdidTaskListColumnSort17 216 +#define cmdidTaskListColumnSort18 217 +#define cmdidTaskListColumnSort19 218 +#define cmdidTaskListColumnSort20 219 +#define cmdidTaskListColumnSort21 220 +#define cmdidTaskListColumnSort22 221 +#define cmdidTaskListColumnSort23 222 +#define cmdidTaskListColumnSort24 223 +#define cmdidTaskListColumnSort25 224 + +#define cmdidTaskListColumnGroup1 600 +#define cmdidTaskListColumnGroup2 601 +#define cmdidTaskListColumnGroup3 602 +#define cmdidTaskListColumnGroup4 603 +#define cmdidTaskListColumnGroup5 604 +#define cmdidTaskListColumnGroup6 605 +#define cmdidTaskListColumnGroup7 606 +#define cmdidTaskListColumnGroup8 607 +#define cmdidTaskListColumnGroup9 608 +#define cmdidTaskListColumnGroup10 609 +#define cmdidTaskListColumnGroup11 610 +#define cmdidTaskListColumnGroup12 611 +#define cmdidTaskListColumnGroup13 612 +#define cmdidTaskListColumnGroup14 613 +#define cmdidTaskListColumnGroup15 614 +#define cmdidTaskListColumnGroup16 615 +#define cmdidTaskListColumnGroup17 616 +#define cmdidTaskListColumnGroup18 617 +#define cmdidTaskListColumnGroup19 618 +#define cmdidTaskListColumnGroup20 619 +#define cmdidTaskListColumnGroup21 620 +#define cmdidTaskListColumnGroup22 621 +#define cmdidTaskListColumnGroup23 622 +#define cmdidTaskListColumnGroup24 623 +#define cmdidTaskListColumnGroup25 624 + +////////////////////////////////////////////////////////////////// +// +// Command ids for the ReferenceManager commands +// +////////////////////////////////////////////////////////////////// + +#define cmdidReferenceManagerRecentContextMenu 0x1020 +#define cmdidReferenceManagerRecentContextMenuGroup 0x1021 +#define cmdidClearRecentReferences 0x100 +#define cmdidRemoveFromRecentReferences 0x200 + +#endif //_STDIDCMD_H_ diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/venusids.h b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/venusids.h new file mode 100644 index 00000000..eee9ca10 --- /dev/null +++ b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/venusids.h @@ -0,0 +1,164 @@ +//-------------------------------------------------------------------------- +// Microsoft Visual Studio +// +// Copyright (c) 1998 - 2003 Microsoft Corporation Inc. +// All rights reserved +// +// +// venusids.h +// Venus command table ids +//--------------------------------------------------------------------------- +//NOTE: billhie. CTC compiler cannot handle #pragma once (it issues a warning) +#ifndef __VENUSIDS_H__ +#define __VENUSIDS_H__ + +#include "sharedvenusids.h" +#include "venuscmddef.h" + +//---------------------------------------------------------------------------- +// +// GUID Identifiers +// +// Define CommandSet GUIDs in two ways - C compiler and CTC compiler. +// ** MAKE UPDATES TO BOTH GUID DECLS BELOW ** +//---------------------------------------------------------------------------- +#ifdef DEFINE_GUID + +//guidDirPkgGrpId +// {5ADFC620-064F-40ec-88D1-F3F4F01EFC6F} +//guidDirPkgCmdId + +// {883D561D-1199-49f3-A19E-78B5ADE9C6C1} +DEFINE_GUID(guidVenusStartPageCmdId, +0x883d561d, 0x1199, 0x49f3, 0xa1, 0x9e, 0x78, 0xb5, 0xad, 0xe9, 0xc6, 0xc1); + +//{9685C4E9-4D67-4a43-BC3E-CF405F9DAC05} +DEFINE_GUID(guidSilverlightCmdId, +0x9685C4E9, 0x4D67, 0x4a43, 0xBC, 0x3E, 0xCF, 0x40, 0x5F, 0x9D, 0xAC, 0x05); + +// XML editor guid +//{FA3CD31E-987B-443A-9B81-186104E8DAC1} +DEFINE_GUID(guidXmlEditor, 0XFA3CD31E, 0X987B, 0X443A, 0X9B, 0X81, 0X18, 0X61, 0X04, 0XE8, 0XDA, 0XC1); + +#else + +// {883D561D-1199-49f3-A19E-78B5ADE9C6C1} +#define guidVenusStartPageCmdId { 0x883d561d, 0x1199, 0x49f3, { 0xa1, 0x9e, 0x78, 0xb5, 0xad, 0xe9, 0xc6, 0xc1 } } + +//{9685C4E9-4D67-4a43-BC3E-CF405F9DAC05} +#define guidSilverlightCmdId { 0x9685C4E9, 0x4D67, 0x4a43, { 0xBC, 0x3E, 0xCF, 0x40, 0x5F, 0x9D, 0xAC, 0x05 }} + +// XML editor guid +//{FA3CD31E-987B-443A-9B81-186104E8DAC1} +#define guidXmlEditor { 0XFA3CD31E, 0X987B, 0X443A, { 0X9B, 0X81, 0X18, 0X61, 0X04, 0XE8, 0XDA, 0XC1 }}; + +// {69021D88-2F43-46E0-8A43-7F00F5B24176} +#define guidDeploymentImages { 0x69021d88, 0x2f43, 0x46e0, { 0x8a, 0x43, 0x7f, 0x0, 0xf5, 0xb2, 0x41, 0x76 } } + + +#endif + +//--------------------------------------------------------------------------- +// Comand Table Version +//--------------------------------------------------------------------------- +#define COMMANDTABLE_VERSION 1 + +// web package menus +#define IDM_VENUS_CSCD_ADDWEB 6 +#define IDM_VENUS_WEB 8 +#define IDM_VENUS_CSCD_ADDFOLDER 9 +#define IDM_VENUS_CTXT_ADDREFERENCE 10 +#define IDM_VENUS_CTXT_ITEMWEBREFERENCE 11 +#define IDM_VENUS_TOOLS_WEBPI 15 + +// "Add Web" Menu Groups +#define IDG_VENUS_ADDWEB_CASCADE 25 +#define IDG_VENUS_ADDFOLDER 26 +#define IDG_VENUS_CTX_REFERENCE 27 +#define IDG_VENUS_PACKAGE 30 +#define IDG_VENUS_CTXT_PACKAGE 31 + +//Command IDs +#define icmdNewWeb 0x002B +#define icmdOpenExistingWeb 0x002C +#define icmdAddNewWeb 0x002D +#define icmdAddExistingWeb 0x002E +#define icmdValidatePage 0x002F +#define icmdOpenSubWeb 0x0032 +#define icmdAddAppAssemblyFolder 0x0034 +#define icmdAddAppCodeFolder 0x0035 +#define icmdAddAppGlobalResourcesFolder 0x0036 +#define icmdAddAppLocalResourcesFolder 0x0037 +#define icmdAddAppWebReferencesFolder 0x0038 +#define icmdAddAppDataFolder 0x0039 +#define icmdAddAppBrowsersFolder 0x0040 +#define icmdAddAppThemesFolder 0x0041 +#define icmdRunFxCop 0x0042 +#define icmdFxCopConfig 0x0043 +#define icmdBuildLicenseDll 0x0044 +#define icmdUpdateReference 0x0045 +#define icmdRemoveWebReference 0x0046 +#define icmdCreatePackage 0x0050 +#define icmdCleanPackage 0x0051 +#define icmdContextCreatePackage 0x0052 +#define icmdContextCleanPackage 0x0053 +#define icmdPackageSettings 0x0054 +#define icmdContextPackageSettings 0x0055 +#define icmdNewVirtualFolder 0x0058 + +// This command never appears on a menu or toolbar. It is used internally to invoke browse with behavior +// from the debug controller. +#define icmdDebugStartupBrowseWith 0x0080 + +// "Web" Menu Groups - Start at 0x100 - they share the same menu guid with +// commands "guidVenusCmdId" +#define IDG_VS_BUILD_VAILIDATION 0x0100 +#define IDG_VENUS_CTX_SUBWEB 0x0101 +#define IDG_CTX_REFERENCE 0x0102 +#define IDG_CTX_PUBLISH 0x0103 +#define IDG_CTX_BUILD 0x0104 +#define IDG_VENUS_RUN_FXCOP 0x0105 +#define IDG_VENUS_RUN_FXCOP_CTXT_PROJ 0x0106 +#define IDG_VENUS_CTX_ITEM_WEBREFERENCE 0x0107 +#define IDG_VENUS_CTXT_CONFIG_TRANSFORM 0x0108 + + +// Start Page commands (introduced in Whidbey, some re-used in Orcas) +// *** These are referenced in Web.vssettings and WebExpress.vssettings +// do not change the numbers without updating that file as well! +#define cmdidStartPageCreatePersonalWebSite 0x5000 +#define cmdidStartPageCreateWebSite 0x5001 +#define cmdidStartPageCreateWebService 0x5002 +#define cmdidStartPageStarterKit 0x5003 +#define cmdidStartPageCommunity 0x5004 +#define cmdidStartPageIntroduction 0x5005 +#define cmdidStartPageGuidedTour 0x5006 +#define cmdidStartPageWhatsNew 0x5007 +#define cmdidStartPageHowDoI 0x5008 + +// Silverlight commmands +#define cmdidSLOpenInBlend 100 +#define cmdidSLAddJScriptCode 101 + +// Orcas Start Page commands for VWDExpress and other SKUs +// *** These are referenced in WebExpress.vssettings +// do not change the numbers without updating that file as well! + +#define cmdidVWDStartPageVideoFeatureTour 0x5009 +#define cmdidVWDStartPageLearnWebDevelopment 0x500A +#define cmdidVWDStartPageWhatsNew 0x500B +#define cmdidVWDStartPageBeginnerDeveloperLearningCenter 0x500C +#define cmdidVWDStartPageASPNETDownloads 0x500D +#define cmdidVWDStartPageASPNETForums 0x500E +#define cmdidVWDStartPageASPNETCommunitySite 0x500F +#define cmdidVWDStartPageCreateYourFirstWebSite 0x5010 +#define cmdidVWDStartPageExplore3rdPartyExtensions 0x5011 + +// Silverlight defined command id's (from silverlightmenuids.h) +#define cmdAddSilverlightLink 102 + +#define CreatePackageImage 1 +#define PackageSettingsImage 2 + +#endif +// End of venusids.h diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/venusmenu.vsct b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/venusmenu.vsct new file mode 100644 index 00000000..11fbf5af --- /dev/null +++ b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/venusmenu.vsct @@ -0,0 +1,725 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Add A&SP.NET Folder + Add A&SP.NET Folder + + + + + NotInTBList + + References + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/virtkeys.h b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/virtkeys.h new file mode 100644 index 00000000..03c5f062 --- /dev/null +++ b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/virtkeys.h @@ -0,0 +1,133 @@ +////////////////////////////////////////////////////////////////////////////// +// +//Copyright 1996-1997 Microsoft Corporation. All Rights Reserved. +// +//File: VirtKeys.H +// +//Contents: Taken from winuser.h +////////////////////////////////////////////////////////////////////////////// + + +/* + * Virtual Keys, Standard Set + */ +#define VK_LBUTTON 0x01 +#define VK_RBUTTON 0x02 +#define VK_CANCEL 0x03 +#define VK_MBUTTON 0x04 /* NOT contiguous with L & RBUTTON */ + +#define VK_BACK 0x08 +#define VK_TAB 0x09 + +#define VK_CLEAR 0x0C +#define VK_RETURN 0x0D + +#define VK_SHIFT 0x10 +#define VK_CONTROL 0x11 +#define VK_MENU 0x12 +#define VK_PAUSE 0x13 +#define VK_CAPITAL 0x14 + + +#define VK_ESCAPE 0x1B + +#define VK_SPACE 0x20 +#define VK_PRIOR 0x21 +#define VK_NEXT 0x22 +#define VK_END 0x23 +#define VK_HOME 0x24 +#define VK_LEFT 0x25 +#define VK_UP 0x26 +#define VK_RIGHT 0x27 +#define VK_DOWN 0x28 +#define VK_SELECT 0x29 +#define VK_PRINT 0x2A +#define VK_EXECUTE 0x2B +#define VK_SNAPSHOT 0x2C +#define VK_INSERT 0x2D +#define VK_DELETE 0x2E +#define VK_HELP 0x2F + +/* VK_0 thru VK_9 are the same as ASCII '0' thru '9' (0x30 - 0x39) */ +/* VK_A thru VK_Z are the same as ASCII 'A' thru 'Z' (0x41 - 0x5A) */ + +#define VK_LWIN 0x5B +#define VK_RWIN 0x5C +#define VK_APPS 0x5D + +#define VK_NUMPAD0 0x60 +#define VK_NUMPAD1 0x61 +#define VK_NUMPAD2 0x62 +#define VK_NUMPAD3 0x63 +#define VK_NUMPAD4 0x64 +#define VK_NUMPAD5 0x65 +#define VK_NUMPAD6 0x66 +#define VK_NUMPAD7 0x67 +#define VK_NUMPAD8 0x68 +#define VK_NUMPAD9 0x69 +#define VK_MULTIPLY 0x6A +#define VK_ADD 0x6B +#define VK_SEPARATOR 0x6C +#define VK_SUBTRACT 0x6D +#define VK_DECIMAL 0x6E +#define VK_DIVIDE 0x6F +#define VK_F1 0x70 +#define VK_F2 0x71 +#define VK_F3 0x72 +#define VK_F4 0x73 +#define VK_F5 0x74 +#define VK_F6 0x75 +#define VK_F7 0x76 +#define VK_F8 0x77 +#define VK_F9 0x78 +#define VK_F10 0x79 +#define VK_F11 0x7A +#define VK_F12 0x7B +#define VK_F13 0x7C +#define VK_F14 0x7D +#define VK_F15 0x7E +#define VK_F16 0x7F +#define VK_F17 0x80 +#define VK_F18 0x81 +#define VK_F19 0x82 +#define VK_F20 0x83 +#define VK_F21 0x84 +#define VK_F22 0x85 +#define VK_F23 0x86 +#define VK_F24 0x87 + +#define VK_NUMLOCK 0x90 +#define VK_SCROLL 0x91 + +/* + * VK_L* & VK_R* - left and right Alt, Ctrl and Shift virtual keys. + * Used only as parameters to GetAsyncKeyState() and GetKeyState(). + * No other API or message will distinguish left and right keys in this way. + */ +#define VK_LSHIFT 0xA0 +#define VK_RSHIFT 0xA1 +#define VK_LCONTROL 0xA2 +#define VK_RCONTROL 0xA3 +#define VK_LMENU 0xA4 +#define VK_RMENU 0xA5 + +#define VK_OEM_1 0xBA // ;: for USA +#define VK_OEM_5 0xDC // |\ for USA +#define VK_OEM_PLUS 0xBB // '+' any country/region +#define VK_OEM_COMMA 0xBC // ',' any country/region +#define VK_OEM_MINUS 0xBD // '-' any country/region +#define VK_OEM_PERIOD 0xBE // '.' any country/region +#define VK_OEM_7 0xDE // '" for USA + +#define VK_PROCESSKEY 0xE5 + +#define VK_ATTN 0xF6 +#define VK_CRSEL 0xF7 +#define VK_EXSEL 0xF8 +#define VK_EREOF 0xF9 +#define VK_PLAY 0xFA +#define VK_ZOOM 0xFB +#define VK_NONAME 0xFC +#define VK_PA1 0xFD +#define VK_OEM_CLEAR 0xFE + diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/vsdebugguids.h b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/vsdebugguids.h new file mode 100644 index 00000000..3a680ea9 --- /dev/null +++ b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/vsdebugguids.h @@ -0,0 +1,211 @@ +// VsDebugGuids.h +// + +#ifdef SHOW_INCLUDES +#pragma message("Includes " __FILE__) +#endif + +//#ifndef __GUIDS_H_ +//#define __GUIDS_H_ + +#ifdef SHOW_INCLUDES +#pragma message("+++INCLUDING " __FILE__) +#endif + + +#ifndef _CTC_GUIDS_ + +#include "objext.h" // for ILocalRegistry +#include "oleipc.h" // for ComponentUIManager + + +// {A27B4E24-A735-4D1D-B8E7-9716E1E3D8E0} +DEFINE_GUID(guidTextEditorFontCategory, + 0xA27B4E24, 0xA735, 0x4D1D, 0xB8, 0xE7, 0x97, 0x16, 0xE1, 0xE3, 0xD8, 0xE0); + +// {C9DD4A58-47FB-11d2-83E7-00C04F9902C1} +DEFINE_GUID(guidVSDebugGroup, + 0xC9DD4A58, 0x47FB, 0x11D2, 0x83, 0xE7, 0x00, 0xC0, 0x4F, 0x99, 0x02, 0xC1); + +// {C9DD4A59-47FB-11d2-83E7-00C04F9902C1} +DEFINE_GUID(guidVSDebugCommand, + 0xC9DD4A59, 0x47FB, 0x11D2, 0x83, 0xE7, 0x00, 0xC0, 0x4F, 0x99, 0x02, 0xC1); + +// {FA9EB535-C624-13D0-AE1F-00A0190FF4C3} +DEFINE_GUID(guidDbgOptGeneralPage, + 0xfa9eb535, 0xc624, 0x13d0, 0xae, 0x1f, 0x00, 0xa0, 0x19, 0x0f, 0xf4, 0xc3); + +// {7A8A4060-D909-4485-9860-748BC8713A74} +DEFINE_GUID(guidDbgOptFindSourcePage, + 0x7a8a4060, 0xd909, 0x4485, 0x98, 0x60, 0x74, 0x8b, 0xc8, 0x71, 0x3a, 0x74); + +// {C15095AA-49C0-40AC-AE78-611318DD9925} +DEFINE_GUID(guidDbgOptFindSymbolPage, + 0xC15095AA, 0x49C0, 0x40AC, 0xAE, 0x78, 0x61, 0x13, 0x18, 0xDD, 0x99, 0x25); + +// {6C3ECAA6-3EFB-4b0d-9660-2A3BA5B8440E} +DEFINE_GUID(guidDbgOptENCPage, + 0x6c3ecaa6, 0x3efb, 0x4b0d, 0x96, 0x60, 0x2a, 0x3b, 0xa5, 0xb8, 0x44, 0xe); + +// {B9EFCAF2-9EAE-4022-9E39-FA947666ADD9} +DEFINE_GUID(guidDbgOptJITPage, + 0xb9efcaf2, 0x9eae, 0x4022, 0x9e, 0x39, 0xfa, 0x94, 0x76, 0x66, 0xad, 0xd9); + +// {1F5E080F-CBD2-459C-8267-39fd83032166} +DEFINE_GUID(guidDbgOptSymbolPage, + 0x1f5e080f, 0xcbd2, 0x459c, 0x82, 0x67, 0x39, 0xfd, 0x83, 0x03, 0x21, 0x66); + +// {FC076020-078A-11D1-A7DF-00A0C9110051} +DEFINE_GUID(guidDebugOutputPane, + 0xfc076020, 0x078a, 0x11d1, 0xa7, 0xdf, 0x00, 0xa0, 0xc9, 0x11, 0x00, 0x51); + +// {C16FB7C4-9F84-11D2-8405-00C04F9902C1} +DEFINE_GUID(guidDisasmLangSvc, + 0xc16fb7c4, 0x9f84, 0x11d2, 0x84, 0x05, 0x00, 0xc0, 0x4f, 0x99, 0x02, 0xc1); + +// {3BFC1046-049F-11d3-B87F-00C04F79E479} +DEFINE_GUID(guidMemoryView, + 0x3bfc1046, 0x49f, 0x11d3, 0xb8, 0x7f, 0x0, 0xc0, 0x4f, 0x79, 0xe4, 0x79); + +// {DF38847E-CC19-11d2-8ADA-00C04F79E479} +DEFINE_GUID(guidMemoryLangSvc, + 0xdf38847e, 0xcc19, 0x11d2, 0x8a, 0xda, 0x0, 0xc0, 0x4f, 0x79, 0xe4, 0x79); + +// {13F6A341-59C0-11d3-994C-00C04F68FDAF} +DEFINE_GUID(guidRegisterLangSvc, + 0x13f6a341, 0x59c0, 0x11d3, 0x99, 0x4c, 0x0, 0xc0, 0x4f, 0x68, 0xfd, 0xaf); + +// {75058B12-F5A9-4b1c-9161-9B3754D7488F} +DEFINE_GUID(guidENCStaleLangSvc, + 0x75058b12, 0xf5a9, 0x4b1c, 0x91, 0x61, 0x9b, 0x37, 0x54, 0xd7, 0x48, 0x8f); + + +// {44B05627-95C2-4CE8-BDCD-4AA722785093} +DEFINE_GUID(guidDebuggerMarkerService, + 0x44b05627, 0x95c2, 0x4ce8, 0xbd, 0xcd, 0x4a, 0xa7, 0x22, 0x78, 0x50, 0x93); + +// UNDONE: this should be defined by the environment in vsshell.idl +// {A2FE74E1-B743-11d0-AE1A-00A0C90FFFC3} +DEFINE_GUID(guidExternalFilesProject, + 0xa2fe74e1, 0xb743, 0x11d0, 0xae, 0x1a, 0x00, 0xa0, 0xc9, 0x0f, 0xff, 0xc3); + +// {201BFBC6-D20B-11d2-910F-00C04F9902C1} +// this CmdUIContext is defined when the debugger is started for Just-In-Time debugging +DEFINE_GUID(guidJitDebug, + 0x201bfbc6, 0xd20b, 0x11d2, 0x91, 0x0f, 0x00, 0xc0, 0x4f, 0x99, 0x02, 0xc1); + +// {E5776E42-0966-11d3-B87F-00C04F79E479} +// This is a private interface used by the memory view for communicating with a Language service. +DEFINE_GUID(IID_IMemoryViewLangServiceInterop, + 0xe5776e42, 0x966, 0x11d3, 0xb8, 0x7f, 0x0, 0xc0, 0x4f, 0x79, 0xe4, 0x79); + +// {8C7DDC02-C7B5-4532-AB98-9AEC7C9E02FA} +DEFINE_GUID(guidENCOptionRelink, + 0x8c7ddc02, 0xc7b5, 0x4532, 0xab, 0x98, 0x9a, 0xec, 0x7c, 0x9e, 0x2, 0xfa); + +// {C46344BE-C093-4672-AAFC-80012715798C} +DEFINE_GUID(guidENCOptionPrecompile, + 0xc46344be, 0xc093, 0x4672, 0xaa, 0xfc, 0x80, 0x1, 0x27, 0x15, 0x79, 0x8c); + +// {EE71B5E6-1FE6-4f14-8D73-0981BC4CF5BA} +DEFINE_GUID(guidENCOptionNativeApplyOnContinue, + 0xee71b5e6, 0x1fe6, 0x4f14, 0x8d, 0x73, 0x9, 0x81, 0xbc, 0x4c, 0xf5, 0xba); + +// {ABA46DCE-94D3-469f-A785-D7B529C5B1B7} +DEFINE_GUID(guidENCOptionNativeAllowRemote, + 0xaba46dce, 0x94d3, 0x469f, 0xa7, 0x85, 0xd7, 0xb5, 0x29, 0xc5, 0xb1, 0xb7); + +// {ce2eced5-c21c-464c-9b45-15e10e9f9ef9} +DEFINE_GUID(guidFontColorMemory, + 0xce2eced5, 0xc21c, 0x464c, 0x9b, 0x45, 0x15, 0xe1, 0x0e, 0x9f, 0x9e, 0xf9); + +// {40660f54-80fa-4375-89a3-8d06aa954eba} +DEFINE_GUID(guidFontColorRegisters, + 0x40660f54, 0x80fa, 0x4375, 0x89, 0xa3, 0x8d, 0x06, 0xaa, 0x95, 0x4e, 0xba); + +// {3B70A4AE-BB91-4abe-A05C-C4DE07B9763E} +DEFINE_GUID(guidDebuggerFontColorSvc, + 0x3b70a4ae, 0xbb91, 0x4abe, 0xa0, 0x5c, 0xc4, 0xde, 0x7, 0xb9, 0x76, 0x3e); + +// {358463D0-D084-400f-997E-A34FC570BC72} +DEFINE_GUID(guidWatchFontColor, + 0x358463d0, 0xd084, 0x400f, 0x99, 0x7e, 0xa3, 0x4f, 0xc5, 0x70, 0xbc, 0x72); + +// {A7EE6BEE-D0AA-4b2f-AD9D-748276A725F6} +DEFINE_GUID(guidAutosFontColor, + 0xa7ee6bee, 0xd0aa, 0x4b2f, 0xad, 0x9d, 0x74, 0x82, 0x76, 0xa7, 0x25, 0xf6); + +// {8259ACED-490A-41b3-A0FB-64C842CCDC80} +DEFINE_GUID(guidLocalsFontColor, + 0x8259aced, 0x490a, 0x41b3, 0xa0, 0xfb, 0x64, 0xc8, 0x42, 0xcc, 0xdc, 0x80); + +// {E02A3CCD-2D8E-4628-97D7-1C0921DFA2F3} +DEFINE_GUID(guidParallelWatchFontColor, + 0xe02a3ccd, 0x2d8e, 0x4628, 0x97, 0xd7, 0x1c, 0x9, 0x21, 0xdf, 0xa2, 0xf3); + +// {FD2219AF-EBF8-4116-A801-3B503C48DFF0} +DEFINE_GUID(guidCallStackFontColor, + 0xfd2219af, 0xebf8, 0x4116, 0xa8, 0x1, 0x3b, 0x50, 0x3c, 0x48, 0xdf, 0xf0); + +// {BB8FE807-A186-404a-81FA-D20B908CA93B} +DEFINE_GUID(guidThreadsFontColor, + 0xbb8fe807, 0xa186, 0x404a, 0x81, 0xfa, 0xd2, 0xb, 0x90, 0x8c, 0xa9, 0x3b); + +// {F7B7B222-E186-48df-A5EE-174E8129891B} +DEFINE_GUID(guidDataTipsFontColor, + 0xf7b7b222, 0xe186, 0x48df, 0xa5, 0xee, 0x17, 0x4e, 0x81, 0x29, 0x89, 0x1b); + +// {7A4C6CC9-8404-4B95-AF88-F11B657C7268} +DEFINE_GUID(guidPerformanceTipsFontColor, + 0x7a4c6cc9, 0x8404, 0x4b95, 0xaf, 0x88, 0xf1, 0x1b, 0x65, 0x7c, 0x72, 0x68); + +// {B20C0001-0836-4535-A5E8-96E595B1F094} +DEFINE_GUID(guidDebugLocationFontColor, + 0xb20c0001, 0x836, 0x4535, 0xa5, 0xe8, 0x96, 0xe5, 0x95, 0xb1, 0xf0, 0x94); + + +// {35B25E75-AB53-4c5d-80EA-6682EBB2BBBD} +DEFINE_GUID(guidVarWndsFontColor, + 0x35b25e75, 0xab53, 0x4c5d, 0x80, 0xea, 0x66, 0x82, 0xeb, 0xb2, 0xbb, 0xbd); + +// {8DAFF493-5F7C-4e19-81BF-D5E63C1545D3} +DEFINE_GUID(guidProjectLaunchSettings, + 0x8daff493, 0x5f7c, 0x4e19, 0x81, 0xbf, 0xd5, 0xe6, 0x3c, 0x15, 0x45, 0xd3); + +// {60AFC91C-3AD5-4D33-8C00-D8EF5DEDDCD1} +DEFINE_GUID(guidITraceDebuggerService, + 0x60afc91c, 0x3ad5, 0x4d33, 0x8c, 0x00, 0xd8, 0xef, 0x5d, 0xed, 0xdc, 0xd1); + +#else // _CTC_GUIDS + +#define guidVSDebugPackage { 0xC9DD4A57, 0x47FB, 0x11D2, { 0x83, 0xE7, 0x00, 0xC0, 0x4F, 0x99, 0x02, 0xC1 } } +#define guidVSDebugGroup { 0xC9DD4A58, 0x47FB, 0x11D2, { 0x83, 0xE7, 0x00, 0xC0, 0x4F, 0x99, 0x02, 0xC1 } } +#define guidVSDebugCommand { 0xC9DD4A59, 0x47FB, 0x11D2, { 0x83, 0xE7, 0x00, 0xC0, 0x4F, 0x99, 0x02, 0xC1 } } + +#define guidDbgOptGeneralPage { 0xfa9eb535, 0xc624, 0x13d0, { 0xae, 0x1f, 0x00, 0xa0, 0x19, 0x0f, 0xf4, 0xc3 } } +#define guidDbgOptFindSourcePage { 0x7a8a4060, 0xd909, 0x4485, { 0x98, 0x60, 0x74, 0x8b, 0xc8, 0x71, 0x3a, 0x74 } } +#define guidDbgOptFindSymbolPage { 0xc15095aa, 0x49c0, 0x40ac, { 0xae, 0x78, 0x61, 0x13, 0x18, 0xdd, 0x99, 0x25 } } +#define guidDbgOptJITPage { 0xb9efcaf2, 0x9eae, 0x4022, { 0x9e, 0x39, 0xfa, 0x94, 0x76, 0x66, 0xad, 0xd9 } } + +#define guidDebugOutputPane { 0xfc076020, 0x078a, 0x11d1, { 0xa7, 0xdf, 0x00, 0xa0, 0xc9, 0x11, 0x00, 0x51 } } +#define guidDisasmLangSvc { 0xc16fb7c4, 0x9f84, 0x11d2, { 0x84, 0x05, 0x00, 0xc0, 0x4f, 0x99, 0x02, 0xc1 } } +#define guidMemoryLangSvc { 0xdf38847e, 0xcc19, 0x11d2, { 0x8a, 0xda, 0x00, 0xc0, 0x4f, 0x79, 0xe4, 0x79 } } + +#define guidFontColorMemory { 0xce2eced5, 0xc21c, 0x464c, { 0x9b, 0x45, 0x15, 0xe1, 0x0e, 0x9f, 0x9e, 0xf9 } } +#define guidFontColorRegisters { 0x40660f54, 0x80fa, 0x4375, { 0x89, 0xa3, 0x8d, 0x06, 0xaa, 0x95, 0x4e, 0xba } } + +#define guidDebuggerFontColorSvc { 0x3b70a4ae, 0xbb91, 0x4abe, { 0xa0, 0x5c, 0xc4, 0xde, 0x7, 0xb9, 0x76, 0x3e } } +#define guidWatchFontColor { 0x358463d0, 0xd084, 0x400f, { 0x99, 0x7e, 0xa3, 0x4f, 0xc5, 0x70, 0xbc, 0x72 } } +#define guidAutosFontColor { 0xa7ee6bee, 0xd0aa, 0x4b2f, { 0xad, 0x9d, 0x74, 0x82, 0x76, 0xa7, 0x25, 0xf6 } } +#define guidLocalsFontColor { 0x8259aced, 0x490a, 0x41b3, { 0xa0, 0xfb, 0x64, 0xc8, 0x42, 0xcc, 0xdc, 0x80 } } +#define guidParallelWatchFontColor { 0xe02a3ccd, 0x2d8e, 0x4628, { 0x97, 0xd7, 0x1c, 0x9, 0x21, 0xdf, 0xa2, 0xf3 } } +#define guidCallStackFontColor { 0xfd2219af, 0xebf8, 0x4116, { 0xa8, 0x1, 0x3b, 0x50, 0x3c, 0x48, 0xdf, 0xf0 } } +#define guidThreadsFontColor { 0xbb8fe807, 0xa186, 0x404a, { 0x81, 0xfa, 0xd2, 0xb, 0x90, 0x8c, 0xa9, 0x3b } } +#define guidDataTipsFontColor { 0xf7b7b222, 0xe186, 0x48df, { 0xa5, 0xee, 0x17, 0x4e, 0x81, 0x29, 0x89, 0x1b } } +#define guidPerformanceTipsFontColor { 0x7a4c6cc9, 0x8404, 0x4b95, { 0xaf, 0x88, 0xf1, 0x1b, 0x65, 0x7c, 0x72, 0x68 } } +#define guidVarWndsFontColor { 0x35b25e75, 0xab53, 0x4c5d, { 0x80, 0xea, 0x66, 0x82, 0xeb, 0xb2, 0xbb, 0xbd } }; + +#endif // _CTC_GUIDS_ + + +//#endif // __GUIDS_H_ diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/vsshlids.h b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/vsshlids.h new file mode 100644 index 00000000..f26d3d61 --- /dev/null +++ b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/vsshlids.h @@ -0,0 +1,1998 @@ +////////////////////////////////////////////////////////////////////////////// +// +//Copyright 1996-2003 Microsoft Corporation. All Rights Reserved. +// +//File: VSShlIds.H +// +//Contents: +// +////////////////////////////////////////////////////////////////////////////// + +#ifndef _VSSHLIDS_H_ +#define _VSSHLIDS_H_ + + + +////////////////////////////////////////////////////////////////////////////// +// +// GUID Identifiers, created by Visual Studio Shell +// +////////////////////////////////////////////////////////////////////////////// +#ifndef NOGUIDS + +#ifdef DEFINE_GUID + // Guid if using Office provided icons + DEFINE_GUID (guidOfficeIcon, + 0xd309f794, 0x903f, 0x11d0, 0x9e, 0xfc, 0x00, 0xa0, 0xc9, 0x11, 0x00, 0x4f); + + // Guid for shell icons + DEFINE_GUID(guidVsShellIcons, + 0x9cd93c42, 0xceef, 0x45ab, 0xb1, 0xb5, 0x60, 0x40, 0x88, 0xc, 0x95, 0x43); + + // Guid for the duplicate accelerator keys + DEFINE_GUID (guidKeyDupe, + 0xf17bdae0, 0xa16d, 0x11d0, 0x9f, 0x4, 0x0, 0xa0, 0xc9, 0x11, 0x0, 0x4f); + + // Guid for Shell's group and menu ids + DEFINE_GUID (guidSHLMainMenu, + 0xd309f791, 0x903f, 0x11d0, 0x9e, 0xfc, 0x00, 0xa0, 0xc9, 0x11, 0x00, 0x4f); + + // Guid for ClassView menu ids + DEFINE_GUID(guidClassViewMenu, + 0xfb61dcfe, 0xc9cb, 0x4964, 0x84, 0x26, 0xc2, 0xd3, 0x83, 0x34, 0x07, 0x8c); + + // Guid for DocOutline package commands + DEFINE_GUID (guidDocOutlinePkg, + 0x21af45b0, 0xffa5, 0x11d0, 0xb6, 0x3f, 0x00, 0xa0, 0xc9, 0x22, 0xe8, 0x51); + + // Guid for CommonIDE package + DEFINE_GUID (guidCommonIDEPackage, + 0x6E87CFAD, 0x6C05, 0x4adf, 0x9C, 0xD7, 0x3B, 0x79, 0x43, 0x87, 0x5B, 0x7C); + + // Guid for CommonIDE package commands + DEFINE_GUID (guidCommonIDEPackageCmd, + 0x6767e06b, 0x5789, 0x472b, 0x8e, 0xd7, 0x1f, 0x20, 0x73, 0x71, 0x6e, 0x8c); + + // UIContext guid specifying that we're not in View Source mode + DEFINE_GUID(guidNotViewSourceMode, + 0x7174c6a0, 0xb93d, 0x11d1, 0x9f, 0xf4, 0x0, 0xa0, 0xc9, 0x11, 0x0, 0x4f); + + // Guid for shared groups + // {234A7FC1-CFE9-4335-9E82-061F86E402C1} + DEFINE_GUID(guidSharedMenuGroup, + 0x234a7fc1, 0xcfe9, 0x4335, 0x9e, 0x82, 0x6, 0x1f, 0x86, 0xe4, 0x2, 0xc1); + + DEFINE_GUID(guidBuildCmdIcons, + 0x952691c5, 0x34d6, 0x462b, 0xac, 0x56, 0x9a, 0xb0, 0x97, 0x70, 0xa3, 0x0d); + + DEFINE_GUID(CMDSETID_StandardCommandSet2K, + 0x1496A755, 0x94DE, 0x11D0, 0x8C, 0x3F, 0x00, 0xC0, 0x4F, 0xC2, 0xAA, 0xE2); + + // new command set for Dev10 + DEFINE_GUID(CMDSETID_StandardCommandSet10, + 0x5dd0bb59, 0x7076, 0x4c59, 0x88, 0xd3, 0xde, 0x36, 0x93, 0x1f, 0x63, 0xf0); + + // new command set for Dev11 + DEFINE_GUID(CMDSETID_StandardCommandSet11, + 0xd63db1f0, 0x404e, 0x4b21, 0x96, 0x48, 0xca, 0x8d, 0x99, 0x24, 0x5e, 0xc3); + + // new command set for Dev12 + DEFINE_GUID(CMDSETID_StandardCommandSet12, + 0x2A8866DC, 0x7BDE, 0x4dc8, 0xA3, 0x60, 0xA6, 0x06, 0x79, 0x53, 0x43, 0x84); + + // new command set for Dev14 + // {4C7763BF-5FAF-4264-A366-B7E1F27BA958} + DEFINE_GUID(CMDSETID_StandardCommandSet14, + 0x4c7763bf, 0x5faf, 0x4264, 0xa3, 0x66, 0xb7, 0xe1, 0xf2, 0x7b, 0xa9, 0x58); + + // new command set for Dev15 + // {712C6C80-883B-4AAD-B430-BBCA5256FA9D} + DEFINE_GUID(CMDSETID_StandardCommandSet15, + 0x712c6c80, 0x883b, 0x4aad, 0xb4, 0x30, 0xbb, 0xca, 0x52, 0x56, 0xfa, 0x9d); + + // {489EE5BF-F001-41c9-91C7-6E89D9C111AD} + DEFINE_GUID(CMDSETID_EzMDI, + 0x489ee5bf, 0xf001, 0x41c9, 0x91, 0xc7, 0x6e, 0x89, 0xd9, 0xc1, 0x11, 0xad); + + // Emacs editor emulation + // {9A95F3AF-F86A-4aa2-80E6-012BF65DBBC3} + DEFINE_GUID(guidEmacsCommandGroup, + 0x9a95f3af, 0xf86a, 0x4aa2, 0x80, 0xe6, 0x1, 0x2b, 0xf6, 0x5d, 0xbb, 0xc3); + + // Brief editor emulation + // {7A500D8A-8258-46c3-8965-6AC53ED6B4E7} + DEFINE_GUID(guidBriefCommandGroup, + 0x7a500d8a, 0x8258, 0x46c3, 0x89, 0x65, 0x6a, 0xc5, 0x3e, 0xd6, 0xb4, 0xe7); + + // {501822E1-B5AF-11d0-B4DC-00A0C91506EF} + DEFINE_GUID(guidDataCmdId, + 0x501822e1, 0xB5AF, 0x11D0, 0xB4, 0xDC, 0x00, 0xA0, 0xC9, 0x15, 0x06, 0xEF); + + // {4614107F-217D-4bbf-9DFE-B9E165C65572} + DEFINE_GUID(guidVSData, + 0x4614107F, 0x217D, 0x4bbf, 0x9D, 0xFE, 0xB9, 0xE1, 0x65, 0xC6, 0x55, 0x72); + + //{732abe75-cd80-11d0-a2db-00aa00a3efff} + DEFINE_GUID(CMDSETID_DaVinciDataToolsCommandSet, + 0x732abe75, 0xcd80, 0x11d0, 0xa2, 0xdb, 0x00, 0xaa, 0x00, 0xa3, 0xef, 0xff); + + // Guid for Extension Manager Package + //{E7576C05-1874-450c-9E98-CF3A0897A069} + DEFINE_GUID(guidExtensionManagerPkg, + 0xe7576c05, 0x1874, 0x450c, 0x9e, 0x98, 0xcf, 0x3a, 0x08, 0x97, 0xa0, 0x69); + + // Guid for Extension Manager Icon + DEFINE_GUID(guidExtensionManagerIcon, + 0x12ffec2c, 0x2df7, 0x49eb, 0xa2, 0x92, 0x05, 0xc4, 0xa5, 0xf9, 0xc3, 0x54); + + // Guid for puslish web Icon + // {69DE971C-8BB7-4032-9E7D-3D7C115A6329} + DEFINE_GUID(guidPublishWebIcon, + 0x69de971c, 0x8bb7, 0x4032, 0x9e, 0x7d, 0x3d, 0x7c, 0x11, 0x5a, 0x63, 0x29); + + // WM_APPCOMMAND handling + // The active ole command targets will receive CMDSETID_WMAppCommand:cmdID, where + // cmdID is one of APPCOMMAND_****, defined in winuser.h for _WIN32_WINNT >= 0x0500 + // (use common\inc\wmappcmd.h to have this commands defined for all target platforms) + // If command is not handled, we will look in the registry for the mapped command: + // HKLM\\WMAppCommand + // val = {}: + + // {12F1A339-02B9-46e6-BDAF-1071F76056BF} + DEFINE_GUID(CMDSETID_WMAppCommand, + 0x12f1a339, 0x02b9, 0x46e6, 0xbd, 0xaf, 0x10, 0x71, 0xf7, 0x60, 0x56, 0xbf); + + DEFINE_GUID(CLSID_VsCommunityPackage, + 0x490508dd, 0x32ce, 0x45e8, 0x80, 0x8c, 0xfa, 0xeb, 0xf4, 0x68, 0xb1, 0x86); + + // {0x462b036f,0x7349,0x4835,{0x9e,0x21,0xbe,0xc6,0x0e,0x98,0x9b,0x9c}} + // {462B036F-7349-4835-9E21-BEC60E989B9C} + DEFINE_GUID(guidVDTFlavorCmdSet, + 0x462b036f, 0x7349, 0x4835, 0x9e, 0x21, 0xbe, 0xc6, 0x0e, 0x98, 0x9b, 0x9c); + + // Reference Manager Providers command set guid + // {8206e3a8-09d6-4f97-985f-7b980b672a97} + DEFINE_GUID(guidReferenceManagerProvidersPackageCmdSet, + 0xa8e30682, 0xd609, 0x974f, 0x98, 0x5f, 0x7b, 0x98, 0x0b, 0x67, 0x2a, 0x97); + + // ------------------------------------- + // Class View Selection UIContext guids. + // ------------------------------------- + + // {48903663-A165-4e4b-867D-90622B1E6E9C} + DEFINE_GUID(guidClassViewSelectionNamespace, + 0x48903663, 0xa165, 0x4e4b, 0x86, 0x7d, 0x90, 0x62, 0x2b, 0x1e, 0x6e, 0x9c); + + // {010FA539-D664-45c2-BD28-7C36F2AAA816} + DEFINE_GUID(guidClassViewMultiSelectionNamespaces, + 0x10fa539, 0xd664, 0x45c2, 0xbd, 0x28, 0x7c, 0x36, 0xf2, 0xaa, 0xa8, 0x16); + + // {C5F62498-4EEE-423b-B12E-EA6FB3217215} + DEFINE_GUID(guidClassViewSelectionClass, + 0xc5f62498, 0x4eee, 0x423b, 0xb1, 0x2e, 0xea, 0x6f, 0xb3, 0x21, 0x72, 0x15); + + // {767AF915-7282-49da-806E-9AC9614E78FC} + DEFINE_GUID(guidClassViewMultiSelectionClasses, + 0x767af915, 0x7282, 0x49da, 0x80, 0x6e, 0x9a, 0xc9, 0x61, 0x4e, 0x78, 0xfc); + + // {AF5D60D7-9F6C-4824-98E6-074E258790F8} + DEFINE_GUID(guidClassViewSelectionMember, + 0xaf5d60d7, 0x9f6c, 0x4824, 0x98, 0xe6, 0x07, 0x4e, 0x25, 0x87, 0x90, 0xf8); + + // {C46D1701-7623-4bb2-A7E2-FB059D2B33E9} + DEFINE_GUID(guidClassViewMultiSelectionMembers, + 0xc46d1701, 0x7623, 0x4bb2, 0xa7, 0xe2, 0xfb, 0x5, 0x9d, 0x2b, 0x33, 0xe9); + + // {5EE0E92B-13BD-491b-9518-40B2936F5E21} + DEFINE_GUID(guidClassViewMultiSelectionMixed, + 0x5ee0e92b, 0x13bd, 0x491b, 0x95, 0x18, 0x40, 0xb2, 0x93, 0x6f, 0x5e, 0x21); + + // {57817069-31B7-4d3a-8B2C-8195EB7D216F} + DEFINE_GUID(guidClassViewSelectionPhysicalContainer, + 0x57817069, 0x31b7, 0x4d3a, 0x8b, 0x2c, 0x81, 0x95, 0xeb, 0x7d, 0x21, 0x6f); + + // {D584640A-388C-4e66-BB81-80969620D404} + DEFINE_GUID(guidClassViewMultiSelectionPhysicalContainers, + 0xd584640a, 0x388c, 0x4e66, 0xbb, 0x81, 0x80, 0x96, 0x96, 0x20, 0xd4, 0x4); + + // {F19997FD-8C6E-4972-88BC-063181D4E88C} + DEFINE_GUID(guidClassViewSelectionHierarchy, + 0xf19997fd, 0x8c6e, 0x4972, 0x88, 0xbc, 0x6, 0x31, 0x81, 0xd4, 0xe8, 0x8c); + + // {2D502DA9-629C-4293-8B14-1312F4EBD89A} + DEFINE_GUID(guidClassViewSelectionMemberHierarchy, + 0x2d502da9, 0x629c, 0x4293, 0x8b, 0x14, 0x13, 0x12, 0xf4, 0xeb, 0xd8, 0x9a); + + // {2D502DA9-629C-4293-8B14-1312F4EBD89A} + DEFINE_GUID(guidClassViewSelectionSupportsClassDesigner, + 0xc53a8676, 0x1a8f, 0x4673, 0x91, 0x47, 0x09, 0xa3, 0xe7, 0xd5, 0x6c, 0xda); + + + // ----------------------------------------- + // End Class View Selection UIContext guids. + // ----------------------------------------- + + + // {84571F7F-1A90-41E0-9781-2610297FB09D} + DEFINE_GUID(guidDExploreApplicationObject, + 0x84571F7F, 0x1A90, 0x41E0, 0x97, 0x81, 0x26, 0x10, 0x29, 0x7F, 0xB0, 0x9D); + + // {8D8529D3-625D-4496-8354-3DAD630ECC1B} + DEFINE_GUID(guid_VSDesignerPackage, + 0x8D8529D3, 0x625D, 0x4496, 0x83, 0x54, 0x3D, 0xAD, 0x63, 0x0E, 0xCC, 0x1B); + + // {640F725F-1B2D-4831-A9FD-874847682010} + DEFINE_GUID(guidServerExpIcon, + 0x640F725F, 0x1B2D, 0x4831, 0xA9, 0xFD, 0x87, 0x48, 0x47, 0x68, 0x20, 0x10); + +/////////////////////////////////////////////// +// +// VS Enterprise guids +// +/////////////////////////////////////////////// + + // VS Enterprise Cmd UIContext guid + // {07CA8E98-FF14-4e5e-9C4D-959C081B5E47} + DEFINE_GUID(guidTeamProjectCmdUIContext, + 0x07CA8E98, 0xFF14, 0x4e5e, 0x9C, 0x4D, 0x95, 0x9C, 0x08, 0x1B, 0x5E, 0x47); + + // VS Enterprise Shared Commands guid + // {3F5A3E02-AF62-4c13-8D8A-A568ECAE238B} + DEFINE_GUID(guidTeamExplorerSharedCmdSet, + 0x3F5A3E02, 0xAF62, 0x4c13, 0x8D, 0x8A, 0xA5, 0x68, 0xEC, 0xAE, 0x23, 0x8B); + + + DEFINE_GUID (guidRefactorIcon, + 0x5d7e7f67, 0xa63f, 0x46ee, 0x84, 0xf1, 0x99, 0xb, 0x2c, 0xab, 0x23, 0xf3); + + // {B3285A19-6471-4150-AE05-18253F95FBCC} + DEFINE_GUID (guidGoToTypeDef, + 0xb3285a19, 0x6471, 0x4150, 0xae, 0x5, 0x18, 0x25, 0x3f, 0x95, 0xfb, 0xcc); + + // {E6EA7925-0FE6-4867-84EA-8BA78B7FDBEE} + DEFINE_GUID(guidGenerateMethodIcon, + 0xe6ea7925, 0xfe6, 0x4867, 0x84, 0xea, 0x8b, 0xa7, 0x8b, 0x7f, 0xdb, 0xee); + // {50AA77AC-6BB4-42A8-A4A2-F4CD407E80A8} + DEFINE_GUID (guidToggleCompletionMode, + 0x50AA77AC, 0x6BB4, 0x42A8, 0xa4, 0xa2, 0xf4, 0xcd, 0x40, 0x7e, 0x80, 0xa8); + + // Server Explorer menu group guid + // {74D21310-2AEE-11d1-8BFB-00A0C90F26F7} + DEFINE_GUID(guid_SE_MenuGroup, + 0x74d21310, 0x2aee, 0x11d1, 0x8b, 0xfb, 0x0, 0xa0, 0xc9, 0xf, 0x26, 0xf7); + + // Server Explorer command ID guid + // {74D21311-2AEE-11d1-8BFB-00A0C90F26F7} + DEFINE_GUID(guid_SE_CommandID, + 0x74d21311, 0x2aee, 0x11d1, 0x8b, 0xfb, 0x0, 0xa0, 0xc9, 0xf, 0x26, 0xf7); + + // UI Context GUID to enable the Tools->Connect To Server command + // {9BF70368-F5F7-4ddf-8CD2-FB27FBE0BD9C} + DEFINE_GUID(guidAppidSupportsConnectToServer, + 0x9bf70368, 0xf5f7, 0x4ddf, 0x8c, 0xd2, 0xfb, 0x27, 0xfb, 0xe0, 0xbd, 0x9c); + + // SQL Server Object Explorer command ID guid + // {03f46784-2f90-4122-91ec-72ff9e11d9a3} + DEFINE_GUID(guidSqlObjectExplorerCmdSet, + 0x03f46784, 0x2f90, 0x4122, 0x91, 0xec, 0x72, 0xff, 0x9e, 0x11, 0xd9, 0xa3); + +/////////////////////////////////////////////// +// +// Editor Shim CLSIDs from the Editor Shim Package (defined at Microsoft.VisualStudio.Editor.dll) +// +/////////////////////////////////////////////// + + // CLSID for VS10 Platform Factory + DEFINE_GUID(CLSID_PlatformFactory, + 0x2491432F, 0x3A10, 0x4884, 0xB6, 0x28, 0x57, 0x4D, 0x57, 0xF4, 0x1E, 0x9B); + + // CLSID for VsDocDataAdapter + DEFINE_GUID(CLSID_VsDocDataAdapter, + 0x169F2886, 0x6566, 0x432e, 0xA9, 0x3D, 0x55, 0x88, 0xBD, 0x58, 0x32, 0x29); + + // CLSID for VsTextBufferCoordinatorAdapter + DEFINE_GUID(CLSID_VsTextBufferCoordinatorAdapter, + 0x5FCEEA4C, 0xD49F, 0x4acd, 0xB8, 0x16, 0x13, 0x0A, 0x5D, 0xCD, 0x4C, 0x54); + + // CLSID for VsHiddenTextManagerAdapter + DEFINE_GUID(CLSID_VsHiddenTextManagerAdapter, + 0x85115CFE, 0x3F29, 0x4e52, 0xAE, 0x98, 0x6F, 0xE6, 0x25, 0x73, 0xD1, 0x1C); + + // GUID to get the IVxTextBuffer from the IVsUserData + DEFINE_GUID(GUID_VxTextBuffer, + 0xbe120c41, 0xd969, 0x42a4, 0xa4, 0xdd, 0x91, 0x26, 0x65, 0xa5, 0xbf, 0x13); + +#else //!DEFINE_GUID + // Guid if using Office provided icons + #define guidOfficeIcon { 0xd309f794, 0x903f, 0x11d0, { 0x9e, 0xfc, 0x00, 0xa0, 0xc9, 0x11, 0x00, 0x4f } } + // Guid for shell icons + #define guidVsShellIcons { 0x9cd93c42, 0xceef, 0x45ab, { 0xb1, 0xb5, 0x60, 0x40, 0x88, 0xc, 0x95, 0x43 } } + // Guid for the duplicate accelerator keys + #define guidKeyDupe { 0xf17bdae0, 0xa16d, 0x11d0, { 0x9f, 0x4, 0x0, 0xa0, 0xc9, 0x11, 0x0, 0x4f } } + // Guid for Shell's group and menu ids + #define guidSHLMainMenu { 0xd309f791, 0x903f, 0x11d0, { 0x9e, 0xfc, 0x00, 0xa0, 0xc9, 0x11, 0x00, 0x4f } } + // Guid for ClassView menu ids + #define guidClassViewMenu { 0xfb61dcfe, 0xc9cb, 0x4964, { 0x84, 0x26, 0xc2, 0xd3, 0x83, 0x34, 0x07, 0x8c } } + // Guid for CommonIDE package + #define guidCommonIDEPackage { 0x6E87CFAD, 0x6C05, 0x4adf, { 0x9C, 0xD7, 0x3B, 0x79, 0x43, 0x87, 0x5B, 0x7C } } + // Guid for CommonIDE package commands + #define guidCommonIDEPackageCmd { 0x6767e06b, 0x5789, 0x472b, { 0x8e, 0xd7, 0x1f, 0x20, 0x73, 0x71, 0x6e, 0x8c } } + // Guid for Standard Shell Commands (97 set) + #define CMDSETID_StandardCommandSet97 { 0x5efc7975, 0x14bc, 0x11cf, { 0x9b, 0x2b, 0x00, 0xaa, 0x00, 0x57, 0x38, 0x19 } } + // Guid for Standard Shell Commands (2k set) + #define CMDSETID_StandardCommandSet2K {0x1496A755, 0x94DE, 0x11D0, {0x8C, 0x3F, 0x00, 0xC0, 0x4F, 0xC2, 0xAA, 0xE2}} + // Guid for Standard Shell Commands (Dev10 set) + #define CMDSETID_StandardCommandSet10 {0x5dd0bb59, 0x7076, 0x4c59, {0x88, 0xd3, 0xde, 0x36, 0x93, 0x1f, 0x63, 0xf0}} + // Guid for Standard Shell Commands (Dev11 set) + #define CMDSETID_StandardCommandSet11 {0xd63db1f0, 0x404e, 0x4b21, {0x96, 0x48, 0xca, 0x8d, 0x99, 0x24, 0x5e, 0xc3}} + // Guid for Standard Shell Commands (Dev12 set) + #define CMDSETID_StandardCommandSet12 {0x2A8866DC, 0x7BDE, 0x4dc8, {0xA3, 0x60, 0xA6, 0x06, 0x79, 0x53, 0x43, 0x84}}; + // Guid for Standard Shell Commands (Dev14 set) + #define CMDSETID_StandardCommandSet14 {0x4c7763bf, 0x5faf, 0x4264, {0xa3, 0x66, 0xb7, 0xe1, 0xf2, 0x7b, 0xa9, 0x58}}; + // Guid for Standard Shell Commands (Dev15 set) + #define CMDSETID_StandardCommandSet15 {0x712c6c80, 0x883b, 0x4aad, {0xb4, 0x30, 0xbb, 0xca, 0x52, 0x56, 0xfa, 0x9d}}; + // Guid for the EzMDI file list menu private command set + #define CMDSETID_EzMDI {0x489ee5bf, 0xf001, 0x41c9, {0x91, 0xc7, 0x6e, 0x89, 0xd9, 0xc1, 0x11, 0xad}} + // Guid for the Emacs editor emulation command group + // {9A95F3AF-F86A-4aa2-80E6-012BF65DBBC3} + #define guidEmacsCommandGroup {0x9a95f3af, 0xf86a, 0x4aa2,{ 0x80, 0xe6, 0x1, 0x2b, 0xf6, 0x5d, 0xbb, 0xc3}} + // Guid for the Brief editor emulation command group + // {7A500D8A-8258-46c3-8965-6AC53ED6B4E7} + #define guidBriefCommandGroup {0x7a500d8a, 0x8258, 0x46c3,{ 0x89, 0x65, 0x6a, 0xc5, 0x3e, 0xd6, 0xb4, 0xe7}} + // Guid for DocOutline package commands + #define guidDocOutlinePkg { 0x21af45b0, 0xffa5, 0x11d0, { 0xb6, 0x3f, 0x00, 0xa0, 0xc9, 0x22, 0xe8, 0x51 } } + // Guid for TaskList package commands + #define CLSID_VsTaskListPackage { 0x4A9B7E50, 0xAA16, 0x11d0, { 0xA8, 0xC5, 0x00, 0xA0, 0xC9, 0x21, 0xA4, 0xD2 } } + // Guid for find/replace bitmaps... + #define guidFindIcon { 0x740EEC10, 0x1A5D, 0x11D1, { 0xA0, 0x30, 0x00, 0xA0, 0xC9, 0x11, 0xE8, 0xE9} } + // Guid for unified find bitmaps... + #define guidUFindIcon { 0xD7BECFE4, 0x1C1A, 0x4D32, { 0x8E, 0xD8, 0xF7, 0xDA, 0x4F, 0x89, 0x7E, 0x7B} } + // Guid for Bookmark window bitmaps... + #define guidBookmarkIcon { 0x7637b0ae, 0x7d52, 0x40a1, { 0x90, 0xba, 0x51, 0x94, 0x50, 0x57, 0x97, 0x9d } } + // Guid for Tool window goto bitmaps... {65ED2DB5-9942-4664-BA7C-CBE2B79AE7A8} + #define guidToolWindowGotoButtons { 0x65ed2db5, 0x9942, 0x4664, { 0xba, 0x7c, 0xcb, 0xe2, 0xb7, 0x9a, 0xe7, 0xa8 } } + // Guid for debugger bitmaps + #define guidDebuggerIcon { 0xb7afe65e, 0x3a96, 0x11d1, { 0xb0, 0x68, 0x0, 0xc0, 0x4f, 0xb6, 0x6f, 0xa0} } + // Guid for object browser buttons + #define guidObjectBrowserButtons { 0x5f810e80, 0x33ad, 0x11d1, { 0xa7, 0x96, 0x0, 0xa0, 0xc9, 0x11, 0x10, 0xc3 } } + // Guid for Call Browser buttons {F858DE97-54BF-4929-A039-62396ACACD8E} + #define guidCallBrowserButtons { 0xf858de97, 0x54bf, 0x4929, { 0xa0, 0x39, 0x62, 0x39, 0x6a, 0xca, 0xcd, 0x8e } } + // Guid for Call Hierarchy buttons {90C70706-ECC3-4d97-B80C-2CED9E7CC7EB} + #define guidCallHierarchyButtons { 0x90c70706, 0xecc3, 0x4d97, { 0xb8, 0xc, 0x2c, 0xed, 0x9e, 0x7c, 0xc7, 0xeb } } + // Guid for Code Definition View buttons {88892CCC-3565-4e34-BFF3-B9B0997FC195} + #define guidCodeDefViewButtons { 0x88892ccc, 0x3565, 0x4e34, { 0xbf, 0xf3, 0xb9, 0xb0, 0x99, 0x7f, 0xc1, 0x95 } } + // UIContext guid specifying that we're not in View Source mode + #define guidNotViewSourceMode {0x7174c6a0, 0xb93d, 0x11d1, {0x9f, 0xf4, 0x0, 0xa0, 0xc9, 0x11, 0x0, 0x4f} } + // Guid for text editor bitmaps... + #define guidTextEditorIcon { 0xc40a5a10, 0x3eeb, 0x11d3, { 0xaf, 0xe5, 0x0, 0x10, 0x5a, 0x99, 0x91, 0xef } } + // Guid for error / warning buttons... + #define guidErrorIcon { 0x7e65bae7, 0xd6fc, 0x4c65, { 0x89, 0x2d, 0xe2, 0xc9, 0xdc, 0xaa, 0xdd, 0xae } } + #define guidSharedMenuGroup { 0x234a7fc1, 0xcfe9, 0x4335, { 0x9e, 0x82, 0x6, 0x1f, 0x86, 0xe4, 0x02, 0xc1 } } + // guid for build cmd icons + #define guidBuildCmdIcons { 0x952691c5, 0x34d6, 0x462b, {0xac, 0x56, 0x9a, 0xb0, 0x97, 0x70, 0xa3, 0x0d}} + // {501822E1-B5AF-11d0-B4DC-00A0C91506EF} Guid for Data project commands + #define guidDataCmdId {0x501822e1, 0xb5af, 0x11d0, {0xb4, 0xdc, 0x00, 0xa0, 0xc9, 0x15, 0x06, 0xef}} + // {4614107F-217D-4bbf-9DFE-B9E165C65572} + #define guidVSData {0x4614107F, 0x217D, 0x4bbf, {0x9D, 0xFE, 0xB9, 0xE1, 0x65, 0xC6, 0x55, 0x72}} + //{732abe75-cd80-11d0-a2db-00aa00a3efff} + #define CMDSETID_DaVinciDataToolsCommandSet {0x732abe75, 0xcd80, 0x11d0, {0xa2, 0xdb, 0x00, 0xaa, 0x00, 0xa3, 0xef, 0xff} } + // {12F1A339-02B9-46e6-BDAF-1071F76056BF} + #define CMDSETID_WMAppCommand { 0x12f1a339, 0x02b9, 0x46e6, { 0xbd, 0xaf, 0x10, 0x71, 0xf7, 0x60, 0x56, 0xbf } } + #define CLSID_VsCommunityPackage { 0x490508dd, 0x32ce, 0x45e8, { 0x80, 0x8c, 0xfa, 0xeb, 0xf4, 0x68, 0xb1, 0x86 } } + // Guid for Yukon projects commands + // {462B036F-7349-4835-9E21-BEC60E989B9C} + #define guidVDTFlavorCmdSet { 0x462b036f, 0x7349, 0x4835, {0x9e, 0x21, 0xbe, 0xc6, 0x0e, 0x98, 0x9b, 0x9c } } + // Error List toolwindow icon + #define guidErrorListIcon { 0xbffbae07, 0x4ff7, 0x45da, { 0x88, 0x3e, 0x82, 0xcc, 0xdb, 0x85, 0xf1, 0xf8 } } + // Accessibility check button {EEF04648-250A-4360-8C2F-43CC063E198D} + #define guidAccessibilityIcon { 0xeef04648, 0x250a, 0x4360, { 0x8c, 0x2f, 0x43, 0xcc, 0x6, 0x3e, 0x19, 0x8d } } + // Server Explorer menu group {74D21310-2AEE-11d1-8BFB-00A0C90F26F7} + #define guid_SE_MenuGroup { 0x74d21310, 0x2aee, 0x11d1, { 0x8b, 0xfb, 0x0, 0xa0, 0xc9, 0xf, 0x26, 0xf7 } } + // Server Explorer command ID guid {74D21311-2AEE-11d1-8BFB-00A0C90F26F7} + #define guid_SE_CommandID { 0x74d21311, 0x2aee, 0x11d1, { 0x8b, 0xfb, 0x0, 0xa0, 0xc9, 0xf, 0x26, 0xf7 } } + // SQL Server Object Explorer command ID guid {03f46784-2f90-4122-91ec-72ff9e11d9a3} + #define guidSqlObjectExplorerCmdSet { 0x03f46784, 0x2f90, 0x4122, {0x91, 0xec, 0x72, 0xff, 0x9e, 0x11, 0xd9, 0xa3 } } + // UI Context GUID to enable the Tools->Connect To Server command {9BF70368-F5F7-4ddf-8CD2-FB27FBE0BD9C} + #define guidAppidSupportsConnectToServer { 0x9bf70368, 0xf5f7, 0x4ddf, { 0x8c, 0xd2, 0xfb, 0x27, 0xfb, 0xe0, 0xbd, 0x9c } } + //Guid for Extension Manager Package + #define guidExtensionManagerPkg { 0xe7576c05, 0x1874, 0x450c, { 0x9e, 0x98, 0xcf, 0x3a, 0x08, 0x97, 0xa0, 0x69 } } + // Guid for Extension Manager Icon + #define guidExtensionManagerIcon { 0x12ffec2c, 0x2df7, 0x49eb, { 0xa2, 0x92, 0x05, 0xc4, 0xa5, 0xf9, 0xc3, 0x54 } } + // Guid for puslish web Icon + #define guidPublishWebIcon { 0x69de971c, 0x8bb7, 0x4032, { 0x9e, 0x7d, 0x3d, 0x7c, 0x11, 0x5a, 0x63, 0x29 } } + + // ------------------------------------- + // Class View Selection UIContext guids. + // ------------------------------------- + + // {48903663-A165-4e4b-867D-90622B1E6E9C} + #define guidClassViewSelectionNamespace { 0x48903663, 0xa165, 0x4e4b, {0x86, 0x7d, 0x90, 0x62, 0x2b, 0x1e, 0x6e, 0x9c } } + + // {010FA539-D664-45c2-BD28-7C36F2AAA816} + #define guidClassViewMultiSelectionNamespaces { 0x10fa539, 0xd664, 0x45c2, {0xbd, 0x28, 0x7c, 0x36, 0xf2, 0xaa, 0xa8, 0x16 } } + + // {C5F62498-4EEE-423b-B12E-EA6FB3217215} + #define guidClassViewSelectionClass { 0xc5f62498, 0x4eee, 0x423b, {0xb1, 0x2e, 0xea, 0x6f, 0xb3, 0x21, 0x72, 0x15 } } + + // {767AF915-7282-49da-806E-9AC9614E78FC} + #define guidClassViewMultiSelectionClasses { 0x767af915, 0x7282, 0x49da, {0x80, 0x6e, 0x9a, 0xc9, 0x61, 0x4e, 0x78, 0xfc } } + + // {AF5D60D7-9F6C-4824-98E6-074E258790F8} + #define guidClassViewSelectionMember { 0xaf5d60d7, 0x9f6c, 0x4824, {0x98, 0xe6, 0x07, 0x4e, 0x25, 0x87, 0x90, 0xf8 } } + + // {C46D1701-7623-4bb2-A7E2-FB059D2B33E9} + #define guidClassViewMultiSelectionMembers { 0xc46d1701, 0x7623, 0x4bb2, {0xa7, 0xe2, 0xfb, 0x5, 0x9d, 0x2b, 0x33, 0xe9 } } + + // {5EE0E92B-13BD-491b-9518-40B2936F5E21} + #define guidClassViewMultiSelectionMixed { 0x5ee0e92b, 0x13bd, 0x491b, {0x95, 0x18, 0x40, 0xb2, 0x93, 0x6f, 0x5e, 0x21 } } + + // {57817069-31B7-4d3a-8B2C-8195EB7D216F} + #define guidClassViewSelectionPhysicalContainer { 0x57817069, 0x31b7, 0x4d3a, {0x8b, 0x2c, 0x81, 0x95, 0xeb, 0x7d, 0x21, 0x6f } } + + // {D584640A-388C-4e66-BB81-80969620D404} + #define guidClassViewMultiSelectionPhysicalContainers { 0xd584640a, 0x388c, 0x4e66, {0xbb, 0x81, 0x80, 0x96, 0x96, 0x20, 0xd4, 0x4 } } + + // {F19997FD-8C6E-4972-88BC-063181D4E88C} + #define guidClassViewSelectionHierarchy { 0xf19997fd, 0x8c6e, 0x4972, {0x88, 0xbc, 0x6, 0x31, 0x81, 0xd4, 0xe8, 0x8c } } + + // {2D502DA9-629C-4293-8B14-1312F4EBD89A} + #define guidClassViewSelectionMemberHierarchy { 0x2d502da9, 0x629c, 0x4293, {0x8b, 0x14, 0x13, 0x12, 0xf4, 0xeb, 0xd8, 0x9a } } + + // {C53A8676-1A8F-4673-9147-09A3E7D56CDA} + #define guidClassViewSelectionSupportsClassDesigner { 0xc53a8676, 0x1a8f, 0x4673, { 0x91, 0x47, 0x9, 0xa3, 0xe7, 0xd5, 0x6c, 0xda } } + + // ----------------------------------------- + // End Class View Selection UIContext guids. + // ----------------------------------------- + + // {84571F7F-1A90-41E0-9781-2610297FB09D} + #define guidDExploreApplicationObject { 0x84571F7F, 0x1A90, 0x41E0, {0x97, 0x81, 0x26, 0x10, 0x29, 0x7F, 0xB0, 0x9D } } + + // {8D8529D3-625D-4496-8354-3DAD630ECC1B} + #define guid_VSDesignerPackage { 0x8D8529D3, 0x625D, 0x4496, { 0x83, 0x54, 0x3D, 0xAD, 0x63, 0x0E, 0xCC, 0x1B } } + + // {640F725F-1B2D-4831-A9FD-874847682010} + #define guidServerExpIcon { 0x640F725F, 0x1B2D, 0x4831, {0xA9, 0xFD, 0x87, 0x48, 0x47, 0x68, 0x20, 0x10 } } + + // Guid for the View Definition Icon + // {5D82E0FE-9301-4B2B-8872-9E037943A681} + #define guidViewDefinitionIcon { 0x5d82e0fe, 0x9301, 0x4b2b, { 0x88, 0x72, 0x9e, 0x3, 0x79, 0x43, 0xa6, 0x81 } }; + +/////////////////////////////////////////////// +// +// VS Enterprise guids +// +/////////////////////////////////////////////// + + // VS Enterprise Cmd UIContext guid + // {07CA8E98-FF14-4e5e-9C4D-959C081B5E47} + #define guidTeamProjectCmdUIContext { 0x07CA8E98, 0xFF14, 0x4e5e, {0x9C, 0x4D, 0x95, 0x9C, 0x08, 0x1B, 0x5E, 0x47 } } + + // VS Enterprise Shared Commands guid + // {3F5A3E02-AF62-4c13-8D8A-A568ECAE238B} + #define guidTeamExplorerSharedCmdSet { 0x3F5A3E02, 0xAF62, 0x4c13, {0x8D, 0x8A, 0xA5, 0x68, 0xEC, 0xAE, 0x23, 0x8B } } + + + #define guidRefactorIcon { 0x5d7e7f67, 0xa63f, 0x46ee, { 0x84, 0xf1, 0x99, 0xb, 0x2c, 0xab, 0x23, 0xf3 } } + #define guidGoToTypeDef { 0xb3285a19, 0x6471, 0x4150, { 0xae, 0x5, 0x18, 0x25, 0x3f, 0x95, 0xfb, 0xcc } } + #define guidGenerateMethodIcon { 0xe6ea7925, 0x0fe6, 0x4867, { 0x84, 0xea, 0x8b, 0xa7, 0x8b, 0x7f, 0xdb, 0xee } } + #define guidToggleCompletionMode { 0x50AA77AC, 0x6BB4, 0x42A8, { 0xa4, 0xa2, 0xf4, 0xcd, 0x40, 0x7e, 0x80, 0xa8 } }; + + #define GUID_TextEditorFactory {0x8b382828, 0x6202, 0x11d1, {0x88, 0x70, 0x0, 0x0, 0xf8, 0x75, 0x79, 0xd2}} + +/////////////////////////////////////////////// +// +// Editor Shim CLSIDs from the Editor Shim Package (defined at Microsoft.VisualStudio.Editor.dll) +// +/////////////////////////////////////////////// + + // CLSID for VS10 Editor Factory + #define CLSID_VS10TextEditorFactory {0xdf25faa1, 0xe891, 0x49f6, {0x98, 0x23, 0x72, 0x63, 0x4a, 0x02, 0xa4, 0x05} } + + // CLSID for VS10 Editor Factory with encoding + #define CLSID_VS10TextEditorFactoryWithEncoding {0xC6BE297E, 0xC907, 0x4F43, {0x91, 0x20, 0x05, 0x3C, 0x19, 0x2E, 0xF5, 0x1E} } + + // CLSID for VS10 Platform Factory + #define CLSID_PlatformFactory {0x2491432F, 0x3A10, 0x4884, {0xB6, 0x28, 0x57, 0x4D, 0x57, 0xF4, 0x1E, 0x9B} } + + // CLSID for VsDocDataAdapter + #define CLSID_VsDocDataAdapter {0x169F2886, 0x6566, 0x432e, {0xA9, 0x3D, 0x55, 0x88, 0xBD, 0x58, 0x32, 0x29} } + + // CLSID for VsTextBufferCoordinatorAdapter + #define CLSID_VsTextBufferCoordinatorAdapter {0x5FCEEA4C, 0xD49F, 0x4acd, {0xB8, 0x16, 0x13, 0x0A, 0x5D, 0xCD, 0x4C, 0x54} } + + // CLSID for VsHiddenTextManagerAdapter + #define CLSID_VsHiddenTextManagerAdapter {0x85115CFE, 0x3F29, 0x4e52, {0xAE, 0x98, 0x6F, 0xE6, 0x25, 0x73, 0xD1, 0x1C} } + + // GUID to get the IVxTextBuffer from the IVsUserData + #define GUID_VxTextBuffer {0xbe120c41, 0xd969, 0x42a4, {0xa4, 0xdd, 0x91, 0x26, 0x65, 0xa5, 0xbf, 0x13} } + +#endif //!DEFINE_GUID + +#ifdef __CTC__ +// *** UIContext Guids for use by CTC parser only... +#define UICONTEXT_SolutionBuilding { 0xadfc4e60, 0x397, 0x11d1, { 0x9f, 0x4e, 0x0, 0xa0, 0xc9, 0x11, 0x0, 0x4f } } +#define UICONTEXT_Debugging { 0xadfc4e61, 0x397, 0x11d1, { 0x9f, 0x4e, 0x0, 0xa0, 0xc9, 0x11, 0x0, 0x4f } } +#define UICONTEXT_FullScreenMode { 0xadfc4e62, 0x397, 0x11d1, { 0x9f, 0x4e, 0x0, 0xa0, 0xc9, 0x11, 0x0, 0x4f } } +#define UICONTEXT_DesignMode { 0xadfc4e63, 0x397, 0x11d1, { 0x9f, 0x4e, 0x0, 0xa0, 0xc9, 0x11, 0x0, 0x4f } } +#define UICONTEXT_NoSolution { 0xadfc4e64, 0x397, 0x11d1, { 0x9f, 0x4e, 0x0, 0xa0, 0xc9, 0x11, 0x0, 0x4f } } +#define UICONTEXT_SolutionExists { 0xf1536ef8, 0x92ec, 0x443c, { 0x9e, 0xd7, 0xfd, 0xad, 0xf1, 0x50, 0xda, 0x82 } } +#define UICONTEXT_EmptySolution { 0xadfc4e65, 0x397, 0x11d1, { 0x9f, 0x4e, 0x0, 0xa0, 0xc9, 0x11, 0x0, 0x4f } } +#define UICONTEXT_SolutionHasSingleProject { 0xadfc4e66, 0x397, 0x11d1, { 0x9f, 0x4e, 0x0, 0xa0, 0xc9, 0x11, 0x0, 0x4f } } +#define UICONTEXT_SolutionHasMultipleProjects { 0x93694fa0, 0x397, 0x11d1, { 0x9f, 0x4e, 0x0, 0xa0, 0xc9, 0x11, 0x0, 0x4f } } +#define UICONTEXT_CodeWindow { 0x8fe2df1d, 0xe0da, 0x4ebe, { 0x9d, 0x5c, 0x41, 0x5d, 0x40, 0xe4, 0x87, 0xb5 } } +#define UICONTEXT_NotBuildingAndNotDebugging { 0x48ea4a80, 0xf14e, 0x4107, { 0x88, 0xfa, 0x8d, 0x0, 0x16, 0xf3, 0xb, 0x9c } } //VS 2005 Bug #35207 add new cmdUIGuid +#define UICONTEXT_SolutionExistsAndNotBuildingAndNotDebugging { 0xd0e4deec, 0x1b53, 0x4cda, { 0x85, 0x59, 0xd4, 0x54, 0x58, 0x3a, 0xd2, 0x3b } } +#define UICONTEXT_SolutionHasAppContainerProject { 0x7CAC4AE1, 0x2E6B, 0x4B02, { 0xA9, 0x1C, 0x71, 0x61, 0x1E, 0x86, 0xF2, 0x73 } } +// from vsshell110.h +#define UICONTEXT_OsWindows8OrHigher { 0x67CFF80C, 0x0863, 0x4202, { 0xA4, 0xE4, 0xCE, 0x80, 0xFD, 0xF8, 0x50, 0x6E } } +#endif //__CTC__ + +#define guidVSStd97 CMDSETID_StandardCommandSet97 +#define CLSID_StandardCommandSet97 CMDSETID_StandardCommandSet97 + +#define guidVSStd2K CMDSETID_StandardCommandSet2K +#define guidVSStd10 CMDSETID_StandardCommandSet10 +#define CLSID_StandardCommandSet10 CMDSETID_StandardCommandSet10 +#define guidVSStd11 CMDSETID_StandardCommandSet11 +#define CLSID_StandardCommandSet11 CMDSETID_StandardCommandSet11 +#define guidVSStd12 CMDSETID_StandardCommandSet12 +#define CLSID_StandardCommandSet12 CMDSETID_StandardCommandSet12 +#define guidEzMDI CMDSETID_EzMDI +#define CLSID_StandardCommandSet2K CMDSETID_StandardCommandSet2K +#define CLSID_CTextViewCommandGroup CMDSETID_StandardCommandSet2K +#define CLSID_TCG CMDSETID_StandardCommandSet2K +#define CLSID_ECG CMDSETID_StandardCommandSet2K +#define guidDavDataCmdId CMDSETID_DaVinciDataToolsCommandSet +#define guidVSStd14 CMDSETID_StandardCommandSet14 +#define CLSID_StandardCommandSet14 CMDSETID_StandardCommandSet14 +#define guidVSStd15 CMDSETID_StandardCommandSet15 +#define CLSID_StandardCommandSet15 CMDSETID_StandardCommandSet15 + +// Standard editor guid. +#define guidStdEditor {0x9ADF33D0, 0x8AAD, 0x11d0, {0xB6, 0x06, 0x00, 0xA0, 0xC9, 0x22, 0xE8, 0x51} } + + + + +// Standard editor shorthand macros for a more compact and manageable table +#define guidStdEd guidStdEditor +#define guidStdEdCmd guidStdEditor:IDG_VS_EDITOR_CMDS +#define guidStdEdBmkFld guidStdEditor:IDG_VS_EDITOR_BOOKMARK_FOLDER_CMDS // Bookmark commands restricted to a folder +#define guidStdEdBmkDoc guidStdEditor:IDG_VS_EDITOR_BOOKMARK_DOCUMENT_CMDS // Bookmark commands restricted to a document +#define guidStdEdBmkAllDocs guidStdEditor:IDG_VS_EDITOR_BOOKMARK_ALLDOCS_CMDS // Bookmark commands that operate on all files +#define guidStdEdBmkTskLst guidStdEditor:IDG_VS_EDITOR_BOOKMARK_TASKLIST_CMDS // Tasklist shortcut commands +#define guidStdEdAdv guidStdEditor:IDG_VS_EDITOR_ADVANCED_CMDS +#define guidStdEdOut guidStdEditor:IDG_VS_EDITOR_OUTLINING_CMDS +#define guidStdLang guidStdEditor:IDG_VS_EDITOR_LANGUAGE_INFO +#define guidStdEdIntel guidStdEditor:IDG_VS_EDITOR_INTELLISENSE_CMDS +#endif //!NOGUIDS + +////////////////////////////////////////////////////////////////////////////// +// +// Toolbar Identifiers, created by Visual Studio Shell +// +////////////////////////////////////////////////////////////////////////////// +#define IDM_VS_TOOL_MAINMENU 0x0000 +#define IDM_VS_TOOL_STANDARD 0x0001 +#define IDM_VS_TOOL_WINDOWUI 0x0002 +#define IDM_VS_TOOL_PROJWIN 0x0003 +#define IDM_VS_TOOL_DEBUGGER 0x0006 +#define IDM_VS_TOOL_OBJECT_BROWSER_GO 0x0007 +#define IDM_VS_TOOL_CLASSVIEW_GO 0x0008 +#define IDM_VS_TOOL_OBJSEARCH 0x0009 +#define IDM_VS_TOOL_FINDALLREF 0x000a +#define IDM_VS_TOOL_OPENWINDOWS 0x000b +#define IDM_VS_TOOL_VIEWBAR 0x000c +#define IDM_VS_TOOL_BUILD 0x000d +#define IDM_VS_TOOL_TEXTEDITOR 0x000e +#define IDM_VS_TOOL_OBJBROWSER 0x000f +#define IDM_VS_TOOL_CLASSVIEW 0x0010 +#define IDM_VS_TOOL_PROPERTIES 0x0011 +#define IDM_VS_TOOL_DATA 0x0012 +#define IDM_VS_TOOL_SCHEMA 0x0013 +#define IDM_VS_TOOL_OUTPUTWINDOW 0x0014 +#define IDM_VS_TOOL_FINDRESULTS1 0x0015 +#define IDM_VS_TOOL_FINDRESULTS2 0x0016 +#define IDM_VS_TOOL_UNIFIEDFIND 0x0017 +//UNUSED 0x0018 +#define IDM_VS_TOOL_BOOKMARKWIND 0x0019 +#define IDM_VS_TOOL_CALLBROWSER1 0x001a +#define IDM_VS_TOOL_CALLBROWSER2 0x001b +#define IDM_VS_TOOL_CALLBROWSER3 0x001c +#define IDM_VS_TOOL_CALLBROWSER4 0x001d +#define IDM_VS_TOOL_CALLBROWSER5 0x001e +#define IDM_VS_TOOL_CALLBROWSER6 0x001f +#define IDM_VS_TOOL_CALLBROWSER7 0x0020 +#define IDM_VS_TOOL_CALLBROWSER8 0x0021 +#define IDM_VS_TOOL_CALLBROWSER9 0x0022 +#define IDM_VS_TOOL_CALLBROWSER10 0x0023 +#define IDM_VS_TOOL_CALLBROWSER11 0x0024 +#define IDM_VS_TOOL_CALLBROWSER12 0x0025 +#define IDM_VS_TOOL_CALLBROWSER13 0x0026 +#define IDM_VS_TOOL_CALLBROWSER14 0x0027 +#define IDM_VS_TOOL_CALLBROWSER15 0x0028 +#define IDM_VS_TOOL_CALLBROWSER16 0x0029 +#define IDM_VS_TOOL_TASKLIST 0x002a +#define IDM_VS_TOOL_USERTASKS 0x002b +#define IDM_VS_TOOL_ERRORLIST 0x002c +#define IDM_VS_TOOL_SNIPPETMENUS 0x002D + +#define IDM_VS_CALLBROWSER_TYPE_POPUP 0x0030 + +////////////////////////////////////////////////////////////////////////////// +// Toolbar ID for customize mode only +// +// **** NOTE **** DO NOT add any menu or toolbar that has an ID greater than +// IDM_VS_TOOL_ADDCOMMAND, otherwise you WILL break customize +// mode. IDM_VS_TOOL_UDEFINED is a very special toolbar. +// Do not use or place it anywhere - used by shell only. +////////////////////////////////////////////////////////////////////////////// +#define IDM_VS_TOOL_UNDEFINED 0xEDFF +#define IDM_VS_TOOL_ADDCOMMAND 0xEE00 + +////////////////////////////////////////////////////////////////////////////// +// +// Menu Identifiers, created by Visual Studio Shell +// +////////////////////////////////////////////////////////////////////////////// +#define IDM_VS_MENU_FILE 0x0080 +#define IDM_VS_MENU_EDIT 0x0081 +#define IDM_VS_MENU_VIEW 0x0082 +#define IDM_VS_MENU_PROJECT 0x0083 +#define IDM_VS_MENU_TOOLS 0x0085 +#define IDM_VS_MENU_WINDOW 0x0086 +#define IDM_VS_MENU_ADDINS 0x0087 +#define IDM_VS_MENU_HELP 0x0088 +#define IDM_VS_MENU_DEBUG 0x0089 +#define IDM_VS_MENU_FORMAT 0x008A +#define IDM_VS_MENU_ALLMACROS 0x008B +#define IDM_VS_MENU_BUILD 0x008C +#define IDM_VS_MENU_CONTEXTMENUS 0x008D +#define IDG_VS_MENU_CONTEXTMENUS 0x008E +#define IDM_VS_MENU_REFACTORING 0x008f +#define IDM_VS_MENU_COMMUNITY 0x0090 + +/////////////////////////////////////////////// +// +// Editor menu groups +// +/////////////////////////////////////////////// +#define IDG_VS_EDITOR_CMDS 0x3E8A + +#define IDG_VS_EDITOR_BOOKMARK_FOLDER_CMDS 0x3EB0 +#define IDG_VS_EDITOR_BOOKMARK_DOCUMENT_CMDS 0x3EB1 +#define IDG_VS_EDITOR_BOOKMARK_ALLDOCS_CMDS 0x3EB2 +#define IDG_VS_EDITOR_BOOKMARK_TASKLIST_CMDS 0x3EB3 + +#define IDG_VS_EDITOR_ADVANCED_CMDS 0x3E8F +#define IDG_VS_EDITOR_OUTLINING_CMDS 0x3E90 +#define IDG_VS_EDITOR_LANGUAGE_INFO 0x3E93 +#define IDG_VS_EDITOR_INTELLISENSE_CMDS 0x3E94 +#define IDG_TOOLS_SNIPPETS 0x3E95 //actually on the tools menu defined above + +#define IDM_VS_EDITOR_BOOKMARK_MENU 0x3E9E +#define IDM_VS_EDITOR_ADVANCED_MENU 0x3EA0 +#define IDM_VS_EDITOR_OUTLINING_MENU 0x3EA1 +#define IDM_VS_EDITOR_INTELLISENSE_MENU 0x3EA2 +#define IDM_VS_EDITOR_FIND_MENU 0x3EA3 +#define IDM_VS_EDITOR_PASTE_MENU 0x3EA4 +#define IDM_VS_EDITOR_GOTO_MENU 0x3EA5 + +////////////////////////////////////////////////////////////////////////////// +// +// Group Identifiers, created by Visual Studio Shell +// +////////////////////////////////////////////////////////////////////////////// + +// Main Menu Bar Groups +#define IDG_VS_MM_FILEEDITVIEW 0x0101 // File/Edit/View menus go here +#define IDG_VS_MM_PROJECT 0x0102 // Project menu go here +#define IDG_VS_MM_BUILDDEBUGRUN 0x0103 // Build/Debug/Run menus go here +#define IDG_VS_MM_TOOLSADDINS 0x0104 // Tools/Addins menu goes here +#define IDG_VS_MM_WINDOWHELP 0x0105 // Window/Help menus go here +#define IDG_VS_MM_FULLSCREENBAR 0x0106 // Full Screen group +//VS 2005 Bug #58088 Put refactorings on top-level menu +#define IDG_VS_MM_REFACTORING 0x0107 // Refactorings go here +#define IDG_VS_MM_REFACTORING_JS 0x0108 // VS 2005 bug #275998 + +// All Macros Groups +#define IDG_VS_MM_MACROS 0x010A + +// File Menu Groups +#define IDG_VS_FILE_NEW_PROJ_CSCD 0x010E +#define IDG_VS_FILE_ITEM 0x010F +#define IDG_VS_FILE_FILE 0x0110 +#define IDG_VS_FILE_ADD 0x0111 +#define IDG_VS_FILE_SAVE 0x0112 +#define IDG_VS_FILE_RENAME 0x0113 +#define IDG_VS_FILE_PRINT 0x0114 +#define IDG_VS_FILE_ACCOUNTSETTINGS 0x0711 +#define IDG_VS_FILE_MRU 0x0115 +#define IDG_VS_FILE_EXIT 0x0116 +#define IDG_VS_FILE_DELETE 0x0117 +#define IDG_VS_FILE_SOLUTION 0x0118 +#define IDG_VS_FILE_NEW_CASCADE 0x0119 +#define IDG_VS_FILE_OPENP_CASCADE 0x011A +#define IDG_VS_FILE_OPENF_CASCADE 0x011B +#define IDG_VS_FILE_ADD_PROJECT_NEW 0x011C +#define IDG_VS_FILE_ADD_PROJECT_EXI 0x011D +#define IDG_VS_FILE_FMRU_CASCADE 0x011E +#define IDG_VS_FILE_PMRU_CASCADE 0x011F +#define IDG_VS_FILE_BROWSER 0x0120 +#define IDG_VS_FILE_MOVE 0x0121 +#define IDG_VS_FILE_MOVE_CASCADE 0x0122 +#define IDG_VS_FILE_MOVE_PICKER 0x0123 +#define IDG_VS_FILE_MISC 0x0124 +#define IDG_VS_FILE_MISC_CASCADE 0x0125 +#define IDG_VS_FILE_MAKE_EXE 0x0126 +#define IDG_VS_FILE_OPENSCC_CASCADE 0x0127 + +// Edit Menu Groups +#define IDG_VS_EDIT_OBJECTS 0x0128 +#define IDG_VS_EDIT_UNDOREDO 0x0129 +#define IDG_VS_EDIT_CUTCOPY 0x012A +#define IDG_VS_EDIT_SELECT 0x012B +#define IDG_VS_EDIT_FIND 0x012C +#define IDG_VS_EDIT_GOTO 0x012D +#define IDG_VS_EDIT_COMMANDWELL 0x012E +#define IDG_VS_EDIT_PASTE 0x012F + +// View Menu Groups +#define IDG_VS_VIEW_BROWSER 0x0130 +#define IDG_VS_VIEW_PROPPAGES 0x0131 +#define IDG_VS_VIEW_TOOLBARS 0x0132 +#define IDG_VS_VIEW_FORMCODE 0x0133 +#define IDG_VS_VIEW_DEFINEVIEWS 0x0134 +#define IDG_VS_VIEW_WINDOWS 0x0135 +#define IDG_VS_VIEW_ARCH_WINDOWS 0x0720 +#define IDG_VS_VIEW_ORG_WINDOWS 0x0721 +#define IDG_VS_VIEW_CODEBROWSENAV_WINDOWS 0x0722 +#define IDG_VS_VIEW_DEV_WINDOWS 0x0723 +#define IDG_VS_WNDO_FINDRESULTS 0x0724 +#define IDG_VS_VIEW_REFRESH 0x0136 +#define IDG_VS_VIEW_NAVIGATE 0x0137 +#define IDG_VS_VIEW_SYMBOLNAVIGATE 0x0138 +#define IDG_VS_VIEW_SMALLNAVIGATE 0x0139 +#define IDG_VS_VIEW_OBJBRWSR 0x013A +#define IDG_VS_VIEW_LINKS 0x013B +#define IDG_VS_VIEW_COMMANDWELL 0x013C +#define IDG_VS_VIEW_SYMBOLNAVIGATE_JS 0x013D // VS 2005 bug #303148 + +// Project Menu Groups +#define IDG_VS_PROJ_ADD 0x0140 +#define IDG_VS_PROJ_OPTIONS 0x0141 +#define IDG_VS_PROJ_REFERENCE 0x0142 +#define IDG_VS_PROJ_FOLDER 0x0143 +#define IDG_VS_PROJ_UNLOADRELOAD 0x0144 +#define IDG_VS_PROJ_ADDCODE 0x0145 +#define IDG_VS_PROJ_PROJECT 0x0146 +#define IDG_VS_PROJ_ADDREMOVE 0x0147 +#define IDG_VS_PROJ_WEB1 0x0148 +#define IDG_VS_PROJ_WEB2 0x0149 +#define IDG_VS_PROJ_TOOLBAR1 0x014A +#define IDG_VS_PROJ_TOOLBAR2 0x014B +#define IDG_VS_PROJ_MISCADD 0x014C +#define IDG_VS_PROJ_SETTINGS 0x014D +#define IDG_VS_PROJ_ADMIN 0x014E + +// Run Menu Groups +#define IDG_VS_RUN_START 0x0150 +#define IDG_VS_DBG_STEP 0x0151 +#define IDG_VS_DBG_WATCH 0x0152 +#define IDG_VS_DBG_BRKPTS 0x0153 +#define IDG_VS_DBG_STATEMENT 0x0154 +#define IDG_VS_DBG_ATTACH 0x0155 +#define IDG_VS_DBG_TBBRKPTS 0x0156 +#define IDG_VS_DBG_DBGWINDOWS 0x0157 // this actually resides on the debugger toolbar + +//Tools->External Tools Groups +#define IDG_VS_TOOLS_EXT_CUST 0x0158 +#define IDG_VS_TOOLS_EXT_TOOLS 0x0159 + +// Tools Menu Groups +#define IDG_VS_TOOLS_OPTIONS 0x015A +#define IDG_VS_TOOLS_OTHER2 0x015B +#define IDG_VS_TOOLS_OBJSUBSET 0x015C +#define IDG_VS_TOOLS_EXTENSIBILITY 0x015F + +// Addins Menu Groups +#define IDG_VS_ADDIN_BUILTIN 0x015D +#define IDG_VS_ADDIN_MANAGER 0x015E + +// Window Menu Groups +#define IDG_VS_WINDOW_NEW 0x0160 +#define IDG_VS_WINDOW_ARRANGE 0x0161 +#define IDG_VS_WINDOW_LIST 0x0162 +#define IDG_VS_WINDOW_NAVIGATION 0x0163 +#define IDG_VS_WINDOW_LAYOUT 0x0164 +#define IDG_VS_WINDOW_LAYOUT_LIST 0x0165 + +// Help Menu Groups +#define IDG_VS_HELP_SUPPORT 0x016A +#define IDG_VS_HELP_ABOUT 0x016B +#define IDG_VS_HELP_ACCESSIBILITY 0x016D +//#define IDG_VS_HELP_SAMPLES 0x016C + + +// Standard Toolbar Groups +#define IDG_VS_TOOLSB_NEWADD 0x0170 +#define IDG_VS_TOOLSB_SAVEOPEN 0x0171 +#define IDG_VS_TOOLSB_CUTCOPY 0x0172 +#define IDG_VS_TOOLSB_UNDOREDO 0x0173 +#define IDG_VS_TOOLSB_RUNBUILD 0x0174 +#define IDG_VS_TOOLSB_WINDOWS 0x0175 // don't use +#define IDG_VS_TOOLSB_GAUGE 0x0176 +#define IDG_VS_TOOLSB_SEARCH 0x0177 +#define IDG_VS_TOOLSB_NEWWINDOWS 0x0178 +#define IDG_VS_TOOLSB_NAVIGATE 0x0179 +#define IDG_VS_FINDTAB 0x017D +#define IDG_VS_REPLACETAB 0x017E + +// Window UI Toolbar Groups +#define IDG_VS_WINDOWUI_LOADSAVE 0x017A + +// Open Windows Toolbar Groups +#define IDG_VS_OPENWIN_WINDOWS 0x017B + +// View Bar Toolbar Groups +#define IDG_VS_VIEWBAR_VIEWS 0x017C + +// Watch context menu groups +#define IDG_VS_WATCH_EDITADDDEL 0x0180 +//#define IDG_VS_WATCH_COLLAPSE 0x0181 +#define IDG_VS_WATCH_PROCDEFN 0x0182 +#define IDG_VS_WATCH_STARTEND 0x0183 + +// Thread context menu groups +#define IDG_VS_THREAD_SUSPENDRESUME 0x0184 + +// Hexadecimal group +#define IDG_VS_DEBUG_DISPLAYRADIX 0x0185 + +// Treegrid context menu +#define IDG_VS_TREEGRID 0x0186 + +// Immediate context menu groups +#define IDG_VS_IMMD_OBPROCDEFN 0x0188 + +// Docking / Hide Pane Group +#define IDG_VS_DOCKCLOSE 0x0189 +#define IDG_VS_DOCKHIDE 0x0190 +#define IDG_VS_DOCUMENTDOCKHIDE 0x0192 + +// Thread context menu groups +#define IDG_VS_CALLST_RUNTOCURSOR 0x0191 +// 0x0192 is used above in IDG_VS_DOCUMENTDOCKHIDE + +// MenuDesigner Context Menu Groups +#define IDG_VS_MNUDES_CUTCOPY 0x0195 +#define IDG_VS_MNUDES_INSERT 0x0196 +#define IDG_VS_MNUDES_EDITNAMES 0x0197 +#define IDG_VS_MNUDES_VIEWCODE 0x0198 +#define IDG_VS_MNUDES_PROPERTIES 0x0199 + +#define IDG_VS_MNUDES_UNDOREDO 0x019A + +// Window Menu Cascade groups +#define IDG_VS_WNDO_OTRWNDWS0 0x019E +#define IDG_VS_WNDO_OTRWNDWS1 0x019F +#define IDG_VS_WNDO_OTRWNDWS2 0x01A0 +#define IDG_VS_WNDO_OTRWNDWS3 0x01A1 +#define IDG_VS_WNDO_OTRWNDWS4 0x01A2 +#define IDG_VS_WNDO_OTRWNDWS5 0x01A3 +#define IDG_VS_WNDO_OTRWNDWS6 0x01A4 +#define IDG_VS_WNDO_WINDOWS1 0x01A5 +#define IDG_VS_WNDO_WINDOWS2 0x01A6 +#define IDG_VS_WNDO_DBGWINDOWS IDG_VS_WNDO_WINDOWS1 +#define IDG_VS_WNDO_INTERACTIVEWNDWS 0x01A7 + +// OLE Verbs Menu Cascade groups +#define IDG_VS_EDIT_OLEVERBS 0x01A8 + +// PropBrs Context menu groups +#define IDG_VS_PROPBRS_MISC 0x01AA + +// Output Window Pane Context menu groups +#define IDG_VS_RESULTSLISTCOPY 0x01AC +#define IDG_VS_RESULTSLISTCLEAR 0x01AD +#define IDG_VS_RESULTSLISTGOTO 0x01AE +#define IDG_VS_RESULTSLISTOUTLINE 0x01AF + +// New Toolbox Context Menu groups +#define IDG_VS_TOOLBOX_ACTIONS 0x01B0 +#define IDG_VS_TOOLBOX_ITEM 0x01B1 +#define IDG_VS_TOOLBOX_TAB 0x01B2 +#define IDG_VS_TOOLBOX_MOVE 0x01B3 +#define IDG_VS_TOOLBOX_VIEW 0x01B4 + +// Miscellaneous Files project context menu groups +#define IDG_VS_MISCFILES_PROJ 0x01B8 + +// Miscellaneous Files project item context menu groups +#define IDG_VS_MISCFILES_PROJITEM 0x01BA + +// Solution Items project item context menu groups +#define IDG_VS_SOLNITEMS_PROJ 0x01BC +#define IDG_VS_SOLNITEMS_PROJITEM 0x01BD + +// Stub (unloaded/placeholder) project context menu groups +#define IDG_VS_STUB_PROJECT 0x01BE + +// Code Window context menu groups +#define IDG_VS_CODEWIN_TEXTEDIT 0x01C0 +//#define unused menu ID 0x01C1 +#define IDG_VS_CODEWIN_DEBUG_WATCH 0x01C2 +#define IDG_VS_CODEWIN_DEBUG_STEP 0x01C3 +#define IDG_VS_CODEWIN_MARKER 0x01C4 +#define IDG_VS_CODEWIN_OPENURL 0x01C5 +#define IDG_VS_CODEWIN_SHORTCUT 0x01C6 + +#define IDG_VS_CODEWIN_INTELLISENSE 0x02B0 +#define IDG_VS_CODEWIN_NAVIGATETOLOCATION 0x02B1 +#define IDG_VS_CODEWIN_NAVIGATETOFILE 0x02B2 +#define IDG_VS_CODEWIN_OUTLINING 0x02B3 +#define IDG_VS_CODEWIN_CTXT_OUTLINING 0x02B4 +#define IDG_VS_CODEWIN_REFACTORING 0x02b5 +// 0x02B6 used below in IDG_VS_FINDRESULTS1_STOPFIND +// 0x02B7 used below in IDG_VS_FINDRESULTS2_STOPFIND +#define IDG_VS_CODEWIN_REFACTORING_JS 0x02b8 // VS 2005 bug #275998 +#define IDG_VS_CODEWIN_LANGUAGE 0x02D0 +#define IDG_VS_CODEWIN_ADVANCED 0x02D1 + +// Snippet flyout menu and groups +#define IDG_VS_CODEWIN_SNIPPETS 0x02D2 +#define IDM_VS_CODEWIN_SNIPPET_ROOT 0x02D3 +#define IDG_VS_CODEWIN_SNIPPET_ROOT 0x02D4 + + +// Annotation flyout menu and groups +#define IDG_VS_CODEWIN_ANNOTATION 0x02D5 +#define IDM_VS_CODEWIN_ANNOTATION_ROOT 0x02D6 +#define IDG_VS_CODEWIN_ANNOTATION_ROOT 0x02D7 + +// IntelliTrace step menu groups. +#define IDG_VS_CODEWIN_INTELLITRACE_STEP 0x02D8 + +// Task List context menu groups +#define IDG_VS_TASKLIST 0x01C7 +#define IDG_VS_ERRORLIST 0x01CB + +// cascading Task list menu groups +#define IDG_VS_TASKLIST_SORT 0x01C8 +#define IDG_VS_TASKLIST_NEXTPREV_ERR 0x01C9 +#define IDG_VS_TASKLIST_CLIENT 0x01CA +// 0x01CB used above (IDG_VS_ERRORLIST) +#define IDG_VS_ERRORLIST_CLIENT 0x01CC +#define IDG_VS_ERRORLIST_NEXTPREV_ERR 0x01CD +#define IDG_VS_TASKLIST_GROUPS 0x01CE +#define IDG_VS_TASKLIST_COLUMNS 0x01CF + +#define IDG_VS_TASKLIST_SORT_COLUMN 0x01D0 + +// Tasklist toolbar provider list group +#define IDG_VS_TASKLIST_PROVIDERLIST 0x01D1 + +// Build toolbar group +#define IDG_VS_BUILDBAR 0x01D2 + +// User Tasks toolbar group +#define IDG_VS_USERTASKS_EDIT 0x01D3 + +// Error List toolbar group +#define IDG_VS_ERRORLIST_ERRORGROUP 0x01D4 + +// Project Window Toolbar group +#define IDG_VS_PROJ_TOOLBAR3 0x01D5 +#define IDG_VS_PROJ_TOOLBAR4 0x01D6 +#define IDG_VS_PROJ_TOOLBAR5 0x01D7 + +// More error list toolbar groups -- see IDG_VS_ERRORLIST_ERRORGROUP above +#define IDG_VS_ERRORLIST_WARNINGGROUP 0x01D8 +#define IDG_VS_ERRORLIST_MESSAGEGROUP 0x01D9 +#define IDG_VS_ERRORLIST_FILTERLISTTOGROUP 0x01DA +#define IDG_VS_ERRORLIST_FILTERCATEGORIESGROUP 0x01DB +#define IDG_VS_ERRORLIST_BUILDGROUP 0x01DC +#define IDG_VS_ERRORLIST_CLEARFILTERGROUP 0x01DD + +// Solution Node ctxt menu groups +#define IDG_VS_SOLNNODE_CTXT_TOP 0x01E0 +#define IDG_VS_SOLNNODE_CTXT_BOTTOM 0x01E1 + +// Project Window Default group +#define IDG_VS_PROJWIN_NODE_CTXT_TOP 0x01E2 +#define IDG_VS_PROJWIN_NODE_CTXT_BOTTOM 0x01E3 +#define IDG_VS_PROJWIN_ITEM_CTXT_TOP 0x01E4 +#define IDG_VS_PROJWIN_ITEM_CTXT_BOTTOM 0x01E5 + +// Document Window Default groups +#define IDG_VS_DOCWINDOW_CTXT_TOP 0x01E6 +#define IDG_VS_DOCWINDOW_CTXT_BOTTOM 0x01E7 + +// Tool Window Default groups +#define IDG_VS_TOOLWINDOW_CTXT_TOP 0x01E8 +#define IDG_VS_TOOLWINDOW_CTXT_BOTTOM 0x01E9 + +// EZ MDI groups +#define IDG_VS_EZ_TILE 0x01EA +#define IDG_VS_EZ_CANCEL 0x01EB +#define IDG_VS_EZ_DOCWINDOWOPS 0x01EC +#define IDG_VS_EZ_DOCWINDOWPATHOPS 0x01ED + +// Pinned Tabs +#define IDG_VS_PINNEDTABS 0x01EE + +// Debugger Group +#define IDG_VS_TOOL_DEBUGGER 0x0200 + +// Shell defined context menu groups +#define IDG_VS_CTXT_MULTIPROJ_BUILD 0x0201 +#define IDG_VS_CTXT_PROJECT_ADD 0x0202 +#define IDG_VS_CTXT_PROJECT_ADD_ITEMS 0x0203 +#define IDG_VS_CTXT_PROJECT_DEBUG 0x0204 +#define IDG_VS_CTXT_PROJECT_START 0x0205 +#define IDG_VS_CTXT_PROJECT_BUILD 0x0206 +#define IDG_VS_CTXT_PROJECT_TRANSFER 0x0207 +#define IDG_VS_CTXT_ITEM_VIEWOBJECT 0x0208 +#define IDG_VS_CTXT_ITEM_OPEN 0x0209 +#define IDG_VS_CTXT_ITEM_TRANSFER 0x020A +#define IDG_VS_CTXT_ITEM_VIEWBROWSER 0x020B +#define IDG_VS_CTXT_SAVE 0x020C +#define IDG_VS_CTXT_ITEM_PRINT 0x020D +#define IDG_VS_CTXT_ITEM_PROPERTIES 0x020E +#define IDG_VS_CTXT_SCC 0x020F +#define IDG_VS_CTXT_ITEM_RENAME 0x0210 +#define IDG_VS_CTXT_PROJECT_RENAME 0x0211 +#define IDG_VS_CTXT_SOLUTION_RENAME 0x0212 +#define IDG_VS_CTXT_ITEM_SAVE IDG_VS_CTXT_SAVE +#define IDG_VS_CTXT_PROJECT_SAVE 0x0213 +#define IDG_VS_CTXT_PROJECT_PROPERTIES 0x0214 +#define IDG_VS_CTXT_SOLUTION_PROPERTIES 0x0215 +#define IDG_VS_CTXT_ITEM_SCC IDG_VS_CTXT_SCC +#define IDG_VS_CTXT_PROJECT_SCC 0x0216 +#define IDG_VS_CTXT_SOLUTION_SCC 0x0217 + +#define IDG_VS_CTXT_SOLUTION_SAVE 0x0218 +#define IDG_VS_CTXT_SOLUTION_BUILD 0x0219 +#define IDG_VS_UNUSED 0x021A // unused group for hidden cmds +#define IDG_VS_CTXT_SOLUTION_START 0x021B +#define IDG_VS_CTXT_SOLUTION_TRANSFER 0x021C +#define IDG_VS_CTXT_SOLUTION_ADD_PROJ 0x021D +#define IDG_VS_CTXT_SOLUTION_ADD_ITEM 0x021E +#define IDG_VS_CTXT_SOLUTION_DEBUG 0x021F + +#define IDG_VS_CTXT_DOCOUTLINE 0x0220 +#define IDG_VS_CTXT_NOCOMMANDS 0x0221 + +#define IDG_VS_TOOLS_CMDLINE 0x0222 +#define IDG_VS_TOOLS_SNIPPETS IDG_TOOLS_SNIPPETS +#define IDG_VS_CTXT_CMDWIN_MARK 0x0223 + +#define IDG_VS_CTXT_AUTOHIDE 0x0224 + +//External tools context menu groups +#define IDG_VS_EXTTOOLS_CURARGS 0x0225 +#define IDG_VS_EXTTOOLS_PROJARGS 0x0226 +#define IDG_VS_EXTTOOLS_SLNARGS 0x0227 +#define IDG_VS_EXTTOOLS_CURDIRS 0x0228 +#define IDG_VS_EXTTOOLS_PROJDIRS 0x0229 +#define IDG_VS_EXTTOOLS_SLNDIRS 0x022A +#define IDG_VS_EXTTOOLS_TARGETARGS 0x022B +#define IDG_VS_EXTTOOLS_EDITORARGS 0x022C +#define IDG_VS_EXTTOOLS_TARGETDIRS 0x022D + +#define IDG_VS_CTXT_ITEM_VIEW 0x022E +#define IDG_VS_CTXT_DELETE 0x022F +#define IDG_VS_CTXT_FOLDER_TRANSFER 0x0230 +#define IDG_VS_CTXT_MULTISELECT_TRANSFER 0x0231 +#define IDG_VS_CTXT_PROJECT_DEPS 0x0232 +#define IDG_VS_CTXT_SOLUTION_ADD 0x0233 +#define IDG_VS_CTXT_PROJECT_CONFIG 0x0234 + +// New File/Add New Item Open button drop-down menu +#define IDG_VS_OPENDROPDOWN_MENU 0x0235 + +// Unhide group on solution context menu +#define IDG_VS_CTXT_SOLUTION_UNHIDE 0x0236 + +// Context menu group for editing a project file +#define IDG_VS_CTXT_PROJECT_EDITFILE 0x0237 + +// Object search menu groups +#define IDG_VS_OBJSEARCH_NAVIGATE 0x0238 +#define IDG_VS_OBJSEARCH_EDIT 0x0239 +//#define IDG_VS_OBJSEARCH_SORTING 0x0268 + +// Context menu group for unloading/reloading a project +#define IDG_VS_CTXT_PROJECT_UNLOADRELOAD 0x023A + +// Classview menu groups + +#define IDG_VS_CLASSVIEW_BASE_DERIVED_GRP 0x023B +#define IDG_VS_CLASSVIEW_DISPLAY2 0x023C +#define IDG_VS_CLASSVIEW_MEMACCESSGRP 0x023D +#define IDG_VS_CLASSVIEW_SEARCH2 0x023E + +#define IDG_VS_CLASSVIEW_MEMGRP 0x023F +#define IDG_VS_CLASSVIEW_FOLDERS 0x0240 // Used in toolbar +#define IDG_VS_CLASSVIEW_FOLDERS2 0x0241 // Used in context menu +#define IDG_VS_CLASSVIEW_DISPLAY 0x0242 +#define IDG_VS_CLASSVIEW_SEARCH 0x0243 +#define IDG_VS_CLASSVIEW_EDIT 0x0244 +#define IDG_VS_CLASSVIEW_NAVIGATION 0x0245 +#define IDG_VS_CLASSVIEW_SHOWINFO 0x0247 +#define IDG_VS_CLASSVIEW_PROJADD 0x0248 +#define IDG_VS_CLASSVIEW_ITEMADD 0x0249 +#define IDG_VS_CLASSVIEW_GROUPING 0x024a +#define IDG_VS_CLASSVIEW_PROJWIZARDS 0x024b +#define IDG_VS_CLASSVIEW_ITEMWIZARDS 0x024c +#define IDG_VS_CLASSVIEW_PROJADDITEMS 0x024d +#define IDG_VS_CLASSVIEW_FOLDERS_EDIT 0x024e + + + +// Regular Expression Context menu groups +#define IDG_VS_FINDREGEXNORM0 0x024f +#define IDG_VS_FINDREGEXNORM1 0x0250 +#define IDG_VS_FINDREGEXHELP 0x0251 +#define IDG_VS_REPLACEREGEXNORM 0x0252 +#define IDG_VS_REPLACEREGEXHELP 0x0253 +#define IDG_VS_FINDWILDNORM 0x0254 +#define IDG_VS_FINDWILDHELP 0x0255 +#define IDG_VS_REPLACEWILDNORM 0x0256 +#define IDG_VS_REPLACEWILDHELP 0x0257 +#define IDG_VS_FINDREGEXNORM2 0x0258 +#define IDG_VS_FINDREGEXNORM3 0x0259 +#define IDG_VS_FINDREGEXNORM4 0x5300 + +#define IDG_VS_EXTTOOLS_BINARGS 0x025A +#define IDG_VS_EXTTOOLS_BINDIRS 0x025B + +// Solution Folders context menu groups +#define IDG_VS_CTXT_SLNFLDR_ADD_PROJ 0x0261 +#define IDG_VS_CTXT_SLNFLDR_ADD_ITEM 0x0262 +#define IDG_VS_CTXT_SLNFLDR_BUILD 0x0263 +#define IDG_VS_CTXT_SLNFLDR_ADD 0x0264 + +#define IDG_VS_CTXT_SOLUTION_EXPLORE 0x0265 +#define IDG_VS_CTXT_PROJECT_EXPLORE 0x0266 +#define IDG_VS_CTXT_FOLDER_EXPLORE 0x0267 + +// object search (find symbol results) context menu group +#define IDG_VS_OBJSEARCH_SORTING 0x0268 +#define IDG_VS_OBJSEARCH_NAVIGATE2 0x0269 // Used in toolbar +#define IDG_VS_OBJSEARCH_BROWSE 0x026a +#define IDG_VS_OBJSEARCH_COMMON 0x026b + +// Find All References toolbar groups +#define IDG_VS_FINDALLREF_COMMON 0x026c +#define IDG_VS_FINDALLREF_PRESETGROUPINGS 0x026d +#define IDG_VS_FINDALLREF_LOCKWINGROUP 0x026e +#define IDG_VS_FINDALLREF_PRESERVED 0x026f + +// Object Browser menu groups +#define IDG_VS_OBJBROWSER_SUBSETS 0x0270 +#define IDG_VS_OBJBROWSER_DISPLAY 0x0271 +#define IDG_VS_OBJBROWSER_DISPLAY2 0x0272 +#define IDG_VS_OBJBROWSER_SEARCH 0x0273 +#define IDG_VS_OBJBROWSER_SEARCH2 0x0274 +#define IDG_VS_OBJBROWSER_NAVIGATION 0x0275 +#define IDG_VS_OBJBROWSER_EDIT 0x0276 +#define IDG_VS_OBJBROWSER_OBJGRP 0x0277 +#define IDG_VS_OBJBROWSER_MEMGRP 0x0278 +#define IDG_VS_OBJBROWSER_GROUPINGS 0x0279 +#define IDG_VS_OBJBROWSER_VIEWGRP 0x027A +#define IDG_VS_OBJBROWSER_MEMACCESSGRP 0x027B +#define IDG_VS_OBJBROWSER_BROWSERSETTINGSBTN 0x027C +#define IDG_VS_OBJBROWSER_BASE_DERIVED_GRP 0x027D +#define IDG_VS_OBJBROWSER_BROWSERSETTINGS 0x027E +#define IDG_VS_OBJBROWSER_MEMBERSETTINGS 0x027F + + +// Build Menu groups +#define IDG_VS_BUILD_SOLUTION 0x0280 +#define IDG_VS_BUILD_SELECTION 0x0281 +#define IDG_VS_BUILD_MISC 0x0282 +#define IDG_VS_BUILD_CANCEL 0x0283 +#define IDG_VS_BUILD_CASCADE 0x0284 +#define IDG_VS_REBUILD_CASCADE 0x0285 +#define IDG_VS_CLEAN_CASCADE 0x0286 +#define IDG_VS_DEPLOY_CASCADE 0x0287 +#define IDG_VS_BUILD_PROJPICKER 0x0288 +#define IDG_VS_REBUILD_PROJPICKER 0x0289 +#define IDG_VS_PGO_SELECTION 0x028A +// 0x028B is used below (IDG_VS_PGO_BUILD_CASCADE_RUN) +#define IDG_VS_BUILD_COMPILE 0x028C +#define IDG_VS_CLEAN_PROJPICKER 0x0290 +#define IDG_VS_DEPLOY_PROJPICKER 0x0291 + +#define IDG_VS_CTXT_CMDWIN_CUTCOPY 0x0292 + +// Output Window menu groups +#define IDG_VS_OUTPUTWINDOW_SELECT 0x0293 +#define IDG_VS_OUTPUTWINDOW_GOTO 0x0294 +#define IDG_VS_OUTPUTWINDOW_NEXTPREV 0x0295 +#define IDG_VS_OUTPUTWINDOW_CLEAR 0x0296 +#define IDG_VS_OUTPUTWINDOW_WORDWRAP 0x029F + +// Find Results 1 menu groups +#define IDG_VS_FINDRESULTS1_GOTO 0x0297 +#define IDG_VS_FINDRESULTS1_NEXTPREV 0x0298 +#define IDG_VS_FINDRESULTS1_CLEAR 0x0299 +#define IDG_VS_FINDRESULTS1_STOPFIND 0x02B6 + +// Find Results 2 menu groups +#define IDG_VS_FINDRESULTS2_GOTO 0x029A +#define IDG_VS_FINDRESULTS2_NEXTPREV 0x029B +#define IDG_VS_FINDRESULTS2_CLEAR 0x029C +#define IDG_VS_FINDRESULTS2_STOPFIND 0x02B7 + +#define IDG_VS_PROJONLY_CASCADE 0x029D +#define IDG_VS_PGO_BUILD_CASCADE_BUILD 0x029E +#define IDG_VS_PGO_BUILD_CASCADE_RUN 0x028B + +// 0x029F used above (IDG_VS_OUTPUTWINDOW_WORDWRAP) + +// Additional Shell defined context menu groups +#define IDG_VS_CTXT_PROJECT_ADD_FORMS 0x02A0 +#define IDG_VS_CTXT_PROJECT_ADD_MISC 0x02A1 +#define IDG_VS_CTXT_ITEM_INCLUDEEXCLUDE 0x02A2 +#define IDG_VS_CTXT_FOLDER_ADD 0x02A3 +#define IDG_VS_CTXT_REFROOT_ADD 0x02A4 +#define IDG_VS_CTXT_REFROOT_TRANSFER 0x02A5 +#define IDG_VS_CTXT_WEBREFFOLDER_ADD 0x02A6 +#define IDG_VS_CTXT_COMPILELINK 0x02A7 +#define IDG_VS_CTXT_REFERENCE 0x02A8 +#define IDG_VS_CTXT_APPDESIGNERFOLDER_OPEN 0x02A9 + +#define IDG_VS_OBJSEARCH_CLEAR 0x02AA +#define IDG_VS_CTXT_CMDWIN_CLEAR 0x02AB + +#define IDG_VS_UFINDQUICK 0x02AD +#define IDG_VS_UFINDFIF 0x02AE +#define IDG_VS_FFINDSYMBOL 0x02AF +#define IDG_VS_CTXT_PROJECT_CLASSDIAGRAM 0x02B8 +#define IDG_VS_CTXT_PROJECT_ADD_REFERENCES 0x02B9 + +//0x02B0 used for Codewindow context menu +//0x02B1 used for Codewindow context menu +//0x02B2 used for Codewindow context menu +#define IDG_VS_BWNEXTBM 0x01F0 +#define IDG_VS_BWPREVBM 0x01F1 +#define IDG_VS_BWNEXTBMF 0x01F2 +#define IDG_VS_BWPREVBMF 0x01F3 +#define IDG_VS_BWNEWFOLDER 0x01F4 +#define IDG_VS_BWENABLE 0x01F5 +#define IDG_VS_BWDISABLE 0x01F6 +#define IDG_VS_CTXT_BW1 0x01F7 +#define IDG_VS_CTXT_BW2 0x01F8 +#define IDG_VS_BWDELETE 0x01F9 + +// Properties panel groups +#define IDG_VS_PROPERTIES_SORT 0x02BA +#define IDG_VS_PROPERTIES_PAGES 0x02BB + +#define IDG_VS_CLASSVIEW_SETTINGS 0x02BC // Used in toolbar +#define IDG_VS_CLASSVIEW_BROWSERSETTINGSBTN 0x02BD +#define IDG_VS_CLASSVIEW_SHOW_INHERITED 0x02BE + + +////////////////////////////////////////////////////////////////////////////// +// +// Groups for Menu Controllers +// +////////////////////////////////////////////////////////////////////////////// +#define IDG_VS_MNUCTRL_NEWITM 0x02C0 +#define IDG_VS_MNUCTRL_NEWITM_BOTTOM 0x02C1 +#define IDG_VS_MNUCTRL_NEWPRJ 0x02C2 +#define IDG_VS_MNUCTRL_NEWPRJ_BOTTOM 0x02C3 +#define IDG_VS_MNUCTRL_NAVBACK 0x02C4 +#define IDG_VS_MNUCTRL_OBSEARCHOPTIONS 0x02C5 +#define IDG_VS_MNUCTRL_FIND 0x02C6 +#define IDG_VS_MNUCTRL_REPLACE 0x02C7 + +#define IDG_VS_SNIPPET_PROP 0x02C8 +#define IDG_VS_SNIPPET_REF 0x02C9 +#define IDG_VS_SNIPPET_REPL 0x02CA + +#define IDG_VS_CTXT_PROJECT_BUILDDEPENDENCIES 0x02E0 +#define IDG_VS_CTXT_PROJECT_SCC_CONTAINER 0x02E1 + +#define IDG_VS_CTXT_PROJECT_ANALYZE_GENERAL 0x02E2 +#define IDG_VS_CTXT_PROJECT_VIEW_GENERAL 0x02E3 +#define IDG_VS_CTXT_PROJECT_CONVERT_GENERAL 0x02E4 + + +////////////////////////////////////////////////////////////////////////////// +// +// Cascading Menu Identifiers, created by Visual Studio Shell +// +////////////////////////////////////////////////////////////////////////////// +#define IDM_VS_CSCD_WINDOWS 0x0300 +#define IDM_VS_CSCD_TASKLIST_SORT 0x0301 +#define IDM_VS_CSCD_TASKLIST_FILTER 0x0302 +#define IDM_VS_CSCD_TASKLIST_VIEWMENU_FILTER 0x0303 +#define IDM_VS_CSCD_DEBUGWINDOWS 0x0304 +#define IDM_VS_EDITOR_CSCD_OUTLINING_MENU 0x0305 +#define IDM_VS_CSCD_COMMANDBARS 0x0306 +#define IDM_VS_CSCD_OLEVERBS 0x0307 +#define IDM_VS_CSCD_NEW 0x0308 +#define IDM_VS_CSCD_OPEN 0x0309 +#define IDM_VS_CSCD_ADD 0x030A +#define IDM_VS_CSCD_MNUDES 0x030B +#define IDM_VS_CSCD_FILEMRU 0x030C +#define IDM_VS_CSCD_PROJMRU 0x030D +#define IDM_VS_CSCD_NEW_PROJ 0x030E +#define IDM_VS_CSCD_MOVETOPRJ 0x030F +#define IDM_VS_CSCD_INTERACTIVEWNDWS 0x0310 + +#define IDM_VS_CSCD_BUILD 0x0330 +#define IDM_VS_CSCD_REBUILD 0x0331 +#define IDM_VS_CSCD_CLEAN 0x0332 +#define IDM_VS_CSCD_DEPLOY 0x0333 +#define IDM_VS_CSCD_MISCFILES 0x0334 +#define IDM_VS_CSCD_PROJONLY 0x0335 +#define IDM_VS_CSCD_PGO_BUILD 0x0336 + +#define IDM_VS_CSCD_EXTTOOLS 0x0340 + +#define IDM_VS_CSCD_SOLUTION_ADD 0x0350 +#define IDM_VS_CSCD_SOLUTION_DEBUG 0x0351 +#define IDM_VS_CSCD_PROJECT_ADD 0x0352 +#define IDM_VS_CSCD_PROJECT_DEBUG 0x0353 + +// ClassView cascades +#define IDM_VS_CSCD_CV_PROJADD 0x0354 +#define IDM_VS_CSCD_CV_ITEMADD 0x0355 + +#define IDM_VS_CSCD_SLNFLDR_ADD 0x0357 + +#define IDM_VS_CSCD_TASKLIST_COLUMNS 0x0358 + +#define IDM_VS_CSCD_CALLBROWSER 0x0359 +#define IDG_VS_VIEW_CALLBROWSER 0x035A +#define IDG_VS_VIEW_CALLBROWSER_CASCADE 0x035B +#define IDG_VS_VIEW_CALLBROWSER_SHOW 0x035C + +#define IDM_VS_CSCD_FINDRESULTS 0x035D + +#define IDM_VS_CSCD_PROJECT_ANALYZE 0x035E +#define IDM_VS_CSCD_PROJECT_VIEW 0x035F +#define IDM_VS_CSCD_PROJECT_CONVERT 0x0360 +#define IDM_VS_CSCD_PROJECT_BUILDDEPENDENCIES 0x0361 +#define IDM_VS_CSCD_PROJECT_SCC 0x0362 +#define IDM_VS_CSCD_WINDOW_LAYOUTS 0x0363 + +#define IDM_VS_CSCD_TASKLIST_GROUPS 0x0364 + +////////////////////////////////////////////////////////////////////////////// +// +// Context Menu Identifiers, created by Visual Studio Shell +// +////////////////////////////////////////////////////////////////////////////// +#define IDM_VS_CTXT_PROJNODE 0x0402 +#define IDM_VS_CTXT_PROJWIN 0x0403 +#define IDM_VS_CTXT_PROJWINBREAK 0x0404 +#define IDM_VS_CTXT_ERRORLIST 0x0405 +#define IDM_VS_CTXT_DOCKEDWINDOW 0x0406 +#define IDM_VS_CTXT_MENUDES 0x0407 +#define IDM_VS_CTXT_PROPBRS 0x0408 +#define IDM_VS_CTXT_TOOLBOX 0x0409 +// UNUSED: 0x040A - 0x040C +#define IDM_VS_CTXT_CODEWIN 0x040D +#define IDM_VS_CTXT_TASKLIST 0x040E +#define IDM_VS_CTXT_RESULTSLIST 0x0411 +#define IDM_VS_CTXT_STUBPROJECT 0x0412 +#define IDM_VS_CTXT_SOLNNODE 0x0413 +#define IDM_VS_CTXT_SOLNFOLDER 0x0414 + +// Slctn of one or more ProjNodes & SolnNode (doesn't involve ProjItem nodes) +#define IDM_VS_CTXT_XPROJ_SLNPROJ 0x0415 +// Slctn of one or more ProjItems & SolnNode (min 1 ProjItem & may involve ProjNodes too) +#define IDM_VS_CTXT_XPROJ_SLNITEM 0x0416 +// Selection of one more Project Nodes and one or more Project Items across projects (does not involve Solution Node) +#define IDM_VS_CTXT_XPROJ_PROJITEM 0x0417 +// Selection of two or more Project Nodes (does not involve the Solution Node or Project Item Nodes) +#define IDM_VS_CTXT_XPROJ_MULTIPROJ 0x0418 +// Selection of one more Project Items across projects (does not involve Project Nodes or Solution Node) +#define IDM_VS_CTXT_XPROJ_MULTIITEM 0x0419 + +#define IDM_VS_CTXT_NOCOMMANDS 0x041A + +// Miscellaneous Files project and item context menus +#define IDM_VS_CTXT_MISCFILESPROJ 0x041B + +// Selection of two or more solution folders +#define IDM_VS_CTXT_XPROJ_MULTIFOLDER 0x041C +// Selection of combination of projects and solution folders +#define IDM_VS_CTXT_XPROJ_MULTIPROJFLDR 0x041D + +// Command Window context menu +#define IDM_VS_CTXT_COMMANDWINDOW 0x041F + +// AutoHide context menu on channel +#define IDM_VS_CTXT_AUTOHIDE 0x0420 + +// Expansion Manager description pane context menu +#define IDM_VS_CTXT_EXPANSION_DESC 0x0421 + +// Expansion Manager description pane context menu commands +#define IDG_VS_CTXT_EXPANSION_DESC_COPY 0x0422 +#define IDG_VS_CTXT_EXPANSION_DESC_SELECTALL 0x0423 + +#define IDM_VS_CTXT_FIND_REGEX 0x0424 +#define IDM_VS_CTXT_REPLACE_REGEX 0x0425 +#define IDM_VS_CTXT_FIND_WILD 0x0426 +#define IDM_VS_CTXT_REPLACE_WILD 0x0427 +#define IDM_VS_CTXT_EXTTOOLSARGS 0x0428 +#define IDM_VS_CTXT_EXTTOOLSDIRS 0x0429 + +// EZMdi context menus +#define IDM_VS_CTXT_EZTOOLWINTAB 0x042A +#define IDM_VS_CTXT_EZDOCWINTAB 0x042B +#define IDM_VS_CTXT_EZDRAGGING 0x042C +#define IDM_VS_CTXT_EZCHANNEL 0x042D + +// New File/Add New Item Open button drop-down menu +#define IDM_VS_CTXT_OPENDROPDOWN 0x042E + +// Framework Version drop-down menu +#define IDM_VS_CTXT_FRAMEWORKVERSION 0x042F + + +// Common Item Node context menu +#define IDM_VS_CTXT_ITEMNODE 0x0430 + +// Folder Node context menu +#define IDM_VS_CTXT_FOLDERNODE 0x0431 + +////////////////////////////////////////////////////////////////////////////// +// ClassView context menus +#define IDM_VS_CTXT_CV_PROJECT 0x0432 +#define IDM_VS_CTXT_CV_ITEM 0x0433 +#define IDM_VS_CTXT_CV_FOLDER 0x0434 +#define IDM_VS_CTXT_CV_GROUPINGFOLDER 0x0435 +#define IDM_VS_CTXT_CV_MULTIPLE 0x0436 +#define IDM_VS_CTXT_CV_MULTIPLE_MEMBERS 0x0437 +#define IDM_VS_CTXT_CV_MEMBER 0x0438 +#define IDM_VS_CTXT_CV_NON_SYMBOL_MEMBERS 0x0439 +#define IDM_VS_CTXT_CV_PROJECT_REFS_FOLDER 0x0440 +#define IDM_VS_CTXT_CV_PROJECT_REFERENCE 0x0441 + +#define IDM_VS_CTXT_CV_NO_SOURCE_ITEM 0x0442 +#define IDM_VS_CTXT_CV_NO_SOURCE_MEMBER 0x0443 + +#define IDM_VS_CTXT_CV_MULTIPLE_NO_SOURCE 0x049 +#define IDM_VS_CTXT_CV_MULTIPLE_MEMBERS_NO_SOURCE 0x04A + +// Object Browsing tools context menus +#define IDM_VS_SYMBOLS_DUMMY 0x0444 +#define IDM_VS_CTXT_OBJBROWSER_OBJECTS 0x0445 +#define IDM_VS_CTXT_OBJBROWSER_MEMBERS 0x0446 +#define IDM_VS_CTXT_OBJBROWSER_DESC 0x0447 +#define IDM_VS_CTXT_OBJSEARCH 0x0448 + +//#define IDM_VS_CTXT_CV_MULTIPLE_NO_SOURCE 0x049 +//#define IDM_VS_CTXT_CV_MULTIPLE_MEMBERS_NO_SOURCE 0x04A + +#define IDG_VS_FRAMEWORKVERSIONDROPDOWN_MENU 0x0449 + +////////////////////////////////////////////////////////////////////////////// +// Reference context menus +// Reference Root Node context menu +#define IDM_VS_CTXT_REFERENCEROOT 0x0450 +// Reference Item context menu +#define IDM_VS_CTXT_REFERENCE 0x0451 +// Web Reference Folder context menu +#define IDM_VS_CTXT_WEBREFFOLDER 0x0452 +// App Designer Folder context menu +#define IDM_VS_CTXT_APPDESIGNERFOLDER 0x0453 +// Find All References context menu +#define IDM_VS_CTXT_FINDALLREF 0x0454 +////////////////////////////////////////////////////////////////////////////// +// Right drag menu group +#define IDM_VS_CTXT_RIGHT_DRAG 0x0460 +#define IDG_VS_CTXT_RIGHT_DRAG1 0x0461 +#define IDG_VS_CTXT_RIGHT_DRAG2 0x0462 + +////////////////////////////////////////////////////////////////////////////// +// Web context menus +#define IDM_VS_CTXT_WEBPROJECT 0x0470 +#define IDM_VS_CTXT_WEBFOLDER 0x0471 +#define IDM_VS_CTXT_WEBITEMNODE 0x0472 +// BEWARE!!!: IDM_VS_CTXT_BOOKMARK is defined as 0x0473 +#define IDM_VS_CTXT_WEBSUBWEBNODE 0x0474 + +////////////////////////////////////////////////////////////////////////////// +// Error correction context menu and group +#define IDM_VS_CTXT_ERROR_CORRECTION 0x0480 +#define IDG_VS_CTXT_ERROR_CORRECTION 0x0481 + +////////////////////////////////////////////////////////////////////////////// +// Context menu organizers + +//No group for the Misc menu, since nobody purposely adds menus to this group, +//it's used as a catchall to which we programmatically assign unparented context menus +#define IDM_VS_CTXT_MISC 0x0490 + +#define IDM_VS_CTXT_CV_ALL 0x0491 +#define IDG_VS_CTXT_CV_ALL 0x0492 +#define IDM_VS_CTXT_OBJBROWSER_ALL 0x0493 +#define IDG_VS_CTXT_OBJBROWSER_ALL 0x0494 +#define IDM_VS_CTXT_SOLNEXPL_ALL 0x0495 +#define IDG_VS_CTXT_SOLNEXPL_ALL 0x0496 + +// CSHARP REFACTORING Context menu +#define IDM_VS_CTX_REFACTORING 0x0497 + +#define IDM_VS_CTXT_EDITOR_ALL 0x0498 +#define IDG_VS_CTXT_EDITOR_ALL 0x0499 + +////////////////////////////////////////////////////////////////////////////// +// Bookmark window context menu +#define IDM_VS_CTXT_BOOKMARK 0x0473 + +////////////////////////////////////////////////////////////////////////////// +// +// Menu Controller dentifiers, created by Visual Studio Shell +// +////////////////////////////////////////////////////////////////////////////// +#define IDM_VS_MNUCTRL_NEWITM 0x0500 +#define IDM_VS_MNUCTRL_NEWPRJ 0x0501 +#define IDM_VS_MNUCTRL_OTRWNDWS 0x0502 +#define IDM_VS_MNUCTRL_NAVBACK 0x0503 +#define IDM_VS_MNUCTRL_OBSEARCHOPTS 0x0504 +#define IDM_VS_MNUCTRL_CVGROUPING 0x0505 +#define IDM_VS_MNUCTRL_OBGRPOBJS 0x0506 +#define IDM_VS_MNUCTRL_OBGRPMEMS 0x0507 +#define IDM_VS_MNUCTRL_OBGRPVIEWS 0x0509 +#define IDM_VS_MNUCTRL_OBGRPMEMSACCESS 0x050A +#define IDM_VS_MNUCTRL_CALLBROWSER1_SETTINGS 0x050B +#define IDM_VS_MNUCTRL_CALLBROWSER2_SETTINGS 0x050C +#define IDM_VS_MNUCTRL_CALLBROWSER3_SETTINGS 0x050D +#define IDM_VS_MNUCTRL_CALLBROWSER4_SETTINGS 0x050E +#define IDM_VS_MNUCTRL_CALLBROWSER5_SETTINGS 0x050F +#define IDM_VS_MNUCTRL_CALLBROWSER6_SETTINGS 0x0510 +#define IDM_VS_MNUCTRL_CALLBROWSER7_SETTINGS 0x0511 +#define IDM_VS_MNUCTRL_CALLBROWSER8_SETTINGS 0x0512 +#define IDM_VS_MNUCTRL_CALLBROWSER9_SETTINGS 0x0513 +#define IDM_VS_MNUCTRL_CALLBROWSER10_SETTINGS 0x0514 +#define IDM_VS_MNUCTRL_CALLBROWSER11_SETTINGS 0x0515 +#define IDM_VS_MNUCTRL_CALLBROWSER12_SETTINGS 0x0516 +#define IDM_VS_MNUCTRL_CALLBROWSER13_SETTINGS 0x0517 +#define IDM_VS_MNUCTRL_CALLBROWSER14_SETTINGS 0x0518 +#define IDM_VS_MNUCTRL_CALLBROWSER15_SETTINGS 0x0519 +#define IDM_VS_MNUCTRL_CALLBROWSER16_SETTINGS 0x051A +#define IDM_VS_MNUCTRL_FIND 0x051B +#define IDM_VS_MNUCTRL_REPLACE 0x051C +#define IDM_VS_MNUCTRL_FILTERERRORLIST 0x051D +#define IDM_VS_MNUCTRL_FILTERSOLUTIONEXPLORER 0x051E + +// Text editor toolbar groups +#define IDG_VS_EDITTOOLBAR_COMPLETION 0x0550 +#define IDG_VS_EDITTOOLBAR_INDENT 0x0551 +#define IDG_VS_EDITTOOLBAR_COMMENT 0x0552 +#define IDG_VS_EDITTOOLBAR_TEMPBOOKMARKS 0x0553 + +// Edit menu groups (HTML Editor Edit | Advanced) +#define IDG_TAG_OUTLINING 0x5554 + +// Format Menu groups +#define IDG_VS_FORMAT_STYLE 0x0569 +#define IDG_VS_FORMAT_COLOR 0x056A +#define IDG_VS_FORMAT_PARAGRAPH 0x056B +#define IDG_VS_FORMAT_INDENT 0x056C +#define IDG_VS_FORMAT_GRID 0x0554 +#define IDG_VS_FORMAT_SPACE 0x0555 +#define IDG_VS_FORMAT_CENTER 0x0556 +#define IDG_VS_FORMAT_ORDER 0x0557 +#define IDG_VS_FORMAT_ALIGN 0x0567 +#define IDG_VS_FORMAT_LOCK 0x0558 +#define IDG_VS_FORMAT_ELEMENT 0x056D +// skip down to 0x0590 for IDG_VS_FORMAT_ANCHORS + +// Format Align menu groups +#define IDG_VS_FORMAT_ALIGN_X 0x0559 +#define IDG_VS_FORMAT_ALIGN_Y 0x055A +#define IDG_VS_FORMAT_ALIGN_GRID 0x055B + +// Format Size menu groups +#define IDG_VS_FORMAT_SIZE 0x055C + +// Format Space menu groups +#define IDG_VS_FORMAT_SPACE_X 0x055D +#define IDG_VS_FORMAT_SPACE_Y 0x055E + +// Format Center menu groups +#define IDG_VS_FORMAT_CENTER_CMDS 0x055F + +// Format Order menu groups +#define IDG_VS_FORMAT_ORDER_CMDS 0x0560 + +// Format Grid menu group +#define IDG_VS_FORMAT_GRID_CMDS 0x0570 + +// Layout Position menu group +#define IDG_VS_LAYOUT_POSITION_CMDS 0x592 +#define IDG_VS_LAYOUT_POSITION_OPTIONS 0x596 + +// Format cascaded menus +#define IDM_VS_CSCD_FORMAT_FONT 0x056F +#define IDM_VS_CSCD_FORMAT_JUSTIFY 0x0570 +#define IDM_VS_CSCD_FORMAT_ALIGN 0x0561 +#define IDM_VS_CSCD_FORMAT_SIZE 0x0562 +#define IDM_VS_CSCD_FORMAT_SPACE_X 0x0563 +#define IDM_VS_CSCD_FORMAT_SPACE_Y 0x0564 +#define IDM_VS_CSCD_FORMAT_CENTER 0x0565 +#define IDM_VS_CSCD_FORMAT_ORDER 0x0566 + +// View menu groups +#define IDG_VS_VIEW_TABORDER 0x0568 +#define IDG_VS_VIEW_OPTIONS 0x0571 + + +// 0x0569 used in IDG_VS_FORMAT_STYLE above +// 0x056A used in IDG_VS_FORMAT_COLOR above +// 0x056B used in IDG_VS_FORMAT_PARAGRAPH above +// 0x056C used in IDG_VS_FORMAT_INDENT above +// 0x056D used in IDG_VS_FORMAT_ELEMENT above +// 0x056F used in IDM_VS_CSCD_FORMAT_FONT above +// 0x0570 used in IDM_VS_CSCD_FORMAT_JUSTIFY above +// 0x0571 used in IDG_VS_VIEW_OPTIONS above + + +// Format Paragraph menu groups +#define IDG_VS_FORMAT_FONTFACE 0x0572 +#define IDG_VS_FORMAT_FONTSCRIPT 0x0573 +#define IDG_VS_FORMAT_JUSTIFY 0x0574 + +// Layout menu +#define IDM_VS_LAYOUT_MENU 0x0575 + +// Table cascaded menus +#define IDM_VS_CSCD_TABLE_INSERT 0x0576 +#define IDM_VS_CSCD_TABLE_DELETE 0x0577 +#define IDM_VS_CSCD_TABLE_SELECT 0x0578 +#define IDM_VS_CSCD_TABLE_RESIZE 0x0596 + +// Table menu groups +#define IDG_VS_TABLE_MAIN 0x0579 +#define IDG_VS_TABLE_INSERT_1 0x057A +#define IDG_VS_TABLE_INSERT_2 0x057B +#define IDG_VS_TABLE_INSERT_3 0x057C +#define IDG_VS_TABLE_INSERT_4 0x057D +#define IDG_VS_TABLE_DELETE 0x057E +#define IDG_VS_TABLE_SELECT 0x057F +#define IDM_VS_CSCD_LAYOUT_POSITION 0x0593 +#define IDG_VS_LAYOUT_INSERT 0x0594 +#define IDG_VS_TABLE_RESIZE 0x0595 + +// Frame Set Menu +#define IDM_VS_FRAMESET_MENU 0x0580 + +// Frame Set Menu groups +#define IDG_VS_FRAME_WHOLE 0x0581 +#define IDG_VS_FRAME_INDV 0x0582 +#define IDG_VS_FRAME_NEW 0x0583 + +// Tools Menu groups +#define IDG_VS_TOOLS_EDITOPT 0x0584 + +// Insert Menu +#define IDM_VS_INSERT_MENU 0x0585 + +// Insert Menu groups +#define IDG_VS_INSERT_TAGS 0x0586 +#define IDG_VS_INSERT_TAGS2 0x0587 + +// Continuation of Format Menu groups +#define IDG_VS_FORMAT_ANCHORS 0x0590 +#define IDG_VS_LAYOUT_POSITION 0x0591 + +// Project cascaded menus +#define IDM_VS_CSCD_PROJECT_WEB 0x0600 + +// More Object browser groups +#define IDG_VS_OBJBROWSER_ADDREFERENCE 0x0610 +#define IDG_VS_OBJBROWSER_ADDTOFAVOURITES 0x0611 +#define IDG_VS_OBJBROWSER_SHOW_INHERITED 0x0612 + +// Code Definition View groups +#define IDG_VS_CODEDEFVIEW 0x0617 + +// Project menu groups +#define IDG_VS_CTXT_PROJECT_BUILD_ORDER 0x0620 +#define IDG_VS_CTXT_PROJECT_BUILD_PGO 0x0621 + +// Goto menu +#define IDG_VS_GOTO 0x0622 + + +/////////////////////////////////////////////// +// +// EzMDI files command group +// +/////////////////////////////////////////////// + +#define IDM_EZMDI_FILELIST 0x0650 +#define IDG_EZMDI_FILELIST 0x0651 + +/////////////////////// +// Calls Browser groups +/////////////////////// + +#define IDG_VS_CALLBROWSER_TYPE 0x0660 +#define IDG_VS_CALLBROWSER_EDIT 0x0661 +#define IDG_VS_CALLBROWSER_NAVIGATION 0x0662 +#define IDM_VS_CTXT_CALLBROWSER 0x0663 + +#define IDG_VS_TOOLBAR_CALLBROWSER1_CBSETTINGS 0x0670 +#define IDG_VS_TOOLBAR_CALLBROWSER2_CBSETTINGS 0x0671 +#define IDG_VS_TOOLBAR_CALLBROWSER3_CBSETTINGS 0x0672 +#define IDG_VS_TOOLBAR_CALLBROWSER4_CBSETTINGS 0x0673 +#define IDG_VS_TOOLBAR_CALLBROWSER5_CBSETTINGS 0x0674 +#define IDG_VS_TOOLBAR_CALLBROWSER6_CBSETTINGS 0x0675 +#define IDG_VS_TOOLBAR_CALLBROWSER7_CBSETTINGS 0x0676 +#define IDG_VS_TOOLBAR_CALLBROWSER8_CBSETTINGS 0x0677 +#define IDG_VS_TOOLBAR_CALLBROWSER9_CBSETTINGS 0x0678 +#define IDG_VS_TOOLBAR_CALLBROWSER10_CBSETTINGS 0x0679 +#define IDG_VS_TOOLBAR_CALLBROWSER11_CBSETTINGS 0x067A +#define IDG_VS_TOOLBAR_CALLBROWSER12_CBSETTINGS 0x067B +#define IDG_VS_TOOLBAR_CALLBROWSER13_CBSETTINGS 0x067C +#define IDG_VS_TOOLBAR_CALLBROWSER14_CBSETTINGS 0x067D +#define IDG_VS_TOOLBAR_CALLBROWSER15_CBSETTINGS 0x067E +#define IDG_VS_TOOLBAR_CALLBROWSER16_CBSETTINGS 0x067F + +#define IDG_VS_CALLBROWSER1_SETTINGSBTN 0x0680 +#define IDG_VS_CALLBROWSER2_SETTINGSBTN 0x0681 +#define IDG_VS_CALLBROWSER3_SETTINGSBTN 0x0682 +#define IDG_VS_CALLBROWSER4_SETTINGSBTN 0x0683 +#define IDG_VS_CALLBROWSER5_SETTINGSBTN 0x0684 +#define IDG_VS_CALLBROWSER6_SETTINGSBTN 0x0685 +#define IDG_VS_CALLBROWSER7_SETTINGSBTN 0x0686 +#define IDG_VS_CALLBROWSER8_SETTINGSBTN 0x0687 +#define IDG_VS_CALLBROWSER9_SETTINGSBTN 0x0688 +#define IDG_VS_CALLBROWSER10_SETTINGSBTN 0x0689 +#define IDG_VS_CALLBROWSER11_SETTINGSBTN 0x068A +#define IDG_VS_CALLBROWSER12_SETTINGSBTN 0x068B +#define IDG_VS_CALLBROWSER13_SETTINGSBTN 0x068C +#define IDG_VS_CALLBROWSER14_SETTINGSBTN 0x068D +#define IDG_VS_CALLBROWSER15_SETTINGSBTN 0x068E +#define IDG_VS_CALLBROWSER16_SETTINGSBTN 0x068F + +#define IDG_VS_CALLBROWSER1_SORTING 0x0690 +#define IDG_VS_CALLBROWSER2_SORTING 0x0691 +#define IDG_VS_CALLBROWSER3_SORTING 0x0692 +#define IDG_VS_CALLBROWSER4_SORTING 0x0693 +#define IDG_VS_CALLBROWSER5_SORTING 0x0694 +#define IDG_VS_CALLBROWSER6_SORTING 0x0695 +#define IDG_VS_CALLBROWSER7_SORTING 0x0696 +#define IDG_VS_CALLBROWSER8_SORTING 0x0697 +#define IDG_VS_CALLBROWSER9_SORTING 0x0698 +#define IDG_VS_CALLBROWSER10_SORTING 0x0699 +#define IDG_VS_CALLBROWSER11_SORTING 0x069A +#define IDG_VS_CALLBROWSER12_SORTING 0x069B +#define IDG_VS_CALLBROWSER13_SORTING 0x069C +#define IDG_VS_CALLBROWSER14_SORTING 0x069D +#define IDG_VS_CALLBROWSER15_SORTING 0x069E +#define IDG_VS_CALLBROWSER16_SORTING 0x069F + +#define IDG_VS_CALLBROWSER1_SETTINGS 0x06A0 +#define IDG_VS_CALLBROWSER2_SETTINGS 0x06A1 +#define IDG_VS_CALLBROWSER3_SETTINGS 0x06A2 +#define IDG_VS_CALLBROWSER4_SETTINGS 0x06A3 +#define IDG_VS_CALLBROWSER5_SETTINGS 0x06A4 +#define IDG_VS_CALLBROWSER6_SETTINGS 0x06A5 +#define IDG_VS_CALLBROWSER7_SETTINGS 0x06A6 +#define IDG_VS_CALLBROWSER8_SETTINGS 0x06A7 +#define IDG_VS_CALLBROWSER9_SETTINGS 0x06A8 +#define IDG_VS_CALLBROWSER10_SETTINGS 0x06A9 +#define IDG_VS_CALLBROWSER11_SETTINGS 0x06AA +#define IDG_VS_CALLBROWSER12_SETTINGS 0x06AB +#define IDG_VS_CALLBROWSER13_SETTINGS 0x06AC +#define IDG_VS_CALLBROWSER14_SETTINGS 0x06AD +#define IDG_VS_CALLBROWSER15_SETTINGS 0x06AE +#define IDG_VS_CALLBROWSER16_SETTINGS 0x06AF + +#define IDG_VS_TOOLBAR_CALLBROWSER1_TYPE 0x06B0 +#define IDG_VS_TOOLBAR_CALLBROWSER2_TYPE 0x06B1 +#define IDG_VS_TOOLBAR_CALLBROWSER3_TYPE 0x06B2 +#define IDG_VS_TOOLBAR_CALLBROWSER4_TYPE 0x06B3 +#define IDG_VS_TOOLBAR_CALLBROWSER5_TYPE 0x06B4 +#define IDG_VS_TOOLBAR_CALLBROWSER6_TYPE 0x06B5 +#define IDG_VS_TOOLBAR_CALLBROWSER7_TYPE 0x06B6 +#define IDG_VS_TOOLBAR_CALLBROWSER8_TYPE 0x06B7 +#define IDG_VS_TOOLBAR_CALLBROWSER9_TYPE 0x06B8 +#define IDG_VS_TOOLBAR_CALLBROWSER10_TYPE 0x06B9 +#define IDG_VS_TOOLBAR_CALLBROWSER11_TYPE 0x06BA +#define IDG_VS_TOOLBAR_CALLBROWSER12_TYPE 0x06BB +#define IDG_VS_TOOLBAR_CALLBROWSER13_TYPE 0x06BC +#define IDG_VS_TOOLBAR_CALLBROWSER14_TYPE 0x06BD +#define IDG_VS_TOOLBAR_CALLBROWSER15_TYPE 0x06BE +#define IDG_VS_TOOLBAR_CALLBROWSER16_TYPE 0x06BF + +#define IDG_VS_CALLBROWSER_TYPE_POPUP 0x06C0 + + +/////////////////////// +// Preview Changes groups +/////////////////////// + +#define IDG_VS_PREVIEWCHANGES_EDIT 0x06D0 +#define IDM_VS_CTXT_PREVIEWCHANGES 0x06D1 + +#define IDG_VS_TOOLBAR_CALLBROWSER1_ACTIONS 0x06E0 +#define IDG_VS_TOOLBAR_CALLBROWSER2_ACTIONS 0x06E1 +#define IDG_VS_TOOLBAR_CALLBROWSER3_ACTIONS 0x06E2 +#define IDG_VS_TOOLBAR_CALLBROWSER4_ACTIONS 0x06E3 +#define IDG_VS_TOOLBAR_CALLBROWSER5_ACTIONS 0x06E4 +#define IDG_VS_TOOLBAR_CALLBROWSER6_ACTIONS 0x06E5 +#define IDG_VS_TOOLBAR_CALLBROWSER7_ACTIONS 0x06E6 +#define IDG_VS_TOOLBAR_CALLBROWSER8_ACTIONS 0x06E7 +#define IDG_VS_TOOLBAR_CALLBROWSER9_ACTIONS 0x06E8 +#define IDG_VS_TOOLBAR_CALLBROWSER10_ACTIONS 0x06E9 +#define IDG_VS_TOOLBAR_CALLBROWSER11_ACTIONS 0x06EA +#define IDG_VS_TOOLBAR_CALLBROWSER12_ACTIONS 0x06EB +#define IDG_VS_TOOLBAR_CALLBROWSER13_ACTIONS 0x06EC +#define IDG_VS_TOOLBAR_CALLBROWSER14_ACTIONS 0x06ED +#define IDG_VS_TOOLBAR_CALLBROWSER15_ACTIONS 0x06EE +#define IDG_VS_TOOLBAR_CALLBROWSER16_ACTIONS 0x06EF + + +/////////////////////////////////////////////// +// +// VS Enterprise menu and menu groups +// +/////////////////////////////////////////////// + +// Team Foundation Client standard menu +#define IDM_MENU_TEAM_FOUNDATION_CLIENT 0x700 +#define IDM_MENU_PROJECT_CONTEXT_MENU 0x707 +#define IDM_TEAM_PROJECT_SETTINGS_MENU 0x708 +#define IDM_TEAM_SERVER_SETTINGS_MENU 0x709 + +// Team Foundation Client Toolbar Group +#define IDG_TEAM_FOUNDATION_CLIENT_TOOLBAR 0x701 + +// Commands on the Team menu for projects that require project context +#define IDG_MENU_PROJECT_CONTEXT 0x702 +// Commands on the Team menu shared by tools (e.g. Properties) +#define IDG_SHARED_COMMANDS 0x703 +// Tool-specific commands on the Team menu +#define IDG_TOOL_COMMANDS 0x704 + +// Team Project Settings Cascade Menu Group +#define IDG_TEAM_PROJECT_SETTINGS_COMMANDS 0x705 +// Team Server Settings Cascade Menu Group +#define IDG_TEAM_SERVER_SETTINGS_COMMANDS 0x706 + +// Commands on the TE context menu for projects that require project context +#define IDG_CTXT_PROJECT_CONTEXT 0x710 + + +// Thes are defined up and copies here to ensure accident reuse does not occur +// #define IDG_VS_FILE_ACCOUNTSETTINGS 0x0711 +// +// +// #define IDG_VS_VIEW_ARCH_WINDOWS 0x0720 +// #define IDG_VS_VIEW_ORG_WINDOWS 0x0721 +// #define IDG_VS_VIEW_CODEBROWSENAV_WINDOWS 0x0722 +// #define IDG_VS_VIEW_DEV_WINDOWS 0x0723 +// #define IDG_VS_WNDO_FINDRESULTS 0x0724 + + +#define IDG_VS_TOOLBAR_PROJWIN_NAVIGATION 0x730 // Contains navigation commands for the Solution Explorer (back, forward, home) +#define IDG_VS_TOOLBAR_PROJWIN_NEWVIEW 0x731 // Contains the New View toolbar command +#define IDM_VS_CTXT_PROJWIN_FILECONTENTS 0x732 // Context menu for GraphNode items in the Solution Explorer +#define IDM_VS_CSCD_PROJWIN_FILECONTENTS_SCOPELIST 0x733 // Flyout menu for changing the view to a different aspect +#define IDG_VS_CTXT_PROJWIN_SCOPE 0x734 // Group for containing view-scoping commands (Scope View To This, New View, Change View To) +#define IDG_VS_CTXT_PROJWIN_SCOPELIST 0x735 // Group for containing the dynamic list of scopes the Solution Explorer can be changed to +#define IDG_VS_CTXT_PROJWIN_FILECONTENTS_SCOPE 0x736 // Group specifically for the Item Contents context menu, containing the Scope View To This command +#define IDG_VS_CTXT_PROJWIN_FILECONTENTS_NEWVIEW 0x737 // Group specifically for the Item Contents context menu, containing the New View command +#define IDG_VS_TOOLBAR_PROJWIN_FILTERS 0x738 // Group containing common filters for the Solution Explorer (e.g. Opened, Pending Changes) +#define IDM_VS_CTXT_PEEKRESULT 0x739 // Context menu for results in Peek +#define IDG_VS_CTXT_PEEKRESULTGROUP 0x73A // Contains commands that can run on peek results (Copy Full Path, Promote to Document, Open Containing Folder) + +//////////////////////////////////////////////// +// +// Refactor menu groups +// +//////////////////////////////////////////////// + +#define IDG_REFACTORING_COMMON 0x1801 +#define IDG_REFACTORING_ADVANCED 0x1802 + +#define IDBI_ExtractMethod 1 +#define IDBI_EncapsulateField 2 +#define IDBI_ExtractInterface 3 +#define IDBI_Rename 4 +#define IDBI_ReorderParameters 5 +#define IDBI_RemoveParameters 6 +#define IDBI_AddUsing 7 +#define IDBI_GenerateMethod 8 +#define IDBI_PromoteLocal 9 +#define IDBI_Snippet 10 + + +/////////////////////////////////////////////// +// +// Server Explorer menu groups +// +/////////////////////////////////////////////// + +// Groups +#define IDG_SE_CONTEXT_GENERAL 0x0312 +#define IDG_SE_CONTEXT_DELETE 0x0313 +#define IDG_SE_CONTEXT_DATA 0x0314 +#define IDG_SE_CONTEXT_NODE 0x0315 +#define IDG_SE_CONTEXT_DATAPROP 0x0316 +#define IDG_SE_CONTEXT_SQLINSTANCE 0x0317 + +#define IDG_SE_TOOLBAR_REFRESH 0X0403 +#define IDG_SE_TOOLBAR_VIEW 0x0404 +#define IDG_SE_TOOLBAR_VIEW_LIST 0x0405 +#define IDG_SE_TOOLBAR_VIEW_SAVE 0x0406 + +// A new group under the Tools menu. It's for nodes. +#define IDG_SE_TOOLS_ADD 0x0408 + +// Menus +#define IDM_SE_CONTEXT_STANDARD 0x0503 +#define IDM_SE_TOOLBAR_VIEW 0x0504 +#define IDM_SE_TOOLBAR_SERVEREXPLORER 0x0600 + +/////////////////////////////////////////////// +// +// SQL Server Object Explorer menu groups +// +/////////////////////////////////////////////// + +//Context Menu +#define mnuIdSqlServerObjectExplorerContextMenu 0x2003 + +/////////////////////////////////////////////// +// +// Data Explorer menu groups +// +/////////////////////////////////////////////// + +#define IDG_DV_GLOBAL1 0x4001 +#define IDG_DV_GLOBAL2 0x4002 +#define IDG_DV_GLOBAL3 0x4003 +#define IDG_DV_CONNECTION 0x4101 + +// These are the old (DDEX 1.0) names +#define IDG_DV_STATIC 0x4401 +#define IDG_DV_OBJECT 0x4301 +#define IDG_DV_STATICS 0x4701 +#define IDG_DV_OBJECTS 0x4501 +#define IDG_DV_MIXED_OBJECTS 0x4601 +#define IDG_DV_MIXED 0x4801 + +// These are the new (DDEX 2.0+) names +#define IDG_DV_STATIC_NODE 0x4401 +#define IDG_DV_OBJECT_NODE 0x4301 +#define IDG_DV_STATIC_NODES 0x4701 +#define IDG_DV_HOMOGENOUS_OBJECT_NODES 0x4501 +#define IDG_DV_HETEROGENOUS_OBJECT_NODES 0x4601 +#define IDG_DV_HETEROGENOUS_NODES 0x4801 + +//IDG_VS_TOOLBAR is a group that simply contains IDG_VS_TOOLBAR_LIST (the dynamic toolbar list) and IDG_VS_TOOLBAR_CUSTOMIZE (the customize +//command). This group is placed both on IDM_VS_CSCD_COMMANDBARS and the toolbar tray context menu (IDM_VS_CTXT_TOOLBARS) +#define IDG_VS_TOOLBAR 0x4802 +#define IDG_VS_TOOLBAR_LIST 0x4803 +#define IDG_VS_TOOLBAR_CUSTOMIZE 0x4804 +#define IDM_VS_CTXT_TOOLBARS 0x4805 + +// Group containing explorer windows in other windows menu +#define IDG_VS_WNDO_OTRWNDWSEXPLORERS 0x5200 + +// groups for upgrade commands +#define IDG_VS_ALL_PROJ_UPGRADE 0x5030 +#define IDG_VS_PROJ_UPGRADE 0x5031 + +// Solution/project fault resolution +#define IDG_VS_CTXT_SOLUTION_RESOLVE 0x5032 + + +#endif // _VSSHLIDS_H_ diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/wbids.h b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/wbids.h new file mode 100644 index 00000000..4b0e1e0b --- /dev/null +++ b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/inc/wbids.h @@ -0,0 +1,251 @@ +#ifndef _WBIDS_H_ +#define _WBIDS_H_ + +#include "MsHtmCID.h" + +////////////////////////////////////////////////////////////////////////////// +// +// GUID Identifiers, created by WebBrowse package +// +////////////////////////////////////////////////////////////////////////////// +#ifndef NOGUIDS + +#ifdef DEFINE_GUID + // WB package object CLSID + DEFINE_GUID (guidWBPkg, + 0xe8b06f41, 0x6d01, 0x11d2, 0xaa, 0x7d, 0x00, 0xc0, 0x4f, 0x99, 0x03, 0x43); + + DEFINE_GUID (guidWBPkgCmd, + 0xe8b06f44, 0x6d01, 0x11d2, 0xaa, 0x7d, 0x00, 0xc0, 0x4f, 0x99, 0x03, 0x43); + + DEFINE_GUID (guidWBGrp, + 0xe8b06f42, 0x6d01, 0x11d2, 0xaa, 0x7d, 0x00, 0xc0, 0x4f, 0x99, 0x03, 0x43); + + DEFINE_GUID(guidDynHelp, + 0x2d2e0d17, 0xc8d0, 0x4744, 0x81, 0x6, 0xed, 0xca, 0x7f, 0x21, 0xc1, 0xac); + + DEFINE_GUID(guidWBIcons, + 0xddfe7dbb, 0x66e4, 0x4954, 0x8a, 0xf, 0x36, 0xcf, 0xe1, 0x5e, 0xb1, 0x2e); + +#else + +#define guidWBPkg { 0xe8b06f41, 0x6d01, 0x11d2, { 0xaa, 0x7d, 0x00, 0xc0, 0x4f, 0x99, 0x03, 0x43 } } +#define guidWBPkgCmd { 0xe8b06f44, 0x6d01, 0x11d2, { 0xaa, 0x7d, 0x00, 0xc0, 0x4f, 0x99, 0x03, 0x43 } } +#define guidWBGrp { 0xe8b06f42, 0x6d01, 0x11d2, { 0xaa, 0x7d, 0x00, 0xc0, 0x4f, 0x99, 0x03, 0x43 } } +#define guidDynHelp { 0x2d2e0d17, 0xc8d0, 0x4744, { 0x81, 0x6, 0xed, 0xca, 0x7f, 0x21, 0xc1, 0xac } } +#define guidWBIcons { 0xddfe7dbb, 0x66e4, 0x4954, { 0x8a, 0xf, 0x36, 0xcf, 0xe1, 0x5e, 0xb1, 0x2e } } + +#endif //DEFINE_GUID + +#endif //NOGUIDS + +/////////////////////////////////////////////////////////////////////////////// +// Menus + +#define IDM_WBTLB_WEB 1 +#define IDM_WBMNU_COMMAND_WELL 2 +#define IDM_WBMNU_FONTSIZE 3 +#define IDM_WB_OPENIE_CASCADE 4 + +#define IDM_WBCTX_DEFAULT 10 +#define IDM_WBCTX_IMAGE 11 +#define IDM_WBCTX_SELECTION 12 +#define IDM_WBCTX_ANCHOR 13 + +#define IDM_WB_ENCODING 25 +#define IDM_WB_ENCODING_MORE 26 +#define IDM_VS_DYNHELP 27 + +#define IDM_WB_HELP_NAV 28 +#define IDM_WB_F1DISAMBIGUATE 29 +#define IDM_WB_URL 30 + +#define IDM_WB_HOWDOI_MNUCTLR 31 + +/////////////////////////////////////////////////////////////////////////////// +// Menu Groups + +#define IDG_WB_MAIN 100 +#define IDG_WB_FAVORITES 101 +#define IDG_WB_URL 102 +#define IDG_WB_HELP 103 +#define IDG_WB_ASKAQUESTION 104 +#define IDG_WB_NEW_WINDOW 105 +#define IDG_WB_SHOW 106 + +#define IDG_WB_FONTSIZE 107 +#define IDG_WB_MNUCMDS 108 +#define IDG_WB_FONTSIZELIST 109 +#define IDG_WB_OPENIE_CASCADE 110 +#define IDG_WB_CMDWELL 111 +#define IDG_WB_CMDWELL_MAINMENU 112 + +#define IDG_WB_BACK_FORWARD 113 +#define IDG_WB_HOME_SEARCH 114 + +#define IDG_WB_CTX_DEF_0 119 +#define IDG_WB_CTX_DEF_1 120 +#define IDG_WB_CTX_DEF_2 121 +#define IDG_WB_CTX_DEF_3 122 +#define IDG_WB_CTX_DEF_4 123 +#define IDG_WB_CTX_PROPS 124 +#define IDG_WB_CTX_ANCHOR 125 +#define IDG_WB_CTX_IMG_1 126 +#define IDG_WB_CTX_IMG_2 127 +#define IDG_WB_CTX_SEL_1 128 +#define IDG_WB_CTX_ANC_1 129 + +#define IDM_WB_F1DISAMBIGUATE_TB 147 +#define IDG_WB_URL_TB 148 + +#define IDG_WB_ENCODING 150 +#define IDG_WB_ENCODING_AUTO 151 +#define IDG_WB_ENCODING_MRU 152 + +#define IDG_WB_CP_ARABIC 155 +#define IDG_WB_CP_BALTIC 156 +#define IDG_WB_CP_CENTRAL_EURO 157 +#define IDG_WB_CP_CHINESE_SIMPL 158 +#define IDG_WB_CP_CHINESE_TRAD 159 +#define IDG_WB_CP_CYRILLIC 160 +#define IDG_WB_CP_GREEK 161 +#define IDG_WB_CP_HEBREW 162 +#define IDG_WB_CP_JAPANESE 163 +#define IDG_WB_CP_KOREAN 164 +#define IDG_WB_CP_THAI 165 +#define IDG_WB_CP_TURKISH 166 +#define IDG_WB_CP_UKRAINIAN 167 +#define IDG_WB_CP_UNICODE 168 +#define IDG_WB_CP_USERDEFINED 169 +#define IDG_WB_CP_VIETNAMESE 170 +#define IDG_WB_CP_WESTERN_EURO 171 + + +/////////////////////////////////////////////////////////////////////////////// +// Command IDs + +#define icmdBack 201 +#define icmdForward 202 +#define icmdStop 203 +#define icmdRefresh 204 +#define icmdHome 205 +#define icmdSearch 206 +#define icmdURL 207 +#define icmdURLHandler 208 +#define icmdBack2 209 +#define icmdForward2 210 +#define icmdSearch2 211 +#define icmdHome2 212 +#define icmdFntSzSmallest 214 +#define icmdFntSzSmaller 215 +#define icmdFntSzMedium 216 +#define icmdFntSzLarger 217 +#define icmdFntSzLargest 218 +#define icmdFontSize 219 +#define icmdOpenLinkNew 303 + +#define icmdIEFind 405 + +// Encoding commands + +#define icmdCpFirst 410 +#define icmdCpArabicASMO 410 +#define icmdCpArabicDOS 411 +#define icmdCpArabicISO 412 +#define icmdCpArabicWIN 413 +#define icmdCpBalticISO 414 +#define icmdCpBalticWIN 415 +#define icmdCpCentralEuroDOS 416 +#define icmdCpCentralEuroISO 417 +#define icmdCpCentralEuroWIN 418 +#define icmdCpChineseSimplified 419 +#define icmdCpChineseTraditional 420 +#define icmdCpCyrillicDOS 421 +#define icmdCpCyrillicISO 422 +#define icmdCpCyrillicKOI8R 423 +#define icmdCpCyrillicWIN 424 +#define icmdCpGreekISO 425 +#define icmdCpGreekWIN 426 +#define icmdCpHebrewDOS 427 +#define icmdCpHebrewISO 428 +#define icmdCpHebrewWIN 429 +#define icmdCpJapaneseAUTO 430 +#define icmdCpJapaneseEUC 431 +#define icmdCpJapaneseSHIFT_JIS 432 +#define icmdCpKoreanAUTO 433 +//#define icmdCpKorean 434 +//#define icmdCpKoreanISO 435 +#define icmdCpThaiWIN 436 +#define icmdCpTurkishWIN 437 +#define icmdCpTurkishISO 438 +#define icmdCpUkrainian 439 +//#define icmdCpUnicodeUTF7 440 +#define icmdCpUnicodeUTF8 441 +#define icmdCpVietnamese 442 +#define icmdCpWesternEuroWIN 443 +#define icmdCpWesternEuroISO 444 +#define icmdCpUserDefined 445 +#define icmdCpChineseSimplifiedGB18030 446 +#define icmdCpLast 446 + +#define icmdCpMRU1 460 +#define icmdCpMRU2 461 +#define icmdCpMRU3 462 +#define icmdCpMRU4 463 + +#define icmdDisambiguationSelect 470 +#define icmdDisambiguationSelectHandler 471 + +#define icmdOnlinePrivacyStatement 475 + +// Directly mapped Trident Commands +#define icmdCpAuto IDM_AUTODETECT + +#define icmdOpenLink IDM_FOLLOWLINKC +#define icmdOpenLinkExt IDM_FOLLOWLINKN +#define icmdSaveTargetAs IDM_SAVETARGET +#define icmdPrintTarget IDM_PRINTTARGET + +#define icmdSaveBgrndAs IDM_SAVEBACKGROUND +#define icmdCopyBackground IDM_COPYBACKGROUND + +#define icmdViewSource IDM_VIEWSOURCE + +#define icmdShowPicture IDM_SHOWPICTURE +#define icmdSavePicture IDM_SAVEPICTURE +#define icmdCopyShortcut IDM_COPYSHORTCUT + +#define icmdProperties IDM_PROPERTIES + +#define icmdForceCloseWB 4997 +#define icmdCloseWB 4998 +#define icmdNavigate 4999 +#define icmdOpenWB 5000 +#define icmdWebBrowserFirst 5001 +// don't define command > icmdWebBrowserFirst + +/////////////////////////////////////////////////////////////////////////////// +// Button Bitmap IDs + +#define bmpidWebBrowser 1 +#define bmpidBack 2 +#define bmpidForward 3 +#define bmpidStop 4 +#define bmpidRefresh 5 +#define bmpidHome 6 +#define bmpidSearch 7 +#define bmpidFontSize 8 +#define bmpidOpenLink 9 +#define bmpidWebSave 10 +#define bmpidPicSave 11 +#define bmpidProperties 12 + +#define bmpidSync 13 +#define bmpidPrev 14 +#define bmpidNext 15 +#define bmpidVsDynamicHelp 16 + +#define bmpidVsCommLinks 1 +#define bmpidVsCommIM 2 + +#endif //_WBIDS_H_ \ No newline at end of file diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/offreg.dll b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/offreg.dll new file mode 100644 index 00000000..13acc524 Binary files /dev/null and b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/offreg.dll differ diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/schemas/PackageLanguagePackManifestSchema.xsd b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/schemas/PackageLanguagePackManifestSchema.xsd new file mode 100644 index 00000000..c1c29693 --- /dev/null +++ b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/schemas/PackageLanguagePackManifestSchema.xsd @@ -0,0 +1,45 @@ + + + + + This schema is used for installing extensions to Visual Studio. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The Version attribute is the version of the VSIX file. For VS 2010, use 1.0.0 + + + + + + diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/schemas/PackageManifestSchema.Assets.xsd b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/schemas/PackageManifestSchema.Assets.xsd new file mode 100644 index 00000000..6ae04547 --- /dev/null +++ b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/schemas/PackageManifestSchema.Assets.xsd @@ -0,0 +1,82 @@ + + + + + + This schema is used for installing extensions to Visual Studio. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The range of Visual Studio versions that this asset should be loaded for e.g. [15.0,16.0). Does not apply to assets of type ToolboxControl or VsPackage. + + + + + + + + + + diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/schemas/PackageManifestSchema.Dependencies.xsd b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/schemas/PackageManifestSchema.Dependencies.xsd new file mode 100644 index 00000000..ca01cbca --- /dev/null +++ b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/schemas/PackageManifestSchema.Dependencies.xsd @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + The Author element is the person or company creating the extension. + + + + + + + + + + + + + + The Author element is the person or company creating the extension. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/schemas/PackageManifestSchema.DesignNamespace.xsd b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/schemas/PackageManifestSchema.DesignNamespace.xsd new file mode 100644 index 00000000..ab498a67 --- /dev/null +++ b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/schemas/PackageManifestSchema.DesignNamespace.xsd @@ -0,0 +1,11 @@ + + + + + + + + \ No newline at end of file diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/schemas/PackageManifestSchema.Installation.xsd b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/schemas/PackageManifestSchema.Installation.xsd new file mode 100644 index 00000000..a8085048 --- /dev/null +++ b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/schemas/PackageManifestSchema.Installation.xsd @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + The InstalledByMsi element should be used if the VSIX is being installed by an MSI. + Setting this property to true means the extension will appear in the Extension Manager if the manifest is placed in a supported + location on disk. However, the end user will not be able to uninstall it. The user will need to remove the extension from + Windows Add/Remove Programs by uninstalling the parent MSI. + + + + + + + + The SystemComponent element will hide the extension from the Extension Manager UI. + Warning, users will not be able to uninstall the extension through the Extension Manager UI if this is set. + + + + + + + + Setting the AllUsers element to "true" will force the extension to be installed to the Per Machine location. + + + + + + + + Setting the Experimental element to "true" will install the user-based extension on top of machine-based extension for the same vsix id. + + + + + + + + Indicates that the installation is not scoped to any particular SKU. This is independent of the notion + of machine-wide vs. per user install, which is still controlled by AllUsers. + + + + + + + + Indicates how the embedded catalog manifest should be applied. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/schemas/PackageManifestSchema.Installer.xsd b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/schemas/PackageManifestSchema.Installer.xsd new file mode 100644 index 00000000..e409f40d --- /dev/null +++ b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/schemas/PackageManifestSchema.Installer.xsd @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/schemas/PackageManifestSchema.Metadata.xsd b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/schemas/PackageManifestSchema.Metadata.xsd new file mode 100644 index 00000000..bd5dc0f3 --- /dev/null +++ b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/schemas/PackageManifestSchema.Metadata.xsd @@ -0,0 +1,174 @@ + + + + + + + + + The DisplayName element specifies the user-friendly package name that is displayed in the Extension Manager UI. + + + + + + + + + + + + + + The Description element is a short description of the package and its contents that is displayed in the Extension Manager UI. + + + + + + + + + + + + + The MoreInfoUrl element is used to provide additional information to the consumer of the extension. The hyperlink to the URL + provided appears in the Extension Manager UI inside the product. + + + + + + + + The License element allows the developer to specify a license or end user licensing agreement (EULA). + The license is displayed when the consumer of the extension tries to install the extension. + The license can be a text file or an RTF file. + + + + + + + + The GettingStartedGuide element is a link to a website or file that gets launched in the client's browser after the extension + is installed. This provides the developer an opportunity to provide additional information or help to the consumer once + the extension is installed. + + + + + + + + The ReleaseNotes element is a link to a website or file that gets launched in the client's browser (for web addresses) or a dialog + or a dialog for local files when the user clicks the link the Extension Manager UI. This provides the developer an opportunity to provide information about changes to the extension + from version to version. + + + + + + + + The Icon element allows the developer to provide an icon that appears in the Extension Manager UI when browsing for the extension. + + + + + + + + The PreviewImage element allows the developer to provide an image that appears in the Extension Manager UI preview pane when browsing + for the extension. + + + + + + + + The Tags element is an optional element that lists additional semicolon-delimeted text tags that are used for search hints. + + + + + + + + The Preview element is an optional element that allows the developer to set it to "true" which provide release information about extension that appears in the Extension Manager UI preview pane when browsing. + + + + + + + + The Version element is an optional element that allows the developer to set it to an integer specifying that the extension is compatible with a nexus environment. + + + + + + + + + + + + + + The Identity element defines identification information for the package. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/schemas/PackageManifestSchema.Prerequisites.xsd b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/schemas/PackageManifestSchema.Prerequisites.xsd new file mode 100644 index 00000000..647f56cc --- /dev/null +++ b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/schemas/PackageManifestSchema.Prerequisites.xsd @@ -0,0 +1,23 @@ + + + + + + + + This schema is used for installing extensions to Visual Studio. + + + + + + + + + + + + diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/schemas/PackageManifestSchema.xsd b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/schemas/PackageManifestSchema.xsd new file mode 100644 index 00000000..bf6228b7 --- /dev/null +++ b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/schemas/PackageManifestSchema.xsd @@ -0,0 +1,47 @@ + + + + + This schema is used for installing extensions to Visual Studio. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The Version attribute is the version of the VSIX file. For VS 2010, use 1.0.0 + + + + + + diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/schemas/VSIXLanguagePackSchema.xsd b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/schemas/VSIXLanguagePackSchema.xsd new file mode 100644 index 00000000..c6f52f5b --- /dev/null +++ b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/schemas/VSIXLanguagePackSchema.xsd @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/schemas/VSIXManifestSchema.xsd b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/schemas/VSIXManifestSchema.xsd new file mode 100644 index 00000000..9e8e7b7a --- /dev/null +++ b/packages/Microsoft.VSSDK.BuildTools.16.4.1057/tools/vssdk/schemas/VSIXManifestSchema.xsd @@ -0,0 +1,514 @@ + + + + + This schema is used for installing extensions to Visual Studio. + + + + + + + + + The Identifier section is used to uniquely identify the extension and provide metadata about the extension. + + + + + + + + The Name element is the product name. + + + + + + + + + + + + + The Author element is the person or company creating the extension. + + + + + + + + + + + + + The Version element is the version of the extension. The convention for version is A.B.C.D. + For example: 1.0.0.0 + + + + + + + The Description element is used to describe the extension. + + + + + + + + + + + + The Locale element describes the locale of the extension. The locale value is a four digit numerical value. + For example: 1033 is English, 1041 is Japanese. + + + + + + + The MoreInfoUrl element is used to provide additional information to the consumer of the extension. The hyperlink to the URL + provided appears in the Extension Manager UI inside the product. + + + + + + + The License element allows the developer to specify a license or end user licensing agreement (EULA). + The license is displayed when the consumer of the extension tries to install the extension. + The license can be a text file or an RTF file. + + + + + + + The GettingStartedGuide element is a link to a website or file that gets launched in the client's browser after the extension + is installed. This provides the developer an opportunity to provide additional information or help to the consumer once + the extension is installed. + + + + + + + The ReleaseNotes element is a link to a website or file that gets launched in the client's browser (for web addresses) or a dialog + or a dialog for local files when the user clicks the link the Extension Manager UI. This provides the developer an opportunity to provide information about changes to the extension + from version to version. + + + + + + + The Icon element allows the developer to provide an icon that appears in the Extension Manager UI when browsing for the extension. + + + + + + + The Preview element allows the developer to provide an image that appears in the Extension Manager UI preview pane when browsing + for the extension. + + + + + + + The InstalledByMsi element should be used if the VSIX is being installed by an MSI. + Setting this property to true means the extension will appear in the Extension Manager if the manifest is placed in a supported + location on disk. However, the end user will not be able to uninstall it. The user will need to remove the extension from + Windows Add/Remove Programs by uninstalling the parent MSI. + + + + + + + The SupportedProducts element is a list of elements the extension will target. + + + + + + + + + + + + + + + + This will target the Integrated Shell and all VS Editions. + + + + + + + This will target VS Community, Professional and Enterprise. + + + + + + + This will target VS Community, Professional and Enterprise. + + + + + + + This will target VS Premium and Ultimate. + + + + + + + This will target VS Ultimate. + + + + + + + This will target VS Enterprise. + + + + + + + This will target Express for Web. + + + + + + + This will target Express for Windows. + + + + + + + This will target Express for Desktop. + + + + + + + This will target all Express products. + + + + + + + + + + + + + + + + The Version attribute maps to the version of Visual Studio. For VS 2010, the version is 10.0 + + + + + + + + + The IsolatedShell element is used to describe which Isolated shell the extension can target. + + + + + + + + + + + + + + + + + The SupportedFrameworkRuntimeEdition element is used to describe the minimum and maximum .NET Framework runtime required + for the extension to run correctly. + + + + + + + + + + + The SystemComponent element will hide the extension from the Extension Manager UI. + Warning, users will not be able to uninstall the extension through the Extension Manager UI if this is set. + + + + + + + Setting the AllUsers element to "true" will force the extension to be installed to the Per Machine location. + This location for VS 2010 is %VSInstallDir%\Common7\Ide\Extensions\[Author]\[Name]\[Version] + + + + + + + + The Id attribute is a unique string for the extension. + An extension with the same Id value and a newer version value of another extension is an update of that extension. + The Id string can be any string and does not have to be a GUID. + + + + + + + + + The References section allows the extension creator to define the dependencies that are required for their extension. + If the referenced VSIX is not installed or carried as a payload, the install will fail. + The end user will see an error message and be provided a link to download the missing dependency. + + + + + + + + + + + The Name element is the product name of the missing dependency. + + + + + + + The MoreInfoUrl is the URL where the end user can get more information about the dependency or a link to + a page where they can download the dependency. + + + + + + + The VsixPath element allows the dependency to be carried as a payload. The path will refer to a relative + path to the .VSIX file from the root of the outer VSIX. + + + + + + + + The Id attribute is the Id of the missing dependency that is being referenced. + + + + + + + The MinVersion and MaxVersion attributes provide an optional range of versions of the missing dependency. + It is up to the developer to ensure a MaxVersion if there are known breaking changes in a newer release. + + + + + + + The MinVersion and MaxVersion attributes provide an optional range of versions of the missing dependency. + It is up to the developer to ensure a MaxVersion if there are known breaking changes in a newer release. + + + + + + + + + + + + The Content section is used to describe the payload in the VSIX. + Not all content needs to be described. Only the extension types need to be defined. + + + + + + + + The ProjectTemplate element is a directory name of where the project template zip appears in the VSIX. + This must be a directory. + + + + + + + The ItemTemplate element is a directory name of where the item template zip file appears in the VSIX. + This must be a directory. + + + + + + + The Assembly element is used if there is a project or item template which requires a wizard. + The Assembly value will point to the assembly file in the VSIX. + + + + + + + + + The AssemblyName is the full strong name of the Assembly. This is required to properly load the template wizard. + + + + + + + + + + + The MefComponent element defines the location of the MEF assembly in the VSIX package. + + + + + + + The Sample element defines the location of the sample folder in the VSIX package. + + + + + + + + + The ProgrammingLanguages is the list of programming languages for projects in the sample. + + + + + + + The TargetFrameworks is the list of target frameworks for projects in the sample. + + + + + + + The CategorizationPath is the path specifying the categorization in the new project dialog. + The path segments should be separated by the '\' character. + + + + + + + The StartupFiles is the list of files in the sample folder to start when the sample is instantiated. The paths should + be relative to the sample folder root. + + + + + + + The DefaultName is the default name of the sample in the New Project Dialog. Defaults to the name of the + sample solution if not specified. + + + + + + + The SolutionPath is the path to the solution file the sample folder to start when the sample is instantiated. The path should + be relative to the sample folder root. + + + + + + + + + + + The VsPackage element defines the location of the .pkgdef file in the VSIX package. + + + + + + + The ToolboxControl defines the location of the .pkgdef file in the VSIX that is used to register the ToolboxControl. + + + + + + + The CustomExtension element is used for defining a custom elemenet that the Extension Manager can load. + The value can be a path to a file or a directory within the VSIX file. + + + + + + + + + + + + + + + + + + + The Version attribute is the version of the VSIX file. For VS 2010, use 1.0.0 + + + + + +