diff --git a/CVCncLib/CVCncLib.dll b/CVCncLib/CVCncLib.dll
index 52d2838e..7a3680a5 100644
Binary files a/CVCncLib/CVCncLib.dll and b/CVCncLib/CVCncLib.dll differ
diff --git a/IOB-NET.sln b/IOB-NET.sln
new file mode 100644
index 00000000..c9dcae92
--- /dev/null
+++ b/IOB-NET.sln
@@ -0,0 +1,310 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.29613.14
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VersGen", "VersGen\VersGen.csproj", "{58E399F3-9D4E-49D3-AB35-9ED536543D50}"
+EndProject
+Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "CncLib", "CncLib\CncLib.vbproj", "{2D769FFD-1122-4276-A115-29246E6D23C5}"
+EndProject
+Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "CVCncLib", "CVCncLib\CVCncLib.vbproj", "{DC6B309E-F8E9-4BA2-A621-4F617C072533}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{B52E3E86-1B82-4F4D-982C-0C8909CD2A28}"
+ ProjectSection(SolutionItems) = preProject
+ .editorconfig = .editorconfig
+ EndProjectSection
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Iob.Config", "Iob.Config\Iob.Config.csproj", "{ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Iob.Core", "Iob.Core\Iob.Core.csproj", "{E7373C65-E16A-4F99-8911-BFE72593133E}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Iob.Adapter", "Iob.Adapter\Iob.Adapter.csproj", "{09FD3985-3898-4AD8-9472-2B84D117BBCD}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Iob.Model", "Iob.Model\Iob.Model.csproj", "{3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Iob.Net.UI", "Iob.Net.UI\Iob.Net.UI.csproj", "{4E796675-57FF-49EE-B722-DBF4747F786A}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ CMS-FANUC|Any CPU = CMS-FANUC|Any CPU
+ CMS-FANUC|x86 = CMS-FANUC|x86
+ CMS-OSAI|Any CPU = CMS-OSAI|Any CPU
+ CMS-OSAI|x86 = CMS-OSAI|x86
+ CMS-SIEMENS|Any CPU = CMS-SIEMENS|Any CPU
+ CMS-SIEMENS|x86 = CMS-SIEMENS|x86
+ Debug|Any CPU = Debug|Any CPU
+ Debug|x86 = Debug|x86
+ FANUC|Any CPU = FANUC|Any CPU
+ FANUC|x86 = FANUC|x86
+ Release|Any CPU = Release|Any CPU
+ Release|x86 = Release|x86
+ SCM-ESA|Any CPU = SCM-ESA|Any CPU
+ SCM-ESA|x86 = SCM-ESA|x86
+ SIEMENS|Any CPU = SIEMENS|Any CPU
+ SIEMENS|x86 = SIEMENS|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {58E399F3-9D4E-49D3-AB35-9ED536543D50}.CMS-FANUC|Any CPU.ActiveCfg = Release|Any CPU
+ {58E399F3-9D4E-49D3-AB35-9ED536543D50}.CMS-FANUC|Any CPU.Build.0 = Release|Any CPU
+ {58E399F3-9D4E-49D3-AB35-9ED536543D50}.CMS-FANUC|x86.ActiveCfg = Debug|Any CPU
+ {58E399F3-9D4E-49D3-AB35-9ED536543D50}.CMS-FANUC|x86.Build.0 = Debug|Any CPU
+ {58E399F3-9D4E-49D3-AB35-9ED536543D50}.CMS-OSAI|Any CPU.ActiveCfg = Release|Any CPU
+ {58E399F3-9D4E-49D3-AB35-9ED536543D50}.CMS-OSAI|Any CPU.Build.0 = Release|Any CPU
+ {58E399F3-9D4E-49D3-AB35-9ED536543D50}.CMS-OSAI|x86.ActiveCfg = Debug|Any CPU
+ {58E399F3-9D4E-49D3-AB35-9ED536543D50}.CMS-OSAI|x86.Build.0 = Debug|Any CPU
+ {58E399F3-9D4E-49D3-AB35-9ED536543D50}.CMS-SIEMENS|Any CPU.ActiveCfg = Release|Any CPU
+ {58E399F3-9D4E-49D3-AB35-9ED536543D50}.CMS-SIEMENS|Any CPU.Build.0 = Release|Any CPU
+ {58E399F3-9D4E-49D3-AB35-9ED536543D50}.CMS-SIEMENS|x86.ActiveCfg = Debug|Any CPU
+ {58E399F3-9D4E-49D3-AB35-9ED536543D50}.CMS-SIEMENS|x86.Build.0 = Debug|Any CPU
+ {58E399F3-9D4E-49D3-AB35-9ED536543D50}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {58E399F3-9D4E-49D3-AB35-9ED536543D50}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {58E399F3-9D4E-49D3-AB35-9ED536543D50}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {58E399F3-9D4E-49D3-AB35-9ED536543D50}.Debug|x86.Build.0 = Debug|Any CPU
+ {58E399F3-9D4E-49D3-AB35-9ED536543D50}.FANUC|Any CPU.ActiveCfg = Release|Any CPU
+ {58E399F3-9D4E-49D3-AB35-9ED536543D50}.FANUC|Any CPU.Build.0 = Release|Any CPU
+ {58E399F3-9D4E-49D3-AB35-9ED536543D50}.FANUC|x86.ActiveCfg = Debug|Any CPU
+ {58E399F3-9D4E-49D3-AB35-9ED536543D50}.FANUC|x86.Build.0 = Debug|Any CPU
+ {58E399F3-9D4E-49D3-AB35-9ED536543D50}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {58E399F3-9D4E-49D3-AB35-9ED536543D50}.Release|Any CPU.Build.0 = Release|Any CPU
+ {58E399F3-9D4E-49D3-AB35-9ED536543D50}.Release|x86.ActiveCfg = Release|x86
+ {58E399F3-9D4E-49D3-AB35-9ED536543D50}.Release|x86.Build.0 = Release|x86
+ {58E399F3-9D4E-49D3-AB35-9ED536543D50}.SCM-ESA|Any CPU.ActiveCfg = Release|Any CPU
+ {58E399F3-9D4E-49D3-AB35-9ED536543D50}.SCM-ESA|Any CPU.Build.0 = Release|Any CPU
+ {58E399F3-9D4E-49D3-AB35-9ED536543D50}.SCM-ESA|x86.ActiveCfg = Debug|Any CPU
+ {58E399F3-9D4E-49D3-AB35-9ED536543D50}.SCM-ESA|x86.Build.0 = Debug|Any CPU
+ {58E399F3-9D4E-49D3-AB35-9ED536543D50}.SIEMENS|Any CPU.ActiveCfg = Release|Any CPU
+ {58E399F3-9D4E-49D3-AB35-9ED536543D50}.SIEMENS|Any CPU.Build.0 = Release|Any CPU
+ {58E399F3-9D4E-49D3-AB35-9ED536543D50}.SIEMENS|x86.ActiveCfg = Debug|Any CPU
+ {58E399F3-9D4E-49D3-AB35-9ED536543D50}.SIEMENS|x86.Build.0 = Debug|Any CPU
+ {2D769FFD-1122-4276-A115-29246E6D23C5}.CMS-FANUC|Any CPU.ActiveCfg = FANUC|Any CPU
+ {2D769FFD-1122-4276-A115-29246E6D23C5}.CMS-FANUC|Any CPU.Build.0 = FANUC|Any CPU
+ {2D769FFD-1122-4276-A115-29246E6D23C5}.CMS-FANUC|x86.ActiveCfg = FANUC|Any CPU
+ {2D769FFD-1122-4276-A115-29246E6D23C5}.CMS-FANUC|x86.Build.0 = FANUC|Any CPU
+ {2D769FFD-1122-4276-A115-29246E6D23C5}.CMS-OSAI|Any CPU.ActiveCfg = OSAI|Any CPU
+ {2D769FFD-1122-4276-A115-29246E6D23C5}.CMS-OSAI|Any CPU.Build.0 = OSAI|Any CPU
+ {2D769FFD-1122-4276-A115-29246E6D23C5}.CMS-OSAI|x86.ActiveCfg = OSAI|Any CPU
+ {2D769FFD-1122-4276-A115-29246E6D23C5}.CMS-OSAI|x86.Build.0 = OSAI|Any CPU
+ {2D769FFD-1122-4276-A115-29246E6D23C5}.CMS-SIEMENS|Any CPU.ActiveCfg = SIEMENS|Any CPU
+ {2D769FFD-1122-4276-A115-29246E6D23C5}.CMS-SIEMENS|Any CPU.Build.0 = SIEMENS|Any CPU
+ {2D769FFD-1122-4276-A115-29246E6D23C5}.CMS-SIEMENS|x86.ActiveCfg = SIEMENS|Any CPU
+ {2D769FFD-1122-4276-A115-29246E6D23C5}.CMS-SIEMENS|x86.Build.0 = SIEMENS|Any CPU
+ {2D769FFD-1122-4276-A115-29246E6D23C5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {2D769FFD-1122-4276-A115-29246E6D23C5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {2D769FFD-1122-4276-A115-29246E6D23C5}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {2D769FFD-1122-4276-A115-29246E6D23C5}.Debug|x86.Build.0 = Debug|Any CPU
+ {2D769FFD-1122-4276-A115-29246E6D23C5}.FANUC|Any CPU.ActiveCfg = FANUC|Any CPU
+ {2D769FFD-1122-4276-A115-29246E6D23C5}.FANUC|Any CPU.Build.0 = FANUC|Any CPU
+ {2D769FFD-1122-4276-A115-29246E6D23C5}.FANUC|x86.ActiveCfg = FANUC|Any CPU
+ {2D769FFD-1122-4276-A115-29246E6D23C5}.FANUC|x86.Build.0 = FANUC|Any CPU
+ {2D769FFD-1122-4276-A115-29246E6D23C5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {2D769FFD-1122-4276-A115-29246E6D23C5}.Release|Any CPU.Build.0 = Release|Any CPU
+ {2D769FFD-1122-4276-A115-29246E6D23C5}.Release|x86.ActiveCfg = Release|x86
+ {2D769FFD-1122-4276-A115-29246E6D23C5}.Release|x86.Build.0 = Release|x86
+ {2D769FFD-1122-4276-A115-29246E6D23C5}.SCM-ESA|Any CPU.ActiveCfg = ESA|Any CPU
+ {2D769FFD-1122-4276-A115-29246E6D23C5}.SCM-ESA|Any CPU.Build.0 = ESA|Any CPU
+ {2D769FFD-1122-4276-A115-29246E6D23C5}.SCM-ESA|x86.ActiveCfg = ESA|Any CPU
+ {2D769FFD-1122-4276-A115-29246E6D23C5}.SCM-ESA|x86.Build.0 = ESA|Any CPU
+ {2D769FFD-1122-4276-A115-29246E6D23C5}.SIEMENS|Any CPU.ActiveCfg = SIEMENS|Any CPU
+ {2D769FFD-1122-4276-A115-29246E6D23C5}.SIEMENS|Any CPU.Build.0 = SIEMENS|Any CPU
+ {2D769FFD-1122-4276-A115-29246E6D23C5}.SIEMENS|x86.ActiveCfg = SIEMENS|Any CPU
+ {2D769FFD-1122-4276-A115-29246E6D23C5}.SIEMENS|x86.Build.0 = SIEMENS|Any CPU
+ {DC6B309E-F8E9-4BA2-A621-4F617C072533}.CMS-FANUC|Any CPU.ActiveCfg = Release|Any CPU
+ {DC6B309E-F8E9-4BA2-A621-4F617C072533}.CMS-FANUC|Any CPU.Build.0 = Release|Any CPU
+ {DC6B309E-F8E9-4BA2-A621-4F617C072533}.CMS-FANUC|x86.ActiveCfg = Release|x86
+ {DC6B309E-F8E9-4BA2-A621-4F617C072533}.CMS-FANUC|x86.Build.0 = Release|x86
+ {DC6B309E-F8E9-4BA2-A621-4F617C072533}.CMS-OSAI|Any CPU.ActiveCfg = Release|Any CPU
+ {DC6B309E-F8E9-4BA2-A621-4F617C072533}.CMS-OSAI|Any CPU.Build.0 = Release|Any CPU
+ {DC6B309E-F8E9-4BA2-A621-4F617C072533}.CMS-OSAI|x86.ActiveCfg = Release|x86
+ {DC6B309E-F8E9-4BA2-A621-4F617C072533}.CMS-OSAI|x86.Build.0 = Release|x86
+ {DC6B309E-F8E9-4BA2-A621-4F617C072533}.CMS-SIEMENS|Any CPU.ActiveCfg = Release|Any CPU
+ {DC6B309E-F8E9-4BA2-A621-4F617C072533}.CMS-SIEMENS|Any CPU.Build.0 = Release|Any CPU
+ {DC6B309E-F8E9-4BA2-A621-4F617C072533}.CMS-SIEMENS|x86.ActiveCfg = Release|x86
+ {DC6B309E-F8E9-4BA2-A621-4F617C072533}.CMS-SIEMENS|x86.Build.0 = Release|x86
+ {DC6B309E-F8E9-4BA2-A621-4F617C072533}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {DC6B309E-F8E9-4BA2-A621-4F617C072533}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {DC6B309E-F8E9-4BA2-A621-4F617C072533}.Debug|x86.ActiveCfg = Debug|x86
+ {DC6B309E-F8E9-4BA2-A621-4F617C072533}.Debug|x86.Build.0 = Debug|x86
+ {DC6B309E-F8E9-4BA2-A621-4F617C072533}.FANUC|Any CPU.ActiveCfg = Release|Any CPU
+ {DC6B309E-F8E9-4BA2-A621-4F617C072533}.FANUC|Any CPU.Build.0 = Release|Any CPU
+ {DC6B309E-F8E9-4BA2-A621-4F617C072533}.FANUC|x86.ActiveCfg = Release|x86
+ {DC6B309E-F8E9-4BA2-A621-4F617C072533}.FANUC|x86.Build.0 = Release|x86
+ {DC6B309E-F8E9-4BA2-A621-4F617C072533}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {DC6B309E-F8E9-4BA2-A621-4F617C072533}.Release|Any CPU.Build.0 = Release|Any CPU
+ {DC6B309E-F8E9-4BA2-A621-4F617C072533}.Release|x86.ActiveCfg = Release|x86
+ {DC6B309E-F8E9-4BA2-A621-4F617C072533}.Release|x86.Build.0 = Release|x86
+ {DC6B309E-F8E9-4BA2-A621-4F617C072533}.SCM-ESA|Any CPU.ActiveCfg = Release|Any CPU
+ {DC6B309E-F8E9-4BA2-A621-4F617C072533}.SCM-ESA|Any CPU.Build.0 = Release|Any CPU
+ {DC6B309E-F8E9-4BA2-A621-4F617C072533}.SCM-ESA|x86.ActiveCfg = Release|x86
+ {DC6B309E-F8E9-4BA2-A621-4F617C072533}.SCM-ESA|x86.Build.0 = Release|x86
+ {DC6B309E-F8E9-4BA2-A621-4F617C072533}.SIEMENS|Any CPU.ActiveCfg = Release|Any CPU
+ {DC6B309E-F8E9-4BA2-A621-4F617C072533}.SIEMENS|Any CPU.Build.0 = Release|Any CPU
+ {DC6B309E-F8E9-4BA2-A621-4F617C072533}.SIEMENS|x86.ActiveCfg = Release|x86
+ {DC6B309E-F8E9-4BA2-A621-4F617C072533}.SIEMENS|x86.Build.0 = Release|x86
+ {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.CMS-FANUC|Any CPU.ActiveCfg = Release|Any CPU
+ {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.CMS-FANUC|Any CPU.Build.0 = Release|Any CPU
+ {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.CMS-FANUC|x86.ActiveCfg = Release|Any CPU
+ {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.CMS-FANUC|x86.Build.0 = Release|Any CPU
+ {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.CMS-OSAI|Any CPU.ActiveCfg = Release|Any CPU
+ {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.CMS-OSAI|Any CPU.Build.0 = Release|Any CPU
+ {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.CMS-OSAI|x86.ActiveCfg = Release|Any CPU
+ {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.CMS-OSAI|x86.Build.0 = Release|Any CPU
+ {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.CMS-SIEMENS|Any CPU.ActiveCfg = Release|Any CPU
+ {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.CMS-SIEMENS|Any CPU.Build.0 = Release|Any CPU
+ {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.CMS-SIEMENS|x86.ActiveCfg = Release|Any CPU
+ {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.CMS-SIEMENS|x86.Build.0 = Release|Any CPU
+ {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.Debug|x86.Build.0 = Debug|Any CPU
+ {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.FANUC|Any CPU.ActiveCfg = Release|Any CPU
+ {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.FANUC|Any CPU.Build.0 = Release|Any CPU
+ {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.FANUC|x86.ActiveCfg = Release|Any CPU
+ {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.FANUC|x86.Build.0 = Release|Any CPU
+ {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.Release|Any CPU.Build.0 = Release|Any CPU
+ {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.Release|x86.ActiveCfg = Release|Any CPU
+ {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.Release|x86.Build.0 = Release|Any CPU
+ {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.SCM-ESA|Any CPU.ActiveCfg = Release|Any CPU
+ {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.SCM-ESA|Any CPU.Build.0 = Release|Any CPU
+ {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.SCM-ESA|x86.ActiveCfg = Release|Any CPU
+ {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.SCM-ESA|x86.Build.0 = Release|Any CPU
+ {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.SIEMENS|Any CPU.ActiveCfg = Release|Any CPU
+ {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.SIEMENS|Any CPU.Build.0 = Release|Any CPU
+ {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.SIEMENS|x86.ActiveCfg = Release|Any CPU
+ {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.SIEMENS|x86.Build.0 = Release|Any CPU
+ {E7373C65-E16A-4F99-8911-BFE72593133E}.CMS-FANUC|Any CPU.ActiveCfg = Release|Any CPU
+ {E7373C65-E16A-4F99-8911-BFE72593133E}.CMS-FANUC|Any CPU.Build.0 = Release|Any CPU
+ {E7373C65-E16A-4F99-8911-BFE72593133E}.CMS-FANUC|x86.ActiveCfg = Release|Any CPU
+ {E7373C65-E16A-4F99-8911-BFE72593133E}.CMS-FANUC|x86.Build.0 = Release|Any CPU
+ {E7373C65-E16A-4F99-8911-BFE72593133E}.CMS-OSAI|Any CPU.ActiveCfg = Release|Any CPU
+ {E7373C65-E16A-4F99-8911-BFE72593133E}.CMS-OSAI|Any CPU.Build.0 = Release|Any CPU
+ {E7373C65-E16A-4F99-8911-BFE72593133E}.CMS-OSAI|x86.ActiveCfg = Release|Any CPU
+ {E7373C65-E16A-4F99-8911-BFE72593133E}.CMS-OSAI|x86.Build.0 = Release|Any CPU
+ {E7373C65-E16A-4F99-8911-BFE72593133E}.CMS-SIEMENS|Any CPU.ActiveCfg = Release|Any CPU
+ {E7373C65-E16A-4F99-8911-BFE72593133E}.CMS-SIEMENS|Any CPU.Build.0 = Release|Any CPU
+ {E7373C65-E16A-4F99-8911-BFE72593133E}.CMS-SIEMENS|x86.ActiveCfg = Release|Any CPU
+ {E7373C65-E16A-4F99-8911-BFE72593133E}.CMS-SIEMENS|x86.Build.0 = Release|Any CPU
+ {E7373C65-E16A-4F99-8911-BFE72593133E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E7373C65-E16A-4F99-8911-BFE72593133E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E7373C65-E16A-4F99-8911-BFE72593133E}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {E7373C65-E16A-4F99-8911-BFE72593133E}.Debug|x86.Build.0 = Debug|Any CPU
+ {E7373C65-E16A-4F99-8911-BFE72593133E}.FANUC|Any CPU.ActiveCfg = Release|Any CPU
+ {E7373C65-E16A-4F99-8911-BFE72593133E}.FANUC|Any CPU.Build.0 = Release|Any CPU
+ {E7373C65-E16A-4F99-8911-BFE72593133E}.FANUC|x86.ActiveCfg = Release|Any CPU
+ {E7373C65-E16A-4F99-8911-BFE72593133E}.FANUC|x86.Build.0 = Release|Any CPU
+ {E7373C65-E16A-4F99-8911-BFE72593133E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E7373C65-E16A-4F99-8911-BFE72593133E}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E7373C65-E16A-4F99-8911-BFE72593133E}.Release|x86.ActiveCfg = Release|Any CPU
+ {E7373C65-E16A-4F99-8911-BFE72593133E}.Release|x86.Build.0 = Release|Any CPU
+ {E7373C65-E16A-4F99-8911-BFE72593133E}.SCM-ESA|Any CPU.ActiveCfg = Release|Any CPU
+ {E7373C65-E16A-4F99-8911-BFE72593133E}.SCM-ESA|Any CPU.Build.0 = Release|Any CPU
+ {E7373C65-E16A-4F99-8911-BFE72593133E}.SCM-ESA|x86.ActiveCfg = Release|Any CPU
+ {E7373C65-E16A-4F99-8911-BFE72593133E}.SCM-ESA|x86.Build.0 = Release|Any CPU
+ {E7373C65-E16A-4F99-8911-BFE72593133E}.SIEMENS|Any CPU.ActiveCfg = Release|Any CPU
+ {E7373C65-E16A-4F99-8911-BFE72593133E}.SIEMENS|Any CPU.Build.0 = Release|Any CPU
+ {E7373C65-E16A-4F99-8911-BFE72593133E}.SIEMENS|x86.ActiveCfg = Release|Any CPU
+ {E7373C65-E16A-4F99-8911-BFE72593133E}.SIEMENS|x86.Build.0 = Release|Any CPU
+ {09FD3985-3898-4AD8-9472-2B84D117BBCD}.CMS-FANUC|Any CPU.ActiveCfg = Release|Any CPU
+ {09FD3985-3898-4AD8-9472-2B84D117BBCD}.CMS-FANUC|Any CPU.Build.0 = Release|Any CPU
+ {09FD3985-3898-4AD8-9472-2B84D117BBCD}.CMS-FANUC|x86.ActiveCfg = Release|Any CPU
+ {09FD3985-3898-4AD8-9472-2B84D117BBCD}.CMS-FANUC|x86.Build.0 = Release|Any CPU
+ {09FD3985-3898-4AD8-9472-2B84D117BBCD}.CMS-OSAI|Any CPU.ActiveCfg = Release|Any CPU
+ {09FD3985-3898-4AD8-9472-2B84D117BBCD}.CMS-OSAI|Any CPU.Build.0 = Release|Any CPU
+ {09FD3985-3898-4AD8-9472-2B84D117BBCD}.CMS-OSAI|x86.ActiveCfg = Release|Any CPU
+ {09FD3985-3898-4AD8-9472-2B84D117BBCD}.CMS-OSAI|x86.Build.0 = Release|Any CPU
+ {09FD3985-3898-4AD8-9472-2B84D117BBCD}.CMS-SIEMENS|Any CPU.ActiveCfg = Release|Any CPU
+ {09FD3985-3898-4AD8-9472-2B84D117BBCD}.CMS-SIEMENS|Any CPU.Build.0 = Release|Any CPU
+ {09FD3985-3898-4AD8-9472-2B84D117BBCD}.CMS-SIEMENS|x86.ActiveCfg = Release|Any CPU
+ {09FD3985-3898-4AD8-9472-2B84D117BBCD}.CMS-SIEMENS|x86.Build.0 = Release|Any CPU
+ {09FD3985-3898-4AD8-9472-2B84D117BBCD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {09FD3985-3898-4AD8-9472-2B84D117BBCD}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {09FD3985-3898-4AD8-9472-2B84D117BBCD}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {09FD3985-3898-4AD8-9472-2B84D117BBCD}.Debug|x86.Build.0 = Debug|Any CPU
+ {09FD3985-3898-4AD8-9472-2B84D117BBCD}.FANUC|Any CPU.ActiveCfg = Release|Any CPU
+ {09FD3985-3898-4AD8-9472-2B84D117BBCD}.FANUC|Any CPU.Build.0 = Release|Any CPU
+ {09FD3985-3898-4AD8-9472-2B84D117BBCD}.FANUC|x86.ActiveCfg = Release|Any CPU
+ {09FD3985-3898-4AD8-9472-2B84D117BBCD}.FANUC|x86.Build.0 = Release|Any CPU
+ {09FD3985-3898-4AD8-9472-2B84D117BBCD}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {09FD3985-3898-4AD8-9472-2B84D117BBCD}.Release|Any CPU.Build.0 = Release|Any CPU
+ {09FD3985-3898-4AD8-9472-2B84D117BBCD}.Release|x86.ActiveCfg = Release|Any CPU
+ {09FD3985-3898-4AD8-9472-2B84D117BBCD}.Release|x86.Build.0 = Release|Any CPU
+ {09FD3985-3898-4AD8-9472-2B84D117BBCD}.SCM-ESA|Any CPU.ActiveCfg = Release|Any CPU
+ {09FD3985-3898-4AD8-9472-2B84D117BBCD}.SCM-ESA|Any CPU.Build.0 = Release|Any CPU
+ {09FD3985-3898-4AD8-9472-2B84D117BBCD}.SCM-ESA|x86.ActiveCfg = Release|Any CPU
+ {09FD3985-3898-4AD8-9472-2B84D117BBCD}.SCM-ESA|x86.Build.0 = Release|Any CPU
+ {09FD3985-3898-4AD8-9472-2B84D117BBCD}.SIEMENS|Any CPU.ActiveCfg = Release|Any CPU
+ {09FD3985-3898-4AD8-9472-2B84D117BBCD}.SIEMENS|Any CPU.Build.0 = Release|Any CPU
+ {09FD3985-3898-4AD8-9472-2B84D117BBCD}.SIEMENS|x86.ActiveCfg = Release|Any CPU
+ {09FD3985-3898-4AD8-9472-2B84D117BBCD}.SIEMENS|x86.Build.0 = Release|Any CPU
+ {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.CMS-FANUC|Any CPU.ActiveCfg = Release|Any CPU
+ {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.CMS-FANUC|Any CPU.Build.0 = Release|Any CPU
+ {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.CMS-FANUC|x86.ActiveCfg = Release|Any CPU
+ {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.CMS-FANUC|x86.Build.0 = Release|Any CPU
+ {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.CMS-OSAI|Any CPU.ActiveCfg = Release|Any CPU
+ {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.CMS-OSAI|Any CPU.Build.0 = Release|Any CPU
+ {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.CMS-OSAI|x86.ActiveCfg = Release|Any CPU
+ {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.CMS-OSAI|x86.Build.0 = Release|Any CPU
+ {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.CMS-SIEMENS|Any CPU.ActiveCfg = Release|Any CPU
+ {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.CMS-SIEMENS|Any CPU.Build.0 = Release|Any CPU
+ {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.CMS-SIEMENS|x86.ActiveCfg = Release|Any CPU
+ {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.CMS-SIEMENS|x86.Build.0 = Release|Any CPU
+ {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.Debug|x86.Build.0 = Debug|Any CPU
+ {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.FANUC|Any CPU.ActiveCfg = Release|Any CPU
+ {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.FANUC|Any CPU.Build.0 = Release|Any CPU
+ {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.FANUC|x86.ActiveCfg = Release|Any CPU
+ {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.FANUC|x86.Build.0 = Release|Any CPU
+ {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.Release|Any CPU.Build.0 = Release|Any CPU
+ {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.Release|x86.ActiveCfg = Release|Any CPU
+ {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.Release|x86.Build.0 = Release|Any CPU
+ {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.SCM-ESA|Any CPU.ActiveCfg = Release|Any CPU
+ {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.SCM-ESA|Any CPU.Build.0 = Release|Any CPU
+ {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.SCM-ESA|x86.ActiveCfg = Release|Any CPU
+ {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.SCM-ESA|x86.Build.0 = Release|Any CPU
+ {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.SIEMENS|Any CPU.ActiveCfg = Release|Any CPU
+ {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.SIEMENS|Any CPU.Build.0 = Release|Any CPU
+ {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.SIEMENS|x86.ActiveCfg = Release|Any CPU
+ {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.SIEMENS|x86.Build.0 = Release|Any CPU
+ {4E796675-57FF-49EE-B722-DBF4747F786A}.CMS-FANUC|Any CPU.ActiveCfg = Release|Any CPU
+ {4E796675-57FF-49EE-B722-DBF4747F786A}.CMS-FANUC|Any CPU.Build.0 = Release|Any CPU
+ {4E796675-57FF-49EE-B722-DBF4747F786A}.CMS-FANUC|x86.ActiveCfg = Release|Any CPU
+ {4E796675-57FF-49EE-B722-DBF4747F786A}.CMS-FANUC|x86.Build.0 = Release|Any CPU
+ {4E796675-57FF-49EE-B722-DBF4747F786A}.CMS-OSAI|Any CPU.ActiveCfg = Release|Any CPU
+ {4E796675-57FF-49EE-B722-DBF4747F786A}.CMS-OSAI|Any CPU.Build.0 = Release|Any CPU
+ {4E796675-57FF-49EE-B722-DBF4747F786A}.CMS-OSAI|x86.ActiveCfg = Release|Any CPU
+ {4E796675-57FF-49EE-B722-DBF4747F786A}.CMS-OSAI|x86.Build.0 = Release|Any CPU
+ {4E796675-57FF-49EE-B722-DBF4747F786A}.CMS-SIEMENS|Any CPU.ActiveCfg = Release|Any CPU
+ {4E796675-57FF-49EE-B722-DBF4747F786A}.CMS-SIEMENS|Any CPU.Build.0 = Release|Any CPU
+ {4E796675-57FF-49EE-B722-DBF4747F786A}.CMS-SIEMENS|x86.ActiveCfg = Release|Any CPU
+ {4E796675-57FF-49EE-B722-DBF4747F786A}.CMS-SIEMENS|x86.Build.0 = Release|Any CPU
+ {4E796675-57FF-49EE-B722-DBF4747F786A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {4E796675-57FF-49EE-B722-DBF4747F786A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {4E796675-57FF-49EE-B722-DBF4747F786A}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {4E796675-57FF-49EE-B722-DBF4747F786A}.Debug|x86.Build.0 = Debug|Any CPU
+ {4E796675-57FF-49EE-B722-DBF4747F786A}.FANUC|Any CPU.ActiveCfg = Release|Any CPU
+ {4E796675-57FF-49EE-B722-DBF4747F786A}.FANUC|Any CPU.Build.0 = Release|Any CPU
+ {4E796675-57FF-49EE-B722-DBF4747F786A}.FANUC|x86.ActiveCfg = Release|Any CPU
+ {4E796675-57FF-49EE-B722-DBF4747F786A}.FANUC|x86.Build.0 = Release|Any CPU
+ {4E796675-57FF-49EE-B722-DBF4747F786A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {4E796675-57FF-49EE-B722-DBF4747F786A}.Release|Any CPU.Build.0 = Release|Any CPU
+ {4E796675-57FF-49EE-B722-DBF4747F786A}.Release|x86.ActiveCfg = Release|Any CPU
+ {4E796675-57FF-49EE-B722-DBF4747F786A}.Release|x86.Build.0 = Release|Any CPU
+ {4E796675-57FF-49EE-B722-DBF4747F786A}.SCM-ESA|Any CPU.ActiveCfg = Release|Any CPU
+ {4E796675-57FF-49EE-B722-DBF4747F786A}.SCM-ESA|Any CPU.Build.0 = Release|Any CPU
+ {4E796675-57FF-49EE-B722-DBF4747F786A}.SCM-ESA|x86.ActiveCfg = Release|Any CPU
+ {4E796675-57FF-49EE-B722-DBF4747F786A}.SCM-ESA|x86.Build.0 = Release|Any CPU
+ {4E796675-57FF-49EE-B722-DBF4747F786A}.SIEMENS|Any CPU.ActiveCfg = Release|Any CPU
+ {4E796675-57FF-49EE-B722-DBF4747F786A}.SIEMENS|Any CPU.Build.0 = Release|Any CPU
+ {4E796675-57FF-49EE-B722-DBF4747F786A}.SIEMENS|x86.ActiveCfg = Release|Any CPU
+ {4E796675-57FF-49EE-B722-DBF4747F786A}.SIEMENS|x86.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {801DCDC5-B7D3-4EA5-B543-783D2C91765F}
+ EndGlobalSection
+EndGlobal
diff --git a/IOB-WIN.sln b/IOB-WIN.sln
index d4c171fe..4eb8c2e4 100644
--- a/IOB-WIN.sln
+++ b/IOB-WIN.sln
@@ -23,14 +23,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
.editorconfig = .editorconfig
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Iob.Config", "Iob.Config\Iob.Config.csproj", "{ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Iob.Core", "Iob.Core\Iob.Core.csproj", "{E7373C65-E16A-4F99-8911-BFE72593133E}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Iob.Adapter", "Iob.Adapter\Iob.Adapter.csproj", "{09FD3985-3898-4AD8-9472-2B84D117BBCD}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Iob.Model", "Iob.Model\Iob.Model.csproj", "{3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}"
-EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
CMS-FANUC|Any CPU = CMS-FANUC|Any CPU
@@ -243,134 +235,6 @@ Global
{8DFE2AC9-611D-44D5-8E8F-204DCF01EDF8}.SIEMENS|Any CPU.Build.0 = Release|Any CPU
{8DFE2AC9-611D-44D5-8E8F-204DCF01EDF8}.SIEMENS|x86.ActiveCfg = Release|Any CPU
{8DFE2AC9-611D-44D5-8E8F-204DCF01EDF8}.SIEMENS|x86.Build.0 = Release|Any CPU
- {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.CMS-FANUC|Any CPU.ActiveCfg = Release|Any CPU
- {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.CMS-FANUC|Any CPU.Build.0 = Release|Any CPU
- {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.CMS-FANUC|x86.ActiveCfg = Release|Any CPU
- {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.CMS-FANUC|x86.Build.0 = Release|Any CPU
- {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.CMS-OSAI|Any CPU.ActiveCfg = Release|Any CPU
- {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.CMS-OSAI|Any CPU.Build.0 = Release|Any CPU
- {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.CMS-OSAI|x86.ActiveCfg = Release|Any CPU
- {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.CMS-OSAI|x86.Build.0 = Release|Any CPU
- {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.CMS-SIEMENS|Any CPU.ActiveCfg = Release|Any CPU
- {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.CMS-SIEMENS|Any CPU.Build.0 = Release|Any CPU
- {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.CMS-SIEMENS|x86.ActiveCfg = Release|Any CPU
- {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.CMS-SIEMENS|x86.Build.0 = Release|Any CPU
- {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.Debug|x86.ActiveCfg = Debug|Any CPU
- {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.Debug|x86.Build.0 = Debug|Any CPU
- {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.FANUC|Any CPU.ActiveCfg = Release|Any CPU
- {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.FANUC|Any CPU.Build.0 = Release|Any CPU
- {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.FANUC|x86.ActiveCfg = Release|Any CPU
- {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.FANUC|x86.Build.0 = Release|Any CPU
- {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.Release|Any CPU.Build.0 = Release|Any CPU
- {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.Release|x86.ActiveCfg = Release|Any CPU
- {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.Release|x86.Build.0 = Release|Any CPU
- {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.SCM-ESA|Any CPU.ActiveCfg = Release|Any CPU
- {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.SCM-ESA|Any CPU.Build.0 = Release|Any CPU
- {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.SCM-ESA|x86.ActiveCfg = Release|Any CPU
- {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.SCM-ESA|x86.Build.0 = Release|Any CPU
- {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.SIEMENS|Any CPU.ActiveCfg = Release|Any CPU
- {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.SIEMENS|Any CPU.Build.0 = Release|Any CPU
- {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.SIEMENS|x86.ActiveCfg = Release|Any CPU
- {ECD556AC-F81F-4D23-A02E-7555EEC3C0E9}.SIEMENS|x86.Build.0 = Release|Any CPU
- {E7373C65-E16A-4F99-8911-BFE72593133E}.CMS-FANUC|Any CPU.ActiveCfg = Release|Any CPU
- {E7373C65-E16A-4F99-8911-BFE72593133E}.CMS-FANUC|Any CPU.Build.0 = Release|Any CPU
- {E7373C65-E16A-4F99-8911-BFE72593133E}.CMS-FANUC|x86.ActiveCfg = Release|Any CPU
- {E7373C65-E16A-4F99-8911-BFE72593133E}.CMS-FANUC|x86.Build.0 = Release|Any CPU
- {E7373C65-E16A-4F99-8911-BFE72593133E}.CMS-OSAI|Any CPU.ActiveCfg = Release|Any CPU
- {E7373C65-E16A-4F99-8911-BFE72593133E}.CMS-OSAI|Any CPU.Build.0 = Release|Any CPU
- {E7373C65-E16A-4F99-8911-BFE72593133E}.CMS-OSAI|x86.ActiveCfg = Release|Any CPU
- {E7373C65-E16A-4F99-8911-BFE72593133E}.CMS-OSAI|x86.Build.0 = Release|Any CPU
- {E7373C65-E16A-4F99-8911-BFE72593133E}.CMS-SIEMENS|Any CPU.ActiveCfg = Release|Any CPU
- {E7373C65-E16A-4F99-8911-BFE72593133E}.CMS-SIEMENS|Any CPU.Build.0 = Release|Any CPU
- {E7373C65-E16A-4F99-8911-BFE72593133E}.CMS-SIEMENS|x86.ActiveCfg = Release|Any CPU
- {E7373C65-E16A-4F99-8911-BFE72593133E}.CMS-SIEMENS|x86.Build.0 = Release|Any CPU
- {E7373C65-E16A-4F99-8911-BFE72593133E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E7373C65-E16A-4F99-8911-BFE72593133E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E7373C65-E16A-4F99-8911-BFE72593133E}.Debug|x86.ActiveCfg = Debug|Any CPU
- {E7373C65-E16A-4F99-8911-BFE72593133E}.Debug|x86.Build.0 = Debug|Any CPU
- {E7373C65-E16A-4F99-8911-BFE72593133E}.FANUC|Any CPU.ActiveCfg = Release|Any CPU
- {E7373C65-E16A-4F99-8911-BFE72593133E}.FANUC|Any CPU.Build.0 = Release|Any CPU
- {E7373C65-E16A-4F99-8911-BFE72593133E}.FANUC|x86.ActiveCfg = Release|Any CPU
- {E7373C65-E16A-4F99-8911-BFE72593133E}.FANUC|x86.Build.0 = Release|Any CPU
- {E7373C65-E16A-4F99-8911-BFE72593133E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {E7373C65-E16A-4F99-8911-BFE72593133E}.Release|Any CPU.Build.0 = Release|Any CPU
- {E7373C65-E16A-4F99-8911-BFE72593133E}.Release|x86.ActiveCfg = Release|Any CPU
- {E7373C65-E16A-4F99-8911-BFE72593133E}.Release|x86.Build.0 = Release|Any CPU
- {E7373C65-E16A-4F99-8911-BFE72593133E}.SCM-ESA|Any CPU.ActiveCfg = Release|Any CPU
- {E7373C65-E16A-4F99-8911-BFE72593133E}.SCM-ESA|Any CPU.Build.0 = Release|Any CPU
- {E7373C65-E16A-4F99-8911-BFE72593133E}.SCM-ESA|x86.ActiveCfg = Release|Any CPU
- {E7373C65-E16A-4F99-8911-BFE72593133E}.SCM-ESA|x86.Build.0 = Release|Any CPU
- {E7373C65-E16A-4F99-8911-BFE72593133E}.SIEMENS|Any CPU.ActiveCfg = Release|Any CPU
- {E7373C65-E16A-4F99-8911-BFE72593133E}.SIEMENS|Any CPU.Build.0 = Release|Any CPU
- {E7373C65-E16A-4F99-8911-BFE72593133E}.SIEMENS|x86.ActiveCfg = Release|Any CPU
- {E7373C65-E16A-4F99-8911-BFE72593133E}.SIEMENS|x86.Build.0 = Release|Any CPU
- {09FD3985-3898-4AD8-9472-2B84D117BBCD}.CMS-FANUC|Any CPU.ActiveCfg = Release|Any CPU
- {09FD3985-3898-4AD8-9472-2B84D117BBCD}.CMS-FANUC|Any CPU.Build.0 = Release|Any CPU
- {09FD3985-3898-4AD8-9472-2B84D117BBCD}.CMS-FANUC|x86.ActiveCfg = Release|Any CPU
- {09FD3985-3898-4AD8-9472-2B84D117BBCD}.CMS-FANUC|x86.Build.0 = Release|Any CPU
- {09FD3985-3898-4AD8-9472-2B84D117BBCD}.CMS-OSAI|Any CPU.ActiveCfg = Release|Any CPU
- {09FD3985-3898-4AD8-9472-2B84D117BBCD}.CMS-OSAI|Any CPU.Build.0 = Release|Any CPU
- {09FD3985-3898-4AD8-9472-2B84D117BBCD}.CMS-OSAI|x86.ActiveCfg = Release|Any CPU
- {09FD3985-3898-4AD8-9472-2B84D117BBCD}.CMS-OSAI|x86.Build.0 = Release|Any CPU
- {09FD3985-3898-4AD8-9472-2B84D117BBCD}.CMS-SIEMENS|Any CPU.ActiveCfg = Release|Any CPU
- {09FD3985-3898-4AD8-9472-2B84D117BBCD}.CMS-SIEMENS|Any CPU.Build.0 = Release|Any CPU
- {09FD3985-3898-4AD8-9472-2B84D117BBCD}.CMS-SIEMENS|x86.ActiveCfg = Release|Any CPU
- {09FD3985-3898-4AD8-9472-2B84D117BBCD}.CMS-SIEMENS|x86.Build.0 = Release|Any CPU
- {09FD3985-3898-4AD8-9472-2B84D117BBCD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {09FD3985-3898-4AD8-9472-2B84D117BBCD}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {09FD3985-3898-4AD8-9472-2B84D117BBCD}.Debug|x86.ActiveCfg = Debug|Any CPU
- {09FD3985-3898-4AD8-9472-2B84D117BBCD}.Debug|x86.Build.0 = Debug|Any CPU
- {09FD3985-3898-4AD8-9472-2B84D117BBCD}.FANUC|Any CPU.ActiveCfg = Release|Any CPU
- {09FD3985-3898-4AD8-9472-2B84D117BBCD}.FANUC|Any CPU.Build.0 = Release|Any CPU
- {09FD3985-3898-4AD8-9472-2B84D117BBCD}.FANUC|x86.ActiveCfg = Release|Any CPU
- {09FD3985-3898-4AD8-9472-2B84D117BBCD}.FANUC|x86.Build.0 = Release|Any CPU
- {09FD3985-3898-4AD8-9472-2B84D117BBCD}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {09FD3985-3898-4AD8-9472-2B84D117BBCD}.Release|Any CPU.Build.0 = Release|Any CPU
- {09FD3985-3898-4AD8-9472-2B84D117BBCD}.Release|x86.ActiveCfg = Release|Any CPU
- {09FD3985-3898-4AD8-9472-2B84D117BBCD}.Release|x86.Build.0 = Release|Any CPU
- {09FD3985-3898-4AD8-9472-2B84D117BBCD}.SCM-ESA|Any CPU.ActiveCfg = Release|Any CPU
- {09FD3985-3898-4AD8-9472-2B84D117BBCD}.SCM-ESA|Any CPU.Build.0 = Release|Any CPU
- {09FD3985-3898-4AD8-9472-2B84D117BBCD}.SCM-ESA|x86.ActiveCfg = Release|Any CPU
- {09FD3985-3898-4AD8-9472-2B84D117BBCD}.SCM-ESA|x86.Build.0 = Release|Any CPU
- {09FD3985-3898-4AD8-9472-2B84D117BBCD}.SIEMENS|Any CPU.ActiveCfg = Release|Any CPU
- {09FD3985-3898-4AD8-9472-2B84D117BBCD}.SIEMENS|Any CPU.Build.0 = Release|Any CPU
- {09FD3985-3898-4AD8-9472-2B84D117BBCD}.SIEMENS|x86.ActiveCfg = Release|Any CPU
- {09FD3985-3898-4AD8-9472-2B84D117BBCD}.SIEMENS|x86.Build.0 = Release|Any CPU
- {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.CMS-FANUC|Any CPU.ActiveCfg = Release|Any CPU
- {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.CMS-FANUC|Any CPU.Build.0 = Release|Any CPU
- {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.CMS-FANUC|x86.ActiveCfg = Release|Any CPU
- {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.CMS-FANUC|x86.Build.0 = Release|Any CPU
- {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.CMS-OSAI|Any CPU.ActiveCfg = Release|Any CPU
- {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.CMS-OSAI|Any CPU.Build.0 = Release|Any CPU
- {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.CMS-OSAI|x86.ActiveCfg = Release|Any CPU
- {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.CMS-OSAI|x86.Build.0 = Release|Any CPU
- {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.CMS-SIEMENS|Any CPU.ActiveCfg = Release|Any CPU
- {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.CMS-SIEMENS|Any CPU.Build.0 = Release|Any CPU
- {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.CMS-SIEMENS|x86.ActiveCfg = Release|Any CPU
- {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.CMS-SIEMENS|x86.Build.0 = Release|Any CPU
- {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.Debug|x86.ActiveCfg = Debug|Any CPU
- {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.Debug|x86.Build.0 = Debug|Any CPU
- {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.FANUC|Any CPU.ActiveCfg = Release|Any CPU
- {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.FANUC|Any CPU.Build.0 = Release|Any CPU
- {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.FANUC|x86.ActiveCfg = Release|Any CPU
- {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.FANUC|x86.Build.0 = Release|Any CPU
- {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.Release|Any CPU.Build.0 = Release|Any CPU
- {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.Release|x86.ActiveCfg = Release|Any CPU
- {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.Release|x86.Build.0 = Release|Any CPU
- {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.SCM-ESA|Any CPU.ActiveCfg = Release|Any CPU
- {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.SCM-ESA|Any CPU.Build.0 = Release|Any CPU
- {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.SCM-ESA|x86.ActiveCfg = Release|Any CPU
- {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.SCM-ESA|x86.Build.0 = Release|Any CPU
- {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.SIEMENS|Any CPU.ActiveCfg = Release|Any CPU
- {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.SIEMENS|Any CPU.Build.0 = Release|Any CPU
- {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.SIEMENS|x86.ActiveCfg = Release|Any CPU
- {3DA86F5D-0459-4D24-9B5E-A2C44E5019F3}.SIEMENS|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/IOB-WIN/IOB-WIN.csproj b/IOB-WIN/IOB-WIN.csproj
index c1bab42b..668069fb 100644
--- a/IOB-WIN/IOB-WIN.csproj
+++ b/IOB-WIN/IOB-WIN.csproj
@@ -528,7 +528,6 @@
{90512e12-29fc-460d-94cc-648c2a072dbd}
IOB-UT
- False
diff --git a/Iob.Core/Iob.Core.csproj b/Iob.Core/Iob.Core.csproj
index c52757fb..c62e527b 100644
--- a/Iob.Core/Iob.Core.csproj
+++ b/Iob.Core/Iob.Core.csproj
@@ -155,10 +155,6 @@
-
- {09fd3985-3898-4ad8-9472-2b84d117bbcd}
- Iob.Adapter
-
{3da86f5d-0459-4d24-9b5e-a2c44e5019f3}
Iob.Model
diff --git a/Iob.Model/IobSample.cs b/Iob.Model/IobSample.cs
index 76a770b2..e4a5dcf7 100644
--- a/Iob.Model/IobSample.cs
+++ b/Iob.Model/IobSample.cs
@@ -6,7 +6,7 @@ using System.Threading.Tasks;
namespace Iob.Model
{
- class IobSample
+ internal class IobSample
{
}
-}
+}
\ No newline at end of file
diff --git a/Iob.Net.UI/App.config b/Iob.Net.UI/App.config
new file mode 100644
index 00000000..b50c74f3
--- /dev/null
+++ b/Iob.Net.UI/App.config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Iob.Net.UI/Form1.Designer.cs b/Iob.Net.UI/Form1.Designer.cs
new file mode 100644
index 00000000..f84bfe72
--- /dev/null
+++ b/Iob.Net.UI/Form1.Designer.cs
@@ -0,0 +1,40 @@
+namespace Iob.Net.UI
+{
+ partial class Form1
+ {
+ ///
+ /// Variabile di progettazione necessaria.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Pulire le risorse in uso.
+ ///
+ /// ha valore true se le risorse gestite devono essere eliminate, false in caso contrario.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Codice generato da Progettazione Windows Form
+
+ ///
+ /// Metodo necessario per il supporto della finestra di progettazione. Non modificare
+ /// il contenuto del metodo con l'editor di codice.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(800, 450);
+ this.Text = "Form1";
+ }
+
+ #endregion
+ }
+}
+
diff --git a/Iob.Net.UI/Form1.cs b/Iob.Net.UI/Form1.cs
new file mode 100644
index 00000000..e98ef90d
--- /dev/null
+++ b/Iob.Net.UI/Form1.cs
@@ -0,0 +1,20 @@
+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;
+
+namespace Iob.Net.UI
+{
+ public partial class Form1 : Form
+ {
+ public Form1()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/Iob.Net.UI/Iob.Net.UI.csproj b/Iob.Net.UI/Iob.Net.UI.csproj
new file mode 100644
index 00000000..8f9f9314
--- /dev/null
+++ b/Iob.Net.UI/Iob.Net.UI.csproj
@@ -0,0 +1,80 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {4E796675-57FF-49EE-B722-DBF4747F786A}
+ WinExe
+ Iob.Net.UI
+ Iob.Net.UI
+ v4.6.2
+ 512
+ true
+ true
+
+
+ AnyCPU
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ AnyCPU
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Form
+
+
+ Form1.cs
+
+
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+ Designer
+
+
+ True
+ Resources.resx
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+ True
+ Settings.settings
+ True
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Iob.Net.UI/Program.cs b/Iob.Net.UI/Program.cs
new file mode 100644
index 00000000..2744f459
--- /dev/null
+++ b/Iob.Net.UI/Program.cs
@@ -0,0 +1,22 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace Iob.Net.UI
+{
+ static class Program
+ {
+ ///
+ /// Punto di ingresso principale dell'applicazione.
+ ///
+ [STAThread]
+ static void Main()
+ {
+ Application.EnableVisualStyles();
+ Application.SetCompatibleTextRenderingDefault(false);
+ Application.Run(new Form1());
+ }
+ }
+}
diff --git a/Iob.Net.UI/Properties/AssemblyInfo.cs b/Iob.Net.UI/Properties/AssemblyInfo.cs
new file mode 100644
index 00000000..1ecf8c02
--- /dev/null
+++ b/Iob.Net.UI/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// Le informazioni generali relative a un assembly sono controllate dal seguente
+// set di attributi. Modificare i valori di questi attributi per modificare le informazioni
+// associate a un assembly.
+[assembly: AssemblyTitle("Iob.Net.UI")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("Iob.Net.UI")]
+[assembly: AssemblyCopyright("Copyright © 2020")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Se si imposta ComVisible su false, i tipi in questo assembly non saranno visibili
+// ai componenti COM. Se è necessario accedere a un tipo in questo assembly da
+// COM, impostare su true l'attributo ComVisible per tale tipo.
+[assembly: ComVisible(false)]
+
+// Se il progetto viene esposto a COM, il GUID seguente verrà utilizzato come ID della libreria dei tipi
+[assembly: Guid("4e796675-57ff-49ee-b722-dbf4747f786a")]
+
+// Le informazioni sulla versione di un assembly sono costituite dai seguenti quattro valori:
+//
+// Versione principale
+// Versione secondaria
+// Numero di build
+// Revisione
+//
+// È possibile specificare tutti i valori oppure impostare valori predefiniti per i numeri relativi alla revisione e alla build
+// usando l'asterisco '*' come illustrato di seguito:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/Iob.Net.UI/Properties/Resources.Designer.cs b/Iob.Net.UI/Properties/Resources.Designer.cs
new file mode 100644
index 00000000..a8805cef
--- /dev/null
+++ b/Iob.Net.UI/Properties/Resources.Designer.cs
@@ -0,0 +1,71 @@
+//------------------------------------------------------------------------------
+//
+// Codice generato da uno strumento.
+// Versione runtime:4.0.30319.42000
+//
+// Le modifiche apportate a questo file possono causare un comportamento non corretto e andranno perse se
+// il codice viene rigenerato.
+//
+//------------------------------------------------------------------------------
+
+namespace Iob.Net.UI.Properties
+{
+
+
+ ///
+ /// Classe di risorse fortemente tipizzata per la ricerca di stringhe localizzate e così via.
+ ///
+ // Questa classe è stata generata automaticamente dalla classe StronglyTypedResourceBuilder
+ // tramite uno strumento quale ResGen o Visual Studio.
+ // Per aggiungere o rimuovere un membro, modificare il file .ResX, quindi eseguire di nuovo ResGen
+ // con l'opzione /str oppure ricompilare il progetto VS.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.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()
+ {
+ }
+
+ ///
+ /// Restituisce l'istanza di ResourceManager memorizzata nella cache e usata da questa classe.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager
+ {
+ get
+ {
+ if ((resourceMan == null))
+ {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Iob.Net.UI.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// Esegue l'override della proprietà CurrentUICulture del thread corrente per tutte
+ /// le ricerche di risorse che utilizzano questa classe di risorse fortemente tipizzata.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture
+ {
+ get
+ {
+ return resourceCulture;
+ }
+ set
+ {
+ resourceCulture = value;
+ }
+ }
+ }
+}
diff --git a/Iob.Net.UI/Properties/Resources.resx b/Iob.Net.UI/Properties/Resources.resx
new file mode 100644
index 00000000..af7dbebb
--- /dev/null
+++ b/Iob.Net.UI/Properties/Resources.resx
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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/Iob.Net.UI/Properties/Settings.Designer.cs b/Iob.Net.UI/Properties/Settings.Designer.cs
new file mode 100644
index 00000000..246fed1c
--- /dev/null
+++ b/Iob.Net.UI/Properties/Settings.Designer.cs
@@ -0,0 +1,30 @@
+//------------------------------------------------------------------------------
+//
+// 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 Iob.Net.UI.Properties
+{
+
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.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;
+ }
+ }
+ }
+}
diff --git a/Iob.Net.UI/Properties/Settings.settings b/Iob.Net.UI/Properties/Settings.settings
new file mode 100644
index 00000000..39645652
--- /dev/null
+++ b/Iob.Net.UI/Properties/Settings.settings
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+