diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 000000000..66b2d4607
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,9 @@
+; What is EditorConfig? http://editorconfig.org/
+; Extension for VS2010/2012 to support .editorconfig files: http://visualstudiogallery.msdn.microsoft.com/c8bccfe2-650c-4b42-bc5c-845e21f96328
+
+root = true
+
+; use tabs identation for all files
+[*]
+indent_style = tab
+
diff --git a/.gitignore b/.gitignore
index 01577f78f..81d9e0a9e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -41,4 +41,11 @@ BLToolkit.2010.userprefs
Mono/_ReSharper.Mono/*
BLToolkit.2010.sln.docstates
*.csproj.user
-UnitTests/BLToolkit.Linq.VisualState.xml
\ No newline at end of file
+UnitTests/BLToolkit.Linq.VisualState.xml
+UnitTests/Linq/UserDataProviders.txt
+!*.dll
+*.ncrunchsolution
+!*.exe
+!*.pdb
+BLToolkit.2012.opensdf
+ipch/examples.cpp-54293a33/examples.ipch
diff --git a/BLToolkit.2008.5.1.ReSharper b/BLToolkit.2008.5.1.ReSharper
deleted file mode 100644
index 42abd66f8..000000000
--- a/BLToolkit.2008.5.1.ReSharper
+++ /dev/null
@@ -1,86 +0,0 @@
-
-
-
-
- SOLUTION
-
-
-
- - public
- - protected
- - internal
- - private
- - new
- - abstract
- - virtual
- - override
- - sealed
- - static
- - readonly
- - extern
- - unsafe
- - volatile
-
- False
- True
- True
- False
- False
- False
- True
-
-
-
- - System
-
-
- - System
-
-
-
- $object$_On$event$
- $event$Handler
-
-
-
-
-
-
- $object$_On$event$
- $event$Handler
-
-
-
-
-
-
-
-
-
-
-
-
-
- $object$_On$event$
- $event$Handler
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/BLToolkit.2008.sln b/BLToolkit.2008.sln
index c89bb4669..ec7ef73e0 100644
--- a/BLToolkit.2008.sln
+++ b/BLToolkit.2008.sln
@@ -19,29 +19,27 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLTgen.2008", "Tools\BLTgen
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Templates.2008", "Tools\Templates\Templates.2008.csproj", "{6E0C5565-F9A3-441C-9CB2-8B1878A800EF}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NUnitAddin", "Tools\NUnitAddin\NUnitAddin.csproj", "{B951C0DA-943C-4B04-BCAF-8180DD5829C2}"
-EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Linq", "Linq", "{4ABA64DA-8981-42F5-9144-DFD5350BEC2D}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "DataProviders", "DataProviders", "{9F229425-A623-4066-9A92-84F31DD54FD2}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLToolkit.Data.DataProvider.DB2.3", "DataProviders\BLToolkit.Data.DataProvider.DB2.3.csproj", "{86BF4F10-3606-4016-9919-84C3335813B6}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLToolkit.Data.DataProvider.DB2.3", "DataProviders\DB2\BLToolkit.Data.DataProvider.DB2.3.csproj", "{86BF4F10-3606-4016-9919-84C3335813B6}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLToolkit.Data.DataProvider.Firebird.3", "DataProviders\BLToolkit.Data.DataProvider.Firebird.3.csproj", "{C1F8C201-BBD9-44F4-884C-CFF8CC960B68}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLToolkit.Data.DataProvider.Firebird.3", "DataProviders\Firebird\BLToolkit.Data.DataProvider.Firebird.3.csproj", "{C1F8C201-BBD9-44F4-884C-CFF8CC960B68}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLToolkit.Data.DataProvider.Informix.3", "DataProviders\BLToolkit.Data.DataProvider.Informix.3.csproj", "{B1DEA25C-7667-471B-BBAD-64D017FDD104}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLToolkit.Data.DataProvider.Informix.3", "DataProviders\Informix\BLToolkit.Data.DataProvider.Informix.3.csproj", "{B1DEA25C-7667-471B-BBAD-64D017FDD104}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLToolkit.Data.DataProvider.MySql.3", "DataProviders\BLToolkit.Data.DataProvider.MySql.3.csproj", "{3578AF4C-CBFF-4A38-88F5-E86AC990AFBD}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLToolkit.Data.DataProvider.MySql.3", "DataProviders\MySql\BLToolkit.Data.DataProvider.MySql.3.csproj", "{3578AF4C-CBFF-4A38-88F5-E86AC990AFBD}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLToolkit.Data.DataProvider.Oracle.3", "DataProviders\BLToolkit.Data.DataProvider.Oracle.3.csproj", "{2B5287F2-A6AC-4D5A-B0A8-01C06144824D}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLToolkit.Data.DataProvider.Oracle.3", "DataProviders\Oracle\BLToolkit.Data.DataProvider.Oracle.3.csproj", "{2B5287F2-A6AC-4D5A-B0A8-01C06144824D}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLToolkit.Data.DataProvider.PostgreSQL.3", "DataProviders\BLToolkit.Data.DataProvider.PostgreSQL.3.csproj", "{5A556D57-0D68-433B-AD78-02849583582B}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLToolkit.Data.DataProvider.PostgreSQL.3", "DataProviders\PostgreSQL\BLToolkit.Data.DataProvider.PostgreSQL.3.csproj", "{5A556D57-0D68-433B-AD78-02849583582B}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLToolkit.Data.DataProvider.SqlCe.3", "DataProviders\BLToolkit.Data.DataProvider.SqlCe.3.csproj", "{85E90F57-8DE1-4912-8414-28578F4D71CD}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLToolkit.Data.DataProvider.SqlCe.3", "DataProviders\SqlCe\BLToolkit.Data.DataProvider.SqlCe.3.csproj", "{85E90F57-8DE1-4912-8414-28578F4D71CD}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLToolkit.Data.DataProvider.SQLite.3", "DataProviders\BLToolkit.Data.DataProvider.SQLite.3.csproj", "{3E414663-B673-47A8-AB59-0E08FE43DA86}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLToolkit.Data.DataProvider.SQLite.3", "DataProviders\SQLite\BLToolkit.Data.DataProvider.SQLite.3.csproj", "{3E414663-B673-47A8-AB59-0E08FE43DA86}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLToolkit.Data.DataProvider.Sybase.3", "DataProviders\BLToolkit.Data.DataProvider.Sybase.3.csproj", "{6CD8CC3D-643D-4D09-8660-A26085C44FBC}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLToolkit.Data.DataProvider.Sybase.3", "DataProviders\Sybase\BLToolkit.Data.DataProvider.Sybase.3.csproj", "{6CD8CC3D-643D-4D09-8660-A26085C44FBC}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Linq.Demo.2008", "Demo\Linq\Demo\Linq.Demo.2008.csproj", "{57CE5505-44CB-42E4-A346-3471F68A5B60}"
EndProject
@@ -105,18 +103,6 @@ Global
{6E0C5565-F9A3-441C-9CB2-8B1878A800EF}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{6E0C5565-F9A3-441C-9CB2-8B1878A800EF}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{6E0C5565-F9A3-441C-9CB2-8B1878A800EF}.Release|Win32.ActiveCfg = Release|Any CPU
- {B951C0DA-943C-4B04-BCAF-8180DD5829C2}.Debug|.NET.ActiveCfg = Debug|Any CPU
- {B951C0DA-943C-4B04-BCAF-8180DD5829C2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {B951C0DA-943C-4B04-BCAF-8180DD5829C2}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {B951C0DA-943C-4B04-BCAF-8180DD5829C2}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
- {B951C0DA-943C-4B04-BCAF-8180DD5829C2}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
- {B951C0DA-943C-4B04-BCAF-8180DD5829C2}.Debug|Win32.ActiveCfg = Debug|Any CPU
- {B951C0DA-943C-4B04-BCAF-8180DD5829C2}.Release|.NET.ActiveCfg = Release|Any CPU
- {B951C0DA-943C-4B04-BCAF-8180DD5829C2}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {B951C0DA-943C-4B04-BCAF-8180DD5829C2}.Release|Any CPU.Build.0 = Release|Any CPU
- {B951C0DA-943C-4B04-BCAF-8180DD5829C2}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
- {B951C0DA-943C-4B04-BCAF-8180DD5829C2}.Release|Mixed Platforms.Build.0 = Release|Any CPU
- {B951C0DA-943C-4B04-BCAF-8180DD5829C2}.Release|Win32.ActiveCfg = Release|Any CPU
{86BF4F10-3606-4016-9919-84C3335813B6}.Debug|.NET.ActiveCfg = Debug|Any CPU
{86BF4F10-3606-4016-9919-84C3335813B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{86BF4F10-3606-4016-9919-84C3335813B6}.Debug|Any CPU.Build.0 = Debug|Any CPU
@@ -245,7 +231,6 @@ Global
{DE735B24-E20B-4440-BBBB-35AECC3F1124} = {92307E70-A839-4A76-9701-B5603B05BC08}
{65FC918C-FF12-4C75-96F5-180B552989E5} = {92307E70-A839-4A76-9701-B5603B05BC08}
{6E0C5565-F9A3-441C-9CB2-8B1878A800EF} = {92307E70-A839-4A76-9701-B5603B05BC08}
- {B951C0DA-943C-4B04-BCAF-8180DD5829C2} = {92307E70-A839-4A76-9701-B5603B05BC08}
{4ABA64DA-8981-42F5-9144-DFD5350BEC2D} = {F45E2E57-2D88-49DF-8C97-9D8EE7A0A4B1}
{57CE5505-44CB-42E4-A346-3471F68A5B60} = {4ABA64DA-8981-42F5-9144-DFD5350BEC2D}
{86BF4F10-3606-4016-9919-84C3335813B6} = {9F229425-A623-4066-9A92-84F31DD54FD2}
diff --git a/BLToolkit.2010.sln b/BLToolkit.2010.sln
index a8db7a0ad..783ea0a9b 100644
--- a/BLToolkit.2010.sln
+++ b/BLToolkit.2010.sln
@@ -1,6 +1,6 @@
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual Studio 2010
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 2012
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLToolkit.4", "Source\BLToolkit.4.csproj", "{0C325F5D-E50E-4340-8724-D29896CCC583}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "UnitTests", "UnitTests", "{2CC0A340-512C-4F0D-A5E6-87C042EE13B9}"
@@ -21,23 +21,23 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Templates", "Tools\Template
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "DataProviders", "DataProviders", "{E6CE0ECB-3373-4DC0-98CB-F4E9DC2293C4}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLToolkit.Data.DataProvider.DB2.4", "DataProviders\BLToolkit.Data.DataProvider.DB2.4.csproj", "{86BF4F10-3606-4016-9919-84C3335813B6}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLToolkit.Data.DataProvider.DB2.4", "DataProviders\DB2\BLToolkit.Data.DataProvider.DB2.4.csproj", "{86BF4F10-3606-4016-9919-84C3335813B6}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLToolkit.Data.DataProvider.Firebird.4", "DataProviders\BLToolkit.Data.DataProvider.Firebird.4.csproj", "{C1F8C201-BBD9-44F4-884C-CFF8CC960B68}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLToolkit.Data.DataProvider.Firebird.4", "DataProviders\Firebird\BLToolkit.Data.DataProvider.Firebird.4.csproj", "{C1F8C201-BBD9-44F4-884C-CFF8CC960B68}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLToolkit.Data.DataProvider.Informix.4", "DataProviders\BLToolkit.Data.DataProvider.Informix.4.csproj", "{B1DEA25C-7667-471B-BBAD-64D017FDD104}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLToolkit.Data.DataProvider.Informix.4", "DataProviders\Informix\BLToolkit.Data.DataProvider.Informix.4.csproj", "{B1DEA25C-7667-471B-BBAD-64D017FDD104}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLToolkit.Data.DataProvider.MySql.4", "DataProviders\BLToolkit.Data.DataProvider.MySql.4.csproj", "{3578AF4C-CBFF-4A38-88F5-E86AC990AFBD}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLToolkit.Data.DataProvider.MySql.4", "DataProviders\MySql\BLToolkit.Data.DataProvider.MySql.4.csproj", "{3578AF4C-CBFF-4A38-88F5-E86AC990AFBD}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLToolkit.Data.DataProvider.Oracle.4", "DataProviders\BLToolkit.Data.DataProvider.Oracle.4.csproj", "{2B5287F2-A6AC-4D5A-B0A8-01C06144824D}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLToolkit.Data.DataProvider.Oracle.4", "DataProviders\Oracle\BLToolkit.Data.DataProvider.Oracle.4.csproj", "{2B5287F2-A6AC-4D5A-B0A8-01C06144824D}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLToolkit.Data.DataProvider.PostgreSQL.4", "DataProviders\BLToolkit.Data.DataProvider.PostgreSQL.4.csproj", "{5A556D57-0D68-433B-AD78-02849583582B}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLToolkit.Data.DataProvider.PostgreSQL.4", "DataProviders\PostgreSQL\BLToolkit.Data.DataProvider.PostgreSQL.4.csproj", "{5A556D57-0D68-433B-AD78-02849583582B}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLToolkit.Data.DataProvider.SqlCe.4", "DataProviders\BLToolkit.Data.DataProvider.SqlCe.4.csproj", "{85E90F57-8DE1-4912-8414-28578F4D71CD}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLToolkit.Data.DataProvider.SqlCe.4", "DataProviders\SqlCe\BLToolkit.Data.DataProvider.SqlCe.4.csproj", "{85E90F57-8DE1-4912-8414-28578F4D71CD}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLToolkit.Data.DataProvider.SQLite.4", "DataProviders\BLToolkit.Data.DataProvider.SQLite.4.csproj", "{3E414663-B673-47A8-AB59-0E08FE43DA86}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLToolkit.Data.DataProvider.SQLite.4", "DataProviders\SQLite\BLToolkit.Data.DataProvider.SQLite.4.csproj", "{3E414663-B673-47A8-AB59-0E08FE43DA86}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLToolkit.Data.DataProvider.Sybase.4", "DataProviders\BLToolkit.Data.DataProvider.Sybase.4.csproj", "{6CD8CC3D-643D-4D09-8660-A26085C44FBC}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLToolkit.Data.DataProvider.Sybase.4", "DataProviders\Sybase\BLToolkit.Data.DataProvider.Sybase.4.csproj", "{6CD8CC3D-643D-4D09-8660-A26085C44FBC}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLToolkit.SL.4", "Source\BLToolkit.SL.4.csproj", "{663D4BFC-F565-41F7-9409-510B560CCEE8}"
EndProject
@@ -132,6 +132,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Create Scripts", "Create Sc
Data\Create Scripts\Firebird2.sql = Data\Create Scripts\Firebird2.sql
Data\Create Scripts\Informix.sql = Data\Create Scripts\Informix.sql
Data\Create Scripts\MsSql.sql = Data\Create Scripts\MsSql.sql
+ Data\Create Scripts\MsSql2000.sql = Data\Create Scripts\MsSql2000.sql
Data\Create Scripts\MySql.sql = Data\Create Scripts\MySql.sql
Data\Create Scripts\Oracle.sql = Data\Create Scripts\Oracle.sql
Data\Create Scripts\PostgreSQL.sql = Data\Create Scripts\PostgreSQL.sql
@@ -148,9 +149,12 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLToolkit.4.JointureAddOn",
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Extensions", "Extensions", "{218E3584-CDC7-4A77-AD1A-CF9FBE90F67F}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTests.Regression", "UnitTests\UnitTests.Regression\UnitTests.Regression.csproj", "{74D1AF0E-C0AB-4A62-99A3-0975585760A5}"
+EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "NuGet", "NuGet", "{4A9C0E31-8697-48BA-A46B-6A5EE78424D6}"
ProjectSection(SolutionItems) = preProject
NuGet\BLToolkit.DB2.nuspec = NuGet\BLToolkit.DB2.nuspec
+ NuGet\BLToolkit.DevartOraclePro.nuspec = NuGet\BLToolkit.DevartOraclePro.nuspec
NuGet\BLToolkit.Firebird.nuspec = NuGet\BLToolkit.Firebird.nuspec
NuGet\BLToolkit.Informix.nuspec = NuGet\BLToolkit.Informix.nuspec
NuGet\BLToolkit.MySql.nuspec = NuGet\BLToolkit.MySql.nuspec
@@ -169,7 +173,11 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLToolkit.CP.4", "Source\BL
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NorthwindDataService", "Demo\WebServices\NorthwindDataService\NorthwindDataService.csproj", "{87FB4F28-5DCC-4F21-B83E-59C85E1A7423}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLToolkit.Data.DataProvider.OracleManaged.4", "DataProviders\BLToolkit.Data.DataProvider.OracleManaged.4.csproj", "{785CE174-0A91-465F-9E41-65E6E05A0EC9}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLToolkit.Data.DataProvider.OracleManaged.4", "DataProviders\Oracle\BLToolkit.Data.DataProvider.OracleManaged.4.csproj", "{61985B06-67FD-4941-B1B0-7F3794FD237C}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLToolkit.Data.DataProvider.DevartOracle.4", "DataProviders\DevartOraclePro\BLToolkit.Data.DataProvider.DevartOracle.4.csproj", "{CB303F0B-0AA3-4589-850A-95E985A09492}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLToolkit.Data.DataProvider.Generic.4", "DataProviders\Generic\BLToolkit.Data.DataProvider.Generic.4.csproj", "{6E7FE7FC-551F-4273-ACEB-72DC0D01120E}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -1279,7 +1287,6 @@ Global
{7DAA2EBB-A724-498F-93BB-68966E2B738F}.Release|Any CPU.ActiveCfg = Debug|Any CPU
{7DAA2EBB-A724-498F-93BB-68966E2B738F}.Release|Any CPU.Build.0 = Debug|Any CPU
{7DAA2EBB-A724-498F-93BB-68966E2B738F}.Release|Mixed Platforms.ActiveCfg = Debug|Any CPU
- {7DAA2EBB-A724-498F-93BB-68966E2B738F}.Release|Mixed Platforms.Build.0 = Debug|Any CPU
{7DAA2EBB-A724-498F-93BB-68966E2B738F}.Release|Win32.ActiveCfg = Debug|Any CPU
{7DAA2EBB-A724-498F-93BB-68966E2B738F}.Release|x64.ActiveCfg = Debug|Any CPU
{7DAA2EBB-A724-498F-93BB-68966E2B738F}.Release|x86.ActiveCfg = Debug|Any CPU
@@ -1760,6 +1767,46 @@ Global
{9FD2722C-1E6C-4061-8AC0-32EE28808FC0}.Template|Win32.ActiveCfg = Release|Any CPU
{9FD2722C-1E6C-4061-8AC0-32EE28808FC0}.Template|x64.ActiveCfg = Release|Any CPU
{9FD2722C-1E6C-4061-8AC0-32EE28808FC0}.Template|x86.ActiveCfg = Release|Any CPU
+ {74D1AF0E-C0AB-4A62-99A3-0975585760A5}.Debug FW 3.5|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {74D1AF0E-C0AB-4A62-99A3-0975585760A5}.Debug FW 3.5|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {74D1AF0E-C0AB-4A62-99A3-0975585760A5}.Debug FW 3.5|Win32.ActiveCfg = DebugMono|Any CPU
+ {74D1AF0E-C0AB-4A62-99A3-0975585760A5}.Debug FW 3.5|x64.ActiveCfg = DebugMono|Any CPU
+ {74D1AF0E-C0AB-4A62-99A3-0975585760A5}.Debug FW 3.5|x86.ActiveCfg = DebugMono|Any CPU
+ {74D1AF0E-C0AB-4A62-99A3-0975585760A5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {74D1AF0E-C0AB-4A62-99A3-0975585760A5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {74D1AF0E-C0AB-4A62-99A3-0975585760A5}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {74D1AF0E-C0AB-4A62-99A3-0975585760A5}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {74D1AF0E-C0AB-4A62-99A3-0975585760A5}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {74D1AF0E-C0AB-4A62-99A3-0975585760A5}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {74D1AF0E-C0AB-4A62-99A3-0975585760A5}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {74D1AF0E-C0AB-4A62-99A3-0975585760A5}.DebugMono|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {74D1AF0E-C0AB-4A62-99A3-0975585760A5}.DebugMono|Any CPU.Build.0 = DebugMono|Any CPU
+ {74D1AF0E-C0AB-4A62-99A3-0975585760A5}.DebugMono|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {74D1AF0E-C0AB-4A62-99A3-0975585760A5}.DebugMono|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {74D1AF0E-C0AB-4A62-99A3-0975585760A5}.DebugMono|Win32.ActiveCfg = DebugMono|Any CPU
+ {74D1AF0E-C0AB-4A62-99A3-0975585760A5}.DebugMono|x64.ActiveCfg = DebugMono|Any CPU
+ {74D1AF0E-C0AB-4A62-99A3-0975585760A5}.DebugMono|x86.ActiveCfg = DebugMono|Any CPU
+ {74D1AF0E-C0AB-4A62-99A3-0975585760A5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {74D1AF0E-C0AB-4A62-99A3-0975585760A5}.Release|Any CPU.Build.0 = Release|Any CPU
+ {74D1AF0E-C0AB-4A62-99A3-0975585760A5}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {74D1AF0E-C0AB-4A62-99A3-0975585760A5}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {74D1AF0E-C0AB-4A62-99A3-0975585760A5}.Release|Win32.ActiveCfg = Release|Any CPU
+ {74D1AF0E-C0AB-4A62-99A3-0975585760A5}.Release|x64.ActiveCfg = Release|Any CPU
+ {74D1AF0E-C0AB-4A62-99A3-0975585760A5}.Release|x86.ActiveCfg = Release|Any CPU
+ {74D1AF0E-C0AB-4A62-99A3-0975585760A5}.ReleaseMono|Any CPU.ActiveCfg = ReleaseMono|Any CPU
+ {74D1AF0E-C0AB-4A62-99A3-0975585760A5}.ReleaseMono|Any CPU.Build.0 = ReleaseMono|Any CPU
+ {74D1AF0E-C0AB-4A62-99A3-0975585760A5}.ReleaseMono|Mixed Platforms.ActiveCfg = ReleaseMono|Any CPU
+ {74D1AF0E-C0AB-4A62-99A3-0975585760A5}.ReleaseMono|Mixed Platforms.Build.0 = ReleaseMono|Any CPU
+ {74D1AF0E-C0AB-4A62-99A3-0975585760A5}.ReleaseMono|Win32.ActiveCfg = ReleaseMono|Any CPU
+ {74D1AF0E-C0AB-4A62-99A3-0975585760A5}.ReleaseMono|x64.ActiveCfg = ReleaseMono|Any CPU
+ {74D1AF0E-C0AB-4A62-99A3-0975585760A5}.ReleaseMono|x86.ActiveCfg = ReleaseMono|Any CPU
+ {74D1AF0E-C0AB-4A62-99A3-0975585760A5}.Template|Any CPU.ActiveCfg = ReleaseMono|Any CPU
+ {74D1AF0E-C0AB-4A62-99A3-0975585760A5}.Template|Any CPU.Build.0 = ReleaseMono|Any CPU
+ {74D1AF0E-C0AB-4A62-99A3-0975585760A5}.Template|Mixed Platforms.ActiveCfg = ReleaseMono|Any CPU
+ {74D1AF0E-C0AB-4A62-99A3-0975585760A5}.Template|Mixed Platforms.Build.0 = ReleaseMono|Any CPU
+ {74D1AF0E-C0AB-4A62-99A3-0975585760A5}.Template|Win32.ActiveCfg = ReleaseMono|Any CPU
+ {74D1AF0E-C0AB-4A62-99A3-0975585760A5}.Template|x64.ActiveCfg = ReleaseMono|Any CPU
+ {74D1AF0E-C0AB-4A62-99A3-0975585760A5}.Template|x86.ActiveCfg = ReleaseMono|Any CPU
{0C325F5D-E50E-4340-8724-D29896CCC584}.Debug FW 3.5|Any CPU.ActiveCfg = Debug FW 3.5|Any CPU
{0C325F5D-E50E-4340-8724-D29896CCC584}.Debug FW 3.5|Any CPU.Build.0 = Debug FW 3.5|Any CPU
{0C325F5D-E50E-4340-8724-D29896CCC584}.Debug FW 3.5|Mixed Platforms.ActiveCfg = Debug FW 3.5|Any CPU
@@ -1886,62 +1933,144 @@ Global
{87FB4F28-5DCC-4F21-B83E-59C85E1A7423}.Template|Win32.ActiveCfg = Release|Any CPU
{87FB4F28-5DCC-4F21-B83E-59C85E1A7423}.Template|x64.ActiveCfg = Release|Any CPU
{87FB4F28-5DCC-4F21-B83E-59C85E1A7423}.Template|x86.ActiveCfg = Release|Any CPU
- {785CE174-0A91-465F-9E41-65E6E05A0EC9}.Debug FW 3.5|Any CPU.ActiveCfg = DebugMono|Any CPU
- {785CE174-0A91-465F-9E41-65E6E05A0EC9}.Debug FW 3.5|Any CPU.Build.0 = DebugMono|Any CPU
- {785CE174-0A91-465F-9E41-65E6E05A0EC9}.Debug FW 3.5|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
- {785CE174-0A91-465F-9E41-65E6E05A0EC9}.Debug FW 3.5|Mixed Platforms.Build.0 = DebugMono|Any CPU
- {785CE174-0A91-465F-9E41-65E6E05A0EC9}.Debug FW 3.5|Win32.ActiveCfg = DebugMono|Any CPU
- {785CE174-0A91-465F-9E41-65E6E05A0EC9}.Debug FW 3.5|x64.ActiveCfg = DebugMono|Any CPU
- {785CE174-0A91-465F-9E41-65E6E05A0EC9}.Debug FW 3.5|x86.ActiveCfg = DebugMono|Any CPU
- {785CE174-0A91-465F-9E41-65E6E05A0EC9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {785CE174-0A91-465F-9E41-65E6E05A0EC9}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {785CE174-0A91-465F-9E41-65E6E05A0EC9}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
- {785CE174-0A91-465F-9E41-65E6E05A0EC9}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
- {785CE174-0A91-465F-9E41-65E6E05A0EC9}.Debug|Win32.ActiveCfg = Debug|Any CPU
- {785CE174-0A91-465F-9E41-65E6E05A0EC9}.Debug|x64.ActiveCfg = Debug|Any CPU
- {785CE174-0A91-465F-9E41-65E6E05A0EC9}.Debug|x86.ActiveCfg = Debug|Any CPU
- {785CE174-0A91-465F-9E41-65E6E05A0EC9}.DebugMono|Any CPU.ActiveCfg = DebugMono|Any CPU
- {785CE174-0A91-465F-9E41-65E6E05A0EC9}.DebugMono|Any CPU.Build.0 = DebugMono|Any CPU
- {785CE174-0A91-465F-9E41-65E6E05A0EC9}.DebugMono|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
- {785CE174-0A91-465F-9E41-65E6E05A0EC9}.DebugMono|Mixed Platforms.Build.0 = DebugMono|Any CPU
- {785CE174-0A91-465F-9E41-65E6E05A0EC9}.DebugMono|Win32.ActiveCfg = DebugMono|Any CPU
- {785CE174-0A91-465F-9E41-65E6E05A0EC9}.DebugMono|x64.ActiveCfg = DebugMono|Any CPU
- {785CE174-0A91-465F-9E41-65E6E05A0EC9}.DebugMono|x86.ActiveCfg = DebugMono|Any CPU
- {785CE174-0A91-465F-9E41-65E6E05A0EC9}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {785CE174-0A91-465F-9E41-65E6E05A0EC9}.Release|Any CPU.Build.0 = Release|Any CPU
- {785CE174-0A91-465F-9E41-65E6E05A0EC9}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
- {785CE174-0A91-465F-9E41-65E6E05A0EC9}.Release|Mixed Platforms.Build.0 = Release|Any CPU
- {785CE174-0A91-465F-9E41-65E6E05A0EC9}.Release|Win32.ActiveCfg = Release|Any CPU
- {785CE174-0A91-465F-9E41-65E6E05A0EC9}.Release|x64.ActiveCfg = Release|Any CPU
- {785CE174-0A91-465F-9E41-65E6E05A0EC9}.Release|x86.ActiveCfg = Release|Any CPU
- {785CE174-0A91-465F-9E41-65E6E05A0EC9}.ReleaseMono|Any CPU.ActiveCfg = ReleaseMono|Any CPU
- {785CE174-0A91-465F-9E41-65E6E05A0EC9}.ReleaseMono|Any CPU.Build.0 = ReleaseMono|Any CPU
- {785CE174-0A91-465F-9E41-65E6E05A0EC9}.ReleaseMono|Mixed Platforms.ActiveCfg = ReleaseMono|Any CPU
- {785CE174-0A91-465F-9E41-65E6E05A0EC9}.ReleaseMono|Mixed Platforms.Build.0 = ReleaseMono|Any CPU
- {785CE174-0A91-465F-9E41-65E6E05A0EC9}.ReleaseMono|Win32.ActiveCfg = ReleaseMono|Any CPU
- {785CE174-0A91-465F-9E41-65E6E05A0EC9}.ReleaseMono|x64.ActiveCfg = ReleaseMono|Any CPU
- {785CE174-0A91-465F-9E41-65E6E05A0EC9}.ReleaseMono|x86.ActiveCfg = ReleaseMono|Any CPU
- {785CE174-0A91-465F-9E41-65E6E05A0EC9}.Template|Any CPU.ActiveCfg = ReleaseMono|Any CPU
- {785CE174-0A91-465F-9E41-65E6E05A0EC9}.Template|Any CPU.Build.0 = ReleaseMono|Any CPU
- {785CE174-0A91-465F-9E41-65E6E05A0EC9}.Template|Mixed Platforms.ActiveCfg = ReleaseMono|Any CPU
- {785CE174-0A91-465F-9E41-65E6E05A0EC9}.Template|Mixed Platforms.Build.0 = ReleaseMono|Any CPU
- {785CE174-0A91-465F-9E41-65E6E05A0EC9}.Template|Win32.ActiveCfg = ReleaseMono|Any CPU
- {785CE174-0A91-465F-9E41-65E6E05A0EC9}.Template|x64.ActiveCfg = ReleaseMono|Any CPU
- {785CE174-0A91-465F-9E41-65E6E05A0EC9}.Template|x86.ActiveCfg = ReleaseMono|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.Debug FW 3.5|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.Debug FW 3.5|Any CPU.Build.0 = DebugMono|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.Debug FW 3.5|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.Debug FW 3.5|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.Debug FW 3.5|Win32.ActiveCfg = DebugMono|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.Debug FW 3.5|x64.ActiveCfg = DebugMono|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.Debug FW 3.5|x86.ActiveCfg = DebugMono|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.DebugMono|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.DebugMono|Any CPU.Build.0 = DebugMono|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.DebugMono|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.DebugMono|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.DebugMono|Win32.ActiveCfg = DebugMono|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.DebugMono|x64.ActiveCfg = DebugMono|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.DebugMono|x86.ActiveCfg = DebugMono|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.Release|Any CPU.Build.0 = Release|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.Release|Win32.ActiveCfg = Release|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.Release|x64.ActiveCfg = Release|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.Release|x86.ActiveCfg = Release|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.ReleaseMono|Any CPU.ActiveCfg = ReleaseMono|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.ReleaseMono|Any CPU.Build.0 = ReleaseMono|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.ReleaseMono|Mixed Platforms.ActiveCfg = ReleaseMono|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.ReleaseMono|Mixed Platforms.Build.0 = ReleaseMono|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.ReleaseMono|Win32.ActiveCfg = ReleaseMono|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.ReleaseMono|x64.ActiveCfg = ReleaseMono|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.ReleaseMono|x86.ActiveCfg = ReleaseMono|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.Template|Any CPU.ActiveCfg = ReleaseMono|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.Template|Any CPU.Build.0 = ReleaseMono|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.Template|Mixed Platforms.ActiveCfg = ReleaseMono|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.Template|Mixed Platforms.Build.0 = ReleaseMono|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.Template|Win32.ActiveCfg = ReleaseMono|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.Template|x64.ActiveCfg = ReleaseMono|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.Template|x86.ActiveCfg = ReleaseMono|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.Debug FW 3.5|Any CPU.ActiveCfg = Debug|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.Debug FW 3.5|Any CPU.Build.0 = Debug|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.Debug FW 3.5|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.Debug FW 3.5|Mixed Platforms.Build.0 = Debug|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.Debug FW 3.5|Win32.ActiveCfg = Debug|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.Debug FW 3.5|x64.ActiveCfg = Debug|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.Debug FW 3.5|x86.ActiveCfg = Debug|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.DebugMono|Any CPU.ActiveCfg = Debug|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.DebugMono|Any CPU.Build.0 = Debug|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.DebugMono|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.DebugMono|Mixed Platforms.Build.0 = Debug|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.DebugMono|Win32.ActiveCfg = Debug|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.DebugMono|x64.ActiveCfg = Debug|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.DebugMono|x86.ActiveCfg = Debug|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.Release|Any CPU.Build.0 = Release|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.Release|Win32.ActiveCfg = Release|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.Release|x64.ActiveCfg = Release|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.Release|x86.ActiveCfg = Release|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.ReleaseMono|Any CPU.ActiveCfg = Release|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.ReleaseMono|Any CPU.Build.0 = Release|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.ReleaseMono|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.ReleaseMono|Mixed Platforms.Build.0 = Release|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.ReleaseMono|Win32.ActiveCfg = Release|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.ReleaseMono|x64.ActiveCfg = Release|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.ReleaseMono|x86.ActiveCfg = Release|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.Template|Any CPU.ActiveCfg = Release|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.Template|Any CPU.Build.0 = Release|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.Template|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.Template|Mixed Platforms.Build.0 = Release|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.Template|Win32.ActiveCfg = Release|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.Template|x64.ActiveCfg = Release|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.Template|x86.ActiveCfg = Release|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.Debug FW 3.5|Any CPU.ActiveCfg = Debug|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.Debug FW 3.5|Any CPU.Build.0 = Debug|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.Debug FW 3.5|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.Debug FW 3.5|Mixed Platforms.Build.0 = Debug|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.Debug FW 3.5|Win32.ActiveCfg = Debug|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.Debug FW 3.5|x64.ActiveCfg = Debug|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.Debug FW 3.5|x86.ActiveCfg = Debug|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.DebugMono|Any CPU.ActiveCfg = Debug|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.DebugMono|Any CPU.Build.0 = Debug|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.DebugMono|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.DebugMono|Mixed Platforms.Build.0 = Debug|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.DebugMono|Win32.ActiveCfg = Debug|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.DebugMono|x64.ActiveCfg = Debug|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.DebugMono|x86.ActiveCfg = Debug|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.Release|Any CPU.Build.0 = Release|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.Release|Win32.ActiveCfg = Release|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.Release|x64.ActiveCfg = Release|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.Release|x86.ActiveCfg = Release|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.ReleaseMono|Any CPU.ActiveCfg = Release|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.ReleaseMono|Any CPU.Build.0 = Release|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.ReleaseMono|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.ReleaseMono|Mixed Platforms.Build.0 = Release|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.ReleaseMono|Win32.ActiveCfg = Release|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.ReleaseMono|x64.ActiveCfg = Release|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.ReleaseMono|x86.ActiveCfg = Release|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.Template|Any CPU.ActiveCfg = Release|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.Template|Any CPU.Build.0 = Release|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.Template|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.Template|Mixed Platforms.Build.0 = Release|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.Template|Win32.ActiveCfg = Release|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.Template|x64.ActiveCfg = Release|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.Template|x86.ActiveCfg = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{D527524F-EC92-465E-9CAE-86278121675A} = {2CC0A340-512C-4F0D-A5E6-87C042EE13B9}
- {D11617AB-9F88-4C74-8ABD-F8580DB4B01B} = {2CC0A340-512C-4F0D-A5E6-87C042EE13B9}
- {07997A18-86D3-47AC-A514-AB1B03E6AEC8} = {2CC0A340-512C-4F0D-A5E6-87C042EE13B9}
{4FDE7340-F60F-49BC-86CD-756CCD26C92A} = {2CC0A340-512C-4F0D-A5E6-87C042EE13B9}
{2BB4AD77-190F-4D7E-A83E-7B254A0A1FCA} = {2CC0A340-512C-4F0D-A5E6-87C042EE13B9}
{6AE74A35-B337-4B17-8092-E1B98DEF06AF} = {2CC0A340-512C-4F0D-A5E6-87C042EE13B9}
+ {74D1AF0E-C0AB-4A62-99A3-0975585760A5} = {2CC0A340-512C-4F0D-A5E6-87C042EE13B9}
{6E0C5565-F9A3-441C-9CB2-8B1878A800EF} = {C0306556-68F4-4DD5-95F2-AAFEE8FACDFA}
{65FC918C-FF12-4C75-96F5-180B552989E5} = {C0306556-68F4-4DD5-95F2-AAFEE8FACDFA}
- {F2B014F7-3807-4938-8F02-3CF8247C47DC} = {C0306556-68F4-4DD5-95F2-AAFEE8FACDFA}
{86BF4F10-3606-4016-9919-84C3335813B6} = {E6CE0ECB-3373-4DC0-98CB-F4E9DC2293C4}
{C1F8C201-BBD9-44F4-884C-CFF8CC960B68} = {E6CE0ECB-3373-4DC0-98CB-F4E9DC2293C4}
{B1DEA25C-7667-471B-BBAD-64D017FDD104} = {E6CE0ECB-3373-4DC0-98CB-F4E9DC2293C4}
@@ -1951,7 +2080,9 @@ Global
{85E90F57-8DE1-4912-8414-28578F4D71CD} = {E6CE0ECB-3373-4DC0-98CB-F4E9DC2293C4}
{3E414663-B673-47A8-AB59-0E08FE43DA86} = {E6CE0ECB-3373-4DC0-98CB-F4E9DC2293C4}
{6CD8CC3D-643D-4D09-8660-A26085C44FBC} = {E6CE0ECB-3373-4DC0-98CB-F4E9DC2293C4}
- {785CE174-0A91-465F-9E41-65E6E05A0EC9} = {E6CE0ECB-3373-4DC0-98CB-F4E9DC2293C4}
+ {CB303F0B-0AA3-4589-850A-95E985A09492} = {E6CE0ECB-3373-4DC0-98CB-F4E9DC2293C4}
+ {61985B06-67FD-4941-B1B0-7F3794FD237C} = {E6CE0ECB-3373-4DC0-98CB-F4E9DC2293C4}
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E} = {E6CE0ECB-3373-4DC0-98CB-F4E9DC2293C4}
{83C0070F-E639-4D65-B392-34F621165A1C} = {B75C60BF-F5B7-472E-A0A8-8A12DDDDAA7D}
{0F3F166F-9927-4BC0-855F-ADB0D20218F1} = {B75C60BF-F5B7-472E-A0A8-8A12DDDDAA7D}
{35E61C2A-2B8C-4AF4-AD21-353936581EF5} = {B75C60BF-F5B7-472E-A0A8-8A12DDDDAA7D}
@@ -1974,8 +2105,6 @@ Global
{87FB4F28-5DCC-4F21-B83E-59C85E1A7423} = {2F6B63C4-295A-433C-91CB-CAE4CADE6B8B}
{FF377109-1931-499F-9346-449D259977F2} = {8A7F38C5-EF9A-410B-8539-A58879F3AA22}
{34989C73-F82A-4905-9349-D0CF1419CD1C} = {8A7F38C5-EF9A-410B-8539-A58879F3AA22}
- {308A4189-53AB-460D-B2B1-0EB4B9219654} = {8A7F38C5-EF9A-410B-8539-A58879F3AA22}
- {8DA66999-005A-49AB-86A9-2C1F62905B50} = {8A7F38C5-EF9A-410B-8539-A58879F3AA22}
{9FD2722C-1E6C-4061-8AC0-32EE28808FC0} = {218E3584-CDC7-4A77-AD1A-CF9FBE90F67F}
EndGlobalSection
EndGlobal
diff --git a/BLToolkit.2012.sln b/BLToolkit.2012.sln
new file mode 100644
index 000000000..af05f6e06
--- /dev/null
+++ b/BLToolkit.2012.sln
@@ -0,0 +1,2079 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 2012
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLToolkit.4", "Source\BLToolkit.4.csproj", "{0C325F5D-E50E-4340-8724-D29896CCC583}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "UnitTests", "UnitTests", "{2CC0A340-512C-4F0D-A5E6-87C042EE13B9}"
+ ProjectSection(SolutionItems) = preProject
+ UnitTests\BLToolkit.Linq.nunit = UnitTests\BLToolkit.Linq.nunit
+ UnitTests\BLToolkit.nunit = UnitTests\BLToolkit.nunit
+ EndProjectSection
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTests.Linq.Interface", "UnitTests\Linq\UnitTests.Linq.Interface.csproj", "{D527524F-EC92-465E-9CAE-86278121675A}"
+EndProject
+Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "UnitTests.Linq.VisualBasic", "UnitTests\Linq\UnitTests.Linq.VisualBasic.vbproj", "{D11617AB-9F88-4C74-8ABD-F8580DB4B01B}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTests.Linq", "UnitTests\Linq\UnitTests.Linq.csproj", "{07997A18-86D3-47AC-A514-AB1B03E6AEC8}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tools", "Tools", "{C0306556-68F4-4DD5-95F2-AAFEE8FACDFA}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Templates", "Tools\Templates\Templates.csproj", "{6E0C5565-F9A3-441C-9CB2-8B1878A800EF}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "DataProviders", "DataProviders", "{E6CE0ECB-3373-4DC0-98CB-F4E9DC2293C4}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLToolkit.Data.DataProvider.DB2.4", "DataProviders\DB2\BLToolkit.Data.DataProvider.DB2.4.csproj", "{86BF4F10-3606-4016-9919-84C3335813B6}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLToolkit.Data.DataProvider.Firebird.4", "DataProviders\Firebird\BLToolkit.Data.DataProvider.Firebird.4.csproj", "{C1F8C201-BBD9-44F4-884C-CFF8CC960B68}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLToolkit.Data.DataProvider.Informix.4", "DataProviders\Informix\BLToolkit.Data.DataProvider.Informix.4.csproj", "{B1DEA25C-7667-471B-BBAD-64D017FDD104}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLToolkit.Data.DataProvider.MySql.4", "DataProviders\MySql\BLToolkit.Data.DataProvider.MySql.4.csproj", "{3578AF4C-CBFF-4A38-88F5-E86AC990AFBD}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLToolkit.Data.DataProvider.Oracle.4", "DataProviders\Oracle\BLToolkit.Data.DataProvider.Oracle.4.csproj", "{2B5287F2-A6AC-4D5A-B0A8-01C06144824D}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLToolkit.Data.DataProvider.PostgreSQL.4", "DataProviders\PostgreSQL\BLToolkit.Data.DataProvider.PostgreSQL.4.csproj", "{5A556D57-0D68-433B-AD78-02849583582B}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLToolkit.Data.DataProvider.SqlCe.4", "DataProviders\SqlCe\BLToolkit.Data.DataProvider.SqlCe.4.csproj", "{85E90F57-8DE1-4912-8414-28578F4D71CD}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLToolkit.Data.DataProvider.SQLite.4", "DataProviders\SQLite\BLToolkit.Data.DataProvider.SQLite.4.csproj", "{3E414663-B673-47A8-AB59-0E08FE43DA86}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLToolkit.Data.DataProvider.Sybase.4", "DataProviders\Sybase\BLToolkit.Data.DataProvider.Sybase.4.csproj", "{6CD8CC3D-643D-4D09-8660-A26085C44FBC}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLToolkit.SL.4", "Source\BLToolkit.SL.4.csproj", "{663D4BFC-F565-41F7-9409-510B560CCEE8}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Demo", "Demo", "{B75C60BF-F5B7-472E-A0A8-8A12DDDDAA7D}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Silverlight", "Silverlight", "{83C0070F-E639-4D65-B392-34F621165A1C}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Client", "Demo\Silverlight\Client\Client.csproj", "{28693777-369C-4C0D-B076-38F7C0E5D06C}"
+ ProjectSection(ProjectDependencies) = postProject
+ {E796EF23-D63D-4EBD-A34D-5F243834933B} = {E796EF23-D63D-4EBD-A34D-5F243834933B}
+ EndProjectSection
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Client.Web", "Demo\Silverlight\Client.Web\Client.Web.csproj", "{E796EF23-D63D-4EBD-A34D-5F243834933B}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Partial.Trust", "Partial.Trust", "{0F3F166F-9927-4BC0-855F-ADB0D20218F1}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Partial.Trust.Components", "Demo\Partial.Trust\Components\Partial.Trust.Components.csproj", "{3BCB17AC-9941-4460-858B-2B7BC3BEDDE7}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Partial.Trust.Asp.Net", "Demo\Partial.Trust\Asp.Net\Partial.Trust.Asp.Net.csproj", "{16272F10-9E3D-4C24-8761-8A43E9FB525F}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLTgen.2010", "Tools\BLTgen\BLTgen.2010.csproj", "{65FC918C-FF12-4C75-96F5-180B552989E5}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "WinForms", "WinForms", "{35E61C2A-2B8C-4AF4-AD21-353936581EF5}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLToolkit.Demo", "Demo\WinForms\BLToolkit.Demo.csproj", "{854749E5-9264-42FF-A576-3B5784C7C14C}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Linq", "Linq", "{9475B894-944A-47CF-855D-93A0C42136C9}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Linq.Demo.2010", "Demo\Linq\Demo\Linq.Demo.2010.csproj", "{57CE5505-44CB-42E4-A346-3471F68A5B60}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Linq.OverWCF", "Demo\Linq\OverWCF\Linq.OverWCF.csproj", "{7ED3B518-7CEA-4991-98BD-9752E5F32F58}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Asp.Net", "Asp.Net", "{FC77CB0E-4DBF-4CDF-A1AD-C6F830A849B0}"
+ ProjectSection(SolutionItems) = preProject
+ Demo\Asp.Net\ReadMe.txt = Demo\Asp.Net\ReadMe.txt
+ EndProjectSection
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PetShop.ObjectModel", "Demo\Asp.Net\ObjectModel\PetShop.ObjectModel.csproj", "{BF0811CA-4663-4778-8331-9BEEBCAAC8C8}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PetShop.BusinessLogic", "Demo\Asp.Net\BusinessLogic\PetShop.BusinessLogic.csproj", "{01C318D0-1CB1-4CB4-A5ED-D311665C76EE}"
+EndProject
+Project("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = "Web", "Demo\Asp.Net\Web\", "{7DAA2EBB-A724-498F-93BB-68966E2B738F}"
+ ProjectSection(WebsiteProperties) = preProject
+ SccProjectName = ""
+ SccAuxPath = ""
+ SccLocalPath = ""
+ SccProvider = ""
+ TargetFrameworkMoniker = ".NETFramework,Version%3Dv4.0"
+ ProjectReferences = "{0C325F5D-E50E-4340-8724-D29896CCC583}|BLToolkit.4.dll;{01C318D0-1CB1-4CB4-A5ED-D311665C76EE}|PetShop.BusinessLogic.dll;{BF0811CA-4663-4778-8331-9BEEBCAAC8C8}|PetShop.ObjectModel.dll;"
+ Debug.AspNetCompiler.VirtualPath = "/Web"
+ Debug.AspNetCompiler.PhysicalPath = "Demo\Asp.Net\Web\"
+ Debug.AspNetCompiler.TargetPath = "PrecompiledWeb\Web\"
+ Debug.AspNetCompiler.Updateable = "true"
+ Debug.AspNetCompiler.ForceOverwrite = "true"
+ Debug.AspNetCompiler.FixedNames = "false"
+ Debug.AspNetCompiler.Debug = "True"
+ Release.AspNetCompiler.VirtualPath = "/Web"
+ Release.AspNetCompiler.PhysicalPath = "Demo\Asp.Net\Web\"
+ Release.AspNetCompiler.TargetPath = "PrecompiledWeb\Web\"
+ Release.AspNetCompiler.Updateable = "true"
+ Release.AspNetCompiler.ForceOverwrite = "true"
+ Release.AspNetCompiler.FixedNames = "false"
+ Release.AspNetCompiler.Debug = "False"
+ VWDPort = "51456"
+ VWDDynamicPort = "false"
+ EndProjectSection
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "WebServices", "WebServices", "{2F6B63C4-295A-433C-91CB-CAE4CADE6B8B}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ObjectModel", "Demo\WebServices\ObjectModel\ObjectModel.csproj", "{8F9F4193-9104-4AA6-8E04-91CD9FDEC2E6}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Server", "Demo\WebServices\Server\Server.csproj", "{711A3803-4395-4E92-9B26-DC8DDDF80366}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Client", "Demo\WebServices\Client\Client.csproj", "{4EBBF9E9-53B2-493C-ABAB-E915C187558F}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Examples", "Examples", "{8A7F38C5-EF9A-410B-8539-A58879F3AA22}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Examples.CS", "Examples\CS\Examples.CS.csproj", "{34989C73-F82A-4905-9349-D0CF1419CD1C}"
+EndProject
+Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Examples.VB", "Examples\VB\Examples.VB.vbproj", "{308A4189-53AB-460D-B2B1-0EB4B9219654}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HowTo", "HowTo\HowTo.csproj", "{8DA66999-005A-49AB-86A9-2C1F62905B50}"
+EndProject
+Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Templates.VB", "Tools\Templates.VB\Templates.VB.vbproj", "{F2B014F7-3807-4938-8F02-3CF8247C47DC}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Create Scripts", "Create Scripts", "{4FDE7340-F60F-49BC-86CD-756CCD26C92A}"
+ ProjectSection(SolutionItems) = preProject
+ Data\Create Scripts\Access.sql = Data\Create Scripts\Access.sql
+ Data\Create Scripts\DB2.sql = Data\Create Scripts\DB2.sql
+ Data\Create Scripts\Firebird2.sql = Data\Create Scripts\Firebird2.sql
+ Data\Create Scripts\Informix.sql = Data\Create Scripts\Informix.sql
+ Data\Create Scripts\MsSql.sql = Data\Create Scripts\MsSql.sql
+ Data\Create Scripts\MySql.sql = Data\Create Scripts\MySql.sql
+ Data\Create Scripts\Oracle.sql = Data\Create Scripts\Oracle.sql
+ Data\Create Scripts\PostgreSQL.sql = Data\Create Scripts\PostgreSQL.sql
+ Data\Create Scripts\SqlCe.sql = Data\Create Scripts\SqlCe.sql
+ Data\Create Scripts\SQLite.sql = Data\Create Scripts\SQLite.sql
+ Data\Create Scripts\Sybase.sql = Data\Create Scripts\Sybase.sql
+ EndProjectSection
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTests.CS", "UnitTests\CS\UnitTests.CS.csproj", "{2BB4AD77-190F-4D7E-A83E-7B254A0A1FCA}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTests.All", "UnitTests\All\UnitTests.All.csproj", "{6AE74A35-B337-4B17-8092-E1B98DEF06AF}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLToolkit.4.JointureAddOn", "Extensions\JointureAddOn\BLToolkit.4.JointureAddOn.csproj", "{9FD2722C-1E6C-4061-8AC0-32EE28808FC0}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Extensions", "Extensions", "{218E3584-CDC7-4A77-AD1A-CF9FBE90F67F}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "NuGet", "NuGet", "{4A9C0E31-8697-48BA-A46B-6A5EE78424D6}"
+ ProjectSection(SolutionItems) = preProject
+ NuGet\BLToolkit.DB2.nuspec = NuGet\BLToolkit.DB2.nuspec
+ NuGet\BLToolkit.DevartOraclePro.nuspec = NuGet\BLToolkit.DevartOraclePro.nuspec
+ NuGet\BLToolkit.Firebird.nuspec = NuGet\BLToolkit.Firebird.nuspec
+ NuGet\BLToolkit.Informix.nuspec = NuGet\BLToolkit.Informix.nuspec
+ NuGet\BLToolkit.MySql.nuspec = NuGet\BLToolkit.MySql.nuspec
+ NuGet\BLToolkit.nuspec = NuGet\BLToolkit.nuspec
+ NuGet\BLToolkit.Oracle.nuspec = NuGet\BLToolkit.Oracle.nuspec
+ NuGet\BLToolkit.PostgreSql.nuspec = NuGet\BLToolkit.PostgreSql.nuspec
+ NuGet\BLToolkit.SqlCe.nuspec = NuGet\BLToolkit.SqlCe.nuspec
+ NuGet\BLToolkit.SQLite.nuspec = NuGet\BLToolkit.SQLite.nuspec
+ NuGet\BLToolkit.Sybase.nuspec = NuGet\BLToolkit.Sybase.nuspec
+ NuGet\BLToolkit.symbols.nuspec = NuGet\BLToolkit.symbols.nuspec
+ EndProjectSection
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLToolkit.Data.4", "Source\BLToolkit.Data.4.csproj", "{0C325F5D-E50E-4340-8724-D29896CCC584}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLToolkit.CP.4", "Source\BLToolkit.CP.4.csproj", "{0C325F5D-E50E-4340-8724-D29896CCC585}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NorthwindDataService", "Demo\WebServices\NorthwindDataService\NorthwindDataService.csproj", "{87FB4F28-5DCC-4F21-B83E-59C85E1A7423}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLToolkit.Data.DataProvider.OracleManaged.4", "DataProviders\Oracle\BLToolkit.Data.DataProvider.OracleManaged.4.csproj", "{61985B06-67FD-4941-B1B0-7F3794FD237C}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLToolkit.Data.DataProvider.DevartOracle.4", "DataProviders\DevartOraclePro\BLToolkit.Data.DataProvider.DevartOracle.4.csproj", "{CB303F0B-0AA3-4589-850A-95E985A09492}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLToolkit.Data.DataProvider.Generic.4", "DataProviders\Generic\BLToolkit.Data.DataProvider.Generic.4.csproj", "{6E7FE7FC-551F-4273-ACEB-72DC0D01120E}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTests.Fluent", "UnitTests\Fluent\UnitTests.Fluent.csproj", "{527300F8-9F04-434C-8239-4FE5E174FF6B}"
+EndProject
+<<<<<<< HEAD
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Examples.Cpp", "Examples\Cpp\Examples.Cpp.vcxproj", "{9D063CAA-4C44-4C5E-9C9E-74EFA4049FEC}"
+ ProjectSection(ProjectDependencies) = postProject
+ {0C325F5D-E50E-4340-8724-D29896CCC583} = {0C325F5D-E50E-4340-8724-D29896CCC583}
+ EndProjectSection
+EndProject
+=======
+>>>>>>> 53d1ceacdf65b20d099321f78348d626df085662
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug FW 3.5|Any CPU = Debug FW 3.5|Any CPU
+ Debug FW 3.5|Mixed Platforms = Debug FW 3.5|Mixed Platforms
+ Debug FW 3.5|Win32 = Debug FW 3.5|Win32
+ Debug FW 3.5|x64 = Debug FW 3.5|x64
+ Debug FW 3.5|x86 = Debug FW 3.5|x86
+ Debug|Any CPU = Debug|Any CPU
+ Debug|Mixed Platforms = Debug|Mixed Platforms
+ Debug|Win32 = Debug|Win32
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ DebugMono|Any CPU = DebugMono|Any CPU
+ DebugMono|Mixed Platforms = DebugMono|Mixed Platforms
+ DebugMono|Win32 = DebugMono|Win32
+ DebugMono|x64 = DebugMono|x64
+ DebugMono|x86 = DebugMono|x86
+ Release|Any CPU = Release|Any CPU
+ Release|Mixed Platforms = Release|Mixed Platforms
+ Release|Win32 = Release|Win32
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
+ ReleaseMono|Any CPU = ReleaseMono|Any CPU
+ ReleaseMono|Mixed Platforms = ReleaseMono|Mixed Platforms
+ ReleaseMono|Win32 = ReleaseMono|Win32
+ ReleaseMono|x64 = ReleaseMono|x64
+ ReleaseMono|x86 = ReleaseMono|x86
+ Template|Any CPU = Template|Any CPU
+ Template|Mixed Platforms = Template|Mixed Platforms
+ Template|Win32 = Template|Win32
+ Template|x64 = Template|x64
+ Template|x86 = Template|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {0C325F5D-E50E-4340-8724-D29896CCC583}.Debug FW 3.5|Any CPU.ActiveCfg = Debug FW 3.5|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC583}.Debug FW 3.5|Any CPU.Build.0 = Debug FW 3.5|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC583}.Debug FW 3.5|Mixed Platforms.ActiveCfg = Debug FW 3.5|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC583}.Debug FW 3.5|Mixed Platforms.Build.0 = Debug FW 3.5|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC583}.Debug FW 3.5|Win32.ActiveCfg = Debug FW 3.5|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC583}.Debug FW 3.5|x64.ActiveCfg = Debug FW 3.5|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC583}.Debug FW 3.5|x86.ActiveCfg = Debug FW 3.5|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC583}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC583}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC583}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC583}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC583}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC583}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC583}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC583}.DebugMono|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC583}.DebugMono|Any CPU.Build.0 = DebugMono|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC583}.DebugMono|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC583}.DebugMono|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC583}.DebugMono|Win32.ActiveCfg = DebugMono|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC583}.DebugMono|x64.ActiveCfg = DebugMono|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC583}.DebugMono|x86.ActiveCfg = DebugMono|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC583}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC583}.Release|Any CPU.Build.0 = Release|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC583}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC583}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC583}.Release|Win32.ActiveCfg = Release|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC583}.Release|x64.ActiveCfg = Release|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC583}.Release|x86.ActiveCfg = Release|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC583}.ReleaseMono|Any CPU.ActiveCfg = ReleaseMono|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC583}.ReleaseMono|Any CPU.Build.0 = ReleaseMono|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC583}.ReleaseMono|Mixed Platforms.ActiveCfg = ReleaseMono|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC583}.ReleaseMono|Mixed Platforms.Build.0 = ReleaseMono|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC583}.ReleaseMono|Win32.ActiveCfg = ReleaseMono|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC583}.ReleaseMono|x64.ActiveCfg = ReleaseMono|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC583}.ReleaseMono|x86.ActiveCfg = ReleaseMono|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC583}.Template|Any CPU.ActiveCfg = Debug FW 3.5|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC583}.Template|Any CPU.Build.0 = Debug FW 3.5|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC583}.Template|Mixed Platforms.ActiveCfg = Debug FW 3.5|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC583}.Template|Mixed Platforms.Build.0 = Debug FW 3.5|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC583}.Template|Win32.ActiveCfg = Debug FW 3.5|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC583}.Template|x64.ActiveCfg = Debug FW 3.5|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC583}.Template|x86.ActiveCfg = Debug FW 3.5|Any CPU
+ {D527524F-EC92-465E-9CAE-86278121675A}.Debug FW 3.5|Any CPU.ActiveCfg = Debug FW 3.5|Any CPU
+ {D527524F-EC92-465E-9CAE-86278121675A}.Debug FW 3.5|Any CPU.Build.0 = Debug FW 3.5|Any CPU
+ {D527524F-EC92-465E-9CAE-86278121675A}.Debug FW 3.5|Mixed Platforms.ActiveCfg = Debug FW 3.5|Any CPU
+ {D527524F-EC92-465E-9CAE-86278121675A}.Debug FW 3.5|Mixed Platforms.Build.0 = Debug FW 3.5|Any CPU
+ {D527524F-EC92-465E-9CAE-86278121675A}.Debug FW 3.5|Win32.ActiveCfg = Debug FW 3.5|Any CPU
+ {D527524F-EC92-465E-9CAE-86278121675A}.Debug FW 3.5|x64.ActiveCfg = Debug FW 3.5|Any CPU
+ {D527524F-EC92-465E-9CAE-86278121675A}.Debug FW 3.5|x86.ActiveCfg = Debug FW 3.5|Any CPU
+ {D527524F-EC92-465E-9CAE-86278121675A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D527524F-EC92-465E-9CAE-86278121675A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D527524F-EC92-465E-9CAE-86278121675A}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {D527524F-EC92-465E-9CAE-86278121675A}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {D527524F-EC92-465E-9CAE-86278121675A}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {D527524F-EC92-465E-9CAE-86278121675A}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {D527524F-EC92-465E-9CAE-86278121675A}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {D527524F-EC92-465E-9CAE-86278121675A}.DebugMono|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {D527524F-EC92-465E-9CAE-86278121675A}.DebugMono|Any CPU.Build.0 = DebugMono|Any CPU
+ {D527524F-EC92-465E-9CAE-86278121675A}.DebugMono|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {D527524F-EC92-465E-9CAE-86278121675A}.DebugMono|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {D527524F-EC92-465E-9CAE-86278121675A}.DebugMono|Win32.ActiveCfg = DebugMono|Any CPU
+ {D527524F-EC92-465E-9CAE-86278121675A}.DebugMono|x64.ActiveCfg = DebugMono|Any CPU
+ {D527524F-EC92-465E-9CAE-86278121675A}.DebugMono|x86.ActiveCfg = DebugMono|Any CPU
+ {D527524F-EC92-465E-9CAE-86278121675A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {D527524F-EC92-465E-9CAE-86278121675A}.Release|Any CPU.Build.0 = Release|Any CPU
+ {D527524F-EC92-465E-9CAE-86278121675A}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {D527524F-EC92-465E-9CAE-86278121675A}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {D527524F-EC92-465E-9CAE-86278121675A}.Release|Win32.ActiveCfg = Release|Any CPU
+ {D527524F-EC92-465E-9CAE-86278121675A}.Release|x64.ActiveCfg = Release|Any CPU
+ {D527524F-EC92-465E-9CAE-86278121675A}.Release|x86.ActiveCfg = Release|Any CPU
+ {D527524F-EC92-465E-9CAE-86278121675A}.ReleaseMono|Any CPU.ActiveCfg = ReleaseMono|Any CPU
+ {D527524F-EC92-465E-9CAE-86278121675A}.ReleaseMono|Any CPU.Build.0 = ReleaseMono|Any CPU
+ {D527524F-EC92-465E-9CAE-86278121675A}.ReleaseMono|Mixed Platforms.ActiveCfg = ReleaseMono|Any CPU
+ {D527524F-EC92-465E-9CAE-86278121675A}.ReleaseMono|Mixed Platforms.Build.0 = ReleaseMono|Any CPU
+ {D527524F-EC92-465E-9CAE-86278121675A}.ReleaseMono|Win32.ActiveCfg = ReleaseMono|Any CPU
+ {D527524F-EC92-465E-9CAE-86278121675A}.ReleaseMono|x64.ActiveCfg = ReleaseMono|Any CPU
+ {D527524F-EC92-465E-9CAE-86278121675A}.ReleaseMono|x86.ActiveCfg = ReleaseMono|Any CPU
+ {D527524F-EC92-465E-9CAE-86278121675A}.Template|Any CPU.ActiveCfg = Debug FW 3.5|Any CPU
+ {D527524F-EC92-465E-9CAE-86278121675A}.Template|Any CPU.Build.0 = Debug FW 3.5|Any CPU
+ {D527524F-EC92-465E-9CAE-86278121675A}.Template|Mixed Platforms.ActiveCfg = Debug FW 3.5|Any CPU
+ {D527524F-EC92-465E-9CAE-86278121675A}.Template|Mixed Platforms.Build.0 = Debug FW 3.5|Any CPU
+ {D527524F-EC92-465E-9CAE-86278121675A}.Template|Win32.ActiveCfg = Debug FW 3.5|Any CPU
+ {D527524F-EC92-465E-9CAE-86278121675A}.Template|x64.ActiveCfg = Debug FW 3.5|Any CPU
+ {D527524F-EC92-465E-9CAE-86278121675A}.Template|x86.ActiveCfg = Debug FW 3.5|Any CPU
+ {D11617AB-9F88-4C74-8ABD-F8580DB4B01B}.Debug FW 3.5|Any CPU.ActiveCfg = Debug FW 3.5|Any CPU
+ {D11617AB-9F88-4C74-8ABD-F8580DB4B01B}.Debug FW 3.5|Any CPU.Build.0 = Debug FW 3.5|Any CPU
+ {D11617AB-9F88-4C74-8ABD-F8580DB4B01B}.Debug FW 3.5|Mixed Platforms.ActiveCfg = Debug FW 3.5|Any CPU
+ {D11617AB-9F88-4C74-8ABD-F8580DB4B01B}.Debug FW 3.5|Mixed Platforms.Build.0 = Debug FW 3.5|Any CPU
+ {D11617AB-9F88-4C74-8ABD-F8580DB4B01B}.Debug FW 3.5|Win32.ActiveCfg = Debug FW 3.5|Any CPU
+ {D11617AB-9F88-4C74-8ABD-F8580DB4B01B}.Debug FW 3.5|x64.ActiveCfg = Debug FW 3.5|Any CPU
+ {D11617AB-9F88-4C74-8ABD-F8580DB4B01B}.Debug FW 3.5|x86.ActiveCfg = Debug FW 3.5|Any CPU
+ {D11617AB-9F88-4C74-8ABD-F8580DB4B01B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D11617AB-9F88-4C74-8ABD-F8580DB4B01B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D11617AB-9F88-4C74-8ABD-F8580DB4B01B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {D11617AB-9F88-4C74-8ABD-F8580DB4B01B}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {D11617AB-9F88-4C74-8ABD-F8580DB4B01B}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {D11617AB-9F88-4C74-8ABD-F8580DB4B01B}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {D11617AB-9F88-4C74-8ABD-F8580DB4B01B}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {D11617AB-9F88-4C74-8ABD-F8580DB4B01B}.DebugMono|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {D11617AB-9F88-4C74-8ABD-F8580DB4B01B}.DebugMono|Any CPU.Build.0 = DebugMono|Any CPU
+ {D11617AB-9F88-4C74-8ABD-F8580DB4B01B}.DebugMono|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {D11617AB-9F88-4C74-8ABD-F8580DB4B01B}.DebugMono|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {D11617AB-9F88-4C74-8ABD-F8580DB4B01B}.DebugMono|Win32.ActiveCfg = DebugMono|Any CPU
+ {D11617AB-9F88-4C74-8ABD-F8580DB4B01B}.DebugMono|x64.ActiveCfg = DebugMono|Any CPU
+ {D11617AB-9F88-4C74-8ABD-F8580DB4B01B}.DebugMono|x86.ActiveCfg = DebugMono|Any CPU
+ {D11617AB-9F88-4C74-8ABD-F8580DB4B01B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {D11617AB-9F88-4C74-8ABD-F8580DB4B01B}.Release|Any CPU.Build.0 = Release|Any CPU
+ {D11617AB-9F88-4C74-8ABD-F8580DB4B01B}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {D11617AB-9F88-4C74-8ABD-F8580DB4B01B}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {D11617AB-9F88-4C74-8ABD-F8580DB4B01B}.Release|Win32.ActiveCfg = Release|Any CPU
+ {D11617AB-9F88-4C74-8ABD-F8580DB4B01B}.Release|x64.ActiveCfg = Release|Any CPU
+ {D11617AB-9F88-4C74-8ABD-F8580DB4B01B}.Release|x86.ActiveCfg = Release|Any CPU
+ {D11617AB-9F88-4C74-8ABD-F8580DB4B01B}.ReleaseMono|Any CPU.ActiveCfg = ReleaseMono|Any CPU
+ {D11617AB-9F88-4C74-8ABD-F8580DB4B01B}.ReleaseMono|Any CPU.Build.0 = ReleaseMono|Any CPU
+ {D11617AB-9F88-4C74-8ABD-F8580DB4B01B}.ReleaseMono|Mixed Platforms.ActiveCfg = ReleaseMono|Any CPU
+ {D11617AB-9F88-4C74-8ABD-F8580DB4B01B}.ReleaseMono|Mixed Platforms.Build.0 = ReleaseMono|Any CPU
+ {D11617AB-9F88-4C74-8ABD-F8580DB4B01B}.ReleaseMono|Win32.ActiveCfg = ReleaseMono|Any CPU
+ {D11617AB-9F88-4C74-8ABD-F8580DB4B01B}.ReleaseMono|x64.ActiveCfg = ReleaseMono|Any CPU
+ {D11617AB-9F88-4C74-8ABD-F8580DB4B01B}.ReleaseMono|x86.ActiveCfg = ReleaseMono|Any CPU
+ {D11617AB-9F88-4C74-8ABD-F8580DB4B01B}.Template|Any CPU.ActiveCfg = Debug FW 3.5|Any CPU
+ {D11617AB-9F88-4C74-8ABD-F8580DB4B01B}.Template|Any CPU.Build.0 = Debug FW 3.5|Any CPU
+ {D11617AB-9F88-4C74-8ABD-F8580DB4B01B}.Template|Mixed Platforms.ActiveCfg = Debug FW 3.5|Any CPU
+ {D11617AB-9F88-4C74-8ABD-F8580DB4B01B}.Template|Mixed Platforms.Build.0 = Debug FW 3.5|Any CPU
+ {D11617AB-9F88-4C74-8ABD-F8580DB4B01B}.Template|Win32.ActiveCfg = Debug FW 3.5|Any CPU
+ {D11617AB-9F88-4C74-8ABD-F8580DB4B01B}.Template|x64.ActiveCfg = Debug FW 3.5|Any CPU
+ {D11617AB-9F88-4C74-8ABD-F8580DB4B01B}.Template|x86.ActiveCfg = Debug FW 3.5|Any CPU
+ {07997A18-86D3-47AC-A514-AB1B03E6AEC8}.Debug FW 3.5|Any CPU.ActiveCfg = Debug FW 3.5|Any CPU
+ {07997A18-86D3-47AC-A514-AB1B03E6AEC8}.Debug FW 3.5|Any CPU.Build.0 = Debug FW 3.5|Any CPU
+ {07997A18-86D3-47AC-A514-AB1B03E6AEC8}.Debug FW 3.5|Mixed Platforms.ActiveCfg = Debug FW 3.5|Any CPU
+ {07997A18-86D3-47AC-A514-AB1B03E6AEC8}.Debug FW 3.5|Mixed Platforms.Build.0 = Debug FW 3.5|Any CPU
+ {07997A18-86D3-47AC-A514-AB1B03E6AEC8}.Debug FW 3.5|Win32.ActiveCfg = Debug FW 3.5|Any CPU
+ {07997A18-86D3-47AC-A514-AB1B03E6AEC8}.Debug FW 3.5|x64.ActiveCfg = Debug FW 3.5|Any CPU
+ {07997A18-86D3-47AC-A514-AB1B03E6AEC8}.Debug FW 3.5|x86.ActiveCfg = Debug FW 3.5|Any CPU
+ {07997A18-86D3-47AC-A514-AB1B03E6AEC8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {07997A18-86D3-47AC-A514-AB1B03E6AEC8}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {07997A18-86D3-47AC-A514-AB1B03E6AEC8}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {07997A18-86D3-47AC-A514-AB1B03E6AEC8}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {07997A18-86D3-47AC-A514-AB1B03E6AEC8}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {07997A18-86D3-47AC-A514-AB1B03E6AEC8}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {07997A18-86D3-47AC-A514-AB1B03E6AEC8}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {07997A18-86D3-47AC-A514-AB1B03E6AEC8}.DebugMono|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {07997A18-86D3-47AC-A514-AB1B03E6AEC8}.DebugMono|Any CPU.Build.0 = DebugMono|Any CPU
+ {07997A18-86D3-47AC-A514-AB1B03E6AEC8}.DebugMono|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {07997A18-86D3-47AC-A514-AB1B03E6AEC8}.DebugMono|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {07997A18-86D3-47AC-A514-AB1B03E6AEC8}.DebugMono|Win32.ActiveCfg = DebugMono|Any CPU
+ {07997A18-86D3-47AC-A514-AB1B03E6AEC8}.DebugMono|x64.ActiveCfg = DebugMono|Any CPU
+ {07997A18-86D3-47AC-A514-AB1B03E6AEC8}.DebugMono|x86.ActiveCfg = DebugMono|Any CPU
+ {07997A18-86D3-47AC-A514-AB1B03E6AEC8}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {07997A18-86D3-47AC-A514-AB1B03E6AEC8}.Release|Any CPU.Build.0 = Release|Any CPU
+ {07997A18-86D3-47AC-A514-AB1B03E6AEC8}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {07997A18-86D3-47AC-A514-AB1B03E6AEC8}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {07997A18-86D3-47AC-A514-AB1B03E6AEC8}.Release|Win32.ActiveCfg = Release|Any CPU
+ {07997A18-86D3-47AC-A514-AB1B03E6AEC8}.Release|x64.ActiveCfg = Release|Any CPU
+ {07997A18-86D3-47AC-A514-AB1B03E6AEC8}.Release|x86.ActiveCfg = Release|Any CPU
+ {07997A18-86D3-47AC-A514-AB1B03E6AEC8}.ReleaseMono|Any CPU.ActiveCfg = ReleaseMono|Any CPU
+ {07997A18-86D3-47AC-A514-AB1B03E6AEC8}.ReleaseMono|Any CPU.Build.0 = ReleaseMono|Any CPU
+ {07997A18-86D3-47AC-A514-AB1B03E6AEC8}.ReleaseMono|Mixed Platforms.ActiveCfg = ReleaseMono|Any CPU
+ {07997A18-86D3-47AC-A514-AB1B03E6AEC8}.ReleaseMono|Mixed Platforms.Build.0 = ReleaseMono|Any CPU
+ {07997A18-86D3-47AC-A514-AB1B03E6AEC8}.ReleaseMono|Win32.ActiveCfg = ReleaseMono|Any CPU
+ {07997A18-86D3-47AC-A514-AB1B03E6AEC8}.ReleaseMono|x64.ActiveCfg = ReleaseMono|Any CPU
+ {07997A18-86D3-47AC-A514-AB1B03E6AEC8}.ReleaseMono|x86.ActiveCfg = ReleaseMono|Any CPU
+ {07997A18-86D3-47AC-A514-AB1B03E6AEC8}.Template|Any CPU.ActiveCfg = Debug FW 3.5|Any CPU
+ {07997A18-86D3-47AC-A514-AB1B03E6AEC8}.Template|Any CPU.Build.0 = Debug FW 3.5|Any CPU
+ {07997A18-86D3-47AC-A514-AB1B03E6AEC8}.Template|Mixed Platforms.ActiveCfg = Debug FW 3.5|Any CPU
+ {07997A18-86D3-47AC-A514-AB1B03E6AEC8}.Template|Mixed Platforms.Build.0 = Debug FW 3.5|Any CPU
+ {07997A18-86D3-47AC-A514-AB1B03E6AEC8}.Template|Win32.ActiveCfg = Debug FW 3.5|Any CPU
+ {07997A18-86D3-47AC-A514-AB1B03E6AEC8}.Template|x64.ActiveCfg = Debug FW 3.5|Any CPU
+ {07997A18-86D3-47AC-A514-AB1B03E6AEC8}.Template|x86.ActiveCfg = Debug FW 3.5|Any CPU
+ {6E0C5565-F9A3-441C-9CB2-8B1878A800EF}.Debug FW 3.5|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {6E0C5565-F9A3-441C-9CB2-8B1878A800EF}.Debug FW 3.5|Any CPU.Build.0 = DebugMono|Any CPU
+ {6E0C5565-F9A3-441C-9CB2-8B1878A800EF}.Debug FW 3.5|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {6E0C5565-F9A3-441C-9CB2-8B1878A800EF}.Debug FW 3.5|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {6E0C5565-F9A3-441C-9CB2-8B1878A800EF}.Debug FW 3.5|Win32.ActiveCfg = DebugMono|Any CPU
+ {6E0C5565-F9A3-441C-9CB2-8B1878A800EF}.Debug FW 3.5|x64.ActiveCfg = DebugMono|Any CPU
+ {6E0C5565-F9A3-441C-9CB2-8B1878A800EF}.Debug FW 3.5|x86.ActiveCfg = DebugMono|Any CPU
+ {6E0C5565-F9A3-441C-9CB2-8B1878A800EF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {6E0C5565-F9A3-441C-9CB2-8B1878A800EF}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6E0C5565-F9A3-441C-9CB2-8B1878A800EF}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {6E0C5565-F9A3-441C-9CB2-8B1878A800EF}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {6E0C5565-F9A3-441C-9CB2-8B1878A800EF}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {6E0C5565-F9A3-441C-9CB2-8B1878A800EF}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {6E0C5565-F9A3-441C-9CB2-8B1878A800EF}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {6E0C5565-F9A3-441C-9CB2-8B1878A800EF}.DebugMono|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {6E0C5565-F9A3-441C-9CB2-8B1878A800EF}.DebugMono|Any CPU.Build.0 = DebugMono|Any CPU
+ {6E0C5565-F9A3-441C-9CB2-8B1878A800EF}.DebugMono|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {6E0C5565-F9A3-441C-9CB2-8B1878A800EF}.DebugMono|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {6E0C5565-F9A3-441C-9CB2-8B1878A800EF}.DebugMono|Win32.ActiveCfg = DebugMono|Any CPU
+ {6E0C5565-F9A3-441C-9CB2-8B1878A800EF}.DebugMono|x64.ActiveCfg = DebugMono|Any CPU
+ {6E0C5565-F9A3-441C-9CB2-8B1878A800EF}.DebugMono|x86.ActiveCfg = DebugMono|Any CPU
+ {6E0C5565-F9A3-441C-9CB2-8B1878A800EF}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {6E0C5565-F9A3-441C-9CB2-8B1878A800EF}.Release|Any CPU.Build.0 = Release|Any CPU
+ {6E0C5565-F9A3-441C-9CB2-8B1878A800EF}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {6E0C5565-F9A3-441C-9CB2-8B1878A800EF}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {6E0C5565-F9A3-441C-9CB2-8B1878A800EF}.Release|Win32.ActiveCfg = Release|Any CPU
+ {6E0C5565-F9A3-441C-9CB2-8B1878A800EF}.Release|x64.ActiveCfg = Release|Any CPU
+ {6E0C5565-F9A3-441C-9CB2-8B1878A800EF}.Release|x86.ActiveCfg = Release|Any CPU
+ {6E0C5565-F9A3-441C-9CB2-8B1878A800EF}.ReleaseMono|Any CPU.ActiveCfg = ReleaseMono|Any CPU
+ {6E0C5565-F9A3-441C-9CB2-8B1878A800EF}.ReleaseMono|Any CPU.Build.0 = ReleaseMono|Any CPU
+ {6E0C5565-F9A3-441C-9CB2-8B1878A800EF}.ReleaseMono|Mixed Platforms.ActiveCfg = ReleaseMono|Any CPU
+ {6E0C5565-F9A3-441C-9CB2-8B1878A800EF}.ReleaseMono|Mixed Platforms.Build.0 = ReleaseMono|Any CPU
+ {6E0C5565-F9A3-441C-9CB2-8B1878A800EF}.ReleaseMono|Win32.ActiveCfg = ReleaseMono|Any CPU
+ {6E0C5565-F9A3-441C-9CB2-8B1878A800EF}.ReleaseMono|x64.ActiveCfg = ReleaseMono|Any CPU
+ {6E0C5565-F9A3-441C-9CB2-8B1878A800EF}.ReleaseMono|x86.ActiveCfg = ReleaseMono|Any CPU
+ {6E0C5565-F9A3-441C-9CB2-8B1878A800EF}.Template|Any CPU.ActiveCfg = Release|Any CPU
+ {6E0C5565-F9A3-441C-9CB2-8B1878A800EF}.Template|Any CPU.Build.0 = Release|Any CPU
+ {6E0C5565-F9A3-441C-9CB2-8B1878A800EF}.Template|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {6E0C5565-F9A3-441C-9CB2-8B1878A800EF}.Template|Mixed Platforms.Build.0 = Release|Any CPU
+ {6E0C5565-F9A3-441C-9CB2-8B1878A800EF}.Template|Win32.ActiveCfg = Release|Any CPU
+ {6E0C5565-F9A3-441C-9CB2-8B1878A800EF}.Template|x64.ActiveCfg = Release|Any CPU
+ {6E0C5565-F9A3-441C-9CB2-8B1878A800EF}.Template|x86.ActiveCfg = Release|Any CPU
+ {86BF4F10-3606-4016-9919-84C3335813B6}.Debug FW 3.5|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {86BF4F10-3606-4016-9919-84C3335813B6}.Debug FW 3.5|Any CPU.Build.0 = DebugMono|Any CPU
+ {86BF4F10-3606-4016-9919-84C3335813B6}.Debug FW 3.5|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {86BF4F10-3606-4016-9919-84C3335813B6}.Debug FW 3.5|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {86BF4F10-3606-4016-9919-84C3335813B6}.Debug FW 3.5|Win32.ActiveCfg = DebugMono|Any CPU
+ {86BF4F10-3606-4016-9919-84C3335813B6}.Debug FW 3.5|x64.ActiveCfg = DebugMono|Any CPU
+ {86BF4F10-3606-4016-9919-84C3335813B6}.Debug FW 3.5|x86.ActiveCfg = DebugMono|Any CPU
+ {86BF4F10-3606-4016-9919-84C3335813B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {86BF4F10-3606-4016-9919-84C3335813B6}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {86BF4F10-3606-4016-9919-84C3335813B6}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {86BF4F10-3606-4016-9919-84C3335813B6}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {86BF4F10-3606-4016-9919-84C3335813B6}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {86BF4F10-3606-4016-9919-84C3335813B6}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {86BF4F10-3606-4016-9919-84C3335813B6}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {86BF4F10-3606-4016-9919-84C3335813B6}.DebugMono|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {86BF4F10-3606-4016-9919-84C3335813B6}.DebugMono|Any CPU.Build.0 = DebugMono|Any CPU
+ {86BF4F10-3606-4016-9919-84C3335813B6}.DebugMono|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {86BF4F10-3606-4016-9919-84C3335813B6}.DebugMono|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {86BF4F10-3606-4016-9919-84C3335813B6}.DebugMono|Win32.ActiveCfg = DebugMono|Any CPU
+ {86BF4F10-3606-4016-9919-84C3335813B6}.DebugMono|x64.ActiveCfg = DebugMono|Any CPU
+ {86BF4F10-3606-4016-9919-84C3335813B6}.DebugMono|x86.ActiveCfg = DebugMono|Any CPU
+ {86BF4F10-3606-4016-9919-84C3335813B6}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {86BF4F10-3606-4016-9919-84C3335813B6}.Release|Any CPU.Build.0 = Release|Any CPU
+ {86BF4F10-3606-4016-9919-84C3335813B6}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {86BF4F10-3606-4016-9919-84C3335813B6}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {86BF4F10-3606-4016-9919-84C3335813B6}.Release|Win32.ActiveCfg = Release|Any CPU
+ {86BF4F10-3606-4016-9919-84C3335813B6}.Release|x64.ActiveCfg = Release|Any CPU
+ {86BF4F10-3606-4016-9919-84C3335813B6}.Release|x86.ActiveCfg = Release|Any CPU
+ {86BF4F10-3606-4016-9919-84C3335813B6}.ReleaseMono|Any CPU.ActiveCfg = ReleaseMono|Any CPU
+ {86BF4F10-3606-4016-9919-84C3335813B6}.ReleaseMono|Any CPU.Build.0 = ReleaseMono|Any CPU
+ {86BF4F10-3606-4016-9919-84C3335813B6}.ReleaseMono|Mixed Platforms.ActiveCfg = ReleaseMono|Any CPU
+ {86BF4F10-3606-4016-9919-84C3335813B6}.ReleaseMono|Mixed Platforms.Build.0 = ReleaseMono|Any CPU
+ {86BF4F10-3606-4016-9919-84C3335813B6}.ReleaseMono|Win32.ActiveCfg = ReleaseMono|Any CPU
+ {86BF4F10-3606-4016-9919-84C3335813B6}.ReleaseMono|x64.ActiveCfg = ReleaseMono|Any CPU
+ {86BF4F10-3606-4016-9919-84C3335813B6}.ReleaseMono|x86.ActiveCfg = ReleaseMono|Any CPU
+ {86BF4F10-3606-4016-9919-84C3335813B6}.Template|Any CPU.ActiveCfg = Release|Any CPU
+ {86BF4F10-3606-4016-9919-84C3335813B6}.Template|Any CPU.Build.0 = Release|Any CPU
+ {86BF4F10-3606-4016-9919-84C3335813B6}.Template|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {86BF4F10-3606-4016-9919-84C3335813B6}.Template|Mixed Platforms.Build.0 = Release|Any CPU
+ {86BF4F10-3606-4016-9919-84C3335813B6}.Template|Win32.ActiveCfg = Release|Any CPU
+ {86BF4F10-3606-4016-9919-84C3335813B6}.Template|x64.ActiveCfg = Release|Any CPU
+ {86BF4F10-3606-4016-9919-84C3335813B6}.Template|x86.ActiveCfg = Release|Any CPU
+ {C1F8C201-BBD9-44F4-884C-CFF8CC960B68}.Debug FW 3.5|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {C1F8C201-BBD9-44F4-884C-CFF8CC960B68}.Debug FW 3.5|Any CPU.Build.0 = DebugMono|Any CPU
+ {C1F8C201-BBD9-44F4-884C-CFF8CC960B68}.Debug FW 3.5|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {C1F8C201-BBD9-44F4-884C-CFF8CC960B68}.Debug FW 3.5|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {C1F8C201-BBD9-44F4-884C-CFF8CC960B68}.Debug FW 3.5|Win32.ActiveCfg = DebugMono|Any CPU
+ {C1F8C201-BBD9-44F4-884C-CFF8CC960B68}.Debug FW 3.5|x64.ActiveCfg = DebugMono|Any CPU
+ {C1F8C201-BBD9-44F4-884C-CFF8CC960B68}.Debug FW 3.5|x86.ActiveCfg = DebugMono|Any CPU
+ {C1F8C201-BBD9-44F4-884C-CFF8CC960B68}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {C1F8C201-BBD9-44F4-884C-CFF8CC960B68}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C1F8C201-BBD9-44F4-884C-CFF8CC960B68}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {C1F8C201-BBD9-44F4-884C-CFF8CC960B68}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {C1F8C201-BBD9-44F4-884C-CFF8CC960B68}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {C1F8C201-BBD9-44F4-884C-CFF8CC960B68}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {C1F8C201-BBD9-44F4-884C-CFF8CC960B68}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {C1F8C201-BBD9-44F4-884C-CFF8CC960B68}.DebugMono|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {C1F8C201-BBD9-44F4-884C-CFF8CC960B68}.DebugMono|Any CPU.Build.0 = DebugMono|Any CPU
+ {C1F8C201-BBD9-44F4-884C-CFF8CC960B68}.DebugMono|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {C1F8C201-BBD9-44F4-884C-CFF8CC960B68}.DebugMono|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {C1F8C201-BBD9-44F4-884C-CFF8CC960B68}.DebugMono|Win32.ActiveCfg = DebugMono|Any CPU
+ {C1F8C201-BBD9-44F4-884C-CFF8CC960B68}.DebugMono|x64.ActiveCfg = DebugMono|Any CPU
+ {C1F8C201-BBD9-44F4-884C-CFF8CC960B68}.DebugMono|x86.ActiveCfg = DebugMono|Any CPU
+ {C1F8C201-BBD9-44F4-884C-CFF8CC960B68}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {C1F8C201-BBD9-44F4-884C-CFF8CC960B68}.Release|Any CPU.Build.0 = Release|Any CPU
+ {C1F8C201-BBD9-44F4-884C-CFF8CC960B68}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {C1F8C201-BBD9-44F4-884C-CFF8CC960B68}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {C1F8C201-BBD9-44F4-884C-CFF8CC960B68}.Release|Win32.ActiveCfg = Release|Any CPU
+ {C1F8C201-BBD9-44F4-884C-CFF8CC960B68}.Release|x64.ActiveCfg = Release|Any CPU
+ {C1F8C201-BBD9-44F4-884C-CFF8CC960B68}.Release|x86.ActiveCfg = Release|Any CPU
+ {C1F8C201-BBD9-44F4-884C-CFF8CC960B68}.ReleaseMono|Any CPU.ActiveCfg = ReleaseMono|Any CPU
+ {C1F8C201-BBD9-44F4-884C-CFF8CC960B68}.ReleaseMono|Any CPU.Build.0 = ReleaseMono|Any CPU
+ {C1F8C201-BBD9-44F4-884C-CFF8CC960B68}.ReleaseMono|Mixed Platforms.ActiveCfg = ReleaseMono|Any CPU
+ {C1F8C201-BBD9-44F4-884C-CFF8CC960B68}.ReleaseMono|Mixed Platforms.Build.0 = ReleaseMono|Any CPU
+ {C1F8C201-BBD9-44F4-884C-CFF8CC960B68}.ReleaseMono|Win32.ActiveCfg = ReleaseMono|Any CPU
+ {C1F8C201-BBD9-44F4-884C-CFF8CC960B68}.ReleaseMono|x64.ActiveCfg = ReleaseMono|Any CPU
+ {C1F8C201-BBD9-44F4-884C-CFF8CC960B68}.ReleaseMono|x86.ActiveCfg = ReleaseMono|Any CPU
+ {C1F8C201-BBD9-44F4-884C-CFF8CC960B68}.Template|Any CPU.ActiveCfg = Release|Any CPU
+ {C1F8C201-BBD9-44F4-884C-CFF8CC960B68}.Template|Any CPU.Build.0 = Release|Any CPU
+ {C1F8C201-BBD9-44F4-884C-CFF8CC960B68}.Template|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {C1F8C201-BBD9-44F4-884C-CFF8CC960B68}.Template|Mixed Platforms.Build.0 = Release|Any CPU
+ {C1F8C201-BBD9-44F4-884C-CFF8CC960B68}.Template|Win32.ActiveCfg = Release|Any CPU
+ {C1F8C201-BBD9-44F4-884C-CFF8CC960B68}.Template|x64.ActiveCfg = Release|Any CPU
+ {C1F8C201-BBD9-44F4-884C-CFF8CC960B68}.Template|x86.ActiveCfg = Release|Any CPU
+ {B1DEA25C-7667-471B-BBAD-64D017FDD104}.Debug FW 3.5|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {B1DEA25C-7667-471B-BBAD-64D017FDD104}.Debug FW 3.5|Any CPU.Build.0 = DebugMono|Any CPU
+ {B1DEA25C-7667-471B-BBAD-64D017FDD104}.Debug FW 3.5|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {B1DEA25C-7667-471B-BBAD-64D017FDD104}.Debug FW 3.5|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {B1DEA25C-7667-471B-BBAD-64D017FDD104}.Debug FW 3.5|Win32.ActiveCfg = DebugMono|Any CPU
+ {B1DEA25C-7667-471B-BBAD-64D017FDD104}.Debug FW 3.5|x64.ActiveCfg = DebugMono|Any CPU
+ {B1DEA25C-7667-471B-BBAD-64D017FDD104}.Debug FW 3.5|x86.ActiveCfg = DebugMono|Any CPU
+ {B1DEA25C-7667-471B-BBAD-64D017FDD104}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {B1DEA25C-7667-471B-BBAD-64D017FDD104}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B1DEA25C-7667-471B-BBAD-64D017FDD104}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {B1DEA25C-7667-471B-BBAD-64D017FDD104}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {B1DEA25C-7667-471B-BBAD-64D017FDD104}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {B1DEA25C-7667-471B-BBAD-64D017FDD104}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {B1DEA25C-7667-471B-BBAD-64D017FDD104}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {B1DEA25C-7667-471B-BBAD-64D017FDD104}.DebugMono|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {B1DEA25C-7667-471B-BBAD-64D017FDD104}.DebugMono|Any CPU.Build.0 = DebugMono|Any CPU
+ {B1DEA25C-7667-471B-BBAD-64D017FDD104}.DebugMono|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {B1DEA25C-7667-471B-BBAD-64D017FDD104}.DebugMono|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {B1DEA25C-7667-471B-BBAD-64D017FDD104}.DebugMono|Win32.ActiveCfg = DebugMono|Any CPU
+ {B1DEA25C-7667-471B-BBAD-64D017FDD104}.DebugMono|x64.ActiveCfg = DebugMono|Any CPU
+ {B1DEA25C-7667-471B-BBAD-64D017FDD104}.DebugMono|x86.ActiveCfg = DebugMono|Any CPU
+ {B1DEA25C-7667-471B-BBAD-64D017FDD104}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {B1DEA25C-7667-471B-BBAD-64D017FDD104}.Release|Any CPU.Build.0 = Release|Any CPU
+ {B1DEA25C-7667-471B-BBAD-64D017FDD104}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {B1DEA25C-7667-471B-BBAD-64D017FDD104}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {B1DEA25C-7667-471B-BBAD-64D017FDD104}.Release|Win32.ActiveCfg = Release|Any CPU
+ {B1DEA25C-7667-471B-BBAD-64D017FDD104}.Release|x64.ActiveCfg = Release|Any CPU
+ {B1DEA25C-7667-471B-BBAD-64D017FDD104}.Release|x86.ActiveCfg = Release|Any CPU
+ {B1DEA25C-7667-471B-BBAD-64D017FDD104}.ReleaseMono|Any CPU.ActiveCfg = ReleaseMono|Any CPU
+ {B1DEA25C-7667-471B-BBAD-64D017FDD104}.ReleaseMono|Any CPU.Build.0 = ReleaseMono|Any CPU
+ {B1DEA25C-7667-471B-BBAD-64D017FDD104}.ReleaseMono|Mixed Platforms.ActiveCfg = ReleaseMono|Any CPU
+ {B1DEA25C-7667-471B-BBAD-64D017FDD104}.ReleaseMono|Mixed Platforms.Build.0 = ReleaseMono|Any CPU
+ {B1DEA25C-7667-471B-BBAD-64D017FDD104}.ReleaseMono|Win32.ActiveCfg = ReleaseMono|Any CPU
+ {B1DEA25C-7667-471B-BBAD-64D017FDD104}.ReleaseMono|x64.ActiveCfg = ReleaseMono|Any CPU
+ {B1DEA25C-7667-471B-BBAD-64D017FDD104}.ReleaseMono|x86.ActiveCfg = ReleaseMono|Any CPU
+ {B1DEA25C-7667-471B-BBAD-64D017FDD104}.Template|Any CPU.ActiveCfg = Release|Any CPU
+ {B1DEA25C-7667-471B-BBAD-64D017FDD104}.Template|Any CPU.Build.0 = Release|Any CPU
+ {B1DEA25C-7667-471B-BBAD-64D017FDD104}.Template|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {B1DEA25C-7667-471B-BBAD-64D017FDD104}.Template|Mixed Platforms.Build.0 = Release|Any CPU
+ {B1DEA25C-7667-471B-BBAD-64D017FDD104}.Template|Win32.ActiveCfg = Release|Any CPU
+ {B1DEA25C-7667-471B-BBAD-64D017FDD104}.Template|x64.ActiveCfg = Release|Any CPU
+ {B1DEA25C-7667-471B-BBAD-64D017FDD104}.Template|x86.ActiveCfg = Release|Any CPU
+ {3578AF4C-CBFF-4A38-88F5-E86AC990AFBD}.Debug FW 3.5|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {3578AF4C-CBFF-4A38-88F5-E86AC990AFBD}.Debug FW 3.5|Any CPU.Build.0 = DebugMono|Any CPU
+ {3578AF4C-CBFF-4A38-88F5-E86AC990AFBD}.Debug FW 3.5|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {3578AF4C-CBFF-4A38-88F5-E86AC990AFBD}.Debug FW 3.5|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {3578AF4C-CBFF-4A38-88F5-E86AC990AFBD}.Debug FW 3.5|Win32.ActiveCfg = DebugMono|Any CPU
+ {3578AF4C-CBFF-4A38-88F5-E86AC990AFBD}.Debug FW 3.5|x64.ActiveCfg = DebugMono|Any CPU
+ {3578AF4C-CBFF-4A38-88F5-E86AC990AFBD}.Debug FW 3.5|x86.ActiveCfg = DebugMono|Any CPU
+ {3578AF4C-CBFF-4A38-88F5-E86AC990AFBD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {3578AF4C-CBFF-4A38-88F5-E86AC990AFBD}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {3578AF4C-CBFF-4A38-88F5-E86AC990AFBD}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {3578AF4C-CBFF-4A38-88F5-E86AC990AFBD}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {3578AF4C-CBFF-4A38-88F5-E86AC990AFBD}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {3578AF4C-CBFF-4A38-88F5-E86AC990AFBD}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {3578AF4C-CBFF-4A38-88F5-E86AC990AFBD}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {3578AF4C-CBFF-4A38-88F5-E86AC990AFBD}.DebugMono|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {3578AF4C-CBFF-4A38-88F5-E86AC990AFBD}.DebugMono|Any CPU.Build.0 = DebugMono|Any CPU
+ {3578AF4C-CBFF-4A38-88F5-E86AC990AFBD}.DebugMono|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {3578AF4C-CBFF-4A38-88F5-E86AC990AFBD}.DebugMono|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {3578AF4C-CBFF-4A38-88F5-E86AC990AFBD}.DebugMono|Win32.ActiveCfg = DebugMono|Any CPU
+ {3578AF4C-CBFF-4A38-88F5-E86AC990AFBD}.DebugMono|x64.ActiveCfg = DebugMono|Any CPU
+ {3578AF4C-CBFF-4A38-88F5-E86AC990AFBD}.DebugMono|x86.ActiveCfg = DebugMono|Any CPU
+ {3578AF4C-CBFF-4A38-88F5-E86AC990AFBD}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {3578AF4C-CBFF-4A38-88F5-E86AC990AFBD}.Release|Any CPU.Build.0 = Release|Any CPU
+ {3578AF4C-CBFF-4A38-88F5-E86AC990AFBD}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {3578AF4C-CBFF-4A38-88F5-E86AC990AFBD}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {3578AF4C-CBFF-4A38-88F5-E86AC990AFBD}.Release|Win32.ActiveCfg = Release|Any CPU
+ {3578AF4C-CBFF-4A38-88F5-E86AC990AFBD}.Release|x64.ActiveCfg = Release|Any CPU
+ {3578AF4C-CBFF-4A38-88F5-E86AC990AFBD}.Release|x86.ActiveCfg = Release|Any CPU
+ {3578AF4C-CBFF-4A38-88F5-E86AC990AFBD}.ReleaseMono|Any CPU.ActiveCfg = ReleaseMono|Any CPU
+ {3578AF4C-CBFF-4A38-88F5-E86AC990AFBD}.ReleaseMono|Any CPU.Build.0 = ReleaseMono|Any CPU
+ {3578AF4C-CBFF-4A38-88F5-E86AC990AFBD}.ReleaseMono|Mixed Platforms.ActiveCfg = ReleaseMono|Any CPU
+ {3578AF4C-CBFF-4A38-88F5-E86AC990AFBD}.ReleaseMono|Mixed Platforms.Build.0 = ReleaseMono|Any CPU
+ {3578AF4C-CBFF-4A38-88F5-E86AC990AFBD}.ReleaseMono|Win32.ActiveCfg = ReleaseMono|Any CPU
+ {3578AF4C-CBFF-4A38-88F5-E86AC990AFBD}.ReleaseMono|x64.ActiveCfg = ReleaseMono|Any CPU
+ {3578AF4C-CBFF-4A38-88F5-E86AC990AFBD}.ReleaseMono|x86.ActiveCfg = ReleaseMono|Any CPU
+ {3578AF4C-CBFF-4A38-88F5-E86AC990AFBD}.Template|Any CPU.ActiveCfg = Release|Any CPU
+ {3578AF4C-CBFF-4A38-88F5-E86AC990AFBD}.Template|Any CPU.Build.0 = Release|Any CPU
+ {3578AF4C-CBFF-4A38-88F5-E86AC990AFBD}.Template|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {3578AF4C-CBFF-4A38-88F5-E86AC990AFBD}.Template|Mixed Platforms.Build.0 = Release|Any CPU
+ {3578AF4C-CBFF-4A38-88F5-E86AC990AFBD}.Template|Win32.ActiveCfg = Release|Any CPU
+ {3578AF4C-CBFF-4A38-88F5-E86AC990AFBD}.Template|x64.ActiveCfg = Release|Any CPU
+ {3578AF4C-CBFF-4A38-88F5-E86AC990AFBD}.Template|x86.ActiveCfg = Release|Any CPU
+ {2B5287F2-A6AC-4D5A-B0A8-01C06144824D}.Debug FW 3.5|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {2B5287F2-A6AC-4D5A-B0A8-01C06144824D}.Debug FW 3.5|Any CPU.Build.0 = DebugMono|Any CPU
+ {2B5287F2-A6AC-4D5A-B0A8-01C06144824D}.Debug FW 3.5|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {2B5287F2-A6AC-4D5A-B0A8-01C06144824D}.Debug FW 3.5|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {2B5287F2-A6AC-4D5A-B0A8-01C06144824D}.Debug FW 3.5|Win32.ActiveCfg = DebugMono|Any CPU
+ {2B5287F2-A6AC-4D5A-B0A8-01C06144824D}.Debug FW 3.5|x64.ActiveCfg = DebugMono|Any CPU
+ {2B5287F2-A6AC-4D5A-B0A8-01C06144824D}.Debug FW 3.5|x86.ActiveCfg = DebugMono|Any CPU
+ {2B5287F2-A6AC-4D5A-B0A8-01C06144824D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {2B5287F2-A6AC-4D5A-B0A8-01C06144824D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {2B5287F2-A6AC-4D5A-B0A8-01C06144824D}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {2B5287F2-A6AC-4D5A-B0A8-01C06144824D}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {2B5287F2-A6AC-4D5A-B0A8-01C06144824D}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {2B5287F2-A6AC-4D5A-B0A8-01C06144824D}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {2B5287F2-A6AC-4D5A-B0A8-01C06144824D}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {2B5287F2-A6AC-4D5A-B0A8-01C06144824D}.DebugMono|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {2B5287F2-A6AC-4D5A-B0A8-01C06144824D}.DebugMono|Any CPU.Build.0 = DebugMono|Any CPU
+ {2B5287F2-A6AC-4D5A-B0A8-01C06144824D}.DebugMono|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {2B5287F2-A6AC-4D5A-B0A8-01C06144824D}.DebugMono|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {2B5287F2-A6AC-4D5A-B0A8-01C06144824D}.DebugMono|Win32.ActiveCfg = DebugMono|Any CPU
+ {2B5287F2-A6AC-4D5A-B0A8-01C06144824D}.DebugMono|x64.ActiveCfg = DebugMono|Any CPU
+ {2B5287F2-A6AC-4D5A-B0A8-01C06144824D}.DebugMono|x86.ActiveCfg = DebugMono|Any CPU
+ {2B5287F2-A6AC-4D5A-B0A8-01C06144824D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {2B5287F2-A6AC-4D5A-B0A8-01C06144824D}.Release|Any CPU.Build.0 = Release|Any CPU
+ {2B5287F2-A6AC-4D5A-B0A8-01C06144824D}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {2B5287F2-A6AC-4D5A-B0A8-01C06144824D}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {2B5287F2-A6AC-4D5A-B0A8-01C06144824D}.Release|Win32.ActiveCfg = Release|Any CPU
+ {2B5287F2-A6AC-4D5A-B0A8-01C06144824D}.Release|x64.ActiveCfg = Release|Any CPU
+ {2B5287F2-A6AC-4D5A-B0A8-01C06144824D}.Release|x86.ActiveCfg = Release|Any CPU
+ {2B5287F2-A6AC-4D5A-B0A8-01C06144824D}.ReleaseMono|Any CPU.ActiveCfg = ReleaseMono|Any CPU
+ {2B5287F2-A6AC-4D5A-B0A8-01C06144824D}.ReleaseMono|Any CPU.Build.0 = ReleaseMono|Any CPU
+ {2B5287F2-A6AC-4D5A-B0A8-01C06144824D}.ReleaseMono|Mixed Platforms.ActiveCfg = ReleaseMono|Any CPU
+ {2B5287F2-A6AC-4D5A-B0A8-01C06144824D}.ReleaseMono|Mixed Platforms.Build.0 = ReleaseMono|Any CPU
+ {2B5287F2-A6AC-4D5A-B0A8-01C06144824D}.ReleaseMono|Win32.ActiveCfg = ReleaseMono|Any CPU
+ {2B5287F2-A6AC-4D5A-B0A8-01C06144824D}.ReleaseMono|x64.ActiveCfg = ReleaseMono|Any CPU
+ {2B5287F2-A6AC-4D5A-B0A8-01C06144824D}.ReleaseMono|x86.ActiveCfg = ReleaseMono|Any CPU
+ {2B5287F2-A6AC-4D5A-B0A8-01C06144824D}.Template|Any CPU.ActiveCfg = Release|Any CPU
+ {2B5287F2-A6AC-4D5A-B0A8-01C06144824D}.Template|Any CPU.Build.0 = Release|Any CPU
+ {2B5287F2-A6AC-4D5A-B0A8-01C06144824D}.Template|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {2B5287F2-A6AC-4D5A-B0A8-01C06144824D}.Template|Mixed Platforms.Build.0 = Release|Any CPU
+ {2B5287F2-A6AC-4D5A-B0A8-01C06144824D}.Template|Win32.ActiveCfg = Release|Any CPU
+ {2B5287F2-A6AC-4D5A-B0A8-01C06144824D}.Template|x64.ActiveCfg = Release|Any CPU
+ {2B5287F2-A6AC-4D5A-B0A8-01C06144824D}.Template|x86.ActiveCfg = Release|Any CPU
+ {5A556D57-0D68-433B-AD78-02849583582B}.Debug FW 3.5|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {5A556D57-0D68-433B-AD78-02849583582B}.Debug FW 3.5|Any CPU.Build.0 = DebugMono|Any CPU
+ {5A556D57-0D68-433B-AD78-02849583582B}.Debug FW 3.5|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {5A556D57-0D68-433B-AD78-02849583582B}.Debug FW 3.5|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {5A556D57-0D68-433B-AD78-02849583582B}.Debug FW 3.5|Win32.ActiveCfg = DebugMono|Any CPU
+ {5A556D57-0D68-433B-AD78-02849583582B}.Debug FW 3.5|x64.ActiveCfg = DebugMono|Any CPU
+ {5A556D57-0D68-433B-AD78-02849583582B}.Debug FW 3.5|x86.ActiveCfg = DebugMono|Any CPU
+ {5A556D57-0D68-433B-AD78-02849583582B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {5A556D57-0D68-433B-AD78-02849583582B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {5A556D57-0D68-433B-AD78-02849583582B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {5A556D57-0D68-433B-AD78-02849583582B}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {5A556D57-0D68-433B-AD78-02849583582B}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {5A556D57-0D68-433B-AD78-02849583582B}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {5A556D57-0D68-433B-AD78-02849583582B}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {5A556D57-0D68-433B-AD78-02849583582B}.DebugMono|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {5A556D57-0D68-433B-AD78-02849583582B}.DebugMono|Any CPU.Build.0 = DebugMono|Any CPU
+ {5A556D57-0D68-433B-AD78-02849583582B}.DebugMono|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {5A556D57-0D68-433B-AD78-02849583582B}.DebugMono|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {5A556D57-0D68-433B-AD78-02849583582B}.DebugMono|Win32.ActiveCfg = DebugMono|Any CPU
+ {5A556D57-0D68-433B-AD78-02849583582B}.DebugMono|x64.ActiveCfg = DebugMono|Any CPU
+ {5A556D57-0D68-433B-AD78-02849583582B}.DebugMono|x86.ActiveCfg = DebugMono|Any CPU
+ {5A556D57-0D68-433B-AD78-02849583582B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {5A556D57-0D68-433B-AD78-02849583582B}.Release|Any CPU.Build.0 = Release|Any CPU
+ {5A556D57-0D68-433B-AD78-02849583582B}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {5A556D57-0D68-433B-AD78-02849583582B}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {5A556D57-0D68-433B-AD78-02849583582B}.Release|Win32.ActiveCfg = Release|Any CPU
+ {5A556D57-0D68-433B-AD78-02849583582B}.Release|x64.ActiveCfg = Release|Any CPU
+ {5A556D57-0D68-433B-AD78-02849583582B}.Release|x86.ActiveCfg = Release|Any CPU
+ {5A556D57-0D68-433B-AD78-02849583582B}.ReleaseMono|Any CPU.ActiveCfg = ReleaseMono|Any CPU
+ {5A556D57-0D68-433B-AD78-02849583582B}.ReleaseMono|Any CPU.Build.0 = ReleaseMono|Any CPU
+ {5A556D57-0D68-433B-AD78-02849583582B}.ReleaseMono|Mixed Platforms.ActiveCfg = ReleaseMono|Any CPU
+ {5A556D57-0D68-433B-AD78-02849583582B}.ReleaseMono|Mixed Platforms.Build.0 = ReleaseMono|Any CPU
+ {5A556D57-0D68-433B-AD78-02849583582B}.ReleaseMono|Win32.ActiveCfg = ReleaseMono|Any CPU
+ {5A556D57-0D68-433B-AD78-02849583582B}.ReleaseMono|x64.ActiveCfg = ReleaseMono|Any CPU
+ {5A556D57-0D68-433B-AD78-02849583582B}.ReleaseMono|x86.ActiveCfg = ReleaseMono|Any CPU
+ {5A556D57-0D68-433B-AD78-02849583582B}.Template|Any CPU.ActiveCfg = Release|Any CPU
+ {5A556D57-0D68-433B-AD78-02849583582B}.Template|Any CPU.Build.0 = Release|Any CPU
+ {5A556D57-0D68-433B-AD78-02849583582B}.Template|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {5A556D57-0D68-433B-AD78-02849583582B}.Template|Mixed Platforms.Build.0 = Release|Any CPU
+ {5A556D57-0D68-433B-AD78-02849583582B}.Template|Win32.ActiveCfg = Release|Any CPU
+ {5A556D57-0D68-433B-AD78-02849583582B}.Template|x64.ActiveCfg = Release|Any CPU
+ {5A556D57-0D68-433B-AD78-02849583582B}.Template|x86.ActiveCfg = Release|Any CPU
+ {85E90F57-8DE1-4912-8414-28578F4D71CD}.Debug FW 3.5|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {85E90F57-8DE1-4912-8414-28578F4D71CD}.Debug FW 3.5|Any CPU.Build.0 = DebugMono|Any CPU
+ {85E90F57-8DE1-4912-8414-28578F4D71CD}.Debug FW 3.5|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {85E90F57-8DE1-4912-8414-28578F4D71CD}.Debug FW 3.5|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {85E90F57-8DE1-4912-8414-28578F4D71CD}.Debug FW 3.5|Win32.ActiveCfg = DebugMono|Any CPU
+ {85E90F57-8DE1-4912-8414-28578F4D71CD}.Debug FW 3.5|x64.ActiveCfg = DebugMono|Any CPU
+ {85E90F57-8DE1-4912-8414-28578F4D71CD}.Debug FW 3.5|x86.ActiveCfg = DebugMono|Any CPU
+ {85E90F57-8DE1-4912-8414-28578F4D71CD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {85E90F57-8DE1-4912-8414-28578F4D71CD}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {85E90F57-8DE1-4912-8414-28578F4D71CD}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {85E90F57-8DE1-4912-8414-28578F4D71CD}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {85E90F57-8DE1-4912-8414-28578F4D71CD}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {85E90F57-8DE1-4912-8414-28578F4D71CD}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {85E90F57-8DE1-4912-8414-28578F4D71CD}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {85E90F57-8DE1-4912-8414-28578F4D71CD}.DebugMono|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {85E90F57-8DE1-4912-8414-28578F4D71CD}.DebugMono|Any CPU.Build.0 = DebugMono|Any CPU
+ {85E90F57-8DE1-4912-8414-28578F4D71CD}.DebugMono|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {85E90F57-8DE1-4912-8414-28578F4D71CD}.DebugMono|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {85E90F57-8DE1-4912-8414-28578F4D71CD}.DebugMono|Win32.ActiveCfg = DebugMono|Any CPU
+ {85E90F57-8DE1-4912-8414-28578F4D71CD}.DebugMono|x64.ActiveCfg = DebugMono|Any CPU
+ {85E90F57-8DE1-4912-8414-28578F4D71CD}.DebugMono|x86.ActiveCfg = DebugMono|Any CPU
+ {85E90F57-8DE1-4912-8414-28578F4D71CD}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {85E90F57-8DE1-4912-8414-28578F4D71CD}.Release|Any CPU.Build.0 = Release|Any CPU
+ {85E90F57-8DE1-4912-8414-28578F4D71CD}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {85E90F57-8DE1-4912-8414-28578F4D71CD}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {85E90F57-8DE1-4912-8414-28578F4D71CD}.Release|Win32.ActiveCfg = Release|Any CPU
+ {85E90F57-8DE1-4912-8414-28578F4D71CD}.Release|x64.ActiveCfg = Release|Any CPU
+ {85E90F57-8DE1-4912-8414-28578F4D71CD}.Release|x86.ActiveCfg = Release|Any CPU
+ {85E90F57-8DE1-4912-8414-28578F4D71CD}.ReleaseMono|Any CPU.ActiveCfg = ReleaseMono|Any CPU
+ {85E90F57-8DE1-4912-8414-28578F4D71CD}.ReleaseMono|Any CPU.Build.0 = ReleaseMono|Any CPU
+ {85E90F57-8DE1-4912-8414-28578F4D71CD}.ReleaseMono|Mixed Platforms.ActiveCfg = ReleaseMono|Any CPU
+ {85E90F57-8DE1-4912-8414-28578F4D71CD}.ReleaseMono|Mixed Platforms.Build.0 = ReleaseMono|Any CPU
+ {85E90F57-8DE1-4912-8414-28578F4D71CD}.ReleaseMono|Win32.ActiveCfg = ReleaseMono|Any CPU
+ {85E90F57-8DE1-4912-8414-28578F4D71CD}.ReleaseMono|x64.ActiveCfg = ReleaseMono|Any CPU
+ {85E90F57-8DE1-4912-8414-28578F4D71CD}.ReleaseMono|x86.ActiveCfg = ReleaseMono|Any CPU
+ {85E90F57-8DE1-4912-8414-28578F4D71CD}.Template|Any CPU.ActiveCfg = Release|Any CPU
+ {85E90F57-8DE1-4912-8414-28578F4D71CD}.Template|Any CPU.Build.0 = Release|Any CPU
+ {85E90F57-8DE1-4912-8414-28578F4D71CD}.Template|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {85E90F57-8DE1-4912-8414-28578F4D71CD}.Template|Mixed Platforms.Build.0 = Release|Any CPU
+ {85E90F57-8DE1-4912-8414-28578F4D71CD}.Template|Win32.ActiveCfg = Release|Any CPU
+ {85E90F57-8DE1-4912-8414-28578F4D71CD}.Template|x64.ActiveCfg = Release|Any CPU
+ {85E90F57-8DE1-4912-8414-28578F4D71CD}.Template|x86.ActiveCfg = Release|Any CPU
+ {3E414663-B673-47A8-AB59-0E08FE43DA86}.Debug FW 3.5|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {3E414663-B673-47A8-AB59-0E08FE43DA86}.Debug FW 3.5|Any CPU.Build.0 = DebugMono|Any CPU
+ {3E414663-B673-47A8-AB59-0E08FE43DA86}.Debug FW 3.5|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {3E414663-B673-47A8-AB59-0E08FE43DA86}.Debug FW 3.5|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {3E414663-B673-47A8-AB59-0E08FE43DA86}.Debug FW 3.5|Win32.ActiveCfg = DebugMono|Any CPU
+ {3E414663-B673-47A8-AB59-0E08FE43DA86}.Debug FW 3.5|x64.ActiveCfg = DebugMono|Any CPU
+ {3E414663-B673-47A8-AB59-0E08FE43DA86}.Debug FW 3.5|x86.ActiveCfg = DebugMono|Any CPU
+ {3E414663-B673-47A8-AB59-0E08FE43DA86}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {3E414663-B673-47A8-AB59-0E08FE43DA86}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {3E414663-B673-47A8-AB59-0E08FE43DA86}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {3E414663-B673-47A8-AB59-0E08FE43DA86}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {3E414663-B673-47A8-AB59-0E08FE43DA86}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {3E414663-B673-47A8-AB59-0E08FE43DA86}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {3E414663-B673-47A8-AB59-0E08FE43DA86}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {3E414663-B673-47A8-AB59-0E08FE43DA86}.DebugMono|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {3E414663-B673-47A8-AB59-0E08FE43DA86}.DebugMono|Any CPU.Build.0 = DebugMono|Any CPU
+ {3E414663-B673-47A8-AB59-0E08FE43DA86}.DebugMono|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {3E414663-B673-47A8-AB59-0E08FE43DA86}.DebugMono|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {3E414663-B673-47A8-AB59-0E08FE43DA86}.DebugMono|Win32.ActiveCfg = DebugMono|Any CPU
+ {3E414663-B673-47A8-AB59-0E08FE43DA86}.DebugMono|x64.ActiveCfg = DebugMono|Any CPU
+ {3E414663-B673-47A8-AB59-0E08FE43DA86}.DebugMono|x86.ActiveCfg = DebugMono|Any CPU
+ {3E414663-B673-47A8-AB59-0E08FE43DA86}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {3E414663-B673-47A8-AB59-0E08FE43DA86}.Release|Any CPU.Build.0 = Release|Any CPU
+ {3E414663-B673-47A8-AB59-0E08FE43DA86}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {3E414663-B673-47A8-AB59-0E08FE43DA86}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {3E414663-B673-47A8-AB59-0E08FE43DA86}.Release|Win32.ActiveCfg = Release|Any CPU
+ {3E414663-B673-47A8-AB59-0E08FE43DA86}.Release|x64.ActiveCfg = Release|Any CPU
+ {3E414663-B673-47A8-AB59-0E08FE43DA86}.Release|x86.ActiveCfg = Release|Any CPU
+ {3E414663-B673-47A8-AB59-0E08FE43DA86}.ReleaseMono|Any CPU.ActiveCfg = ReleaseMono|Any CPU
+ {3E414663-B673-47A8-AB59-0E08FE43DA86}.ReleaseMono|Any CPU.Build.0 = ReleaseMono|Any CPU
+ {3E414663-B673-47A8-AB59-0E08FE43DA86}.ReleaseMono|Mixed Platforms.ActiveCfg = ReleaseMono|Any CPU
+ {3E414663-B673-47A8-AB59-0E08FE43DA86}.ReleaseMono|Mixed Platforms.Build.0 = ReleaseMono|Any CPU
+ {3E414663-B673-47A8-AB59-0E08FE43DA86}.ReleaseMono|Win32.ActiveCfg = ReleaseMono|Any CPU
+ {3E414663-B673-47A8-AB59-0E08FE43DA86}.ReleaseMono|x64.ActiveCfg = ReleaseMono|Any CPU
+ {3E414663-B673-47A8-AB59-0E08FE43DA86}.ReleaseMono|x86.ActiveCfg = ReleaseMono|Any CPU
+ {3E414663-B673-47A8-AB59-0E08FE43DA86}.Template|Any CPU.ActiveCfg = Release|Any CPU
+ {3E414663-B673-47A8-AB59-0E08FE43DA86}.Template|Any CPU.Build.0 = Release|Any CPU
+ {3E414663-B673-47A8-AB59-0E08FE43DA86}.Template|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {3E414663-B673-47A8-AB59-0E08FE43DA86}.Template|Mixed Platforms.Build.0 = Release|Any CPU
+ {3E414663-B673-47A8-AB59-0E08FE43DA86}.Template|Win32.ActiveCfg = Release|Any CPU
+ {3E414663-B673-47A8-AB59-0E08FE43DA86}.Template|x64.ActiveCfg = Release|Any CPU
+ {3E414663-B673-47A8-AB59-0E08FE43DA86}.Template|x86.ActiveCfg = Release|Any CPU
+ {6CD8CC3D-643D-4D09-8660-A26085C44FBC}.Debug FW 3.5|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {6CD8CC3D-643D-4D09-8660-A26085C44FBC}.Debug FW 3.5|Any CPU.Build.0 = DebugMono|Any CPU
+ {6CD8CC3D-643D-4D09-8660-A26085C44FBC}.Debug FW 3.5|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {6CD8CC3D-643D-4D09-8660-A26085C44FBC}.Debug FW 3.5|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {6CD8CC3D-643D-4D09-8660-A26085C44FBC}.Debug FW 3.5|Win32.ActiveCfg = DebugMono|Any CPU
+ {6CD8CC3D-643D-4D09-8660-A26085C44FBC}.Debug FW 3.5|x64.ActiveCfg = DebugMono|Any CPU
+ {6CD8CC3D-643D-4D09-8660-A26085C44FBC}.Debug FW 3.5|x86.ActiveCfg = DebugMono|Any CPU
+ {6CD8CC3D-643D-4D09-8660-A26085C44FBC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {6CD8CC3D-643D-4D09-8660-A26085C44FBC}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6CD8CC3D-643D-4D09-8660-A26085C44FBC}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {6CD8CC3D-643D-4D09-8660-A26085C44FBC}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {6CD8CC3D-643D-4D09-8660-A26085C44FBC}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {6CD8CC3D-643D-4D09-8660-A26085C44FBC}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {6CD8CC3D-643D-4D09-8660-A26085C44FBC}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {6CD8CC3D-643D-4D09-8660-A26085C44FBC}.DebugMono|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {6CD8CC3D-643D-4D09-8660-A26085C44FBC}.DebugMono|Any CPU.Build.0 = DebugMono|Any CPU
+ {6CD8CC3D-643D-4D09-8660-A26085C44FBC}.DebugMono|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {6CD8CC3D-643D-4D09-8660-A26085C44FBC}.DebugMono|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {6CD8CC3D-643D-4D09-8660-A26085C44FBC}.DebugMono|Win32.ActiveCfg = DebugMono|Any CPU
+ {6CD8CC3D-643D-4D09-8660-A26085C44FBC}.DebugMono|x64.ActiveCfg = DebugMono|Any CPU
+ {6CD8CC3D-643D-4D09-8660-A26085C44FBC}.DebugMono|x86.ActiveCfg = DebugMono|Any CPU
+ {6CD8CC3D-643D-4D09-8660-A26085C44FBC}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {6CD8CC3D-643D-4D09-8660-A26085C44FBC}.Release|Any CPU.Build.0 = Release|Any CPU
+ {6CD8CC3D-643D-4D09-8660-A26085C44FBC}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {6CD8CC3D-643D-4D09-8660-A26085C44FBC}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {6CD8CC3D-643D-4D09-8660-A26085C44FBC}.Release|Win32.ActiveCfg = Release|Any CPU
+ {6CD8CC3D-643D-4D09-8660-A26085C44FBC}.Release|x64.ActiveCfg = Release|Any CPU
+ {6CD8CC3D-643D-4D09-8660-A26085C44FBC}.Release|x86.ActiveCfg = Release|Any CPU
+ {6CD8CC3D-643D-4D09-8660-A26085C44FBC}.ReleaseMono|Any CPU.ActiveCfg = ReleaseMono|Any CPU
+ {6CD8CC3D-643D-4D09-8660-A26085C44FBC}.ReleaseMono|Any CPU.Build.0 = ReleaseMono|Any CPU
+ {6CD8CC3D-643D-4D09-8660-A26085C44FBC}.ReleaseMono|Mixed Platforms.ActiveCfg = ReleaseMono|Any CPU
+ {6CD8CC3D-643D-4D09-8660-A26085C44FBC}.ReleaseMono|Mixed Platforms.Build.0 = ReleaseMono|Any CPU
+ {6CD8CC3D-643D-4D09-8660-A26085C44FBC}.ReleaseMono|Win32.ActiveCfg = ReleaseMono|Any CPU
+ {6CD8CC3D-643D-4D09-8660-A26085C44FBC}.ReleaseMono|x64.ActiveCfg = ReleaseMono|Any CPU
+ {6CD8CC3D-643D-4D09-8660-A26085C44FBC}.ReleaseMono|x86.ActiveCfg = ReleaseMono|Any CPU
+ {6CD8CC3D-643D-4D09-8660-A26085C44FBC}.Template|Any CPU.ActiveCfg = Release|Any CPU
+ {6CD8CC3D-643D-4D09-8660-A26085C44FBC}.Template|Any CPU.Build.0 = Release|Any CPU
+ {6CD8CC3D-643D-4D09-8660-A26085C44FBC}.Template|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {6CD8CC3D-643D-4D09-8660-A26085C44FBC}.Template|Mixed Platforms.Build.0 = Release|Any CPU
+ {6CD8CC3D-643D-4D09-8660-A26085C44FBC}.Template|Win32.ActiveCfg = Release|Any CPU
+ {6CD8CC3D-643D-4D09-8660-A26085C44FBC}.Template|x64.ActiveCfg = Release|Any CPU
+ {6CD8CC3D-643D-4D09-8660-A26085C44FBC}.Template|x86.ActiveCfg = Release|Any CPU
+ {663D4BFC-F565-41F7-9409-510B560CCEE8}.Debug FW 3.5|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {663D4BFC-F565-41F7-9409-510B560CCEE8}.Debug FW 3.5|Any CPU.Build.0 = DebugMono|Any CPU
+ {663D4BFC-F565-41F7-9409-510B560CCEE8}.Debug FW 3.5|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {663D4BFC-F565-41F7-9409-510B560CCEE8}.Debug FW 3.5|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {663D4BFC-F565-41F7-9409-510B560CCEE8}.Debug FW 3.5|Win32.ActiveCfg = DebugMono|Any CPU
+ {663D4BFC-F565-41F7-9409-510B560CCEE8}.Debug FW 3.5|x64.ActiveCfg = DebugMono|Any CPU
+ {663D4BFC-F565-41F7-9409-510B560CCEE8}.Debug FW 3.5|x86.ActiveCfg = DebugMono|Any CPU
+ {663D4BFC-F565-41F7-9409-510B560CCEE8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {663D4BFC-F565-41F7-9409-510B560CCEE8}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {663D4BFC-F565-41F7-9409-510B560CCEE8}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {663D4BFC-F565-41F7-9409-510B560CCEE8}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {663D4BFC-F565-41F7-9409-510B560CCEE8}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {663D4BFC-F565-41F7-9409-510B560CCEE8}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {663D4BFC-F565-41F7-9409-510B560CCEE8}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {663D4BFC-F565-41F7-9409-510B560CCEE8}.DebugMono|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {663D4BFC-F565-41F7-9409-510B560CCEE8}.DebugMono|Any CPU.Build.0 = DebugMono|Any CPU
+ {663D4BFC-F565-41F7-9409-510B560CCEE8}.DebugMono|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {663D4BFC-F565-41F7-9409-510B560CCEE8}.DebugMono|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {663D4BFC-F565-41F7-9409-510B560CCEE8}.DebugMono|Win32.ActiveCfg = DebugMono|Any CPU
+ {663D4BFC-F565-41F7-9409-510B560CCEE8}.DebugMono|x64.ActiveCfg = DebugMono|Any CPU
+ {663D4BFC-F565-41F7-9409-510B560CCEE8}.DebugMono|x86.ActiveCfg = DebugMono|Any CPU
+ {663D4BFC-F565-41F7-9409-510B560CCEE8}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {663D4BFC-F565-41F7-9409-510B560CCEE8}.Release|Any CPU.Build.0 = Release|Any CPU
+ {663D4BFC-F565-41F7-9409-510B560CCEE8}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {663D4BFC-F565-41F7-9409-510B560CCEE8}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {663D4BFC-F565-41F7-9409-510B560CCEE8}.Release|Win32.ActiveCfg = Release|Any CPU
+ {663D4BFC-F565-41F7-9409-510B560CCEE8}.Release|x64.ActiveCfg = Release|Any CPU
+ {663D4BFC-F565-41F7-9409-510B560CCEE8}.Release|x86.ActiveCfg = Release|Any CPU
+ {663D4BFC-F565-41F7-9409-510B560CCEE8}.ReleaseMono|Any CPU.ActiveCfg = ReleaseMono|Any CPU
+ {663D4BFC-F565-41F7-9409-510B560CCEE8}.ReleaseMono|Any CPU.Build.0 = ReleaseMono|Any CPU
+ {663D4BFC-F565-41F7-9409-510B560CCEE8}.ReleaseMono|Mixed Platforms.ActiveCfg = ReleaseMono|Any CPU
+ {663D4BFC-F565-41F7-9409-510B560CCEE8}.ReleaseMono|Mixed Platforms.Build.0 = ReleaseMono|Any CPU
+ {663D4BFC-F565-41F7-9409-510B560CCEE8}.ReleaseMono|Win32.ActiveCfg = ReleaseMono|Any CPU
+ {663D4BFC-F565-41F7-9409-510B560CCEE8}.ReleaseMono|x64.ActiveCfg = ReleaseMono|Any CPU
+ {663D4BFC-F565-41F7-9409-510B560CCEE8}.ReleaseMono|x86.ActiveCfg = ReleaseMono|Any CPU
+ {663D4BFC-F565-41F7-9409-510B560CCEE8}.Template|Any CPU.ActiveCfg = Release|Any CPU
+ {663D4BFC-F565-41F7-9409-510B560CCEE8}.Template|Any CPU.Build.0 = Release|Any CPU
+ {663D4BFC-F565-41F7-9409-510B560CCEE8}.Template|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {663D4BFC-F565-41F7-9409-510B560CCEE8}.Template|Mixed Platforms.Build.0 = Release|Any CPU
+ {663D4BFC-F565-41F7-9409-510B560CCEE8}.Template|Win32.ActiveCfg = Release|Any CPU
+ {663D4BFC-F565-41F7-9409-510B560CCEE8}.Template|x64.ActiveCfg = Release|Any CPU
+ {663D4BFC-F565-41F7-9409-510B560CCEE8}.Template|x86.ActiveCfg = Release|Any CPU
+ {28693777-369C-4C0D-B076-38F7C0E5D06C}.Debug FW 3.5|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {28693777-369C-4C0D-B076-38F7C0E5D06C}.Debug FW 3.5|Any CPU.Build.0 = DebugMono|Any CPU
+ {28693777-369C-4C0D-B076-38F7C0E5D06C}.Debug FW 3.5|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {28693777-369C-4C0D-B076-38F7C0E5D06C}.Debug FW 3.5|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {28693777-369C-4C0D-B076-38F7C0E5D06C}.Debug FW 3.5|Win32.ActiveCfg = DebugMono|Any CPU
+ {28693777-369C-4C0D-B076-38F7C0E5D06C}.Debug FW 3.5|x64.ActiveCfg = DebugMono|Any CPU
+ {28693777-369C-4C0D-B076-38F7C0E5D06C}.Debug FW 3.5|x86.ActiveCfg = DebugMono|Any CPU
+ {28693777-369C-4C0D-B076-38F7C0E5D06C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {28693777-369C-4C0D-B076-38F7C0E5D06C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {28693777-369C-4C0D-B076-38F7C0E5D06C}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {28693777-369C-4C0D-B076-38F7C0E5D06C}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {28693777-369C-4C0D-B076-38F7C0E5D06C}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {28693777-369C-4C0D-B076-38F7C0E5D06C}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {28693777-369C-4C0D-B076-38F7C0E5D06C}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {28693777-369C-4C0D-B076-38F7C0E5D06C}.DebugMono|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {28693777-369C-4C0D-B076-38F7C0E5D06C}.DebugMono|Any CPU.Build.0 = DebugMono|Any CPU
+ {28693777-369C-4C0D-B076-38F7C0E5D06C}.DebugMono|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {28693777-369C-4C0D-B076-38F7C0E5D06C}.DebugMono|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {28693777-369C-4C0D-B076-38F7C0E5D06C}.DebugMono|Win32.ActiveCfg = DebugMono|Any CPU
+ {28693777-369C-4C0D-B076-38F7C0E5D06C}.DebugMono|x64.ActiveCfg = DebugMono|Any CPU
+ {28693777-369C-4C0D-B076-38F7C0E5D06C}.DebugMono|x86.ActiveCfg = DebugMono|Any CPU
+ {28693777-369C-4C0D-B076-38F7C0E5D06C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {28693777-369C-4C0D-B076-38F7C0E5D06C}.Release|Any CPU.Build.0 = Release|Any CPU
+ {28693777-369C-4C0D-B076-38F7C0E5D06C}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {28693777-369C-4C0D-B076-38F7C0E5D06C}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {28693777-369C-4C0D-B076-38F7C0E5D06C}.Release|Win32.ActiveCfg = Release|Any CPU
+ {28693777-369C-4C0D-B076-38F7C0E5D06C}.Release|x64.ActiveCfg = Release|Any CPU
+ {28693777-369C-4C0D-B076-38F7C0E5D06C}.Release|x86.ActiveCfg = Release|Any CPU
+ {28693777-369C-4C0D-B076-38F7C0E5D06C}.ReleaseMono|Any CPU.ActiveCfg = ReleaseMono|Any CPU
+ {28693777-369C-4C0D-B076-38F7C0E5D06C}.ReleaseMono|Any CPU.Build.0 = ReleaseMono|Any CPU
+ {28693777-369C-4C0D-B076-38F7C0E5D06C}.ReleaseMono|Mixed Platforms.ActiveCfg = ReleaseMono|Any CPU
+ {28693777-369C-4C0D-B076-38F7C0E5D06C}.ReleaseMono|Mixed Platforms.Build.0 = ReleaseMono|Any CPU
+ {28693777-369C-4C0D-B076-38F7C0E5D06C}.ReleaseMono|Win32.ActiveCfg = ReleaseMono|Any CPU
+ {28693777-369C-4C0D-B076-38F7C0E5D06C}.ReleaseMono|x64.ActiveCfg = ReleaseMono|Any CPU
+ {28693777-369C-4C0D-B076-38F7C0E5D06C}.ReleaseMono|x86.ActiveCfg = ReleaseMono|Any CPU
+ {28693777-369C-4C0D-B076-38F7C0E5D06C}.Template|Any CPU.ActiveCfg = Release|Any CPU
+ {28693777-369C-4C0D-B076-38F7C0E5D06C}.Template|Any CPU.Build.0 = Release|Any CPU
+ {28693777-369C-4C0D-B076-38F7C0E5D06C}.Template|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {28693777-369C-4C0D-B076-38F7C0E5D06C}.Template|Mixed Platforms.Build.0 = Release|Any CPU
+ {28693777-369C-4C0D-B076-38F7C0E5D06C}.Template|Win32.ActiveCfg = Release|Any CPU
+ {28693777-369C-4C0D-B076-38F7C0E5D06C}.Template|x64.ActiveCfg = Release|Any CPU
+ {28693777-369C-4C0D-B076-38F7C0E5D06C}.Template|x86.ActiveCfg = Release|Any CPU
+ {E796EF23-D63D-4EBD-A34D-5F243834933B}.Debug FW 3.5|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {E796EF23-D63D-4EBD-A34D-5F243834933B}.Debug FW 3.5|Any CPU.Build.0 = DebugMono|Any CPU
+ {E796EF23-D63D-4EBD-A34D-5F243834933B}.Debug FW 3.5|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {E796EF23-D63D-4EBD-A34D-5F243834933B}.Debug FW 3.5|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {E796EF23-D63D-4EBD-A34D-5F243834933B}.Debug FW 3.5|Win32.ActiveCfg = DebugMono|Any CPU
+ {E796EF23-D63D-4EBD-A34D-5F243834933B}.Debug FW 3.5|x64.ActiveCfg = DebugMono|Any CPU
+ {E796EF23-D63D-4EBD-A34D-5F243834933B}.Debug FW 3.5|x86.ActiveCfg = DebugMono|Any CPU
+ {E796EF23-D63D-4EBD-A34D-5F243834933B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E796EF23-D63D-4EBD-A34D-5F243834933B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E796EF23-D63D-4EBD-A34D-5F243834933B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {E796EF23-D63D-4EBD-A34D-5F243834933B}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {E796EF23-D63D-4EBD-A34D-5F243834933B}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {E796EF23-D63D-4EBD-A34D-5F243834933B}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {E796EF23-D63D-4EBD-A34D-5F243834933B}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {E796EF23-D63D-4EBD-A34D-5F243834933B}.DebugMono|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {E796EF23-D63D-4EBD-A34D-5F243834933B}.DebugMono|Any CPU.Build.0 = DebugMono|Any CPU
+ {E796EF23-D63D-4EBD-A34D-5F243834933B}.DebugMono|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {E796EF23-D63D-4EBD-A34D-5F243834933B}.DebugMono|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {E796EF23-D63D-4EBD-A34D-5F243834933B}.DebugMono|Win32.ActiveCfg = DebugMono|Any CPU
+ {E796EF23-D63D-4EBD-A34D-5F243834933B}.DebugMono|x64.ActiveCfg = DebugMono|Any CPU
+ {E796EF23-D63D-4EBD-A34D-5F243834933B}.DebugMono|x86.ActiveCfg = DebugMono|Any CPU
+ {E796EF23-D63D-4EBD-A34D-5F243834933B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E796EF23-D63D-4EBD-A34D-5F243834933B}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E796EF23-D63D-4EBD-A34D-5F243834933B}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {E796EF23-D63D-4EBD-A34D-5F243834933B}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {E796EF23-D63D-4EBD-A34D-5F243834933B}.Release|Win32.ActiveCfg = Release|Any CPU
+ {E796EF23-D63D-4EBD-A34D-5F243834933B}.Release|x64.ActiveCfg = Release|Any CPU
+ {E796EF23-D63D-4EBD-A34D-5F243834933B}.Release|x86.ActiveCfg = Release|Any CPU
+ {E796EF23-D63D-4EBD-A34D-5F243834933B}.ReleaseMono|Any CPU.ActiveCfg = ReleaseMono|Any CPU
+ {E796EF23-D63D-4EBD-A34D-5F243834933B}.ReleaseMono|Any CPU.Build.0 = ReleaseMono|Any CPU
+ {E796EF23-D63D-4EBD-A34D-5F243834933B}.ReleaseMono|Mixed Platforms.ActiveCfg = ReleaseMono|Any CPU
+ {E796EF23-D63D-4EBD-A34D-5F243834933B}.ReleaseMono|Mixed Platforms.Build.0 = ReleaseMono|Any CPU
+ {E796EF23-D63D-4EBD-A34D-5F243834933B}.ReleaseMono|Win32.ActiveCfg = ReleaseMono|Any CPU
+ {E796EF23-D63D-4EBD-A34D-5F243834933B}.ReleaseMono|x64.ActiveCfg = ReleaseMono|Any CPU
+ {E796EF23-D63D-4EBD-A34D-5F243834933B}.ReleaseMono|x86.ActiveCfg = ReleaseMono|Any CPU
+ {E796EF23-D63D-4EBD-A34D-5F243834933B}.Template|Any CPU.ActiveCfg = Release|Any CPU
+ {E796EF23-D63D-4EBD-A34D-5F243834933B}.Template|Any CPU.Build.0 = Release|Any CPU
+ {E796EF23-D63D-4EBD-A34D-5F243834933B}.Template|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {E796EF23-D63D-4EBD-A34D-5F243834933B}.Template|Mixed Platforms.Build.0 = Release|Any CPU
+ {E796EF23-D63D-4EBD-A34D-5F243834933B}.Template|Win32.ActiveCfg = Release|Any CPU
+ {E796EF23-D63D-4EBD-A34D-5F243834933B}.Template|x64.ActiveCfg = Release|Any CPU
+ {E796EF23-D63D-4EBD-A34D-5F243834933B}.Template|x86.ActiveCfg = Release|Any CPU
+ {3BCB17AC-9941-4460-858B-2B7BC3BEDDE7}.Debug FW 3.5|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {3BCB17AC-9941-4460-858B-2B7BC3BEDDE7}.Debug FW 3.5|Any CPU.Build.0 = DebugMono|Any CPU
+ {3BCB17AC-9941-4460-858B-2B7BC3BEDDE7}.Debug FW 3.5|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {3BCB17AC-9941-4460-858B-2B7BC3BEDDE7}.Debug FW 3.5|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {3BCB17AC-9941-4460-858B-2B7BC3BEDDE7}.Debug FW 3.5|Win32.ActiveCfg = DebugMono|Any CPU
+ {3BCB17AC-9941-4460-858B-2B7BC3BEDDE7}.Debug FW 3.5|x64.ActiveCfg = DebugMono|Any CPU
+ {3BCB17AC-9941-4460-858B-2B7BC3BEDDE7}.Debug FW 3.5|x86.ActiveCfg = DebugMono|Any CPU
+ {3BCB17AC-9941-4460-858B-2B7BC3BEDDE7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {3BCB17AC-9941-4460-858B-2B7BC3BEDDE7}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {3BCB17AC-9941-4460-858B-2B7BC3BEDDE7}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {3BCB17AC-9941-4460-858B-2B7BC3BEDDE7}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {3BCB17AC-9941-4460-858B-2B7BC3BEDDE7}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {3BCB17AC-9941-4460-858B-2B7BC3BEDDE7}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {3BCB17AC-9941-4460-858B-2B7BC3BEDDE7}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {3BCB17AC-9941-4460-858B-2B7BC3BEDDE7}.DebugMono|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {3BCB17AC-9941-4460-858B-2B7BC3BEDDE7}.DebugMono|Any CPU.Build.0 = DebugMono|Any CPU
+ {3BCB17AC-9941-4460-858B-2B7BC3BEDDE7}.DebugMono|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {3BCB17AC-9941-4460-858B-2B7BC3BEDDE7}.DebugMono|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {3BCB17AC-9941-4460-858B-2B7BC3BEDDE7}.DebugMono|Win32.ActiveCfg = DebugMono|Any CPU
+ {3BCB17AC-9941-4460-858B-2B7BC3BEDDE7}.DebugMono|x64.ActiveCfg = DebugMono|Any CPU
+ {3BCB17AC-9941-4460-858B-2B7BC3BEDDE7}.DebugMono|x86.ActiveCfg = DebugMono|Any CPU
+ {3BCB17AC-9941-4460-858B-2B7BC3BEDDE7}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {3BCB17AC-9941-4460-858B-2B7BC3BEDDE7}.Release|Any CPU.Build.0 = Release|Any CPU
+ {3BCB17AC-9941-4460-858B-2B7BC3BEDDE7}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {3BCB17AC-9941-4460-858B-2B7BC3BEDDE7}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {3BCB17AC-9941-4460-858B-2B7BC3BEDDE7}.Release|Win32.ActiveCfg = Release|Any CPU
+ {3BCB17AC-9941-4460-858B-2B7BC3BEDDE7}.Release|x64.ActiveCfg = Release|Any CPU
+ {3BCB17AC-9941-4460-858B-2B7BC3BEDDE7}.Release|x86.ActiveCfg = Release|Any CPU
+ {3BCB17AC-9941-4460-858B-2B7BC3BEDDE7}.ReleaseMono|Any CPU.ActiveCfg = ReleaseMono|Any CPU
+ {3BCB17AC-9941-4460-858B-2B7BC3BEDDE7}.ReleaseMono|Any CPU.Build.0 = ReleaseMono|Any CPU
+ {3BCB17AC-9941-4460-858B-2B7BC3BEDDE7}.ReleaseMono|Mixed Platforms.ActiveCfg = ReleaseMono|Any CPU
+ {3BCB17AC-9941-4460-858B-2B7BC3BEDDE7}.ReleaseMono|Mixed Platforms.Build.0 = ReleaseMono|Any CPU
+ {3BCB17AC-9941-4460-858B-2B7BC3BEDDE7}.ReleaseMono|Win32.ActiveCfg = ReleaseMono|Any CPU
+ {3BCB17AC-9941-4460-858B-2B7BC3BEDDE7}.ReleaseMono|x64.ActiveCfg = ReleaseMono|Any CPU
+ {3BCB17AC-9941-4460-858B-2B7BC3BEDDE7}.ReleaseMono|x86.ActiveCfg = ReleaseMono|Any CPU
+ {3BCB17AC-9941-4460-858B-2B7BC3BEDDE7}.Template|Any CPU.ActiveCfg = Release|Any CPU
+ {3BCB17AC-9941-4460-858B-2B7BC3BEDDE7}.Template|Any CPU.Build.0 = Release|Any CPU
+ {3BCB17AC-9941-4460-858B-2B7BC3BEDDE7}.Template|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {3BCB17AC-9941-4460-858B-2B7BC3BEDDE7}.Template|Mixed Platforms.Build.0 = Release|Any CPU
+ {3BCB17AC-9941-4460-858B-2B7BC3BEDDE7}.Template|Win32.ActiveCfg = Release|Any CPU
+ {3BCB17AC-9941-4460-858B-2B7BC3BEDDE7}.Template|x64.ActiveCfg = Release|Any CPU
+ {3BCB17AC-9941-4460-858B-2B7BC3BEDDE7}.Template|x86.ActiveCfg = Release|Any CPU
+ {16272F10-9E3D-4C24-8761-8A43E9FB525F}.Debug FW 3.5|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {16272F10-9E3D-4C24-8761-8A43E9FB525F}.Debug FW 3.5|Any CPU.Build.0 = DebugMono|Any CPU
+ {16272F10-9E3D-4C24-8761-8A43E9FB525F}.Debug FW 3.5|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {16272F10-9E3D-4C24-8761-8A43E9FB525F}.Debug FW 3.5|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {16272F10-9E3D-4C24-8761-8A43E9FB525F}.Debug FW 3.5|Win32.ActiveCfg = DebugMono|Any CPU
+ {16272F10-9E3D-4C24-8761-8A43E9FB525F}.Debug FW 3.5|x64.ActiveCfg = DebugMono|Any CPU
+ {16272F10-9E3D-4C24-8761-8A43E9FB525F}.Debug FW 3.5|x86.ActiveCfg = DebugMono|Any CPU
+ {16272F10-9E3D-4C24-8761-8A43E9FB525F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {16272F10-9E3D-4C24-8761-8A43E9FB525F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {16272F10-9E3D-4C24-8761-8A43E9FB525F}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {16272F10-9E3D-4C24-8761-8A43E9FB525F}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {16272F10-9E3D-4C24-8761-8A43E9FB525F}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {16272F10-9E3D-4C24-8761-8A43E9FB525F}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {16272F10-9E3D-4C24-8761-8A43E9FB525F}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {16272F10-9E3D-4C24-8761-8A43E9FB525F}.DebugMono|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {16272F10-9E3D-4C24-8761-8A43E9FB525F}.DebugMono|Any CPU.Build.0 = DebugMono|Any CPU
+ {16272F10-9E3D-4C24-8761-8A43E9FB525F}.DebugMono|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {16272F10-9E3D-4C24-8761-8A43E9FB525F}.DebugMono|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {16272F10-9E3D-4C24-8761-8A43E9FB525F}.DebugMono|Win32.ActiveCfg = DebugMono|Any CPU
+ {16272F10-9E3D-4C24-8761-8A43E9FB525F}.DebugMono|x64.ActiveCfg = DebugMono|Any CPU
+ {16272F10-9E3D-4C24-8761-8A43E9FB525F}.DebugMono|x86.ActiveCfg = DebugMono|Any CPU
+ {16272F10-9E3D-4C24-8761-8A43E9FB525F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {16272F10-9E3D-4C24-8761-8A43E9FB525F}.Release|Any CPU.Build.0 = Release|Any CPU
+ {16272F10-9E3D-4C24-8761-8A43E9FB525F}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {16272F10-9E3D-4C24-8761-8A43E9FB525F}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {16272F10-9E3D-4C24-8761-8A43E9FB525F}.Release|Win32.ActiveCfg = Release|Any CPU
+ {16272F10-9E3D-4C24-8761-8A43E9FB525F}.Release|x64.ActiveCfg = Release|Any CPU
+ {16272F10-9E3D-4C24-8761-8A43E9FB525F}.Release|x86.ActiveCfg = Release|Any CPU
+ {16272F10-9E3D-4C24-8761-8A43E9FB525F}.ReleaseMono|Any CPU.ActiveCfg = ReleaseMono|Any CPU
+ {16272F10-9E3D-4C24-8761-8A43E9FB525F}.ReleaseMono|Any CPU.Build.0 = ReleaseMono|Any CPU
+ {16272F10-9E3D-4C24-8761-8A43E9FB525F}.ReleaseMono|Mixed Platforms.ActiveCfg = ReleaseMono|Any CPU
+ {16272F10-9E3D-4C24-8761-8A43E9FB525F}.ReleaseMono|Mixed Platforms.Build.0 = ReleaseMono|Any CPU
+ {16272F10-9E3D-4C24-8761-8A43E9FB525F}.ReleaseMono|Win32.ActiveCfg = ReleaseMono|Any CPU
+ {16272F10-9E3D-4C24-8761-8A43E9FB525F}.ReleaseMono|x64.ActiveCfg = ReleaseMono|Any CPU
+ {16272F10-9E3D-4C24-8761-8A43E9FB525F}.ReleaseMono|x86.ActiveCfg = ReleaseMono|Any CPU
+ {16272F10-9E3D-4C24-8761-8A43E9FB525F}.Template|Any CPU.ActiveCfg = Release|Any CPU
+ {16272F10-9E3D-4C24-8761-8A43E9FB525F}.Template|Any CPU.Build.0 = Release|Any CPU
+ {16272F10-9E3D-4C24-8761-8A43E9FB525F}.Template|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {16272F10-9E3D-4C24-8761-8A43E9FB525F}.Template|Mixed Platforms.Build.0 = Release|Any CPU
+ {16272F10-9E3D-4C24-8761-8A43E9FB525F}.Template|Win32.ActiveCfg = Release|Any CPU
+ {16272F10-9E3D-4C24-8761-8A43E9FB525F}.Template|x64.ActiveCfg = Release|Any CPU
+ {16272F10-9E3D-4C24-8761-8A43E9FB525F}.Template|x86.ActiveCfg = Release|Any CPU
+ {65FC918C-FF12-4C75-96F5-180B552989E5}.Debug FW 3.5|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {65FC918C-FF12-4C75-96F5-180B552989E5}.Debug FW 3.5|Any CPU.Build.0 = DebugMono|Any CPU
+ {65FC918C-FF12-4C75-96F5-180B552989E5}.Debug FW 3.5|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {65FC918C-FF12-4C75-96F5-180B552989E5}.Debug FW 3.5|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {65FC918C-FF12-4C75-96F5-180B552989E5}.Debug FW 3.5|Win32.ActiveCfg = DebugMono|Any CPU
+ {65FC918C-FF12-4C75-96F5-180B552989E5}.Debug FW 3.5|x64.ActiveCfg = DebugMono|Any CPU
+ {65FC918C-FF12-4C75-96F5-180B552989E5}.Debug FW 3.5|x86.ActiveCfg = DebugMono|Any CPU
+ {65FC918C-FF12-4C75-96F5-180B552989E5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {65FC918C-FF12-4C75-96F5-180B552989E5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {65FC918C-FF12-4C75-96F5-180B552989E5}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {65FC918C-FF12-4C75-96F5-180B552989E5}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {65FC918C-FF12-4C75-96F5-180B552989E5}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {65FC918C-FF12-4C75-96F5-180B552989E5}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {65FC918C-FF12-4C75-96F5-180B552989E5}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {65FC918C-FF12-4C75-96F5-180B552989E5}.DebugMono|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {65FC918C-FF12-4C75-96F5-180B552989E5}.DebugMono|Any CPU.Build.0 = DebugMono|Any CPU
+ {65FC918C-FF12-4C75-96F5-180B552989E5}.DebugMono|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {65FC918C-FF12-4C75-96F5-180B552989E5}.DebugMono|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {65FC918C-FF12-4C75-96F5-180B552989E5}.DebugMono|Win32.ActiveCfg = DebugMono|Any CPU
+ {65FC918C-FF12-4C75-96F5-180B552989E5}.DebugMono|x64.ActiveCfg = DebugMono|Any CPU
+ {65FC918C-FF12-4C75-96F5-180B552989E5}.DebugMono|x86.ActiveCfg = DebugMono|Any CPU
+ {65FC918C-FF12-4C75-96F5-180B552989E5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {65FC918C-FF12-4C75-96F5-180B552989E5}.Release|Any CPU.Build.0 = Release|Any CPU
+ {65FC918C-FF12-4C75-96F5-180B552989E5}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {65FC918C-FF12-4C75-96F5-180B552989E5}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {65FC918C-FF12-4C75-96F5-180B552989E5}.Release|Win32.ActiveCfg = Release|Any CPU
+ {65FC918C-FF12-4C75-96F5-180B552989E5}.Release|x64.ActiveCfg = Release|Any CPU
+ {65FC918C-FF12-4C75-96F5-180B552989E5}.Release|x86.ActiveCfg = Release|Any CPU
+ {65FC918C-FF12-4C75-96F5-180B552989E5}.ReleaseMono|Any CPU.ActiveCfg = ReleaseMono|Any CPU
+ {65FC918C-FF12-4C75-96F5-180B552989E5}.ReleaseMono|Any CPU.Build.0 = ReleaseMono|Any CPU
+ {65FC918C-FF12-4C75-96F5-180B552989E5}.ReleaseMono|Mixed Platforms.ActiveCfg = ReleaseMono|Any CPU
+ {65FC918C-FF12-4C75-96F5-180B552989E5}.ReleaseMono|Mixed Platforms.Build.0 = ReleaseMono|Any CPU
+ {65FC918C-FF12-4C75-96F5-180B552989E5}.ReleaseMono|Win32.ActiveCfg = ReleaseMono|Any CPU
+ {65FC918C-FF12-4C75-96F5-180B552989E5}.ReleaseMono|x64.ActiveCfg = ReleaseMono|Any CPU
+ {65FC918C-FF12-4C75-96F5-180B552989E5}.ReleaseMono|x86.ActiveCfg = ReleaseMono|Any CPU
+ {65FC918C-FF12-4C75-96F5-180B552989E5}.Template|Any CPU.ActiveCfg = Release|Any CPU
+ {65FC918C-FF12-4C75-96F5-180B552989E5}.Template|Any CPU.Build.0 = Release|Any CPU
+ {65FC918C-FF12-4C75-96F5-180B552989E5}.Template|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {65FC918C-FF12-4C75-96F5-180B552989E5}.Template|Mixed Platforms.Build.0 = Release|Any CPU
+ {65FC918C-FF12-4C75-96F5-180B552989E5}.Template|Win32.ActiveCfg = Release|Any CPU
+ {65FC918C-FF12-4C75-96F5-180B552989E5}.Template|x64.ActiveCfg = Release|Any CPU
+ {65FC918C-FF12-4C75-96F5-180B552989E5}.Template|x86.ActiveCfg = Release|Any CPU
+ {854749E5-9264-42FF-A576-3B5784C7C14C}.Debug FW 3.5|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {854749E5-9264-42FF-A576-3B5784C7C14C}.Debug FW 3.5|Any CPU.Build.0 = DebugMono|Any CPU
+ {854749E5-9264-42FF-A576-3B5784C7C14C}.Debug FW 3.5|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {854749E5-9264-42FF-A576-3B5784C7C14C}.Debug FW 3.5|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {854749E5-9264-42FF-A576-3B5784C7C14C}.Debug FW 3.5|Win32.ActiveCfg = DebugMono|Any CPU
+ {854749E5-9264-42FF-A576-3B5784C7C14C}.Debug FW 3.5|x64.ActiveCfg = DebugMono|Any CPU
+ {854749E5-9264-42FF-A576-3B5784C7C14C}.Debug FW 3.5|x86.ActiveCfg = DebugMono|Any CPU
+ {854749E5-9264-42FF-A576-3B5784C7C14C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {854749E5-9264-42FF-A576-3B5784C7C14C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {854749E5-9264-42FF-A576-3B5784C7C14C}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {854749E5-9264-42FF-A576-3B5784C7C14C}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {854749E5-9264-42FF-A576-3B5784C7C14C}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {854749E5-9264-42FF-A576-3B5784C7C14C}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {854749E5-9264-42FF-A576-3B5784C7C14C}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {854749E5-9264-42FF-A576-3B5784C7C14C}.DebugMono|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {854749E5-9264-42FF-A576-3B5784C7C14C}.DebugMono|Any CPU.Build.0 = DebugMono|Any CPU
+ {854749E5-9264-42FF-A576-3B5784C7C14C}.DebugMono|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {854749E5-9264-42FF-A576-3B5784C7C14C}.DebugMono|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {854749E5-9264-42FF-A576-3B5784C7C14C}.DebugMono|Win32.ActiveCfg = DebugMono|Any CPU
+ {854749E5-9264-42FF-A576-3B5784C7C14C}.DebugMono|x64.ActiveCfg = DebugMono|Any CPU
+ {854749E5-9264-42FF-A576-3B5784C7C14C}.DebugMono|x86.ActiveCfg = DebugMono|Any CPU
+ {854749E5-9264-42FF-A576-3B5784C7C14C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {854749E5-9264-42FF-A576-3B5784C7C14C}.Release|Any CPU.Build.0 = Release|Any CPU
+ {854749E5-9264-42FF-A576-3B5784C7C14C}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {854749E5-9264-42FF-A576-3B5784C7C14C}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {854749E5-9264-42FF-A576-3B5784C7C14C}.Release|Win32.ActiveCfg = Release|Any CPU
+ {854749E5-9264-42FF-A576-3B5784C7C14C}.Release|x64.ActiveCfg = Release|Any CPU
+ {854749E5-9264-42FF-A576-3B5784C7C14C}.Release|x86.ActiveCfg = Release|Any CPU
+ {854749E5-9264-42FF-A576-3B5784C7C14C}.ReleaseMono|Any CPU.ActiveCfg = ReleaseMono|Any CPU
+ {854749E5-9264-42FF-A576-3B5784C7C14C}.ReleaseMono|Any CPU.Build.0 = ReleaseMono|Any CPU
+ {854749E5-9264-42FF-A576-3B5784C7C14C}.ReleaseMono|Mixed Platforms.ActiveCfg = ReleaseMono|Any CPU
+ {854749E5-9264-42FF-A576-3B5784C7C14C}.ReleaseMono|Mixed Platforms.Build.0 = ReleaseMono|Any CPU
+ {854749E5-9264-42FF-A576-3B5784C7C14C}.ReleaseMono|Win32.ActiveCfg = ReleaseMono|Any CPU
+ {854749E5-9264-42FF-A576-3B5784C7C14C}.ReleaseMono|x64.ActiveCfg = ReleaseMono|Any CPU
+ {854749E5-9264-42FF-A576-3B5784C7C14C}.ReleaseMono|x86.ActiveCfg = ReleaseMono|Any CPU
+ {854749E5-9264-42FF-A576-3B5784C7C14C}.Template|Any CPU.ActiveCfg = Release|Any CPU
+ {854749E5-9264-42FF-A576-3B5784C7C14C}.Template|Any CPU.Build.0 = Release|Any CPU
+ {854749E5-9264-42FF-A576-3B5784C7C14C}.Template|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {854749E5-9264-42FF-A576-3B5784C7C14C}.Template|Mixed Platforms.Build.0 = Release|Any CPU
+ {854749E5-9264-42FF-A576-3B5784C7C14C}.Template|Win32.ActiveCfg = Release|Any CPU
+ {854749E5-9264-42FF-A576-3B5784C7C14C}.Template|x64.ActiveCfg = Release|Any CPU
+ {854749E5-9264-42FF-A576-3B5784C7C14C}.Template|x86.ActiveCfg = Release|Any CPU
+ {57CE5505-44CB-42E4-A346-3471F68A5B60}.Debug FW 3.5|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {57CE5505-44CB-42E4-A346-3471F68A5B60}.Debug FW 3.5|Any CPU.Build.0 = DebugMono|Any CPU
+ {57CE5505-44CB-42E4-A346-3471F68A5B60}.Debug FW 3.5|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {57CE5505-44CB-42E4-A346-3471F68A5B60}.Debug FW 3.5|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {57CE5505-44CB-42E4-A346-3471F68A5B60}.Debug FW 3.5|Win32.ActiveCfg = DebugMono|Any CPU
+ {57CE5505-44CB-42E4-A346-3471F68A5B60}.Debug FW 3.5|x64.ActiveCfg = DebugMono|Any CPU
+ {57CE5505-44CB-42E4-A346-3471F68A5B60}.Debug FW 3.5|x86.ActiveCfg = DebugMono|Any CPU
+ {57CE5505-44CB-42E4-A346-3471F68A5B60}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {57CE5505-44CB-42E4-A346-3471F68A5B60}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {57CE5505-44CB-42E4-A346-3471F68A5B60}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {57CE5505-44CB-42E4-A346-3471F68A5B60}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {57CE5505-44CB-42E4-A346-3471F68A5B60}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {57CE5505-44CB-42E4-A346-3471F68A5B60}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {57CE5505-44CB-42E4-A346-3471F68A5B60}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {57CE5505-44CB-42E4-A346-3471F68A5B60}.DebugMono|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {57CE5505-44CB-42E4-A346-3471F68A5B60}.DebugMono|Any CPU.Build.0 = DebugMono|Any CPU
+ {57CE5505-44CB-42E4-A346-3471F68A5B60}.DebugMono|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {57CE5505-44CB-42E4-A346-3471F68A5B60}.DebugMono|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {57CE5505-44CB-42E4-A346-3471F68A5B60}.DebugMono|Win32.ActiveCfg = DebugMono|Any CPU
+ {57CE5505-44CB-42E4-A346-3471F68A5B60}.DebugMono|x64.ActiveCfg = DebugMono|Any CPU
+ {57CE5505-44CB-42E4-A346-3471F68A5B60}.DebugMono|x86.ActiveCfg = DebugMono|Any CPU
+ {57CE5505-44CB-42E4-A346-3471F68A5B60}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {57CE5505-44CB-42E4-A346-3471F68A5B60}.Release|Any CPU.Build.0 = Release|Any CPU
+ {57CE5505-44CB-42E4-A346-3471F68A5B60}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {57CE5505-44CB-42E4-A346-3471F68A5B60}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {57CE5505-44CB-42E4-A346-3471F68A5B60}.Release|Win32.ActiveCfg = Release|Any CPU
+ {57CE5505-44CB-42E4-A346-3471F68A5B60}.Release|x64.ActiveCfg = Release|Any CPU
+ {57CE5505-44CB-42E4-A346-3471F68A5B60}.Release|x86.ActiveCfg = Release|Any CPU
+ {57CE5505-44CB-42E4-A346-3471F68A5B60}.ReleaseMono|Any CPU.ActiveCfg = ReleaseMono|Any CPU
+ {57CE5505-44CB-42E4-A346-3471F68A5B60}.ReleaseMono|Any CPU.Build.0 = ReleaseMono|Any CPU
+ {57CE5505-44CB-42E4-A346-3471F68A5B60}.ReleaseMono|Mixed Platforms.ActiveCfg = ReleaseMono|Any CPU
+ {57CE5505-44CB-42E4-A346-3471F68A5B60}.ReleaseMono|Mixed Platforms.Build.0 = ReleaseMono|Any CPU
+ {57CE5505-44CB-42E4-A346-3471F68A5B60}.ReleaseMono|Win32.ActiveCfg = ReleaseMono|Any CPU
+ {57CE5505-44CB-42E4-A346-3471F68A5B60}.ReleaseMono|x64.ActiveCfg = ReleaseMono|Any CPU
+ {57CE5505-44CB-42E4-A346-3471F68A5B60}.ReleaseMono|x86.ActiveCfg = ReleaseMono|Any CPU
+ {57CE5505-44CB-42E4-A346-3471F68A5B60}.Template|Any CPU.ActiveCfg = Release|Any CPU
+ {57CE5505-44CB-42E4-A346-3471F68A5B60}.Template|Any CPU.Build.0 = Release|Any CPU
+ {57CE5505-44CB-42E4-A346-3471F68A5B60}.Template|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {57CE5505-44CB-42E4-A346-3471F68A5B60}.Template|Mixed Platforms.Build.0 = Release|Any CPU
+ {57CE5505-44CB-42E4-A346-3471F68A5B60}.Template|Win32.ActiveCfg = Release|Any CPU
+ {57CE5505-44CB-42E4-A346-3471F68A5B60}.Template|x64.ActiveCfg = Release|Any CPU
+ {57CE5505-44CB-42E4-A346-3471F68A5B60}.Template|x86.ActiveCfg = Release|Any CPU
+ {7ED3B518-7CEA-4991-98BD-9752E5F32F58}.Debug FW 3.5|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {7ED3B518-7CEA-4991-98BD-9752E5F32F58}.Debug FW 3.5|Any CPU.Build.0 = DebugMono|Any CPU
+ {7ED3B518-7CEA-4991-98BD-9752E5F32F58}.Debug FW 3.5|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {7ED3B518-7CEA-4991-98BD-9752E5F32F58}.Debug FW 3.5|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {7ED3B518-7CEA-4991-98BD-9752E5F32F58}.Debug FW 3.5|Win32.ActiveCfg = DebugMono|Any CPU
+ {7ED3B518-7CEA-4991-98BD-9752E5F32F58}.Debug FW 3.5|x64.ActiveCfg = DebugMono|Any CPU
+ {7ED3B518-7CEA-4991-98BD-9752E5F32F58}.Debug FW 3.5|x86.ActiveCfg = DebugMono|Any CPU
+ {7ED3B518-7CEA-4991-98BD-9752E5F32F58}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {7ED3B518-7CEA-4991-98BD-9752E5F32F58}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {7ED3B518-7CEA-4991-98BD-9752E5F32F58}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {7ED3B518-7CEA-4991-98BD-9752E5F32F58}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {7ED3B518-7CEA-4991-98BD-9752E5F32F58}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {7ED3B518-7CEA-4991-98BD-9752E5F32F58}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {7ED3B518-7CEA-4991-98BD-9752E5F32F58}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {7ED3B518-7CEA-4991-98BD-9752E5F32F58}.DebugMono|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {7ED3B518-7CEA-4991-98BD-9752E5F32F58}.DebugMono|Any CPU.Build.0 = DebugMono|Any CPU
+ {7ED3B518-7CEA-4991-98BD-9752E5F32F58}.DebugMono|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {7ED3B518-7CEA-4991-98BD-9752E5F32F58}.DebugMono|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {7ED3B518-7CEA-4991-98BD-9752E5F32F58}.DebugMono|Win32.ActiveCfg = DebugMono|Any CPU
+ {7ED3B518-7CEA-4991-98BD-9752E5F32F58}.DebugMono|x64.ActiveCfg = DebugMono|Any CPU
+ {7ED3B518-7CEA-4991-98BD-9752E5F32F58}.DebugMono|x86.ActiveCfg = DebugMono|Any CPU
+ {7ED3B518-7CEA-4991-98BD-9752E5F32F58}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {7ED3B518-7CEA-4991-98BD-9752E5F32F58}.Release|Any CPU.Build.0 = Release|Any CPU
+ {7ED3B518-7CEA-4991-98BD-9752E5F32F58}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {7ED3B518-7CEA-4991-98BD-9752E5F32F58}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {7ED3B518-7CEA-4991-98BD-9752E5F32F58}.Release|Win32.ActiveCfg = Release|Any CPU
+ {7ED3B518-7CEA-4991-98BD-9752E5F32F58}.Release|x64.ActiveCfg = Release|Any CPU
+ {7ED3B518-7CEA-4991-98BD-9752E5F32F58}.Release|x86.ActiveCfg = Release|Any CPU
+ {7ED3B518-7CEA-4991-98BD-9752E5F32F58}.ReleaseMono|Any CPU.ActiveCfg = ReleaseMono|Any CPU
+ {7ED3B518-7CEA-4991-98BD-9752E5F32F58}.ReleaseMono|Any CPU.Build.0 = ReleaseMono|Any CPU
+ {7ED3B518-7CEA-4991-98BD-9752E5F32F58}.ReleaseMono|Mixed Platforms.ActiveCfg = ReleaseMono|Any CPU
+ {7ED3B518-7CEA-4991-98BD-9752E5F32F58}.ReleaseMono|Mixed Platforms.Build.0 = ReleaseMono|Any CPU
+ {7ED3B518-7CEA-4991-98BD-9752E5F32F58}.ReleaseMono|Win32.ActiveCfg = ReleaseMono|Any CPU
+ {7ED3B518-7CEA-4991-98BD-9752E5F32F58}.ReleaseMono|x64.ActiveCfg = ReleaseMono|Any CPU
+ {7ED3B518-7CEA-4991-98BD-9752E5F32F58}.ReleaseMono|x86.ActiveCfg = ReleaseMono|Any CPU
+ {7ED3B518-7CEA-4991-98BD-9752E5F32F58}.Template|Any CPU.ActiveCfg = Release|Any CPU
+ {7ED3B518-7CEA-4991-98BD-9752E5F32F58}.Template|Any CPU.Build.0 = Release|Any CPU
+ {7ED3B518-7CEA-4991-98BD-9752E5F32F58}.Template|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {7ED3B518-7CEA-4991-98BD-9752E5F32F58}.Template|Mixed Platforms.Build.0 = Release|Any CPU
+ {7ED3B518-7CEA-4991-98BD-9752E5F32F58}.Template|Win32.ActiveCfg = Release|Any CPU
+ {7ED3B518-7CEA-4991-98BD-9752E5F32F58}.Template|x64.ActiveCfg = Release|Any CPU
+ {7ED3B518-7CEA-4991-98BD-9752E5F32F58}.Template|x86.ActiveCfg = Release|Any CPU
+ {BF0811CA-4663-4778-8331-9BEEBCAAC8C8}.Debug FW 3.5|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {BF0811CA-4663-4778-8331-9BEEBCAAC8C8}.Debug FW 3.5|Any CPU.Build.0 = DebugMono|Any CPU
+ {BF0811CA-4663-4778-8331-9BEEBCAAC8C8}.Debug FW 3.5|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {BF0811CA-4663-4778-8331-9BEEBCAAC8C8}.Debug FW 3.5|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {BF0811CA-4663-4778-8331-9BEEBCAAC8C8}.Debug FW 3.5|Win32.ActiveCfg = DebugMono|Any CPU
+ {BF0811CA-4663-4778-8331-9BEEBCAAC8C8}.Debug FW 3.5|x64.ActiveCfg = DebugMono|Any CPU
+ {BF0811CA-4663-4778-8331-9BEEBCAAC8C8}.Debug FW 3.5|x86.ActiveCfg = DebugMono|Any CPU
+ {BF0811CA-4663-4778-8331-9BEEBCAAC8C8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {BF0811CA-4663-4778-8331-9BEEBCAAC8C8}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {BF0811CA-4663-4778-8331-9BEEBCAAC8C8}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {BF0811CA-4663-4778-8331-9BEEBCAAC8C8}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {BF0811CA-4663-4778-8331-9BEEBCAAC8C8}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {BF0811CA-4663-4778-8331-9BEEBCAAC8C8}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {BF0811CA-4663-4778-8331-9BEEBCAAC8C8}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {BF0811CA-4663-4778-8331-9BEEBCAAC8C8}.DebugMono|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {BF0811CA-4663-4778-8331-9BEEBCAAC8C8}.DebugMono|Any CPU.Build.0 = DebugMono|Any CPU
+ {BF0811CA-4663-4778-8331-9BEEBCAAC8C8}.DebugMono|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {BF0811CA-4663-4778-8331-9BEEBCAAC8C8}.DebugMono|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {BF0811CA-4663-4778-8331-9BEEBCAAC8C8}.DebugMono|Win32.ActiveCfg = DebugMono|Any CPU
+ {BF0811CA-4663-4778-8331-9BEEBCAAC8C8}.DebugMono|x64.ActiveCfg = DebugMono|Any CPU
+ {BF0811CA-4663-4778-8331-9BEEBCAAC8C8}.DebugMono|x86.ActiveCfg = DebugMono|Any CPU
+ {BF0811CA-4663-4778-8331-9BEEBCAAC8C8}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {BF0811CA-4663-4778-8331-9BEEBCAAC8C8}.Release|Any CPU.Build.0 = Release|Any CPU
+ {BF0811CA-4663-4778-8331-9BEEBCAAC8C8}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {BF0811CA-4663-4778-8331-9BEEBCAAC8C8}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {BF0811CA-4663-4778-8331-9BEEBCAAC8C8}.Release|Win32.ActiveCfg = Release|Any CPU
+ {BF0811CA-4663-4778-8331-9BEEBCAAC8C8}.Release|x64.ActiveCfg = Release|Any CPU
+ {BF0811CA-4663-4778-8331-9BEEBCAAC8C8}.Release|x86.ActiveCfg = Release|Any CPU
+ {BF0811CA-4663-4778-8331-9BEEBCAAC8C8}.ReleaseMono|Any CPU.ActiveCfg = ReleaseMono|Any CPU
+ {BF0811CA-4663-4778-8331-9BEEBCAAC8C8}.ReleaseMono|Any CPU.Build.0 = ReleaseMono|Any CPU
+ {BF0811CA-4663-4778-8331-9BEEBCAAC8C8}.ReleaseMono|Mixed Platforms.ActiveCfg = ReleaseMono|Any CPU
+ {BF0811CA-4663-4778-8331-9BEEBCAAC8C8}.ReleaseMono|Mixed Platforms.Build.0 = ReleaseMono|Any CPU
+ {BF0811CA-4663-4778-8331-9BEEBCAAC8C8}.ReleaseMono|Win32.ActiveCfg = ReleaseMono|Any CPU
+ {BF0811CA-4663-4778-8331-9BEEBCAAC8C8}.ReleaseMono|x64.ActiveCfg = ReleaseMono|Any CPU
+ {BF0811CA-4663-4778-8331-9BEEBCAAC8C8}.ReleaseMono|x86.ActiveCfg = ReleaseMono|Any CPU
+ {BF0811CA-4663-4778-8331-9BEEBCAAC8C8}.Template|Any CPU.ActiveCfg = Release|Any CPU
+ {BF0811CA-4663-4778-8331-9BEEBCAAC8C8}.Template|Any CPU.Build.0 = Release|Any CPU
+ {BF0811CA-4663-4778-8331-9BEEBCAAC8C8}.Template|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {BF0811CA-4663-4778-8331-9BEEBCAAC8C8}.Template|Mixed Platforms.Build.0 = Release|Any CPU
+ {BF0811CA-4663-4778-8331-9BEEBCAAC8C8}.Template|Win32.ActiveCfg = Release|Any CPU
+ {BF0811CA-4663-4778-8331-9BEEBCAAC8C8}.Template|x64.ActiveCfg = Release|Any CPU
+ {BF0811CA-4663-4778-8331-9BEEBCAAC8C8}.Template|x86.ActiveCfg = Release|Any CPU
+ {01C318D0-1CB1-4CB4-A5ED-D311665C76EE}.Debug FW 3.5|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {01C318D0-1CB1-4CB4-A5ED-D311665C76EE}.Debug FW 3.5|Any CPU.Build.0 = DebugMono|Any CPU
+ {01C318D0-1CB1-4CB4-A5ED-D311665C76EE}.Debug FW 3.5|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {01C318D0-1CB1-4CB4-A5ED-D311665C76EE}.Debug FW 3.5|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {01C318D0-1CB1-4CB4-A5ED-D311665C76EE}.Debug FW 3.5|Win32.ActiveCfg = DebugMono|Any CPU
+ {01C318D0-1CB1-4CB4-A5ED-D311665C76EE}.Debug FW 3.5|x64.ActiveCfg = DebugMono|Any CPU
+ {01C318D0-1CB1-4CB4-A5ED-D311665C76EE}.Debug FW 3.5|x86.ActiveCfg = DebugMono|Any CPU
+ {01C318D0-1CB1-4CB4-A5ED-D311665C76EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {01C318D0-1CB1-4CB4-A5ED-D311665C76EE}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {01C318D0-1CB1-4CB4-A5ED-D311665C76EE}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {01C318D0-1CB1-4CB4-A5ED-D311665C76EE}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {01C318D0-1CB1-4CB4-A5ED-D311665C76EE}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {01C318D0-1CB1-4CB4-A5ED-D311665C76EE}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {01C318D0-1CB1-4CB4-A5ED-D311665C76EE}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {01C318D0-1CB1-4CB4-A5ED-D311665C76EE}.DebugMono|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {01C318D0-1CB1-4CB4-A5ED-D311665C76EE}.DebugMono|Any CPU.Build.0 = DebugMono|Any CPU
+ {01C318D0-1CB1-4CB4-A5ED-D311665C76EE}.DebugMono|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {01C318D0-1CB1-4CB4-A5ED-D311665C76EE}.DebugMono|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {01C318D0-1CB1-4CB4-A5ED-D311665C76EE}.DebugMono|Win32.ActiveCfg = DebugMono|Any CPU
+ {01C318D0-1CB1-4CB4-A5ED-D311665C76EE}.DebugMono|x64.ActiveCfg = DebugMono|Any CPU
+ {01C318D0-1CB1-4CB4-A5ED-D311665C76EE}.DebugMono|x86.ActiveCfg = DebugMono|Any CPU
+ {01C318D0-1CB1-4CB4-A5ED-D311665C76EE}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {01C318D0-1CB1-4CB4-A5ED-D311665C76EE}.Release|Any CPU.Build.0 = Release|Any CPU
+ {01C318D0-1CB1-4CB4-A5ED-D311665C76EE}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {01C318D0-1CB1-4CB4-A5ED-D311665C76EE}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {01C318D0-1CB1-4CB4-A5ED-D311665C76EE}.Release|Win32.ActiveCfg = Release|Any CPU
+ {01C318D0-1CB1-4CB4-A5ED-D311665C76EE}.Release|x64.ActiveCfg = Release|Any CPU
+ {01C318D0-1CB1-4CB4-A5ED-D311665C76EE}.Release|x86.ActiveCfg = Release|Any CPU
+ {01C318D0-1CB1-4CB4-A5ED-D311665C76EE}.ReleaseMono|Any CPU.ActiveCfg = ReleaseMono|Any CPU
+ {01C318D0-1CB1-4CB4-A5ED-D311665C76EE}.ReleaseMono|Any CPU.Build.0 = ReleaseMono|Any CPU
+ {01C318D0-1CB1-4CB4-A5ED-D311665C76EE}.ReleaseMono|Mixed Platforms.ActiveCfg = ReleaseMono|Any CPU
+ {01C318D0-1CB1-4CB4-A5ED-D311665C76EE}.ReleaseMono|Mixed Platforms.Build.0 = ReleaseMono|Any CPU
+ {01C318D0-1CB1-4CB4-A5ED-D311665C76EE}.ReleaseMono|Win32.ActiveCfg = ReleaseMono|Any CPU
+ {01C318D0-1CB1-4CB4-A5ED-D311665C76EE}.ReleaseMono|x64.ActiveCfg = ReleaseMono|Any CPU
+ {01C318D0-1CB1-4CB4-A5ED-D311665C76EE}.ReleaseMono|x86.ActiveCfg = ReleaseMono|Any CPU
+ {01C318D0-1CB1-4CB4-A5ED-D311665C76EE}.Template|Any CPU.ActiveCfg = Release|Any CPU
+ {01C318D0-1CB1-4CB4-A5ED-D311665C76EE}.Template|Any CPU.Build.0 = Release|Any CPU
+ {01C318D0-1CB1-4CB4-A5ED-D311665C76EE}.Template|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {01C318D0-1CB1-4CB4-A5ED-D311665C76EE}.Template|Mixed Platforms.Build.0 = Release|Any CPU
+ {01C318D0-1CB1-4CB4-A5ED-D311665C76EE}.Template|Win32.ActiveCfg = Release|Any CPU
+ {01C318D0-1CB1-4CB4-A5ED-D311665C76EE}.Template|x64.ActiveCfg = Release|Any CPU
+ {01C318D0-1CB1-4CB4-A5ED-D311665C76EE}.Template|x86.ActiveCfg = Release|Any CPU
+ {7DAA2EBB-A724-498F-93BB-68966E2B738F}.Debug FW 3.5|Any CPU.ActiveCfg = Debug|Any CPU
+ {7DAA2EBB-A724-498F-93BB-68966E2B738F}.Debug FW 3.5|Any CPU.Build.0 = Debug|Any CPU
+ {7DAA2EBB-A724-498F-93BB-68966E2B738F}.Debug FW 3.5|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {7DAA2EBB-A724-498F-93BB-68966E2B738F}.Debug FW 3.5|Mixed Platforms.Build.0 = Debug|Any CPU
+ {7DAA2EBB-A724-498F-93BB-68966E2B738F}.Debug FW 3.5|Win32.ActiveCfg = Debug|Any CPU
+ {7DAA2EBB-A724-498F-93BB-68966E2B738F}.Debug FW 3.5|x64.ActiveCfg = Debug|Any CPU
+ {7DAA2EBB-A724-498F-93BB-68966E2B738F}.Debug FW 3.5|x86.ActiveCfg = Debug|Any CPU
+ {7DAA2EBB-A724-498F-93BB-68966E2B738F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {7DAA2EBB-A724-498F-93BB-68966E2B738F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {7DAA2EBB-A724-498F-93BB-68966E2B738F}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {7DAA2EBB-A724-498F-93BB-68966E2B738F}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {7DAA2EBB-A724-498F-93BB-68966E2B738F}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {7DAA2EBB-A724-498F-93BB-68966E2B738F}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {7DAA2EBB-A724-498F-93BB-68966E2B738F}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {7DAA2EBB-A724-498F-93BB-68966E2B738F}.DebugMono|Any CPU.ActiveCfg = Debug|Any CPU
+ {7DAA2EBB-A724-498F-93BB-68966E2B738F}.DebugMono|Any CPU.Build.0 = Debug|Any CPU
+ {7DAA2EBB-A724-498F-93BB-68966E2B738F}.DebugMono|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {7DAA2EBB-A724-498F-93BB-68966E2B738F}.DebugMono|Mixed Platforms.Build.0 = Debug|Any CPU
+ {7DAA2EBB-A724-498F-93BB-68966E2B738F}.DebugMono|Win32.ActiveCfg = Debug|Any CPU
+ {7DAA2EBB-A724-498F-93BB-68966E2B738F}.DebugMono|x64.ActiveCfg = Debug|Any CPU
+ {7DAA2EBB-A724-498F-93BB-68966E2B738F}.DebugMono|x86.ActiveCfg = Debug|Any CPU
+ {7DAA2EBB-A724-498F-93BB-68966E2B738F}.Release|Any CPU.ActiveCfg = Debug|Any CPU
+ {7DAA2EBB-A724-498F-93BB-68966E2B738F}.Release|Any CPU.Build.0 = Debug|Any CPU
+ {7DAA2EBB-A724-498F-93BB-68966E2B738F}.Release|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {7DAA2EBB-A724-498F-93BB-68966E2B738F}.Release|Mixed Platforms.Build.0 = Debug|Any CPU
+ {7DAA2EBB-A724-498F-93BB-68966E2B738F}.Release|Win32.ActiveCfg = Debug|Any CPU
+ {7DAA2EBB-A724-498F-93BB-68966E2B738F}.Release|x64.ActiveCfg = Debug|Any CPU
+ {7DAA2EBB-A724-498F-93BB-68966E2B738F}.Release|x86.ActiveCfg = Debug|Any CPU
+ {7DAA2EBB-A724-498F-93BB-68966E2B738F}.ReleaseMono|Any CPU.ActiveCfg = Debug|Any CPU
+ {7DAA2EBB-A724-498F-93BB-68966E2B738F}.ReleaseMono|Any CPU.Build.0 = Debug|Any CPU
+ {7DAA2EBB-A724-498F-93BB-68966E2B738F}.ReleaseMono|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {7DAA2EBB-A724-498F-93BB-68966E2B738F}.ReleaseMono|Mixed Platforms.Build.0 = Debug|Any CPU
+ {7DAA2EBB-A724-498F-93BB-68966E2B738F}.ReleaseMono|Win32.ActiveCfg = Debug|Any CPU
+ {7DAA2EBB-A724-498F-93BB-68966E2B738F}.ReleaseMono|x64.ActiveCfg = Debug|Any CPU
+ {7DAA2EBB-A724-498F-93BB-68966E2B738F}.ReleaseMono|x86.ActiveCfg = Debug|Any CPU
+ {7DAA2EBB-A724-498F-93BB-68966E2B738F}.Template|Any CPU.ActiveCfg = Debug|Any CPU
+ {7DAA2EBB-A724-498F-93BB-68966E2B738F}.Template|Any CPU.Build.0 = Debug|Any CPU
+ {7DAA2EBB-A724-498F-93BB-68966E2B738F}.Template|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {7DAA2EBB-A724-498F-93BB-68966E2B738F}.Template|Mixed Platforms.Build.0 = Debug|Any CPU
+ {7DAA2EBB-A724-498F-93BB-68966E2B738F}.Template|Win32.ActiveCfg = Debug|Any CPU
+ {7DAA2EBB-A724-498F-93BB-68966E2B738F}.Template|x64.ActiveCfg = Debug|Any CPU
+ {7DAA2EBB-A724-498F-93BB-68966E2B738F}.Template|x86.ActiveCfg = Debug|Any CPU
+ {8F9F4193-9104-4AA6-8E04-91CD9FDEC2E6}.Debug FW 3.5|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {8F9F4193-9104-4AA6-8E04-91CD9FDEC2E6}.Debug FW 3.5|Any CPU.Build.0 = DebugMono|Any CPU
+ {8F9F4193-9104-4AA6-8E04-91CD9FDEC2E6}.Debug FW 3.5|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {8F9F4193-9104-4AA6-8E04-91CD9FDEC2E6}.Debug FW 3.5|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {8F9F4193-9104-4AA6-8E04-91CD9FDEC2E6}.Debug FW 3.5|Win32.ActiveCfg = DebugMono|Any CPU
+ {8F9F4193-9104-4AA6-8E04-91CD9FDEC2E6}.Debug FW 3.5|x64.ActiveCfg = DebugMono|Any CPU
+ {8F9F4193-9104-4AA6-8E04-91CD9FDEC2E6}.Debug FW 3.5|x86.ActiveCfg = DebugMono|Any CPU
+ {8F9F4193-9104-4AA6-8E04-91CD9FDEC2E6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {8F9F4193-9104-4AA6-8E04-91CD9FDEC2E6}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8F9F4193-9104-4AA6-8E04-91CD9FDEC2E6}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {8F9F4193-9104-4AA6-8E04-91CD9FDEC2E6}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {8F9F4193-9104-4AA6-8E04-91CD9FDEC2E6}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {8F9F4193-9104-4AA6-8E04-91CD9FDEC2E6}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {8F9F4193-9104-4AA6-8E04-91CD9FDEC2E6}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {8F9F4193-9104-4AA6-8E04-91CD9FDEC2E6}.DebugMono|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {8F9F4193-9104-4AA6-8E04-91CD9FDEC2E6}.DebugMono|Any CPU.Build.0 = DebugMono|Any CPU
+ {8F9F4193-9104-4AA6-8E04-91CD9FDEC2E6}.DebugMono|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {8F9F4193-9104-4AA6-8E04-91CD9FDEC2E6}.DebugMono|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {8F9F4193-9104-4AA6-8E04-91CD9FDEC2E6}.DebugMono|Win32.ActiveCfg = DebugMono|Any CPU
+ {8F9F4193-9104-4AA6-8E04-91CD9FDEC2E6}.DebugMono|x64.ActiveCfg = DebugMono|Any CPU
+ {8F9F4193-9104-4AA6-8E04-91CD9FDEC2E6}.DebugMono|x86.ActiveCfg = DebugMono|Any CPU
+ {8F9F4193-9104-4AA6-8E04-91CD9FDEC2E6}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {8F9F4193-9104-4AA6-8E04-91CD9FDEC2E6}.Release|Any CPU.Build.0 = Release|Any CPU
+ {8F9F4193-9104-4AA6-8E04-91CD9FDEC2E6}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {8F9F4193-9104-4AA6-8E04-91CD9FDEC2E6}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {8F9F4193-9104-4AA6-8E04-91CD9FDEC2E6}.Release|Win32.ActiveCfg = Release|Any CPU
+ {8F9F4193-9104-4AA6-8E04-91CD9FDEC2E6}.Release|x64.ActiveCfg = Release|Any CPU
+ {8F9F4193-9104-4AA6-8E04-91CD9FDEC2E6}.Release|x86.ActiveCfg = Release|Any CPU
+ {8F9F4193-9104-4AA6-8E04-91CD9FDEC2E6}.ReleaseMono|Any CPU.ActiveCfg = ReleaseMono|Any CPU
+ {8F9F4193-9104-4AA6-8E04-91CD9FDEC2E6}.ReleaseMono|Any CPU.Build.0 = ReleaseMono|Any CPU
+ {8F9F4193-9104-4AA6-8E04-91CD9FDEC2E6}.ReleaseMono|Mixed Platforms.ActiveCfg = ReleaseMono|Any CPU
+ {8F9F4193-9104-4AA6-8E04-91CD9FDEC2E6}.ReleaseMono|Mixed Platforms.Build.0 = ReleaseMono|Any CPU
+ {8F9F4193-9104-4AA6-8E04-91CD9FDEC2E6}.ReleaseMono|Win32.ActiveCfg = ReleaseMono|Any CPU
+ {8F9F4193-9104-4AA6-8E04-91CD9FDEC2E6}.ReleaseMono|x64.ActiveCfg = ReleaseMono|Any CPU
+ {8F9F4193-9104-4AA6-8E04-91CD9FDEC2E6}.ReleaseMono|x86.ActiveCfg = ReleaseMono|Any CPU
+ {8F9F4193-9104-4AA6-8E04-91CD9FDEC2E6}.Template|Any CPU.ActiveCfg = Release|Any CPU
+ {8F9F4193-9104-4AA6-8E04-91CD9FDEC2E6}.Template|Any CPU.Build.0 = Release|Any CPU
+ {8F9F4193-9104-4AA6-8E04-91CD9FDEC2E6}.Template|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {8F9F4193-9104-4AA6-8E04-91CD9FDEC2E6}.Template|Mixed Platforms.Build.0 = Release|Any CPU
+ {8F9F4193-9104-4AA6-8E04-91CD9FDEC2E6}.Template|Win32.ActiveCfg = Release|Any CPU
+ {8F9F4193-9104-4AA6-8E04-91CD9FDEC2E6}.Template|x64.ActiveCfg = Release|Any CPU
+ {8F9F4193-9104-4AA6-8E04-91CD9FDEC2E6}.Template|x86.ActiveCfg = Release|Any CPU
+ {711A3803-4395-4E92-9B26-DC8DDDF80366}.Debug FW 3.5|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {711A3803-4395-4E92-9B26-DC8DDDF80366}.Debug FW 3.5|Any CPU.Build.0 = DebugMono|Any CPU
+ {711A3803-4395-4E92-9B26-DC8DDDF80366}.Debug FW 3.5|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {711A3803-4395-4E92-9B26-DC8DDDF80366}.Debug FW 3.5|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {711A3803-4395-4E92-9B26-DC8DDDF80366}.Debug FW 3.5|Win32.ActiveCfg = DebugMono|Any CPU
+ {711A3803-4395-4E92-9B26-DC8DDDF80366}.Debug FW 3.5|x64.ActiveCfg = DebugMono|Any CPU
+ {711A3803-4395-4E92-9B26-DC8DDDF80366}.Debug FW 3.5|x86.ActiveCfg = DebugMono|Any CPU
+ {711A3803-4395-4E92-9B26-DC8DDDF80366}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {711A3803-4395-4E92-9B26-DC8DDDF80366}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {711A3803-4395-4E92-9B26-DC8DDDF80366}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {711A3803-4395-4E92-9B26-DC8DDDF80366}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {711A3803-4395-4E92-9B26-DC8DDDF80366}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {711A3803-4395-4E92-9B26-DC8DDDF80366}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {711A3803-4395-4E92-9B26-DC8DDDF80366}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {711A3803-4395-4E92-9B26-DC8DDDF80366}.DebugMono|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {711A3803-4395-4E92-9B26-DC8DDDF80366}.DebugMono|Any CPU.Build.0 = DebugMono|Any CPU
+ {711A3803-4395-4E92-9B26-DC8DDDF80366}.DebugMono|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {711A3803-4395-4E92-9B26-DC8DDDF80366}.DebugMono|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {711A3803-4395-4E92-9B26-DC8DDDF80366}.DebugMono|Win32.ActiveCfg = DebugMono|Any CPU
+ {711A3803-4395-4E92-9B26-DC8DDDF80366}.DebugMono|x64.ActiveCfg = DebugMono|Any CPU
+ {711A3803-4395-4E92-9B26-DC8DDDF80366}.DebugMono|x86.ActiveCfg = DebugMono|Any CPU
+ {711A3803-4395-4E92-9B26-DC8DDDF80366}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {711A3803-4395-4E92-9B26-DC8DDDF80366}.Release|Any CPU.Build.0 = Release|Any CPU
+ {711A3803-4395-4E92-9B26-DC8DDDF80366}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {711A3803-4395-4E92-9B26-DC8DDDF80366}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {711A3803-4395-4E92-9B26-DC8DDDF80366}.Release|Win32.ActiveCfg = Release|Any CPU
+ {711A3803-4395-4E92-9B26-DC8DDDF80366}.Release|x64.ActiveCfg = Release|Any CPU
+ {711A3803-4395-4E92-9B26-DC8DDDF80366}.Release|x86.ActiveCfg = Release|Any CPU
+ {711A3803-4395-4E92-9B26-DC8DDDF80366}.ReleaseMono|Any CPU.ActiveCfg = ReleaseMono|Any CPU
+ {711A3803-4395-4E92-9B26-DC8DDDF80366}.ReleaseMono|Any CPU.Build.0 = ReleaseMono|Any CPU
+ {711A3803-4395-4E92-9B26-DC8DDDF80366}.ReleaseMono|Mixed Platforms.ActiveCfg = ReleaseMono|Any CPU
+ {711A3803-4395-4E92-9B26-DC8DDDF80366}.ReleaseMono|Mixed Platforms.Build.0 = ReleaseMono|Any CPU
+ {711A3803-4395-4E92-9B26-DC8DDDF80366}.ReleaseMono|Win32.ActiveCfg = ReleaseMono|Any CPU
+ {711A3803-4395-4E92-9B26-DC8DDDF80366}.ReleaseMono|x64.ActiveCfg = ReleaseMono|Any CPU
+ {711A3803-4395-4E92-9B26-DC8DDDF80366}.ReleaseMono|x86.ActiveCfg = ReleaseMono|Any CPU
+ {711A3803-4395-4E92-9B26-DC8DDDF80366}.Template|Any CPU.ActiveCfg = Release|Any CPU
+ {711A3803-4395-4E92-9B26-DC8DDDF80366}.Template|Any CPU.Build.0 = Release|Any CPU
+ {711A3803-4395-4E92-9B26-DC8DDDF80366}.Template|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {711A3803-4395-4E92-9B26-DC8DDDF80366}.Template|Mixed Platforms.Build.0 = Release|Any CPU
+ {711A3803-4395-4E92-9B26-DC8DDDF80366}.Template|Win32.ActiveCfg = Release|Any CPU
+ {711A3803-4395-4E92-9B26-DC8DDDF80366}.Template|x64.ActiveCfg = Release|Any CPU
+ {711A3803-4395-4E92-9B26-DC8DDDF80366}.Template|x86.ActiveCfg = Release|Any CPU
+ {4EBBF9E9-53B2-493C-ABAB-E915C187558F}.Debug FW 3.5|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {4EBBF9E9-53B2-493C-ABAB-E915C187558F}.Debug FW 3.5|Any CPU.Build.0 = DebugMono|Any CPU
+ {4EBBF9E9-53B2-493C-ABAB-E915C187558F}.Debug FW 3.5|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {4EBBF9E9-53B2-493C-ABAB-E915C187558F}.Debug FW 3.5|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {4EBBF9E9-53B2-493C-ABAB-E915C187558F}.Debug FW 3.5|Win32.ActiveCfg = DebugMono|Any CPU
+ {4EBBF9E9-53B2-493C-ABAB-E915C187558F}.Debug FW 3.5|x64.ActiveCfg = DebugMono|Any CPU
+ {4EBBF9E9-53B2-493C-ABAB-E915C187558F}.Debug FW 3.5|x86.ActiveCfg = DebugMono|Any CPU
+ {4EBBF9E9-53B2-493C-ABAB-E915C187558F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {4EBBF9E9-53B2-493C-ABAB-E915C187558F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {4EBBF9E9-53B2-493C-ABAB-E915C187558F}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {4EBBF9E9-53B2-493C-ABAB-E915C187558F}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {4EBBF9E9-53B2-493C-ABAB-E915C187558F}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {4EBBF9E9-53B2-493C-ABAB-E915C187558F}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {4EBBF9E9-53B2-493C-ABAB-E915C187558F}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {4EBBF9E9-53B2-493C-ABAB-E915C187558F}.DebugMono|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {4EBBF9E9-53B2-493C-ABAB-E915C187558F}.DebugMono|Any CPU.Build.0 = DebugMono|Any CPU
+ {4EBBF9E9-53B2-493C-ABAB-E915C187558F}.DebugMono|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {4EBBF9E9-53B2-493C-ABAB-E915C187558F}.DebugMono|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {4EBBF9E9-53B2-493C-ABAB-E915C187558F}.DebugMono|Win32.ActiveCfg = DebugMono|Any CPU
+ {4EBBF9E9-53B2-493C-ABAB-E915C187558F}.DebugMono|x64.ActiveCfg = DebugMono|Any CPU
+ {4EBBF9E9-53B2-493C-ABAB-E915C187558F}.DebugMono|x86.ActiveCfg = DebugMono|Any CPU
+ {4EBBF9E9-53B2-493C-ABAB-E915C187558F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {4EBBF9E9-53B2-493C-ABAB-E915C187558F}.Release|Any CPU.Build.0 = Release|Any CPU
+ {4EBBF9E9-53B2-493C-ABAB-E915C187558F}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {4EBBF9E9-53B2-493C-ABAB-E915C187558F}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {4EBBF9E9-53B2-493C-ABAB-E915C187558F}.Release|Win32.ActiveCfg = Release|Any CPU
+ {4EBBF9E9-53B2-493C-ABAB-E915C187558F}.Release|x64.ActiveCfg = Release|Any CPU
+ {4EBBF9E9-53B2-493C-ABAB-E915C187558F}.Release|x86.ActiveCfg = Release|Any CPU
+ {4EBBF9E9-53B2-493C-ABAB-E915C187558F}.ReleaseMono|Any CPU.ActiveCfg = ReleaseMono|Any CPU
+ {4EBBF9E9-53B2-493C-ABAB-E915C187558F}.ReleaseMono|Any CPU.Build.0 = ReleaseMono|Any CPU
+ {4EBBF9E9-53B2-493C-ABAB-E915C187558F}.ReleaseMono|Mixed Platforms.ActiveCfg = ReleaseMono|Any CPU
+ {4EBBF9E9-53B2-493C-ABAB-E915C187558F}.ReleaseMono|Mixed Platforms.Build.0 = ReleaseMono|Any CPU
+ {4EBBF9E9-53B2-493C-ABAB-E915C187558F}.ReleaseMono|Win32.ActiveCfg = ReleaseMono|Any CPU
+ {4EBBF9E9-53B2-493C-ABAB-E915C187558F}.ReleaseMono|x64.ActiveCfg = ReleaseMono|Any CPU
+ {4EBBF9E9-53B2-493C-ABAB-E915C187558F}.ReleaseMono|x86.ActiveCfg = ReleaseMono|Any CPU
+ {4EBBF9E9-53B2-493C-ABAB-E915C187558F}.Template|Any CPU.ActiveCfg = Release|Any CPU
+ {4EBBF9E9-53B2-493C-ABAB-E915C187558F}.Template|Any CPU.Build.0 = Release|Any CPU
+ {4EBBF9E9-53B2-493C-ABAB-E915C187558F}.Template|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {4EBBF9E9-53B2-493C-ABAB-E915C187558F}.Template|Mixed Platforms.Build.0 = Release|Any CPU
+ {4EBBF9E9-53B2-493C-ABAB-E915C187558F}.Template|Win32.ActiveCfg = Release|Any CPU
+ {4EBBF9E9-53B2-493C-ABAB-E915C187558F}.Template|x64.ActiveCfg = Release|Any CPU
+ {4EBBF9E9-53B2-493C-ABAB-E915C187558F}.Template|x86.ActiveCfg = Release|Any CPU
+ {34989C73-F82A-4905-9349-D0CF1419CD1C}.Debug FW 3.5|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {34989C73-F82A-4905-9349-D0CF1419CD1C}.Debug FW 3.5|Any CPU.Build.0 = DebugMono|Any CPU
+ {34989C73-F82A-4905-9349-D0CF1419CD1C}.Debug FW 3.5|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {34989C73-F82A-4905-9349-D0CF1419CD1C}.Debug FW 3.5|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {34989C73-F82A-4905-9349-D0CF1419CD1C}.Debug FW 3.5|Win32.ActiveCfg = DebugMono|Any CPU
+ {34989C73-F82A-4905-9349-D0CF1419CD1C}.Debug FW 3.5|x64.ActiveCfg = DebugMono|Any CPU
+ {34989C73-F82A-4905-9349-D0CF1419CD1C}.Debug FW 3.5|x86.ActiveCfg = DebugMono|Any CPU
+ {34989C73-F82A-4905-9349-D0CF1419CD1C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {34989C73-F82A-4905-9349-D0CF1419CD1C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {34989C73-F82A-4905-9349-D0CF1419CD1C}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {34989C73-F82A-4905-9349-D0CF1419CD1C}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {34989C73-F82A-4905-9349-D0CF1419CD1C}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {34989C73-F82A-4905-9349-D0CF1419CD1C}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {34989C73-F82A-4905-9349-D0CF1419CD1C}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {34989C73-F82A-4905-9349-D0CF1419CD1C}.DebugMono|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {34989C73-F82A-4905-9349-D0CF1419CD1C}.DebugMono|Any CPU.Build.0 = DebugMono|Any CPU
+ {34989C73-F82A-4905-9349-D0CF1419CD1C}.DebugMono|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {34989C73-F82A-4905-9349-D0CF1419CD1C}.DebugMono|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {34989C73-F82A-4905-9349-D0CF1419CD1C}.DebugMono|Win32.ActiveCfg = DebugMono|Any CPU
+ {34989C73-F82A-4905-9349-D0CF1419CD1C}.DebugMono|x64.ActiveCfg = DebugMono|Any CPU
+ {34989C73-F82A-4905-9349-D0CF1419CD1C}.DebugMono|x86.ActiveCfg = DebugMono|Any CPU
+ {34989C73-F82A-4905-9349-D0CF1419CD1C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {34989C73-F82A-4905-9349-D0CF1419CD1C}.Release|Any CPU.Build.0 = Release|Any CPU
+ {34989C73-F82A-4905-9349-D0CF1419CD1C}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {34989C73-F82A-4905-9349-D0CF1419CD1C}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {34989C73-F82A-4905-9349-D0CF1419CD1C}.Release|Win32.ActiveCfg = Release|Any CPU
+ {34989C73-F82A-4905-9349-D0CF1419CD1C}.Release|x64.ActiveCfg = Release|Any CPU
+ {34989C73-F82A-4905-9349-D0CF1419CD1C}.Release|x86.ActiveCfg = Release|Any CPU
+ {34989C73-F82A-4905-9349-D0CF1419CD1C}.ReleaseMono|Any CPU.ActiveCfg = ReleaseMono|Any CPU
+ {34989C73-F82A-4905-9349-D0CF1419CD1C}.ReleaseMono|Any CPU.Build.0 = ReleaseMono|Any CPU
+ {34989C73-F82A-4905-9349-D0CF1419CD1C}.ReleaseMono|Mixed Platforms.ActiveCfg = ReleaseMono|Any CPU
+ {34989C73-F82A-4905-9349-D0CF1419CD1C}.ReleaseMono|Mixed Platforms.Build.0 = ReleaseMono|Any CPU
+ {34989C73-F82A-4905-9349-D0CF1419CD1C}.ReleaseMono|Win32.ActiveCfg = ReleaseMono|Any CPU
+ {34989C73-F82A-4905-9349-D0CF1419CD1C}.ReleaseMono|x64.ActiveCfg = ReleaseMono|Any CPU
+ {34989C73-F82A-4905-9349-D0CF1419CD1C}.ReleaseMono|x86.ActiveCfg = ReleaseMono|Any CPU
+ {34989C73-F82A-4905-9349-D0CF1419CD1C}.Template|Any CPU.ActiveCfg = Release|Any CPU
+ {34989C73-F82A-4905-9349-D0CF1419CD1C}.Template|Any CPU.Build.0 = Release|Any CPU
+ {34989C73-F82A-4905-9349-D0CF1419CD1C}.Template|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {34989C73-F82A-4905-9349-D0CF1419CD1C}.Template|Mixed Platforms.Build.0 = Release|Any CPU
+ {34989C73-F82A-4905-9349-D0CF1419CD1C}.Template|Win32.ActiveCfg = Release|Any CPU
+ {34989C73-F82A-4905-9349-D0CF1419CD1C}.Template|x64.ActiveCfg = Release|Any CPU
+ {34989C73-F82A-4905-9349-D0CF1419CD1C}.Template|x86.ActiveCfg = Release|Any CPU
+ {308A4189-53AB-460D-B2B1-0EB4B9219654}.Debug FW 3.5|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {308A4189-53AB-460D-B2B1-0EB4B9219654}.Debug FW 3.5|Any CPU.Build.0 = DebugMono|Any CPU
+ {308A4189-53AB-460D-B2B1-0EB4B9219654}.Debug FW 3.5|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {308A4189-53AB-460D-B2B1-0EB4B9219654}.Debug FW 3.5|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {308A4189-53AB-460D-B2B1-0EB4B9219654}.Debug FW 3.5|Win32.ActiveCfg = DebugMono|Any CPU
+ {308A4189-53AB-460D-B2B1-0EB4B9219654}.Debug FW 3.5|x64.ActiveCfg = DebugMono|Any CPU
+ {308A4189-53AB-460D-B2B1-0EB4B9219654}.Debug FW 3.5|x86.ActiveCfg = DebugMono|Any CPU
+ {308A4189-53AB-460D-B2B1-0EB4B9219654}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {308A4189-53AB-460D-B2B1-0EB4B9219654}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {308A4189-53AB-460D-B2B1-0EB4B9219654}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {308A4189-53AB-460D-B2B1-0EB4B9219654}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {308A4189-53AB-460D-B2B1-0EB4B9219654}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {308A4189-53AB-460D-B2B1-0EB4B9219654}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {308A4189-53AB-460D-B2B1-0EB4B9219654}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {308A4189-53AB-460D-B2B1-0EB4B9219654}.DebugMono|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {308A4189-53AB-460D-B2B1-0EB4B9219654}.DebugMono|Any CPU.Build.0 = DebugMono|Any CPU
+ {308A4189-53AB-460D-B2B1-0EB4B9219654}.DebugMono|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {308A4189-53AB-460D-B2B1-0EB4B9219654}.DebugMono|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {308A4189-53AB-460D-B2B1-0EB4B9219654}.DebugMono|Win32.ActiveCfg = DebugMono|Any CPU
+ {308A4189-53AB-460D-B2B1-0EB4B9219654}.DebugMono|x64.ActiveCfg = DebugMono|Any CPU
+ {308A4189-53AB-460D-B2B1-0EB4B9219654}.DebugMono|x86.ActiveCfg = DebugMono|Any CPU
+ {308A4189-53AB-460D-B2B1-0EB4B9219654}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {308A4189-53AB-460D-B2B1-0EB4B9219654}.Release|Any CPU.Build.0 = Release|Any CPU
+ {308A4189-53AB-460D-B2B1-0EB4B9219654}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {308A4189-53AB-460D-B2B1-0EB4B9219654}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {308A4189-53AB-460D-B2B1-0EB4B9219654}.Release|Win32.ActiveCfg = Release|Any CPU
+ {308A4189-53AB-460D-B2B1-0EB4B9219654}.Release|x64.ActiveCfg = Release|Any CPU
+ {308A4189-53AB-460D-B2B1-0EB4B9219654}.Release|x86.ActiveCfg = Release|Any CPU
+ {308A4189-53AB-460D-B2B1-0EB4B9219654}.ReleaseMono|Any CPU.ActiveCfg = ReleaseMono|Any CPU
+ {308A4189-53AB-460D-B2B1-0EB4B9219654}.ReleaseMono|Any CPU.Build.0 = ReleaseMono|Any CPU
+ {308A4189-53AB-460D-B2B1-0EB4B9219654}.ReleaseMono|Mixed Platforms.ActiveCfg = ReleaseMono|Any CPU
+ {308A4189-53AB-460D-B2B1-0EB4B9219654}.ReleaseMono|Mixed Platforms.Build.0 = ReleaseMono|Any CPU
+ {308A4189-53AB-460D-B2B1-0EB4B9219654}.ReleaseMono|Win32.ActiveCfg = ReleaseMono|Any CPU
+ {308A4189-53AB-460D-B2B1-0EB4B9219654}.ReleaseMono|x64.ActiveCfg = ReleaseMono|Any CPU
+ {308A4189-53AB-460D-B2B1-0EB4B9219654}.ReleaseMono|x86.ActiveCfg = ReleaseMono|Any CPU
+ {308A4189-53AB-460D-B2B1-0EB4B9219654}.Template|Any CPU.ActiveCfg = Release|Any CPU
+ {308A4189-53AB-460D-B2B1-0EB4B9219654}.Template|Any CPU.Build.0 = Release|Any CPU
+ {308A4189-53AB-460D-B2B1-0EB4B9219654}.Template|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {308A4189-53AB-460D-B2B1-0EB4B9219654}.Template|Mixed Platforms.Build.0 = Release|Any CPU
+ {308A4189-53AB-460D-B2B1-0EB4B9219654}.Template|Win32.ActiveCfg = Release|Any CPU
+ {308A4189-53AB-460D-B2B1-0EB4B9219654}.Template|x64.ActiveCfg = Release|Any CPU
+ {308A4189-53AB-460D-B2B1-0EB4B9219654}.Template|x86.ActiveCfg = Release|Any CPU
+ {8DA66999-005A-49AB-86A9-2C1F62905B50}.Debug FW 3.5|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {8DA66999-005A-49AB-86A9-2C1F62905B50}.Debug FW 3.5|Any CPU.Build.0 = DebugMono|Any CPU
+ {8DA66999-005A-49AB-86A9-2C1F62905B50}.Debug FW 3.5|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {8DA66999-005A-49AB-86A9-2C1F62905B50}.Debug FW 3.5|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {8DA66999-005A-49AB-86A9-2C1F62905B50}.Debug FW 3.5|Win32.ActiveCfg = DebugMono|Any CPU
+ {8DA66999-005A-49AB-86A9-2C1F62905B50}.Debug FW 3.5|x64.ActiveCfg = DebugMono|Any CPU
+ {8DA66999-005A-49AB-86A9-2C1F62905B50}.Debug FW 3.5|x86.ActiveCfg = DebugMono|Any CPU
+ {8DA66999-005A-49AB-86A9-2C1F62905B50}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {8DA66999-005A-49AB-86A9-2C1F62905B50}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8DA66999-005A-49AB-86A9-2C1F62905B50}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {8DA66999-005A-49AB-86A9-2C1F62905B50}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {8DA66999-005A-49AB-86A9-2C1F62905B50}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {8DA66999-005A-49AB-86A9-2C1F62905B50}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {8DA66999-005A-49AB-86A9-2C1F62905B50}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {8DA66999-005A-49AB-86A9-2C1F62905B50}.DebugMono|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {8DA66999-005A-49AB-86A9-2C1F62905B50}.DebugMono|Any CPU.Build.0 = DebugMono|Any CPU
+ {8DA66999-005A-49AB-86A9-2C1F62905B50}.DebugMono|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {8DA66999-005A-49AB-86A9-2C1F62905B50}.DebugMono|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {8DA66999-005A-49AB-86A9-2C1F62905B50}.DebugMono|Win32.ActiveCfg = DebugMono|Any CPU
+ {8DA66999-005A-49AB-86A9-2C1F62905B50}.DebugMono|x64.ActiveCfg = DebugMono|Any CPU
+ {8DA66999-005A-49AB-86A9-2C1F62905B50}.DebugMono|x86.ActiveCfg = DebugMono|Any CPU
+ {8DA66999-005A-49AB-86A9-2C1F62905B50}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {8DA66999-005A-49AB-86A9-2C1F62905B50}.Release|Any CPU.Build.0 = Release|Any CPU
+ {8DA66999-005A-49AB-86A9-2C1F62905B50}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {8DA66999-005A-49AB-86A9-2C1F62905B50}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {8DA66999-005A-49AB-86A9-2C1F62905B50}.Release|Win32.ActiveCfg = Release|Any CPU
+ {8DA66999-005A-49AB-86A9-2C1F62905B50}.Release|x64.ActiveCfg = Release|Any CPU
+ {8DA66999-005A-49AB-86A9-2C1F62905B50}.Release|x86.ActiveCfg = Release|Any CPU
+ {8DA66999-005A-49AB-86A9-2C1F62905B50}.ReleaseMono|Any CPU.ActiveCfg = ReleaseMono|Any CPU
+ {8DA66999-005A-49AB-86A9-2C1F62905B50}.ReleaseMono|Any CPU.Build.0 = ReleaseMono|Any CPU
+ {8DA66999-005A-49AB-86A9-2C1F62905B50}.ReleaseMono|Mixed Platforms.ActiveCfg = ReleaseMono|Any CPU
+ {8DA66999-005A-49AB-86A9-2C1F62905B50}.ReleaseMono|Mixed Platforms.Build.0 = ReleaseMono|Any CPU
+ {8DA66999-005A-49AB-86A9-2C1F62905B50}.ReleaseMono|Win32.ActiveCfg = ReleaseMono|Any CPU
+ {8DA66999-005A-49AB-86A9-2C1F62905B50}.ReleaseMono|x64.ActiveCfg = ReleaseMono|Any CPU
+ {8DA66999-005A-49AB-86A9-2C1F62905B50}.ReleaseMono|x86.ActiveCfg = ReleaseMono|Any CPU
+ {8DA66999-005A-49AB-86A9-2C1F62905B50}.Template|Any CPU.ActiveCfg = Release|Any CPU
+ {8DA66999-005A-49AB-86A9-2C1F62905B50}.Template|Any CPU.Build.0 = Release|Any CPU
+ {8DA66999-005A-49AB-86A9-2C1F62905B50}.Template|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {8DA66999-005A-49AB-86A9-2C1F62905B50}.Template|Mixed Platforms.Build.0 = Release|Any CPU
+ {8DA66999-005A-49AB-86A9-2C1F62905B50}.Template|Win32.ActiveCfg = Release|Any CPU
+ {8DA66999-005A-49AB-86A9-2C1F62905B50}.Template|x64.ActiveCfg = Release|Any CPU
+ {8DA66999-005A-49AB-86A9-2C1F62905B50}.Template|x86.ActiveCfg = Release|Any CPU
+ {F2B014F7-3807-4938-8F02-3CF8247C47DC}.Debug FW 3.5|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {F2B014F7-3807-4938-8F02-3CF8247C47DC}.Debug FW 3.5|Any CPU.Build.0 = DebugMono|Any CPU
+ {F2B014F7-3807-4938-8F02-3CF8247C47DC}.Debug FW 3.5|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {F2B014F7-3807-4938-8F02-3CF8247C47DC}.Debug FW 3.5|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {F2B014F7-3807-4938-8F02-3CF8247C47DC}.Debug FW 3.5|Win32.ActiveCfg = DebugMono|Any CPU
+ {F2B014F7-3807-4938-8F02-3CF8247C47DC}.Debug FW 3.5|x64.ActiveCfg = DebugMono|Any CPU
+ {F2B014F7-3807-4938-8F02-3CF8247C47DC}.Debug FW 3.5|x86.ActiveCfg = DebugMono|Any CPU
+ {F2B014F7-3807-4938-8F02-3CF8247C47DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {F2B014F7-3807-4938-8F02-3CF8247C47DC}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F2B014F7-3807-4938-8F02-3CF8247C47DC}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {F2B014F7-3807-4938-8F02-3CF8247C47DC}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {F2B014F7-3807-4938-8F02-3CF8247C47DC}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {F2B014F7-3807-4938-8F02-3CF8247C47DC}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {F2B014F7-3807-4938-8F02-3CF8247C47DC}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {F2B014F7-3807-4938-8F02-3CF8247C47DC}.DebugMono|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {F2B014F7-3807-4938-8F02-3CF8247C47DC}.DebugMono|Any CPU.Build.0 = DebugMono|Any CPU
+ {F2B014F7-3807-4938-8F02-3CF8247C47DC}.DebugMono|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {F2B014F7-3807-4938-8F02-3CF8247C47DC}.DebugMono|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {F2B014F7-3807-4938-8F02-3CF8247C47DC}.DebugMono|Win32.ActiveCfg = DebugMono|Any CPU
+ {F2B014F7-3807-4938-8F02-3CF8247C47DC}.DebugMono|x64.ActiveCfg = DebugMono|Any CPU
+ {F2B014F7-3807-4938-8F02-3CF8247C47DC}.DebugMono|x86.ActiveCfg = DebugMono|Any CPU
+ {F2B014F7-3807-4938-8F02-3CF8247C47DC}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {F2B014F7-3807-4938-8F02-3CF8247C47DC}.Release|Any CPU.Build.0 = Release|Any CPU
+ {F2B014F7-3807-4938-8F02-3CF8247C47DC}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {F2B014F7-3807-4938-8F02-3CF8247C47DC}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {F2B014F7-3807-4938-8F02-3CF8247C47DC}.Release|Win32.ActiveCfg = Release|Any CPU
+ {F2B014F7-3807-4938-8F02-3CF8247C47DC}.Release|x64.ActiveCfg = Release|Any CPU
+ {F2B014F7-3807-4938-8F02-3CF8247C47DC}.Release|x86.ActiveCfg = Release|Any CPU
+ {F2B014F7-3807-4938-8F02-3CF8247C47DC}.ReleaseMono|Any CPU.ActiveCfg = ReleaseMono|Any CPU
+ {F2B014F7-3807-4938-8F02-3CF8247C47DC}.ReleaseMono|Any CPU.Build.0 = ReleaseMono|Any CPU
+ {F2B014F7-3807-4938-8F02-3CF8247C47DC}.ReleaseMono|Mixed Platforms.ActiveCfg = ReleaseMono|Any CPU
+ {F2B014F7-3807-4938-8F02-3CF8247C47DC}.ReleaseMono|Mixed Platforms.Build.0 = ReleaseMono|Any CPU
+ {F2B014F7-3807-4938-8F02-3CF8247C47DC}.ReleaseMono|Win32.ActiveCfg = ReleaseMono|Any CPU
+ {F2B014F7-3807-4938-8F02-3CF8247C47DC}.ReleaseMono|x64.ActiveCfg = ReleaseMono|Any CPU
+ {F2B014F7-3807-4938-8F02-3CF8247C47DC}.ReleaseMono|x86.ActiveCfg = ReleaseMono|Any CPU
+ {F2B014F7-3807-4938-8F02-3CF8247C47DC}.Template|Any CPU.ActiveCfg = Release|Any CPU
+ {F2B014F7-3807-4938-8F02-3CF8247C47DC}.Template|Any CPU.Build.0 = Release|Any CPU
+ {F2B014F7-3807-4938-8F02-3CF8247C47DC}.Template|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {F2B014F7-3807-4938-8F02-3CF8247C47DC}.Template|Mixed Platforms.Build.0 = Release|Any CPU
+ {F2B014F7-3807-4938-8F02-3CF8247C47DC}.Template|Win32.ActiveCfg = Release|Any CPU
+ {F2B014F7-3807-4938-8F02-3CF8247C47DC}.Template|x64.ActiveCfg = Release|Any CPU
+ {F2B014F7-3807-4938-8F02-3CF8247C47DC}.Template|x86.ActiveCfg = Release|Any CPU
+ {2BB4AD77-190F-4D7E-A83E-7B254A0A1FCA}.Debug FW 3.5|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {2BB4AD77-190F-4D7E-A83E-7B254A0A1FCA}.Debug FW 3.5|Any CPU.Build.0 = DebugMono|Any CPU
+ {2BB4AD77-190F-4D7E-A83E-7B254A0A1FCA}.Debug FW 3.5|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {2BB4AD77-190F-4D7E-A83E-7B254A0A1FCA}.Debug FW 3.5|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {2BB4AD77-190F-4D7E-A83E-7B254A0A1FCA}.Debug FW 3.5|Win32.ActiveCfg = DebugMono|Any CPU
+ {2BB4AD77-190F-4D7E-A83E-7B254A0A1FCA}.Debug FW 3.5|x64.ActiveCfg = DebugMono|Any CPU
+ {2BB4AD77-190F-4D7E-A83E-7B254A0A1FCA}.Debug FW 3.5|x86.ActiveCfg = DebugMono|Any CPU
+ {2BB4AD77-190F-4D7E-A83E-7B254A0A1FCA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {2BB4AD77-190F-4D7E-A83E-7B254A0A1FCA}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {2BB4AD77-190F-4D7E-A83E-7B254A0A1FCA}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {2BB4AD77-190F-4D7E-A83E-7B254A0A1FCA}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {2BB4AD77-190F-4D7E-A83E-7B254A0A1FCA}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {2BB4AD77-190F-4D7E-A83E-7B254A0A1FCA}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {2BB4AD77-190F-4D7E-A83E-7B254A0A1FCA}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {2BB4AD77-190F-4D7E-A83E-7B254A0A1FCA}.DebugMono|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {2BB4AD77-190F-4D7E-A83E-7B254A0A1FCA}.DebugMono|Any CPU.Build.0 = DebugMono|Any CPU
+ {2BB4AD77-190F-4D7E-A83E-7B254A0A1FCA}.DebugMono|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {2BB4AD77-190F-4D7E-A83E-7B254A0A1FCA}.DebugMono|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {2BB4AD77-190F-4D7E-A83E-7B254A0A1FCA}.DebugMono|Win32.ActiveCfg = DebugMono|Any CPU
+ {2BB4AD77-190F-4D7E-A83E-7B254A0A1FCA}.DebugMono|x64.ActiveCfg = DebugMono|Any CPU
+ {2BB4AD77-190F-4D7E-A83E-7B254A0A1FCA}.DebugMono|x86.ActiveCfg = DebugMono|Any CPU
+ {2BB4AD77-190F-4D7E-A83E-7B254A0A1FCA}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {2BB4AD77-190F-4D7E-A83E-7B254A0A1FCA}.Release|Any CPU.Build.0 = Release|Any CPU
+ {2BB4AD77-190F-4D7E-A83E-7B254A0A1FCA}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {2BB4AD77-190F-4D7E-A83E-7B254A0A1FCA}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {2BB4AD77-190F-4D7E-A83E-7B254A0A1FCA}.Release|Win32.ActiveCfg = Release|Any CPU
+ {2BB4AD77-190F-4D7E-A83E-7B254A0A1FCA}.Release|x64.ActiveCfg = Release|Any CPU
+ {2BB4AD77-190F-4D7E-A83E-7B254A0A1FCA}.Release|x86.ActiveCfg = Release|Any CPU
+ {2BB4AD77-190F-4D7E-A83E-7B254A0A1FCA}.ReleaseMono|Any CPU.ActiveCfg = ReleaseMono|Any CPU
+ {2BB4AD77-190F-4D7E-A83E-7B254A0A1FCA}.ReleaseMono|Any CPU.Build.0 = ReleaseMono|Any CPU
+ {2BB4AD77-190F-4D7E-A83E-7B254A0A1FCA}.ReleaseMono|Mixed Platforms.ActiveCfg = ReleaseMono|Any CPU
+ {2BB4AD77-190F-4D7E-A83E-7B254A0A1FCA}.ReleaseMono|Mixed Platforms.Build.0 = ReleaseMono|Any CPU
+ {2BB4AD77-190F-4D7E-A83E-7B254A0A1FCA}.ReleaseMono|Win32.ActiveCfg = ReleaseMono|Any CPU
+ {2BB4AD77-190F-4D7E-A83E-7B254A0A1FCA}.ReleaseMono|x64.ActiveCfg = ReleaseMono|Any CPU
+ {2BB4AD77-190F-4D7E-A83E-7B254A0A1FCA}.ReleaseMono|x86.ActiveCfg = ReleaseMono|Any CPU
+ {2BB4AD77-190F-4D7E-A83E-7B254A0A1FCA}.Template|Any CPU.ActiveCfg = Release|Any CPU
+ {2BB4AD77-190F-4D7E-A83E-7B254A0A1FCA}.Template|Any CPU.Build.0 = Release|Any CPU
+ {2BB4AD77-190F-4D7E-A83E-7B254A0A1FCA}.Template|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {2BB4AD77-190F-4D7E-A83E-7B254A0A1FCA}.Template|Mixed Platforms.Build.0 = Release|Any CPU
+ {2BB4AD77-190F-4D7E-A83E-7B254A0A1FCA}.Template|Win32.ActiveCfg = Release|Any CPU
+ {2BB4AD77-190F-4D7E-A83E-7B254A0A1FCA}.Template|x64.ActiveCfg = Release|Any CPU
+ {2BB4AD77-190F-4D7E-A83E-7B254A0A1FCA}.Template|x86.ActiveCfg = Release|Any CPU
+ {6AE74A35-B337-4B17-8092-E1B98DEF06AF}.Debug FW 3.5|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {6AE74A35-B337-4B17-8092-E1B98DEF06AF}.Debug FW 3.5|Any CPU.Build.0 = DebugMono|Any CPU
+ {6AE74A35-B337-4B17-8092-E1B98DEF06AF}.Debug FW 3.5|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {6AE74A35-B337-4B17-8092-E1B98DEF06AF}.Debug FW 3.5|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {6AE74A35-B337-4B17-8092-E1B98DEF06AF}.Debug FW 3.5|Win32.ActiveCfg = DebugMono|Any CPU
+ {6AE74A35-B337-4B17-8092-E1B98DEF06AF}.Debug FW 3.5|x64.ActiveCfg = DebugMono|Any CPU
+ {6AE74A35-B337-4B17-8092-E1B98DEF06AF}.Debug FW 3.5|x86.ActiveCfg = DebugMono|Any CPU
+ {6AE74A35-B337-4B17-8092-E1B98DEF06AF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {6AE74A35-B337-4B17-8092-E1B98DEF06AF}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6AE74A35-B337-4B17-8092-E1B98DEF06AF}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {6AE74A35-B337-4B17-8092-E1B98DEF06AF}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {6AE74A35-B337-4B17-8092-E1B98DEF06AF}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {6AE74A35-B337-4B17-8092-E1B98DEF06AF}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {6AE74A35-B337-4B17-8092-E1B98DEF06AF}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {6AE74A35-B337-4B17-8092-E1B98DEF06AF}.DebugMono|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {6AE74A35-B337-4B17-8092-E1B98DEF06AF}.DebugMono|Any CPU.Build.0 = DebugMono|Any CPU
+ {6AE74A35-B337-4B17-8092-E1B98DEF06AF}.DebugMono|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {6AE74A35-B337-4B17-8092-E1B98DEF06AF}.DebugMono|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {6AE74A35-B337-4B17-8092-E1B98DEF06AF}.DebugMono|Win32.ActiveCfg = DebugMono|Any CPU
+ {6AE74A35-B337-4B17-8092-E1B98DEF06AF}.DebugMono|x64.ActiveCfg = DebugMono|Any CPU
+ {6AE74A35-B337-4B17-8092-E1B98DEF06AF}.DebugMono|x86.ActiveCfg = DebugMono|Any CPU
+ {6AE74A35-B337-4B17-8092-E1B98DEF06AF}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {6AE74A35-B337-4B17-8092-E1B98DEF06AF}.Release|Any CPU.Build.0 = Release|Any CPU
+ {6AE74A35-B337-4B17-8092-E1B98DEF06AF}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {6AE74A35-B337-4B17-8092-E1B98DEF06AF}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {6AE74A35-B337-4B17-8092-E1B98DEF06AF}.Release|Win32.ActiveCfg = Release|Any CPU
+ {6AE74A35-B337-4B17-8092-E1B98DEF06AF}.Release|x64.ActiveCfg = Release|Any CPU
+ {6AE74A35-B337-4B17-8092-E1B98DEF06AF}.Release|x86.ActiveCfg = Release|Any CPU
+ {6AE74A35-B337-4B17-8092-E1B98DEF06AF}.ReleaseMono|Any CPU.ActiveCfg = ReleaseMono|Any CPU
+ {6AE74A35-B337-4B17-8092-E1B98DEF06AF}.ReleaseMono|Any CPU.Build.0 = ReleaseMono|Any CPU
+ {6AE74A35-B337-4B17-8092-E1B98DEF06AF}.ReleaseMono|Mixed Platforms.ActiveCfg = ReleaseMono|Any CPU
+ {6AE74A35-B337-4B17-8092-E1B98DEF06AF}.ReleaseMono|Mixed Platforms.Build.0 = ReleaseMono|Any CPU
+ {6AE74A35-B337-4B17-8092-E1B98DEF06AF}.ReleaseMono|Win32.ActiveCfg = ReleaseMono|Any CPU
+ {6AE74A35-B337-4B17-8092-E1B98DEF06AF}.ReleaseMono|x64.ActiveCfg = ReleaseMono|Any CPU
+ {6AE74A35-B337-4B17-8092-E1B98DEF06AF}.ReleaseMono|x86.ActiveCfg = ReleaseMono|Any CPU
+ {6AE74A35-B337-4B17-8092-E1B98DEF06AF}.Template|Any CPU.ActiveCfg = Release|Any CPU
+ {6AE74A35-B337-4B17-8092-E1B98DEF06AF}.Template|Any CPU.Build.0 = Release|Any CPU
+ {6AE74A35-B337-4B17-8092-E1B98DEF06AF}.Template|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {6AE74A35-B337-4B17-8092-E1B98DEF06AF}.Template|Mixed Platforms.Build.0 = Release|Any CPU
+ {6AE74A35-B337-4B17-8092-E1B98DEF06AF}.Template|Win32.ActiveCfg = Release|Any CPU
+ {6AE74A35-B337-4B17-8092-E1B98DEF06AF}.Template|x64.ActiveCfg = Release|Any CPU
+ {6AE74A35-B337-4B17-8092-E1B98DEF06AF}.Template|x86.ActiveCfg = Release|Any CPU
+ {9FD2722C-1E6C-4061-8AC0-32EE28808FC0}.Debug FW 3.5|Any CPU.ActiveCfg = Debug|Any CPU
+ {9FD2722C-1E6C-4061-8AC0-32EE28808FC0}.Debug FW 3.5|Any CPU.Build.0 = Debug|Any CPU
+ {9FD2722C-1E6C-4061-8AC0-32EE28808FC0}.Debug FW 3.5|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {9FD2722C-1E6C-4061-8AC0-32EE28808FC0}.Debug FW 3.5|Mixed Platforms.Build.0 = Debug|Any CPU
+ {9FD2722C-1E6C-4061-8AC0-32EE28808FC0}.Debug FW 3.5|Win32.ActiveCfg = Debug|Any CPU
+ {9FD2722C-1E6C-4061-8AC0-32EE28808FC0}.Debug FW 3.5|x64.ActiveCfg = Debug|Any CPU
+ {9FD2722C-1E6C-4061-8AC0-32EE28808FC0}.Debug FW 3.5|x86.ActiveCfg = Debug|Any CPU
+ {9FD2722C-1E6C-4061-8AC0-32EE28808FC0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {9FD2722C-1E6C-4061-8AC0-32EE28808FC0}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {9FD2722C-1E6C-4061-8AC0-32EE28808FC0}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {9FD2722C-1E6C-4061-8AC0-32EE28808FC0}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {9FD2722C-1E6C-4061-8AC0-32EE28808FC0}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {9FD2722C-1E6C-4061-8AC0-32EE28808FC0}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {9FD2722C-1E6C-4061-8AC0-32EE28808FC0}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {9FD2722C-1E6C-4061-8AC0-32EE28808FC0}.DebugMono|Any CPU.ActiveCfg = Debug|Any CPU
+ {9FD2722C-1E6C-4061-8AC0-32EE28808FC0}.DebugMono|Any CPU.Build.0 = Debug|Any CPU
+ {9FD2722C-1E6C-4061-8AC0-32EE28808FC0}.DebugMono|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {9FD2722C-1E6C-4061-8AC0-32EE28808FC0}.DebugMono|Mixed Platforms.Build.0 = Debug|Any CPU
+ {9FD2722C-1E6C-4061-8AC0-32EE28808FC0}.DebugMono|Win32.ActiveCfg = Debug|Any CPU
+ {9FD2722C-1E6C-4061-8AC0-32EE28808FC0}.DebugMono|x64.ActiveCfg = Debug|Any CPU
+ {9FD2722C-1E6C-4061-8AC0-32EE28808FC0}.DebugMono|x86.ActiveCfg = Debug|Any CPU
+ {9FD2722C-1E6C-4061-8AC0-32EE28808FC0}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {9FD2722C-1E6C-4061-8AC0-32EE28808FC0}.Release|Any CPU.Build.0 = Release|Any CPU
+ {9FD2722C-1E6C-4061-8AC0-32EE28808FC0}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {9FD2722C-1E6C-4061-8AC0-32EE28808FC0}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {9FD2722C-1E6C-4061-8AC0-32EE28808FC0}.Release|Win32.ActiveCfg = Release|Any CPU
+ {9FD2722C-1E6C-4061-8AC0-32EE28808FC0}.Release|x64.ActiveCfg = Release|Any CPU
+ {9FD2722C-1E6C-4061-8AC0-32EE28808FC0}.Release|x86.ActiveCfg = Release|Any CPU
+ {9FD2722C-1E6C-4061-8AC0-32EE28808FC0}.ReleaseMono|Any CPU.ActiveCfg = Release|Any CPU
+ {9FD2722C-1E6C-4061-8AC0-32EE28808FC0}.ReleaseMono|Any CPU.Build.0 = Release|Any CPU
+ {9FD2722C-1E6C-4061-8AC0-32EE28808FC0}.ReleaseMono|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {9FD2722C-1E6C-4061-8AC0-32EE28808FC0}.ReleaseMono|Mixed Platforms.Build.0 = Release|Any CPU
+ {9FD2722C-1E6C-4061-8AC0-32EE28808FC0}.ReleaseMono|Win32.ActiveCfg = Release|Any CPU
+ {9FD2722C-1E6C-4061-8AC0-32EE28808FC0}.ReleaseMono|x64.ActiveCfg = Release|Any CPU
+ {9FD2722C-1E6C-4061-8AC0-32EE28808FC0}.ReleaseMono|x86.ActiveCfg = Release|Any CPU
+ {9FD2722C-1E6C-4061-8AC0-32EE28808FC0}.Template|Any CPU.ActiveCfg = Release|Any CPU
+ {9FD2722C-1E6C-4061-8AC0-32EE28808FC0}.Template|Any CPU.Build.0 = Release|Any CPU
+ {9FD2722C-1E6C-4061-8AC0-32EE28808FC0}.Template|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {9FD2722C-1E6C-4061-8AC0-32EE28808FC0}.Template|Mixed Platforms.Build.0 = Release|Any CPU
+ {9FD2722C-1E6C-4061-8AC0-32EE28808FC0}.Template|Win32.ActiveCfg = Release|Any CPU
+ {9FD2722C-1E6C-4061-8AC0-32EE28808FC0}.Template|x64.ActiveCfg = Release|Any CPU
+ {9FD2722C-1E6C-4061-8AC0-32EE28808FC0}.Template|x86.ActiveCfg = Release|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC584}.Debug FW 3.5|Any CPU.ActiveCfg = Debug FW 3.5|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC584}.Debug FW 3.5|Any CPU.Build.0 = Debug FW 3.5|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC584}.Debug FW 3.5|Mixed Platforms.ActiveCfg = Debug FW 3.5|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC584}.Debug FW 3.5|Mixed Platforms.Build.0 = Debug FW 3.5|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC584}.Debug FW 3.5|Win32.ActiveCfg = Debug FW 3.5|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC584}.Debug FW 3.5|x64.ActiveCfg = Debug FW 3.5|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC584}.Debug FW 3.5|x86.ActiveCfg = Debug FW 3.5|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC584}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC584}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC584}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC584}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC584}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC584}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC584}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC584}.DebugMono|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC584}.DebugMono|Any CPU.Build.0 = DebugMono|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC584}.DebugMono|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC584}.DebugMono|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC584}.DebugMono|Win32.ActiveCfg = DebugMono|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC584}.DebugMono|x64.ActiveCfg = DebugMono|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC584}.DebugMono|x86.ActiveCfg = DebugMono|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC584}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC584}.Release|Any CPU.Build.0 = Release|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC584}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC584}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC584}.Release|Win32.ActiveCfg = Release|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC584}.Release|x64.ActiveCfg = Release|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC584}.Release|x86.ActiveCfg = Release|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC584}.ReleaseMono|Any CPU.ActiveCfg = ReleaseMono|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC584}.ReleaseMono|Any CPU.Build.0 = ReleaseMono|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC584}.ReleaseMono|Mixed Platforms.ActiveCfg = ReleaseMono|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC584}.ReleaseMono|Mixed Platforms.Build.0 = ReleaseMono|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC584}.ReleaseMono|Win32.ActiveCfg = ReleaseMono|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC584}.ReleaseMono|x64.ActiveCfg = ReleaseMono|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC584}.ReleaseMono|x86.ActiveCfg = ReleaseMono|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC584}.Template|Any CPU.ActiveCfg = ReleaseMono|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC584}.Template|Any CPU.Build.0 = ReleaseMono|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC584}.Template|Mixed Platforms.ActiveCfg = ReleaseMono|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC584}.Template|Mixed Platforms.Build.0 = ReleaseMono|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC584}.Template|Win32.ActiveCfg = ReleaseMono|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC584}.Template|x64.ActiveCfg = ReleaseMono|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC584}.Template|x86.ActiveCfg = ReleaseMono|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC585}.Debug FW 3.5|Any CPU.ActiveCfg = Debug FW 3.5|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC585}.Debug FW 3.5|Any CPU.Build.0 = Debug FW 3.5|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC585}.Debug FW 3.5|Mixed Platforms.ActiveCfg = Debug FW 3.5|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC585}.Debug FW 3.5|Mixed Platforms.Build.0 = Debug FW 3.5|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC585}.Debug FW 3.5|Win32.ActiveCfg = Debug FW 3.5|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC585}.Debug FW 3.5|x64.ActiveCfg = Debug FW 3.5|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC585}.Debug FW 3.5|x86.ActiveCfg = Debug FW 3.5|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC585}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC585}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC585}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC585}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC585}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC585}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC585}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC585}.DebugMono|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC585}.DebugMono|Any CPU.Build.0 = DebugMono|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC585}.DebugMono|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC585}.DebugMono|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC585}.DebugMono|Win32.ActiveCfg = DebugMono|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC585}.DebugMono|x64.ActiveCfg = DebugMono|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC585}.DebugMono|x86.ActiveCfg = DebugMono|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC585}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC585}.Release|Any CPU.Build.0 = Release|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC585}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC585}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC585}.Release|Win32.ActiveCfg = Release|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC585}.Release|x64.ActiveCfg = Release|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC585}.Release|x86.ActiveCfg = Release|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC585}.ReleaseMono|Any CPU.ActiveCfg = ReleaseMono|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC585}.ReleaseMono|Any CPU.Build.0 = ReleaseMono|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC585}.ReleaseMono|Mixed Platforms.ActiveCfg = ReleaseMono|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC585}.ReleaseMono|Mixed Platforms.Build.0 = ReleaseMono|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC585}.ReleaseMono|Win32.ActiveCfg = ReleaseMono|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC585}.ReleaseMono|x64.ActiveCfg = ReleaseMono|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC585}.ReleaseMono|x86.ActiveCfg = ReleaseMono|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC585}.Template|Any CPU.ActiveCfg = ReleaseMono|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC585}.Template|Any CPU.Build.0 = ReleaseMono|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC585}.Template|Mixed Platforms.ActiveCfg = ReleaseMono|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC585}.Template|Mixed Platforms.Build.0 = ReleaseMono|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC585}.Template|Win32.ActiveCfg = ReleaseMono|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC585}.Template|x64.ActiveCfg = ReleaseMono|Any CPU
+ {0C325F5D-E50E-4340-8724-D29896CCC585}.Template|x86.ActiveCfg = ReleaseMono|Any CPU
+ {87FB4F28-5DCC-4F21-B83E-59C85E1A7423}.Debug FW 3.5|Any CPU.ActiveCfg = Debug|Any CPU
+ {87FB4F28-5DCC-4F21-B83E-59C85E1A7423}.Debug FW 3.5|Any CPU.Build.0 = Debug|Any CPU
+ {87FB4F28-5DCC-4F21-B83E-59C85E1A7423}.Debug FW 3.5|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {87FB4F28-5DCC-4F21-B83E-59C85E1A7423}.Debug FW 3.5|Mixed Platforms.Build.0 = Debug|Any CPU
+ {87FB4F28-5DCC-4F21-B83E-59C85E1A7423}.Debug FW 3.5|Win32.ActiveCfg = Debug|Any CPU
+ {87FB4F28-5DCC-4F21-B83E-59C85E1A7423}.Debug FW 3.5|x64.ActiveCfg = Debug|Any CPU
+ {87FB4F28-5DCC-4F21-B83E-59C85E1A7423}.Debug FW 3.5|x86.ActiveCfg = Debug|Any CPU
+ {87FB4F28-5DCC-4F21-B83E-59C85E1A7423}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {87FB4F28-5DCC-4F21-B83E-59C85E1A7423}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {87FB4F28-5DCC-4F21-B83E-59C85E1A7423}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {87FB4F28-5DCC-4F21-B83E-59C85E1A7423}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {87FB4F28-5DCC-4F21-B83E-59C85E1A7423}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {87FB4F28-5DCC-4F21-B83E-59C85E1A7423}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {87FB4F28-5DCC-4F21-B83E-59C85E1A7423}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {87FB4F28-5DCC-4F21-B83E-59C85E1A7423}.DebugMono|Any CPU.ActiveCfg = Debug|Any CPU
+ {87FB4F28-5DCC-4F21-B83E-59C85E1A7423}.DebugMono|Any CPU.Build.0 = Debug|Any CPU
+ {87FB4F28-5DCC-4F21-B83E-59C85E1A7423}.DebugMono|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {87FB4F28-5DCC-4F21-B83E-59C85E1A7423}.DebugMono|Mixed Platforms.Build.0 = Debug|Any CPU
+ {87FB4F28-5DCC-4F21-B83E-59C85E1A7423}.DebugMono|Win32.ActiveCfg = Debug|Any CPU
+ {87FB4F28-5DCC-4F21-B83E-59C85E1A7423}.DebugMono|x64.ActiveCfg = Debug|Any CPU
+ {87FB4F28-5DCC-4F21-B83E-59C85E1A7423}.DebugMono|x86.ActiveCfg = Debug|Any CPU
+ {87FB4F28-5DCC-4F21-B83E-59C85E1A7423}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {87FB4F28-5DCC-4F21-B83E-59C85E1A7423}.Release|Any CPU.Build.0 = Release|Any CPU
+ {87FB4F28-5DCC-4F21-B83E-59C85E1A7423}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {87FB4F28-5DCC-4F21-B83E-59C85E1A7423}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {87FB4F28-5DCC-4F21-B83E-59C85E1A7423}.Release|Win32.ActiveCfg = Release|Any CPU
+ {87FB4F28-5DCC-4F21-B83E-59C85E1A7423}.Release|x64.ActiveCfg = Release|Any CPU
+ {87FB4F28-5DCC-4F21-B83E-59C85E1A7423}.Release|x86.ActiveCfg = Release|Any CPU
+ {87FB4F28-5DCC-4F21-B83E-59C85E1A7423}.ReleaseMono|Any CPU.ActiveCfg = Release|Any CPU
+ {87FB4F28-5DCC-4F21-B83E-59C85E1A7423}.ReleaseMono|Any CPU.Build.0 = Release|Any CPU
+ {87FB4F28-5DCC-4F21-B83E-59C85E1A7423}.ReleaseMono|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {87FB4F28-5DCC-4F21-B83E-59C85E1A7423}.ReleaseMono|Mixed Platforms.Build.0 = Release|Any CPU
+ {87FB4F28-5DCC-4F21-B83E-59C85E1A7423}.ReleaseMono|Win32.ActiveCfg = Release|Any CPU
+ {87FB4F28-5DCC-4F21-B83E-59C85E1A7423}.ReleaseMono|x64.ActiveCfg = Release|Any CPU
+ {87FB4F28-5DCC-4F21-B83E-59C85E1A7423}.ReleaseMono|x86.ActiveCfg = Release|Any CPU
+ {87FB4F28-5DCC-4F21-B83E-59C85E1A7423}.Template|Any CPU.ActiveCfg = Release|Any CPU
+ {87FB4F28-5DCC-4F21-B83E-59C85E1A7423}.Template|Any CPU.Build.0 = Release|Any CPU
+ {87FB4F28-5DCC-4F21-B83E-59C85E1A7423}.Template|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {87FB4F28-5DCC-4F21-B83E-59C85E1A7423}.Template|Mixed Platforms.Build.0 = Release|Any CPU
+ {87FB4F28-5DCC-4F21-B83E-59C85E1A7423}.Template|Win32.ActiveCfg = Release|Any CPU
+ {87FB4F28-5DCC-4F21-B83E-59C85E1A7423}.Template|x64.ActiveCfg = Release|Any CPU
+ {87FB4F28-5DCC-4F21-B83E-59C85E1A7423}.Template|x86.ActiveCfg = Release|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.Debug FW 3.5|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.Debug FW 3.5|Any CPU.Build.0 = DebugMono|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.Debug FW 3.5|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.Debug FW 3.5|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.Debug FW 3.5|Win32.ActiveCfg = DebugMono|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.Debug FW 3.5|x64.ActiveCfg = DebugMono|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.Debug FW 3.5|x86.ActiveCfg = DebugMono|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.DebugMono|Any CPU.ActiveCfg = DebugMono|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.DebugMono|Any CPU.Build.0 = DebugMono|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.DebugMono|Mixed Platforms.ActiveCfg = DebugMono|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.DebugMono|Mixed Platforms.Build.0 = DebugMono|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.DebugMono|Win32.ActiveCfg = DebugMono|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.DebugMono|x64.ActiveCfg = DebugMono|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.DebugMono|x86.ActiveCfg = DebugMono|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.Release|Any CPU.Build.0 = Release|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.Release|Win32.ActiveCfg = Release|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.Release|x64.ActiveCfg = Release|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.Release|x86.ActiveCfg = Release|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.ReleaseMono|Any CPU.ActiveCfg = ReleaseMono|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.ReleaseMono|Any CPU.Build.0 = ReleaseMono|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.ReleaseMono|Mixed Platforms.ActiveCfg = ReleaseMono|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.ReleaseMono|Mixed Platforms.Build.0 = ReleaseMono|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.ReleaseMono|Win32.ActiveCfg = ReleaseMono|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.ReleaseMono|x64.ActiveCfg = ReleaseMono|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.ReleaseMono|x86.ActiveCfg = ReleaseMono|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.Template|Any CPU.ActiveCfg = ReleaseMono|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.Template|Any CPU.Build.0 = ReleaseMono|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.Template|Mixed Platforms.ActiveCfg = ReleaseMono|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.Template|Mixed Platforms.Build.0 = ReleaseMono|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.Template|Win32.ActiveCfg = ReleaseMono|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.Template|x64.ActiveCfg = ReleaseMono|Any CPU
+ {61985B06-67FD-4941-B1B0-7F3794FD237C}.Template|x86.ActiveCfg = ReleaseMono|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.Debug FW 3.5|Any CPU.ActiveCfg = Debug|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.Debug FW 3.5|Any CPU.Build.0 = Debug|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.Debug FW 3.5|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.Debug FW 3.5|Mixed Platforms.Build.0 = Debug|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.Debug FW 3.5|Win32.ActiveCfg = Debug|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.Debug FW 3.5|x64.ActiveCfg = Debug|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.Debug FW 3.5|x86.ActiveCfg = Debug|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.DebugMono|Any CPU.ActiveCfg = Debug|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.DebugMono|Any CPU.Build.0 = Debug|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.DebugMono|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.DebugMono|Mixed Platforms.Build.0 = Debug|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.DebugMono|Win32.ActiveCfg = Debug|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.DebugMono|x64.ActiveCfg = Debug|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.DebugMono|x86.ActiveCfg = Debug|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.Release|Any CPU.Build.0 = Release|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.Release|Win32.ActiveCfg = Release|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.Release|x64.ActiveCfg = Release|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.Release|x86.ActiveCfg = Release|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.ReleaseMono|Any CPU.ActiveCfg = Release|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.ReleaseMono|Any CPU.Build.0 = Release|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.ReleaseMono|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.ReleaseMono|Mixed Platforms.Build.0 = Release|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.ReleaseMono|Win32.ActiveCfg = Release|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.ReleaseMono|x64.ActiveCfg = Release|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.ReleaseMono|x86.ActiveCfg = Release|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.Template|Any CPU.ActiveCfg = Release|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.Template|Any CPU.Build.0 = Release|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.Template|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.Template|Mixed Platforms.Build.0 = Release|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.Template|Win32.ActiveCfg = Release|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.Template|x64.ActiveCfg = Release|Any CPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}.Template|x86.ActiveCfg = Release|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.Debug FW 3.5|Any CPU.ActiveCfg = Debug|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.Debug FW 3.5|Any CPU.Build.0 = Debug|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.Debug FW 3.5|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.Debug FW 3.5|Mixed Platforms.Build.0 = Debug|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.Debug FW 3.5|Win32.ActiveCfg = Debug|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.Debug FW 3.5|x64.ActiveCfg = Debug|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.Debug FW 3.5|x86.ActiveCfg = Debug|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.DebugMono|Any CPU.ActiveCfg = Debug|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.DebugMono|Any CPU.Build.0 = Debug|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.DebugMono|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.DebugMono|Mixed Platforms.Build.0 = Debug|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.DebugMono|Win32.ActiveCfg = Debug|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.DebugMono|x64.ActiveCfg = Debug|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.DebugMono|x86.ActiveCfg = Debug|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.Release|Any CPU.Build.0 = Release|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.Release|Win32.ActiveCfg = Release|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.Release|x64.ActiveCfg = Release|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.Release|x86.ActiveCfg = Release|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.ReleaseMono|Any CPU.ActiveCfg = Release|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.ReleaseMono|Any CPU.Build.0 = Release|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.ReleaseMono|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.ReleaseMono|Mixed Platforms.Build.0 = Release|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.ReleaseMono|Win32.ActiveCfg = Release|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.ReleaseMono|x64.ActiveCfg = Release|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.ReleaseMono|x86.ActiveCfg = Release|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.Template|Any CPU.ActiveCfg = Release|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.Template|Any CPU.Build.0 = Release|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.Template|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.Template|Mixed Platforms.Build.0 = Release|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.Template|Win32.ActiveCfg = Release|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.Template|x64.ActiveCfg = Release|Any CPU
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E}.Template|x86.ActiveCfg = Release|Any CPU
+ {527300F8-9F04-434C-8239-4FE5E174FF6B}.Debug FW 3.5|Any CPU.ActiveCfg = Debug|Any CPU
+ {527300F8-9F04-434C-8239-4FE5E174FF6B}.Debug FW 3.5|Any CPU.Build.0 = Debug|Any CPU
+ {527300F8-9F04-434C-8239-4FE5E174FF6B}.Debug FW 3.5|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {527300F8-9F04-434C-8239-4FE5E174FF6B}.Debug FW 3.5|Mixed Platforms.Build.0 = Debug|Any CPU
+ {527300F8-9F04-434C-8239-4FE5E174FF6B}.Debug FW 3.5|Win32.ActiveCfg = Debug|Any CPU
+ {527300F8-9F04-434C-8239-4FE5E174FF6B}.Debug FW 3.5|x64.ActiveCfg = Debug|Any CPU
+ {527300F8-9F04-434C-8239-4FE5E174FF6B}.Debug FW 3.5|x86.ActiveCfg = Debug|Any CPU
+ {527300F8-9F04-434C-8239-4FE5E174FF6B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {527300F8-9F04-434C-8239-4FE5E174FF6B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {527300F8-9F04-434C-8239-4FE5E174FF6B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {527300F8-9F04-434C-8239-4FE5E174FF6B}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {527300F8-9F04-434C-8239-4FE5E174FF6B}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {527300F8-9F04-434C-8239-4FE5E174FF6B}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {527300F8-9F04-434C-8239-4FE5E174FF6B}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {527300F8-9F04-434C-8239-4FE5E174FF6B}.DebugMono|Any CPU.ActiveCfg = Debug|Any CPU
+ {527300F8-9F04-434C-8239-4FE5E174FF6B}.DebugMono|Any CPU.Build.0 = Debug|Any CPU
+ {527300F8-9F04-434C-8239-4FE5E174FF6B}.DebugMono|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {527300F8-9F04-434C-8239-4FE5E174FF6B}.DebugMono|Mixed Platforms.Build.0 = Debug|Any CPU
+ {527300F8-9F04-434C-8239-4FE5E174FF6B}.DebugMono|Win32.ActiveCfg = Debug|Any CPU
+ {527300F8-9F04-434C-8239-4FE5E174FF6B}.DebugMono|x64.ActiveCfg = Debug|Any CPU
+ {527300F8-9F04-434C-8239-4FE5E174FF6B}.DebugMono|x86.ActiveCfg = Debug|Any CPU
+ {527300F8-9F04-434C-8239-4FE5E174FF6B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {527300F8-9F04-434C-8239-4FE5E174FF6B}.Release|Any CPU.Build.0 = Release|Any CPU
+ {527300F8-9F04-434C-8239-4FE5E174FF6B}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {527300F8-9F04-434C-8239-4FE5E174FF6B}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {527300F8-9F04-434C-8239-4FE5E174FF6B}.Release|Win32.ActiveCfg = Release|Any CPU
+ {527300F8-9F04-434C-8239-4FE5E174FF6B}.Release|x64.ActiveCfg = Release|Any CPU
+ {527300F8-9F04-434C-8239-4FE5E174FF6B}.Release|x86.ActiveCfg = Release|Any CPU
+ {527300F8-9F04-434C-8239-4FE5E174FF6B}.ReleaseMono|Any CPU.ActiveCfg = Release|Any CPU
+ {527300F8-9F04-434C-8239-4FE5E174FF6B}.ReleaseMono|Any CPU.Build.0 = Release|Any CPU
+ {527300F8-9F04-434C-8239-4FE5E174FF6B}.ReleaseMono|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {527300F8-9F04-434C-8239-4FE5E174FF6B}.ReleaseMono|Mixed Platforms.Build.0 = Release|Any CPU
+ {527300F8-9F04-434C-8239-4FE5E174FF6B}.ReleaseMono|Win32.ActiveCfg = Release|Any CPU
+ {527300F8-9F04-434C-8239-4FE5E174FF6B}.ReleaseMono|x64.ActiveCfg = Release|Any CPU
+ {527300F8-9F04-434C-8239-4FE5E174FF6B}.ReleaseMono|x86.ActiveCfg = Release|Any CPU
+ {527300F8-9F04-434C-8239-4FE5E174FF6B}.Template|Any CPU.ActiveCfg = Release|Any CPU
+ {527300F8-9F04-434C-8239-4FE5E174FF6B}.Template|Any CPU.Build.0 = Release|Any CPU
+ {527300F8-9F04-434C-8239-4FE5E174FF6B}.Template|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {527300F8-9F04-434C-8239-4FE5E174FF6B}.Template|Mixed Platforms.Build.0 = Release|Any CPU
+ {527300F8-9F04-434C-8239-4FE5E174FF6B}.Template|Win32.ActiveCfg = Release|Any CPU
+ {527300F8-9F04-434C-8239-4FE5E174FF6B}.Template|x64.ActiveCfg = Release|Any CPU
+ {527300F8-9F04-434C-8239-4FE5E174FF6B}.Template|x86.ActiveCfg = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {D527524F-EC92-465E-9CAE-86278121675A} = {2CC0A340-512C-4F0D-A5E6-87C042EE13B9}
+ {D11617AB-9F88-4C74-8ABD-F8580DB4B01B} = {2CC0A340-512C-4F0D-A5E6-87C042EE13B9}
+ {07997A18-86D3-47AC-A514-AB1B03E6AEC8} = {2CC0A340-512C-4F0D-A5E6-87C042EE13B9}
+ {4FDE7340-F60F-49BC-86CD-756CCD26C92A} = {2CC0A340-512C-4F0D-A5E6-87C042EE13B9}
+ {2BB4AD77-190F-4D7E-A83E-7B254A0A1FCA} = {2CC0A340-512C-4F0D-A5E6-87C042EE13B9}
+ {6AE74A35-B337-4B17-8092-E1B98DEF06AF} = {2CC0A340-512C-4F0D-A5E6-87C042EE13B9}
+ {527300F8-9F04-434C-8239-4FE5E174FF6B} = {2CC0A340-512C-4F0D-A5E6-87C042EE13B9}
+ {6E0C5565-F9A3-441C-9CB2-8B1878A800EF} = {C0306556-68F4-4DD5-95F2-AAFEE8FACDFA}
+ {65FC918C-FF12-4C75-96F5-180B552989E5} = {C0306556-68F4-4DD5-95F2-AAFEE8FACDFA}
+ {F2B014F7-3807-4938-8F02-3CF8247C47DC} = {C0306556-68F4-4DD5-95F2-AAFEE8FACDFA}
+ {86BF4F10-3606-4016-9919-84C3335813B6} = {E6CE0ECB-3373-4DC0-98CB-F4E9DC2293C4}
+ {C1F8C201-BBD9-44F4-884C-CFF8CC960B68} = {E6CE0ECB-3373-4DC0-98CB-F4E9DC2293C4}
+ {B1DEA25C-7667-471B-BBAD-64D017FDD104} = {E6CE0ECB-3373-4DC0-98CB-F4E9DC2293C4}
+ {3578AF4C-CBFF-4A38-88F5-E86AC990AFBD} = {E6CE0ECB-3373-4DC0-98CB-F4E9DC2293C4}
+ {2B5287F2-A6AC-4D5A-B0A8-01C06144824D} = {E6CE0ECB-3373-4DC0-98CB-F4E9DC2293C4}
+ {5A556D57-0D68-433B-AD78-02849583582B} = {E6CE0ECB-3373-4DC0-98CB-F4E9DC2293C4}
+ {85E90F57-8DE1-4912-8414-28578F4D71CD} = {E6CE0ECB-3373-4DC0-98CB-F4E9DC2293C4}
+ {3E414663-B673-47A8-AB59-0E08FE43DA86} = {E6CE0ECB-3373-4DC0-98CB-F4E9DC2293C4}
+ {6CD8CC3D-643D-4D09-8660-A26085C44FBC} = {E6CE0ECB-3373-4DC0-98CB-F4E9DC2293C4}
+ {61985B06-67FD-4941-B1B0-7F3794FD237C} = {E6CE0ECB-3373-4DC0-98CB-F4E9DC2293C4}
+ {CB303F0B-0AA3-4589-850A-95E985A09492} = {E6CE0ECB-3373-4DC0-98CB-F4E9DC2293C4}
+ {6E7FE7FC-551F-4273-ACEB-72DC0D01120E} = {E6CE0ECB-3373-4DC0-98CB-F4E9DC2293C4}
+ {83C0070F-E639-4D65-B392-34F621165A1C} = {B75C60BF-F5B7-472E-A0A8-8A12DDDDAA7D}
+ {0F3F166F-9927-4BC0-855F-ADB0D20218F1} = {B75C60BF-F5B7-472E-A0A8-8A12DDDDAA7D}
+ {35E61C2A-2B8C-4AF4-AD21-353936581EF5} = {B75C60BF-F5B7-472E-A0A8-8A12DDDDAA7D}
+ {9475B894-944A-47CF-855D-93A0C42136C9} = {B75C60BF-F5B7-472E-A0A8-8A12DDDDAA7D}
+ {FC77CB0E-4DBF-4CDF-A1AD-C6F830A849B0} = {B75C60BF-F5B7-472E-A0A8-8A12DDDDAA7D}
+ {2F6B63C4-295A-433C-91CB-CAE4CADE6B8B} = {B75C60BF-F5B7-472E-A0A8-8A12DDDDAA7D}
+ {28693777-369C-4C0D-B076-38F7C0E5D06C} = {83C0070F-E639-4D65-B392-34F621165A1C}
+ {E796EF23-D63D-4EBD-A34D-5F243834933B} = {83C0070F-E639-4D65-B392-34F621165A1C}
+ {3BCB17AC-9941-4460-858B-2B7BC3BEDDE7} = {0F3F166F-9927-4BC0-855F-ADB0D20218F1}
+ {16272F10-9E3D-4C24-8761-8A43E9FB525F} = {0F3F166F-9927-4BC0-855F-ADB0D20218F1}
+ {854749E5-9264-42FF-A576-3B5784C7C14C} = {35E61C2A-2B8C-4AF4-AD21-353936581EF5}
+ {57CE5505-44CB-42E4-A346-3471F68A5B60} = {9475B894-944A-47CF-855D-93A0C42136C9}
+ {7ED3B518-7CEA-4991-98BD-9752E5F32F58} = {9475B894-944A-47CF-855D-93A0C42136C9}
+ {BF0811CA-4663-4778-8331-9BEEBCAAC8C8} = {FC77CB0E-4DBF-4CDF-A1AD-C6F830A849B0}
+ {01C318D0-1CB1-4CB4-A5ED-D311665C76EE} = {FC77CB0E-4DBF-4CDF-A1AD-C6F830A849B0}
+ {7DAA2EBB-A724-498F-93BB-68966E2B738F} = {FC77CB0E-4DBF-4CDF-A1AD-C6F830A849B0}
+ {8F9F4193-9104-4AA6-8E04-91CD9FDEC2E6} = {2F6B63C4-295A-433C-91CB-CAE4CADE6B8B}
+ {711A3803-4395-4E92-9B26-DC8DDDF80366} = {2F6B63C4-295A-433C-91CB-CAE4CADE6B8B}
+ {4EBBF9E9-53B2-493C-ABAB-E915C187558F} = {2F6B63C4-295A-433C-91CB-CAE4CADE6B8B}
+ {87FB4F28-5DCC-4F21-B83E-59C85E1A7423} = {2F6B63C4-295A-433C-91CB-CAE4CADE6B8B}
+ {34989C73-F82A-4905-9349-D0CF1419CD1C} = {8A7F38C5-EF9A-410B-8539-A58879F3AA22}
+ {308A4189-53AB-460D-B2B1-0EB4B9219654} = {8A7F38C5-EF9A-410B-8539-A58879F3AA22}
+ {8DA66999-005A-49AB-86A9-2C1F62905B50} = {8A7F38C5-EF9A-410B-8539-A58879F3AA22}
+ {9FD2722C-1E6C-4061-8AC0-32EE28808FC0} = {218E3584-CDC7-4A77-AD1A-CF9FBE90F67F}
+ EndGlobalSection
+EndGlobal
diff --git a/Data/BLToolkitData.mdb b/Data/BLToolkitData.mdb
index da3924256..b46db5de1 100644
Binary files a/Data/BLToolkitData.mdb and b/Data/BLToolkitData.mdb differ
diff --git a/Data/BLToolkitData.sdf b/Data/BLToolkitData.sdf
index 1fc88217a..9a0eaf777 100644
Binary files a/Data/BLToolkitData.sdf and b/Data/BLToolkitData.sdf differ
diff --git a/Data/BLToolkitData.sqlite b/Data/BLToolkitData.sqlite
index 8e3300157..76fd5a710 100644
Binary files a/Data/BLToolkitData.sqlite and b/Data/BLToolkitData.sqlite differ
diff --git a/Data/Create Scripts/Firebird2.sql b/Data/Create Scripts/Firebird2.sql
index e1243a144..8c92636aa 100644
--- a/Data/Create Scripts/Firebird2.sql
+++ b/Data/Create Scripts/Firebird2.sql
@@ -22,6 +22,8 @@ DROP GENERATOR DataTypeID; COMMIT;
DROP GENERATOR PersonID; COMMIT;
DROP GENERATOR TimestampGen; COMMIT;
+DROP VIEW PersonView; COMMIT;
+
DROP TABLE Dual; COMMIT;
DROP TABLE DataTypeTest; COMMIT;
DROP TABLE BinaryData; COMMIT;
@@ -282,7 +284,7 @@ AS
BEGIN
FOR
SELECT
- Person.PersonID,
+ Person.PersonID,
FirstName,
LastName,
MiddleName,
@@ -293,10 +295,10 @@ BEGIN
WHERE
Patient.PersonID = Person.PersonID
INTO
- :PersonID,
- :FirstName,
- :LastName,
- :MiddleName,
+ :PersonID,
+ :FirstName,
+ :LastName,
+ :MiddleName,
:Gender,
:Diagnosis
DO SUSPEND;
@@ -527,9 +529,9 @@ DROP TABLE Parent COMMIT;
DROP TABLE Child COMMIT;
DROP TABLE GrandChild COMMIT;
-CREATE TABLE Parent (ParentID int, Value1 int) COMMIT;
-CREATE TABLE Child (ParentID int, ChildID int) COMMIT;
-CREATE TABLE GrandChild (ParentID int, ChildID int, GrandChildID int) COMMIT;
+CREATE TABLE Parent (ParentID int, Value1 int) COMMIT;
+CREATE TABLE Child (ParentID int, ChildID int) COMMIT;
+CREATE TABLE GrandChild (ParentID int, ChildID int, GrandChildID int) COMMIT;
DROP TABLE LinqDataTypes COMMIT;
@@ -588,3 +590,9 @@ AS BEGIN
NEW.ID = GEN_ID(TestIdentityID, 1);
END
COMMIT;
+
+
+CREATE VIEW PersonView
+AS
+ SELECT * FROM Person
+COMMIT;
diff --git a/Data/Create Scripts/MsSql.sql b/Data/Create Scripts/MsSql.sql
index 21149b5e9..73b83f019 100644
--- a/Data/Create Scripts/MsSql.sql
+++ b/Data/Create Scripts/MsSql.sql
@@ -528,6 +528,7 @@ GO
-- SKIP Sql2005 END
-- SKIP Sql2008 BEGIN
+-- SKIP Sql2012 BEGIN
CREATE TABLE LinqDataTypes
(
ID int,
@@ -542,6 +543,7 @@ CREATE TABLE LinqDataTypes
BigIntValue bigint NULL
)
GO
+-- SKIP Sql2012 END
-- SKIP Sql2008 END
DROP TABLE TestIdentity
diff --git a/Data/Create Scripts/MsSql2000.sql b/Data/Create Scripts/MsSql2000.sql
new file mode 100644
index 000000000..581512559
--- /dev/null
+++ b/Data/Create Scripts/MsSql2000.sql
@@ -0,0 +1,472 @@
+DROP TABLE Doctor
+DROP TABLE Patient
+DROP TABLE Person
+
+CREATE TABLE Person
+(
+ PersonID int NOT NULL IDENTITY(1,1) CONSTRAINT PK_Person PRIMARY KEY CLUSTERED,
+ FirstName nvarchar(50) NOT NULL,
+ LastName nvarchar(50) NOT NULL,
+ MiddleName nvarchar(50) NULL,
+ Gender char(1) NOT NULL CONSTRAINT CK_Person_Gender CHECK (Gender in ('M', 'F', 'U', 'O'))
+)
+ON [PRIMARY]
+GO
+
+INSERT INTO Person (FirstName, LastName, Gender) VALUES ('John', 'Pupkin', 'M')
+GO
+INSERT INTO Person (FirstName, LastName, Gender) VALUES ('Tester', 'Testerson', 'M')
+GO
+
+-- Doctor Table Extension
+
+CREATE TABLE Doctor
+(
+ PersonID int NOT NULL
+ CONSTRAINT PK_Doctor PRIMARY KEY CLUSTERED
+ CONSTRAINT FK_Doctor_Person FOREIGN KEY
+ REFERENCES Person ([PersonID])
+ ON UPDATE CASCADE
+ ON DELETE CASCADE,
+ Taxonomy nvarchar(50) NOT NULL
+)
+ON [PRIMARY]
+GO
+
+INSERT INTO Doctor (PersonID, Taxonomy) VALUES (1, 'Psychiatry')
+GO
+
+-- Patient Table Extension
+
+CREATE TABLE Patient
+(
+ PersonID int NOT NULL
+ CONSTRAINT PK_Patient PRIMARY KEY CLUSTERED
+ CONSTRAINT FK_Patient_Person FOREIGN KEY
+ REFERENCES Person ([PersonID])
+ ON UPDATE CASCADE
+ ON DELETE CASCADE,
+ Diagnosis nvarchar(256) NOT NULL
+)
+ON [PRIMARY]
+GO
+
+INSERT INTO Patient (PersonID, Diagnosis) VALUES (2, 'Hallucination with Paranoid Bugs'' Delirium of Persecution')
+GO
+
+-- Person_SelectByKey
+
+DROP Procedure Person_SelectByKey
+GO
+
+CREATE Procedure Person_SelectByKey
+ @id int
+AS
+
+SELECT * FROM Person WHERE PersonID = @id
+
+GO
+
+GRANT EXEC ON Person_SelectByKey TO PUBLIC
+GO
+
+-- Person_SelectAll
+
+DROP Procedure Person_SelectAll
+GO
+
+CREATE Procedure Person_SelectAll
+AS
+
+SELECT * FROM Person
+
+GO
+
+GRANT EXEC ON Person_SelectAll TO PUBLIC
+GO
+
+-- Person_SelectByName
+
+DROP Procedure Person_SelectByName
+GO
+
+CREATE Procedure Person_SelectByName
+ @firstName nvarchar(50),
+ @lastName nvarchar(50)
+AS
+
+SELECT
+ *
+FROM
+ Person
+WHERE
+ FirstName = @firstName AND LastName = @lastName
+
+GO
+
+GRANT EXEC ON Person_SelectByName TO PUBLIC
+GO
+
+-- Person_SelectListByName
+
+DROP Procedure Person_SelectListByName
+GO
+
+CREATE Procedure Person_SelectListByName
+ @firstName nvarchar(50),
+ @lastName nvarchar(50)
+AS
+
+SELECT
+ *
+FROM
+ Person
+WHERE
+ FirstName like @firstName AND LastName like @lastName
+
+GO
+
+GRANT EXEC ON Person_SelectByName TO PUBLIC
+GO
+
+-- Person_Insert
+
+DROP Procedure Person_Insert
+GO
+
+CREATE Procedure Person_Insert
+ @FirstName nvarchar(50),
+ @LastName nvarchar(50),
+ @MiddleName nvarchar(50),
+ @Gender char(1)
+AS
+
+INSERT INTO Person
+ ( LastName, FirstName, MiddleName, Gender)
+VALUES
+ (@LastName, @FirstName, @MiddleName, @Gender)
+
+SELECT Cast(SCOPE_IDENTITY() as int) PersonID
+
+GO
+
+GRANT EXEC ON Person_Insert TO PUBLIC
+GO
+
+-- Person_Insert_OutputParameter
+
+DROP Procedure Person_Insert_OutputParameter
+GO
+
+CREATE Procedure Person_Insert_OutputParameter
+ @FirstName nvarchar(50),
+ @LastName nvarchar(50),
+ @MiddleName nvarchar(50),
+ @Gender char(1),
+ @PersonID int output
+AS
+
+INSERT INTO Person
+ ( LastName, FirstName, MiddleName, Gender)
+VALUES
+ (@LastName, @FirstName, @MiddleName, @Gender)
+
+SET @PersonID = Cast(SCOPE_IDENTITY() as int)
+
+GO
+
+GRANT EXEC ON Person_Insert_OutputParameter TO PUBLIC
+GO
+
+-- Person_Update
+
+DROP Procedure Person_Update
+GO
+
+CREATE Procedure Person_Update
+ @PersonID int,
+ @FirstName nvarchar(50),
+ @LastName nvarchar(50),
+ @MiddleName nvarchar(50),
+ @Gender char(1)
+AS
+
+UPDATE
+ Person
+SET
+ LastName = @LastName,
+ FirstName = @FirstName,
+ MiddleName = @MiddleName,
+ Gender = @Gender
+WHERE
+ PersonID = @PersonID
+
+GO
+
+GRANT EXEC ON Person_Update TO PUBLIC
+GO
+
+-- Person_Delete
+
+DROP Procedure Person_Delete
+GO
+
+CREATE Procedure Person_Delete
+ @PersonID int
+AS
+
+DELETE FROM Person WHERE PersonID = @PersonID
+
+GO
+
+GRANT EXEC ON Person_Delete TO PUBLIC
+GO
+
+-- Patient_SelectAll
+
+DROP Procedure Patient_SelectAll
+GO
+
+CREATE Procedure Patient_SelectAll
+AS
+
+SELECT
+ Person.*, Patient.Diagnosis
+FROM
+ Patient, Person
+WHERE
+ Patient.PersonID = Person.PersonID
+
+GO
+
+GRANT EXEC ON Patient_SelectAll TO PUBLIC
+GO
+
+-- Patient_SelectByName
+
+DROP Procedure Patient_SelectByName
+GO
+
+CREATE Procedure Patient_SelectByName
+ @firstName nvarchar(50),
+ @lastName nvarchar(50)
+AS
+
+SELECT
+ Person.*, Patient.Diagnosis
+FROM
+ Patient, Person
+WHERE
+ Patient.PersonID = Person.PersonID
+ AND FirstName = @firstName AND LastName = @lastName
+
+GO
+
+GRANT EXEC ON Person_SelectByName TO PUBLIC
+GO
+
+-- BinaryData Table
+
+DROP TABLE BinaryData
+
+CREATE TABLE BinaryData
+(
+ BinaryDataID int NOT NULL IDENTITY(1,1) CONSTRAINT PK_BinaryData PRIMARY KEY CLUSTERED,
+ Stamp timestamp NOT NULL,
+ Data varbinary(1024) NOT NULL)
+ON [PRIMARY]
+GO
+
+-- OutRefTest
+
+DROP Procedure OutRefTest
+GO
+
+CREATE Procedure OutRefTest
+ @ID int,
+ @outputID int output,
+ @inputOutputID int output,
+ @str varchar(50),
+ @outputStr varchar(50) output,
+ @inputOutputStr varchar(50) output
+AS
+
+SET @outputID = @ID
+SET @inputOutputID = @ID + @inputOutputID
+SET @outputStr = @str
+SET @inputOutputStr = @str + @inputOutputStr
+
+GO
+
+-- OutRefEnumTest
+
+DROP Procedure OutRefEnumTest
+GO
+
+CREATE Procedure OutRefEnumTest
+ @str varchar(50),
+ @outputStr varchar(50) output,
+ @inputOutputStr varchar(50) output
+AS
+
+SET @outputStr = @str
+SET @inputOutputStr = @str + @inputOutputStr
+
+GO
+
+-- ExecuteScalarTest
+
+DROP Procedure Scalar_DataReader
+GO
+
+CREATE Procedure Scalar_DataReader
+AS
+SELECT Cast(12345 as int) AS intField, Cast('54321' as varchar(50)) AS stringField
+
+GO
+
+DROP Procedure Scalar_OutputParameter
+GO
+
+CREATE Procedure Scalar_OutputParameter
+ @outputInt int = 0 output,
+ @outputString varchar(50) = '' output
+AS
+BEGIN
+ SET @outputInt = 12345
+ SET @outputString = '54321'
+END
+
+GO
+
+DROP Function Scalar_ReturnParameter
+GO
+
+CREATE Function Scalar_ReturnParameter()
+RETURNS int
+AS
+BEGIN
+ RETURN 12345
+END
+
+GO
+
+DROP Procedure Scalar_ReturnParameterWithObject
+GO
+
+CREATE Procedure Scalar_ReturnParameterWithObject
+ @id int
+AS
+BEGIN
+ SELECT * FROM Person WHERE PersonID = @id
+ RETURN @id
+END
+
+GO
+
+-- Data Types test
+
+DROP TABLE DataTypeTest
+GO
+
+CREATE TABLE DataTypeTest
+(
+ DataTypeID int NOT NULL IDENTITY(1,1) CONSTRAINT PK_DataType PRIMARY KEY CLUSTERED,
+ Binary_ binary(50) NULL,
+ Boolean_ bit NULL,
+ Byte_ tinyint NULL,
+ Bytes_ varbinary(50) NULL,
+ Char_ char(1) NULL,
+ DateTime_ datetime NULL,
+ Decimal_ decimal(20,2) NULL,
+ Double_ float NULL,
+ Guid_ uniqueidentifier NULL,
+ Int16_ smallint NULL,
+ Int32_ int NULL,
+ Int64_ bigint NULL,
+ Money_ money NULL,
+ SByte_ tinyint NULL,
+ Single_ real NULL,
+ Stream_ varbinary(50) NULL,
+ String_ nvarchar(50) NULL,
+ UInt16_ smallint NULL,
+ UInt32_ int NULL,
+ UInt64_ bigint NULL,
+ Xml_ nvarchar(2000) NULL
+) ON [PRIMARY]
+GO
+
+INSERT INTO DataTypeTest
+ (Binary_, Boolean_, Byte_, Bytes_, Char_, DateTime_, Decimal_,
+ Double_, Guid_, Int16_, Int32_, Int64_, Money_, SByte_,
+ Single_, Stream_, String_, UInt16_, UInt32_, UInt64_, Xml_)
+VALUES
+ ( NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL)
+GO
+
+INSERT INTO DataTypeTest
+ (Binary_, Boolean_, Byte_, Bytes_, Char_, DateTime_, Decimal_,
+ Double_, Guid_, Int16_, Int32_, Int64_, Money_, SByte_,
+ Single_, Stream_, String_, UInt16_, UInt32_, UInt64_,
+ Xml_)
+VALUES
+ (NewID(), 1, 255, NewID(), 'B', GetDate(), 12345.67,
+ 1234.567, NewID(), 32767, 32768, 1000000, 12.3456, 127,
+ 1234.123, NewID(), 'string', 32767, 32768, 200000000,
+ '')
+GO
+
+
+DROP FUNCTION GetParentByID
+GO
+
+DROP TABLE Parent
+GO
+DROP TABLE Child
+GO
+DROP TABLE GrandChild
+GO
+
+CREATE TABLE Parent (ParentID int, Value1 int)
+GO
+CREATE TABLE Child (ParentID int, ChildID int)
+GO
+CREATE TABLE GrandChild (ParentID int, ChildID int, GrandChildID int)
+GO
+
+CREATE FUNCTION GetParentByID(@id int)
+RETURNS TABLE
+AS
+RETURN
+(
+ SELECT * FROM Parent WHERE ParentID = @id
+)
+GO
+
+DROP TABLE LinqDataTypes
+GO
+
+CREATE TABLE LinqDataTypes
+(
+ ID int,
+ MoneyValue decimal(10,4),
+ DateTimeValue datetime,
+ DateTimeValue2 datetime,
+ BoolValue bit,
+ GuidValue uniqueidentifier,
+ BinaryValue varbinary(5000) NULL,
+ SmallIntValue smallint,
+ IntValue int NULL,
+ BigIntValue bigint NULL
+)
+GO
+
+DROP TABLE TestIdentity
+GO
+
+CREATE TABLE TestIdentity (
+ ID int NOT NULL IDENTITY(1,1) CONSTRAINT PK_TestIdentity PRIMARY KEY CLUSTERED
+)
+GO
diff --git a/Data/Create Scripts/Sybase.sql b/Data/Create Scripts/Sybase.sql
index 0d99018a5..77ec42af0 100644
--- a/Data/Create Scripts/Sybase.sql
+++ b/Data/Create Scripts/Sybase.sql
@@ -456,7 +456,7 @@ CREATE TABLE LinqDataTypes
MoneyValue decimal(10,4) NULL,
DateTimeValue datetime NULL,
DateTimeValue2 datetime NULL,
- BoolValue bit,
+ BoolValue bit default(0),
GuidValue char(36) NULL,
BinaryValue binary(500) NULL,
SmallIntValue smallint NULL,
@@ -468,7 +468,8 @@ GO
DROP TABLE TestIdentity
GO
-CREATE TABLE TestIdentity (
+CREATE TABLE TestIdentity
+(
ID int IDENTITY CONSTRAINT PK_TestIdentity PRIMARY KEY CLUSTERED
)
GO
diff --git a/DataProviders/Compile3.bat b/DataProviders/Compile3.bat
index 219e48695..11d58c15d 100644
--- a/DataProviders/Compile3.bat
+++ b/DataProviders/Compile3.bat
@@ -1,20 +1,20 @@
-%windir%\Microsoft.NET\Framework\v3.5\MSBuild.exe BLToolkit.Data.DataProvider.DB2.3.csproj /property:Configuration=Debug
-%windir%\Microsoft.NET\Framework\v3.5\MSBuild.exe BLToolkit.Data.DataProvider.Firebird.3.csproj /property:Configuration=Debug
-%windir%\Microsoft.NET\Framework\v3.5\MSBuild.exe BLToolkit.Data.DataProvider.Informix.3.csproj /property:Configuration=Debug
-%windir%\Microsoft.NET\Framework\v3.5\MSBuild.exe BLToolkit.Data.DataProvider.MySql.3.csproj /property:Configuration=Debug
-%windir%\Microsoft.NET\Framework\v3.5\MSBuild.exe BLToolkit.Data.DataProvider.Oracle.3.csproj /property:Configuration=Debug
-%windir%\Microsoft.NET\Framework\v3.5\MSBuild.exe BLToolkit.Data.DataProvider.PostgreSQL.3.csproj /property:Configuration=Debug
-%windir%\Microsoft.NET\Framework\v3.5\MSBuild.exe BLToolkit.Data.DataProvider.SqlCe.3.csproj /property:Configuration=Debug
-%windir%\Microsoft.NET\Framework\v3.5\MSBuild.exe BLToolkit.Data.DataProvider.SQLite.3.csproj /property:Configuration=Debug
-%windir%\Microsoft.NET\Framework\v3.5\MSBuild.exe BLToolkit.Data.DataProvider.Sybase.3.csproj /property:Configuration=Debug
+%windir%\Microsoft.NET\Framework\v3.5\MSBuild.exe DB2\BLToolkit.Data.DataProvider.DB2.3.csproj /property:Configuration=Debug
+%windir%\Microsoft.NET\Framework\v3.5\MSBuild.exe Firebird\BLToolkit.Data.DataProvider.Firebird.3.csproj /property:Configuration=Debug
+%windir%\Microsoft.NET\Framework\v3.5\MSBuild.exe Informix\BLToolkit.Data.DataProvider.Informix.3.csproj /property:Configuration=Debug
+%windir%\Microsoft.NET\Framework\v3.5\MSBuild.exe MySql\BLToolkit.Data.DataProvider.MySql.3.csproj /property:Configuration=Debug
+%windir%\Microsoft.NET\Framework\v3.5\MSBuild.exe Oracle\BLToolkit.Data.DataProvider.Oracle.3.csproj /property:Configuration=Debug
+%windir%\Microsoft.NET\Framework\v3.5\MSBuild.exe PostgreSQL\BLToolkit.Data.DataProvider.PostgreSQL.3.csproj /property:Configuration=Debug
+%windir%\Microsoft.NET\Framework\v3.5\MSBuild.exe SqlCe\BLToolkit.Data.DataProvider.SqlCe.3.csproj /property:Configuration=Debug
+%windir%\Microsoft.NET\Framework\v3.5\MSBuild.exe SQLite\BLToolkit.Data.DataProvider.SQLite.3.csproj /property:Configuration=Debug
+%windir%\Microsoft.NET\Framework\v3.5\MSBuild.exe Sybase\BLToolkit.Data.DataProvider.Sybase.3.csproj /property:Configuration=Debug
-%windir%\Microsoft.NET\Framework\v3.5\MSBuild.exe BLToolkit.Data.DataProvider.DB2.3.csproj /property:Configuration=Release
-%windir%\Microsoft.NET\Framework\v3.5\MSBuild.exe BLToolkit.Data.DataProvider.Firebird.3.csproj /property:Configuration=Release
-%windir%\Microsoft.NET\Framework\v3.5\MSBuild.exe BLToolkit.Data.DataProvider.Informix.3.csproj /property:Configuration=Release
-%windir%\Microsoft.NET\Framework\v3.5\MSBuild.exe BLToolkit.Data.DataProvider.MySql.3.csproj /property:Configuration=Release
-%windir%\Microsoft.NET\Framework\v3.5\MSBuild.exe BLToolkit.Data.DataProvider.Oracle.3.csproj /property:Configuration=Release
-%windir%\Microsoft.NET\Framework\v3.5\MSBuild.exe BLToolkit.Data.DataProvider.PostgreSQL.3.csproj /property:Configuration=Release
-%windir%\Microsoft.NET\Framework\v3.5\MSBuild.exe BLToolkit.Data.DataProvider.SqlCe.3.csproj /property:Configuration=Release
-%windir%\Microsoft.NET\Framework\v3.5\MSBuild.exe BLToolkit.Data.DataProvider.SQLite.3.csproj /property:Configuration=Release
-%windir%\Microsoft.NET\Framework\v3.5\MSBuild.exe BLToolkit.Data.DataProvider.Sybase.3.csproj /property:Configuration=Release
+%windir%\Microsoft.NET\Framework\v3.5\MSBuild.exe DB2\BLToolkit.Data.DataProvider.DB2.3.csproj /property:Configuration=Release
+%windir%\Microsoft.NET\Framework\v3.5\MSBuild.exe Firebird\BLToolkit.Data.DataProvider.Firebird.3.csproj /property:Configuration=Release
+%windir%\Microsoft.NET\Framework\v3.5\MSBuild.exe Informix\BLToolkit.Data.DataProvider.Informix.3.csproj /property:Configuration=Release
+%windir%\Microsoft.NET\Framework\v3.5\MSBuild.exe MySql\BLToolkit.Data.DataProvider.MySql.3.csproj /property:Configuration=Release
+%windir%\Microsoft.NET\Framework\v3.5\MSBuild.exe Oracle\BLToolkit.Data.DataProvider.Oracle.3.csproj /property:Configuration=Release
+%windir%\Microsoft.NET\Framework\v3.5\MSBuild.exe PostgreSQL\BLToolkit.Data.DataProvider.PostgreSQL.3.csproj /property:Configuration=Release
+%windir%\Microsoft.NET\Framework\v3.5\MSBuild.exe SqlCe\BLToolkit.Data.DataProvider.SqlCe.3.csproj /property:Configuration=Release
+%windir%\Microsoft.NET\Framework\v3.5\MSBuild.exe SQLite\BLToolkit.Data.DataProvider.SQLite.3.csproj /property:Configuration=Release
+%windir%\Microsoft.NET\Framework\v3.5\MSBuild.exe Sybase\BLToolkit.Data.DataProvider.Sybase.3.csproj /property:Configuration=Release
pause
\ No newline at end of file
diff --git a/DataProviders/Compile4.bat b/DataProviders/Compile4.bat
index d60c02692..b5a536669 100644
--- a/DataProviders/Compile4.bat
+++ b/DataProviders/Compile4.bat
@@ -1,22 +1,24 @@
-%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe BLToolkit.Data.DataProvider.DB2.4.csproj /property:Configuration=Debug
-%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe BLToolkit.Data.DataProvider.Firebird.4.csproj /property:Configuration=Debug
-%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe BLToolkit.Data.DataProvider.Informix.4.csproj /property:Configuration=Debug
-%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe BLToolkit.Data.DataProvider.MySql.4.csproj /property:Configuration=Debug
-%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe BLToolkit.Data.DataProvider.Oracle.4.csproj /property:Configuration=Debug
-%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe BLToolkit.Data.DataProvider.OracleManaged.4.csproj /property:Configuration=Debug
-%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe BLToolkit.Data.DataProvider.PostgreSQL.4.csproj /property:Configuration=Debug
-%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe BLToolkit.Data.DataProvider.SqlCe.4.csproj /property:Configuration=Debug
-%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe BLToolkit.Data.DataProvider.SQLite.4.csproj /property:Configuration=Debug
-%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe BLToolkit.Data.DataProvider.Sybase.4.csproj /property:Configuration=Debug
+%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe DB2\BLToolkit.Data.DataProvider.DB2.4.csproj /property:Configuration=Debug
+%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe Firebird\BLToolkit.Data.DataProvider.Firebird.4.csproj /property:Configuration=Debug
+%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe Informix\BLToolkit.Data.DataProvider.Informix.4.csproj /property:Configuration=Debug
+%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe MySql\BLToolkit.Data.DataProvider.MySql.4.csproj /property:Configuration=Debug
+%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe Oracle\BLToolkit.Data.DataProvider.Oracle.4.csproj /property:Configuration=Debug
+%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe Oracle\BLToolkit.Data.DataProvider.OracleManaged.4.csproj /property:Configuration=Debug
+%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe DevartOraclePro\BLToolkit.Data.DataProvider.DevartOracle.4.csproj /property:Configuration=Debug
+%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe PostgreSQL\BLToolkit.Data.DataProvider.PostgreSQL.4.csproj /property:Configuration=Debug
+%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe SqlCe\BLToolkit.Data.DataProvider.SqlCe.4.csproj /property:Configuration=Debug
+%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe SQLite\BLToolkit.Data.DataProvider.SQLite.4.csproj /property:Configuration=Debug
+%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe Sybase\BLToolkit.Data.DataProvider.Sybase.4.csproj /property:Configuration=Debug
-%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe BLToolkit.Data.DataProvider.DB2.4.csproj /property:Configuration=Release
-%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe BLToolkit.Data.DataProvider.Firebird.4.csproj /property:Configuration=Release
-%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe BLToolkit.Data.DataProvider.Informix.4.csproj /property:Configuration=Release
-%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe BLToolkit.Data.DataProvider.MySql.4.csproj /property:Configuration=Release
-%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe BLToolkit.Data.DataProvider.Oracle.4.csproj /property:Configuration=Release
-%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe BLToolkit.Data.DataProvider.OracleManaged.4.csproj /property:Configuration=Release
-%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe BLToolkit.Data.DataProvider.PostgreSQL.4.csproj /property:Configuration=Release
-%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe BLToolkit.Data.DataProvider.SqlCe.4.csproj /property:Configuration=Release
-%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe BLToolkit.Data.DataProvider.SQLite.4.csproj /property:Configuration=Release
-%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe BLToolkit.Data.DataProvider.Sybase.4.csproj /property:Configuration=Release
+%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe DB2\BLToolkit.Data.DataProvider.DB2.4.csproj /property:Configuration=Release
+%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe Firebird\BLToolkit.Data.DataProvider.Firebird.4.csproj /property:Configuration=Release
+%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe Informix\BLToolkit.Data.DataProvider.Informix.4.csproj /property:Configuration=Release
+%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe MySql\BLToolkit.Data.DataProvider.MySql.4.csproj /property:Configuration=Release
+%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe Oracle\BLToolkit.Data.DataProvider.Oracle.4.csproj /property:Configuration=Release
+%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe Oracle\BLToolkit.Data.DataProvider.OracleManaged.4.csproj /property:Configuration=Release
+%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe DevartOraclePro\BLToolkit.Data.DataProvider.DevartOracle.4.csproj /property:Configuration=Release
+%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe PostgreSQL\BLToolkit.Data.DataProvider.PostgreSQL.4.csproj /property:Configuration=Release
+%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe SqlCe\BLToolkit.Data.DataProvider.SqlCe.4.csproj /property:Configuration=Release
+%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe SQLite\BLToolkit.Data.DataProvider.SQLite.4.csproj /property:Configuration=Release
+%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe Sybase\BLToolkit.Data.DataProvider.Sybase.4.csproj /property:Configuration=Release
pause
\ No newline at end of file
diff --git a/DataProviders/BLToolkit.Data.DataProvider.DB2.3.csproj b/DataProviders/DB2/BLToolkit.Data.DataProvider.DB2.3.csproj
similarity index 91%
rename from DataProviders/BLToolkit.Data.DataProvider.DB2.3.csproj
rename to DataProviders/DB2/BLToolkit.Data.DataProvider.DB2.3.csproj
index f1a0b97be..8fe5364d9 100644
--- a/DataProviders/BLToolkit.Data.DataProvider.DB2.3.csproj
+++ b/DataProviders/DB2/BLToolkit.Data.DataProvider.DB2.3.csproj
@@ -33,7 +33,7 @@
False
- ..\Redist\IBM\IBM.Data.DB2.dll
+ ..\..\Redist\IBM\IBM.Data.DB2.dll
@@ -49,13 +49,13 @@
-
+
DB2DataProvider.cs
-
+
{0C325F5D-E50E-4340-8724-D29896CCC583}
BLToolkit.3
diff --git a/DataProviders/BLToolkit.Data.DataProvider.DB2.4.csproj b/DataProviders/DB2/BLToolkit.Data.DataProvider.DB2.4.csproj
similarity index 95%
rename from DataProviders/BLToolkit.Data.DataProvider.DB2.4.csproj
rename to DataProviders/DB2/BLToolkit.Data.DataProvider.DB2.4.csproj
index d86a00ab6..90d856901 100644
--- a/DataProviders/BLToolkit.Data.DataProvider.DB2.4.csproj
+++ b/DataProviders/DB2/BLToolkit.Data.DataProvider.DB2.4.csproj
@@ -86,7 +86,7 @@
False
- ..\Redist\IBM\IBM.Data.DB2.dll
+ ..\..\Redist\IBM\IBM.Data.DB2.dll
@@ -95,13 +95,13 @@
-
+
DB2DataProvider.cs
-
+
{0C325F5D-E50E-4340-8724-D29896CCC583}
BLToolkit.4
diff --git a/DataProviders/Properties/AssemblyInfo.cs b/DataProviders/DB2/Properties/AssemblyInfo.cs
similarity index 100%
rename from DataProviders/Properties/AssemblyInfo.cs
rename to DataProviders/DB2/Properties/AssemblyInfo.cs
diff --git a/DataProviders/DevartOraclePro/BLToolkit.Data.DataProvider.DevartOracle.4.csproj b/DataProviders/DevartOraclePro/BLToolkit.Data.DataProvider.DevartOracle.4.csproj
new file mode 100644
index 000000000..5ed29432e
--- /dev/null
+++ b/DataProviders/DevartOraclePro/BLToolkit.Data.DataProvider.DevartOracle.4.csproj
@@ -0,0 +1,71 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}
+ Library
+ Properties
+ BLToolkit.Data.DataProvider
+ BLToolkit.Data.DataProvider.DevartOracle.4
+ v4.0
+ 512
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+ False
+ ..\..\packages\dotConnect.Express.for.Oracle.8.1.36\lib\Devart.Data.dll
+
+
+ False
+ ..\..\packages\dotConnect.Express.for.Oracle.8.1.36\lib\Devart.Data.Oracle.dll
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {0c325f5d-e50e-4340-8724-d29896ccc583}
+ BLToolkit.4
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/DataProviders/DevartOraclePro/BLToolkit.Data.DataProvider.DevartOraclePro.4.csproj b/DataProviders/DevartOraclePro/BLToolkit.Data.DataProvider.DevartOraclePro.4.csproj
new file mode 100644
index 000000000..23100bc89
--- /dev/null
+++ b/DataProviders/DevartOraclePro/BLToolkit.Data.DataProvider.DevartOraclePro.4.csproj
@@ -0,0 +1,72 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {CB303F0B-0AA3-4589-850A-95E985A09492}
+ Library
+ Properties
+ BLToolkit.Data.DataProvider
+ BLToolkit.Data.DataProvider.DevartOracle.4
+ v4.0
+ 512
+
+
+ true
+ full
+ false
+ bin\Debug\
+ TRACE;DEBUG;DEVART_PRO
+ prompt
+ 4
+
+
+ pdbonly
+ true
+ bin\Release\
+ TRACE;DEVART_PRO
+ prompt
+ 4
+
+
+
+ False
+
+
+ False
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {0c325f5d-e50e-4340-8724-d29896ccc583}
+ BLToolkit.4
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/DataProviders/DevartOraclePro/DevartOracleDataProvider.cs b/DataProviders/DevartOraclePro/DevartOracleDataProvider.cs
new file mode 100644
index 000000000..9af924cbf
--- /dev/null
+++ b/DataProviders/DevartOraclePro/DevartOracleDataProvider.cs
@@ -0,0 +1,212 @@
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Data.Common;
+using System.Text;
+
+using BLToolkit.Data.Sql.SqlProvider;
+using BLToolkit.Mapping;
+
+using Devart.Data.Oracle;
+
+namespace BLToolkit.Data.DataProvider
+{
+ public class DevartOracleDataProvider : DataProviderBase
+ {
+ ///
+ /// Data provider name string.
+ ///
+ public const string NameString = "DevartOracle";
+
+ public override Type ConnectionType
+ {
+ get { return typeof(OracleConnection); }
+ }
+
+ public override string Name
+ {
+ get { return NameString; }
+ }
+
+ ///
+ /// Gets or sets the database activity monitor.
+ ///
+ private static Devart.Common.DbMonitor DbMonitor { get; set; }
+
+ ///
+ /// Gets or sets value indicating whether the database activity monitor is enabled.
+ ///
+ ///
+ /// This feature requires Standard or Pro edition of Devart dotConnect for Oracle provider.
+ ///
+ public static bool DbMonitorActive
+ {
+ get { return DbMonitor == null ? false : DbMonitor.IsActive; }
+ set
+ {
+ // setting this property has no effect in Express edition
+#if DEVART_PRO
+ if (DbMonitorActive != value)
+ {
+ DbMonitor = DbMonitor ?? new OracleMonitor();
+ DbMonitor.IsActive = value;
+ }
+#endif
+ }
+ }
+
+ public override IDbConnection CreateConnectionObject()
+ {
+ return new OracleConnection();
+ }
+
+ public override DbDataAdapter CreateDataAdapterObject()
+ {
+ return new OracleDataAdapter();
+ }
+
+ public override bool DeriveParameters(IDbCommand command)
+ {
+ var oraCommand = command as OracleCommand;
+
+ if (null != oraCommand)
+ {
+ try
+ {
+ OracleCommandBuilder.DeriveParameters(oraCommand);
+ }
+ catch (Exception ex)
+ {
+ // Make Oracle less laconic.
+ //
+ throw new DataException(string.Format("{0}\nCommandText: {1}", ex.Message, oraCommand.CommandText), ex);
+ }
+
+ return true;
+ }
+
+ return false;
+ }
+
+ public override void AttachParameter(IDbCommand command, IDbDataParameter parameter)
+ {
+ var value = parameter.Value;
+
+ if (value is DateTime)
+ {
+ parameter.Value = new OracleTimeStamp((DateTime)value);
+ }
+ else if (value is Guid)
+ {
+ parameter.Value = ((Guid)value).ToByteArray();
+ parameter.DbType = DbType.Binary;
+ ((OracleParameter)parameter).OracleDbType = OracleDbType.Raw;
+ }
+// else if (value is string)
+// {
+// ((OracleParameter)parameter).OracleDbType = OracleDbType.NVarChar;
+// }
+
+ base.AttachParameter(command, parameter);
+ }
+
+ public override int ExecuteArray(IDbCommand command, int iterations)
+ {
+ var cmd = (OracleCommand)command;
+ return cmd.ExecuteArray(iterations);
+ }
+
+ public override ISqlProvider CreateSqlProvider()
+ {
+ return new OracleSqlProvider();
+ }
+
+
+ #region InsertBatch
+
+ public override int InsertBatch(
+ DbManager db,
+ string insertText,
+ IEnumerable collection,
+ MemberMapper[] members,
+ int maxBatchSize,
+ DbManager.ParameterProvider getParameters)
+ {
+ var sb = new StringBuilder();
+ var sp = new OracleSqlProvider();
+ var n = 0;
+ var cnt = 0;
+ var str = "\t" + insertText
+ .Substring(0, insertText.IndexOf(") VALUES ("))
+ .Substring(7)
+ .Replace("\r", "")
+ .Replace("\n", "")
+ .Replace("\t", " ")
+ .Replace("( ", "(")
+ //.Replace(" ", " ")
+ + ") VALUES (";
+
+ foreach (var item in collection)
+ {
+ if (sb.Length == 0)
+ sb.AppendLine("INSERT ALL");
+
+ sb.Append(str);
+
+ foreach (var member in members)
+ {
+ var value = member.GetValue(item);
+
+ if (value is Nullable)
+ value = ((DateTime?)value).Value;
+
+ if (value is DateTime)
+ {
+ var dt = (DateTime)value;
+ sb.Append(string.Format("to_timestamp('{0:dd.MM.yyyy HH:mm:ss.ffffff}', 'DD.MM.YYYY HH24:MI:SS.FF6')", dt));
+ }
+ else
+ sp.BuildValue(sb, value);
+
+ sb.Append(", ");
+ }
+
+ sb.Length -= 2;
+ sb.AppendLine(")");
+
+ n++;
+
+ if (n >= maxBatchSize)
+ {
+ sb.AppendLine("SELECT * FROM dual");
+
+ var sql = sb.ToString();
+
+ if (DbManager.TraceSwitch.TraceInfo)
+ DbManager.WriteTraceLine("\n" + sql.Replace("\r", ""), DbManager.TraceSwitch.DisplayName);
+
+ cnt += db.SetCommand(sql).ExecuteNonQuery();
+
+ n = 0;
+ sb.Length = 0;
+ }
+ }
+
+ if (n > 0)
+ {
+ sb.AppendLine("SELECT * FROM dual");
+
+ var sql = sb.ToString();
+
+ if (DbManager.TraceSwitch.TraceInfo)
+ DbManager.WriteTraceLine("\n" + sql.Replace("\r", ""), DbManager.TraceSwitch.DisplayName);
+
+ cnt += db.SetCommand(sql).ExecuteNonQuery();
+ }
+
+ return cnt;
+ }
+
+ #endregion
+ }
+}
diff --git a/DataProviders/DevartOraclePro/Properties/AssemblyInfo.cs b/DataProviders/DevartOraclePro/Properties/AssemblyInfo.cs
new file mode 100644
index 000000000..91e631660
--- /dev/null
+++ b/DataProviders/DevartOraclePro/Properties/AssemblyInfo.cs
@@ -0,0 +1,35 @@
+using System.Reflection;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("BLToolkit.Data.DataProvider.DevartOracle.4")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("BLToolkit.Data.DataProvider.DevartOracle.4")]
+[assembly: AssemblyCopyright("Copyright © 2013")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("3eccd100-83fa-4b39-af69-dffd7ba55edb")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/DataProviders/DevartOraclePro/Properties/licenses.config b/DataProviders/DevartOraclePro/Properties/licenses.config
new file mode 100644
index 000000000..3483b08c0
--- /dev/null
+++ b/DataProviders/DevartOraclePro/Properties/licenses.config
@@ -0,0 +1,20 @@
+mono.exe
+nunit-console.exe
+nunit-console-x86.exe
+nunit.exe
+nunit-x86.exe
+ProcessInvocation.exe
+ProcessInvocation86.exe
+SilverlightExecute.TestRunner.exe
+Demo.exe
+Test.exe
+Sample.exe
+Server.exe
+Demo.vshost.exe
+Test.vshost.exe
+Sample.vshost.exe
+Server.vshost.exe
+Demo.vshost32.exe
+Test.vshost32.exe
+Sample.vshost32.exe
+Server.vshost32.exe
diff --git a/DataProviders/DevartOraclePro/Properties/licenses.licx b/DataProviders/DevartOraclePro/Properties/licenses.licx
new file mode 100644
index 000000000..54b97f7bd
--- /dev/null
+++ b/DataProviders/DevartOraclePro/Properties/licenses.licx
@@ -0,0 +1 @@
+Devart.Data.Oracle.OracleConnection, Devart.Data.Oracle, Version=6.10.121.0, Culture=neutral, PublicKeyToken=09af7300eec23701
diff --git a/DataProviders/DevartOraclePro/app.config b/DataProviders/DevartOraclePro/app.config
new file mode 100644
index 000000000..48410298d
--- /dev/null
+++ b/DataProviders/DevartOraclePro/app.config
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/DataProviders/DevartOraclePro/packages.config b/DataProviders/DevartOraclePro/packages.config
new file mode 100644
index 000000000..cb4fa1177
--- /dev/null
+++ b/DataProviders/DevartOraclePro/packages.config
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/DataProviders/BLToolkit.Data.DataProvider.Firebird.3.csproj b/DataProviders/Firebird/BLToolkit.Data.DataProvider.Firebird.3.csproj
similarity index 90%
rename from DataProviders/BLToolkit.Data.DataProvider.Firebird.3.csproj
rename to DataProviders/Firebird/BLToolkit.Data.DataProvider.Firebird.3.csproj
index a9ba0ee7e..2a550dde1 100644
--- a/DataProviders/BLToolkit.Data.DataProvider.Firebird.3.csproj
+++ b/DataProviders/Firebird/BLToolkit.Data.DataProvider.Firebird.3.csproj
@@ -33,7 +33,7 @@
False
- ..\Redist\Firebird\FirebirdSql.Data.FirebirdClient.dll
+ ..\..\Redist\Firebird\FirebirdSql.Data.FirebirdClient.dll
@@ -52,13 +52,13 @@
-
+
FdpDataProvider.cs
-
+
{0C325F5D-E50E-4340-8724-D29896CCC583}
BLToolkit.3
diff --git a/DataProviders/BLToolkit.Data.DataProvider.Firebird.4.csproj b/DataProviders/Firebird/BLToolkit.Data.DataProvider.Firebird.4.csproj
similarity index 91%
rename from DataProviders/BLToolkit.Data.DataProvider.Firebird.4.csproj
rename to DataProviders/Firebird/BLToolkit.Data.DataProvider.Firebird.4.csproj
index 1fc22942b..a786d4161 100644
--- a/DataProviders/BLToolkit.Data.DataProvider.Firebird.4.csproj
+++ b/DataProviders/Firebird/BLToolkit.Data.DataProvider.Firebird.4.csproj
@@ -86,9 +86,9 @@
false
-
+
False
- ..\packages\FirebirdSql.Data.FirebirdClient.3.0.2.1\lib\net40-client\FirebirdSql.Data.FirebirdClient.dll
+ ..\..\packages\FirebirdSql.Data.FirebirdClient.4.0.0.0\lib\net40-client\FirebirdSql.Data.FirebirdClient.dll
@@ -101,7 +101,7 @@
-
+
FdpDataProvider.cs
@@ -124,11 +124,16 @@
-
+
{0C325F5D-E50E-4340-8724-D29896CCC583}
BLToolkit.4
+
+
+ Designer
+
+
+
\ No newline at end of file
diff --git a/DataProviders/Generic/Properties/AssemblyInfo.cs b/DataProviders/Generic/Properties/AssemblyInfo.cs
new file mode 100644
index 000000000..c5eb0a369
--- /dev/null
+++ b/DataProviders/Generic/Properties/AssemblyInfo.cs
@@ -0,0 +1,20 @@
+using System;
+using System.Reflection;
+using System.Resources;
+using System.Runtime.InteropServices;
+using System.Security;
+
+using BLToolkit;
+
+[assembly: AssemblyTitle (BLToolkitConstants.ProductName + " Data Provider")]
+[assembly: AssemblyDescription (BLToolkitConstants.ProductDescription + " Data Provider")]
+[assembly: AssemblyProduct (BLToolkitConstants.ProductName + " Data Provider")]
+[assembly: AssemblyCopyright (BLToolkitConstants.Copyright)]
+[assembly: AssemblyCulture ("")]
+[assembly: ComVisible (false)]
+[assembly: Guid ("6c3fb028-daf7-4134-8697-eedfe34d779e")]
+[assembly: AssemblyVersion (BLToolkitConstants.FullVersionString)]
+[assembly: AssemblyFileVersion (BLToolkitConstants.FullVersionString)]
+[assembly: CLSCompliant (true)]
+[assembly: NeutralResourcesLanguage("en-US")]
+//[assembly: AllowPartiallyTrustedCallers]
diff --git a/DataProviders/BLToolkit.Data.DataProvider.Informix.3.csproj b/DataProviders/Informix/BLToolkit.Data.DataProvider.Informix.3.csproj
similarity index 91%
rename from DataProviders/BLToolkit.Data.DataProvider.Informix.3.csproj
rename to DataProviders/Informix/BLToolkit.Data.DataProvider.Informix.3.csproj
index 36f42d291..c66ca80b8 100644
--- a/DataProviders/BLToolkit.Data.DataProvider.Informix.3.csproj
+++ b/DataProviders/Informix/BLToolkit.Data.DataProvider.Informix.3.csproj
@@ -33,7 +33,7 @@
False
- ..\Redist\IBM\IBM.Data.Informix.dll
+ ..\..\Redist\IBM\IBM.Data.Informix.dll
@@ -49,13 +49,13 @@
-
+
InformixDataProvider.cs
-
+
{0C325F5D-E50E-4340-8724-D29896CCC583}
BLToolkit.3
diff --git a/DataProviders/BLToolkit.Data.DataProvider.Informix.4.csproj b/DataProviders/Informix/BLToolkit.Data.DataProvider.Informix.4.csproj
similarity index 95%
rename from DataProviders/BLToolkit.Data.DataProvider.Informix.4.csproj
rename to DataProviders/Informix/BLToolkit.Data.DataProvider.Informix.4.csproj
index f7ba15c84..c30f609dd 100644
--- a/DataProviders/BLToolkit.Data.DataProvider.Informix.4.csproj
+++ b/DataProviders/Informix/BLToolkit.Data.DataProvider.Informix.4.csproj
@@ -87,7 +87,7 @@
False
- ..\Redist\IBM\IBM.Data.Informix.dll
+ ..\..\Redist\IBM\IBM.Data.Informix.dll
@@ -97,7 +97,7 @@
-
+
InformixDataProvider.cs
@@ -120,7 +120,7 @@
-
+
{0C325F5D-E50E-4340-8724-D29896CCC583}
BLToolkit.4
diff --git a/DataProviders/Informix/Properties/AssemblyInfo.cs b/DataProviders/Informix/Properties/AssemblyInfo.cs
new file mode 100644
index 000000000..98c1fdcf6
--- /dev/null
+++ b/DataProviders/Informix/Properties/AssemblyInfo.cs
@@ -0,0 +1,20 @@
+using System;
+using System.Reflection;
+using System.Resources;
+using System.Runtime.InteropServices;
+using System.Security;
+
+using BLToolkit;
+
+[assembly: AssemblyTitle (BLToolkitConstants.ProductName + " Data Provider")]
+[assembly: AssemblyDescription (BLToolkitConstants.ProductDescription + " Data Provider")]
+[assembly: AssemblyProduct (BLToolkitConstants.ProductName + " Data Provider")]
+[assembly: AssemblyCopyright (BLToolkitConstants.Copyright)]
+[assembly: AssemblyCulture ("")]
+[assembly: ComVisible (false)]
+[assembly: Guid ("6c3fb028-daf7-4134-8697-eedfe34d779e")]
+[assembly: AssemblyVersion (BLToolkitConstants.FullVersionString)]
+[assembly: AssemblyFileVersion (BLToolkitConstants.FullVersionString)]
+[assembly: CLSCompliant (true)]
+[assembly: NeutralResourcesLanguage("en-US")]
+//[assembly: AllowPartiallyTrustedCallers]
diff --git a/DataProviders/BLToolkit.Data.DataProvider.MySql.3.csproj b/DataProviders/MySql/BLToolkit.Data.DataProvider.MySql.3.csproj
similarity index 90%
rename from DataProviders/BLToolkit.Data.DataProvider.MySql.3.csproj
rename to DataProviders/MySql/BLToolkit.Data.DataProvider.MySql.3.csproj
index b75e7aa76..464d8abba 100644
--- a/DataProviders/BLToolkit.Data.DataProvider.MySql.3.csproj
+++ b/DataProviders/MySql/BLToolkit.Data.DataProvider.MySql.3.csproj
@@ -33,7 +33,7 @@
False
- ..\packages\MySql.Data.6.4.4\lib\net20\mysql.data.dll
+ ..\..\packages\MySql.Data.6.4.4\lib\net20\mysql.data.dll
@@ -52,13 +52,13 @@
-
+
MySqlDataProvider.cs
-
+
{0C325F5D-E50E-4340-8724-D29896CCC583}
BLToolkit.3
diff --git a/DataProviders/BLToolkit.Data.DataProvider.MySql.4.csproj b/DataProviders/MySql/BLToolkit.Data.DataProvider.MySql.4.csproj
similarity index 94%
rename from DataProviders/BLToolkit.Data.DataProvider.MySql.4.csproj
rename to DataProviders/MySql/BLToolkit.Data.DataProvider.MySql.4.csproj
index 962ef26d5..09d9effdb 100644
--- a/DataProviders/BLToolkit.Data.DataProvider.MySql.4.csproj
+++ b/DataProviders/MySql/BLToolkit.Data.DataProvider.MySql.4.csproj
@@ -88,9 +88,9 @@
4
-
+
False
- ..\packages\MySql.Data.6.5.4\lib\net40\MySql.Data.dll
+ ..\..\packages\MySql.Data.6.8.3\lib\net40\MySql.Data.dll
@@ -104,7 +104,7 @@
-
+
MySqlDataProvider.cs
@@ -127,7 +127,7 @@
-
+
{0C325F5D-E50E-4340-8724-D29896CCC583}
BLToolkit.4
diff --git a/DataProviders/MySql/Properties/AssemblyInfo.cs b/DataProviders/MySql/Properties/AssemblyInfo.cs
new file mode 100644
index 000000000..98c1fdcf6
--- /dev/null
+++ b/DataProviders/MySql/Properties/AssemblyInfo.cs
@@ -0,0 +1,20 @@
+using System;
+using System.Reflection;
+using System.Resources;
+using System.Runtime.InteropServices;
+using System.Security;
+
+using BLToolkit;
+
+[assembly: AssemblyTitle (BLToolkitConstants.ProductName + " Data Provider")]
+[assembly: AssemblyDescription (BLToolkitConstants.ProductDescription + " Data Provider")]
+[assembly: AssemblyProduct (BLToolkitConstants.ProductName + " Data Provider")]
+[assembly: AssemblyCopyright (BLToolkitConstants.Copyright)]
+[assembly: AssemblyCulture ("")]
+[assembly: ComVisible (false)]
+[assembly: Guid ("6c3fb028-daf7-4134-8697-eedfe34d779e")]
+[assembly: AssemblyVersion (BLToolkitConstants.FullVersionString)]
+[assembly: AssemblyFileVersion (BLToolkitConstants.FullVersionString)]
+[assembly: CLSCompliant (true)]
+[assembly: NeutralResourcesLanguage("en-US")]
+//[assembly: AllowPartiallyTrustedCallers]
diff --git a/DataProviders/MySql/packages.config b/DataProviders/MySql/packages.config
new file mode 100644
index 000000000..c28edff16
--- /dev/null
+++ b/DataProviders/MySql/packages.config
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/DataProviders/BLToolkit.Data.DataProvider.Oracle.3.csproj b/DataProviders/Oracle/BLToolkit.Data.DataProvider.Oracle.3.csproj
similarity index 91%
rename from DataProviders/BLToolkit.Data.DataProvider.Oracle.3.csproj
rename to DataProviders/Oracle/BLToolkit.Data.DataProvider.Oracle.3.csproj
index ba93bee34..473277715 100644
--- a/DataProviders/BLToolkit.Data.DataProvider.Oracle.3.csproj
+++ b/DataProviders/Oracle/BLToolkit.Data.DataProvider.Oracle.3.csproj
@@ -33,7 +33,7 @@
False
- ..\Redist\Oracle\Oracle.DataAccess.dll
+ ..\..\Redist\Oracle\Oracle.DataAccess.dll
@@ -52,13 +52,13 @@
-
+
OdpDataProvider.cs
-
+
{0C325F5D-E50E-4340-8724-D29896CCC583}
BLToolkit.3
diff --git a/DataProviders/BLToolkit.Data.DataProvider.Oracle.4.csproj b/DataProviders/Oracle/BLToolkit.Data.DataProvider.Oracle.4.csproj
similarity index 87%
rename from DataProviders/BLToolkit.Data.DataProvider.Oracle.4.csproj
rename to DataProviders/Oracle/BLToolkit.Data.DataProvider.Oracle.4.csproj
index f92b8dd57..6a750acac 100644
--- a/DataProviders/BLToolkit.Data.DataProvider.Oracle.4.csproj
+++ b/DataProviders/Oracle/BLToolkit.Data.DataProvider.Oracle.4.csproj
@@ -84,9 +84,14 @@
;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules
-
+
+ C:/app/Valeriu.Lacatusu/product/11.2.0/client_2/odp.net/bin/2.x/Oracle.DataAccess.dll
False
- ..\Redist\Oracle\Oracle.DataAccess.dll
+ True
+
+
+ False
+ ..\..\packages\odp.net.managed.121.1.1\lib\net40\Oracle.ManagedDataAccess.dll
@@ -99,7 +104,7 @@
-
+
OdpDataProvider.cs
@@ -122,11 +127,14 @@
-
+
{0C325F5D-E50E-4340-8724-D29896CCC583}
BLToolkit.4
+
+
+
+ -->
\ No newline at end of file
diff --git a/Extensions/JointureAddOn/DataAccess/FullSqlQueryBase.cs b/Extensions/JointureAddOn/DataAccess/FullSqlQuery.cs
similarity index 52%
rename from Extensions/JointureAddOn/DataAccess/FullSqlQueryBase.cs
rename to Extensions/JointureAddOn/DataAccess/FullSqlQuery.cs
index 06d9c7e75..6e4087935 100644
--- a/Extensions/JointureAddOn/DataAccess/FullSqlQueryBase.cs
+++ b/Extensions/JointureAddOn/DataAccess/FullSqlQuery.cs
@@ -1,32 +1,30 @@
+#region
+
using System;
using System.Collections;
+using System.Collections.Generic;
using System.Linq;
-using System.Reflection;
using System.Text;
using BLToolkit.Aspects;
using BLToolkit.Data;
using BLToolkit.Data.DataProvider;
using BLToolkit.Mapping;
-using BLToolkit.TypeBuilder;
+
+#endregion
namespace BLToolkit.DataAccess
{
- public abstract class FullSqlQueryBase : SqlQueryBase
+ public class FullSqlQuery : SqlQuery
{
- private bool _ignoreLazyLoad;
+ private readonly bool _ignoreLazyLoad;
#region Constructors
- public FullSqlQueryBase(DbManager dbManager)
+ public FullSqlQuery(DbManager dbManager, bool ignoreLazyLoad = false, FactoryType factoryType = FactoryType.LazyLoading)
: base(dbManager)
{
- dbManager.MappingSchema = new FullMappingSchema(false);
- }
+ dbManager.MappingSchema = new FullMappingSchema(dbManager, ignoreLazyLoad, dbManager.MappingSchema, factoryType);
- public FullSqlQueryBase(DbManager dbManager, bool ignoreLazyLoad)
- : base(dbManager)
- {
- dbManager.MappingSchema = new FullMappingSchema(ignoreLazyLoad);
_ignoreLazyLoad = ignoreLazyLoad;
}
@@ -34,6 +32,8 @@ public FullSqlQueryBase(DbManager dbManager, bool ignoreLazyLoad)
#region Overrides
+ private readonly Hashtable _actionSqlQueryInfo = new Hashtable();
+
[NoInterception]
protected override SqlQueryInfo CreateSqlText(DbManager db, Type type, string actionName)
{
@@ -47,76 +47,67 @@ protected override SqlQueryInfo CreateSqlText(DbManager db, Type type, string ac
return base.CreateSqlText(db, type, actionName);
}
}
-
- protected override void AppendTableName(StringBuilder sb, DbManager db, Type type)
- {
- var database = GetDatabaseName(type);
- var owner = GetOwnerName(type);
- var name = base.GetTableName(type);
- db.DataProvider.CreateSqlProvider().BuildTableName(sb,
- database == null ? null : db.DataProvider.Convert(database, ConvertType.NameToDatabase).ToString(),
- owner == null ? null : db.DataProvider.Convert(owner, ConvertType.NameToOwner).ToString(),
- name == null ? null : db.DataProvider.Convert(name, ConvertType.NameToQueryTable).ToString());
-
- //TODO Override OracleSqlProvider in order to avoid this mess...
- string alias = GetTableName(type);
- sb.Append(" " + alias);
- sb.AppendLine();
- }
-
- protected override string GetTableName(Type type)
+ [NoInterception]
+ public override SqlQueryInfo GetSqlQueryInfo(DbManager db, Type type, string actionName)
{
- //bool isSet;
- //return MappingSchema.MetadataProvider.GetTableName(type, Extensions, out isSet);
+ var key = type.FullName + "$" + actionName + "$" + db.DataProvider.UniqueName + "$" + GetTableName(type);
+ var query = (SqlQueryInfo) _actionSqlQueryInfo[key];
- return type.Name;
+ if (query == null)
+ {
+ query = CreateSqlText(db, type, actionName);
+ _actionSqlQueryInfo[key] = query;
+ }
+
+ return query;
}
#endregion
- protected SqlQueryInfo CreateSelectAllFullSqlText(DbManager db, Type type)
+ #region Private methods
+
+ private SqlQueryInfo CreateSelectAllFullSqlText(DbManager db, Type type)
{
var sb = new StringBuilder();
var query = new FullSqlQueryInfo();
sb.Append("SELECT\n");
- int index = 0;
- FullObjectMapper mainMapper = ((FullMappingSchema)db.MappingSchema).GetObjectMapper(type, ref index);
- BuildSelectSQL(mainMapper, sb, db);
+ var mainMapper = (FullObjectMapper) db.MappingSchema.GetObjectMapper(type);
+
+ BuildSelectSql(mainMapper, sb, db);
sb.Remove(sb.Length - 2, 1);
sb.Append("FROM\n\t");
- AppendTableName(sb, db, type);
+ FullAppendTableName(sb, db, type);
- AppendJoinTableName(sb, db, type);
+ AppendJoinTableName(mainMapper, sb, db, type);
query.QueryText = sb.ToString();
return query;
}
- protected SqlQueryInfo CreateSelectFullByKeySqlText(DbManager db, Type type)
+ private SqlQueryInfo CreateSelectFullByKeySqlText(DbManager db, Type type)
{
var sb = new StringBuilder();
var query = new FullSqlQueryInfo();
sb.Append("SELECT\n");
- int index = 0;
- FullObjectMapper mainMapper = ((FullMappingSchema)db.MappingSchema).GetObjectMapper(type, ref index);
- BuildSelectSQL(mainMapper, sb, db);
+ var mainMapper = (FullObjectMapper) db.MappingSchema.GetObjectMapper(type);
+ BuildSelectSql(mainMapper, sb, db);
sb.Remove(sb.Length - 2, 1);
sb.Append("FROM\n\t");
- AppendTableName(sb, db, type);
+ FullAppendTableName(sb, db, type);
- AppendJoinTableName(sb, db, type);
+ AppendJoinTableName(mainMapper, sb, db, type);
AddWherePK(db, query, sb, -1, mainMapper);
@@ -125,89 +116,97 @@ protected SqlQueryInfo CreateSelectFullByKeySqlText(DbManager db, Type type)
return query;
}
- private void BuildSelectSQL(IPropertiesMapping mapper, StringBuilder sb, DbManager db)
+ private void FullAppendTableName(StringBuilder sb, DbManager db, Type type)
{
+ var database = GetDatabaseName(type);
+ var owner = GetOwnerName(type);
+ var name = base.GetTableName(type);
+
+ db.DataProvider.CreateSqlProvider().BuildTableName(sb,
+ database == null ? null : db.DataProvider.Convert(database, ConvertType.NameToDatabase).ToString(),
+ owner == null ? null : db.DataProvider.Convert(owner, ConvertType.NameToOwner).ToString(),
+ name == null ? null : db.DataProvider.Convert(name, ConvertType.NameToQueryTable).ToString());
+
+ //TODO Override OracleSqlProvider in order to avoid this mess...
+ string alias = FullGetTableName(type);
+ sb.Append(" " + "T" /*alias*/);
+ sb.AppendLine();
+ }
+
+ private string FullGetTableName(Type type)
+ {
+ //bool isSet;
+ //return MappingSchema.MetadataProvider.GetTableName(type, Extensions, out isSet);
+
+ return type.Name;
+ }
+
+ private void BuildSelectSql(IObjectMapper mapper, StringBuilder sb, DbManager db, string tableName = "T")
+ {
+ int tableNr = 0;
+
foreach (IMapper mapField in mapper.PropertiesMapping)
{
if (mapField is ValueMapper)
- sb.AppendFormat("\t{0}.{1},\n", ((IObjectMapper)mapper).PropertyType.Name,
- db.DataProvider.Convert(((ValueMapper)mapField).ColumnName, ConvertType.NameToQueryField));
+ sb.AppendFormat("\t{0}.{1} {2},\n"
+ , tableName /* (mapper).PropertyType.Name */,
+ db.DataProvider.Convert(((ValueMapper) mapField).ColumnName, ConvertType.NameToQueryField),
+ ((ValueMapper) mapField).ColumnAlias
+ );
else if (mapField is IPropertiesMapping)
{
- var propertiesMapping = (IPropertiesMapping)mapField;
+ var propertiesMapping = (IPropertiesMapping) mapField;
var cel = propertiesMapping.ParentMapping;
while (cel != null)
{
// To avoid recursion dont take in account types already loaded.
- if (((IMapper)cel).PropertyType == mapField.PropertyType)
+ if (((IMapper) cel).PropertyType == mapField.PropertyType)
continue;
cel = cel.ParentMapping;
}
- var objectMapper = (IObjectMapper)mapField;
- if (!objectMapper.IsLazy)
- BuildSelectSQL(propertiesMapping, sb, db);
+
+ var objectMapper = (IObjectMapper) mapField;
+ if (!objectMapper.IsLazy)
+ BuildSelectSql(objectMapper, sb, db, tableName + tableNr.ToString());
+
+ tableNr++;
}
else
throw new NotImplementedException(mapField.GetType() + " is not yet implemented.");
}
}
- private void AppendJoinTableName(StringBuilder sb, DbManager db, Type type)
+ private void AppendJoinTableName(IPropertiesMapping mapper, StringBuilder sb, DbManager db, Type type, string tableName = "T")
{
- string parentName = GetTableName(type);
+ string parentName = FullGetTableName(type);
+ Dictionary valueMappers = mapper.PropertiesMapping.Where(e => e is ValueMapper).Cast().ToDictionary(e => e.PropertyName, e => e);
- foreach (PropertyInfo prop in type.GetProperties())
- {
- bool isCollection = prop.PropertyType.GetInterfaces().ToList().Contains(typeof(IList));
- Type listElementType = null;
- if (isCollection)
- {
- listElementType = FullMappingSchema.GetGenericType(prop.PropertyType);
- }
+ int tableNr = 0;
- if (!_ignoreLazyLoad)
+ foreach (IMapper mapField in mapper.PropertiesMapping)
+ {
+ var objectMapper = mapField as IObjectMapper;
+ if (objectMapper != null)
{
- object[] lazy = prop.GetCustomAttributes(typeof(LazyInstanceAttribute), true);
- if (lazy.Length > 0)
+ if (!_ignoreLazyLoad)
{
- if (((LazyInstanceAttribute)lazy[0]).IsLazy)
- {
+ if (objectMapper.IsLazy)
continue;
- }
}
- }
- object[] attribs = prop.GetCustomAttributes(typeof(AssociationAttribute), true);
- if (attribs.Length > 0)
- {
- var assocAttrib = (AssociationAttribute)attribs[0];
+ string thisKey = objectMapper.Association.ThisKey[0];
- PropertyInfo parentField = type.GetProperty(assocAttrib.ThisKey);
- PropertyInfo childField = prop.PropertyType.GetProperty(assocAttrib.OtherKey);
- if (isCollection)
- {
- childField = listElementType.GetProperty(assocAttrib.OtherKey);
- //FullMappingSchema.GetColumnFromProperty(listElementType, associationAttribute.OtherKey);
- }
-
- object[] parentFieldAttributes = parentField.GetCustomAttributes(typeof(MapFieldAttribute), true);
- string parentDbField = parentFieldAttributes.Length > 0
- ? ((MapFieldAttribute)parentFieldAttributes[0]).MapName
- : assocAttrib.ThisKey;
-
- object[] childFieldAttributes = childField.GetCustomAttributes(typeof(MapFieldAttribute), true);
- string childDbField = childFieldAttributes.Length > 0
- ? ((MapFieldAttribute)childFieldAttributes[0]).MapName
- : assocAttrib.OtherKey;
+ // TITLE
+ string parentDbField = valueMappers.ContainsKey(thisKey) ? valueMappers[thisKey].ColumnName : thisKey;
+ // ARTIST
+ string childDbField = objectMapper.PropertiesMapping.Where(e => e is ValueMapper).Cast().First(
+ e => e.PropertyName == objectMapper.Association.OtherKey[0]).ColumnName;
- string childDatabase = isCollection
- ? GetDatabaseName(listElementType)
- : GetDatabaseName(prop.PropertyType);
-
- string childOwner = isCollection ? base.GetOwnerName(listElementType) : base.GetOwnerName(prop.PropertyType);
- string childName = isCollection ? base.GetTableName(listElementType) : base.GetTableName(prop.PropertyType);
- string childAlias = isCollection ? GetTableName(listElementType) : GetTableName(prop.PropertyType);
+ string childDatabase = GetDatabaseName(mapField.PropertyType);
+ string childOwner = base.GetOwnerName(mapField.PropertyType);
+ string childName = base.GetTableName(mapField.PropertyType);
+ string childAlias = FullGetTableName(mapField.PropertyType);
StringBuilder childFullName = db.DataProvider.CreateSqlProvider().BuildTableName(
new StringBuilder(),
@@ -221,16 +220,18 @@ private void AppendJoinTableName(StringBuilder sb, DbManager db, Type type)
? null
: db.DataProvider.Convert(childName, ConvertType.NameToQueryTable).ToString());
- sb.AppendFormat("\tINNER JOIN {0} {1} ON {2}.{3}={4}.{5}\n",
+ sb.AppendFormat("\tFULL OUTER JOIN {0} {1} ON {2}.{3}={4}.{5}\n",
childFullName,
- childAlias,
- parentName,
+ tableName + tableNr.ToString() /*childAlias*/,
+ tableName /*parentName*/,
parentDbField,
- childAlias,
+ tableName + tableNr.ToString() /*childAlias*/,
childDbField
);
-
- AppendJoinTableName(sb, db, isCollection ? listElementType : prop.PropertyType);
+
+ AppendJoinTableName((IPropertiesMapping)mapField, sb, db, mapField.PropertyType, tableName + tableNr.ToString());
+
+ tableNr++;
}
}
@@ -252,8 +253,7 @@ private void AppendJoinTableName(StringBuilder sb, DbManager db, Type type)
// ARTIST2.ID_ARTIST = 2566
}
- private void AddWherePK(DbManager db, SqlQueryInfo query, StringBuilder sb, int nParameter,
- FullObjectMapper mapper)
+ private void AddWherePK(DbManager db, SqlQueryInfo query, StringBuilder sb, int nParameter, FullObjectMapper mapper)
{
sb.Append("WHERE\n");
@@ -261,17 +261,18 @@ private void AddWherePK(DbManager db, SqlQueryInfo query, StringBuilder sb, int
{
if (mm is ValueMapper && mm.DataReaderIndex == mapper.DataReaderIndex)
{
- var valueMapper = (ValueMapper)mm;
+ var valueMapper = (ValueMapper) mm;
string tableAlias = mapper.PropertyType.Name;
//mm.Name = ID_TRACK
SqlQueryParameterInfo p = query.AddParameter(
db.DataProvider.Convert(valueMapper.ColumnName + "_W", ConvertType.NameToQueryParameter).
- ToString(),
+ ToString(),
valueMapper.ColumnName);
- sb.AppendFormat("\t{0}.{1} = ", tableAlias, db.DataProvider.Convert(p.FieldName, ConvertType.NameToQueryField));
+ sb.AppendFormat("\t{0}.{1} = ", "T" /* tableAlias */,
+ db.DataProvider.Convert(p.FieldName, ConvertType.NameToQueryField));
if (nParameter < 0)
sb.AppendFormat("{0} AND\n", p.ParameterName);
@@ -282,5 +283,7 @@ private void AddWherePK(DbManager db, SqlQueryInfo query, StringBuilder sb, int
sb.Remove(sb.Length - 5, 5);
}
+
+ #endregion
}
}
\ No newline at end of file
diff --git a/Extensions/JointureAddOn/DataAccess/FullSqlQueryT.cs b/Extensions/JointureAddOn/DataAccess/FullSqlQueryT.cs
index 06e3b3720..6f76c3f8c 100644
--- a/Extensions/JointureAddOn/DataAccess/FullSqlQueryT.cs
+++ b/Extensions/JointureAddOn/DataAccess/FullSqlQueryT.cs
@@ -1,585 +1,164 @@
using System;
using System.Collections;
+using System.Collections.Generic;
using System.Linq;
-using System.Reflection;
-using System.Text;
-using BLToolkit.Aspects;
using BLToolkit.Data;
-using BLToolkit.Data.DataProvider;
-using BLToolkit.Mapping;
-using BLToolkit.TypeBuilder;
namespace BLToolkit.DataAccess
{
- public class FullSqlQuery : SqlQuery
+ public class FullSqlQueryT : FullSqlQuery, ISqlQueryT
{
- private bool _ignoreLazyLoad;
-
#region Constructors
- public FullSqlQuery(DbManager dbManager)
- : base(dbManager)
- {
- dbManager.MappingSchema = new FullMappingSchema(false);
- }
-
- public FullSqlQuery(DbManager dbManager, bool ignoreLazyLoad)
- : base(dbManager)
+ public FullSqlQueryT(DbManager dbManager, bool ignoreLazyLoad = false)
+ : base(dbManager, ignoreLazyLoad)
{
- dbManager.MappingSchema = new FullMappingSchema(ignoreLazyLoad);
- _ignoreLazyLoad = ignoreLazyLoad;
}
#endregion
- #region Overrides
+ #region Implementation of ISqlQueryT
- [NoInterception]
- protected override SqlQueryInfo CreateSqlText(DbManager db, Type type, string actionName)
+ public T SelectByKey(DbManager db, params object[] keys)
{
- switch (actionName)
- {
- case "SelectByKey":
- return CreateSelectFullByKeySqlText(db, type);
- case "SelectAll":
- return CreateSelectAllFullSqlText(db, type);
- default:
- return base.CreateSqlText(db, type, actionName);
- }
+ return (T) base.SelectByKey(db, typeof(T), keys);
}
- #endregion
-
- #region Protected
-
- protected SqlQueryInfo CreateSelectAllFullSqlText(DbManager db, Type type)
+ public T SelectByKey(params object[] keys)
{
- var sb = new StringBuilder();
- var query = new FullSqlQueryInfo();
-
- sb.Append("SELECT\n");
-
- int index = 0;
- FullObjectMapper mainMapper = ((FullMappingSchema) db.MappingSchema).GetObjectMapper(type, ref index);
- BuildSelectSQL(mainMapper, sb, db);
-
- sb.Remove(sb.Length - 2, 1);
-
- sb.Append("FROM\n\t");
-
- FullAppendTableName(sb, db, type);
-
- AppendJoinTableName(sb, db, type);
-
- query.QueryText = sb.ToString();
-
- return query;
+ return (T)base.SelectByKey(typeof(T), keys);
}
- protected SqlQueryInfo CreateSelectFullByKeySqlText(DbManager db, Type type)
+ public List SelectAll(DbManager db)
{
- var sb = new StringBuilder();
- var query = new FullSqlQueryInfo();
-
- sb.Append("SELECT\n");
-
- int index = 0;
- FullObjectMapper mainMapper = ((FullMappingSchema) db.MappingSchema).GetObjectMapper(type, ref index);
- BuildSelectSQL(mainMapper, sb, db);
-
- sb.Remove(sb.Length - 2, 1);
-
- sb.Append("FROM\n\t");
-
- FullAppendTableName(sb, db, type);
-
- AppendJoinTableName(sb, db, type);
-
- AddWherePK(db, query, sb, -1, mainMapper);
-
- query.QueryText = sb.ToString();
-
- return query;
+ return base.SelectAll(db, typeof(T)).Cast().ToList();
}
- protected void FullAppendTableName(StringBuilder sb, DbManager db, Type type)
+ public TL SelectAll(DbManager db, TL list) where TL : IList
{
- var database = GetDatabaseName(type);
- var owner = GetOwnerName(type);
- var name = base.GetTableName(type);
-
- db.DataProvider.CreateSqlProvider().BuildTableName(sb,
- database == null
- ? null
- : db.DataProvider.Convert(database,
- ConvertType.NameToDatabase)
- .ToString(),
- owner == null
- ? null
- : db.DataProvider.Convert(owner,
- ConvertType.NameToOwner).
- ToString(),
- name == null
- ? null
- : db.DataProvider.Convert(name,
- ConvertType.
- NameToQueryTable).
- ToString());
-
- //TODO Override OracleSqlProvider in order to avoid this mess...
- string alias = FullGetTableName(type);
- sb.Append(" " + alias);
- sb.AppendLine();
+ return (TL)base.SelectAll(db, (IList)list, typeof(T));
}
- protected string FullGetTableName(Type type)
+ public TL SelectAll(DbManager db) where TL : IList, new()
{
- //bool isSet;
- //return MappingSchema.MetadataProvider.GetTableName(type, Extensions, out isSet);
-
- return type.Name;
+ return SelectAll(db, new TL());
}
- #endregion
-
- private void BuildSelectSQL(IPropertiesMapping mapper, StringBuilder sb, DbManager db)
+ public List SelectAll()
{
- foreach (IMapper mapField in mapper.PropertiesMapping)
- {
- if (mapField is ValueMapper)
- sb.AppendFormat("\t{0}.{1},\n"
- , ((IObjectMapper)mapper).PropertyType.Name
- ,
- db.DataProvider.Convert(((ValueMapper)mapField).ColumnName,
- ConvertType.NameToQueryField)
- );
- else if (mapField is IPropertiesMapping)
- {
- var propertiesMapping = (IPropertiesMapping)mapField;
- var cel = propertiesMapping.ParentMapping;
- while (cel != null)
- {
- // To avoid recursion dont take in account types already loaded.
- if (((IMapper)cel).PropertyType == mapField.PropertyType)
- continue;
- cel = cel.ParentMapping;
- }
- var objectMapper = (IObjectMapper)mapField;
- if (!objectMapper.IsLazy)
- BuildSelectSQL(propertiesMapping, sb, db);
- }
- else
- throw new NotImplementedException(mapField.GetType() + " is not yet implemented.");
- }
+ return base.SelectAll(typeof(T)).Cast().ToList();
}
- private void AppendJoinTableName(StringBuilder sb, DbManager db, Type type)
+ public TL SelectAll(TL list) where TL : IList
{
- string parentName = FullGetTableName(type);
-
- foreach (PropertyInfo prop in type.GetProperties())
- {
- bool isCollection = prop.PropertyType.GetInterfaces().ToList().Contains(typeof(IList));
- Type listElementType = null;
- if (isCollection)
- {
- listElementType = FullMappingSchema.GetGenericType(prop.PropertyType);
- }
-
- if (!_ignoreLazyLoad)
- {
- object[] lazy = prop.GetCustomAttributes(typeof (LazyInstanceAttribute), true);
- if (lazy.Length > 0)
- {
- if (((LazyInstanceAttribute) lazy[0]).IsLazy)
- {
- continue;
- }
- }
- }
-
- object[] attribs = prop.GetCustomAttributes(typeof(AssociationAttribute), true);
- if (attribs.Length > 0)
- {
- var associationAttribute = (AssociationAttribute)attribs[0];
-
- PropertyInfo parentField = type.GetProperty(associationAttribute.ThisKey);
- PropertyInfo childField = prop.PropertyType.GetProperty(associationAttribute.OtherKey);
- if (isCollection)
- {
- childField = listElementType.GetProperty(associationAttribute.OtherKey);
- //FullMappingSchema.GetColumnFromProperty(listElementType, associationAttribute.OtherKey);
- }
-
- object[] parentFieldAttributes = parentField.GetCustomAttributes(typeof(MapFieldAttribute), true);
- string parentDbField = parentFieldAttributes.Length > 0
- ? ((MapFieldAttribute)parentFieldAttributes[0]).MapName
- : associationAttribute.ThisKey;
-
- object[] childFieldAttributes = childField.GetCustomAttributes(typeof(MapFieldAttribute), true);
- string childDbField = childFieldAttributes.Length > 0
- ? ((MapFieldAttribute)childFieldAttributes[0]).MapName
- : associationAttribute.OtherKey;
-
-
- string childDatabase = isCollection
- ? GetDatabaseName(listElementType)
- : GetDatabaseName(prop.PropertyType);
-
- string childOwner = isCollection ? base.GetOwnerName(listElementType) : base.GetOwnerName(prop.PropertyType);
- string childName = isCollection ? base.GetTableName(listElementType) : base.GetTableName(prop.PropertyType);
- string childAlias = isCollection ? FullGetTableName(listElementType) : FullGetTableName(prop.PropertyType);
-
- StringBuilder childFullName = db.DataProvider.CreateSqlProvider().BuildTableName(
- new StringBuilder(),
- childDatabase == null
- ? null
- : db.DataProvider.Convert(childDatabase, ConvertType.NameToDatabase).ToString(),
- childOwner == null
- ? null
- : db.DataProvider.Convert(childOwner, ConvertType.NameToOwner).ToString(),
- childName == null
- ? null
- : db.DataProvider.Convert(childName, ConvertType.NameToQueryTable).ToString());
-
- sb.AppendFormat("\tINNER JOIN {0} {1} ON {2}.{3}={4}.{5}\n",
- childFullName,
- childAlias,
- parentName,
- parentDbField,
- childAlias,
- childDbField
- );
-
- AppendJoinTableName(sb, db, isCollection ? listElementType : prop.PropertyType);
- }
- }
-
- sb.AppendLine();
-
- //SELECT
- // ARTIST2.ID_ARTIST,
- // ARTIST2.ARTIST,
- // TRACK.ID_TRACK,
- // TRACK.TRACK,
- // TRACK.ID_ARTIST,
- // ARTIST.ID_ARTIST,
- // ARTIST.ARTIST
- //FROM
- // PITAFR01.ARTIST ARTIST2
- // INNER JOIN PITAFR01.TRACK TRACK ON ARTIST2.ID_ARTIST=TRACK.ID_ARTIST
- // INNER JOIN PITAFR01.ARTIST ARTIST ON TRACK.ID_ARTIST=ARTIST.ID_ARTIST
- //WHERE
- // ARTIST2.ID_ARTIST = 2566
+ return SelectAll(DbManager, list);
}
- private void AddWherePK(DbManager db, SqlQueryInfo query, StringBuilder sb, int nParameter,
- FullObjectMapper mapper)
+ public TL SelectAll() where TL : IList, new()
{
- sb.Append("WHERE\n");
-
- foreach (IMapper mm in mapper.PropertiesMapping)
- {
- if (mm is ValueMapper && mm.DataReaderIndex == mapper.DataReaderIndex)
- {
- var valueMapper = (ValueMapper)mm;
-
- string tableAlias = mapper.PropertyType.Name;
-
- //mm.Name = ID_TRACK
- SqlQueryParameterInfo p = query.AddParameter(
- db.DataProvider.Convert(valueMapper.ColumnName + "_W", ConvertType.NameToQueryParameter).
- ToString(),
- valueMapper.ColumnName);
-
- sb.AppendFormat("\t{0}.{1} = ", tableAlias,
- db.DataProvider.Convert(p.FieldName, ConvertType.NameToQueryField));
-
- if (nParameter < 0)
- sb.AppendFormat("{0} AND\n", p.ParameterName);
- else
- sb.AppendFormat("{{{0}}} AND\n", nParameter++);
- }
- }
-
- sb.Remove(sb.Length - 5, 5);
+ return SelectAll(DbManager);
}
- }
-
- public class FullSqlQueryT : SqlQuery
- {
- private bool _ignoreLazyLoad;
-
- #region Constructors
- public FullSqlQueryT(DbManager dbManager)
- : base(dbManager)
+ public int Insert(DbManager db, T obj)
{
- dbManager.MappingSchema = new FullMappingSchema();
+ return base.Insert(db, obj);
}
- public FullSqlQueryT(DbManager dbManager, bool ignoreLazyLoad)
- : base(dbManager)
+ public int Insert(T obj)
{
- dbManager.MappingSchema = new FullMappingSchema(ignoreLazyLoad);
- _ignoreLazyLoad = ignoreLazyLoad;
+ return base.Insert(obj);
}
- #endregion
-
- #region Overrides
-
- [NoInterception]
- protected override SqlQueryInfo CreateSqlText(DbManager db, Type type, string actionName)
+ public int Insert(DbManager db, int maxBatchSize, IEnumerable list)
{
- switch (actionName)
- {
- case "SelectByKey":
- return CreateSelectFullByKeySqlText(db, type);
- case "SelectAll":
- return CreateSelectAllFullSqlText(db, type);
- default:
- return base.CreateSqlText(db, type, actionName);
- }
+ throw new NotImplementedException();
}
- #endregion
-
- #region Protected
-
- protected SqlQueryInfo CreateSelectAllFullSqlText(DbManager db, Type type)
+ public int Insert(int maxBatchSize, IEnumerable list)
{
- var sb = new StringBuilder();
- var query = new FullSqlQueryInfo();
-
- sb.Append("SELECT\n");
-
- int index = 0;
- FullObjectMapper mainMapper = ((FullMappingSchema) db.MappingSchema).GetObjectMapper(type, ref index);
- BuildSelectSQL(mainMapper, sb, db);
-
- sb.Remove(sb.Length - 2, 1);
-
- sb.Append("FROM\n\t");
-
- FullAppendTableName(sb, db, type);
-
- AppendJoinTableName(sb, db, type);
-
- query.QueryText = sb.ToString();
-
- return query;
+ return Insert(DbManager, maxBatchSize, list);
}
- protected SqlQueryInfo CreateSelectFullByKeySqlText(DbManager db, Type type)
+ public int Insert(DbManager db, IEnumerable list)
{
- var sb = new StringBuilder();
- var query = new FullSqlQueryInfo();
-
- sb.Append("SELECT\n");
-
- int index = 0;
- FullObjectMapper mainMapper = ((FullMappingSchema)db.MappingSchema).GetObjectMapper(type, ref index);
- BuildSelectSQL(mainMapper, sb, db);
-
- sb.Remove(sb.Length - 2, 1);
-
- sb.Append("FROM\n\t");
-
- FullAppendTableName(sb, db, type);
-
- AppendJoinTableName(sb, db, type);
-
- AddWherePK(db, query, sb, -1, mainMapper);
+ return Insert(db, int.MaxValue, list);
+ }
- query.QueryText = sb.ToString();
+ public int Insert(IEnumerable list)
+ {
+ return Insert(DbManager, list);
+ }
- return query;
+ public int Update(DbManager db, T obj)
+ {
+ return base.Update(db, obj);
}
- protected void FullAppendTableName(StringBuilder sb, DbManager db, Type type)
+ public int Update(T obj)
{
- var database = GetDatabaseName(type);
- var owner = GetOwnerName(type);
- var name = base.GetTableName(type);
-
- db.DataProvider.CreateSqlProvider().BuildTableName(sb,
- database == null ? null : db.DataProvider.Convert(database, ConvertType.NameToDatabase).ToString(),
- owner == null ? null : db.DataProvider.Convert(owner, ConvertType.NameToOwner).ToString(),
- name == null ? null : db.DataProvider.Convert(name, ConvertType.NameToQueryTable).ToString());
-
- //TODO Override OracleSqlProvider in order to avoid this mess...
- string alias = FullGetTableName(type);
- sb.Append(" " + alias);
- sb.AppendLine();
+ return base.Update(obj);
}
- protected string FullGetTableName(Type type)
+ public int Update(DbManager db, int maxBatchSize, IEnumerable list)
{
- //bool isSet;
- //return MappingSchema.MetadataProvider.GetTableName(type, Extensions, out isSet);
+ throw new NotImplementedException();
+ }
- return type.Name;
+ public int Update(int maxBatchSize, IEnumerable list)
+ {
+ return Update(DbManager, maxBatchSize, list);
}
- #endregion
+ public int Update(DbManager db, IEnumerable list)
+ {
+ return Update(db, int.MaxValue, list);
+ }
- private void BuildSelectSQL(IPropertiesMapping mapper, StringBuilder sb, DbManager db)
+ public int Update(IEnumerable list)
{
- foreach (IMapper mapField in mapper.PropertiesMapping)
- {
- if (mapField is ValueMapper)
- sb.AppendFormat("\t{0}.{1},\n", ((IObjectMapper)mapper).PropertyType.Name,
- db.DataProvider.Convert(((ValueMapper)mapField).ColumnName, ConvertType.NameToQueryField));
- else if (mapField is IPropertiesMapping)
- {
- var propertiesMapping = (IPropertiesMapping)mapField;
- var cel = propertiesMapping.ParentMapping;
- while (cel != null)
- {
- // To avoid recursion dont take in account types already loaded.
- if (((IMapper)cel).PropertyType == mapField.PropertyType)
- continue;
- cel = cel.ParentMapping;
- }
- var objectMapper = (IObjectMapper)mapField;
- if (!objectMapper.IsLazy)
- BuildSelectSQL(propertiesMapping, sb, db);
- }
- else
- throw new NotImplementedException(mapField.GetType() + " is not yet implemented.");
- }
+ return Update(DbManager, list);
}
- private void AppendJoinTableName(StringBuilder sb, DbManager db, Type type)
+ public int DeleteByKey(DbManager db, params object[] key)
{
- string parentName = FullGetTableName(type);
-
- foreach (PropertyInfo prop in type.GetProperties())
- {
- bool isCollection = prop.PropertyType.GetInterfaces().ToList().Contains(typeof (IList));
- Type listElementType = null;
- if (isCollection)
- {
- listElementType = FullMappingSchema.GetGenericType(prop.PropertyType);
- }
-
- if (!_ignoreLazyLoad)
- {
- object[] lazy = prop.GetCustomAttributes(typeof (LazyInstanceAttribute), true);
- if (lazy.Length > 0)
- {
- if (((LazyInstanceAttribute) lazy[0]).IsLazy)
- {
- continue;
- }
- }
- }
-
- object[] attribs = prop.GetCustomAttributes(typeof (AssociationAttribute), true);
- if (attribs.Length > 0)
- {
- var assocAttrib = (AssociationAttribute) attribs[0];
-
- PropertyInfo parentField = type.GetProperty(assocAttrib.ThisKey);
- PropertyInfo childField = prop.PropertyType.GetProperty(assocAttrib.OtherKey);
- if (isCollection)
- {
- childField = listElementType.GetProperty(assocAttrib.OtherKey);
- //FullMappingSchema.GetColumnFromProperty(listElementType, associationAttribute.OtherKey);
- }
-
- object[] parentFieldAttributes = parentField.GetCustomAttributes(typeof (MapFieldAttribute), true);
- string parentDbField = parentFieldAttributes.Length > 0
- ? ((MapFieldAttribute) parentFieldAttributes[0]).MapName
- : assocAttrib.ThisKey;
-
- object[] childFieldAttributes = childField.GetCustomAttributes(typeof (MapFieldAttribute), true);
- string childDbField = childFieldAttributes.Length > 0
- ? ((MapFieldAttribute) childFieldAttributes[0]).MapName
- : assocAttrib.OtherKey;
-
-
- string childDatabase = isCollection
- ? GetDatabaseName(listElementType)
- : GetDatabaseName(prop.PropertyType);
-
- string childOwner = isCollection ? base.GetOwnerName(listElementType) : base.GetOwnerName(prop.PropertyType);
- string childName = isCollection ? base.GetTableName(listElementType) : base.GetTableName(prop.PropertyType);
- string childAlias = isCollection ? FullGetTableName(listElementType) : FullGetTableName(prop.PropertyType);
-
- StringBuilder childFullName = db.DataProvider.CreateSqlProvider().BuildTableName(
- new StringBuilder(),
- childDatabase == null
- ? null
- : db.DataProvider.Convert(childDatabase, ConvertType.NameToDatabase).ToString(),
- childOwner == null
- ? null
- : db.DataProvider.Convert(childOwner, ConvertType.NameToOwner).ToString(),
- childName == null
- ? null
- : db.DataProvider.Convert(childName, ConvertType.NameToQueryTable).ToString());
-
- sb.AppendFormat("\tINNER JOIN {0} {1} ON {2}.{3}={4}.{5}\n",
- childFullName,
- childAlias,
- parentName,
- parentDbField,
- childAlias,
- childDbField
- );
-
- AppendJoinTableName(sb, db, isCollection ? listElementType : prop.PropertyType);
- }
- }
-
- sb.AppendLine();
-
- //SELECT
- // ARTIST2.ID_ARTIST,
- // ARTIST2.ARTIST,
- // TRACK.ID_TRACK,
- // TRACK.TRACK,
- // TRACK.ID_ARTIST,
- // ARTIST.ID_ARTIST,
- // ARTIST.ARTIST
- //FROM
- // PITAFR01.ARTIST ARTIST2
- // INNER JOIN PITAFR01.TRACK TRACK ON ARTIST2.ID_ARTIST=TRACK.ID_ARTIST
- // INNER JOIN PITAFR01.ARTIST ARTIST ON TRACK.ID_ARTIST=ARTIST.ID_ARTIST
- //WHERE
- // ARTIST2.ID_ARTIST = 2566
+ return base.DeleteByKey(db, typeof(T), key);
}
- private void AddWherePK(DbManager db, SqlQueryInfo query, StringBuilder sb, int nParameter,
- FullObjectMapper mapper)
+ public int DeleteByKey(params object[] key)
{
- sb.Append("WHERE\n");
+ return base.DeleteByKey(typeof(T), key);
+ }
- foreach (IMapper mm in mapper.PropertiesMapping)
- {
- if (mm is ValueMapper && mm.DataReaderIndex == mapper.DataReaderIndex)
- {
- var valueMapper = (ValueMapper)mm;
+ public int Delete(DbManager db, T obj)
+ {
+ return base.Delete(db, obj);
+ }
- string tableAlias = mapper.PropertyType.Name;
+ public int Delete(T obj)
+ {
+ return base.Delete(obj);
+ }
- //mm.Name = ID_TRACK
- SqlQueryParameterInfo p = query.AddParameter(
- db.DataProvider.Convert(valueMapper.ColumnName + "_W", ConvertType.NameToQueryParameter).
- ToString(),
- valueMapper.ColumnName);
+ public int Delete(DbManager db, int maxBatchSize, IEnumerable list)
+ {
+ throw new NotImplementedException();
+ }
- sb.AppendFormat("\t{0}.{1} = ", tableAlias, db.DataProvider.Convert(p.FieldName, ConvertType.NameToQueryField));
+ public int Delete(int maxBatchSize, IEnumerable list)
+ {
+ return Delete(DbManager, maxBatchSize, list);
+ }
- if (nParameter < 0)
- sb.AppendFormat("{0} AND\n", p.ParameterName);
- else
- sb.AppendFormat("{{{0}}} AND\n", nParameter++);
- }
- }
+ public int Delete(DbManager db, IEnumerable list)
+ {
+ return Delete(int.MaxValue, list);
+ }
- sb.Remove(sb.Length - 5, 5);
+ public int Delete(IEnumerable list)
+ {
+ return Delete(DbManager, list);
}
+
+ #endregion
}
}
\ No newline at end of file
diff --git a/Extensions/JointureAddOn/Mapping/CollectionFullObjectMapper.cs b/Extensions/JointureAddOn/Mapping/CollectionFullObjectMapper.cs
new file mode 100644
index 000000000..c13b27b1b
--- /dev/null
+++ b/Extensions/JointureAddOn/Mapping/CollectionFullObjectMapper.cs
@@ -0,0 +1,91 @@
+using System;
+using System.Collections.Generic;
+using BLToolkit.Data;
+using BLToolkit.DataAccess;
+using BLToolkit.Emit;
+
+namespace BLToolkit.Mapping
+{
+ public class CollectionFullObjectMapper : TableDescription, IObjectMapper
+ {
+ private readonly DbManager _db;
+ private readonly FactoryType _factoryType;
+
+ public CollectionFullObjectMapper(DbManager db, FactoryType factoryType)
+ {
+ _db = db;
+ _factoryType = factoryType;
+
+ PropertiesMapping = new List();
+ PrimaryKeyValueGetters = new List();
+ PrimaryKeyNames = new List();
+ }
+
+ public Type PropertyCollectionType { get; set; }
+
+ #region IMapper Members
+
+ public int DataReaderIndex { get; set; }
+ public SetHandler Setter { get; set; }
+ public Type PropertyType { get; set; }
+ public string PropertyName { get; set; }
+
+ #endregion
+
+ #region IObjectMapper
+
+ public bool IsLazy { get; set; }
+ public bool ContainsLazyChild { get; set; }
+ public GetHandler Getter { get; set; }
+
+ public List PrimaryKeyValueGetters { get; set; }
+ public Association Association { get; set; }
+
+ public List PrimaryKeyNames { get; set; }
+
+ #endregion
+
+ #region ILazyMapper
+
+ public GetHandler ParentKeyGetter { get; set; }
+
+ #endregion
+
+ public object CreateInstance()
+ {
+ object result = ContainsLazyChild
+ ? (_factoryType == FactoryType.LazyLoading
+ ? TypeFactory.LazyLoading.Create(PropertyType, this, LoadLazy)
+ : TypeFactory.LazyLoadingWithDataBinding.Create(PropertyType, this, LoadLazy))
+ : FunctionFactory.Remote.CreateInstance(PropertyType);
+
+ return result;
+ }
+
+ private object LoadLazy(IMapper mapper, object proxy, Type parentType)
+ {
+ var lazyMapper = (ILazyMapper) mapper;
+ object key = lazyMapper.ParentKeyGetter(proxy);
+
+ var fullSqlQuery = new FullSqlQuery(_db, true);
+ object parentLoadFull = fullSqlQuery.SelectByKey(parentType, key);
+ if (parentLoadFull == null)
+ {
+ object value = Activator.CreateInstance(mapper is CollectionFullObjectMapper
+ ? (mapper as CollectionFullObjectMapper).PropertyCollectionType
+ : mapper.PropertyType);
+ return value;
+ }
+
+ var objectMapper = (IObjectMapper) mapper;
+ return objectMapper.Getter(parentLoadFull);
+ }
+
+ #region IPropertiesMapping Members
+
+ public List PropertiesMapping { get; private set; }
+ public IPropertiesMapping ParentMapping { get; set; }
+
+ #endregion
+ }
+}
\ No newline at end of file
diff --git a/Extensions/JointureAddOn/Mapping/DataBindingMappingSchema.cs b/Extensions/JointureAddOn/Mapping/DataBindingMappingSchema.cs
new file mode 100644
index 000000000..95fca5f8d
--- /dev/null
+++ b/Extensions/JointureAddOn/Mapping/DataBindingMappingSchema.cs
@@ -0,0 +1,33 @@
+using System;
+using BLToolkit.Data;
+
+namespace BLToolkit.Mapping
+{
+ public class DataBindingMappingSchema : MappingSchema
+ {
+ protected override ObjectMapper CreateObjectMapperInstance(Type type)
+ {
+ var res = new DataBindingObjectMapper(type);
+
+ return res;
+ }
+ }
+
+ public class FullDataBindingMappingSchema : FullMappingSchema
+ {
+ private readonly DbManager _db;
+ private readonly bool _ignoreLazyLoad;
+
+ public FullDataBindingMappingSchema(DbManager db, bool ignoreLazyLoad = false, MappingSchema parentMappingSchema = null)
+ : base(db, ignoreLazyLoad, parentMappingSchema, FactoryType.LazyLoadingWithDataBinding)
+ {
+ _db = db;
+ _ignoreLazyLoad = ignoreLazyLoad;
+ }
+
+ protected override ObjectMapper CreateObjectMapperInstance(Type type)
+ {
+ return new FullDataBindingObjectMapper(_db, _ignoreLazyLoad);
+ }
+ }
+}
\ No newline at end of file
diff --git a/Extensions/JointureAddOn/Mapping/DataBindingObjectMapper.cs b/Extensions/JointureAddOn/Mapping/DataBindingObjectMapper.cs
new file mode 100644
index 000000000..96963a481
--- /dev/null
+++ b/Extensions/JointureAddOn/Mapping/DataBindingObjectMapper.cs
@@ -0,0 +1,46 @@
+#region
+
+using System;
+using BLToolkit.Data;
+using BLToolkit.Reflection;
+
+#endregion
+
+namespace BLToolkit.Mapping
+{
+ public class DataBindingObjectMapper : ObjectMapper
+ {
+ private readonly Type _type;
+
+ public DataBindingObjectMapper(Type type)
+ {
+ _type = type;
+ }
+
+ public override object CreateInstance()
+ {
+ return TypeFactory.DataBindingFactory.Create(_type);
+ }
+
+ public override object CreateInstance(InitContext context)
+ {
+ return CreateInstance();
+ }
+ }
+
+ public class FullDataBindingObjectMapper : FullObjectMapper
+ {
+ public FullDataBindingObjectMapper(DbManager db, bool ignoreLazyLoading) : base(db, ignoreLazyLoading, FactoryType.LazyLoadingWithDataBinding)
+ {
+ }
+
+ public override object CreateInstance()
+ {
+ object result = ContainsLazyChild
+ ? TypeFactory.LazyLoadingWithDataBinding.Create(PropertyType, this, LoadLazy)
+ : base.CreateInstance();
+
+ return result;
+ }
+ }
+}
\ No newline at end of file
diff --git a/Extensions/JointureAddOn/Mapping/FactoryType.cs b/Extensions/JointureAddOn/Mapping/FactoryType.cs
new file mode 100644
index 000000000..ced1c02a3
--- /dev/null
+++ b/Extensions/JointureAddOn/Mapping/FactoryType.cs
@@ -0,0 +1,8 @@
+namespace BLToolkit.Mapping
+{
+ public enum FactoryType
+ {
+ LazyLoading,
+ LazyLoadingWithDataBinding,
+ }
+}
\ No newline at end of file
diff --git a/Extensions/JointureAddOn/Mapping/FullMappingSchema.cs b/Extensions/JointureAddOn/Mapping/FullMappingSchema.cs
index 017e2b37a..86c372eb3 100644
--- a/Extensions/JointureAddOn/Mapping/FullMappingSchema.cs
+++ b/Extensions/JointureAddOn/Mapping/FullMappingSchema.cs
@@ -1,474 +1,306 @@
-/**********************************************************************************************
- * To make a new version of the mapping, I have to set virtual the method
- * MapDataReaderToObject (l.2177 in MappingSchema.cs).
- *
- *
- * *********************************************/
+#region
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Linq;
-using System.Reflection;
using BLToolkit.Data;
-using BLToolkit.DataAccess;
-using BLToolkit.Emit;
-using BLToolkit.Reflection;
-using BLToolkit.TypeBuilder;
-using Castle.DynamicProxy;
+using BLToolkit.Reflection.Extension;
+
+#endregion
namespace BLToolkit.Mapping
{
public class FullMappingSchema : MappingSchema
{
- #region Private members
-
- private static readonly object _setterHandlersLock = new object();
-
- private static readonly Dictionary> _settersHandlers =
- new Dictionary>();
-
- private static readonly Dictionary> _gettersHandlers =
- new Dictionary>();
-
- private readonly ProxyGenerator Proxy = new ProxyGenerator();
+ #region Fields
- private readonly Dictionary _mappers = new Dictionary();
+ private readonly DbManager _db;
+ private readonly bool _ignoreLazyLoad;
+ private DataTable _schema;
+ private List _schemaColumns;
+ private readonly MappingSchema _parentMappingSchema;
+ private readonly FactoryType _factoryType;
- private bool _ignoreLazyLoad;
+ private ExtensionList _extensions;
#endregion
- public FullMappingSchema(bool ignoreLazyLoad)
+ public FullMappingSchema(DbManager db, bool ignoreLazyLoad = false, MappingSchema parentMappingSchema = null,
+ FactoryType factoryType = FactoryType.LazyLoading)
{
+ _db = db;
+ _parentMappingSchema = parentMappingSchema;
+ _factoryType = factoryType;
_ignoreLazyLoad = ignoreLazyLoad;
}
- public FullMappingSchema()
- : this(false)
+ #region Overrides
+
+ public override ExtensionList Extensions
{
+ get
+ {
+ if (_parentMappingSchema != null)
+ return this._parentMappingSchema.Extensions;
+ return _extensions;
+ }
+ set
+ {
+ if (_parentMappingSchema != null)
+ this._parentMappingSchema.Extensions = value;
+ _extensions = value;
+ }
}
- #region Overrides
+ protected override ObjectMapper CreateObjectMapperInstance(Type type)
+ {
+ return new FullObjectMapper(_db, _ignoreLazyLoad,_factoryType);
+ }
- public override object MapDataReaderToObject(
- IDataReader dataReader,
- Type destObjectType,
- params object[] parameters)
+ protected override void MapInternal(Reflection.InitContext initContext, IMapDataSource source, object sourceObject, IMapDataDestination dest, object destObject, params object[] parameters)
{
- // Get mapping for the type
- if (destObjectType == null) throw new ArgumentNullException("type");
+ FullObjectMapper mapper = (FullObjectMapper)initContext.ObjectMapper;
+ IDataReader dataReader = (IDataReader)sourceObject;
+
+ //int[] index = GetIndex(source, dest);
+ //IValueMapper[] mappers = GetValueMappers(source, dest, index);
+
+ //foreach (var valueMapper in mappers)
+ //{
+
+ //}
- if (dataReader.FieldCount == 0)
- return null;
+ InitSchema(dataReader);
- int index = 0;
- FullObjectMapper mapper = GetObjectMapper(destObjectType, ref index);
if (mapper.ColParent)
{
- object result = FillObject(mapper, dataReader);
+ FillObject(mapper, dataReader, destObject);
while (dataReader.Read())
{
- result = FillObject(result, mapper, dataReader);
+ destObject = FillObject(destObject, mapper, dataReader);
}
-
- return result;
}
else
- return FillObject(mapper, dataReader);
+ FillObject(mapper, dataReader, destObject);
}
-
- public override IList MapDataReaderToList(
+ public override IList MapDataReaderToList(
IDataReader reader,
- IList list,
+ IList list,
+ Type destObjectType,
params object[] parameters)
{
- FullObjectMapper mapper;
- if (_mappers.ContainsKey(typeof (T)))
- {
- mapper = _mappers[typeof (T)];
- }
- else
- {
- int index = 0;
- mapper = GetObjectMapper(typeof (T), ref index);
- _mappers[typeof (T)] = mapper;
- }
-
- while (reader.Read())
- {
- var result = FillObject(mapper, reader);
- list.Add(result);
- }
-
- return list;
+ return internalMapDataReaderToList(reader, list, destObjectType, parameters);
}
#endregion
- private T FillObject(FullObjectMapper mapper, IDataReader datareader)
- {
- T result = mapper.ContainsLazyChild
- ? (T) Proxy.CreateClassProxy(typeof (T), new LazyValueLoadInterceptor(mapper, LoadLazy))
- : FunctionFactory.Remote.CreateInstance();
+ #region Private methods
+ private object FillObject(object result, IObjectMapper mapper, IDataReader datareader)
+ {
foreach (IMapper map in mapper.PropertiesMapping)
{
if (map is IObjectMapper && (map as IObjectMapper).IsLazy)
continue;
-
- if (!(map.DataReaderIndex < datareader.FieldCount))
- continue;
-
- if (!datareader.IsDBNull(map.DataReaderIndex))
+
+ if (map is CollectionFullObjectMapper)
{
- if (map is ValueMapper)
- {
- object value = datareader.GetValue(map.DataReaderIndex);
- map.Setter(result, value);
- }
- else if (map is FullObjectMapper)
+ var collectionFullObjectMapper = (CollectionFullObjectMapper) map;
+ object listInstance = collectionFullObjectMapper.Getter(result);
+ if (listInstance == null)
{
- object fillObject = FillObject((FullObjectMapper) map, datareader);
- map.Setter(result, fillObject);
+ listInstance = Activator.CreateInstance((map as CollectionFullObjectMapper).PropertyCollectionType);
+ map.Setter(result, listInstance);
}
- if (map is CollectionFullObjectMapper)
- {
- object collectionInstance =
- Activator.CreateInstance((map as CollectionFullObjectMapper).PropertyCollectionType);
- map.Setter(result, collectionInstance);
- object fillObject = FillObject((CollectionFullObjectMapper) map, datareader);
- ((IList) collectionInstance).Add(fillObject);
- }
- }
- }
+ var list = (IList) listInstance;
+ object fillObject = ((CollectionFullObjectMapper)map).CreateInstance();
+ FillObject((CollectionFullObjectMapper) map, datareader, fillObject);
- return result;
- }
+ if (list.Count > 0)
+ {
+ var curMapper = (FullObjectMapper)GetObjectMapper(fillObject.GetType());
- private object LoadLazy(IMapper mapper, object proxy, Type parentType)
- {
- var lazyMapper = (ILazyMapper)mapper;
- object key = lazyMapper.ParentKeyGetter(proxy);
-
- using (var db = new DbManager())
- {
- var fullSqlQuery = new FullSqlQuery(db, true);
- object parentLoadFull = fullSqlQuery.SelectByKey(parentType, key);
- if (parentLoadFull == null)
- {
- object value = Activator.CreateInstance(mapper is CollectionFullObjectMapper
- ? (mapper as CollectionFullObjectMapper).PropertyCollectionType
- : mapper.PropertyType);
- return value;
- }
+ object lastElement = list[list.Count - 1];
- var objectMapper = (IObjectMapper) mapper;
- return objectMapper.Getter(parentLoadFull);
- }
- }
+ bool allPksEqual = true;
- private object FillObject(object result, IObjectMapper mapper, IDataReader datareader)
- {
- foreach (IMapper map in mapper.PropertiesMapping)
- {
- if (map is IObjectMapper && (map as IObjectMapper).IsLazy)
- continue;
-
- if (!datareader.IsDBNull(map.DataReaderIndex))
- {
- ////IGNORE. TODO Add getter
- //if (map is ValueMapper)
- //{
- // //Type propType = (map as ValueMapper).PropertyType;
- // object value = datareader.GetValue(map.DataReaderIndex);
- // //if (value != null && value.GetType() != propType)
- // //{
- // // value = ConvertChangeType(value, propType);
- // //}
- // map.Setter(result, value);
- //}
-
- ////IGNORE. TODO Add getter
- //if (map is FullObjectMapper)
- //{
- // object fillObject = FillObject((FullObjectMapper)map, datareader);
- // map.Setter(result, fillObject);
- //}
- if (map is CollectionFullObjectMapper)
- {
- var collectionFullObjectMapper = (CollectionFullObjectMapper) map;
- object listInstance = collectionFullObjectMapper.Getter(result);
- if (listInstance == null)
+ //This is needed, because DBValue can be Null, but the Field can be Guid, wich then is filled with Guid.Empty and this is also a valid value!
+ /*foreach (var pkIndex in pkIndexes)
+ {
+ var dbValue = reader.GetValue(pkIndex);
+ if (dbValue == DBNull.Value)
+ {
+ pkIsNull = true;
+ break;
+ }
+ }*/
+
+ foreach (var pkGetter in curMapper.PrimaryKeyValueGetters)
{
- listInstance =
- Activator.CreateInstance((map as CollectionFullObjectMapper).PropertyCollectionType);
- map.Setter(result, listInstance);
+ object lastPk = pkGetter.Invoke(lastElement);
+ object currentPk = pkGetter.Invoke(fillObject);
+
+ if (!lastPk.Equals(currentPk))
+ {
+ allPksEqual = false;
+ break;
+ }
}
- object fillObject = FillObject((CollectionFullObjectMapper) map, datareader);
- ((IList) listInstance).Add(fillObject);
+
+ if (allPksEqual)
+ continue;
}
+
+ ((IList) listInstance).Add(fillObject);
}
}
return result;
}
- private object FillObject(IObjectMapper mapper, IDataReader datareader)
+ private void FillObject(IObjectMapper mapper, IDataReader datareader, object result)
{
- object result = mapper.ContainsLazyChild
- ? Proxy.CreateClassProxy(mapper.PropertyType, new LazyValueLoadInterceptor(mapper, LoadLazy))
- : FunctionFactory.Remote.CreateInstance(mapper.PropertyType);
-
foreach (IMapper map in mapper.PropertiesMapping)
{
if (map is IObjectMapper && (map as IObjectMapper).IsLazy)
continue;
- if (!(map.DataReaderIndex < datareader.FieldCount))
+ if (map is ValueMapper)
+ {
+ if (((ValueMapper)map).SetDataReaderIndex(_schemaColumns))
+ continue;
+ }
+
+ if (datareader.IsDBNull(map.DataReaderIndex))
continue;
- if (!datareader.IsDBNull(map.DataReaderIndex))
+ if (map is ValueMapper)
{
- if (map is ValueMapper)
+ object value = datareader.GetValue(map.DataReaderIndex);
+
+ try
{
- //Type propType = (map as ValueMapper).PropertyType;
- object value = datareader.GetValue(map.DataReaderIndex);
- //if (value != null && value.GetType() != propType)
- //{
- // value = ConvertChangeType(value, propType);
- //}
map.Setter(result, value);
}
-
- if (map is FullObjectMapper)
+ catch (Exception exception)
{
- object fillObject = FillObject((FullObjectMapper) map, datareader);
- map.Setter(result, fillObject);
+ throw new Exception(
+ string.Format("FillOject failed for field : {0} of class: {1}.\nColumn name : {2} Db type is: {3} and value : {4}",
+ map.PropertyName, mapper.PropertyType,
+ ((ValueMapper) map).ColumnName,
+ value == null ? "Null" : value.GetType().ToString(), value), exception);
}
+ }
- if (map is CollectionFullObjectMapper)
- {
- var collectionFullObjectMapper = (CollectionFullObjectMapper) map;
+ if (map is FullObjectMapper)
+ {
+ object fillObject = ((FullObjectMapper) map).CreateInstance();
+ FillObject((FullObjectMapper) map, datareader, fillObject);
+ map.Setter(result, fillObject);
+ }
- object listInstance = collectionFullObjectMapper.Getter(result);
- if (listInstance == null)
- {
- listInstance =
- Activator.CreateInstance((map as CollectionFullObjectMapper).PropertyCollectionType);
- map.Setter(result, listInstance);
- }
- object fillObject = FillObject((CollectionFullObjectMapper) map, datareader);
- ((IList) listInstance).Add(fillObject);
+ if (map is CollectionFullObjectMapper)
+ {
+ var collectionFullObjectMapper = (CollectionFullObjectMapper) map;
+
+ object listInstance = collectionFullObjectMapper.Getter(result);
+ if (listInstance == null)
+ {
+ listInstance = Activator.CreateInstance((map as CollectionFullObjectMapper).PropertyCollectionType);
+ map.Setter(result, listInstance);
}
+
+ object fillObject = ((CollectionFullObjectMapper)map).CreateInstance();
+ FillObject((CollectionFullObjectMapper) map, datareader, fillObject);
+ ((IList) listInstance).Add(fillObject);
}
}
-
- return result;
}
- public FullObjectMapper GetObjectMapper(Type mapperType, ref int startIndex)
+ private void InitSchema(IDataReader reader)
{
- var mapper = new FullObjectMapper {PropertyType = mapperType};
- return (FullObjectMapper) GetObjectMapper(mapper, ref startIndex);
+ _schemaColumns = new List();
+ _schema = reader.GetSchemaTable();
+ if (_schema != null)
+ _schema.Rows.Cast().ToList().ForEach(dr => _schemaColumns.Add((string)dr["ColumnName"]));
}
- public IMapper GetObjectMapper(IObjectMapper mapper, ref int startIndex)
+ private IList internalMapDataReaderToList(
+ IDataReader reader,
+ IList list,
+ Type destObjectType,
+ params object[] parameters)
{
- Type mapperType = mapper.PropertyType;
- var objectMappers = new List();
- TableDescription tableDescription = GetTableDescription(mapperType);
+ FullObjectMapper mapper = (FullObjectMapper)GetObjectMapper(destObjectType);
- lock (_setterHandlersLock)
- {
- if (!_settersHandlers.ContainsKey(mapperType))
- _settersHandlers.Add(mapperType, new Dictionary());
+ InitSchema(reader);
- if (!_gettersHandlers.ContainsKey(mapperType))
- _gettersHandlers.Add(mapperType, new Dictionary());
- }
+ object currentItem = null;
- PropertyInfo[] properties = mapperType.GetProperties();
+ List pkIndexes = new List();
+ foreach (var nm in mapper.PrimaryKeyNames)
+ {
+ pkIndexes.Add(mapper.PropertiesMapping.First(x => x.PropertyName == nm).DataReaderIndex);
+ }
- PropertyInfo primaryKeyPropInfo = null;
- foreach (PropertyInfo prop in properties)
+ while (reader.Read())
{
- // Setters
- lock (_setterHandlersLock)
- {
- if (!_settersHandlers[mapper.PropertyType].ContainsKey(prop.Name))
- {
- SetHandler setHandler = FunctionFactory.Il.CreateSetHandler(mapper.PropertyType, prop);
- _settersHandlers[mapper.PropertyType].Add(prop.Name, setHandler /* IL.Setter*/);
- }
- }
+ var result = mapper.CreateInstance();
- object[] pkFields = prop.GetCustomAttributes(typeof(PrimaryKeyAttribute), true);
- if (pkFields.Length > 0)
+ FillObject(mapper, reader, result);
+ if (currentItem == null)
{
- primaryKeyPropInfo = prop;
+ currentItem = result;
+ list.Add(result);
+ continue;
}
- }
- foreach (PropertyInfo prop in properties)
- {
- bool isLazy = false;
- if (!_ignoreLazyLoad)
+
+ bool pkIsNull = false;
+ bool allPksEqual = true;
+
+ //This is needed, because DBValue can be Null, but the Field can be Guid, wich then is filled with Guid.Empty and this is also a valid value!
+ foreach (var pkIndex in pkIndexes)
{
- object[] lazy = prop.GetCustomAttributes(typeof (LazyInstanceAttribute), true);
- if (lazy.Length > 0)
+ var dbValue = reader.GetValue(pkIndex);
+ if (dbValue == DBNull.Value)
{
- if (((LazyInstanceAttribute) lazy[0]).IsLazy)
- {
- isLazy = true;
- mapper.ContainsLazyChild = true;
-
- // Getters
- lock (_setterHandlersLock)
- if (!_gettersHandlers[mapperType].ContainsKey(primaryKeyPropInfo.Name))
- {
- GetHandler getHandler = FunctionFactory.Il.CreateGetHandler(mapperType,
- primaryKeyPropInfo);
- _gettersHandlers[mapperType].Add(primaryKeyPropInfo.Name, getHandler);
- }
- }
+ pkIsNull = true;
+ break;
}
}
- // Check if the accessor is an association
- object[] associationAttr = prop.GetCustomAttributes(typeof (AssociationAttribute), true);
- if (associationAttr.Length > 0)
- {
- if (associationAttr.Length > 1)
- throw new Exception("AssociationAttribute is used several times on the property " + prop.Name);
- var ass = (AssociationAttribute) associationAttr[0];
+ if (!pkIsNull)
+ foreach (var pkGetter in mapper.PrimaryKeyValueGetters)
+ {
+ object resultPk = pkGetter.Invoke(result);
+ object currentItemPk = pkGetter.Invoke(currentItem);
- // Getters for IObjectMapper
- lock (_setterHandlersLock)
- if (!_gettersHandlers[mapperType].ContainsKey(prop.Name))
+ if (!resultPk.Equals(currentItemPk))
{
- GetHandler getHandler = FunctionFactory.Il.CreateGetHandler(mapperType, prop);
- _gettersHandlers[mapperType].Add(prop.Name, getHandler);
+ allPksEqual = false;
+ break;
}
-
- bool isCollection = prop.PropertyType.GetInterfaces().ToList().Contains(typeof (IList));
- IObjectMapper propertiesMapping;
- if (!isCollection)
- {
- propertiesMapping = new FullObjectMapper
- {
- PropertyType = prop.PropertyType,
- IsNullable = ass.CanBeNull
- };
- }
- else
- {
- Type listElementType = GetGenericType(prop.PropertyType);
- TableDescription colElementTableDescription = GetTableDescription(listElementType);
-
- propertiesMapping = new CollectionFullObjectMapper
- {
- PropertyType = listElementType,
- Getter = _gettersHandlers[mapperType][prop.Name],
- TableName = colElementTableDescription.TableName,
- PropertyCollectionType = prop.PropertyType,
- };
-
- (mapper as FullObjectMapper).ColParent = true;
}
- propertiesMapping.PropertyName = prop.Name;
- propertiesMapping.IsLazy = isLazy;
- propertiesMapping.Setter = _settersHandlers[mapperType][prop.Name];
-
- if (propertiesMapping.IsLazy)
- {
- propertiesMapping.ParentKeyGetter = _gettersHandlers[mapperType][primaryKeyPropInfo.Name];
- }
- objectMappers.Add(propertiesMapping);
- }
- else
+ if (!pkIsNull && !allPksEqual)
{
- object[] nomapAttr = prop.GetCustomAttributes(typeof (NoMapAttribute), true);
- if (nomapAttr.Length > 0)
- continue;
-
-
- object[] mapFields = prop.GetCustomAttributes(typeof (MapFieldAttribute), true);
- if (mapFields.Length > 1)
- throw new Exception("AssociationAttribute is used several times on the property " + prop.Name);
-
-
- var map = new ValueMapper
- {
- PropertyName = prop.Name,
- PropertyType = prop.PropertyType,
- DataReaderIndex = startIndex,
- Setter = _settersHandlers[mapperType][prop.Name],
- TableName = tableDescription.TableName,
- /* Optimize with Provider.BuildTableName */
- ColumnName =
- mapFields.Length > 0 ? ((MapFieldAttribute) mapFields[0]).MapName : prop.Name
- };
-
- mapper.PropertiesMapping.Add(map);
-
- object[] pkFields = prop.GetCustomAttributes(typeof (PrimaryKeyAttribute), true);
- if (pkFields.Length > 1)
- throw new Exception("PrimaryKeyAttribute is used several times on the property " + prop.Name);
-
- if (pkFields.Length == 1)
- mapper.DataReaderIndex = startIndex;
-
- startIndex++;
+ currentItem = result;
+ list.Add(result);
+ //continue;
}
- }
- foreach (IObjectMapper objMap in objectMappers)
- {
- IObjectMapper cel = mapper;
- while (cel != null)
+ if (mapper.ColParent)
{
- if (mapper.PropertyType == objMap.PropertyType)
- continue;
-
- cel = (IObjectMapper) cel.ParentMapping;
+ FillObject(currentItem, mapper, reader);
}
-
- objMap.ParentMapping = mapper;
- mapper.PropertiesMapping.Add(GetObjectMapper(objMap, ref startIndex));
- //TODO startIndex++ ??? If we dont show the association column, dont increase the index
}
- return mapper;
- }
-
- public static Type GetGenericType(Type t)
- {
- if (t.IsGenericType)
- {
- Type[] at = t.GetGenericArguments();
- return at.FirstOrDefault();
- }
- return null;
+ return list;
}
- private TableDescription GetTableDescription(Type type)
- {
- var tableDescription = new TableDescription();
- object[] tableAtt = type.GetCustomAttributes(typeof (TableNameAttribute), true);
-
- if (tableAtt.Length > 0)
- {
- var tna = (TableNameAttribute) tableAtt[0];
-
- tableDescription.Database = tna.Database;
- tableDescription.Owner = tna.Owner;
- tableDescription.TableName = tna.Name;
- }
-
- return tableDescription;
- }
+ #endregion
}
}
\ No newline at end of file
diff --git a/Extensions/JointureAddOn/Mapping/FullObjectMapper.cs b/Extensions/JointureAddOn/Mapping/FullObjectMapper.cs
index 8f1c97774..53d1eebf2 100644
--- a/Extensions/JointureAddOn/Mapping/FullObjectMapper.cs
+++ b/Extensions/JointureAddOn/Mapping/FullObjectMapper.cs
@@ -1,57 +1,58 @@
-using System;
+#region
+
+using System;
+using System.Collections;
using System.Collections.Generic;
+using System.Linq;
+using System.Reflection;
+using BLToolkit.Data;
+using BLToolkit.DataAccess;
using BLToolkit.Emit;
+using BLToolkit.Reflection;
+using BLToolkit.Reflection.Extension;
+
+#endregion
namespace BLToolkit.Mapping
{
- public interface IMapper
+ public class FullObjectMapper : ObjectMapper, IObjectMapper
{
- int DataReaderIndex { get; set; }
- SetHandler Setter { get; set; }
- Type PropertyType { get; set; }
- string PropertyName { get; set; }
- }
+ #region Fields
- public class OwnerDescription
- {
- public string Database { get; set; }
- public string Owner { get; set; }
- }
+ private static readonly object SetterHandlersLock = new object();
- public class TableDescription : OwnerDescription
- {
- public string TableName { get; set; }
- }
+ private static readonly Dictionary> SettersHandlers =
+ new Dictionary>();
- public class ValueMapper : TableDescription, IMapper
- {
- public string ColumnName { get; set; }
+ private static readonly Dictionary> GettersHandlers =
+ new Dictionary>();
- #region IMapper Members
-
- public int DataReaderIndex { get; set; }
- public SetHandler Setter { get; set; }
- public Type PropertyType { get; set; }
- public string PropertyName { get; set; }
+ private readonly DbManager _db;
+ private readonly FactoryType _factoryType;
+ private readonly bool _ignoreLazyLoad;
#endregion
- }
- public class CollectionFullObjectMapper : TableDescription, IObjectMapper
- {
- public CollectionFullObjectMapper()
+ public FullObjectMapper(DbManager db, bool ignoreLazyLoading, FactoryType factoryType)
{
+ _db = db;
+ _ignoreLazyLoad = ignoreLazyLoading;
+ _factoryType = factoryType;
+
PropertiesMapping = new List();
+ PrimaryKeyValueGetters = new List();
+ PrimaryKeyNames = new List();
}
#region IPropertiesMapping Members
public List PropertiesMapping { get; private set; }
- public IPropertiesMapping ParentMapping { get; set;}
+ public IPropertiesMapping ParentMapping { get; set; }
#endregion
- public Type PropertyCollectionType { get; set; }
+ public bool IsNullable { get; set; }
+ public bool ColParent { get; set; }
#region IMapper Members
@@ -59,6 +60,7 @@ public CollectionFullObjectMapper()
public SetHandler Setter { get; set; }
public Type PropertyType { get; set; }
public string PropertyName { get; set; }
+ public Association Association { get; set; }
#endregion
@@ -68,70 +70,284 @@ public CollectionFullObjectMapper()
public bool ContainsLazyChild { get; set; }
public GetHandler Getter { get; set; }
+ public List PrimaryKeyNames { get; set; }
+
#endregion
#region ILazyMapper
public GetHandler ParentKeyGetter { get; set; }
+ public List PrimaryKeyValueGetters { get; set; }
#endregion
- }
- public interface ILazyMapper
- {
- GetHandler ParentKeyGetter { get; set; }
- }
+ #region Overrides
- public interface IObjectMapper : IPropertiesMapping, IMapper, ILazyMapper
- {
- bool IsLazy { get; set; }
- bool ContainsLazyChild { get; set; }
- GetHandler Getter { get; set; }
- }
+ public override void Init(MappingSchema mappingSchema, Type type)
+ {
+ PropertyType = type;
- public interface IPropertiesMapping
- {
- List PropertiesMapping { get; }
- IPropertiesMapping ParentMapping { get; set; }
- }
+ // TODO implement this method
+ base.Init(mappingSchema, type);
- public class FullObjectMapper : ObjectMapper, IObjectMapper
- {
- public FullObjectMapper()
- {
- PropertiesMapping = new List();
+ int startIndex = 0;
+ GetObjectMapper(this, ref startIndex, _typeAccessor);
}
- #region IPropertiesMapping Members
+ public override object CreateInstance()
+ {
+ object result = ContainsLazyChild
+ ? (_factoryType == FactoryType.LazyLoading
+ ? TypeFactory.LazyLoading.Create(PropertyType, this, LoadLazy)
+ : TypeFactory.LazyLoadingWithDataBinding.Create(PropertyType, this, LoadLazy))
+ : FunctionFactory.Remote.CreateInstance(PropertyType);
- public List PropertiesMapping { get; private set; }
- public IPropertiesMapping ParentMapping { get; set; }
+ return result;
+ }
- #endregion
+ public override object CreateInstance(InitContext context)
+ {
+ return CreateInstance();
+ }
- public bool IsNullable { get; set; }
- public bool ColParent { get; set; }
+ #endregion
- #region IMapper Members
+ #region Private methods
- public int DataReaderIndex { get; set; }
- public SetHandler Setter { get; set; }
- public Type PropertyType { get; set; }
- public string PropertyName { get; set; }
+ private TableDescription GetTableDescription(Type type)
+ {
+ var tableDescription = new TableDescription();
+ object[] tableAtt = type.GetCustomAttributes(typeof (TableNameAttribute), true);
- #endregion
+ if (tableAtt.Length > 0)
+ {
+ var tna = (TableNameAttribute) tableAtt[0];
- #region IObjectMapper
+ tableDescription.Database = tna.Database;
+ tableDescription.Owner = tna.Owner;
+ tableDescription.TableName = tna.Name;
+ }
- public bool IsLazy { get; set; }
- public bool ContainsLazyChild { get; set; }
- public GetHandler Getter { get; set; }
+ return tableDescription;
+ }
- #endregion
+ private IMapper GetObjectMapper(IObjectMapper mapper, ref int startIndex, TypeAccessor akTypeAccessor)
+ {
+ //Todo: Remove this Call!
+ _extension = TypeExtension.GetTypeExtension(mapper.PropertyType /*_typeAccessor.OriginalType*/, MappingSchema.Extensions);
+
+ Type mapperType = mapper.PropertyType;
+ var objectMappers = new List();
+
+ TableDescription tableDescription = GetTableDescription(mapperType);
+
+ lock (SetterHandlersLock)
+ {
+ if (!SettersHandlers.ContainsKey(mapperType))
+ SettersHandlers.Add(mapperType, new Dictionary());
+
+ if (!GettersHandlers.ContainsKey(mapperType))
+ GettersHandlers.Add(mapperType, new Dictionary());
+ }
+
+ PropertyInfo[] properties = mapperType.GetProperties();
+
+ MemberAccessor primaryKeyMemberAccessor = null;
+ foreach (MemberAccessor ma in akTypeAccessor)
+ {
+ // Setters
+ lock (SetterHandlersLock)
+ {
+ if (!SettersHandlers[mapper.PropertyType].ContainsKey(ma.Name))
+ {
+ SettersHandlers[mapper.PropertyType].Add(ma.Name, ma.SetValue);
+ }
+ }
+
+ if (GetPrimaryKey(ma) != null)
+ {
+ primaryKeyMemberAccessor = ma;
+
+ lock (SetterHandlersLock)
+ {
+ if (!GettersHandlers[mapperType].ContainsKey(ma.Name))
+ {
+ GettersHandlers[mapperType].Add(ma.Name, ma.GetValue);
+ }
+ }
+ mapper.PrimaryKeyValueGetters.Add(GettersHandlers[mapperType][ma.Name]);
+ mapper.PrimaryKeyNames.Add(ma.Name);
+
+ if (mapper.Association != null && (mapper.Association.OtherKey == null || mapper.Association.OtherKey.Length == 0))
+ {
+ mapper.Association.OtherKey = new[] {ma.Name};
+ }
+ }
+ }
+ if (primaryKeyMemberAccessor == null)
+ throw new Exception("PrimaryKey attribute not found on type: " + mapperType);
+
+ foreach (PropertyInfo prop in properties)
+ {
+ var ma = akTypeAccessor.First(x => x.Name == prop.Name);
+
+ // Check if the accessor is an association
+ var association = GetAssociation(ma);
+ if (association != null)
+ {
+ // Getters for IObjectMapper
+ lock (SetterHandlersLock)
+ if (!GettersHandlers[mapperType].ContainsKey(prop.Name))
+ {
+ GettersHandlers[mapperType].Add(prop.Name, ma.GetValue);
+ }
+
+ bool isCollection = prop.PropertyType.GetInterfaces().ToList().Contains(typeof (IList));
+ IObjectMapper propertiesMapping;
+ if (!isCollection)
+ {
+ // TODO Generate this instance using the CreateObjectMapperInstance method of fullMappingSchema
+ // _db.MappingSchema.CreateObjectMapperInstance(prop.PropertyType)
+
+ propertiesMapping = new FullObjectMapper(_db, _ignoreLazyLoad, _factoryType)
+ {
+ PropertyType = prop.PropertyType,
+ IsNullable = association.CanBeNull,
+ Getter = GettersHandlers[mapperType][prop.Name],
+ };
+ }
+ else
+ {
+ Type listElementType = GetGenericType(prop.PropertyType);
+ TableDescription colElementTableDescription = GetTableDescription(listElementType);
+
+ // TODO Generate this instance using the CreateObjectMapperInstance method of fullMappingSchema
+ propertiesMapping = new CollectionFullObjectMapper(_db, _factoryType)
+ {
+ PropertyType = listElementType,
+ Getter = GettersHandlers[mapperType][prop.Name],
+ TableName = colElementTableDescription.TableName,
+ PropertyCollectionType = prop.PropertyType,
+ };
+
+ if (mapper is FullObjectMapper)
+ ((FullObjectMapper) mapper).ColParent = true;
+ }
+
+ if (association.ThisKey == null || association.ThisKey.Length == 0)
+ association.ThisKey = new[] {primaryKeyMemberAccessor.Name};
+
+ bool isLazy = false;
+ if (!_ignoreLazyLoad)
+ {
+ var lazy = GetLazyInstance(ma); // prop.GetCustomAttributes(typeof(LazyInstanceAttribute), true);
+ if (lazy)
+ {
+ isLazy = true;
+ mapper.ContainsLazyChild = true;
+
+ // Getters
+ lock (SetterHandlersLock)
+ if (!GettersHandlers[mapperType].ContainsKey(primaryKeyMemberAccessor.Name))
+ {
+ GettersHandlers[mapperType].Add(primaryKeyMemberAccessor.Name, primaryKeyMemberAccessor.GetValue);
+ }
+ }
+ }
+
+ propertiesMapping.Association = association;
+ propertiesMapping.PropertyName = prop.Name;
+ propertiesMapping.IsLazy = isLazy;
+ propertiesMapping.Setter = SettersHandlers[mapperType][prop.Name];
+
+ if (propertiesMapping.IsLazy)
+ {
+ propertiesMapping.ParentKeyGetter = GettersHandlers[mapperType][primaryKeyMemberAccessor.Name];
+ }
+ objectMappers.Add(propertiesMapping);
+ }
+ else
+ {
+ var mapIgnore = GetMapIgnore(ma);
+ if (mapIgnore)
+ continue;
+
+ var mapField = GetMapField(ma);
+ string columnName = mapField != null ? mapField.MapName : prop.Name;
+
+ var map = new ValueMapper
+ {
+ PropertyName = prop.Name,
+ PropertyType = prop.PropertyType,
+ DataReaderIndex = startIndex,
+ Setter = SettersHandlers[mapperType][prop.Name],
+ TableName = tableDescription.TableName,
+ ColumnName = columnName,
+ };
+
+ var mapColumnName = map.GetColumnName(columnName);
+ map.ColumnAlias = columnName == mapColumnName ? null : mapColumnName;
+
+ mapper.PropertiesMapping.Add(map);
+
+ var pkField = GetPrimaryKey(ma);
+ if (pkField != null)
+ mapper.DataReaderIndex = startIndex;
+
+ startIndex++;
+ }
+ }
+
+ foreach (IObjectMapper objMap in objectMappers)
+ {
+ #region Check mapping recursion
+
+ IObjectMapper cel = mapper;
+ while (cel != null)
+ {
+ if (mapper.PropertyType == objMap.PropertyType)
+ continue;
+
+ cel = (IObjectMapper) cel.ParentMapping;
+ }
+
+ #endregion
+
+ objMap.ParentMapping = mapper;
+ mapper.PropertiesMapping.Add(GetObjectMapper(objMap, ref startIndex, MappingSchema.GetObjectMapper(objMap.PropertyType).TypeAccessor));
+ }
+
+ return mapper;
+ }
- #region ILazyMapper
+ protected object LoadLazy(IMapper mapper, object proxy, Type parentType)
+ {
+ var lazyMapper = (ILazyMapper) mapper;
+ object key = lazyMapper.ParentKeyGetter(proxy);
+
+ var fullSqlQuery = new FullSqlQuery(_db, ignoreLazyLoad: true);
+ object parentLoadFull = fullSqlQuery.SelectByKey(parentType, key);
+ if (parentLoadFull == null)
+ {
+ object value = Activator.CreateInstance(mapper is CollectionFullObjectMapper
+ ? (mapper as CollectionFullObjectMapper).PropertyCollectionType
+ : mapper.PropertyType);
+ return value;
+ }
+
+ var objectMapper = (IObjectMapper) mapper;
+ return objectMapper.Getter(parentLoadFull);
+ }
- public GetHandler ParentKeyGetter { get; set; }
+ private static Type GetGenericType(Type t)
+ {
+ if (t.IsGenericType)
+ {
+ Type[] at = t.GetGenericArguments();
+ return at.FirstOrDefault();
+ }
+ return null;
+ }
#endregion
}
diff --git a/Extensions/JointureAddOn/Mapping/ILazyMapper.cs b/Extensions/JointureAddOn/Mapping/ILazyMapper.cs
new file mode 100644
index 000000000..25bc73483
--- /dev/null
+++ b/Extensions/JointureAddOn/Mapping/ILazyMapper.cs
@@ -0,0 +1,9 @@
+using BLToolkit.Emit;
+
+namespace BLToolkit.Mapping
+{
+ public interface ILazyMapper
+ {
+ GetHandler ParentKeyGetter { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/Extensions/JointureAddOn/Mapping/IMapper.cs b/Extensions/JointureAddOn/Mapping/IMapper.cs
new file mode 100644
index 000000000..41386d5b4
--- /dev/null
+++ b/Extensions/JointureAddOn/Mapping/IMapper.cs
@@ -0,0 +1,13 @@
+using System;
+using BLToolkit.Emit;
+
+namespace BLToolkit.Mapping
+{
+ public interface IMapper
+ {
+ int DataReaderIndex { get; set; }
+ SetHandler Setter { get; set; }
+ Type PropertyType { get; set; }
+ string PropertyName { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/Extensions/JointureAddOn/Mapping/IObjectMapper.cs b/Extensions/JointureAddOn/Mapping/IObjectMapper.cs
new file mode 100644
index 000000000..0d781e87b
--- /dev/null
+++ b/Extensions/JointureAddOn/Mapping/IObjectMapper.cs
@@ -0,0 +1,23 @@
+
+using System.Collections.Generic;
+using BLToolkit.Emit;
+
+namespace BLToolkit.Mapping
+{
+ public interface IObjectMapper : IPropertiesMapping, IMapper, ILazyMapper
+ {
+ bool IsLazy { get; set; }
+
+ bool ContainsLazyChild { get; set; }
+
+ List PrimaryKeyNames { get; set; }
+
+ ///
+ /// Is set only for CollectionFullObjectMapper. TODO : Should refactor this?
+ ///
+ GetHandler Getter { get; set; }
+
+ List PrimaryKeyValueGetters { get; set; }
+ Association Association { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/Extensions/JointureAddOn/Mapping/IPropertiesMapping.cs b/Extensions/JointureAddOn/Mapping/IPropertiesMapping.cs
new file mode 100644
index 000000000..709e17800
--- /dev/null
+++ b/Extensions/JointureAddOn/Mapping/IPropertiesMapping.cs
@@ -0,0 +1,10 @@
+using System.Collections.Generic;
+
+namespace BLToolkit.Mapping
+{
+ public interface IPropertiesMapping
+ {
+ List PropertiesMapping { get; }
+ IPropertiesMapping ParentMapping { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/Extensions/JointureAddOn/Mapping/LazyValueLoadInterceptor.cs b/Extensions/JointureAddOn/Mapping/LazyValueLoadInterceptor.cs
index 6ce8673cc..024884851 100644
--- a/Extensions/JointureAddOn/Mapping/LazyValueLoadInterceptor.cs
+++ b/Extensions/JointureAddOn/Mapping/LazyValueLoadInterceptor.cs
@@ -1,5 +1,4 @@
using System;
-using BLToolkit.Aspects;
using Castle.DynamicProxy;
using IInterceptor = Castle.DynamicProxy.IInterceptor;
@@ -7,8 +6,13 @@ namespace BLToolkit.Mapping
{
public class LazyValueLoadInterceptor : IInterceptor
{
+ #region Fields
+
private readonly IObjectMapper _mapper;
private readonly Func _lazyLoader;
+ private bool _intercepted;
+
+ #endregion
public LazyValueLoadInterceptor(IObjectMapper mapper, Func lazyLoader)
{
@@ -16,25 +20,19 @@ public LazyValueLoadInterceptor(IObjectMapper mapper, Func lazyLoader)
+ {
+ return ProxyGenerator.CreateClassProxy(type, new LazyValueLoadInterceptor(mapper, lazyLoader));
+ }
+ }
+
+ public static class LazyLoadingWithDataBinding
+ {
+ public static object Create(Type type, IObjectMapper mapper, Func lazyLoader)
+ {
+ return ProxyGenerator.CreateClassProxy(type, new[]
+ {
+ typeof (INotifyPropertyChanged),
+ typeof (DataBindingFactory.IMarkerInterface)
+ }, new LazyValueLoadInterceptor(mapper, lazyLoader), new NotifyPropertyChangedInterceptor(type.FullName));
+ }
+ }
+
+ public static class DataBindingFactory
+ {
+ public static object Create(Type type)
+ {
+ return ProxyGenerator.CreateClassProxy(type, new[]
+ {
+ typeof (INotifyPropertyChanged),
+ typeof (IMarkerInterface)
+ }, new NotifyPropertyChangedInterceptor(type.FullName));
+ }
+
+ public interface IMarkerInterface
+ {
+ string TypeName { get; }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Extensions/JointureAddOn/Mapping/ValueMapper.cs b/Extensions/JointureAddOn/Mapping/ValueMapper.cs
new file mode 100644
index 000000000..46ebaf3ba
--- /dev/null
+++ b/Extensions/JointureAddOn/Mapping/ValueMapper.cs
@@ -0,0 +1,109 @@
+using System;
+using System.Collections.Generic;
+using BLToolkit.Emit;
+
+namespace BLToolkit.Mapping
+{
+ public class ValueMapper : TableDescription, IMapper
+ {
+ private readonly Dictionary> _columnVariations = new Dictionary>();
+ private readonly Dictionary _columnOccurences = new Dictionary();
+
+ public string ColumnAlias { get; set; }
+ public string ColumnName { get; set; }
+
+ #region IMapper Members
+
+ public int DataReaderIndex { get; set; }
+ public SetHandler Setter { get; set; }
+ public Type PropertyType { get; set; }
+ public string PropertyName { get; set; }
+
+ #endregion
+
+ public string GetColumnName(string columnName)
+ {
+ int occurenceCount;
+ if (_columnOccurences.ContainsKey(columnName))
+ {
+ occurenceCount = _columnOccurences[columnName] + 1;
+ _columnOccurences[columnName] = occurenceCount;
+ }
+ else
+ {
+ _columnOccurences[columnName] = 1;
+ occurenceCount = 1;
+ }
+
+ string res = columnName + (occurenceCount > 1 ? string.Format("_{0}", occurenceCount - 1) : "");
+
+ var variations = new List();
+ if (_columnVariations.ContainsKey(columnName))
+ {
+ variations = _columnVariations[columnName];
+ }
+
+ variations.Add(res);
+ _columnVariations[columnName] = variations;
+
+ return res;
+ }
+
+ public bool SetDataReaderIndex(List schemaColumns)
+ {
+ string colName = ColumnName;
+ int index = -1;
+ if (!schemaColumns.Contains(colName))
+ {
+ bool found = false;
+ int order = 1;
+ foreach (string key in _columnVariations.Keys)
+ {
+ List variations = _columnVariations[key];
+ if (variations.Contains(colName))
+ {
+ if (colName.Contains(key + "_"))
+ {
+ string orderString = colName.Replace(key + "_", "");
+ order = int.Parse(orderString) + 1;
+ colName = key;
+ found = true;
+ break;
+ }
+ }
+ }
+ if (found)
+ {
+ int i = 0, occurenceCnt = 0;
+ foreach (string column in schemaColumns)
+ {
+ if (column == colName)
+ {
+ occurenceCnt++;
+ if (occurenceCnt == order)
+ {
+ index = i;
+ break;
+ }
+ }
+ i++;
+ }
+ }
+ else
+ {
+ // TODO Check this condition...
+ //if (!_ignoreMissingColumns)
+ //{
+ // throw new Exception(string.Format("Couldnt find db column {0} in the query result", colName));
+ //}
+ return true;
+ }
+ }
+ else
+ index = schemaColumns.IndexOf(colName);
+
+ DataReaderIndex = index;
+ return false;
+ }
+ }
+}
\ No newline at end of file
diff --git a/Extensions/JointureAddOn/Properties/AssemblyInfo.cs b/Extensions/JointureAddOn/Properties/AssemblyInfo.cs
index cf3ce759a..ccf9afe61 100644
--- a/Extensions/JointureAddOn/Properties/AssemblyInfo.cs
+++ b/Extensions/JointureAddOn/Properties/AssemblyInfo.cs
@@ -1,17 +1,14 @@
using System.Reflection;
-using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
+using BLToolkit;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
-[assembly: AssemblyTitle("BLToolkit.4.JointureAddOn")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("Microsoft")]
-[assembly: AssemblyProduct("BLToolkit.4.JointureAddOn")]
-[assembly: AssemblyCopyright("Copyright © Microsoft 2012")]
-[assembly: AssemblyTrademark("")]
+[assembly: AssemblyTitle(BLToolkitConstants.ProductName + " JointureAddOn")]
+[assembly: AssemblyDescription(BLToolkitConstants.ProductDescription + " JointureAddOn")]
+[assembly: AssemblyProduct(BLToolkitConstants.ProductName + " JointureAddOn")]
+[assembly: AssemblyCopyright(BLToolkitConstants.Copyright)]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
@@ -32,5 +29,5 @@
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
+[assembly: AssemblyVersion(BLToolkitConstants.FullVersionString)]
+[assembly: AssemblyFileVersion(BLToolkitConstants.FullVersionString)]
diff --git a/Extensions/JointureAddOn/Reflection/FullInitContext.cs b/Extensions/JointureAddOn/Reflection/FullInitContext.cs
deleted file mode 100644
index 7de393862..000000000
--- a/Extensions/JointureAddOn/Reflection/FullInitContext.cs
+++ /dev/null
@@ -1,38 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Diagnostics;
-
-using BLToolkit.Mapping;
-
-namespace BLToolkit.Reflection
-{
- public class FullInitContext
- {
- public object[] MemberParameters { get; set; }
- public object[] Parameters { get; set; }
- public bool IsInternal { get; set; }
- public bool IsLazyInstance { get; set; }
- public object Parent { get; set; }
- public object SourceObject { get; set; }
- public FullObjectMapper ObjectMapper { get; set; }
- public MappingSchema MappingSchema { get; set; }
- public bool IsSource { get; set; }
- public bool StopMapping { get; set; }
- public IMapDataSource DataSource { get; set; }
-
- private Dictionary