diff --git a/CodeContracts.sln b/CodeContracts.sln
index 52498202..cfa3f0ec 100644
--- a/CodeContracts.sln
+++ b/CodeContracts.sln
@@ -1,7 +1,7 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
-VisualStudioVersion = 12.0.30723.0
+VisualStudioVersion = 12.0.31101.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "CodeProviders", "CodeProviders", "{76F9B10B-70B6-40FF-B5A7-3562734BF8E4}"
EndProject
@@ -317,6 +317,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ParseStats", "Microsoft.Res
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RevisedSimplexMethod", "Microsoft.Research\RevisedSimplexMethod\RevisedSimplexMethod\RevisedSimplexMethod.csproj", "{52B1843A-04C6-48A8-A8F7-C11392C44E7F}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SystemRequiresVerificationTests", "Microsoft.Research\Contracts\SystemRequiresVerificationTests\SystemRequiresVerificationTests.csproj", "{34BEDC68-AC8A-44F9-BF92-01ECAE6A28CC}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -2333,6 +2335,30 @@ Global
{52B1843A-04C6-48A8-A8F7-C11392C44E7F}.Release|Mixed Platforms.Build.0 = Devlab64|Any CPU
{52B1843A-04C6-48A8-A8F7-C11392C44E7F}.Release|Win32.ActiveCfg = Devlab64|Any CPU
{52B1843A-04C6-48A8-A8F7-C11392C44E7F}.Release|x86.ActiveCfg = Devlab64|Any CPU
+ {34BEDC68-AC8A-44F9-BF92-01ECAE6A28CC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {34BEDC68-AC8A-44F9-BF92-01ECAE6A28CC}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {34BEDC68-AC8A-44F9-BF92-01ECAE6A28CC}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {34BEDC68-AC8A-44F9-BF92-01ECAE6A28CC}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {34BEDC68-AC8A-44F9-BF92-01ECAE6A28CC}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {34BEDC68-AC8A-44F9-BF92-01ECAE6A28CC}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {34BEDC68-AC8A-44F9-BF92-01ECAE6A28CC}.Devlab9|Any CPU.ActiveCfg = Debug|Any CPU
+ {34BEDC68-AC8A-44F9-BF92-01ECAE6A28CC}.Devlab9|Any CPU.Build.0 = Debug|Any CPU
+ {34BEDC68-AC8A-44F9-BF92-01ECAE6A28CC}.Devlab9|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {34BEDC68-AC8A-44F9-BF92-01ECAE6A28CC}.Devlab9|Mixed Platforms.Build.0 = Debug|Any CPU
+ {34BEDC68-AC8A-44F9-BF92-01ECAE6A28CC}.Devlab9|Win32.ActiveCfg = Debug|Any CPU
+ {34BEDC68-AC8A-44F9-BF92-01ECAE6A28CC}.Devlab9|x86.ActiveCfg = Debug|Any CPU
+ {34BEDC68-AC8A-44F9-BF92-01ECAE6A28CC}.Internal9|Any CPU.ActiveCfg = Release|Any CPU
+ {34BEDC68-AC8A-44F9-BF92-01ECAE6A28CC}.Internal9|Any CPU.Build.0 = Release|Any CPU
+ {34BEDC68-AC8A-44F9-BF92-01ECAE6A28CC}.Internal9|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {34BEDC68-AC8A-44F9-BF92-01ECAE6A28CC}.Internal9|Mixed Platforms.Build.0 = Release|Any CPU
+ {34BEDC68-AC8A-44F9-BF92-01ECAE6A28CC}.Internal9|Win32.ActiveCfg = Release|Any CPU
+ {34BEDC68-AC8A-44F9-BF92-01ECAE6A28CC}.Internal9|x86.ActiveCfg = Release|Any CPU
+ {34BEDC68-AC8A-44F9-BF92-01ECAE6A28CC}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {34BEDC68-AC8A-44F9-BF92-01ECAE6A28CC}.Release|Any CPU.Build.0 = Release|Any CPU
+ {34BEDC68-AC8A-44F9-BF92-01ECAE6A28CC}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {34BEDC68-AC8A-44F9-BF92-01ECAE6A28CC}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {34BEDC68-AC8A-44F9-BF92-01ECAE6A28CC}.Release|Win32.ActiveCfg = Release|Any CPU
+ {34BEDC68-AC8A-44F9-BF92-01ECAE6A28CC}.Release|x86.ActiveCfg = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -2434,6 +2460,7 @@ Global
{4CDCA734-7AA6-4283-B915-F9EB13A23D7F} = {8C9BFE1D-90BD-4F88-B58E-89FF1DA325B8}
{9A6A7CB1-138C-4342-B630-93C04FF48317} = {8C9BFE1D-90BD-4F88-B58E-89FF1DA325B8}
{52B1843A-04C6-48A8-A8F7-C11392C44E7F} = {C6F8F507-B843-4D08-8E4B-FF4AF23FC864}
+ {34BEDC68-AC8A-44F9-BF92-01ECAE6A28CC} = {5C718DA9-A4F2-4F73-B095-B2E180033C15}
EndGlobalSection
GlobalSection(TestCaseManagementSettings) = postSolution
CategoryFile = CodeContracts10.vsmdi
diff --git a/ContractsOnly.sln b/ContractsOnly.sln
new file mode 100644
index 00000000..3307a715
--- /dev/null
+++ b/ContractsOnly.sln
@@ -0,0 +1,963 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 2013
+VisualStudioVersion = 12.0.31101.0
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Contracts", "Contracts", "{5C718DA9-A4F2-4F73-B095-B2E180033C15}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Executables", "Executables", "{7CD8B829-346E-4FA0-ADDD-87152DDC5DDE}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.Contracts10", "Foxtrot\Contracts\Microsoft.Contracts10.csproj", "{29E1DFE9-D0A9-4AAB-B876-10BBF747C293}"
+ ProjectSection(ProjectDependencies) = postProject
+ {9D404D0C-0921-4ADD-BC22-A14AAE2CA7E2} = {9D404D0C-0921-4ADD-BC22-A14AAE2CA7E2}
+ EndProjectSection
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MsCorlib.Contracts10", "Microsoft.Research\Contracts\MsCorlib\MsCorlib.Contracts10.csproj", "{D45E4F81-3252-4000-9818-F8D018895B5B}"
+ ProjectSection(ProjectDependencies) = postProject
+ {9D404D0C-0921-4ADD-BC22-A14AAE2CA7E2} = {9D404D0C-0921-4ADD-BC22-A14AAE2CA7E2}
+ EndProjectSection
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Contracts10", "Microsoft.Research\Contracts\System\System.Contracts10.csproj", "{2C10FDB2-966D-4A14-B18D-385FDFA1746A}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CRASanitizer", "Microsoft.Research\Contracts\CRASanitizer\CRASanitizer.csproj", "{9D404D0C-0921-4ADD-BC22-A14AAE2CA7E2}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Configuration10", "Microsoft.Research\Contracts\System.Configuration\System.Configuration10.csproj", "{4695B865-1F0F-45DD-96CF-FDF999A813BD}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Core.Contracts10", "Microsoft.Research\Contracts\System.Core.Contracts\System.Core.Contracts10.csproj", "{04811420-E4EC-4E3D-A974-8A43FAF724C8}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Data10", "Microsoft.Research\Contracts\System.Data\System.Data10.csproj", "{8A669480-0FD3-453A-823A-E82CFAE7558C}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Drawing10", "Microsoft.Research\Contracts\System.Drawing\System.Drawing10.csproj", "{0E7A10F3-10E2-40CB-A47B-234615C4719B}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Security10", "Microsoft.Research\Contracts\System.Security\System.Security10.csproj", "{202E0819-A63F-4BE1-9314-13306C4C9C96}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Web10", "Microsoft.Research\Contracts\System.Web\System.Web10.csproj", "{9FA6D0C7-6B7B-4090-818E-29DEA3C295AB}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Windows10", "Microsoft.Research\Contracts\System.Windows\System.Windows10.csproj", "{560BAEE6-D01B-4714-92EF-798EEBCCF2DB}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Windows.Browser10", "Microsoft.Research\Contracts\System.Windows.Browser\System.Windows.Browser10.csproj", "{A09A280B-E5CE-4F5B-8081-163944392804}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Windows.Forms10", "Microsoft.Research\Contracts\System.Windows.Forms\System.Windows.Forms10.csproj", "{C719D602-0573-4E5A-AAFB-6DFF2106EEE6}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Xml10", "Microsoft.Research\Contracts\System.Xml\System.Xml10.csproj", "{87CFEEDB-BF05-455C-A14D-51DCB3FE9C65}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Xml.Linq10", "Microsoft.Research\Contracts\System.Xml.Linq\System.Xml.Linq10.csproj", "{EF8C241A-7A60-4AA4-9E4B-2752472A96EF}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WindowsBase10", "Microsoft.Research\Contracts\WindowsBase\WindowsBase10.csproj", "{650CD908-450D-4B70-9A68-590C7A2AC32B}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Configuration.Install10", "Microsoft.Research\Contracts\System.Configuration.Install\System.Configuration.Install10.csproj", "{EB432A52-712F-478D-9A5B-81FF99DE6CBE}"
+EndProject
+Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Microsoft.VisualBasic.Compatibility10", "Microsoft.Research\Contracts\Microsoft.VisualBasic.Compatibility\Microsoft.VisualBasic.Compatibility10.vbproj", "{1A4FF4FF-5CF0-4DF0-8581-80A4DDBBCB5A}"
+EndProject
+Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Microsoft.VisualBasic10", "Microsoft.Research\Contracts\Microsoft.VisualBasic.Contracts\Microsoft.VisualBasic10.vbproj", "{83E81339-DFB4-46A7-B0BF-21098B862AEF}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Numerics", "Microsoft.Research\Contracts\System.Numerics\System.Numerics.csproj", "{C5A99A99-96B4-42D2-ABD0-1AB546CF4E12}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PostContractBuildDummy", "Microsoft.Research\Contracts\PostContractBuildDummy\PostContractBuildDummy.csproj", "{DDCFABF7-69E9-4B33-9F0E-A5661F960111}"
+ ProjectSection(ProjectDependencies) = postProject
+ {C719D602-0573-4E5A-AAFB-6DFF2106EEE6} = {C719D602-0573-4E5A-AAFB-6DFF2106EEE6}
+ {650CD908-450D-4B70-9A68-590C7A2AC32B} = {650CD908-450D-4B70-9A68-590C7A2AC32B}
+ {A09A280B-E5CE-4F5B-8081-163944392804} = {A09A280B-E5CE-4F5B-8081-163944392804}
+ {0C2F5C12-CFB2-485A-900E-14547F93CE9E} = {0C2F5C12-CFB2-485A-900E-14547F93CE9E}
+ {202E0819-A63F-4BE1-9314-13306C4C9C96} = {202E0819-A63F-4BE1-9314-13306C4C9C96}
+ {EF8C241A-7A60-4AA4-9E4B-2752472A96EF} = {EF8C241A-7A60-4AA4-9E4B-2752472A96EF}
+ {04811420-E4EC-4E3D-A974-8A43FAF724C8} = {04811420-E4EC-4E3D-A974-8A43FAF724C8}
+ {23B4C62D-6128-4619-92CB-C0CDE3271541} = {23B4C62D-6128-4619-92CB-C0CDE3271541}
+ {83E81339-DFB4-46A7-B0BF-21098B862AEF} = {83E81339-DFB4-46A7-B0BF-21098B862AEF}
+ {EB432A52-712F-478D-9A5B-81FF99DE6CBE} = {EB432A52-712F-478D-9A5B-81FF99DE6CBE}
+ {34F25C64-A624-46E6-9832-4F59C5FDDB07} = {34F25C64-A624-46E6-9832-4F59C5FDDB07}
+ {4695B865-1F0F-45DD-96CF-FDF999A813BD} = {4695B865-1F0F-45DD-96CF-FDF999A813BD}
+ {1926417C-C3E4-4137-B06A-90192A3AB682} = {1926417C-C3E4-4137-B06A-90192A3AB682}
+ {8A669480-0FD3-453A-823A-E82CFAE7558C} = {8A669480-0FD3-453A-823A-E82CFAE7558C}
+ {D45E4F81-3252-4000-9818-F8D018895B5B} = {D45E4F81-3252-4000-9818-F8D018895B5B}
+ {C5A99A99-96B4-42D2-ABD0-1AB546CF4E12} = {C5A99A99-96B4-42D2-ABD0-1AB546CF4E12}
+ {2C10FDB2-966D-4A14-B18D-385FDFA1746A} = {2C10FDB2-966D-4A14-B18D-385FDFA1746A}
+ {9FA6D0C7-6B7B-4090-818E-29DEA3C295AB} = {9FA6D0C7-6B7B-4090-818E-29DEA3C295AB}
+ {846689C9-C6E5-4576-BC63-F4A8762C0322} = {846689C9-C6E5-4576-BC63-F4A8762C0322}
+ {20C549CD-6524-4FB5-AD58-AAA939C75CEF} = {20C549CD-6524-4FB5-AD58-AAA939C75CEF}
+ {87CFEEDB-BF05-455C-A14D-51DCB3FE9C65} = {87CFEEDB-BF05-455C-A14D-51DCB3FE9C65}
+ {76F807DC-76BC-413E-95FD-A7E661DB1B33} = {76F807DC-76BC-413E-95FD-A7E661DB1B33}
+ {560BAEE6-D01B-4714-92EF-798EEBCCF2DB} = {560BAEE6-D01B-4714-92EF-798EEBCCF2DB}
+ {29E1DFE9-D0A9-4AAB-B876-10BBF747C293} = {29E1DFE9-D0A9-4AAB-B876-10BBF747C293}
+ {44D764EF-D471-4981-B774-B8B532EDB690} = {44D764EF-D471-4981-B774-B8B532EDB690}
+ {0E7A10F3-10E2-40CB-A47B-234615C4719B} = {0E7A10F3-10E2-40CB-A47B-234615C4719B}
+ {29106CFE-A683-4012-91E2-310552BE6258} = {29106CFE-A683-4012-91E2-310552BE6258}
+ {1A4FF4FF-5CF0-4DF0-8581-80A4DDBBCB5A} = {1A4FF4FF-5CF0-4DF0-8581-80A4DDBBCB5A}
+ EndProjectSection
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PresentationCore", "Microsoft.Research\Contracts\PresentationCore\PresentationCore.csproj", "{1926417C-C3E4-4137-B06A-90192A3AB682}"
+ ProjectSection(ProjectDependencies) = postProject
+ {29E1DFE9-D0A9-4AAB-B876-10BBF747C293} = {29E1DFE9-D0A9-4AAB-B876-10BBF747C293}
+ EndProjectSection
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PresentationFramework", "Microsoft.Research\Contracts\PresentationFramework\PresentationFramework.csproj", "{29106CFE-A683-4012-91E2-310552BE6258}"
+ ProjectSection(ProjectDependencies) = postProject
+ {29E1DFE9-D0A9-4AAB-B876-10BBF747C293} = {29E1DFE9-D0A9-4AAB-B876-10BBF747C293}
+ EndProjectSection
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.ComponentModel.Composition", "Microsoft.Research\Contracts\System.ComponentModel.Composition\System.ComponentModel.Composition.csproj", "{23B4C62D-6128-4619-92CB-C0CDE3271541}"
+ ProjectSection(ProjectDependencies) = postProject
+ {29E1DFE9-D0A9-4AAB-B876-10BBF747C293} = {29E1DFE9-D0A9-4AAB-B876-10BBF747C293}
+ EndProjectSection
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Data.Services", "Microsoft.Research\Contracts\System.Data.Services\System.Data.Services.csproj", "{34F25C64-A624-46E6-9832-4F59C5FDDB07}"
+ ProjectSection(ProjectDependencies) = postProject
+ {29E1DFE9-D0A9-4AAB-B876-10BBF747C293} = {29E1DFE9-D0A9-4AAB-B876-10BBF747C293}
+ EndProjectSection
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.DirectoryServices", "Microsoft.Research\Contracts\System.DirectoryServices\System.DirectoryServices.csproj", "{44D764EF-D471-4981-B774-B8B532EDB690}"
+ ProjectSection(ProjectDependencies) = postProject
+ {29E1DFE9-D0A9-4AAB-B876-10BBF747C293} = {29E1DFE9-D0A9-4AAB-B876-10BBF747C293}
+ EndProjectSection
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Runtime.Caching", "Microsoft.Research\Contracts\System.Runtime.Caching\System.Runtime.Caching.csproj", "{76F807DC-76BC-413E-95FD-A7E661DB1B33}"
+ ProjectSection(ProjectDependencies) = postProject
+ {29E1DFE9-D0A9-4AAB-B876-10BBF747C293} = {29E1DFE9-D0A9-4AAB-B876-10BBF747C293}
+ EndProjectSection
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.ServiceModel", "Microsoft.Research\Contracts\System.ServiceModel\System.ServiceModel.csproj", "{0C2F5C12-CFB2-485A-900E-14547F93CE9E}"
+ ProjectSection(ProjectDependencies) = postProject
+ {29E1DFE9-D0A9-4AAB-B876-10BBF747C293} = {29E1DFE9-D0A9-4AAB-B876-10BBF747C293}
+ EndProjectSection
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.ServiceProcess", "Microsoft.Research\Contracts\System.ServiceProcess\System.ServiceProcess.csproj", "{846689C9-C6E5-4576-BC63-F4A8762C0322}"
+ ProjectSection(ProjectDependencies) = postProject
+ {29E1DFE9-D0A9-4AAB-B876-10BBF747C293} = {29E1DFE9-D0A9-4AAB-B876-10BBF747C293}
+ EndProjectSection
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Web.ApplicationServices", "Microsoft.Research\Contracts\System.Web.ApplicationServices\System.Web.ApplicationServices.csproj", "{20C549CD-6524-4FB5-AD58-AAA939C75CEF}"
+ ProjectSection(ProjectDependencies) = postProject
+ {29E1DFE9-D0A9-4AAB-B876-10BBF747C293} = {29E1DFE9-D0A9-4AAB-B876-10BBF747C293}
+ EndProjectSection
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PreContractsBuildDummy", "Microsoft.Research\Contracts\PreContractsBuildDummy\PreContractsBuildDummy.csproj", "{4C272996-FE22-4700-BA18-0A2F482FB857}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SystemRequiresVerificationTests", "Microsoft.Research\Contracts\SystemRequiresVerificationTests\SystemRequiresVerificationTests.csproj", "{34BEDC68-AC8A-44F9-BF92-01ECAE6A28CC}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Debug|Mixed Platforms = Debug|Mixed Platforms
+ Debug|Win32 = Debug|Win32
+ Debug|x86 = Debug|x86
+ Devlab9|Any CPU = Devlab9|Any CPU
+ Devlab9|Mixed Platforms = Devlab9|Mixed Platforms
+ Devlab9|Win32 = Devlab9|Win32
+ Devlab9|x86 = Devlab9|x86
+ Internal9|Any CPU = Internal9|Any CPU
+ Internal9|Mixed Platforms = Internal9|Mixed Platforms
+ Internal9|Win32 = Internal9|Win32
+ Internal9|x86 = Internal9|x86
+ Release|Any CPU = Release|Any CPU
+ Release|Mixed Platforms = Release|Mixed Platforms
+ Release|Win32 = Release|Win32
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {29E1DFE9-D0A9-4AAB-B876-10BBF747C293}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {29E1DFE9-D0A9-4AAB-B876-10BBF747C293}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {29E1DFE9-D0A9-4AAB-B876-10BBF747C293}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {29E1DFE9-D0A9-4AAB-B876-10BBF747C293}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {29E1DFE9-D0A9-4AAB-B876-10BBF747C293}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {29E1DFE9-D0A9-4AAB-B876-10BBF747C293}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {29E1DFE9-D0A9-4AAB-B876-10BBF747C293}.Devlab9|Any CPU.ActiveCfg = Devlab9|Any CPU
+ {29E1DFE9-D0A9-4AAB-B876-10BBF747C293}.Devlab9|Any CPU.Build.0 = Devlab9|Any CPU
+ {29E1DFE9-D0A9-4AAB-B876-10BBF747C293}.Devlab9|Mixed Platforms.ActiveCfg = Devlab9|Any CPU
+ {29E1DFE9-D0A9-4AAB-B876-10BBF747C293}.Devlab9|Mixed Platforms.Build.0 = Devlab9|Any CPU
+ {29E1DFE9-D0A9-4AAB-B876-10BBF747C293}.Devlab9|Win32.ActiveCfg = Devlab9|Any CPU
+ {29E1DFE9-D0A9-4AAB-B876-10BBF747C293}.Devlab9|x86.ActiveCfg = Devlab9|Any CPU
+ {29E1DFE9-D0A9-4AAB-B876-10BBF747C293}.Internal9|Any CPU.ActiveCfg = Internal9|Any CPU
+ {29E1DFE9-D0A9-4AAB-B876-10BBF747C293}.Internal9|Any CPU.Build.0 = Internal9|Any CPU
+ {29E1DFE9-D0A9-4AAB-B876-10BBF747C293}.Internal9|Mixed Platforms.ActiveCfg = Internal9|Any CPU
+ {29E1DFE9-D0A9-4AAB-B876-10BBF747C293}.Internal9|Mixed Platforms.Build.0 = Internal9|Any CPU
+ {29E1DFE9-D0A9-4AAB-B876-10BBF747C293}.Internal9|Win32.ActiveCfg = Internal9|Any CPU
+ {29E1DFE9-D0A9-4AAB-B876-10BBF747C293}.Internal9|x86.ActiveCfg = Internal9|Any CPU
+ {29E1DFE9-D0A9-4AAB-B876-10BBF747C293}.Release|Any CPU.ActiveCfg = Devlab9ro|Any CPU
+ {29E1DFE9-D0A9-4AAB-B876-10BBF747C293}.Release|Any CPU.Build.0 = Devlab9ro|Any CPU
+ {29E1DFE9-D0A9-4AAB-B876-10BBF747C293}.Release|Mixed Platforms.ActiveCfg = Devlab9ro|Any CPU
+ {29E1DFE9-D0A9-4AAB-B876-10BBF747C293}.Release|Mixed Platforms.Build.0 = Devlab9ro|Any CPU
+ {29E1DFE9-D0A9-4AAB-B876-10BBF747C293}.Release|Win32.ActiveCfg = Devlab9ro|Any CPU
+ {29E1DFE9-D0A9-4AAB-B876-10BBF747C293}.Release|x86.ActiveCfg = Devlab9ro|Any CPU
+ {D45E4F81-3252-4000-9818-F8D018895B5B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D45E4F81-3252-4000-9818-F8D018895B5B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D45E4F81-3252-4000-9818-F8D018895B5B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {D45E4F81-3252-4000-9818-F8D018895B5B}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {D45E4F81-3252-4000-9818-F8D018895B5B}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {D45E4F81-3252-4000-9818-F8D018895B5B}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {D45E4F81-3252-4000-9818-F8D018895B5B}.Devlab9|Any CPU.ActiveCfg = Devlab9|Any CPU
+ {D45E4F81-3252-4000-9818-F8D018895B5B}.Devlab9|Any CPU.Build.0 = Devlab9|Any CPU
+ {D45E4F81-3252-4000-9818-F8D018895B5B}.Devlab9|Mixed Platforms.ActiveCfg = Devlab9|Any CPU
+ {D45E4F81-3252-4000-9818-F8D018895B5B}.Devlab9|Mixed Platforms.Build.0 = Devlab9|Any CPU
+ {D45E4F81-3252-4000-9818-F8D018895B5B}.Devlab9|Win32.ActiveCfg = Devlab9|Any CPU
+ {D45E4F81-3252-4000-9818-F8D018895B5B}.Devlab9|x86.ActiveCfg = Devlab9|Any CPU
+ {D45E4F81-3252-4000-9818-F8D018895B5B}.Internal9|Any CPU.ActiveCfg = Internal9|Any CPU
+ {D45E4F81-3252-4000-9818-F8D018895B5B}.Internal9|Any CPU.Build.0 = Internal9|Any CPU
+ {D45E4F81-3252-4000-9818-F8D018895B5B}.Internal9|Mixed Platforms.ActiveCfg = Internal9|Any CPU
+ {D45E4F81-3252-4000-9818-F8D018895B5B}.Internal9|Mixed Platforms.Build.0 = Internal9|Any CPU
+ {D45E4F81-3252-4000-9818-F8D018895B5B}.Internal9|Win32.ActiveCfg = Internal9|Any CPU
+ {D45E4F81-3252-4000-9818-F8D018895B5B}.Internal9|x86.ActiveCfg = Internal9|Any CPU
+ {D45E4F81-3252-4000-9818-F8D018895B5B}.Release|Any CPU.ActiveCfg = Devlab9ro|Any CPU
+ {D45E4F81-3252-4000-9818-F8D018895B5B}.Release|Any CPU.Build.0 = Devlab9ro|Any CPU
+ {D45E4F81-3252-4000-9818-F8D018895B5B}.Release|Mixed Platforms.ActiveCfg = Devlab9ro|Any CPU
+ {D45E4F81-3252-4000-9818-F8D018895B5B}.Release|Mixed Platforms.Build.0 = Devlab9ro|Any CPU
+ {D45E4F81-3252-4000-9818-F8D018895B5B}.Release|Win32.ActiveCfg = Devlab9ro|Any CPU
+ {D45E4F81-3252-4000-9818-F8D018895B5B}.Release|x86.ActiveCfg = Devlab9ro|Any CPU
+ {2C10FDB2-966D-4A14-B18D-385FDFA1746A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {2C10FDB2-966D-4A14-B18D-385FDFA1746A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {2C10FDB2-966D-4A14-B18D-385FDFA1746A}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {2C10FDB2-966D-4A14-B18D-385FDFA1746A}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {2C10FDB2-966D-4A14-B18D-385FDFA1746A}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {2C10FDB2-966D-4A14-B18D-385FDFA1746A}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {2C10FDB2-966D-4A14-B18D-385FDFA1746A}.Devlab9|Any CPU.ActiveCfg = Devlab9|Any CPU
+ {2C10FDB2-966D-4A14-B18D-385FDFA1746A}.Devlab9|Any CPU.Build.0 = Devlab9|Any CPU
+ {2C10FDB2-966D-4A14-B18D-385FDFA1746A}.Devlab9|Mixed Platforms.ActiveCfg = Devlab9|Any CPU
+ {2C10FDB2-966D-4A14-B18D-385FDFA1746A}.Devlab9|Mixed Platforms.Build.0 = Devlab9|Any CPU
+ {2C10FDB2-966D-4A14-B18D-385FDFA1746A}.Devlab9|Win32.ActiveCfg = Devlab9|Any CPU
+ {2C10FDB2-966D-4A14-B18D-385FDFA1746A}.Devlab9|x86.ActiveCfg = Devlab9|Any CPU
+ {2C10FDB2-966D-4A14-B18D-385FDFA1746A}.Internal9|Any CPU.ActiveCfg = Internal9|Any CPU
+ {2C10FDB2-966D-4A14-B18D-385FDFA1746A}.Internal9|Any CPU.Build.0 = Internal9|Any CPU
+ {2C10FDB2-966D-4A14-B18D-385FDFA1746A}.Internal9|Mixed Platforms.ActiveCfg = Internal9|Any CPU
+ {2C10FDB2-966D-4A14-B18D-385FDFA1746A}.Internal9|Mixed Platforms.Build.0 = Internal9|Any CPU
+ {2C10FDB2-966D-4A14-B18D-385FDFA1746A}.Internal9|Win32.ActiveCfg = Internal9|Any CPU
+ {2C10FDB2-966D-4A14-B18D-385FDFA1746A}.Internal9|x86.ActiveCfg = Internal9|Any CPU
+ {2C10FDB2-966D-4A14-B18D-385FDFA1746A}.Release|Any CPU.ActiveCfg = Devlab9ro|Any CPU
+ {2C10FDB2-966D-4A14-B18D-385FDFA1746A}.Release|Any CPU.Build.0 = Devlab9ro|Any CPU
+ {2C10FDB2-966D-4A14-B18D-385FDFA1746A}.Release|Mixed Platforms.ActiveCfg = Devlab9ro|Any CPU
+ {2C10FDB2-966D-4A14-B18D-385FDFA1746A}.Release|Mixed Platforms.Build.0 = Devlab9ro|Any CPU
+ {2C10FDB2-966D-4A14-B18D-385FDFA1746A}.Release|Win32.ActiveCfg = Devlab9ro|Any CPU
+ {2C10FDB2-966D-4A14-B18D-385FDFA1746A}.Release|x86.ActiveCfg = Devlab9ro|Any CPU
+ {9D404D0C-0921-4ADD-BC22-A14AAE2CA7E2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {9D404D0C-0921-4ADD-BC22-A14AAE2CA7E2}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {9D404D0C-0921-4ADD-BC22-A14AAE2CA7E2}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {9D404D0C-0921-4ADD-BC22-A14AAE2CA7E2}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {9D404D0C-0921-4ADD-BC22-A14AAE2CA7E2}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {9D404D0C-0921-4ADD-BC22-A14AAE2CA7E2}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {9D404D0C-0921-4ADD-BC22-A14AAE2CA7E2}.Devlab9|Any CPU.ActiveCfg = Debug|Any CPU
+ {9D404D0C-0921-4ADD-BC22-A14AAE2CA7E2}.Devlab9|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {9D404D0C-0921-4ADD-BC22-A14AAE2CA7E2}.Devlab9|Win32.ActiveCfg = Debug|Any CPU
+ {9D404D0C-0921-4ADD-BC22-A14AAE2CA7E2}.Devlab9|x86.ActiveCfg = Debug|Any CPU
+ {9D404D0C-0921-4ADD-BC22-A14AAE2CA7E2}.Internal9|Any CPU.ActiveCfg = Debug|Any CPU
+ {9D404D0C-0921-4ADD-BC22-A14AAE2CA7E2}.Internal9|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {9D404D0C-0921-4ADD-BC22-A14AAE2CA7E2}.Internal9|Mixed Platforms.Build.0 = Debug|Any CPU
+ {9D404D0C-0921-4ADD-BC22-A14AAE2CA7E2}.Internal9|Win32.ActiveCfg = Debug|Any CPU
+ {9D404D0C-0921-4ADD-BC22-A14AAE2CA7E2}.Internal9|x86.ActiveCfg = Debug|Any CPU
+ {9D404D0C-0921-4ADD-BC22-A14AAE2CA7E2}.Release|Any CPU.ActiveCfg = Debug|Any CPU
+ {9D404D0C-0921-4ADD-BC22-A14AAE2CA7E2}.Release|Any CPU.Build.0 = Debug|Any CPU
+ {9D404D0C-0921-4ADD-BC22-A14AAE2CA7E2}.Release|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {9D404D0C-0921-4ADD-BC22-A14AAE2CA7E2}.Release|Mixed Platforms.Build.0 = Debug|Any CPU
+ {9D404D0C-0921-4ADD-BC22-A14AAE2CA7E2}.Release|Win32.ActiveCfg = Debug|Any CPU
+ {9D404D0C-0921-4ADD-BC22-A14AAE2CA7E2}.Release|x86.ActiveCfg = Debug|Any CPU
+ {4695B865-1F0F-45DD-96CF-FDF999A813BD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {4695B865-1F0F-45DD-96CF-FDF999A813BD}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {4695B865-1F0F-45DD-96CF-FDF999A813BD}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {4695B865-1F0F-45DD-96CF-FDF999A813BD}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {4695B865-1F0F-45DD-96CF-FDF999A813BD}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {4695B865-1F0F-45DD-96CF-FDF999A813BD}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {4695B865-1F0F-45DD-96CF-FDF999A813BD}.Devlab9|Any CPU.ActiveCfg = Devlab9|Any CPU
+ {4695B865-1F0F-45DD-96CF-FDF999A813BD}.Devlab9|Any CPU.Build.0 = Devlab9|Any CPU
+ {4695B865-1F0F-45DD-96CF-FDF999A813BD}.Devlab9|Mixed Platforms.ActiveCfg = Devlab9|Any CPU
+ {4695B865-1F0F-45DD-96CF-FDF999A813BD}.Devlab9|Mixed Platforms.Build.0 = Devlab9|Any CPU
+ {4695B865-1F0F-45DD-96CF-FDF999A813BD}.Devlab9|Win32.ActiveCfg = Devlab9|Any CPU
+ {4695B865-1F0F-45DD-96CF-FDF999A813BD}.Devlab9|x86.ActiveCfg = Devlab9|Any CPU
+ {4695B865-1F0F-45DD-96CF-FDF999A813BD}.Internal9|Any CPU.ActiveCfg = Internal9|Any CPU
+ {4695B865-1F0F-45DD-96CF-FDF999A813BD}.Internal9|Any CPU.Build.0 = Internal9|Any CPU
+ {4695B865-1F0F-45DD-96CF-FDF999A813BD}.Internal9|Mixed Platforms.ActiveCfg = Internal9|Any CPU
+ {4695B865-1F0F-45DD-96CF-FDF999A813BD}.Internal9|Mixed Platforms.Build.0 = Internal9|Any CPU
+ {4695B865-1F0F-45DD-96CF-FDF999A813BD}.Internal9|Win32.ActiveCfg = Internal9|Any CPU
+ {4695B865-1F0F-45DD-96CF-FDF999A813BD}.Internal9|x86.ActiveCfg = Internal9|Any CPU
+ {4695B865-1F0F-45DD-96CF-FDF999A813BD}.Release|Any CPU.ActiveCfg = Devlab9ro|Any CPU
+ {4695B865-1F0F-45DD-96CF-FDF999A813BD}.Release|Any CPU.Build.0 = Devlab9ro|Any CPU
+ {4695B865-1F0F-45DD-96CF-FDF999A813BD}.Release|Mixed Platforms.ActiveCfg = Devlab9ro|Any CPU
+ {4695B865-1F0F-45DD-96CF-FDF999A813BD}.Release|Mixed Platforms.Build.0 = Devlab9ro|Any CPU
+ {4695B865-1F0F-45DD-96CF-FDF999A813BD}.Release|Win32.ActiveCfg = Devlab9ro|Any CPU
+ {4695B865-1F0F-45DD-96CF-FDF999A813BD}.Release|x86.ActiveCfg = Devlab9ro|Any CPU
+ {04811420-E4EC-4E3D-A974-8A43FAF724C8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {04811420-E4EC-4E3D-A974-8A43FAF724C8}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {04811420-E4EC-4E3D-A974-8A43FAF724C8}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {04811420-E4EC-4E3D-A974-8A43FAF724C8}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {04811420-E4EC-4E3D-A974-8A43FAF724C8}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {04811420-E4EC-4E3D-A974-8A43FAF724C8}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {04811420-E4EC-4E3D-A974-8A43FAF724C8}.Devlab9|Any CPU.ActiveCfg = Devlab9|Any CPU
+ {04811420-E4EC-4E3D-A974-8A43FAF724C8}.Devlab9|Any CPU.Build.0 = Devlab9|Any CPU
+ {04811420-E4EC-4E3D-A974-8A43FAF724C8}.Devlab9|Mixed Platforms.ActiveCfg = Devlab9|Any CPU
+ {04811420-E4EC-4E3D-A974-8A43FAF724C8}.Devlab9|Mixed Platforms.Build.0 = Devlab9|Any CPU
+ {04811420-E4EC-4E3D-A974-8A43FAF724C8}.Devlab9|Win32.ActiveCfg = Devlab9|Any CPU
+ {04811420-E4EC-4E3D-A974-8A43FAF724C8}.Devlab9|x86.ActiveCfg = Devlab9|Any CPU
+ {04811420-E4EC-4E3D-A974-8A43FAF724C8}.Internal9|Any CPU.ActiveCfg = Internal9|Any CPU
+ {04811420-E4EC-4E3D-A974-8A43FAF724C8}.Internal9|Any CPU.Build.0 = Internal9|Any CPU
+ {04811420-E4EC-4E3D-A974-8A43FAF724C8}.Internal9|Mixed Platforms.ActiveCfg = Internal9|Any CPU
+ {04811420-E4EC-4E3D-A974-8A43FAF724C8}.Internal9|Mixed Platforms.Build.0 = Internal9|Any CPU
+ {04811420-E4EC-4E3D-A974-8A43FAF724C8}.Internal9|Win32.ActiveCfg = Internal9|Any CPU
+ {04811420-E4EC-4E3D-A974-8A43FAF724C8}.Internal9|x86.ActiveCfg = Internal9|Any CPU
+ {04811420-E4EC-4E3D-A974-8A43FAF724C8}.Release|Any CPU.ActiveCfg = Devlab9ro|Any CPU
+ {04811420-E4EC-4E3D-A974-8A43FAF724C8}.Release|Any CPU.Build.0 = Devlab9ro|Any CPU
+ {04811420-E4EC-4E3D-A974-8A43FAF724C8}.Release|Mixed Platforms.ActiveCfg = Devlab9ro|Any CPU
+ {04811420-E4EC-4E3D-A974-8A43FAF724C8}.Release|Mixed Platforms.Build.0 = Devlab9ro|Any CPU
+ {04811420-E4EC-4E3D-A974-8A43FAF724C8}.Release|Win32.ActiveCfg = Devlab9ro|Any CPU
+ {04811420-E4EC-4E3D-A974-8A43FAF724C8}.Release|x86.ActiveCfg = Devlab9ro|Any CPU
+ {8A669480-0FD3-453A-823A-E82CFAE7558C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {8A669480-0FD3-453A-823A-E82CFAE7558C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8A669480-0FD3-453A-823A-E82CFAE7558C}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {8A669480-0FD3-453A-823A-E82CFAE7558C}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {8A669480-0FD3-453A-823A-E82CFAE7558C}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {8A669480-0FD3-453A-823A-E82CFAE7558C}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {8A669480-0FD3-453A-823A-E82CFAE7558C}.Devlab9|Any CPU.ActiveCfg = Devlab9|Any CPU
+ {8A669480-0FD3-453A-823A-E82CFAE7558C}.Devlab9|Any CPU.Build.0 = Devlab9|Any CPU
+ {8A669480-0FD3-453A-823A-E82CFAE7558C}.Devlab9|Mixed Platforms.ActiveCfg = Devlab9|Any CPU
+ {8A669480-0FD3-453A-823A-E82CFAE7558C}.Devlab9|Mixed Platforms.Build.0 = Devlab9|Any CPU
+ {8A669480-0FD3-453A-823A-E82CFAE7558C}.Devlab9|Win32.ActiveCfg = Devlab9|Any CPU
+ {8A669480-0FD3-453A-823A-E82CFAE7558C}.Devlab9|x86.ActiveCfg = Devlab9|Any CPU
+ {8A669480-0FD3-453A-823A-E82CFAE7558C}.Internal9|Any CPU.ActiveCfg = Internal9|Any CPU
+ {8A669480-0FD3-453A-823A-E82CFAE7558C}.Internal9|Any CPU.Build.0 = Internal9|Any CPU
+ {8A669480-0FD3-453A-823A-E82CFAE7558C}.Internal9|Mixed Platforms.ActiveCfg = Internal9|Any CPU
+ {8A669480-0FD3-453A-823A-E82CFAE7558C}.Internal9|Mixed Platforms.Build.0 = Internal9|Any CPU
+ {8A669480-0FD3-453A-823A-E82CFAE7558C}.Internal9|Win32.ActiveCfg = Internal9|Any CPU
+ {8A669480-0FD3-453A-823A-E82CFAE7558C}.Internal9|x86.ActiveCfg = Internal9|Any CPU
+ {8A669480-0FD3-453A-823A-E82CFAE7558C}.Release|Any CPU.ActiveCfg = Internal9|Any CPU
+ {8A669480-0FD3-453A-823A-E82CFAE7558C}.Release|Any CPU.Build.0 = Internal9|Any CPU
+ {8A669480-0FD3-453A-823A-E82CFAE7558C}.Release|Mixed Platforms.ActiveCfg = Internal9|Any CPU
+ {8A669480-0FD3-453A-823A-E82CFAE7558C}.Release|Mixed Platforms.Build.0 = Internal9|Any CPU
+ {8A669480-0FD3-453A-823A-E82CFAE7558C}.Release|Win32.ActiveCfg = Internal9|Any CPU
+ {8A669480-0FD3-453A-823A-E82CFAE7558C}.Release|x86.ActiveCfg = Internal9|Any CPU
+ {0E7A10F3-10E2-40CB-A47B-234615C4719B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {0E7A10F3-10E2-40CB-A47B-234615C4719B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {0E7A10F3-10E2-40CB-A47B-234615C4719B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {0E7A10F3-10E2-40CB-A47B-234615C4719B}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {0E7A10F3-10E2-40CB-A47B-234615C4719B}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {0E7A10F3-10E2-40CB-A47B-234615C4719B}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {0E7A10F3-10E2-40CB-A47B-234615C4719B}.Devlab9|Any CPU.ActiveCfg = Devlab9|Any CPU
+ {0E7A10F3-10E2-40CB-A47B-234615C4719B}.Devlab9|Any CPU.Build.0 = Devlab9|Any CPU
+ {0E7A10F3-10E2-40CB-A47B-234615C4719B}.Devlab9|Mixed Platforms.ActiveCfg = Devlab9|Any CPU
+ {0E7A10F3-10E2-40CB-A47B-234615C4719B}.Devlab9|Mixed Platforms.Build.0 = Devlab9|Any CPU
+ {0E7A10F3-10E2-40CB-A47B-234615C4719B}.Devlab9|Win32.ActiveCfg = Devlab9|Any CPU
+ {0E7A10F3-10E2-40CB-A47B-234615C4719B}.Devlab9|x86.ActiveCfg = Devlab9|Any CPU
+ {0E7A10F3-10E2-40CB-A47B-234615C4719B}.Internal9|Any CPU.ActiveCfg = Internal9|Any CPU
+ {0E7A10F3-10E2-40CB-A47B-234615C4719B}.Internal9|Any CPU.Build.0 = Internal9|Any CPU
+ {0E7A10F3-10E2-40CB-A47B-234615C4719B}.Internal9|Mixed Platforms.ActiveCfg = Internal9|Any CPU
+ {0E7A10F3-10E2-40CB-A47B-234615C4719B}.Internal9|Mixed Platforms.Build.0 = Internal9|Any CPU
+ {0E7A10F3-10E2-40CB-A47B-234615C4719B}.Internal9|Win32.ActiveCfg = Internal9|Any CPU
+ {0E7A10F3-10E2-40CB-A47B-234615C4719B}.Internal9|x86.ActiveCfg = Internal9|Any CPU
+ {0E7A10F3-10E2-40CB-A47B-234615C4719B}.Release|Any CPU.ActiveCfg = Internal9|Any CPU
+ {0E7A10F3-10E2-40CB-A47B-234615C4719B}.Release|Any CPU.Build.0 = Internal9|Any CPU
+ {0E7A10F3-10E2-40CB-A47B-234615C4719B}.Release|Mixed Platforms.ActiveCfg = Internal9|Any CPU
+ {0E7A10F3-10E2-40CB-A47B-234615C4719B}.Release|Mixed Platforms.Build.0 = Internal9|Any CPU
+ {0E7A10F3-10E2-40CB-A47B-234615C4719B}.Release|Win32.ActiveCfg = Internal9|Any CPU
+ {0E7A10F3-10E2-40CB-A47B-234615C4719B}.Release|x86.ActiveCfg = Internal9|Any CPU
+ {202E0819-A63F-4BE1-9314-13306C4C9C96}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {202E0819-A63F-4BE1-9314-13306C4C9C96}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {202E0819-A63F-4BE1-9314-13306C4C9C96}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {202E0819-A63F-4BE1-9314-13306C4C9C96}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {202E0819-A63F-4BE1-9314-13306C4C9C96}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {202E0819-A63F-4BE1-9314-13306C4C9C96}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {202E0819-A63F-4BE1-9314-13306C4C9C96}.Devlab9|Any CPU.ActiveCfg = Devlab9|Any CPU
+ {202E0819-A63F-4BE1-9314-13306C4C9C96}.Devlab9|Any CPU.Build.0 = Devlab9|Any CPU
+ {202E0819-A63F-4BE1-9314-13306C4C9C96}.Devlab9|Mixed Platforms.ActiveCfg = Devlab9|Any CPU
+ {202E0819-A63F-4BE1-9314-13306C4C9C96}.Devlab9|Mixed Platforms.Build.0 = Devlab9|Any CPU
+ {202E0819-A63F-4BE1-9314-13306C4C9C96}.Devlab9|Win32.ActiveCfg = Devlab9|Any CPU
+ {202E0819-A63F-4BE1-9314-13306C4C9C96}.Devlab9|x86.ActiveCfg = Devlab9|Any CPU
+ {202E0819-A63F-4BE1-9314-13306C4C9C96}.Internal9|Any CPU.ActiveCfg = Internal9|Any CPU
+ {202E0819-A63F-4BE1-9314-13306C4C9C96}.Internal9|Any CPU.Build.0 = Internal9|Any CPU
+ {202E0819-A63F-4BE1-9314-13306C4C9C96}.Internal9|Mixed Platforms.ActiveCfg = Internal9|Any CPU
+ {202E0819-A63F-4BE1-9314-13306C4C9C96}.Internal9|Mixed Platforms.Build.0 = Internal9|Any CPU
+ {202E0819-A63F-4BE1-9314-13306C4C9C96}.Internal9|Win32.ActiveCfg = Internal9|Any CPU
+ {202E0819-A63F-4BE1-9314-13306C4C9C96}.Internal9|x86.ActiveCfg = Internal9|Any CPU
+ {202E0819-A63F-4BE1-9314-13306C4C9C96}.Release|Any CPU.ActiveCfg = Internal9|Any CPU
+ {202E0819-A63F-4BE1-9314-13306C4C9C96}.Release|Any CPU.Build.0 = Internal9|Any CPU
+ {202E0819-A63F-4BE1-9314-13306C4C9C96}.Release|Mixed Platforms.ActiveCfg = Internal9|Any CPU
+ {202E0819-A63F-4BE1-9314-13306C4C9C96}.Release|Mixed Platforms.Build.0 = Internal9|Any CPU
+ {202E0819-A63F-4BE1-9314-13306C4C9C96}.Release|Win32.ActiveCfg = Internal9|Any CPU
+ {202E0819-A63F-4BE1-9314-13306C4C9C96}.Release|x86.ActiveCfg = Internal9|Any CPU
+ {9FA6D0C7-6B7B-4090-818E-29DEA3C295AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {9FA6D0C7-6B7B-4090-818E-29DEA3C295AB}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {9FA6D0C7-6B7B-4090-818E-29DEA3C295AB}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {9FA6D0C7-6B7B-4090-818E-29DEA3C295AB}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {9FA6D0C7-6B7B-4090-818E-29DEA3C295AB}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {9FA6D0C7-6B7B-4090-818E-29DEA3C295AB}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {9FA6D0C7-6B7B-4090-818E-29DEA3C295AB}.Devlab9|Any CPU.ActiveCfg = Devlab9|Any CPU
+ {9FA6D0C7-6B7B-4090-818E-29DEA3C295AB}.Devlab9|Any CPU.Build.0 = Devlab9|Any CPU
+ {9FA6D0C7-6B7B-4090-818E-29DEA3C295AB}.Devlab9|Mixed Platforms.ActiveCfg = Devlab9|Any CPU
+ {9FA6D0C7-6B7B-4090-818E-29DEA3C295AB}.Devlab9|Mixed Platforms.Build.0 = Devlab9|Any CPU
+ {9FA6D0C7-6B7B-4090-818E-29DEA3C295AB}.Devlab9|Win32.ActiveCfg = Devlab9|Any CPU
+ {9FA6D0C7-6B7B-4090-818E-29DEA3C295AB}.Devlab9|x86.ActiveCfg = Devlab9|Any CPU
+ {9FA6D0C7-6B7B-4090-818E-29DEA3C295AB}.Internal9|Any CPU.ActiveCfg = Internal9|Any CPU
+ {9FA6D0C7-6B7B-4090-818E-29DEA3C295AB}.Internal9|Any CPU.Build.0 = Internal9|Any CPU
+ {9FA6D0C7-6B7B-4090-818E-29DEA3C295AB}.Internal9|Mixed Platforms.ActiveCfg = Internal9|Any CPU
+ {9FA6D0C7-6B7B-4090-818E-29DEA3C295AB}.Internal9|Mixed Platforms.Build.0 = Internal9|Any CPU
+ {9FA6D0C7-6B7B-4090-818E-29DEA3C295AB}.Internal9|Win32.ActiveCfg = Internal9|Any CPU
+ {9FA6D0C7-6B7B-4090-818E-29DEA3C295AB}.Internal9|x86.ActiveCfg = Internal9|Any CPU
+ {9FA6D0C7-6B7B-4090-818E-29DEA3C295AB}.Release|Any CPU.ActiveCfg = Devlab9ro|Any CPU
+ {9FA6D0C7-6B7B-4090-818E-29DEA3C295AB}.Release|Any CPU.Build.0 = Devlab9ro|Any CPU
+ {9FA6D0C7-6B7B-4090-818E-29DEA3C295AB}.Release|Mixed Platforms.ActiveCfg = Devlab9ro|Any CPU
+ {9FA6D0C7-6B7B-4090-818E-29DEA3C295AB}.Release|Mixed Platforms.Build.0 = Devlab9ro|Any CPU
+ {9FA6D0C7-6B7B-4090-818E-29DEA3C295AB}.Release|Win32.ActiveCfg = Devlab9ro|Any CPU
+ {9FA6D0C7-6B7B-4090-818E-29DEA3C295AB}.Release|x86.ActiveCfg = Devlab9ro|Any CPU
+ {560BAEE6-D01B-4714-92EF-798EEBCCF2DB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {560BAEE6-D01B-4714-92EF-798EEBCCF2DB}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {560BAEE6-D01B-4714-92EF-798EEBCCF2DB}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {560BAEE6-D01B-4714-92EF-798EEBCCF2DB}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {560BAEE6-D01B-4714-92EF-798EEBCCF2DB}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {560BAEE6-D01B-4714-92EF-798EEBCCF2DB}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {560BAEE6-D01B-4714-92EF-798EEBCCF2DB}.Devlab9|Any CPU.ActiveCfg = Devlab9|Any CPU
+ {560BAEE6-D01B-4714-92EF-798EEBCCF2DB}.Devlab9|Any CPU.Build.0 = Devlab9|Any CPU
+ {560BAEE6-D01B-4714-92EF-798EEBCCF2DB}.Devlab9|Mixed Platforms.ActiveCfg = Devlab9|Any CPU
+ {560BAEE6-D01B-4714-92EF-798EEBCCF2DB}.Devlab9|Mixed Platforms.Build.0 = Devlab9|Any CPU
+ {560BAEE6-D01B-4714-92EF-798EEBCCF2DB}.Devlab9|Win32.ActiveCfg = Devlab9|Any CPU
+ {560BAEE6-D01B-4714-92EF-798EEBCCF2DB}.Devlab9|x86.ActiveCfg = Devlab9|Any CPU
+ {560BAEE6-D01B-4714-92EF-798EEBCCF2DB}.Internal9|Any CPU.ActiveCfg = Internal9|Any CPU
+ {560BAEE6-D01B-4714-92EF-798EEBCCF2DB}.Internal9|Any CPU.Build.0 = Internal9|Any CPU
+ {560BAEE6-D01B-4714-92EF-798EEBCCF2DB}.Internal9|Mixed Platforms.ActiveCfg = Internal9|Any CPU
+ {560BAEE6-D01B-4714-92EF-798EEBCCF2DB}.Internal9|Mixed Platforms.Build.0 = Internal9|Any CPU
+ {560BAEE6-D01B-4714-92EF-798EEBCCF2DB}.Internal9|Win32.ActiveCfg = Internal9|Any CPU
+ {560BAEE6-D01B-4714-92EF-798EEBCCF2DB}.Internal9|x86.ActiveCfg = Internal9|Any CPU
+ {560BAEE6-D01B-4714-92EF-798EEBCCF2DB}.Release|Any CPU.ActiveCfg = Devlab9ro|Any CPU
+ {560BAEE6-D01B-4714-92EF-798EEBCCF2DB}.Release|Any CPU.Build.0 = Devlab9ro|Any CPU
+ {560BAEE6-D01B-4714-92EF-798EEBCCF2DB}.Release|Mixed Platforms.ActiveCfg = Devlab9ro|Any CPU
+ {560BAEE6-D01B-4714-92EF-798EEBCCF2DB}.Release|Mixed Platforms.Build.0 = Devlab9ro|Any CPU
+ {560BAEE6-D01B-4714-92EF-798EEBCCF2DB}.Release|Win32.ActiveCfg = Devlab9ro|Any CPU
+ {560BAEE6-D01B-4714-92EF-798EEBCCF2DB}.Release|x86.ActiveCfg = Devlab9ro|Any CPU
+ {A09A280B-E5CE-4F5B-8081-163944392804}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {A09A280B-E5CE-4F5B-8081-163944392804}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A09A280B-E5CE-4F5B-8081-163944392804}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {A09A280B-E5CE-4F5B-8081-163944392804}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {A09A280B-E5CE-4F5B-8081-163944392804}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {A09A280B-E5CE-4F5B-8081-163944392804}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {A09A280B-E5CE-4F5B-8081-163944392804}.Devlab9|Any CPU.ActiveCfg = Devlab9|Any CPU
+ {A09A280B-E5CE-4F5B-8081-163944392804}.Devlab9|Any CPU.Build.0 = Devlab9|Any CPU
+ {A09A280B-E5CE-4F5B-8081-163944392804}.Devlab9|Mixed Platforms.ActiveCfg = Devlab9|Any CPU
+ {A09A280B-E5CE-4F5B-8081-163944392804}.Devlab9|Mixed Platforms.Build.0 = Devlab9|Any CPU
+ {A09A280B-E5CE-4F5B-8081-163944392804}.Devlab9|Win32.ActiveCfg = Devlab9|Any CPU
+ {A09A280B-E5CE-4F5B-8081-163944392804}.Devlab9|x86.ActiveCfg = Devlab9|Any CPU
+ {A09A280B-E5CE-4F5B-8081-163944392804}.Internal9|Any CPU.ActiveCfg = Internal9|Any CPU
+ {A09A280B-E5CE-4F5B-8081-163944392804}.Internal9|Any CPU.Build.0 = Internal9|Any CPU
+ {A09A280B-E5CE-4F5B-8081-163944392804}.Internal9|Mixed Platforms.ActiveCfg = Internal9|Any CPU
+ {A09A280B-E5CE-4F5B-8081-163944392804}.Internal9|Mixed Platforms.Build.0 = Internal9|Any CPU
+ {A09A280B-E5CE-4F5B-8081-163944392804}.Internal9|Win32.ActiveCfg = Internal9|Any CPU
+ {A09A280B-E5CE-4F5B-8081-163944392804}.Internal9|x86.ActiveCfg = Internal9|Any CPU
+ {A09A280B-E5CE-4F5B-8081-163944392804}.Release|Any CPU.ActiveCfg = Devlab9ro|Any CPU
+ {A09A280B-E5CE-4F5B-8081-163944392804}.Release|Any CPU.Build.0 = Devlab9ro|Any CPU
+ {A09A280B-E5CE-4F5B-8081-163944392804}.Release|Mixed Platforms.ActiveCfg = Devlab9ro|Any CPU
+ {A09A280B-E5CE-4F5B-8081-163944392804}.Release|Mixed Platforms.Build.0 = Devlab9ro|Any CPU
+ {A09A280B-E5CE-4F5B-8081-163944392804}.Release|Win32.ActiveCfg = Devlab9ro|Any CPU
+ {A09A280B-E5CE-4F5B-8081-163944392804}.Release|x86.ActiveCfg = Devlab9ro|Any CPU
+ {C719D602-0573-4E5A-AAFB-6DFF2106EEE6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {C719D602-0573-4E5A-AAFB-6DFF2106EEE6}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C719D602-0573-4E5A-AAFB-6DFF2106EEE6}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {C719D602-0573-4E5A-AAFB-6DFF2106EEE6}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {C719D602-0573-4E5A-AAFB-6DFF2106EEE6}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {C719D602-0573-4E5A-AAFB-6DFF2106EEE6}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {C719D602-0573-4E5A-AAFB-6DFF2106EEE6}.Devlab9|Any CPU.ActiveCfg = Devlab9|Any CPU
+ {C719D602-0573-4E5A-AAFB-6DFF2106EEE6}.Devlab9|Any CPU.Build.0 = Devlab9|Any CPU
+ {C719D602-0573-4E5A-AAFB-6DFF2106EEE6}.Devlab9|Mixed Platforms.ActiveCfg = Devlab9|Any CPU
+ {C719D602-0573-4E5A-AAFB-6DFF2106EEE6}.Devlab9|Mixed Platforms.Build.0 = Devlab9|Any CPU
+ {C719D602-0573-4E5A-AAFB-6DFF2106EEE6}.Devlab9|Win32.ActiveCfg = Devlab9|Any CPU
+ {C719D602-0573-4E5A-AAFB-6DFF2106EEE6}.Devlab9|x86.ActiveCfg = Devlab9|Any CPU
+ {C719D602-0573-4E5A-AAFB-6DFF2106EEE6}.Internal9|Any CPU.ActiveCfg = Internal9|Any CPU
+ {C719D602-0573-4E5A-AAFB-6DFF2106EEE6}.Internal9|Any CPU.Build.0 = Internal9|Any CPU
+ {C719D602-0573-4E5A-AAFB-6DFF2106EEE6}.Internal9|Mixed Platforms.ActiveCfg = Internal9|Any CPU
+ {C719D602-0573-4E5A-AAFB-6DFF2106EEE6}.Internal9|Mixed Platforms.Build.0 = Internal9|Any CPU
+ {C719D602-0573-4E5A-AAFB-6DFF2106EEE6}.Internal9|Win32.ActiveCfg = Internal9|Any CPU
+ {C719D602-0573-4E5A-AAFB-6DFF2106EEE6}.Internal9|x86.ActiveCfg = Internal9|Any CPU
+ {C719D602-0573-4E5A-AAFB-6DFF2106EEE6}.Release|Any CPU.ActiveCfg = Internal9|Any CPU
+ {C719D602-0573-4E5A-AAFB-6DFF2106EEE6}.Release|Any CPU.Build.0 = Internal9|Any CPU
+ {C719D602-0573-4E5A-AAFB-6DFF2106EEE6}.Release|Mixed Platforms.ActiveCfg = Internal9|Any CPU
+ {C719D602-0573-4E5A-AAFB-6DFF2106EEE6}.Release|Mixed Platforms.Build.0 = Internal9|Any CPU
+ {C719D602-0573-4E5A-AAFB-6DFF2106EEE6}.Release|Win32.ActiveCfg = Internal9|Any CPU
+ {C719D602-0573-4E5A-AAFB-6DFF2106EEE6}.Release|x86.ActiveCfg = Internal9|Any CPU
+ {87CFEEDB-BF05-455C-A14D-51DCB3FE9C65}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {87CFEEDB-BF05-455C-A14D-51DCB3FE9C65}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {87CFEEDB-BF05-455C-A14D-51DCB3FE9C65}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {87CFEEDB-BF05-455C-A14D-51DCB3FE9C65}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {87CFEEDB-BF05-455C-A14D-51DCB3FE9C65}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {87CFEEDB-BF05-455C-A14D-51DCB3FE9C65}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {87CFEEDB-BF05-455C-A14D-51DCB3FE9C65}.Devlab9|Any CPU.ActiveCfg = Devlab9|Any CPU
+ {87CFEEDB-BF05-455C-A14D-51DCB3FE9C65}.Devlab9|Any CPU.Build.0 = Devlab9|Any CPU
+ {87CFEEDB-BF05-455C-A14D-51DCB3FE9C65}.Devlab9|Mixed Platforms.ActiveCfg = Devlab9|Any CPU
+ {87CFEEDB-BF05-455C-A14D-51DCB3FE9C65}.Devlab9|Mixed Platforms.Build.0 = Devlab9|Any CPU
+ {87CFEEDB-BF05-455C-A14D-51DCB3FE9C65}.Devlab9|Win32.ActiveCfg = Devlab9|Any CPU
+ {87CFEEDB-BF05-455C-A14D-51DCB3FE9C65}.Devlab9|x86.ActiveCfg = Devlab9|Any CPU
+ {87CFEEDB-BF05-455C-A14D-51DCB3FE9C65}.Internal9|Any CPU.ActiveCfg = Internal9|Any CPU
+ {87CFEEDB-BF05-455C-A14D-51DCB3FE9C65}.Internal9|Any CPU.Build.0 = Internal9|Any CPU
+ {87CFEEDB-BF05-455C-A14D-51DCB3FE9C65}.Internal9|Mixed Platforms.ActiveCfg = Internal9|Any CPU
+ {87CFEEDB-BF05-455C-A14D-51DCB3FE9C65}.Internal9|Mixed Platforms.Build.0 = Internal9|Any CPU
+ {87CFEEDB-BF05-455C-A14D-51DCB3FE9C65}.Internal9|Win32.ActiveCfg = Internal9|Any CPU
+ {87CFEEDB-BF05-455C-A14D-51DCB3FE9C65}.Internal9|x86.ActiveCfg = Internal9|Any CPU
+ {87CFEEDB-BF05-455C-A14D-51DCB3FE9C65}.Release|Any CPU.ActiveCfg = Internal9|Any CPU
+ {87CFEEDB-BF05-455C-A14D-51DCB3FE9C65}.Release|Any CPU.Build.0 = Internal9|Any CPU
+ {87CFEEDB-BF05-455C-A14D-51DCB3FE9C65}.Release|Mixed Platforms.ActiveCfg = Internal9|Any CPU
+ {87CFEEDB-BF05-455C-A14D-51DCB3FE9C65}.Release|Mixed Platforms.Build.0 = Internal9|Any CPU
+ {87CFEEDB-BF05-455C-A14D-51DCB3FE9C65}.Release|Win32.ActiveCfg = Internal9|Any CPU
+ {87CFEEDB-BF05-455C-A14D-51DCB3FE9C65}.Release|x86.ActiveCfg = Internal9|Any CPU
+ {EF8C241A-7A60-4AA4-9E4B-2752472A96EF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {EF8C241A-7A60-4AA4-9E4B-2752472A96EF}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {EF8C241A-7A60-4AA4-9E4B-2752472A96EF}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {EF8C241A-7A60-4AA4-9E4B-2752472A96EF}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {EF8C241A-7A60-4AA4-9E4B-2752472A96EF}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {EF8C241A-7A60-4AA4-9E4B-2752472A96EF}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {EF8C241A-7A60-4AA4-9E4B-2752472A96EF}.Devlab9|Any CPU.ActiveCfg = Devlab9|Any CPU
+ {EF8C241A-7A60-4AA4-9E4B-2752472A96EF}.Devlab9|Any CPU.Build.0 = Devlab9|Any CPU
+ {EF8C241A-7A60-4AA4-9E4B-2752472A96EF}.Devlab9|Mixed Platforms.ActiveCfg = Devlab9|Any CPU
+ {EF8C241A-7A60-4AA4-9E4B-2752472A96EF}.Devlab9|Mixed Platforms.Build.0 = Devlab9|Any CPU
+ {EF8C241A-7A60-4AA4-9E4B-2752472A96EF}.Devlab9|Win32.ActiveCfg = Devlab9|Any CPU
+ {EF8C241A-7A60-4AA4-9E4B-2752472A96EF}.Devlab9|x86.ActiveCfg = Devlab9|Any CPU
+ {EF8C241A-7A60-4AA4-9E4B-2752472A96EF}.Internal9|Any CPU.ActiveCfg = Internal9|Any CPU
+ {EF8C241A-7A60-4AA4-9E4B-2752472A96EF}.Internal9|Any CPU.Build.0 = Internal9|Any CPU
+ {EF8C241A-7A60-4AA4-9E4B-2752472A96EF}.Internal9|Mixed Platforms.ActiveCfg = Internal9|Any CPU
+ {EF8C241A-7A60-4AA4-9E4B-2752472A96EF}.Internal9|Mixed Platforms.Build.0 = Internal9|Any CPU
+ {EF8C241A-7A60-4AA4-9E4B-2752472A96EF}.Internal9|Win32.ActiveCfg = Internal9|Any CPU
+ {EF8C241A-7A60-4AA4-9E4B-2752472A96EF}.Internal9|x86.ActiveCfg = Internal9|Any CPU
+ {EF8C241A-7A60-4AA4-9E4B-2752472A96EF}.Release|Any CPU.ActiveCfg = Internal9|Any CPU
+ {EF8C241A-7A60-4AA4-9E4B-2752472A96EF}.Release|Any CPU.Build.0 = Internal9|Any CPU
+ {EF8C241A-7A60-4AA4-9E4B-2752472A96EF}.Release|Mixed Platforms.ActiveCfg = Internal9|Any CPU
+ {EF8C241A-7A60-4AA4-9E4B-2752472A96EF}.Release|Mixed Platforms.Build.0 = Internal9|Any CPU
+ {EF8C241A-7A60-4AA4-9E4B-2752472A96EF}.Release|Win32.ActiveCfg = Internal9|Any CPU
+ {EF8C241A-7A60-4AA4-9E4B-2752472A96EF}.Release|x86.ActiveCfg = Internal9|Any CPU
+ {650CD908-450D-4B70-9A68-590C7A2AC32B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {650CD908-450D-4B70-9A68-590C7A2AC32B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {650CD908-450D-4B70-9A68-590C7A2AC32B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {650CD908-450D-4B70-9A68-590C7A2AC32B}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {650CD908-450D-4B70-9A68-590C7A2AC32B}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {650CD908-450D-4B70-9A68-590C7A2AC32B}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {650CD908-450D-4B70-9A68-590C7A2AC32B}.Devlab9|Any CPU.ActiveCfg = Devlab9|Any CPU
+ {650CD908-450D-4B70-9A68-590C7A2AC32B}.Devlab9|Any CPU.Build.0 = Devlab9|Any CPU
+ {650CD908-450D-4B70-9A68-590C7A2AC32B}.Devlab9|Mixed Platforms.ActiveCfg = Devlab9|Any CPU
+ {650CD908-450D-4B70-9A68-590C7A2AC32B}.Devlab9|Mixed Platforms.Build.0 = Devlab9|Any CPU
+ {650CD908-450D-4B70-9A68-590C7A2AC32B}.Devlab9|Win32.ActiveCfg = Devlab9|Any CPU
+ {650CD908-450D-4B70-9A68-590C7A2AC32B}.Devlab9|x86.ActiveCfg = Devlab9|Any CPU
+ {650CD908-450D-4B70-9A68-590C7A2AC32B}.Internal9|Any CPU.ActiveCfg = Internal9|Any CPU
+ {650CD908-450D-4B70-9A68-590C7A2AC32B}.Internal9|Any CPU.Build.0 = Internal9|Any CPU
+ {650CD908-450D-4B70-9A68-590C7A2AC32B}.Internal9|Mixed Platforms.ActiveCfg = Internal9|Any CPU
+ {650CD908-450D-4B70-9A68-590C7A2AC32B}.Internal9|Mixed Platforms.Build.0 = Internal9|Any CPU
+ {650CD908-450D-4B70-9A68-590C7A2AC32B}.Internal9|Win32.ActiveCfg = Internal9|Any CPU
+ {650CD908-450D-4B70-9A68-590C7A2AC32B}.Internal9|x86.ActiveCfg = Internal9|Any CPU
+ {650CD908-450D-4B70-9A68-590C7A2AC32B}.Release|Any CPU.ActiveCfg = Internal9|Any CPU
+ {650CD908-450D-4B70-9A68-590C7A2AC32B}.Release|Any CPU.Build.0 = Internal9|Any CPU
+ {650CD908-450D-4B70-9A68-590C7A2AC32B}.Release|Mixed Platforms.ActiveCfg = Internal9|Any CPU
+ {650CD908-450D-4B70-9A68-590C7A2AC32B}.Release|Mixed Platforms.Build.0 = Internal9|Any CPU
+ {650CD908-450D-4B70-9A68-590C7A2AC32B}.Release|Win32.ActiveCfg = Internal9|Any CPU
+ {650CD908-450D-4B70-9A68-590C7A2AC32B}.Release|x86.ActiveCfg = Internal9|Any CPU
+ {EB432A52-712F-478D-9A5B-81FF99DE6CBE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {EB432A52-712F-478D-9A5B-81FF99DE6CBE}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {EB432A52-712F-478D-9A5B-81FF99DE6CBE}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {EB432A52-712F-478D-9A5B-81FF99DE6CBE}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {EB432A52-712F-478D-9A5B-81FF99DE6CBE}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {EB432A52-712F-478D-9A5B-81FF99DE6CBE}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {EB432A52-712F-478D-9A5B-81FF99DE6CBE}.Devlab9|Any CPU.ActiveCfg = Devlab9|Any CPU
+ {EB432A52-712F-478D-9A5B-81FF99DE6CBE}.Devlab9|Any CPU.Build.0 = Devlab9|Any CPU
+ {EB432A52-712F-478D-9A5B-81FF99DE6CBE}.Devlab9|Mixed Platforms.ActiveCfg = Devlab9|Any CPU
+ {EB432A52-712F-478D-9A5B-81FF99DE6CBE}.Devlab9|Mixed Platforms.Build.0 = Devlab9|Any CPU
+ {EB432A52-712F-478D-9A5B-81FF99DE6CBE}.Devlab9|Win32.ActiveCfg = Devlab9|Any CPU
+ {EB432A52-712F-478D-9A5B-81FF99DE6CBE}.Devlab9|x86.ActiveCfg = Devlab9|Any CPU
+ {EB432A52-712F-478D-9A5B-81FF99DE6CBE}.Internal9|Any CPU.ActiveCfg = Internal9|Any CPU
+ {EB432A52-712F-478D-9A5B-81FF99DE6CBE}.Internal9|Any CPU.Build.0 = Internal9|Any CPU
+ {EB432A52-712F-478D-9A5B-81FF99DE6CBE}.Internal9|Mixed Platforms.ActiveCfg = Internal9|Any CPU
+ {EB432A52-712F-478D-9A5B-81FF99DE6CBE}.Internal9|Mixed Platforms.Build.0 = Internal9|Any CPU
+ {EB432A52-712F-478D-9A5B-81FF99DE6CBE}.Internal9|Win32.ActiveCfg = Internal9|Any CPU
+ {EB432A52-712F-478D-9A5B-81FF99DE6CBE}.Internal9|x86.ActiveCfg = Internal9|Any CPU
+ {EB432A52-712F-478D-9A5B-81FF99DE6CBE}.Release|Any CPU.ActiveCfg = Internal9|Any CPU
+ {EB432A52-712F-478D-9A5B-81FF99DE6CBE}.Release|Any CPU.Build.0 = Internal9|Any CPU
+ {EB432A52-712F-478D-9A5B-81FF99DE6CBE}.Release|Mixed Platforms.ActiveCfg = Internal9|Any CPU
+ {EB432A52-712F-478D-9A5B-81FF99DE6CBE}.Release|Mixed Platforms.Build.0 = Internal9|Any CPU
+ {EB432A52-712F-478D-9A5B-81FF99DE6CBE}.Release|Win32.ActiveCfg = Internal9|Any CPU
+ {EB432A52-712F-478D-9A5B-81FF99DE6CBE}.Release|x86.ActiveCfg = Internal9|Any CPU
+ {1A4FF4FF-5CF0-4DF0-8581-80A4DDBBCB5A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {1A4FF4FF-5CF0-4DF0-8581-80A4DDBBCB5A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {1A4FF4FF-5CF0-4DF0-8581-80A4DDBBCB5A}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {1A4FF4FF-5CF0-4DF0-8581-80A4DDBBCB5A}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {1A4FF4FF-5CF0-4DF0-8581-80A4DDBBCB5A}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {1A4FF4FF-5CF0-4DF0-8581-80A4DDBBCB5A}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {1A4FF4FF-5CF0-4DF0-8581-80A4DDBBCB5A}.Devlab9|Any CPU.ActiveCfg = Devlab9|Any CPU
+ {1A4FF4FF-5CF0-4DF0-8581-80A4DDBBCB5A}.Devlab9|Any CPU.Build.0 = Devlab9|Any CPU
+ {1A4FF4FF-5CF0-4DF0-8581-80A4DDBBCB5A}.Devlab9|Mixed Platforms.ActiveCfg = Devlab9|Any CPU
+ {1A4FF4FF-5CF0-4DF0-8581-80A4DDBBCB5A}.Devlab9|Mixed Platforms.Build.0 = Devlab9|Any CPU
+ {1A4FF4FF-5CF0-4DF0-8581-80A4DDBBCB5A}.Devlab9|Win32.ActiveCfg = Devlab9|Any CPU
+ {1A4FF4FF-5CF0-4DF0-8581-80A4DDBBCB5A}.Devlab9|x86.ActiveCfg = Devlab9|Any CPU
+ {1A4FF4FF-5CF0-4DF0-8581-80A4DDBBCB5A}.Internal9|Any CPU.ActiveCfg = Internal9|Any CPU
+ {1A4FF4FF-5CF0-4DF0-8581-80A4DDBBCB5A}.Internal9|Any CPU.Build.0 = Internal9|Any CPU
+ {1A4FF4FF-5CF0-4DF0-8581-80A4DDBBCB5A}.Internal9|Mixed Platforms.ActiveCfg = Internal9|Any CPU
+ {1A4FF4FF-5CF0-4DF0-8581-80A4DDBBCB5A}.Internal9|Mixed Platforms.Build.0 = Internal9|Any CPU
+ {1A4FF4FF-5CF0-4DF0-8581-80A4DDBBCB5A}.Internal9|Win32.ActiveCfg = Internal9|Any CPU
+ {1A4FF4FF-5CF0-4DF0-8581-80A4DDBBCB5A}.Internal9|x86.ActiveCfg = Internal9|Any CPU
+ {1A4FF4FF-5CF0-4DF0-8581-80A4DDBBCB5A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {1A4FF4FF-5CF0-4DF0-8581-80A4DDBBCB5A}.Release|Any CPU.Build.0 = Release|Any CPU
+ {1A4FF4FF-5CF0-4DF0-8581-80A4DDBBCB5A}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {1A4FF4FF-5CF0-4DF0-8581-80A4DDBBCB5A}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {1A4FF4FF-5CF0-4DF0-8581-80A4DDBBCB5A}.Release|Win32.ActiveCfg = Release|Any CPU
+ {1A4FF4FF-5CF0-4DF0-8581-80A4DDBBCB5A}.Release|x86.ActiveCfg = Release|Any CPU
+ {83E81339-DFB4-46A7-B0BF-21098B862AEF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {83E81339-DFB4-46A7-B0BF-21098B862AEF}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {83E81339-DFB4-46A7-B0BF-21098B862AEF}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {83E81339-DFB4-46A7-B0BF-21098B862AEF}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {83E81339-DFB4-46A7-B0BF-21098B862AEF}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {83E81339-DFB4-46A7-B0BF-21098B862AEF}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {83E81339-DFB4-46A7-B0BF-21098B862AEF}.Devlab9|Any CPU.ActiveCfg = Devlab9|Any CPU
+ {83E81339-DFB4-46A7-B0BF-21098B862AEF}.Devlab9|Any CPU.Build.0 = Devlab9|Any CPU
+ {83E81339-DFB4-46A7-B0BF-21098B862AEF}.Devlab9|Mixed Platforms.ActiveCfg = Devlab9|Any CPU
+ {83E81339-DFB4-46A7-B0BF-21098B862AEF}.Devlab9|Mixed Platforms.Build.0 = Devlab9|Any CPU
+ {83E81339-DFB4-46A7-B0BF-21098B862AEF}.Devlab9|Win32.ActiveCfg = Devlab9|Any CPU
+ {83E81339-DFB4-46A7-B0BF-21098B862AEF}.Devlab9|x86.ActiveCfg = Devlab9|Any CPU
+ {83E81339-DFB4-46A7-B0BF-21098B862AEF}.Internal9|Any CPU.ActiveCfg = Internal9|Any CPU
+ {83E81339-DFB4-46A7-B0BF-21098B862AEF}.Internal9|Any CPU.Build.0 = Internal9|Any CPU
+ {83E81339-DFB4-46A7-B0BF-21098B862AEF}.Internal9|Mixed Platforms.ActiveCfg = Internal9|Any CPU
+ {83E81339-DFB4-46A7-B0BF-21098B862AEF}.Internal9|Mixed Platforms.Build.0 = Internal9|Any CPU
+ {83E81339-DFB4-46A7-B0BF-21098B862AEF}.Internal9|Win32.ActiveCfg = Internal9|Any CPU
+ {83E81339-DFB4-46A7-B0BF-21098B862AEF}.Internal9|x86.ActiveCfg = Internal9|Any CPU
+ {83E81339-DFB4-46A7-B0BF-21098B862AEF}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {83E81339-DFB4-46A7-B0BF-21098B862AEF}.Release|Any CPU.Build.0 = Release|Any CPU
+ {83E81339-DFB4-46A7-B0BF-21098B862AEF}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {83E81339-DFB4-46A7-B0BF-21098B862AEF}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {83E81339-DFB4-46A7-B0BF-21098B862AEF}.Release|Win32.ActiveCfg = Release|Any CPU
+ {83E81339-DFB4-46A7-B0BF-21098B862AEF}.Release|x86.ActiveCfg = Release|Any CPU
+ {C5A99A99-96B4-42D2-ABD0-1AB546CF4E12}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {C5A99A99-96B4-42D2-ABD0-1AB546CF4E12}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C5A99A99-96B4-42D2-ABD0-1AB546CF4E12}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {C5A99A99-96B4-42D2-ABD0-1AB546CF4E12}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {C5A99A99-96B4-42D2-ABD0-1AB546CF4E12}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {C5A99A99-96B4-42D2-ABD0-1AB546CF4E12}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {C5A99A99-96B4-42D2-ABD0-1AB546CF4E12}.Devlab9|Any CPU.ActiveCfg = Devlab9|Any CPU
+ {C5A99A99-96B4-42D2-ABD0-1AB546CF4E12}.Devlab9|Any CPU.Build.0 = Devlab9|Any CPU
+ {C5A99A99-96B4-42D2-ABD0-1AB546CF4E12}.Devlab9|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {C5A99A99-96B4-42D2-ABD0-1AB546CF4E12}.Devlab9|Mixed Platforms.Build.0 = Debug|Any CPU
+ {C5A99A99-96B4-42D2-ABD0-1AB546CF4E12}.Devlab9|Win32.ActiveCfg = Debug|Any CPU
+ {C5A99A99-96B4-42D2-ABD0-1AB546CF4E12}.Devlab9|x86.ActiveCfg = Debug|Any CPU
+ {C5A99A99-96B4-42D2-ABD0-1AB546CF4E12}.Internal9|Any CPU.ActiveCfg = Internal9|Any CPU
+ {C5A99A99-96B4-42D2-ABD0-1AB546CF4E12}.Internal9|Any CPU.Build.0 = Internal9|Any CPU
+ {C5A99A99-96B4-42D2-ABD0-1AB546CF4E12}.Internal9|Mixed Platforms.ActiveCfg = Internal9|Any CPU
+ {C5A99A99-96B4-42D2-ABD0-1AB546CF4E12}.Internal9|Mixed Platforms.Build.0 = Internal9|Any CPU
+ {C5A99A99-96B4-42D2-ABD0-1AB546CF4E12}.Internal9|Win32.ActiveCfg = Release|Any CPU
+ {C5A99A99-96B4-42D2-ABD0-1AB546CF4E12}.Internal9|x86.ActiveCfg = Release|Any CPU
+ {C5A99A99-96B4-42D2-ABD0-1AB546CF4E12}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {C5A99A99-96B4-42D2-ABD0-1AB546CF4E12}.Release|Any CPU.Build.0 = Release|Any CPU
+ {C5A99A99-96B4-42D2-ABD0-1AB546CF4E12}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {C5A99A99-96B4-42D2-ABD0-1AB546CF4E12}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {C5A99A99-96B4-42D2-ABD0-1AB546CF4E12}.Release|Win32.ActiveCfg = Release|Any CPU
+ {C5A99A99-96B4-42D2-ABD0-1AB546CF4E12}.Release|x86.ActiveCfg = Release|Any CPU
+ {DDCFABF7-69E9-4B33-9F0E-A5661F960111}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {DDCFABF7-69E9-4B33-9F0E-A5661F960111}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {DDCFABF7-69E9-4B33-9F0E-A5661F960111}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {DDCFABF7-69E9-4B33-9F0E-A5661F960111}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {DDCFABF7-69E9-4B33-9F0E-A5661F960111}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {DDCFABF7-69E9-4B33-9F0E-A5661F960111}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {DDCFABF7-69E9-4B33-9F0E-A5661F960111}.Devlab9|Any CPU.ActiveCfg = Release|Any CPU
+ {DDCFABF7-69E9-4B33-9F0E-A5661F960111}.Devlab9|Any CPU.Build.0 = Release|Any CPU
+ {DDCFABF7-69E9-4B33-9F0E-A5661F960111}.Devlab9|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {DDCFABF7-69E9-4B33-9F0E-A5661F960111}.Devlab9|Mixed Platforms.Build.0 = Debug|Any CPU
+ {DDCFABF7-69E9-4B33-9F0E-A5661F960111}.Devlab9|Win32.ActiveCfg = Debug|Any CPU
+ {DDCFABF7-69E9-4B33-9F0E-A5661F960111}.Devlab9|x86.ActiveCfg = Debug|Any CPU
+ {DDCFABF7-69E9-4B33-9F0E-A5661F960111}.Internal9|Any CPU.ActiveCfg = Release|Any CPU
+ {DDCFABF7-69E9-4B33-9F0E-A5661F960111}.Internal9|Any CPU.Build.0 = Release|Any CPU
+ {DDCFABF7-69E9-4B33-9F0E-A5661F960111}.Internal9|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {DDCFABF7-69E9-4B33-9F0E-A5661F960111}.Internal9|Mixed Platforms.Build.0 = Release|Any CPU
+ {DDCFABF7-69E9-4B33-9F0E-A5661F960111}.Internal9|Win32.ActiveCfg = Release|Any CPU
+ {DDCFABF7-69E9-4B33-9F0E-A5661F960111}.Internal9|x86.ActiveCfg = Release|Any CPU
+ {DDCFABF7-69E9-4B33-9F0E-A5661F960111}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {DDCFABF7-69E9-4B33-9F0E-A5661F960111}.Release|Any CPU.Build.0 = Release|Any CPU
+ {DDCFABF7-69E9-4B33-9F0E-A5661F960111}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {DDCFABF7-69E9-4B33-9F0E-A5661F960111}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {DDCFABF7-69E9-4B33-9F0E-A5661F960111}.Release|Win32.ActiveCfg = Release|Any CPU
+ {DDCFABF7-69E9-4B33-9F0E-A5661F960111}.Release|x86.ActiveCfg = Release|Any CPU
+ {1926417C-C3E4-4137-B06A-90192A3AB682}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {1926417C-C3E4-4137-B06A-90192A3AB682}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {1926417C-C3E4-4137-B06A-90192A3AB682}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {1926417C-C3E4-4137-B06A-90192A3AB682}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {1926417C-C3E4-4137-B06A-90192A3AB682}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {1926417C-C3E4-4137-B06A-90192A3AB682}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {1926417C-C3E4-4137-B06A-90192A3AB682}.Devlab9|Any CPU.ActiveCfg = Devlab9|Any CPU
+ {1926417C-C3E4-4137-B06A-90192A3AB682}.Devlab9|Any CPU.Build.0 = Devlab9|Any CPU
+ {1926417C-C3E4-4137-B06A-90192A3AB682}.Devlab9|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {1926417C-C3E4-4137-B06A-90192A3AB682}.Devlab9|Mixed Platforms.Build.0 = Debug|Any CPU
+ {1926417C-C3E4-4137-B06A-90192A3AB682}.Devlab9|Win32.ActiveCfg = Debug|Any CPU
+ {1926417C-C3E4-4137-B06A-90192A3AB682}.Devlab9|x86.ActiveCfg = Debug|Any CPU
+ {1926417C-C3E4-4137-B06A-90192A3AB682}.Internal9|Any CPU.ActiveCfg = Internal9|Any CPU
+ {1926417C-C3E4-4137-B06A-90192A3AB682}.Internal9|Any CPU.Build.0 = Internal9|Any CPU
+ {1926417C-C3E4-4137-B06A-90192A3AB682}.Internal9|Mixed Platforms.ActiveCfg = Internal9|Any CPU
+ {1926417C-C3E4-4137-B06A-90192A3AB682}.Internal9|Mixed Platforms.Build.0 = Internal9|Any CPU
+ {1926417C-C3E4-4137-B06A-90192A3AB682}.Internal9|Win32.ActiveCfg = Debug|Any CPU
+ {1926417C-C3E4-4137-B06A-90192A3AB682}.Internal9|x86.ActiveCfg = Debug|Any CPU
+ {1926417C-C3E4-4137-B06A-90192A3AB682}.Release|Any CPU.ActiveCfg = Debug|Any CPU
+ {1926417C-C3E4-4137-B06A-90192A3AB682}.Release|Any CPU.Build.0 = Debug|Any CPU
+ {1926417C-C3E4-4137-B06A-90192A3AB682}.Release|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {1926417C-C3E4-4137-B06A-90192A3AB682}.Release|Mixed Platforms.Build.0 = Debug|Any CPU
+ {1926417C-C3E4-4137-B06A-90192A3AB682}.Release|Win32.ActiveCfg = Debug|Any CPU
+ {1926417C-C3E4-4137-B06A-90192A3AB682}.Release|x86.ActiveCfg = Debug|Any CPU
+ {29106CFE-A683-4012-91E2-310552BE6258}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {29106CFE-A683-4012-91E2-310552BE6258}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {29106CFE-A683-4012-91E2-310552BE6258}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {29106CFE-A683-4012-91E2-310552BE6258}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {29106CFE-A683-4012-91E2-310552BE6258}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {29106CFE-A683-4012-91E2-310552BE6258}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {29106CFE-A683-4012-91E2-310552BE6258}.Devlab9|Any CPU.ActiveCfg = Devlab9|Any CPU
+ {29106CFE-A683-4012-91E2-310552BE6258}.Devlab9|Any CPU.Build.0 = Devlab9|Any CPU
+ {29106CFE-A683-4012-91E2-310552BE6258}.Devlab9|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {29106CFE-A683-4012-91E2-310552BE6258}.Devlab9|Mixed Platforms.Build.0 = Debug|Any CPU
+ {29106CFE-A683-4012-91E2-310552BE6258}.Devlab9|Win32.ActiveCfg = Debug|Any CPU
+ {29106CFE-A683-4012-91E2-310552BE6258}.Devlab9|x86.ActiveCfg = Debug|Any CPU
+ {29106CFE-A683-4012-91E2-310552BE6258}.Internal9|Any CPU.ActiveCfg = Internal9|Any CPU
+ {29106CFE-A683-4012-91E2-310552BE6258}.Internal9|Any CPU.Build.0 = Internal9|Any CPU
+ {29106CFE-A683-4012-91E2-310552BE6258}.Internal9|Mixed Platforms.ActiveCfg = Internal9|Any CPU
+ {29106CFE-A683-4012-91E2-310552BE6258}.Internal9|Mixed Platforms.Build.0 = Internal9|Any CPU
+ {29106CFE-A683-4012-91E2-310552BE6258}.Internal9|Win32.ActiveCfg = Debug|Any CPU
+ {29106CFE-A683-4012-91E2-310552BE6258}.Internal9|x86.ActiveCfg = Debug|Any CPU
+ {29106CFE-A683-4012-91E2-310552BE6258}.Release|Any CPU.ActiveCfg = Debug|Any CPU
+ {29106CFE-A683-4012-91E2-310552BE6258}.Release|Any CPU.Build.0 = Debug|Any CPU
+ {29106CFE-A683-4012-91E2-310552BE6258}.Release|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {29106CFE-A683-4012-91E2-310552BE6258}.Release|Mixed Platforms.Build.0 = Debug|Any CPU
+ {29106CFE-A683-4012-91E2-310552BE6258}.Release|Win32.ActiveCfg = Debug|Any CPU
+ {29106CFE-A683-4012-91E2-310552BE6258}.Release|x86.ActiveCfg = Debug|Any CPU
+ {23B4C62D-6128-4619-92CB-C0CDE3271541}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {23B4C62D-6128-4619-92CB-C0CDE3271541}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {23B4C62D-6128-4619-92CB-C0CDE3271541}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {23B4C62D-6128-4619-92CB-C0CDE3271541}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {23B4C62D-6128-4619-92CB-C0CDE3271541}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {23B4C62D-6128-4619-92CB-C0CDE3271541}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {23B4C62D-6128-4619-92CB-C0CDE3271541}.Devlab9|Any CPU.ActiveCfg = Devlab9|Any CPU
+ {23B4C62D-6128-4619-92CB-C0CDE3271541}.Devlab9|Any CPU.Build.0 = Devlab9|Any CPU
+ {23B4C62D-6128-4619-92CB-C0CDE3271541}.Devlab9|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {23B4C62D-6128-4619-92CB-C0CDE3271541}.Devlab9|Mixed Platforms.Build.0 = Debug|Any CPU
+ {23B4C62D-6128-4619-92CB-C0CDE3271541}.Devlab9|Win32.ActiveCfg = Debug|Any CPU
+ {23B4C62D-6128-4619-92CB-C0CDE3271541}.Devlab9|x86.ActiveCfg = Debug|Any CPU
+ {23B4C62D-6128-4619-92CB-C0CDE3271541}.Internal9|Any CPU.ActiveCfg = Internal9|Any CPU
+ {23B4C62D-6128-4619-92CB-C0CDE3271541}.Internal9|Any CPU.Build.0 = Internal9|Any CPU
+ {23B4C62D-6128-4619-92CB-C0CDE3271541}.Internal9|Mixed Platforms.ActiveCfg = Internal9|Any CPU
+ {23B4C62D-6128-4619-92CB-C0CDE3271541}.Internal9|Mixed Platforms.Build.0 = Internal9|Any CPU
+ {23B4C62D-6128-4619-92CB-C0CDE3271541}.Internal9|Win32.ActiveCfg = Debug|Any CPU
+ {23B4C62D-6128-4619-92CB-C0CDE3271541}.Internal9|x86.ActiveCfg = Debug|Any CPU
+ {23B4C62D-6128-4619-92CB-C0CDE3271541}.Release|Any CPU.ActiveCfg = Debug|Any CPU
+ {23B4C62D-6128-4619-92CB-C0CDE3271541}.Release|Any CPU.Build.0 = Debug|Any CPU
+ {23B4C62D-6128-4619-92CB-C0CDE3271541}.Release|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {23B4C62D-6128-4619-92CB-C0CDE3271541}.Release|Mixed Platforms.Build.0 = Debug|Any CPU
+ {23B4C62D-6128-4619-92CB-C0CDE3271541}.Release|Win32.ActiveCfg = Debug|Any CPU
+ {23B4C62D-6128-4619-92CB-C0CDE3271541}.Release|x86.ActiveCfg = Debug|Any CPU
+ {34F25C64-A624-46E6-9832-4F59C5FDDB07}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {34F25C64-A624-46E6-9832-4F59C5FDDB07}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {34F25C64-A624-46E6-9832-4F59C5FDDB07}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {34F25C64-A624-46E6-9832-4F59C5FDDB07}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {34F25C64-A624-46E6-9832-4F59C5FDDB07}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {34F25C64-A624-46E6-9832-4F59C5FDDB07}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {34F25C64-A624-46E6-9832-4F59C5FDDB07}.Devlab9|Any CPU.ActiveCfg = Devlab9|Any CPU
+ {34F25C64-A624-46E6-9832-4F59C5FDDB07}.Devlab9|Any CPU.Build.0 = Devlab9|Any CPU
+ {34F25C64-A624-46E6-9832-4F59C5FDDB07}.Devlab9|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {34F25C64-A624-46E6-9832-4F59C5FDDB07}.Devlab9|Mixed Platforms.Build.0 = Debug|Any CPU
+ {34F25C64-A624-46E6-9832-4F59C5FDDB07}.Devlab9|Win32.ActiveCfg = Debug|Any CPU
+ {34F25C64-A624-46E6-9832-4F59C5FDDB07}.Devlab9|x86.ActiveCfg = Debug|Any CPU
+ {34F25C64-A624-46E6-9832-4F59C5FDDB07}.Internal9|Any CPU.ActiveCfg = Internal9|Any CPU
+ {34F25C64-A624-46E6-9832-4F59C5FDDB07}.Internal9|Any CPU.Build.0 = Internal9|Any CPU
+ {34F25C64-A624-46E6-9832-4F59C5FDDB07}.Internal9|Mixed Platforms.ActiveCfg = Internal9|Any CPU
+ {34F25C64-A624-46E6-9832-4F59C5FDDB07}.Internal9|Mixed Platforms.Build.0 = Internal9|Any CPU
+ {34F25C64-A624-46E6-9832-4F59C5FDDB07}.Internal9|Win32.ActiveCfg = Debug|Any CPU
+ {34F25C64-A624-46E6-9832-4F59C5FDDB07}.Internal9|x86.ActiveCfg = Debug|Any CPU
+ {34F25C64-A624-46E6-9832-4F59C5FDDB07}.Release|Any CPU.ActiveCfg = Debug|Any CPU
+ {34F25C64-A624-46E6-9832-4F59C5FDDB07}.Release|Any CPU.Build.0 = Debug|Any CPU
+ {34F25C64-A624-46E6-9832-4F59C5FDDB07}.Release|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {34F25C64-A624-46E6-9832-4F59C5FDDB07}.Release|Mixed Platforms.Build.0 = Debug|Any CPU
+ {34F25C64-A624-46E6-9832-4F59C5FDDB07}.Release|Win32.ActiveCfg = Debug|Any CPU
+ {34F25C64-A624-46E6-9832-4F59C5FDDB07}.Release|x86.ActiveCfg = Debug|Any CPU
+ {44D764EF-D471-4981-B774-B8B532EDB690}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {44D764EF-D471-4981-B774-B8B532EDB690}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {44D764EF-D471-4981-B774-B8B532EDB690}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {44D764EF-D471-4981-B774-B8B532EDB690}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {44D764EF-D471-4981-B774-B8B532EDB690}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {44D764EF-D471-4981-B774-B8B532EDB690}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {44D764EF-D471-4981-B774-B8B532EDB690}.Devlab9|Any CPU.ActiveCfg = Devlab9|Any CPU
+ {44D764EF-D471-4981-B774-B8B532EDB690}.Devlab9|Any CPU.Build.0 = Devlab9|Any CPU
+ {44D764EF-D471-4981-B774-B8B532EDB690}.Devlab9|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {44D764EF-D471-4981-B774-B8B532EDB690}.Devlab9|Mixed Platforms.Build.0 = Debug|Any CPU
+ {44D764EF-D471-4981-B774-B8B532EDB690}.Devlab9|Win32.ActiveCfg = Debug|Any CPU
+ {44D764EF-D471-4981-B774-B8B532EDB690}.Devlab9|x86.ActiveCfg = Debug|Any CPU
+ {44D764EF-D471-4981-B774-B8B532EDB690}.Internal9|Any CPU.ActiveCfg = Internal9|Any CPU
+ {44D764EF-D471-4981-B774-B8B532EDB690}.Internal9|Any CPU.Build.0 = Internal9|Any CPU
+ {44D764EF-D471-4981-B774-B8B532EDB690}.Internal9|Mixed Platforms.ActiveCfg = Internal9|Any CPU
+ {44D764EF-D471-4981-B774-B8B532EDB690}.Internal9|Mixed Platforms.Build.0 = Internal9|Any CPU
+ {44D764EF-D471-4981-B774-B8B532EDB690}.Internal9|Win32.ActiveCfg = Debug|Any CPU
+ {44D764EF-D471-4981-B774-B8B532EDB690}.Internal9|x86.ActiveCfg = Debug|Any CPU
+ {44D764EF-D471-4981-B774-B8B532EDB690}.Release|Any CPU.ActiveCfg = Debug|Any CPU
+ {44D764EF-D471-4981-B774-B8B532EDB690}.Release|Any CPU.Build.0 = Debug|Any CPU
+ {44D764EF-D471-4981-B774-B8B532EDB690}.Release|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {44D764EF-D471-4981-B774-B8B532EDB690}.Release|Mixed Platforms.Build.0 = Debug|Any CPU
+ {44D764EF-D471-4981-B774-B8B532EDB690}.Release|Win32.ActiveCfg = Debug|Any CPU
+ {44D764EF-D471-4981-B774-B8B532EDB690}.Release|x86.ActiveCfg = Debug|Any CPU
+ {76F807DC-76BC-413E-95FD-A7E661DB1B33}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {76F807DC-76BC-413E-95FD-A7E661DB1B33}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {76F807DC-76BC-413E-95FD-A7E661DB1B33}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {76F807DC-76BC-413E-95FD-A7E661DB1B33}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {76F807DC-76BC-413E-95FD-A7E661DB1B33}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {76F807DC-76BC-413E-95FD-A7E661DB1B33}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {76F807DC-76BC-413E-95FD-A7E661DB1B33}.Devlab9|Any CPU.ActiveCfg = Devlab9|Any CPU
+ {76F807DC-76BC-413E-95FD-A7E661DB1B33}.Devlab9|Any CPU.Build.0 = Devlab9|Any CPU
+ {76F807DC-76BC-413E-95FD-A7E661DB1B33}.Devlab9|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {76F807DC-76BC-413E-95FD-A7E661DB1B33}.Devlab9|Mixed Platforms.Build.0 = Debug|Any CPU
+ {76F807DC-76BC-413E-95FD-A7E661DB1B33}.Devlab9|Win32.ActiveCfg = Debug|Any CPU
+ {76F807DC-76BC-413E-95FD-A7E661DB1B33}.Devlab9|x86.ActiveCfg = Debug|Any CPU
+ {76F807DC-76BC-413E-95FD-A7E661DB1B33}.Internal9|Any CPU.ActiveCfg = Internal9|Any CPU
+ {76F807DC-76BC-413E-95FD-A7E661DB1B33}.Internal9|Any CPU.Build.0 = Internal9|Any CPU
+ {76F807DC-76BC-413E-95FD-A7E661DB1B33}.Internal9|Mixed Platforms.ActiveCfg = Internal9|Any CPU
+ {76F807DC-76BC-413E-95FD-A7E661DB1B33}.Internal9|Mixed Platforms.Build.0 = Internal9|Any CPU
+ {76F807DC-76BC-413E-95FD-A7E661DB1B33}.Internal9|Win32.ActiveCfg = Debug|Any CPU
+ {76F807DC-76BC-413E-95FD-A7E661DB1B33}.Internal9|x86.ActiveCfg = Debug|Any CPU
+ {76F807DC-76BC-413E-95FD-A7E661DB1B33}.Release|Any CPU.ActiveCfg = Debug|Any CPU
+ {76F807DC-76BC-413E-95FD-A7E661DB1B33}.Release|Any CPU.Build.0 = Debug|Any CPU
+ {76F807DC-76BC-413E-95FD-A7E661DB1B33}.Release|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {76F807DC-76BC-413E-95FD-A7E661DB1B33}.Release|Mixed Platforms.Build.0 = Debug|Any CPU
+ {76F807DC-76BC-413E-95FD-A7E661DB1B33}.Release|Win32.ActiveCfg = Debug|Any CPU
+ {76F807DC-76BC-413E-95FD-A7E661DB1B33}.Release|x86.ActiveCfg = Debug|Any CPU
+ {0C2F5C12-CFB2-485A-900E-14547F93CE9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {0C2F5C12-CFB2-485A-900E-14547F93CE9E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {0C2F5C12-CFB2-485A-900E-14547F93CE9E}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {0C2F5C12-CFB2-485A-900E-14547F93CE9E}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {0C2F5C12-CFB2-485A-900E-14547F93CE9E}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {0C2F5C12-CFB2-485A-900E-14547F93CE9E}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {0C2F5C12-CFB2-485A-900E-14547F93CE9E}.Devlab9|Any CPU.ActiveCfg = Devlab9|Any CPU
+ {0C2F5C12-CFB2-485A-900E-14547F93CE9E}.Devlab9|Any CPU.Build.0 = Devlab9|Any CPU
+ {0C2F5C12-CFB2-485A-900E-14547F93CE9E}.Devlab9|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {0C2F5C12-CFB2-485A-900E-14547F93CE9E}.Devlab9|Mixed Platforms.Build.0 = Debug|Any CPU
+ {0C2F5C12-CFB2-485A-900E-14547F93CE9E}.Devlab9|Win32.ActiveCfg = Debug|Any CPU
+ {0C2F5C12-CFB2-485A-900E-14547F93CE9E}.Devlab9|x86.ActiveCfg = Debug|Any CPU
+ {0C2F5C12-CFB2-485A-900E-14547F93CE9E}.Internal9|Any CPU.ActiveCfg = Internal9|Any CPU
+ {0C2F5C12-CFB2-485A-900E-14547F93CE9E}.Internal9|Any CPU.Build.0 = Internal9|Any CPU
+ {0C2F5C12-CFB2-485A-900E-14547F93CE9E}.Internal9|Mixed Platforms.ActiveCfg = Internal9|Any CPU
+ {0C2F5C12-CFB2-485A-900E-14547F93CE9E}.Internal9|Mixed Platforms.Build.0 = Internal9|Any CPU
+ {0C2F5C12-CFB2-485A-900E-14547F93CE9E}.Internal9|Win32.ActiveCfg = Debug|Any CPU
+ {0C2F5C12-CFB2-485A-900E-14547F93CE9E}.Internal9|x86.ActiveCfg = Debug|Any CPU
+ {0C2F5C12-CFB2-485A-900E-14547F93CE9E}.Release|Any CPU.ActiveCfg = Debug|Any CPU
+ {0C2F5C12-CFB2-485A-900E-14547F93CE9E}.Release|Any CPU.Build.0 = Debug|Any CPU
+ {0C2F5C12-CFB2-485A-900E-14547F93CE9E}.Release|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {0C2F5C12-CFB2-485A-900E-14547F93CE9E}.Release|Mixed Platforms.Build.0 = Debug|Any CPU
+ {0C2F5C12-CFB2-485A-900E-14547F93CE9E}.Release|Win32.ActiveCfg = Debug|Any CPU
+ {0C2F5C12-CFB2-485A-900E-14547F93CE9E}.Release|x86.ActiveCfg = Debug|Any CPU
+ {846689C9-C6E5-4576-BC63-F4A8762C0322}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {846689C9-C6E5-4576-BC63-F4A8762C0322}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {846689C9-C6E5-4576-BC63-F4A8762C0322}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {846689C9-C6E5-4576-BC63-F4A8762C0322}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {846689C9-C6E5-4576-BC63-F4A8762C0322}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {846689C9-C6E5-4576-BC63-F4A8762C0322}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {846689C9-C6E5-4576-BC63-F4A8762C0322}.Devlab9|Any CPU.ActiveCfg = Devlab9|Any CPU
+ {846689C9-C6E5-4576-BC63-F4A8762C0322}.Devlab9|Any CPU.Build.0 = Devlab9|Any CPU
+ {846689C9-C6E5-4576-BC63-F4A8762C0322}.Devlab9|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {846689C9-C6E5-4576-BC63-F4A8762C0322}.Devlab9|Mixed Platforms.Build.0 = Debug|Any CPU
+ {846689C9-C6E5-4576-BC63-F4A8762C0322}.Devlab9|Win32.ActiveCfg = Debug|Any CPU
+ {846689C9-C6E5-4576-BC63-F4A8762C0322}.Devlab9|x86.ActiveCfg = Debug|Any CPU
+ {846689C9-C6E5-4576-BC63-F4A8762C0322}.Internal9|Any CPU.ActiveCfg = Internal9|Any CPU
+ {846689C9-C6E5-4576-BC63-F4A8762C0322}.Internal9|Any CPU.Build.0 = Internal9|Any CPU
+ {846689C9-C6E5-4576-BC63-F4A8762C0322}.Internal9|Mixed Platforms.ActiveCfg = Internal9|Any CPU
+ {846689C9-C6E5-4576-BC63-F4A8762C0322}.Internal9|Mixed Platforms.Build.0 = Internal9|Any CPU
+ {846689C9-C6E5-4576-BC63-F4A8762C0322}.Internal9|Win32.ActiveCfg = Debug|Any CPU
+ {846689C9-C6E5-4576-BC63-F4A8762C0322}.Internal9|x86.ActiveCfg = Debug|Any CPU
+ {846689C9-C6E5-4576-BC63-F4A8762C0322}.Release|Any CPU.ActiveCfg = Debug|Any CPU
+ {846689C9-C6E5-4576-BC63-F4A8762C0322}.Release|Any CPU.Build.0 = Debug|Any CPU
+ {846689C9-C6E5-4576-BC63-F4A8762C0322}.Release|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {846689C9-C6E5-4576-BC63-F4A8762C0322}.Release|Mixed Platforms.Build.0 = Debug|Any CPU
+ {846689C9-C6E5-4576-BC63-F4A8762C0322}.Release|Win32.ActiveCfg = Debug|Any CPU
+ {846689C9-C6E5-4576-BC63-F4A8762C0322}.Release|x86.ActiveCfg = Debug|Any CPU
+ {20C549CD-6524-4FB5-AD58-AAA939C75CEF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {20C549CD-6524-4FB5-AD58-AAA939C75CEF}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {20C549CD-6524-4FB5-AD58-AAA939C75CEF}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {20C549CD-6524-4FB5-AD58-AAA939C75CEF}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {20C549CD-6524-4FB5-AD58-AAA939C75CEF}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {20C549CD-6524-4FB5-AD58-AAA939C75CEF}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {20C549CD-6524-4FB5-AD58-AAA939C75CEF}.Devlab9|Any CPU.ActiveCfg = Devlab9|Any CPU
+ {20C549CD-6524-4FB5-AD58-AAA939C75CEF}.Devlab9|Any CPU.Build.0 = Devlab9|Any CPU
+ {20C549CD-6524-4FB5-AD58-AAA939C75CEF}.Devlab9|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {20C549CD-6524-4FB5-AD58-AAA939C75CEF}.Devlab9|Mixed Platforms.Build.0 = Debug|Any CPU
+ {20C549CD-6524-4FB5-AD58-AAA939C75CEF}.Devlab9|Win32.ActiveCfg = Debug|Any CPU
+ {20C549CD-6524-4FB5-AD58-AAA939C75CEF}.Devlab9|x86.ActiveCfg = Debug|Any CPU
+ {20C549CD-6524-4FB5-AD58-AAA939C75CEF}.Internal9|Any CPU.ActiveCfg = Internal9|Any CPU
+ {20C549CD-6524-4FB5-AD58-AAA939C75CEF}.Internal9|Any CPU.Build.0 = Internal9|Any CPU
+ {20C549CD-6524-4FB5-AD58-AAA939C75CEF}.Internal9|Mixed Platforms.ActiveCfg = Internal9|Any CPU
+ {20C549CD-6524-4FB5-AD58-AAA939C75CEF}.Internal9|Mixed Platforms.Build.0 = Internal9|Any CPU
+ {20C549CD-6524-4FB5-AD58-AAA939C75CEF}.Internal9|Win32.ActiveCfg = Debug|Any CPU
+ {20C549CD-6524-4FB5-AD58-AAA939C75CEF}.Internal9|x86.ActiveCfg = Debug|Any CPU
+ {20C549CD-6524-4FB5-AD58-AAA939C75CEF}.Release|Any CPU.ActiveCfg = Debug|Any CPU
+ {20C549CD-6524-4FB5-AD58-AAA939C75CEF}.Release|Any CPU.Build.0 = Debug|Any CPU
+ {20C549CD-6524-4FB5-AD58-AAA939C75CEF}.Release|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {20C549CD-6524-4FB5-AD58-AAA939C75CEF}.Release|Mixed Platforms.Build.0 = Debug|Any CPU
+ {20C549CD-6524-4FB5-AD58-AAA939C75CEF}.Release|Win32.ActiveCfg = Debug|Any CPU
+ {20C549CD-6524-4FB5-AD58-AAA939C75CEF}.Release|x86.ActiveCfg = Debug|Any CPU
+ {4C272996-FE22-4700-BA18-0A2F482FB857}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {4C272996-FE22-4700-BA18-0A2F482FB857}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {4C272996-FE22-4700-BA18-0A2F482FB857}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {4C272996-FE22-4700-BA18-0A2F482FB857}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {4C272996-FE22-4700-BA18-0A2F482FB857}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {4C272996-FE22-4700-BA18-0A2F482FB857}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {4C272996-FE22-4700-BA18-0A2F482FB857}.Devlab9|Any CPU.ActiveCfg = Release|Any CPU
+ {4C272996-FE22-4700-BA18-0A2F482FB857}.Devlab9|Any CPU.Build.0 = Release|Any CPU
+ {4C272996-FE22-4700-BA18-0A2F482FB857}.Devlab9|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {4C272996-FE22-4700-BA18-0A2F482FB857}.Devlab9|Mixed Platforms.Build.0 = Debug|Any CPU
+ {4C272996-FE22-4700-BA18-0A2F482FB857}.Devlab9|Win32.ActiveCfg = Debug|Any CPU
+ {4C272996-FE22-4700-BA18-0A2F482FB857}.Devlab9|x86.ActiveCfg = Debug|Any CPU
+ {4C272996-FE22-4700-BA18-0A2F482FB857}.Internal9|Any CPU.ActiveCfg = Release|Any CPU
+ {4C272996-FE22-4700-BA18-0A2F482FB857}.Internal9|Any CPU.Build.0 = Release|Any CPU
+ {4C272996-FE22-4700-BA18-0A2F482FB857}.Internal9|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {4C272996-FE22-4700-BA18-0A2F482FB857}.Internal9|Mixed Platforms.Build.0 = Release|Any CPU
+ {4C272996-FE22-4700-BA18-0A2F482FB857}.Internal9|Win32.ActiveCfg = Release|Any CPU
+ {4C272996-FE22-4700-BA18-0A2F482FB857}.Internal9|x86.ActiveCfg = Release|Any CPU
+ {4C272996-FE22-4700-BA18-0A2F482FB857}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {4C272996-FE22-4700-BA18-0A2F482FB857}.Release|Any CPU.Build.0 = Release|Any CPU
+ {4C272996-FE22-4700-BA18-0A2F482FB857}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {4C272996-FE22-4700-BA18-0A2F482FB857}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {4C272996-FE22-4700-BA18-0A2F482FB857}.Release|Win32.ActiveCfg = Release|Any CPU
+ {4C272996-FE22-4700-BA18-0A2F482FB857}.Release|x86.ActiveCfg = Release|Any CPU
+ {34BEDC68-AC8A-44F9-BF92-01ECAE6A28CC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {34BEDC68-AC8A-44F9-BF92-01ECAE6A28CC}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {34BEDC68-AC8A-44F9-BF92-01ECAE6A28CC}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {34BEDC68-AC8A-44F9-BF92-01ECAE6A28CC}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {34BEDC68-AC8A-44F9-BF92-01ECAE6A28CC}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {34BEDC68-AC8A-44F9-BF92-01ECAE6A28CC}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {34BEDC68-AC8A-44F9-BF92-01ECAE6A28CC}.Devlab9|Any CPU.ActiveCfg = Debug|Any CPU
+ {34BEDC68-AC8A-44F9-BF92-01ECAE6A28CC}.Devlab9|Any CPU.Build.0 = Debug|Any CPU
+ {34BEDC68-AC8A-44F9-BF92-01ECAE6A28CC}.Devlab9|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {34BEDC68-AC8A-44F9-BF92-01ECAE6A28CC}.Devlab9|Mixed Platforms.Build.0 = Debug|Any CPU
+ {34BEDC68-AC8A-44F9-BF92-01ECAE6A28CC}.Devlab9|Win32.ActiveCfg = Debug|Any CPU
+ {34BEDC68-AC8A-44F9-BF92-01ECAE6A28CC}.Devlab9|x86.ActiveCfg = Debug|Any CPU
+ {34BEDC68-AC8A-44F9-BF92-01ECAE6A28CC}.Internal9|Any CPU.ActiveCfg = Release|Any CPU
+ {34BEDC68-AC8A-44F9-BF92-01ECAE6A28CC}.Internal9|Any CPU.Build.0 = Release|Any CPU
+ {34BEDC68-AC8A-44F9-BF92-01ECAE6A28CC}.Internal9|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {34BEDC68-AC8A-44F9-BF92-01ECAE6A28CC}.Internal9|Mixed Platforms.Build.0 = Release|Any CPU
+ {34BEDC68-AC8A-44F9-BF92-01ECAE6A28CC}.Internal9|Win32.ActiveCfg = Release|Any CPU
+ {34BEDC68-AC8A-44F9-BF92-01ECAE6A28CC}.Internal9|x86.ActiveCfg = Release|Any CPU
+ {34BEDC68-AC8A-44F9-BF92-01ECAE6A28CC}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {34BEDC68-AC8A-44F9-BF92-01ECAE6A28CC}.Release|Any CPU.Build.0 = Release|Any CPU
+ {34BEDC68-AC8A-44F9-BF92-01ECAE6A28CC}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {34BEDC68-AC8A-44F9-BF92-01ECAE6A28CC}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {34BEDC68-AC8A-44F9-BF92-01ECAE6A28CC}.Release|Win32.ActiveCfg = Release|Any CPU
+ {34BEDC68-AC8A-44F9-BF92-01ECAE6A28CC}.Release|x86.ActiveCfg = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {29E1DFE9-D0A9-4AAB-B876-10BBF747C293} = {5C718DA9-A4F2-4F73-B095-B2E180033C15}
+ {D45E4F81-3252-4000-9818-F8D018895B5B} = {5C718DA9-A4F2-4F73-B095-B2E180033C15}
+ {2C10FDB2-966D-4A14-B18D-385FDFA1746A} = {5C718DA9-A4F2-4F73-B095-B2E180033C15}
+ {9D404D0C-0921-4ADD-BC22-A14AAE2CA7E2} = {7CD8B829-346E-4FA0-ADDD-87152DDC5DDE}
+ {4695B865-1F0F-45DD-96CF-FDF999A813BD} = {5C718DA9-A4F2-4F73-B095-B2E180033C15}
+ {04811420-E4EC-4E3D-A974-8A43FAF724C8} = {5C718DA9-A4F2-4F73-B095-B2E180033C15}
+ {8A669480-0FD3-453A-823A-E82CFAE7558C} = {5C718DA9-A4F2-4F73-B095-B2E180033C15}
+ {0E7A10F3-10E2-40CB-A47B-234615C4719B} = {5C718DA9-A4F2-4F73-B095-B2E180033C15}
+ {202E0819-A63F-4BE1-9314-13306C4C9C96} = {5C718DA9-A4F2-4F73-B095-B2E180033C15}
+ {9FA6D0C7-6B7B-4090-818E-29DEA3C295AB} = {5C718DA9-A4F2-4F73-B095-B2E180033C15}
+ {560BAEE6-D01B-4714-92EF-798EEBCCF2DB} = {5C718DA9-A4F2-4F73-B095-B2E180033C15}
+ {A09A280B-E5CE-4F5B-8081-163944392804} = {5C718DA9-A4F2-4F73-B095-B2E180033C15}
+ {C719D602-0573-4E5A-AAFB-6DFF2106EEE6} = {5C718DA9-A4F2-4F73-B095-B2E180033C15}
+ {87CFEEDB-BF05-455C-A14D-51DCB3FE9C65} = {5C718DA9-A4F2-4F73-B095-B2E180033C15}
+ {EF8C241A-7A60-4AA4-9E4B-2752472A96EF} = {5C718DA9-A4F2-4F73-B095-B2E180033C15}
+ {650CD908-450D-4B70-9A68-590C7A2AC32B} = {5C718DA9-A4F2-4F73-B095-B2E180033C15}
+ {EB432A52-712F-478D-9A5B-81FF99DE6CBE} = {5C718DA9-A4F2-4F73-B095-B2E180033C15}
+ {1A4FF4FF-5CF0-4DF0-8581-80A4DDBBCB5A} = {5C718DA9-A4F2-4F73-B095-B2E180033C15}
+ {83E81339-DFB4-46A7-B0BF-21098B862AEF} = {5C718DA9-A4F2-4F73-B095-B2E180033C15}
+ {C5A99A99-96B4-42D2-ABD0-1AB546CF4E12} = {5C718DA9-A4F2-4F73-B095-B2E180033C15}
+ {DDCFABF7-69E9-4B33-9F0E-A5661F960111} = {5C718DA9-A4F2-4F73-B095-B2E180033C15}
+ {1926417C-C3E4-4137-B06A-90192A3AB682} = {5C718DA9-A4F2-4F73-B095-B2E180033C15}
+ {29106CFE-A683-4012-91E2-310552BE6258} = {5C718DA9-A4F2-4F73-B095-B2E180033C15}
+ {23B4C62D-6128-4619-92CB-C0CDE3271541} = {5C718DA9-A4F2-4F73-B095-B2E180033C15}
+ {34F25C64-A624-46E6-9832-4F59C5FDDB07} = {5C718DA9-A4F2-4F73-B095-B2E180033C15}
+ {44D764EF-D471-4981-B774-B8B532EDB690} = {5C718DA9-A4F2-4F73-B095-B2E180033C15}
+ {76F807DC-76BC-413E-95FD-A7E661DB1B33} = {5C718DA9-A4F2-4F73-B095-B2E180033C15}
+ {0C2F5C12-CFB2-485A-900E-14547F93CE9E} = {5C718DA9-A4F2-4F73-B095-B2E180033C15}
+ {846689C9-C6E5-4576-BC63-F4A8762C0322} = {5C718DA9-A4F2-4F73-B095-B2E180033C15}
+ {20C549CD-6524-4FB5-AD58-AAA939C75CEF} = {5C718DA9-A4F2-4F73-B095-B2E180033C15}
+ {4C272996-FE22-4700-BA18-0A2F482FB857} = {5C718DA9-A4F2-4F73-B095-B2E180033C15}
+ {34BEDC68-AC8A-44F9-BF92-01ECAE6A28CC} = {5C718DA9-A4F2-4F73-B095-B2E180033C15}
+ EndGlobalSection
+ GlobalSection(TestCaseManagementSettings) = postSolution
+ CategoryFile = CodeContracts10.vsmdi
+ EndGlobalSection
+EndGlobal
diff --git a/Microsoft.Research/Clousot.Cache/Clousot.Cache.csproj b/Microsoft.Research/Clousot.Cache/Clousot.Cache.csproj
index 86cd2c65..4a5251a4 100644
--- a/Microsoft.Research/Clousot.Cache/Clousot.Cache.csproj
+++ b/Microsoft.Research/Clousot.Cache/Clousot.Cache.csproj
@@ -116,6 +116,7 @@
+
diff --git a/Microsoft.Research/Clousot.Cache/SQLCacheModel.cs b/Microsoft.Research/Clousot.Cache/SQLCacheModel.cs
index fe51eb17..1724f85c 100644
--- a/Microsoft.Research/Clousot.Cache/SQLCacheModel.cs
+++ b/Microsoft.Research/Clousot.Cache/SQLCacheModel.cs
@@ -16,6 +16,9 @@
using System;
using System.Collections.Generic;
+using System.Data.Common;
+using System.Data.Linq;
+using System.Globalization;
using System.Linq;
using System.Text;
using Microsoft.Research.CodeAnalysis.Caching.Models;
@@ -28,7 +31,7 @@
using System.Data.Entity.Migrations;
using System.Data.Entity.Infrastructure;
// Entityframework v5:
-#if EF5
+#if EF5
using System.Data.Objects;
#else
// Entity Framework v6
@@ -92,7 +95,7 @@ private void ObjectInvariant()
Contract.Invariant(cachename != null);
}
-
+
private bool isFresh;
private int nbWaitingChanges = 0;
const int MaxWaitingChanges = 500;
@@ -173,7 +176,7 @@ public Method MethodByHash(byte[] hash)
try
{
var query = base.Methods.Where(m => m.Hash.Equals(hash));
-
+
return query.FirstOrDefault();
}
catch (Exception e)
@@ -338,7 +341,8 @@ public bool IsValid
{
get
{
- try {
+ try
+ {
return base.Database != null
&& base.Database.Connection != null
&& base.Database.Connection.State != System.Data.ConnectionState.Broken;
@@ -411,7 +415,7 @@ private void FixupPendingChanges()
RemoveDuplicateAdds(objContext, method => this.MethodByHash(method.Hash));
}
- private void RemoveDuplicateAdds(ObjectContext objContext, Func getStored) where T:class
+ private void RemoveDuplicateAdds(ObjectContext objContext, Func getStored) where T : class
{
Contract.Requires(objContext != null);
Contract.Requires(getStored != null);
@@ -425,7 +429,8 @@ private void RemoveDuplicateAdds(ObjectContext objContext, Func getStore
foreach (var p in pendingAssemblyInfo)
{
Contract.Assume(p != null);
- if (getStored(p.Entity) != null) {
+ if (getStored(p.Entity) != null)
+ {
objContext.Detach(p.Entity);
}
}
@@ -476,7 +481,7 @@ private bool ValidMethodModel(Method methodModel, bool warn = false)
public void AddOrUpdate(Method methodModel)
{
- if (!ValidMethodModel(methodModel, warn:true)) return;
+ if (!ValidMethodModel(methodModel, warn: true)) return;
try
{
// don't use Migrations.AddOrUpdate method. It is really slow. Assume we can update (no cache hit)
@@ -510,23 +515,23 @@ public void AddOrUpdate(IdHashTimeToMethod idhash)
public void AddOrUpdate(Method method, AssemblyInfo assemblyInfo)
{
- if (!ValidMethodModel(method)) return;
- try
+ if (!ValidMethodModel(method)) return;
+ try
+ {
+ if (!method.Assemblies.AssumeNotNull()
+ .Where(a => a.AssemblyId == assemblyInfo.AssemblyId).AssumeNotNull()
+ .Any())
{
- if (!method.Assemblies.AssumeNotNull()
- .Where(a => a.AssemblyId == assemblyInfo.AssemblyId).AssumeNotNull()
- .Any())
- {
- method.Assemblies.Add(assemblyInfo);
- }
+ method.Assemblies.Add(assemblyInfo);
}
- catch (Exception e)
+ }
+ catch (Exception e)
+ {
+ if (this.trace)
{
- if (this.trace)
- {
- Console.WriteLine("[cache] SqlCacheModel: AddOrUpdate method assembly binding failed: {0}", e.Message);
- }
+ Console.WriteLine("[cache] SqlCacheModel: AddOrUpdate method assembly binding failed: {0}", e.Message);
}
+ }
}
public void AddOrUpdate(BaselineMethod baseline)
@@ -550,14 +555,41 @@ public void AddOrUpdate(BaselineMethod baseline)
Console.WriteLine("[cache] SqlCacheModel: AddOrUpdate baseline binding failed: {0}", e.Message);
}
}
-
- }
+ }
public string CacheName
{
get { return this.cachename; }
}
+
+ protected static void DetachDeletedDb(string connection)
+ {
+ // If anyone has manually deleted the cache file, it might be still registered with LocalDB.
+ // If this is the case, we can't create a new database and the user is stuck unless he knows the tricky internals of LocalDB and how to get rid of the registration.
+ // => If we use LocalDB and the file does not exist, we try to detach it.
+ try
+ {
+ var connectionString = new DbConnectionStringBuilder { ConnectionString = connection };
+ var fileName = (string)connectionString["AttachDbFileName"];
+ if (File.Exists(fileName))
+ return;
+
+ var catalog = (string)connectionString["Initial Catalog"];
+ var dataSource = (string)connectionString["Data Source"];
+
+ using (var master = new DataContext(string.Format(CultureInfo.InvariantCulture, @"Data Source={0};Initial Catalog=master;Integrated Security=True", dataSource)))
+ {
+ master.ExecuteCommand(@"exec sp_detach_db {0}", catalog);
+ }
+ }
+ catch
+ {
+ // Ignore any errors here, could be
+ // - not using LocalDB at all (any of the connection string parameters did not exist)
+ // - file was never registered (first time used) or already detached.
+ }
+ }
}
public class SqlCacheModelNoCreate : SQLCacheModel
@@ -567,8 +599,10 @@ static SqlCacheModelNoCreate()
Database.SetInitializer(null);
}
- public SqlCacheModelNoCreate(string connection, string cacheName, bool trace) : base(connection, cacheName, trace) {
- Contract.Requires(cacheName != null);
+ public SqlCacheModelNoCreate(string connection, string cacheName, bool trace)
+ : base(connection, cacheName, trace)
+ {
+ Contract.Requires(cacheName != null);
}
}
@@ -583,7 +617,8 @@ protected override void Seed(SqlCacheModelUseExisting context)
}
}
- static SqlCacheModelUseExisting() {
+ static SqlCacheModelUseExisting()
+ {
Database.SetInitializer(new Policy());
}
@@ -614,6 +649,8 @@ public SqlCacheModelClearExisting(string connection, string cachename, bool trac
: base(connection, cachename, trace)
{
Contract.Requires(cachename != null);
+
+ DetachDeletedDb(connection);
}
}
@@ -637,6 +674,8 @@ public SqlCacheModelDropOnModelChange(string connection, string cachename, bool
: base(connection, cachename, trace)
{
Contract.Requires(cachename != null);
+
+ DetachDeletedDb(connection);
}
}
diff --git a/Microsoft.Research/Contracts/Microsoft.VisualBasic.Contracts/Microsoft.VisualBasic10.vbproj b/Microsoft.Research/Contracts/Microsoft.VisualBasic.Contracts/Microsoft.VisualBasic10.vbproj
index 8bf150ab..bb6e20d1 100644
--- a/Microsoft.Research/Contracts/Microsoft.VisualBasic.Contracts/Microsoft.VisualBasic10.vbproj
+++ b/Microsoft.Research/Contracts/Microsoft.VisualBasic.Contracts/Microsoft.VisualBasic10.vbproj
@@ -14,7 +14,7 @@
Microsoft.VisualBasic
512
Build
- Windows
+ Empty
v4.0
diff --git a/Microsoft.Research/Contracts/MsCorlib/MsCorlib.Contracts10.csproj b/Microsoft.Research/Contracts/MsCorlib/MsCorlib.Contracts10.csproj
index 047c523c..8518d5d8 100644
--- a/Microsoft.Research/Contracts/MsCorlib/MsCorlib.Contracts10.csproj
+++ b/Microsoft.Research/Contracts/MsCorlib/MsCorlib.Contracts10.csproj
@@ -328,8 +328,11 @@
+
+
+
@@ -848,6 +851,7 @@ Include="System.Security.Principal.WindowsPrincipal.cs" /> -->
+
diff --git a/Microsoft.Research/Contracts/MsCorlib/System.Collections.Generic.ICollection.cs b/Microsoft.Research/Contracts/MsCorlib/System.Collections.Generic.ICollection.cs
index d327538a..8d58b42b 100644
--- a/Microsoft.Research/Contracts/MsCorlib/System.Collections.Generic.ICollection.cs
+++ b/Microsoft.Research/Contracts/MsCorlib/System.Collections.Generic.ICollection.cs
@@ -1,15 +1,15 @@
// CodeContracts
-//
+//
// Copyright (c) Microsoft Corporation
-//
-// All rights reserved.
-//
+//
+// All rights reserved.
+//
// MIT License
-//
+//
// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-//
+//
// The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-//
+//
// THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
using System;
@@ -126,58 +126,61 @@ abstract class ICollectionContract : ICollection
public int Count
{
- get {
+ get
+ {
Contract.Ensures(Contract.Result() >= 0);
- throw new global::System.NotImplementedException();
+ throw new NotImplementedException();
}
}
bool ICollection.IsReadOnly
{
- get { throw new global::System.NotImplementedException(); }
+ get { throw new NotImplementedException(); }
}
public void Add(T item)
{
//Contract.Requires(!@this.IsReadOnly);
// The Ensures below is tricky for wrappers. Needs quantified invariant in wrapper to prove wrapper correct
- // Forall(value => !m_backing.Contains(value) || this.Contains(value) )
- //Contract.Ensures(this.Contains(item));
- Contract.Ensures(this.Count >= Contract.OldValue(this.Count));
- throw new global::System.NotImplementedException();
+ // Forall(value => !m_backing.Contains(value) || this.Contains(value) )
+ //Contract.Ensures(this.Contains(item));
+ Contract.Ensures(Count >= Contract.OldValue(Count));
+
+ throw new NotImplementedException();
}
public void Clear()
{
//Contract.Requires(!@this.IsReadOnly);
- Contract.Ensures(this.Count == 0);
+ Contract.Ensures(Count == 0);
- throw new global::System.NotImplementedException();
+ throw new NotImplementedException();
}
public bool Contains(T item)
{
- Contract.Ensures(!Contract.Result() || this.Count > 0);
+ Contract.Ensures(!Contract.Result() || Count > 0);
- throw new global::System.NotImplementedException();
+ throw new NotImplementedException();
}
public void CopyTo(T[] array, int arrayIndex)
{
Contract.Requires(array != null);
Contract.Requires(arrayIndex >= 0);
- Contract.Requires(arrayIndex <= array.Length - this.Count);
+ Contract.Requires(arrayIndex <= array.Length - Count);
- throw new global::System.NotImplementedException();
+ throw new NotImplementedException();
}
public bool Remove(T item)
{
//Contract.Requires(!@this.IsReadOnly);
- Contract.Ensures(this.Count <= Contract.OldValue(this.Count));
- Contract.Ensures(!Contract.Result() || this.Count >= Contract.OldValue(this.Count - 1));
- throw new global::System.NotImplementedException();
+ Contract.Ensures(Count <= Contract.OldValue(Count));
+ Contract.Ensures(!Contract.Result() || Count >= Contract.OldValue(Count - 1));
+
+ throw new NotImplementedException();
}
#endregion
@@ -186,7 +189,7 @@ public bool Remove(T item)
IEnumerator IEnumerable.GetEnumerator()
{
- throw new global::System.NotImplementedException();
+ throw new NotImplementedException();
}
#endregion
@@ -195,7 +198,7 @@ IEnumerator IEnumerable.GetEnumerator()
IEnumerator IEnumerable.GetEnumerator()
{
- throw new global::System.NotImplementedException();
+ throw new NotImplementedException();
}
#endregion
diff --git a/Microsoft.Research/Contracts/MsCorlib/System.Collections.Generic.IDictionary.cs b/Microsoft.Research/Contracts/MsCorlib/System.Collections.Generic.IDictionary.cs
index 5516e182..f2abbf8f 100644
--- a/Microsoft.Research/Contracts/MsCorlib/System.Collections.Generic.IDictionary.cs
+++ b/Microsoft.Research/Contracts/MsCorlib/System.Collections.Generic.IDictionary.cs
@@ -1,15 +1,15 @@
// CodeContracts
-//
+//
// Copyright (c) Microsoft Corporation
-//
-// All rights reserved.
-//
+//
+// All rights reserved.
+//
// MIT License
-//
+//
// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-//
+//
// The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-//
+//
// THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
using System.Diagnostics.Contracts;
@@ -144,12 +144,12 @@ TValue this[TKey key]
[ContractClassFor(typeof(IDictionary<,>))]
abstract class IDictionaryContract : IDictionary
{
-
#region IDictionary Members
ICollection IDictionary.Keys
{
- get {
+ get
+ {
Contract.Ensures(Contract.Result>() != null);
throw new NotImplementedException();
}
@@ -157,7 +157,8 @@ ICollection IDictionary.Keys
ICollection IDictionary.Values
{
- get {
+ get
+ {
Contract.Ensures(Contract.Result>() != null);
throw new NotImplementedException();
}
@@ -167,12 +168,14 @@ TValue IDictionary.this[TKey key]
{
get
{
- // Contract.Requires(ContainsKey(key));
+ Contract.Requires(!ReferenceEquals(key, null));
+ // Contract.Requires(ContainsKey(key)); ==> can't require, it's impossible to get rid of "requires unproven: ContainsKey(key)"
throw new NotImplementedException();
}
set
{
- // Contract.Ensures(ContainsKey(key));
+ Contract.Requires(!ReferenceEquals(key, null));
+ //Contract.Ensures(ContainsKey(key));
//Contract.Ensures(old(ContainsKey(key)) ==> Count == old(Count));
//Contract.Ensures(!old(ContainsKey(key)) ==> Count == old(Count) + 1);
throw new NotImplementedException();
@@ -181,29 +184,32 @@ TValue IDictionary.this[TKey key]
void IDictionary.Add(TKey key, TValue value)
{
+ Contract.Requires(!ReferenceEquals(key, null));
+ // - correct, but probably too anoying to proof always. If you can't assume that key does not exist, you would call "this[key] = value".
// Contract.Requires(!ContainsKey(key));
//modifies this.*;
- //Contract.Ensures(ContainsKey(key));
+ // Contract.Ensures(ContainsKey(key)); ==> is of no use, CC would not use this.
}
- bool IDictionary.ContainsKey(TKey key)
+ public bool ContainsKey(TKey key)
{
- var @this = (IDictionary)this;
- Contract.Ensures(!Contract.Result() || @this.Count > 0);
+ Contract.Requires(!ReferenceEquals(key, null));
+ Contract.Ensures(!Contract.Result() || (Count > 0));
throw new NotImplementedException();
}
bool IDictionary.Remove(TKey key)
{
- // Contract.Ensures(!Contract.Result() || Contract.OldValue(ContainsKey(key)) && !ContainsKey(key));
+ Contract.Requires(!ReferenceEquals(key, null));
+ // Contract.Ensures(!Contract.Result() || Contract.OldValue(ContainsKey(key)) && !ContainsKey(key)); ==> is of no use, CC would not use this.
throw new NotImplementedException();
}
bool IDictionary.TryGetValue(TKey key, out TValue value)
{
- var @this = (IDictionary)this;
- Contract.Ensures(Contract.Result() == @this.ContainsKey(key));
+ Contract.Requires(!ReferenceEquals(key, null));
+ Contract.Ensures(Contract.Result() == ContainsKey(key));
throw new NotImplementedException();
}
@@ -211,7 +217,7 @@ bool IDictionary.TryGetValue(TKey key, out TValue value)
#region ICollection> Members
- int ICollection>.Count
+ public int Count
{
get { throw new NotImplementedException(); }
}
diff --git a/Microsoft.Research/Contracts/MsCorlib/System.Collections.ObjectModel.Collection.cs b/Microsoft.Research/Contracts/MsCorlib/System.Collections.ObjectModel.Collection.cs
new file mode 100644
index 00000000..09acfb6f
--- /dev/null
+++ b/Microsoft.Research/Contracts/MsCorlib/System.Collections.ObjectModel.Collection.cs
@@ -0,0 +1,394 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Diagnostics.Contracts;
+using System.Reflection;
+using System.Runtime;
+using System.Runtime.InteropServices;
+
+namespace System.Collections.ObjectModel
+{
+ // Summary:
+ // Provides the base class for a generic collection.
+ //
+ // Type parameters:
+ // T:
+ // The type of elements in the collection.
+ public class Collection : IList, ICollection, IEnumerable, IList, ICollection, IEnumerable
+ {
+ // Summary:
+ // Initializes a new instance of the System.Collections.ObjectModel.Collection
+ // class that is empty.
+ public Collection()
+ {
+ }
+
+ //
+ // Summary:
+ // Initializes a new instance of the System.Collections.ObjectModel.Collection
+ // class as a wrapper for the specified list.
+ //
+ // Parameters:
+ // list:
+ // The list that is wrapped by the new collection.
+ //
+ // Exceptions:
+ // System.ArgumentNullException:
+ // list is null.
+ public Collection(IList list)
+ {
+ Contract.Requires(list != null);
+ }
+
+ // Summary:
+ // Gets the number of elements actually contained in the System.Collections.ObjectModel.Collection.
+ //
+ // Returns:
+ // The number of elements actually contained in the System.Collections.ObjectModel.Collection.
+ public int Count
+ {
+ get
+ {
+ return 0;
+ }
+ }
+
+ bool ICollection.IsSynchronized
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ object ICollection.SyncRoot
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ void ICollection.CopyTo(Array array, int index)
+ {
+ throw new NotImplementedException();
+ }
+
+ bool IList.IsFixedSize
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ bool IList.IsReadOnly
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ object IList.this[int index]
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ set
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ bool ICollection.IsReadOnly
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ //
+ // Summary:
+ // Gets a System.Collections.Generic.IList wrapper around the System.Collections.ObjectModel.Collection.
+ //
+ // Returns:
+ // A System.Collections.Generic.IList wrapper around the System.Collections.ObjectModel.Collection.
+ protected IList Items
+ {
+ get
+ {
+ Contract.Ensures(Contract.Result>() != null);
+ return null;
+ }
+ }
+
+ // Summary:
+ // Gets or sets the element at the specified index.
+ //
+ // Parameters:
+ // index:
+ // The zero-based index of the element to get or set.
+ //
+ // Returns:
+ // The element at the specified index.
+ //
+ // Exceptions:
+ // System.ArgumentOutOfRangeException:
+ // index is less than zero.-or-index is equal to or greater than System.Collections.ObjectModel.Collection.Count.
+ public T this[int index] {
+ get
+ {
+ return default(T);
+ }
+ set
+ {
+ }
+ }
+
+ // Summary:
+ // Adds an object to the end of the System.Collections.ObjectModel.Collection.
+ //
+ // Parameters:
+ // item:
+ // The object to be added to the end of the System.Collections.ObjectModel.Collection.
+ // The value can be null for reference types.
+ public void Add(T item)
+ {
+
+ }
+ //
+ // Summary:
+ // Removes all elements from the System.Collections.ObjectModel.Collection.
+
+ int IList.Add(object value)
+ {
+ throw new NotImplementedException();
+ }
+
+ public void Clear()
+ {
+
+ }
+
+ bool IList.Contains(object value)
+ {
+ throw new NotImplementedException();
+ }
+
+ int IList.IndexOf(object value)
+ {
+ throw new NotImplementedException();
+ }
+
+ void IList.Insert(int index, object value)
+ {
+ throw new NotImplementedException();
+ }
+
+ void IList.Remove(object value)
+ {
+ throw new NotImplementedException();
+ }
+
+ //
+ // Summary:
+ // Removes all elements from the System.Collections.ObjectModel.Collection.
+ protected virtual void ClearItems()
+ {
+
+ }
+ //
+ // Summary:
+ // Determines whether an element is in the System.Collections.ObjectModel.Collection.
+ //
+ // Parameters:
+ // item:
+ // The object to locate in the System.Collections.ObjectModel.Collection.
+ // The value can be null for reference types.
+ //
+ // Returns:
+ // true if item is found in the System.Collections.ObjectModel.Collection;
+ // otherwise, false.
+ public bool Contains(T item)
+ {
+ return false;
+ }
+ //
+ // Summary:
+ // Copies the entire System.Collections.ObjectModel.Collection to a compatible
+ // one-dimensional System.Array, starting at the specified index of the target
+ // array.
+ //
+ // Parameters:
+ // array:
+ // The one-dimensional System.Array that is the destination of the elements
+ // copied from System.Collections.ObjectModel.Collection. The System.Array
+ // must have zero-based indexing.
+ //
+ // index:
+ // The zero-based index in array at which copying begins.
+ //
+ // Exceptions:
+ // System.ArgumentNullException:
+ // array is null.
+ //
+ // System.ArgumentOutOfRangeException:
+ // index is less than zero.
+ //
+ // System.ArgumentException:
+ // The number of elements in the source System.Collections.ObjectModel.Collection
+ // is greater than the available space from index to the end of the destination
+ // array.
+ public void CopyTo(T[] array, int index)
+ {
+
+ }
+ //
+ // Summary:
+ // Returns an enumerator that iterates through the System.Collections.ObjectModel.Collection.
+ //
+ // Returns:
+ // An System.Collections.Generic.IEnumerator for the System.Collections.ObjectModel.Collection.
+ public IEnumerator GetEnumerator()
+ {
+ return null;
+ }
+
+ [ContractModel]
+ public object[] Model
+ {
+ [ContractRuntimeIgnored]
+ get
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ //
+ // Summary:
+ // Searches for the specified object and returns the zero-based index of the
+ // first occurrence within the entire System.Collections.ObjectModel.Collection.
+ //
+ // Parameters:
+ // item:
+ // The object to locate in the System.Collections.Generic.List. The value
+ // can be null for reference types.
+ //
+ // Returns:
+ // The zero-based index of the first occurrence of item within the entire System.Collections.ObjectModel.Collection,
+ // if found; otherwise, -1.
+ public int IndexOf(T item)
+ {
+ return 0;
+ }
+ //
+ // Summary:
+ // Inserts an element into the System.Collections.ObjectModel.Collection
+ // at the specified index.
+ //
+ // Parameters:
+ // index:
+ // The zero-based index at which item should be inserted.
+ //
+ // item:
+ // The object to insert. The value can be null for reference types.
+ //
+ // Exceptions:
+ // System.ArgumentOutOfRangeException:
+ // index is less than zero.-or-index is greater than System.Collections.ObjectModel.Collection.Count.
+ public void Insert(int index, T item)
+ {
+
+ }
+ //
+ // Summary:
+ // Inserts an element into the System.Collections.ObjectModel.Collection
+ // at the specified index.
+ //
+ // Parameters:
+ // index:
+ // The zero-based index at which item should be inserted.
+ //
+ // item:
+ // The object to insert. The value can be null for reference types.
+ //
+ // Exceptions:
+ // System.ArgumentOutOfRangeException:
+ // index is less than zero.-or-index is greater than System.Collections.ObjectModel.Collection.Count.
+ protected virtual void InsertItem(int index, T item)
+ {
+
+ }
+ //
+ // Summary:
+ // Removes the first occurrence of a specific object from the System.Collections.ObjectModel.Collection.
+ //
+ // Parameters:
+ // item:
+ // The object to remove from the System.Collections.ObjectModel.Collection.
+ // The value can be null for reference types.
+ //
+ // Returns:
+ // true if item is successfully removed; otherwise, false. This method also
+ // returns false if item was not found in the original System.Collections.ObjectModel.Collection.
+ public bool Remove(T item)
+ {
+ return false;
+ }
+ //
+ // Summary:
+ // Removes the element at the specified index of the System.Collections.ObjectModel.Collection.
+ //
+ // Parameters:
+ // index:
+ // The zero-based index of the element to remove.
+ //
+ // Exceptions:
+ // System.ArgumentOutOfRangeException:
+ // index is less than zero.-or-index is equal to or greater than System.Collections.ObjectModel.Collection.Count.
+ public void RemoveAt(int index) { }
+ //
+ // Summary:
+ // Removes the element at the specified index of the System.Collections.ObjectModel.Collection.
+ //
+ // Parameters:
+ // index:
+ // The zero-based index of the element to remove.
+ //
+ // Exceptions:
+ // System.ArgumentOutOfRangeException:
+ // index is less than zero.-or-index is equal to or greater than System.Collections.ObjectModel.Collection.Count.
+ protected virtual void RemoveItem(int index)
+ {
+
+ }
+ //
+ // Summary:
+ // Replaces the element at the specified index.
+ //
+ // Parameters:
+ // index:
+ // The zero-based index of the element to replace.
+ //
+ // item:
+ // The new value for the element at the specified index. The value can be null
+ // for reference types.
+ //
+ // Exceptions:
+ // System.ArgumentOutOfRangeException:
+ // index is less than zero.-or-index is greater than System.Collections.ObjectModel.Collection.Count.
+ protected virtual void SetItem(int index, T item)
+ {
+
+ }
+
+ IEnumerator IEnumerable.GetEnumerator()
+ {
+ return GetEnumerator();
+ }
+ }
+}
diff --git a/Microsoft.Research/Contracts/MsCorlib/System.Globalization.CalendarWeekRule.cs b/Microsoft.Research/Contracts/MsCorlib/System.Globalization.CalendarWeekRule.cs
index debbe40b..a4dc9f5b 100644
--- a/Microsoft.Research/Contracts/MsCorlib/System.Globalization.CalendarWeekRule.cs
+++ b/Microsoft.Research/Contracts/MsCorlib/System.Globalization.CalendarWeekRule.cs
@@ -1,15 +1,15 @@
// CodeContracts
-//
+//
// Copyright (c) Microsoft Corporation
-//
-// All rights reserved.
-//
+//
+// All rights reserved.
+//
// MIT License
-//
+//
// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-//
+//
// The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-//
+//
// THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
using System;
@@ -22,8 +22,6 @@
namespace System.Globalization {
// Summary:
// Defines different rules for determining the first week of the year.
- [Serializable]
- [ComVisible(true)]
public enum CalendarWeekRule {
// Summary:
// Indicates that the first week of the year starts on the first day of the
diff --git a/Microsoft.Research/Contracts/MsCorlib/System.Globalization.CultureInfo.cs b/Microsoft.Research/Contracts/MsCorlib/System.Globalization.CultureInfo.cs
index 80994c22..0c96658e 100644
--- a/Microsoft.Research/Contracts/MsCorlib/System.Globalization.CultureInfo.cs
+++ b/Microsoft.Research/Contracts/MsCorlib/System.Globalization.CultureInfo.cs
@@ -1,15 +1,15 @@
// CodeContracts
-//
+//
// Copyright (c) Microsoft Corporation
-//
-// All rights reserved.
-//
+//
+// All rights reserved.
+//
// MIT License
-//
+//
// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-//
+//
// The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-//
+//
// THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
using System;
@@ -18,7 +18,20 @@
namespace System.Globalization
{
-
+#if !SILVERLIGHT
+ public enum CultureTypes
+ {
+ NeutralCultures = 1,
+ SpecificCultures = 2,
+ InstalledWin32Cultures = 4,
+ AllCultures = InstalledWin32Cultures | SpecificCultures | NeutralCultures,
+ UserCustomCulture = 8,
+ ReplacementCultures = 16,
+ WindowsOnlyCultures = 32,
+ FrameworkCultures = 64,
+ }
+#endif
+
public abstract class CultureInfo
{
@@ -168,26 +181,27 @@ public static CultureInfo InstalledUICulture
}
#endif
-#if false
- public DateTimeFormatInfo DateTimeFormat
+ public virtual DateTimeFormatInfo DateTimeFormat
{
get
{
Contract.Ensures(Contract.Result() != null);
+ return null;
}
set
{
Contract.Requires(value != null);
}
}
-#endif
-#if false
- public CultureInfo Parent
+ public virtual CultureInfo Parent
{
- get;
+ get
+ {
+ Contract.Ensures(Contract.Result() != null);
+ return null;
+ }
}
-#endif
public virtual string EnglishName
{
@@ -225,14 +239,14 @@ public static CultureInfo ReadOnly(CultureInfo ci)
public abstract object GetFormat(Type formatType);
-#if false
+#if !SILVERLIGHT
+
public static CultureInfo[] GetCultures(CultureTypes types)
{
+ Contract.Ensures(Contract.Result() != null);
return default(CultureInfo[]);
}
-#endif
-#if !SILVERLIGHT
public static CultureInfo CreateSpecificCulture(string name)
{
Contract.Ensures(Contract.Result() != null);
diff --git a/Microsoft.Research/Contracts/MsCorlib/System.Globalization.DateTimeFormatInfo.cs b/Microsoft.Research/Contracts/MsCorlib/System.Globalization.DateTimeFormatInfo.cs
index bee1786b..24638043 100644
--- a/Microsoft.Research/Contracts/MsCorlib/System.Globalization.DateTimeFormatInfo.cs
+++ b/Microsoft.Research/Contracts/MsCorlib/System.Globalization.DateTimeFormatInfo.cs
@@ -1,15 +1,15 @@
// CodeContracts
-//
+//
// Copyright (c) Microsoft Corporation
-//
-// All rights reserved.
-//
+//
+// All rights reserved.
+//
// MIT License
-//
+//
// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-//
+//
// The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-//
+//
// THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
using System.Diagnostics.Contracts;
@@ -170,6 +170,7 @@ public String[] AbbreviatedDayNames
}
}
+#if !SILVERLIGHT
public string DateSeparator
{
get
@@ -183,6 +184,7 @@ public string DateSeparator
Contract.Requires(value != null);
}
}
+#endif
public string FullDateTimePattern
{
@@ -198,6 +200,7 @@ public string FullDateTimePattern
}
}
+#if !SILVERLIGHT
public string TimeSeparator
{
get
@@ -211,13 +214,13 @@ public string TimeSeparator
Contract.Requires(value != null);
}
}
-
+#endif
public Calendar Calendar
{
get
{
Contract.Ensures(Contract.Result() != null);
- return default(string);
+ return default(Calendar);
}
set
@@ -334,16 +337,20 @@ public string GetDayName(DayOfWeek dayofweek)
return default(string);
}
+
+#if !SILVERLIGHT
public String[] GetAllDateTimePatterns(Char format)
{
-
+ Contract.Ensures(Contract.Result() != null);
return default(String[]);
}
public String[] GetAllDateTimePatterns()
{
-
+ Contract.Ensures(Contract.Result() != null);
return default(String[]);
}
+#endif
+
public string GetAbbreviatedDayName(DayOfWeek dayofweek)
{
Contract.Requires((int)dayofweek >= 0);
@@ -369,24 +376,20 @@ public int GetEra(string eraName)
return default(int);
}
- public object Clone()
+ public virtual object Clone()
{
return default(object);
}
- public object GetFormat(Type formatType)
+ public virtual object GetFormat(Type formatType)
{
return default(object);
}
public static DateTimeFormatInfo GetInstance(IFormatProvider provider)
{
-
- return default(DateTimeFormatInfo);
- }
- public DateTimeFormatInfo()
- {
- return default(DateTimeFormatInfo);
+ Contract.Ensures(Contract.Result() != null);
+ return default(DateTimeFormatInfo);
}
}
}
diff --git a/Microsoft.Research/Contracts/MsCorlib/System.Math.cs b/Microsoft.Research/Contracts/MsCorlib/System.Math.cs
index 8102b948..b67c3aa4 100644
--- a/Microsoft.Research/Contracts/MsCorlib/System.Math.cs
+++ b/Microsoft.Research/Contracts/MsCorlib/System.Math.cs
@@ -1,15 +1,15 @@
// CodeContracts
-//
+//
// Copyright (c) Microsoft Corporation
-//
-// All rights reserved.
-//
+//
+// All rights reserved.
+//
// MIT License
-//
+//
// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-//
+//
// The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-//
+//
// THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
// File System.Math.cs
@@ -93,29 +93,40 @@ public static Decimal Abs(Decimal value)
[Pure]
public static float Abs(float value)
{
+ Contract.Ensures((Contract.Result() >= 0.0) || float.IsNaN(Contract.Result()) || float.IsPositiveInfinity(Contract.Result()));
+
+ // 2015-03-26: tom-englert
+ // Disabled, since this was too complex for the checker to understand.
+ // e.g. new Rect(0, 0, Math.Abs(a), Math.Abs(b)) raised a warning that with and height are unproven to be positive values.
+
// !NaN ==> >= 0
- Contract.Ensures(float.IsNaN(value) || Contract.Result() >= 0.0);
+ // Contract.Ensures(float.IsNaN(value) || Contract.Result() >= 0.0);
// NaN ==> NaN
- Contract.Ensures(!float.IsNaN(value) || float.IsNaN(Contract.Result()));
+ // Contract.Ensures(!float.IsNaN(value) || float.IsNaN(Contract.Result()));
// Infty ==> +Infty
- Contract.Ensures(!float.IsInfinity(value) || float.IsPositiveInfinity(Contract.Result()));
+ // Contract.Ensures(!float.IsInfinity(value) || float.IsPositiveInfinity(Contract.Result()));
return default(float);
}
[Pure]
public static double Abs(double value)
- {
+ {
+ Contract.Ensures((Contract.Result() >= 0.0) || double.IsNaN(Contract.Result()) || double.IsPositiveInfinity(Contract.Result()));
+
+ // 2015-03-26: tom-englert
+ // Disabled, since this was too complex for the checker to understand.
+ // e.g. new Rect(0, 0, Math.Abs(a), Math.Abs(b)) raised a warning that with and height are unproven to be positive values.
+
// !NaN ==> >= 0
- Contract.Ensures(double.IsNaN(value) || Contract.Result() >= 0.0);
+ // Contract.Ensures(double.IsNaN(value) || Contract.Result() >= 0.0);
// NaN ==> NaN
- Contract.Ensures(!double.IsNaN(value) || double.IsNaN(Contract.Result()));
-
+ // Contract.Ensures(!double.IsNaN(value) || double.IsNaN(Contract.Result()));
// Infty ==> +Infty
- Contract.Ensures(!double.IsInfinity(value) || double.IsPositiveInfinity(Contract.Result()));
+ // Contract.Ensures(!double.IsInfinity(value) || double.IsPositiveInfinity(Contract.Result()));
return default(double);
}
@@ -129,7 +140,7 @@ public static double Acos(double d)
// d < -1 || d > 1 ==> NaN
Contract.Ensures(!(d < -1 || d > 1) || Double.IsNaN(Contract.Result()));
-
+
// d == NaN ==> NaN
Contract.Ensures(!Double.IsNaN(d) || Double.IsNaN(Contract.Result()));
@@ -310,7 +321,7 @@ public static double Log(double d)
// 0 < d < 1 ==> < 0
Contract.Ensures(!(0.0 < d && d < 1.0) || Contract.Result() < 0);
-
+
// d == 1 ==> 1
Contract.Ensures(d != 1.0 || Contract.Result() == 0.0);
@@ -526,7 +537,7 @@ public static double Pow(double x, double y)
{
// x == NaN or y == NaN ==> NaN
Contract.Ensures(!(Double.IsNaN(x) || Double.IsNaN(y)) || Double.IsNaN(Contract.Result()));
-
+
// y == 0 ==> 1
Contract.Ensures(!(!Double.IsNaN(x) && y == 0) || Contract.Result() == 1.0);
@@ -584,7 +595,7 @@ public static double Round(double a)
return default(double);
}
-
+
[Pure]
public static Decimal Round(Decimal d)
{
diff --git a/Microsoft.Research/Contracts/MsCorlib/System.String.cs b/Microsoft.Research/Contracts/MsCorlib/System.String.cs
index 112e3b5a..20a36a75 100644
--- a/Microsoft.Research/Contracts/MsCorlib/System.String.cs
+++ b/Microsoft.Research/Contracts/MsCorlib/System.String.cs
@@ -1,15 +1,15 @@
// CodeContracts
-//
+//
// Copyright (c) Microsoft Corporation
-//
-// All rights reserved.
-//
+//
+// All rights reserved.
+//
// MIT License
-//
+//
// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-//
+//
// The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-//
+//
// THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
using System;
@@ -162,6 +162,28 @@ public static String Concat(object arg0)
Contract.Ensures(Contract.Result() != null);
return default(String);
}
+
+#if NETFRAMEWORK_4_0 || NETFRAMEWORK_4_5
+
+ [Pure]
+ [Reads(ReadsAttribute.Reads.Nothing)]
+ public static String Concat(IEnumerable args)
+ {
+
+ Contract.Ensures(Contract.Result() != null);
+ return default(String);
+ }
+ [Pure]
+ [Reads(ReadsAttribute.Reads.Nothing)]
+ public static String Concat(IEnumerable args)
+ {
+
+ Contract.Ensures(Contract.Result() != null);
+ return default(String);
+ }
+#endif
+
+
[Pure]
[Reads(ReadsAttribute.Reads.Nothing)]
public static String Copy(String str)
@@ -189,7 +211,7 @@ public static String Format(String format, object[] args)
Contract.Ensures(Contract.Result() != null);
return default(String);
}
-
+
[Pure]
[Reads(ReadsAttribute.Reads.Nothing)]
public static String Format(String format, object arg0, object arg1, object arg2)
@@ -199,7 +221,7 @@ public static String Format(String format, object arg0, object arg1, object arg2
Contract.Ensures(Contract.Result() != null);
return default(String);
}
-
+
[Pure]
[Reads(ReadsAttribute.Reads.Nothing)]
public static String Format(String format, object arg0, object arg1)
@@ -209,7 +231,7 @@ public static String Format(String format, object arg0, object arg1)
Contract.Ensures(Contract.Result() != null);
return default(String);
}
-
+
[Pure]
[Reads(ReadsAttribute.Reads.Nothing)]
public static String Format(String format, object arg0)
@@ -245,7 +267,7 @@ public String Remove(int index, int count)
return default(String);
}
-
+
[Pure]
[Reads(ReadsAttribute.Reads.Owned)]
public String Replace(String oldValue, String newValue)
@@ -262,7 +284,7 @@ public String Replace(String oldValue, String newValue)
public String Replace(char oldChar, char newChar)
{
Contract.Ensures(Contract.Result() != null);
-
+
return default(String);
}
@@ -294,7 +316,7 @@ public String Trim()
[Reads(ReadsAttribute.Reads.Owned)]
public String ToUpper(System.Globalization.CultureInfo culture) {
Contract.Requires(culture != null);
-
+
Contract.Ensures(Contract.Result() != null);
Contract.Ensures(Contract.Result().Length == this.Length, "Are there languages for which this isn't true?!?");
@@ -392,7 +414,7 @@ public String PadRight(int totalWidth)
Contract.Ensures(Contract.Result().Length == totalWidth);
Contract.Ensures(Contract.Result() != null);
-
+
return default(String);
}
@@ -413,7 +435,7 @@ public String PadRight(int totalWidth, char paddingChar)
public String PadLeft(int totalWidth, char paddingChar)
{
Contract.Requires(totalWidth >= 0);
-
+
Contract.Ensures(Contract.Result().Length == totalWidth);
Contract.Ensures(Contract.Result() != null);
@@ -428,7 +450,7 @@ public String PadLeft(int totalWidth)
Contract.Ensures(Contract.Result().Length == totalWidth);
Contract.Ensures(Contract.Result() != null);
-
+
return default(String);
}
@@ -460,7 +482,7 @@ public int LastIndexOf(char value, int startIndex)
{
Contract.Requires(this == Empty || startIndex >= 0);
Contract.Requires(this == Empty || startIndex < this.Length);
-
+
Contract.Ensures(-1 <= Contract.Result());
Contract.Ensures(Contract.Result() < this.Length);
@@ -635,7 +657,7 @@ public int IndexOf(char value, int startIndex)
Contract.Requires(startIndex <= Length);
Contract.Ensures(-1 <= Contract.Result());
- Contract.Ensures(Contract.Result() == -1 || Contract.Result() >= startIndex);
+ Contract.Ensures(Contract.Result() == -1 || Contract.Result() >= startIndex);
Contract.Ensures(Contract.Result() < this.Length);
@@ -696,7 +718,7 @@ public int IndexOf(String value, int startIndex, int count)
Contract.Ensures(-1 <= Contract.Result());
Contract.Ensures(value == String.Empty || Contract.Result() < startIndex + count);
-
+
Contract.Ensures(Contract.Result() == -1 || Contract.Result() >= startIndex);
Contract.Ensures(value != String.Empty || Contract.Result() == startIndex);
@@ -757,10 +779,10 @@ public int IndexOfAny(char[] anyOf)
public int IndexOfAny(char[] anyOf, int startIndex)
{
Contract.Requires(anyOf != null);
-
+
Contract.Requires(startIndex >= 0);
Contract.Requires(startIndex < Length);
-
+
Contract.Ensures(-1 <= Contract.Result());
Contract.Ensures(Contract.Result() < this.Length);
@@ -772,10 +794,10 @@ public int IndexOfAny(char[] anyOf, int startIndex)
public int IndexOfAny(char[] anyOf, int startIndex, int count)
{
Contract.Requires(anyOf != null);
-
+
Contract.Requires(startIndex >= 0);
Contract.Requires(count >= 0);
-
+
Contract.Requires(startIndex + count < Length);
Contract.Ensures(-1 <= Contract.Result());
@@ -783,7 +805,7 @@ public int IndexOfAny(char[] anyOf, int startIndex, int count)
return default(int);
}
-
+
public static readonly string/*!*/ Empty;
@@ -879,7 +901,7 @@ public static int Compare(string strA, string strB, StringComparison comparisonT
return default(int);
}
[Pure]
- public static int Compare(string strA, int indexA, string strB, int indexB, int length, StringComparison comparisonType)
+ public static int Compare(string strA, int indexA, string strB, int indexB, int length, StringComparison comparisonType)
{
Contract.Requires(indexA >= 0);
Contract.Requires(indexB >= 0);
@@ -888,7 +910,7 @@ public static int Compare(string strA, int indexA, string strB, int indexB, int
Contract.Requires(indexB <= strB.Length);
Contract.Requires((strA != null && strB != null) || length == 0);
Contract.Requires(Enum.IsDefined(typeof(StringComparison), comparisonType));
-
+
return default(int);
}
@@ -1072,7 +1094,7 @@ public string[] Split(string[] separator, StringSplitOptions options)
{
Contract.Ensures(Contract.Result() != null);
Contract.Ensures(Contract.ForAll(0, Contract.Result().Length, i => Contract.Result()[i] != null));
-
+
return default(string[]);
}
#if !SILVERLIGHT
@@ -1198,6 +1220,17 @@ public static String Join(String separator, String[] value)
}
#if NETFRAMEWORK_4_0 || NETFRAMEWORK_4_5
+
+ [Pure]
+ [Reads(ReadsAttribute.Reads.Nothing)]
+ public static String Join(String separator, Object[] value)
+ {
+ Contract.Requires(value != null);
+ Contract.Ensures(Contract.Result() != null);
+
+ return default(String);
+ }
+
[Pure]
public static string Join(string separator, IEnumerable values)
{
diff --git a/Microsoft.Research/Contracts/PresentationCore/Sources/System.Windows.Media.Transform.cs b/Microsoft.Research/Contracts/PresentationCore/Sources/System.Windows.Media.Transform.cs
index f0310e0e..cfc191e3 100644
--- a/Microsoft.Research/Contracts/PresentationCore/Sources/System.Windows.Media.Transform.cs
+++ b/Microsoft.Research/Contracts/PresentationCore/Sources/System.Windows.Media.Transform.cs
@@ -83,6 +83,7 @@ public static System.Windows.Media.Transform Identity
{
get
{
+ Contract.Ensures(Contract.Result() != null);
return default(System.Windows.Media.Transform);
}
}
diff --git a/Microsoft.Research/Contracts/PresentationCore/Sources/System.Windows.Media.Visual.cs b/Microsoft.Research/Contracts/PresentationCore/Sources/System.Windows.Media.Visual.cs
index cd4caf0a..7af3b45f 100644
--- a/Microsoft.Research/Contracts/PresentationCore/Sources/System.Windows.Media.Visual.cs
+++ b/Microsoft.Research/Contracts/PresentationCore/Sources/System.Windows.Media.Visual.cs
@@ -1,15 +1,15 @@
// CodeContracts
-//
+//
// Copyright (c) Microsoft Corporation
-//
-// All rights reserved.
-//
+//
+// All rights reserved.
+//
// MIT License
-//
+//
// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-//
+//
// The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-//
+//
// THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
// File System.Windows.Media.Visual.cs
@@ -38,6 +38,8 @@
namespace System.Windows.Media
{
+ using System.Windows.Media.Media3D;
+
abstract public partial class Visual : System.Windows.DependencyObject, System.Windows.Media.Composition.DUCE.IResource
{
#region Methods and constructors
@@ -104,22 +106,26 @@ int System.Windows.Media.Composition.DUCE.IResource.GetChannelCount()
public GeneralTransform TransformToAncestor(System.Windows.Media.Visual ancestor)
{
- return default(GeneralTransform);
+ Contract.Ensures(Contract.Result() != null);
+ return default(GeneralTransform);
}
public System.Windows.Media.Media3D.GeneralTransform2DTo3D TransformToAncestor(System.Windows.Media.Media3D.Visual3D ancestor)
{
- return default(System.Windows.Media.Media3D.GeneralTransform2DTo3D);
+ Contract.Ensures(Contract.Result() != null);
+ return default(System.Windows.Media.Media3D.GeneralTransform2DTo3D);
}
public GeneralTransform TransformToDescendant(System.Windows.Media.Visual descendant)
{
- return default(GeneralTransform);
+ Contract.Ensures(Contract.Result() != null);
+ return default(GeneralTransform);
}
public GeneralTransform TransformToVisual(System.Windows.Media.Visual visual)
{
- return default(GeneralTransform);
+ Contract.Ensures(Contract.Result() != null);
+ return default(GeneralTransform);
}
protected Visual()
diff --git a/Microsoft.Research/Contracts/PresentationCore/Sources/System.Windows.UIElement.cs b/Microsoft.Research/Contracts/PresentationCore/Sources/System.Windows.UIElement.cs
index 708e66ac..1396c2b2 100644
--- a/Microsoft.Research/Contracts/PresentationCore/Sources/System.Windows.UIElement.cs
+++ b/Microsoft.Research/Contracts/PresentationCore/Sources/System.Windows.UIElement.cs
@@ -1,15 +1,15 @@
// CodeContracts
-//
+//
// Copyright (c) Microsoft Corporation
-//
-// All rights reserved.
-//
+//
+// All rights reserved.
+//
// MIT License
-//
+//
// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-//
+//
// The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-//
+//
// THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
// File System.Windows.UIElement.cs
@@ -21,6 +21,8 @@
using System;
// Disable the "this variable is not used" warning as every field would imply it.
+using System.Windows.Input;
+
#pragma warning disable 0414
// Disable the "this variable is never assigned to".
#pragma warning disable 0067
@@ -767,7 +769,8 @@ public System.Windows.Input.CommandBindingCollection CommandBindings
{
get
{
- return default(System.Windows.Input.CommandBindingCollection);
+ Contract.Ensures(Contract.Result() != null);
+ return default(System.Windows.Input.CommandBindingCollection);
}
}
@@ -775,6 +778,7 @@ public Size DesiredSize
{
get
{
+ Contract.Ensures(!Contract.Result().IsEmpty);
return default(Size);
}
}
@@ -813,7 +817,8 @@ public System.Windows.Input.InputBindingCollection InputBindings
{
get
{
- return default(System.Windows.Input.InputBindingCollection);
+ Contract.Ensures(Contract.Result() != null);
+ return default(System.Windows.Input.InputBindingCollection);
}
}
diff --git a/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Application.cs b/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Application.cs
index 8289e0ba..55859e30 100644
--- a/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Application.cs
+++ b/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Application.cs
@@ -1,15 +1,15 @@
// CodeContracts
-//
+//
// Copyright (c) Microsoft Corporation
-//
-// All rights reserved.
-//
+//
+// All rights reserved.
+//
// MIT License
-//
+//
// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-//
+//
// The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-//
+//
// THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
// File System.Windows.Application.cs
@@ -174,8 +174,7 @@ public static System.Windows.Application Current
{
get
{
- Contract.Ensures(Contract.Result() != null);
-
+ // May return null if called from non-WPF application (e.g. WinForms app with embedded WPF controls).
return default(System.Windows.Application);
}
}
diff --git a/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Controls.Control.cs b/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Controls.Control.cs
index b6372b36..3d3556ae 100644
--- a/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Controls.Control.cs
+++ b/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Controls.Control.cs
@@ -57,10 +57,12 @@ protected override System.Windows.Size MeasureOverride(System.Windows.Size const
protected virtual new void OnMouseDoubleClick(System.Windows.Input.MouseButtonEventArgs e)
{
+ Contract.Requires(e != null);
}
protected virtual new void OnPreviewMouseDoubleClick(System.Windows.Input.MouseButtonEventArgs e)
{
+ Contract.Requires(e != null);
}
protected virtual new void OnTemplateChanged(ControlTemplate oldTemplate, ControlTemplate newTemplate)
diff --git a/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Controls.Panel.cs b/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Controls.Panel.cs
index 75b500dd..41545010 100644
--- a/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Controls.Panel.cs
+++ b/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Controls.Panel.cs
@@ -1,15 +1,15 @@
// CodeContracts
-//
+//
// Copyright (c) Microsoft Corporation
-//
-// All rights reserved.
-//
+//
+// All rights reserved.
+//
// MIT License
-//
+//
// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-//
+//
// The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-//
+//
// THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
// File System.Windows.Controls.Panel.cs
@@ -43,10 +43,11 @@ abstract public partial class Panel : System.Windows.FrameworkElement, System.Wi
#region Methods and constructors
protected virtual new UIElementCollection CreateUIElementCollection(System.Windows.FrameworkElement logicalParent)
{
- return default(UIElementCollection);
+ Contract.Ensures(Contract.Result() != null);
+ return default(UIElementCollection);
}
- protected override System.Windows.Media.Visual GetVisualChild(int index)
+ protected override System.Windows.Media.Visual GetVisualChild(int index)
{
return default(System.Windows.Media.Visual);
}
@@ -106,10 +107,21 @@ public UIElementCollection Children
{
get
{
- return default(UIElementCollection);
+ Contract.Ensures(Contract.Result() != null);
+ return default(UIElementCollection);
}
}
+ protected internal UIElementCollection InternalChildren
+ {
+ get
+ {
+ Contract.Ensures(Contract.Result() != null);
+ return default(UIElementCollection);
+ }
+ }
+
+
internal protected virtual new bool HasLogicalOrientation
{
get
diff --git a/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Controls.TextBox.cs b/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Controls.TextBox.cs
index cb8d8377..5b75e86c 100644
--- a/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Controls.TextBox.cs
+++ b/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Controls.TextBox.cs
@@ -282,6 +282,8 @@ public string Text
{
get
{
+ // => TextBox.CoerceText will ensure value is never null.
+ Contract.Ensures(Contract.Result() != null);
return default(string);
}
set
diff --git a/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Controls.ToolTip.cs b/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Controls.ToolTip.cs
index 9d7b47fa..c0ff969b 100644
--- a/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Controls.ToolTip.cs
+++ b/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Controls.ToolTip.cs
@@ -43,6 +43,7 @@ public partial class ToolTip : ContentControl
#region Methods and constructors
protected virtual new void OnClosed(System.Windows.RoutedEventArgs e)
{
+ Contract.Requires(e != null);
}
protected override System.Windows.Automation.Peers.AutomationPeer OnCreateAutomationPeer()
@@ -52,6 +53,7 @@ protected override System.Windows.Automation.Peers.AutomationPeer OnCreateAutoma
protected virtual new void OnOpened(System.Windows.RoutedEventArgs e)
{
+ Contract.Requires(e != null);
}
protected override void OnVisualParentChanged(System.Windows.DependencyObject oldParent)
diff --git a/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Controls.TreeViewItem.cs b/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Controls.TreeViewItem.cs
index 2880468e..09a647b7 100644
--- a/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Controls.TreeViewItem.cs
+++ b/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Controls.TreeViewItem.cs
@@ -52,19 +52,23 @@ protected override System.Windows.DependencyObject GetContainerForItemOverride()
protected virtual new void OnCollapsed(System.Windows.RoutedEventArgs e)
{
+ Contract.Requires(e != null);
}
protected virtual new void OnExpanded(System.Windows.RoutedEventArgs e)
{
+ Contract.Requires(e != null);
}
protected virtual new void OnSelected(System.Windows.RoutedEventArgs e)
{
+ Contract.Requires(e != null);
}
protected virtual new void OnUnselected(System.Windows.RoutedEventArgs e)
{
+ Contract.Requires(e != null);
}
diff --git a/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Controls.VirtualizingPanel.cs b/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Controls.VirtualizingPanel.cs
index ba693ca8..7bc47e52 100644
--- a/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Controls.VirtualizingPanel.cs
+++ b/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Controls.VirtualizingPanel.cs
@@ -59,6 +59,7 @@ protected void InsertInternalChild(int index, System.Windows.UIElement child)
protected virtual new void OnItemsChanged(Object sender, System.Windows.Controls.Primitives.ItemsChangedEventArgs args)
{
+ Contract.Requires(args != null);
}
protected void RemoveInternalChildRange(int index, int range)
diff --git a/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Controls.VirtualizingStackPanel.cs b/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Controls.VirtualizingStackPanel.cs
index 60fedb00..4b6fd444 100644
--- a/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Controls.VirtualizingStackPanel.cs
+++ b/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Controls.VirtualizingStackPanel.cs
@@ -1,15 +1,15 @@
// CodeContracts
-//
+//
// Copyright (c) Microsoft Corporation
-//
-// All rights reserved.
-//
+//
+// All rights reserved.
+//
// MIT License
-//
+//
// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-//
+//
// The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-//
+//
// THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
// File System.Windows.Controls.VirtualizingStackPanel.cs
@@ -124,6 +124,7 @@ protected override System.Windows.Size MeasureOverride(System.Windows.Size const
protected virtual new void OnCleanUpVirtualizedItem(CleanUpVirtualizedItemEventArgs e)
{
+ Contract.Requires(e != null);
}
protected override void OnClearChildren()
diff --git a/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Data.CollectionContainer.cs b/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Data.CollectionContainer.cs
index 92a55be2..072a3691 100644
--- a/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Data.CollectionContainer.cs
+++ b/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Data.CollectionContainer.cs
@@ -1,15 +1,15 @@
// CodeContracts
-//
+//
// Copyright (c) Microsoft Corporation
-//
-// All rights reserved.
-//
+//
+// All rights reserved.
+//
// MIT License
-//
+//
// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-//
+//
// The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-//
+//
// THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
// File System.Windows.Data.CollectionContainer.cs
@@ -47,10 +47,12 @@ public CollectionContainer()
protected virtual new void OnContainedCollectionChanged(System.Collections.Specialized.NotifyCollectionChangedEventArgs args)
{
+ Contract.Requires(args != null);
}
protected virtual new bool ReceiveWeakEvent(Type managerType, Object sender, EventArgs e)
{
+ Contract.Requires(e != null);
return default(bool);
}
diff --git a/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Data.CollectionView.cs b/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Data.CollectionView.cs
index f9684fc7..16f486aa 100644
--- a/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Data.CollectionView.cs
+++ b/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Data.CollectionView.cs
@@ -1,15 +1,15 @@
// CodeContracts
-//
+//
// Copyright (c) Microsoft Corporation
-//
-// All rights reserved.
-//
+//
+// All rights reserved.
+//
// MIT License
-//
+//
// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-//
+//
// The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-//
+//
// THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
// File System.Windows.Data.CollectionView.cs
@@ -112,10 +112,12 @@ protected bool OKToChangeCurrent()
protected virtual new void OnBeginChangeLogging(System.Collections.Specialized.NotifyCollectionChangedEventArgs args)
{
+ Contract.Requires(args != null);
}
protected virtual new void OnCollectionChanged(System.Collections.Specialized.NotifyCollectionChangedEventArgs args)
{
+ Contract.Requires(args != null);
}
protected void OnCollectionChanged(Object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs args)
@@ -128,6 +130,7 @@ protected void OnCollectionChanged(Object sender, System.Collections.Specialized
protected virtual new void OnCurrentChanging(System.ComponentModel.CurrentChangingEventArgs args)
{
+ Contract.Requires(args != null);
}
protected void OnCurrentChanging()
@@ -136,6 +139,7 @@ protected void OnCurrentChanging()
protected virtual new void OnPropertyChanged(System.ComponentModel.PropertyChangedEventArgs e)
{
+ Contract.Requires(e != null);
}
public virtual new bool PassesFilter(Object item)
diff --git a/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Data.CollectionViewGroup.cs b/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Data.CollectionViewGroup.cs
index 1f015f95..970f71c0 100644
--- a/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Data.CollectionViewGroup.cs
+++ b/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Data.CollectionViewGroup.cs
@@ -47,6 +47,7 @@ protected CollectionViewGroup(Object name)
protected virtual new void OnPropertyChanged(System.ComponentModel.PropertyChangedEventArgs e)
{
+ Contract.Requires(e != null);
}
#endregion
diff --git a/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Data.CollectionViewSource.cs b/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Data.CollectionViewSource.cs
index 064c9217..23950778 100644
--- a/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Data.CollectionViewSource.cs
+++ b/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Data.CollectionViewSource.cs
@@ -1,20 +1,22 @@
// CodeContracts
-//
+//
// Copyright (c) Microsoft Corporation
-//
-// All rights reserved.
-//
+//
+// All rights reserved.
+//
// MIT License
-//
+//
// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-//
+//
// The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-//
+//
// THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
// File System.Windows.Data.CollectionViewSource.cs
// Automatically generated contract file.
using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.ComponentModel;
using System.IO;
using System.Text;
using System.Diagnostics.Contracts;
@@ -72,6 +74,7 @@ public static bool IsDefaultView(System.ComponentModel.ICollectionView view)
protected virtual new bool ReceiveWeakEvent(Type managerType, Object sender, EventArgs e)
{
+ Contract.Requires(e != null);
return default(bool);
}
@@ -116,7 +119,8 @@ public System.Collections.ObjectModel.ObservableCollection);
+ Contract.Ensures(Contract.Result>() != null);
+ return default(System.Collections.ObjectModel.ObservableCollection);
}
}
@@ -124,7 +128,8 @@ public System.ComponentModel.SortDescriptionCollection SortDescriptions
{
get
{
- return default(System.ComponentModel.SortDescriptionCollection);
+ Contract.Ensures(Contract.Result() != null);
+ return default(System.ComponentModel.SortDescriptionCollection);
}
}
diff --git a/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Data.CompositeCollection.cs b/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Data.CompositeCollection.cs
index 49bf6a45..09d51444 100644
--- a/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Data.CompositeCollection.cs
+++ b/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Data.CompositeCollection.cs
@@ -79,6 +79,7 @@ public void Insert(int insertIndex, Object insertItem)
protected virtual new bool ReceiveWeakEvent(Type managerType, Object sender, EventArgs e)
{
+ Contract.Requires(e != null);
return default(bool);
}
diff --git a/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.FrameworkContentElement.cs b/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.FrameworkContentElement.cs
index 465a8f21..9f5ae788 100644
--- a/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.FrameworkContentElement.cs
+++ b/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.FrameworkContentElement.cs
@@ -1,15 +1,15 @@
// CodeContracts
-//
+//
// Copyright (c) Microsoft Corporation
-//
-// All rights reserved.
-//
+//
+// All rights reserved.
+//
// MIT License
-//
+//
// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-//
+//
// The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-//
+//
// THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
// File System.Windows.FrameworkContentElement.cs
@@ -102,10 +102,12 @@ public sealed override bool MoveFocus(System.Windows.Input.TraversalRequest requ
protected virtual new void OnContextMenuClosing(System.Windows.Controls.ContextMenuEventArgs e)
{
+ Contract.Requires(e != null);
}
protected virtual new void OnContextMenuOpening(System.Windows.Controls.ContextMenuEventArgs e)
{
+ Contract.Requires(e != null);
}
protected override void OnGotFocus(RoutedEventArgs e)
@@ -114,6 +116,7 @@ protected override void OnGotFocus(RoutedEventArgs e)
protected virtual new void OnInitialized(EventArgs e)
{
+ Contract.Requires(e != null);
}
protected override void OnPropertyChanged(DependencyPropertyChangedEventArgs e)
@@ -126,10 +129,12 @@ protected override void OnPropertyChanged(DependencyPropertyChangedEventArgs e)
protected virtual new void OnToolTipClosing(System.Windows.Controls.ToolTipEventArgs e)
{
+ Contract.Requires(e != null);
}
protected virtual new void OnToolTipOpening(System.Windows.Controls.ToolTipEventArgs e)
{
+ Contract.Requires(e != null);
}
public sealed override DependencyObject PredictFocus(System.Windows.Input.FocusNavigationDirection direction)
diff --git a/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.FrameworkElement.cs b/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.FrameworkElement.cs
index 9bff7a1d..f54b97b1 100644
--- a/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.FrameworkElement.cs
+++ b/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.FrameworkElement.cs
@@ -1,15 +1,15 @@
// CodeContracts
-//
+//
// Copyright (c) Microsoft Corporation
-//
-// All rights reserved.
-//
+//
+// All rights reserved.
+//
// MIT License
-//
+//
// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-//
+//
// The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-//
+//
// THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
// File System.Windows.FrameworkElement.cs
@@ -54,8 +54,32 @@ protected sealed override void ArrangeCore(Rect finalRect)
{
}
- protected virtual new Size ArrangeOverride(Size finalSize)
- {
+ ///
+ /// ArrangeOverride allows for the customization of the positioning of children.
+ ///
+ /// The final size that element should use to arrange itself and its children.
+ /// The size that element actually is going to use for rendering. If this size is not the same as finalSize
+ /// input parameter, the AlignmentX/AlignmentY properties will position the ink rect of the element
+ /// appropriately.
+ protected virtual Size ArrangeOverride(Size finalSize)
+ {
+ // Only a positive number is allowed here for width and height, since this will be used as the size of a physical Rect.
+ // See also comments or implementation of UIElement.Arrange()
+ Contract.Requires(!finalSize.IsEmpty
+ && !double.IsNaN(finalSize.Width) && !double.IsNaN(finalSize.Height)
+ && !double.IsPositiveInfinity(finalSize.Width) && !double.IsPositiveInfinity(finalSize.Height));
+
+ /* The function must return a physical size, i.e. positive numbers for Width and Height, so this would be the correct result contract:
+ *
+ * Contract.Ensures(!Contract.Result().IsEmpty
+ * && !double.IsNaN(Contract.Result().Width) && !double.IsNaN(Contract.Result().Height)
+ * && !double.IsInfinity(Contract.Result().Width) && !double.IsInfinity(Contract.Result().Height));
+ *
+ * However in practice this is unusable; the analyzer can't infer all double operations in the method,
+ * because there are usually complex calculations, and we would end up with always the same huge Contract.Assume at the end, just
+ * to make the analyzer happy.
+ */
+
return default(Size);
}
@@ -138,8 +162,29 @@ protected sealed override Size MeasureCore(Size availableSize)
return default(Size);
}
- protected virtual new Size MeasureOverride(Size availableSize)
- {
+ ///
+ /// Measurement override. Implement your size-to-content logic here.
+ ///
+ /// Available size that parent can give to the child. May be infinity (when parent wants to
+ /// measure to content). This is soft constraint. Child can return bigger size to indicate that it wants bigger space and hope
+ /// that parent can throw in scrolling...
+ /// Desired Size of the control, given available size passed as parameter.
+ protected virtual Size MeasureOverride(Size availableSize)
+ {
+ // Only positive number or positive infinity is allowed here for width and height, see also comments on UIElement.Measure.
+ Contract.Requires(!availableSize.IsEmpty && !double.IsNaN(availableSize.Width) && !double.IsNaN(availableSize.Height));
+
+ /* The function must return a physical size, i.e. positive numbers for Width and Height, so this would be the correct result contract:
+ *
+ * Contract.Ensures(!Contract.Result().IsEmpty
+ * && !double.IsNaN(Contract.Result().Width) && !double.IsNaN(Contract.Result().Height)
+ * && !double.IsInfinity(Contract.Result().Width) && !double.IsInfinity(Contract.Result().Height));
+ *
+ * However in practice this is unusable; the analyzer can't infer all double operations in the method,
+ * because there are usually complex calculations, and we would end up with always the same huge Contract.Assume at the end, just
+ * to make the analyzer happy.
+ */
+
return default(Size);
}
@@ -154,10 +199,12 @@ public sealed override bool MoveFocus(System.Windows.Input.TraversalRequest requ
protected virtual new void OnContextMenuClosing(System.Windows.Controls.ContextMenuEventArgs e)
{
+ Contract.Requires(e != null);
}
protected virtual new void OnContextMenuOpening(System.Windows.Controls.ContextMenuEventArgs e)
{
+ Contract.Requires(e != null);
}
protected override void OnGotFocus(RoutedEventArgs e)
@@ -166,6 +213,7 @@ protected override void OnGotFocus(RoutedEventArgs e)
protected virtual new void OnInitialized(EventArgs e)
{
+ Contract.Requires(e != null);
}
protected override void OnPropertyChanged(DependencyPropertyChangedEventArgs e)
@@ -182,10 +230,12 @@ protected override void OnRenderSizeChanged(SizeChangedInfo sizeInfo)
protected virtual new void OnToolTipClosing(System.Windows.Controls.ToolTipEventArgs e)
{
+ Contract.Requires(e != null);
}
protected virtual new void OnToolTipOpening(System.Windows.Controls.ToolTipEventArgs e)
{
+ Contract.Requires(e != null);
}
protected override void OnVisualParentChanged(DependencyObject oldParent)
@@ -264,7 +314,7 @@ public double ActualHeight
{
get
{
- Contract.Ensures(Contract.Result() == this.RenderSize.Height);
+ Contract.Ensures(Contract.Result() >= 0.0);
return default(double);
}
@@ -274,7 +324,7 @@ public double ActualWidth
{
get
{
- Contract.Ensures(Contract.Result() == this.RenderSize.Width);
+ Contract.Ensures(Contract.Result() >= 0.0);
return default(double);
}
diff --git a/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Interop.HwndHost.cs b/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Interop.HwndHost.cs
index 5896a2da..67970767 100644
--- a/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Interop.HwndHost.cs
+++ b/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Interop.HwndHost.cs
@@ -74,10 +74,12 @@ protected override System.Windows.Automation.Peers.AutomationPeer OnCreateAutoma
protected override void OnKeyDown(System.Windows.Input.KeyEventArgs e)
{
+ Contract.Requires(e != null);
}
protected override void OnKeyUp(System.Windows.Input.KeyEventArgs e)
{
+ Contract.Requires(e != null);
}
protected virtual new bool OnMnemonicCore(ref MSG msg, System.Windows.Input.ModifierKeys modifiers)
diff --git a/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Markup.Localizer.BamlLocalizer.cs b/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Markup.Localizer.BamlLocalizer.cs
index a7fa2740..aff420a0 100644
--- a/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Markup.Localizer.BamlLocalizer.cs
+++ b/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Markup.Localizer.BamlLocalizer.cs
@@ -62,6 +62,7 @@ public BamlLocalizationDictionary ExtractResources()
protected virtual new void OnErrorNotify(BamlLocalizerErrorNotifyEventArgs e)
{
+ Contract.Requires(e != null);
}
public void UpdateBaml(Stream target, BamlLocalizationDictionary updates)
diff --git a/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Window.cs b/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Window.cs
index 36983adf..aace634b 100644
--- a/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Window.cs
+++ b/Microsoft.Research/Contracts/PresentationFramework/Sources/System.Windows.Window.cs
@@ -75,14 +75,17 @@ protected override Size MeasureOverride(Size availableSize)
protected virtual new void OnActivated(EventArgs e)
{
+ Contract.Requires(e != null);
}
protected virtual new void OnClosed(EventArgs e)
{
+ Contract.Requires(e != null);
}
protected virtual new void OnClosing(System.ComponentModel.CancelEventArgs e)
{
+ Contract.Requires(e != null);
}
protected override void OnContentChanged(Object oldContent, Object newContent)
@@ -91,6 +94,7 @@ protected override void OnContentChanged(Object oldContent, Object newContent)
protected virtual new void OnContentRendered(EventArgs e)
{
+ Contract.Requires(e != null);
}
protected override System.Windows.Automation.Peers.AutomationPeer OnCreateAutomationPeer()
@@ -100,10 +104,12 @@ protected override System.Windows.Automation.Peers.AutomationPeer OnCreateAutoma
protected virtual new void OnDeactivated(EventArgs e)
{
+ Contract.Requires(e != null);
}
protected virtual new void OnLocationChanged(EventArgs e)
{
+ Contract.Requires(e != null);
}
protected override void OnManipulationBoundaryFeedback(System.Windows.Input.ManipulationBoundaryFeedbackEventArgs e)
@@ -112,10 +118,12 @@ protected override void OnManipulationBoundaryFeedback(System.Windows.Input.Mani
protected virtual new void OnSourceInitialized(EventArgs e)
{
+ Contract.Requires(e != null);
}
protected virtual new void OnStateChanged(EventArgs e)
{
+ Contract.Requires(e != null);
}
protected sealed override void OnVisualParentChanged(DependencyObject oldParent)
diff --git a/Microsoft.Research/Contracts/System.ComponentModel.Composition/Sources/System.ComponentModel.Composition.Hosting.AggregateCatalog.cs b/Microsoft.Research/Contracts/System.ComponentModel.Composition/Sources/System.ComponentModel.Composition.Hosting.AggregateCatalog.cs
index 9878989d..2ce8be6c 100644
--- a/Microsoft.Research/Contracts/System.ComponentModel.Composition/Sources/System.ComponentModel.Composition.Hosting.AggregateCatalog.cs
+++ b/Microsoft.Research/Contracts/System.ComponentModel.Composition/Sources/System.ComponentModel.Composition.Hosting.AggregateCatalog.cs
@@ -64,10 +64,12 @@ protected override void Dispose(bool disposing)
protected virtual new void OnChanged(ComposablePartCatalogChangeEventArgs e)
{
+ Contract.Requires(e != null);
}
protected virtual new void OnChanging(ComposablePartCatalogChangeEventArgs e)
{
+ Contract.Requires(e != null);
}
#endregion
diff --git a/Microsoft.Research/Contracts/System.ComponentModel.Composition/Sources/System.ComponentModel.Composition.Hosting.DirectoryCatalog.cs b/Microsoft.Research/Contracts/System.ComponentModel.Composition/Sources/System.ComponentModel.Composition.Hosting.DirectoryCatalog.cs
index 9923782d..b0bb2701 100644
--- a/Microsoft.Research/Contracts/System.ComponentModel.Composition/Sources/System.ComponentModel.Composition.Hosting.DirectoryCatalog.cs
+++ b/Microsoft.Research/Contracts/System.ComponentModel.Composition/Sources/System.ComponentModel.Composition.Hosting.DirectoryCatalog.cs
@@ -63,10 +63,12 @@ protected override void Dispose(bool disposing)
protected virtual new void OnChanged(ComposablePartCatalogChangeEventArgs e)
{
+ Contract.Requires(e != null);
}
protected virtual new void OnChanging(ComposablePartCatalogChangeEventArgs e)
{
+ Contract.Requires(e != null);
}
public void Refresh()
diff --git a/Microsoft.Research/Contracts/System.ComponentModel.Composition/Sources/System.ComponentModel.Composition.Hosting.ExportProvider.cs b/Microsoft.Research/Contracts/System.ComponentModel.Composition/Sources/System.ComponentModel.Composition.Hosting.ExportProvider.cs
index 873dda40..cc1a3ad0 100644
--- a/Microsoft.Research/Contracts/System.ComponentModel.Composition/Sources/System.ComponentModel.Composition.Hosting.ExportProvider.cs
+++ b/Microsoft.Research/Contracts/System.ComponentModel.Composition/Sources/System.ComponentModel.Composition.Hosting.ExportProvider.cs
@@ -67,12 +67,16 @@ public Lazy GetExport(string contractName)
public T GetExportedValue(string contractName)
{
+ Contract.Ensures(Contract.Result() != null);
+ // because of ImportCardinality.ExactlyOne =>
+ // return this.GetExportedValueCore(contractName, ImportCardinality.ExactlyOne);
return default(T);
}
public T GetExportedValue()
{
- return default(T);
+ Contract.Ensures(Contract.Result() != null);
+ return this.GetExportedValue((string)null);
}
public T GetExportedValueOrDefault()
@@ -148,10 +152,12 @@ public IEnumerable> GetExports(Type type, Type metadataView
protected virtual new void OnExportsChanged(ExportsChangeEventArgs e)
{
+ Contract.Requires(e != null);
}
protected virtual new void OnExportsChanging(ExportsChangeEventArgs e)
{
+ Contract.Requires(e != null);
}
public bool TryGetExports(System.ComponentModel.Composition.Primitives.ImportDefinition definition, AtomicComposition atomicComposition, out IEnumerable exports)
diff --git a/Microsoft.Research/Contracts/System.Core.Contracts/System.Linq.Enumerable.cs b/Microsoft.Research/Contracts/System.Core.Contracts/System.Linq.Enumerable.cs
index 044786bd..8f49d511 100644
--- a/Microsoft.Research/Contracts/System.Core.Contracts/System.Linq.Enumerable.cs
+++ b/Microsoft.Research/Contracts/System.Core.Contracts/System.Linq.Enumerable.cs
@@ -1,15 +1,15 @@
// CodeContracts
-//
+//
// Copyright (c) Microsoft Corporation
-//
-// All rights reserved.
-//
+//
+// All rights reserved.
+//
// MIT License
-//
+//
// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-//
+//
// The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-//
+//
// THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
using System;
@@ -159,7 +159,7 @@ public static bool Contains(this IEnumerable source, TSource v
[Pure]
public static bool Contains(this IEnumerable source, TSource value, IEqualityComparer comparer)
{
- Contract.Requires(source != null);
+ Contract.Requires(source != null);
return default(bool);
}
//
@@ -252,6 +252,7 @@ public static IEnumerable DefaultIfEmpty(this IEnumerable>() != null);
+ Contract.Ensures(Contract.Result>().Any());
return default(IEnumerable);
}
@@ -279,6 +280,7 @@ public static IEnumerable DefaultIfEmpty(this IEnumerable>() != null);
+ Contract.Ensures(Contract.Result>().Any());
return default(IEnumerable);
}
//
@@ -587,7 +589,7 @@ public static TSource First(this IEnumerable source, Func(this IEnumerable source) {
Contract.Requires(source != null);
-
+
return default(TSource);
}
@@ -1272,7 +1274,7 @@ public static IEnumerable Join(this IEnu
public static TSource Last(this IEnumerable source) {
Contract.Requires(source != null);
Contract.Requires(Count(source) > 0);
-
+
return default(TSource);
}
//
@@ -1332,7 +1334,7 @@ public static TSource Last(this IEnumerable source, Func(this IEnumerable source) {
Contract.Requires(source != null);
-
+
return default(TSource);
}
//
@@ -1561,7 +1563,7 @@ public static double Max(this IEnumerable source) {
// System.InvalidOperationException:
// source contains no elements.
[Pure]
- public static float Max(this IEnumerable source)
+ public static float Max(this IEnumerable source)
{
Contract.Requires(source != null);
@@ -1585,7 +1587,7 @@ public static float Max(this IEnumerable source)
// System.ArgumentNullException:
// source is null.
[Pure]
- public static int? Max(this IEnumerable source)
+ public static int? Max(this IEnumerable source)
{
Contract.Requires(source != null);
@@ -1660,7 +1662,7 @@ public static long Max(this IEnumerable source)
{
Contract.Requires(source != null);
- return default(long);
+ return default(long);
}
//
// Summary:
@@ -1685,7 +1687,7 @@ public static TSource Max(this IEnumerable source)
{
Contract.Requires(source != null);
- return default(TSource);
+ return default(TSource);
}
//
// Summary:
@@ -1901,7 +1903,7 @@ public static float Max(this IEnumerable source, Func(this IEnumerable source, Func(this IEnumerable source, Func(this IEnumerable source, Func(this IEnumerable source, Fu
{
Contract.Requires(source != null);
Contract.Requires(selector != null);
-
- return default(TResult);
+
+ return default(TResult);
}
//
// Summary:
@@ -2054,8 +2056,8 @@ public static TResult Max