Index: /branches/DataAnalysis/HeuristicLab 3.3.sln
===================================================================
--- /branches/DataAnalysis/HeuristicLab 3.3.sln	(revision 4235)
+++ /branches/DataAnalysis/HeuristicLab 3.3.sln	(revision 4235)
@@ -0,0 +1,2259 @@
+﻿
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual Studio 2010
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{96396439-A764-4022-A8D2-BE021449B8D1}"
+	ProjectSection(SolutionItems) = preProject
+		ConfigMerger.exe = ConfigMerger.exe
+		..\documentation\License\gpl-3.0.txt = ..\documentation\License\gpl-3.0.txt
+		HeuristicLab 3.3.vsmdi = HeuristicLab 3.3.vsmdi
+		LocalTestRun.testrunconfig = LocalTestRun.testrunconfig
+		PreBuildEvent.cmd = PreBuildEvent.cmd
+	EndProjectSection
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "HeuristicLab.ExtLibs", "HeuristicLab.ExtLibs", "{07BCBC57-3E15-4582-B306-C046E516C49C}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "HeuristicLab.WinFormsUI", "HeuristicLab.WinFormsUI", "{7F485A48-A80F-4454-9A9B-7B126B43861C}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "HeuristicLab.WinFormsUI-2.3.1", "HeuristicLab.WinFormsUI-2.3.1", "{99AD3658-DB36-4E26-B4CC-6FEAACC5C88C}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "HeuristicLab.log4net", "HeuristicLab.log4net", "{BA3315A3-9D7C-4F5F-99F4-1C9B88FD32AE}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "HeuristicLab.Netron", "HeuristicLab.Netron", "{27D3A83C-DEEA-49DA-955E-65D3D703B2F1}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "HeuristicLab.Netron-3.0.2672.12446", "HeuristicLab.Netron-3.0.2672.12446", "{0A3CE05D-4FCD-40A4-9001-D57627554BBC}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "HeuristicLab.SharpDevelop", "HeuristicLab.SharpDevelop", "{F94E41E4-F25F-4302-8486-0BEF121CF5C8}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "HeuristicLab.ALGLIB", "HeuristicLab.ALGLIB", "{F0D06B07-1CB3-418E-88ED-CAE8DAACC7E0}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "HeuristicLab.ALGLIB-2.5.0", "HeuristicLab.ALGLIB-2.5.0", "{F1A195C9-98CD-47C6-9B74-3344EB258C5D}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "HeuristicLab.LibSVM", "HeuristicLab.LibSVM", "{782DDDA3-A7A3-404E-B751-6200CE2D5EF3}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "HeuristicLab.LibSVM-1.6.3", "HeuristicLab.LibSVM-1.6.3", "{16A50D44-107B-4601-A291-3B6870CD919D}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "HeuristicLab.ProtobufCS", "HeuristicLab.ProtobufCS", "{189F7770-5540-4832-B9A0-82474009680C}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "HeuristicLab.ProtobufCS-0.9.1", "HeuristicLab.ProtobufCS-0.9.1", "{2F5318D7-9CC2-4B5A-A7FE-43985FEA7198}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.PluginInfrastructure-3.3", "HeuristicLab.PluginInfrastructure\3.3\HeuristicLab.PluginInfrastructure-3.3.csproj", "{94186A6A-5176-4402-AE83-886557B53CCA}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Persistence-3.3", "HeuristicLab.Persistence\3.3\HeuristicLab.Persistence-3.3.csproj", "{102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Persistence.GUI-3.3", "HeuristicLab.Persistence.GUI\3.3\HeuristicLab.Persistence.GUI-3.3.csproj", "{A9E282EA-180F-4233-B809-AEDF0787545C}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Core-3.3", "HeuristicLab.Core\3.3\HeuristicLab.Core-3.3.csproj", "{C36BD924-A541-4A00-AFA8-41701378DDC5}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Data-3.3", "HeuristicLab.Data\3.3\HeuristicLab.Data-3.3.csproj", "{BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Operators-3.3", "HeuristicLab.Operators\3.3\HeuristicLab.Operators-3.3.csproj", "{23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.SequentialEngine-3.3", "HeuristicLab.SequentialEngine\3.3\HeuristicLab.SequentialEngine-3.3.csproj", "{DC3D7072-7999-4719-B65D-3997744D5DC1}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Random-3.3", "HeuristicLab.Random\3.3\HeuristicLab.Random-3.3.csproj", "{F4539FB6-4708-40C9-BE64-0A1390AEA197}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Selection-3.3", "HeuristicLab.Selection\3.3\HeuristicLab.Selection-3.3.csproj", "{2C36CD4F-E5F5-43A4-801A-201EA895FE17}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Operators.Programmable-3.3", "HeuristicLab.Operators.Programmable\3.3\HeuristicLab.Operators.Programmable-3.3.csproj", "{6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab-3.3", "HeuristicLab\3.3\HeuristicLab-3.3.csproj", "{B1DCDECA-B56E-41D5-9850-EF0D3A77DEAF}"
+	ProjectSection(ProjectDependencies) = postProject
+		{89B50302-9CEE-4D13-9779-633EADCAE624} = {89B50302-9CEE-4D13-9779-633EADCAE624}
+		{125D3006-67F5-48CB-913E-73C0548F17FA} = {125D3006-67F5-48CB-913E-73C0548F17FA}
+		{489CFE09-FDF7-4C89-BAB5-BD09CADD61AD} = {489CFE09-FDF7-4C89-BAB5-BD09CADD61AD}
+		{72104A0B-90E7-42F3-9ABE-9BBBADD4B943} = {72104A0B-90E7-42F3-9ABE-9BBBADD4B943}
+		{3081630C-9521-47D7-8075-1777C12F212C} = {3081630C-9521-47D7-8075-1777C12F212C}
+		{7252890C-F207-4AD6-B3C9-764DF93F73CC} = {7252890C-F207-4AD6-B3C9-764DF93F73CC}
+		{25087811-F74C-4128-BC86-8324271DA13E} = {25087811-F74C-4128-BC86-8324271DA13E}
+		{662B4B15-8F4D-4AE5-B3EB-D91C215F5AF2} = {662B4B15-8F4D-4AE5-B3EB-D91C215F5AF2}
+		{BDF86B1D-630E-4CE2-8A49-8C90B1BDE4C9} = {BDF86B1D-630E-4CE2-8A49-8C90B1BDE4C9}
+		{E226881D-315F-423D-B419-A766FE0D8685} = {E226881D-315F-423D-B419-A766FE0D8685}
+		{F62BCD22-FB83-4444-9401-8031C2487A86} = {F62BCD22-FB83-4444-9401-8031C2487A86}
+		{E0B45023-CB84-48A1-A1B7-8295B64B7BAD} = {E0B45023-CB84-48A1-A1B7-8295B64B7BAD}
+		{CDA28124-ACD0-4231-8EB0-C510B361F84E} = {CDA28124-ACD0-4231-8EB0-C510B361F84E}
+		{14AB8D24-25BC-400C-A846-4627AA945192} = {14AB8D24-25BC-400C-A846-4627AA945192}
+		{C36BD924-A541-4A00-AFA8-41701378DDC5} = {C36BD924-A541-4A00-AFA8-41701378DDC5}
+		{D58A232D-04BA-4186-B73E-0EC86FD31ABE} = {D58A232D-04BA-4186-B73E-0EC86FD31ABE}
+		{6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6} = {6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}
+		{1849A92E-DCFC-4E05-BB0A-D7B7A3DAFCFB} = {1849A92E-DCFC-4E05-BB0A-D7B7A3DAFCFB}
+		{29E4B033-1FEF-4FE1-AE17-0A9319D7C54E} = {29E4B033-1FEF-4FE1-AE17-0A9319D7C54E}
+		{0E27A536-1C4A-4624-A65E-DC4F4F23E3E1} = {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}
+		{799B0B38-E384-4A17-A73C-F211EB854592} = {799B0B38-E384-4A17-A73C-F211EB854592}
+		{678E2145-8152-4E19-9646-07D439D00301} = {678E2145-8152-4E19-9646-07D439D00301}
+		{BB994448-2B21-4564-BB2E-38D8FFF8CF18} = {BB994448-2B21-4564-BB2E-38D8FFF8CF18}
+		{C49CB749-8B24-4628-8003-E86475749410} = {C49CB749-8B24-4628-8003-E86475749410}
+		{BB6D334A-4BB6-4674-9883-31A6EBB32CAB} = {BB6D334A-4BB6-4674-9883-31A6EBB32CAB}
+		{1778134B-866B-4CB3-BFC0-52B2FAAA5777} = {1778134B-866B-4CB3-BFC0-52B2FAAA5777}
+		{A51DA44F-CB35-4F6F-99F5-2A2E904AB93B} = {A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}
+		{2C36CD4F-E5F5-43A4-801A-201EA895FE17} = {2C36CD4F-E5F5-43A4-801A-201EA895FE17}
+		{6024D74F-E29C-4E6B-843E-8851831B8E14} = {6024D74F-E29C-4E6B-843E-8851831B8E14}
+		{3EAF1454-086D-44A2-8509-B1BA24DB1865} = {3EAF1454-086D-44A2-8509-B1BA24DB1865}
+		{2C429157-9C34-4DD3-9D5F-B444B751E39A} = {2C429157-9C34-4DD3-9D5F-B444B751E39A}
+		{3BD61258-31DA-4B09-89C0-4F71FEF5F05A} = {3BD61258-31DA-4B09-89C0-4F71FEF5F05A}
+		{01BBCB5A-144A-4A7E-908E-079849E2F7CF} = {01BBCB5A-144A-4A7E-908E-079849E2F7CF}
+		{96E5ED5B-187D-4012-9CDA-D85CDAD38342} = {96E5ED5B-187D-4012-9CDA-D85CDAD38342}
+		{E86E215D-E3CE-4244-978D-555D4E17AC09} = {E86E215D-E3CE-4244-978D-555D4E17AC09}
+		{C664305E-497C-4533-A140-967DEDB05C19} = {C664305E-497C-4533-A140-967DEDB05C19}
+		{8824925E-3E00-4543-8293-7DDACE4737F8} = {8824925E-3E00-4543-8293-7DDACE4737F8}
+		{E10F395F-C8A6-48AD-B470-9AA7A1F43809} = {E10F395F-C8A6-48AD-B470-9AA7A1F43809}
+		{6F18ED66-2333-4B5C-B882-AC99FB3CDCE5} = {6F18ED66-2333-4B5C-B882-AC99FB3CDCE5}
+		{4AE3FC69-C575-42D2-BC46-0FAD5850EFC5} = {4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}
+		{56F9106A-079F-4C61-92F6-86A84C2D84B7} = {56F9106A-079F-4C61-92F6-86A84C2D84B7}
+		{30D6606B-96E7-436C-B5D7-EA1455848E37} = {30D6606B-96E7-436C-B5D7-EA1455848E37}
+		{A8D5676D-9662-437A-B44D-ECB4046CDE12} = {A8D5676D-9662-437A-B44D-ECB4046CDE12}
+		{DC3D7072-7999-4719-B65D-3997744D5DC1} = {DC3D7072-7999-4719-B65D-3997744D5DC1}
+		{76945D76-CA61-4147-9DC2-0ACDCDDF87F9} = {76945D76-CA61-4147-9DC2-0ACDCDDF87F9}
+		{57F38579-409D-4DD8-AB19-3F2C4A665126} = {57F38579-409D-4DD8-AB19-3F2C4A665126}
+		{4ABA047D-46DD-4608-9E4A-41C5F92FDBB1} = {4ABA047D-46DD-4608-9E4A-41C5F92FDBB1}
+		{70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC} = {70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}
+		{8FA6898D-E4B0-4E08-A6D6-F9F520E7959F} = {8FA6898D-E4B0-4E08-A6D6-F9F520E7959F}
+		{D767C38D-8014-46B0-9A32-03A3AECCE34A} = {D767C38D-8014-46B0-9A32-03A3AECCE34A}
+		{BF7D9494-A586-457B-8DF9-ED599F9E6A71} = {BF7D9494-A586-457B-8DF9-ED599F9E6A71}
+		{C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7} = {C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}
+		{9B6EA19A-F894-4E00-B5A3-970514284772} = {9B6EA19A-F894-4E00-B5A3-970514284772}
+		{F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58} = {F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}
+		{15452B9F-A436-4139-8EE7-DA72FB8D3664} = {15452B9F-A436-4139-8EE7-DA72FB8D3664}
+		{DE12659F-87C4-48E6-B2E3-4E73DD95A540} = {DE12659F-87C4-48E6-B2E3-4E73DD95A540}
+		{4FE983A1-AAF8-4977-B9E2-52B3224510CB} = {4FE983A1-AAF8-4977-B9E2-52B3224510CB}
+		{30DD3DA2-CA57-49DD-A5BA-50CEF19DB45F} = {30DD3DA2-CA57-49DD-A5BA-50CEF19DB45F}
+		{6410BDA6-3641-42B2-BABA-AA626E2F6F71} = {6410BDA6-3641-42B2-BABA-AA626E2F6F71}
+		{F5C0ECAC-EDBA-4024-872A-1F74AFCB20B4} = {F5C0ECAC-EDBA-4024-872A-1F74AFCB20B4}
+		{DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA} = {DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}
+		{887425B4-4348-49ED-A457-B7D2C26DDBF9} = {887425B4-4348-49ED-A457-B7D2C26DDBF9}
+		{25735DB4-8E54-4A2C-83E3-A60C76565E55} = {25735DB4-8E54-4A2C-83E3-A60C76565E55}
+		{A16F23B5-FB62-499E-A831-26953AA56FE2} = {A16F23B5-FB62-499E-A831-26953AA56FE2}
+		{F4539FB6-4708-40C9-BE64-0A1390AEA197} = {F4539FB6-4708-40C9-BE64-0A1390AEA197}
+		{A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C} = {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}
+		{958B43BC-CC5C-4FA2-8628-2B3B01D890B6} = {958B43BC-CC5C-4FA2-8628-2B3B01D890B6}
+		{AB687BBE-1BFE-476B-906D-44237135431D} = {AB687BBE-1BFE-476B-906D-44237135431D}
+		{66D249C3-A01D-42A8-82A2-919BC8EC3D83} = {66D249C3-A01D-42A8-82A2-919BC8EC3D83}
+		{236459CE-80CF-4991-972F-DE74C826BCCC} = {236459CE-80CF-4991-972F-DE74C826BCCC}
+		{2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515} = {2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}
+		{102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B} = {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}
+		{13CA37D6-4111-4E7B-BE2E-AF3DE462D384} = {13CA37D6-4111-4E7B-BE2E-AF3DE462D384}
+		{71D904D9-233B-44B2-ABB2-1525691228C5} = {71D904D9-233B-44B2-ABB2-1525691228C5}
+		{EE2034D9-6E27-48A1-B855-42D45F69A4FC} = {EE2034D9-6E27-48A1-B855-42D45F69A4FC}
+		{A9EE65D9-405B-4C9C-B470-FC911AAC541B} = {A9EE65D9-405B-4C9C-B470-FC911AAC541B}
+		{1B3063DB-D71C-4A6A-A359-883E8F53A140} = {1B3063DB-D71C-4A6A-A359-883E8F53A140}
+		{DDFB14DD-2A85-493C-A52D-E69729BBAEB0} = {DDFB14DD-2A85-493C-A52D-E69729BBAEB0}
+		{B3310CE1-0C05-410F-BA77-8DAD6CE3F803} = {B3310CE1-0C05-410F-BA77-8DAD6CE3F803}
+		{88B9B0E3-344E-4196-82A3-0F9732506FE8} = {88B9B0E3-344E-4196-82A3-0F9732506FE8}
+		{AE5B1CE5-9862-4D6F-A700-D72CD9AEA295} = {AE5B1CE5-9862-4D6F-A700-D72CD9AEA295}
+		{D1386FE7-682D-4E18-8C4F-CFD423FA5DD0} = {D1386FE7-682D-4E18-8C4F-CFD423FA5DD0}
+		{A9E282EA-180F-4233-B809-AEDF0787545C} = {A9E282EA-180F-4233-B809-AEDF0787545C}
+		{96AEBBEE-4203-45F3-BCF5-7B73BF256BDA} = {96AEBBEE-4203-45F3-BCF5-7B73BF256BDA}
+		{5A4679EF-A8F3-4647-B722-441A36B3BA6B} = {5A4679EF-A8F3-4647-B722-441A36B3BA6B}
+		{23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE} = {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}
+		{BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937} = {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}
+		{6AE0E1F5-D3FF-43A3-90E1-2435E7493FB5} = {6AE0E1F5-D3FF-43A3-90E1-2435E7493FB5}
+		{6F42C5F8-16CD-43EE-8208-FD4573A69D85} = {6F42C5F8-16CD-43EE-8208-FD4573A69D85}
+	EndProjectSection
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Tracing-3.3", "HeuristicLab.Tracing\3.3\HeuristicLab.Tracing-3.3.csproj", "{EE2034D9-6E27-48A1-B855-42D45F69A4FC}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Common.Resources-3.3", "HeuristicLab.Common.Resources\3.3\HeuristicLab.Common.Resources-3.3.csproj", "{0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Optimizer-3.3", "HeuristicLab.Optimizer\3.3\HeuristicLab.Optimizer-3.3.csproj", "{C664305E-497C-4533-A140-967DEDB05C19}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Core.Views-3.3", "HeuristicLab.Core.Views\3.3\HeuristicLab.Core.Views-3.3.csproj", "{E226881D-315F-423D-B419-A766FE0D8685}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Collections-3.3", "HeuristicLab.Collections\3.3\HeuristicLab.Collections-3.3.csproj", "{958B43BC-CC5C-4FA2-8628-2B3B01D890B6}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.WinFormsUI-2.3.1", "HeuristicLab.ExtLibs\HeuristicLab.WinFormsUI\2.3.1\HeuristicLab.WinFormsUI-2.3.1\HeuristicLab.WinFormsUI-2.3.1.csproj", "{678E2145-8152-4E19-9646-07D439D00301}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WinFormsUI-2.3.1", "HeuristicLab.ExtLibs\HeuristicLab.WinFormsUI\2.3.1\WinFormsUI-2.3.1\WinFormsUI-2.3.1.csproj", "{1849A92E-DCFC-4E05-BB0A-D7B7A3DAFCFB}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.log4net-1.2.10.0", "HeuristicLab.ExtLibs\HeuristicLab.log4net\1.2.10.0\HeuristicLab.log4net-1.2.10.0.csproj", "{1B3063DB-D71C-4A6A-A359-883E8F53A140}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Data.Views-3.3", "HeuristicLab.Data.Views\3.3\HeuristicLab.Data.Views-3.3.csproj", "{72104A0B-90E7-42F3-9ABE-9BBBADD4B943}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Operators.Views-3.3", "HeuristicLab.Operators.Views\3.3\HeuristicLab.Operators.Views-3.3.csproj", "{C49CB749-8B24-4628-8003-E86475749410}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Parameters-3.3", "HeuristicLab.Parameters\3.3\HeuristicLab.Parameters-3.3.csproj", "{56F9106A-079F-4C61-92F6-86A84C2D84B7}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Parameters.Views-3.3", "HeuristicLab.Parameters.Views\3.3\HeuristicLab.Parameters.Views-3.3.csproj", "{AE5B1CE5-9862-4D6F-A700-D72CD9AEA295}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Netron.Diagramming.Core-3.0.2672.12446", "HeuristicLab.ExtLibs\HeuristicLab.Netron\3.0.2672.12446\Netron.Diagramming.Core-3.0.2672.12446\Netron.Diagramming.Core-3.0.2672.12446.csproj", "{96AEBBEE-4203-45F3-BCF5-7B73BF256BDA}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Netron-3.0.2672.12446", "HeuristicLab.ExtLibs\HeuristicLab.Netron\3.0.2672.12446\HeuristicLab.Netron-3.0.2672.12446\HeuristicLab.Netron-3.0.2672.12446.csproj", "{BB994448-2B21-4564-BB2E-38D8FFF8CF18}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Operators.Views.GraphVisualization-3.3", "HeuristicLab.Operators.Views.GraphVisualization\3.3\HeuristicLab.Operators.Views.GraphVisualization-3.3.csproj", "{57F38579-409D-4DD8-AB19-3F2C4A665126}"
+	ProjectSection(ProjectDependencies) = postProject
+		{BB994448-2B21-4564-BB2E-38D8FFF8CF18} = {BB994448-2B21-4564-BB2E-38D8FFF8CF18}
+	EndProjectSection
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.CodeEditor-3.3", "HeuristicLab.CodeEditor\3.3\HeuristicLab.CodeEditor-3.3.csproj", "{489CFE09-FDF7-4C89-BAB5-BD09CADD61AD}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.SharpDevelop-3.1.1.5327", "HeuristicLab.ExtLibs\HeuristicLab.SharpDevelop\3.1.1.5327\HeuristicLab.SharpDevelop-3.1.1.5327.csproj", "{4ABA047D-46DD-4608-9E4A-41C5F92FDBB1}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Optimization-3.3", "HeuristicLab.Optimization\3.3\HeuristicLab.Optimization-3.3.csproj", "{14AB8D24-25BC-400C-A846-4627AA945192}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Optimization.Views-3.3", "HeuristicLab.Optimization.Views\3.3\HeuristicLab.Optimization.Views-3.3.csproj", "{662B4B15-8F4D-4AE5-B3EB-D91C215F5AF2}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Analysis-3.3", "HeuristicLab.Analysis\3.3\HeuristicLab.Analysis-3.3.csproj", "{887425B4-4348-49ED-A457-B7D2C26DDBF9}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Analysis.Views-3.3", "HeuristicLab.Analysis.Views\3.3\HeuristicLab.Analysis.Views-3.3.csproj", "{76945D76-CA61-4147-9DC2-0ACDCDDF87F9}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Persistence-3.3.Tests", "HeuristicLab.Persistence\3.3\Tests\HeuristicLab.Persistence-3.3.Tests.csproj", "{BF7D9494-A586-457B-8DF9-ED599F9E6A71}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Optimization.Operators-3.3", "HeuristicLab.Optimization.Operators\3.3\HeuristicLab.Optimization.Operators-3.3.csproj", "{25087811-F74C-4128-BC86-8324271DA13E}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Encodings.PermutationEncoding-3.3", "HeuristicLab.Encodings.PermutationEncoding\3.3\HeuristicLab.Encodings.PermutationEncoding-3.3.csproj", "{DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Encodings.PermutationEncoding-3.3.Tests", "HeuristicLab.Encodings.PermutationEncoding\3.3\Tests\HeuristicLab.Encodings.PermutationEncoding-3.3.Tests.csproj", "{13CA37D6-4111-4E7B-BE2E-AF3DE462D384}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Encodings.RealVectorEncoding-3.3", "HeuristicLab.Encodings.RealVectorEncoding\3.3\HeuristicLab.Encodings.RealVectorEncoding-3.3.csproj", "{BB6D334A-4BB6-4674-9883-31A6EBB32CAB}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Encodings.RealVectorEncoding-3.3.Tests", "HeuristicLab.Encodings.RealVectorEncoding\3.3\Tests\HeuristicLab.Encodings.RealVectorEncoding-3.3.Tests.csproj", "{8FA6898D-E4B0-4E08-A6D6-F9F520E7959F}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Encodings.IntegerVectorEncoding-3.3", "HeuristicLab.Encodings.IntegerVectorEncoding\3.3\HeuristicLab.Encodings.IntegerVectorEncoding-3.3.csproj", "{DDFB14DD-2A85-493C-A52D-E69729BBAEB0}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Encodings.IntegerVectorEncoding-3.3.Tests", "HeuristicLab.Encodings.IntegerVectorEncoding\3.3\Tests\HeuristicLab.Encodings.IntegerVectorEncoding-3.3.Tests.csproj", "{6F18ED66-2333-4B5C-B882-AC99FB3CDCE5}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Encodings.BinaryVectorEncoding-3.3", "HeuristicLab.Encodings.BinaryVectorEncoding\3.3\HeuristicLab.Encodings.BinaryVectorEncoding-3.3.csproj", "{66D249C3-A01D-42A8-82A2-919BC8EC3D83}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Encodings.BinaryVectorEncoding-3.3.Tests", "HeuristicLab.Encodings.BinaryVectorEncoding\3.3\Tests\HeuristicLab.Encodings.BinaryVectorEncoding-3.3.Tests.csproj", "{30D6606B-96E7-436C-B5D7-EA1455848E37}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.OneMax-3.3", "HeuristicLab.Problems.OneMax\3.3\HeuristicLab.Problems.OneMax-3.3.csproj", "{F62BCD22-FB83-4444-9401-8031C2487A86}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.Knapsack-3.3", "HeuristicLab.Problems.Knapsack\3.3\HeuristicLab.Problems.Knapsack-3.3.csproj", "{E10F395F-C8A6-48AD-B470-9AA7A1F43809}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.Knapsack.Views-3.3", "HeuristicLab.Problems.Knapsack.Views\3.3\HeuristicLab.Problems.Knapsack.Views-3.3.csproj", "{A9EE65D9-405B-4C9C-B470-FC911AAC541B}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Algorithms.SimulatedAnnealing-3.3", "HeuristicLab.Algorithms.SimulatedAnnealing\3.3\HeuristicLab.Algorithms.SimulatedAnnealing-3.3.csproj", "{96E5ED5B-187D-4012-9CDA-D85CDAD38342}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Services.Deployment-3.3", "HeuristicLab.Services.Deployment\3.3\HeuristicLab.Services.Deployment-3.3.csproj", "{30D8C5F1-CD3A-4EC1-907F-430177A03FBE}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Services.Deployment.DataAccess-3.3", "HeuristicLab.Services.Deployment.DataAccess\3.3\HeuristicLab.Services.Deployment.DataAccess-3.3.csproj", "{EBEBA863-DD05-4331-BE25-5758B15F7407}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Algorithms.TabuSearch-3.3", "HeuristicLab.Algorithms.TabuSearch\3.3\HeuristicLab.Algorithms.TabuSearch-3.3.csproj", "{D58A232D-04BA-4186-B73E-0EC86FD31ABE}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Algorithms.LocalSearch-3.3", "HeuristicLab.Algorithms.LocalSearch\3.3\HeuristicLab.Algorithms.LocalSearch-3.3.csproj", "{4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Algorithms.EvolutionStrategy-3.3", "HeuristicLab.Algorithms.EvolutionStrategy\3.3\HeuristicLab.Algorithms.EvolutionStrategy-3.3.csproj", "{E0B45023-CB84-48A1-A1B7-8295B64B7BAD}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.TravelingSalesman-3.3", "HeuristicLab.Problems.TravelingSalesman\3.3\HeuristicLab.Problems.TravelingSalesman-3.3.csproj", "{D767C38D-8014-46B0-9A32-03A3AECCE34A}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.TravelingSalesman.Views-3.3", "HeuristicLab.Problems.TravelingSalesman.Views\3.3\HeuristicLab.Problems.TravelingSalesman.Views-3.3.csproj", "{CDA28124-ACD0-4231-8EB0-C510B361F84E}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.TestFunctions-3.3", "HeuristicLab.Problems.TestFunctions\3.3\HeuristicLab.Problems.TestFunctions-3.3.csproj", "{88B9B0E3-344E-4196-82A3-0F9732506FE8}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.TestFunctions.Views-3.3", "HeuristicLab.Problems.TestFunctions.Views\3.3\HeuristicLab.Problems.TestFunctions.Views-3.3.csproj", "{6AE0E1F5-D3FF-43A3-90E1-2435E7493FB5}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Algorithms.GeneticAlgorithm-3.3", "HeuristicLab.Algorithms.GeneticAlgorithm\3.3\HeuristicLab.Algorithms.GeneticAlgorithm-3.3.csproj", "{A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Algorithms.GeneticAlgorithm-3.3.Tests", "HeuristicLab.Algorithms.GeneticAlgorithm\3.3\Tests\HeuristicLab.Algorithms.GeneticAlgorithm-3.3.Tests.csproj", "{DE12659F-87C4-48E6-B2E3-4E73DD95A540}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Services.Deployment-3.3.Tests", "HeuristicLab.Services.Deployment\3.3\Tests\HeuristicLab.Services.Deployment-3.3.Tests.csproj", "{421D9CCA-5A48-4813-AB9C-ED7025F9CC35}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.3", "HeuristicLab.Encodings.SymbolicExpressionTreeEncoding\3.3\HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.3.csproj", "{125D3006-67F5-48CB-913E-73C0548F17FA}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.ArtificialAnt-3.3", "HeuristicLab.Problems.ArtificialAnt\3.3\HeuristicLab.Problems.ArtificialAnt-3.3.csproj", "{F5C0ECAC-EDBA-4024-872A-1F74AFCB20B4}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.ArtificialAnt.Views-3.3", "HeuristicLab.Problems.ArtificialAnt.Views\3.3\HeuristicLab.Problems.ArtificialAnt.Views-3.3.csproj", "{30DD3DA2-CA57-49DD-A5BA-50CEF19DB45F}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views-3.3", "HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views\3.3\HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views-3.3.csproj", "{6F42C5F8-16CD-43EE-8208-FD4573A69D85}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.DataAnalysis-3.3", "HeuristicLab.Problems.DataAnalysis\3.3\HeuristicLab.Problems.DataAnalysis-3.3.csproj", "{70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.DataAnalysis.Regression-3.3", "HeuristicLab.Problems.DataAnalysis.Regression\3.3\HeuristicLab.Problems.DataAnalysis.Regression-3.3.csproj", "{BDF86B1D-630E-4CE2-8A49-8C90B1BDE4C9}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.3.Tests", "HeuristicLab.Encodings.SymbolicExpressionTreeEncoding\3.3\Tests\HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.3.Tests.csproj", "{8824925E-3E00-4543-8293-7DDACE4737F8}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Algorithms.ParticleSwarmOptimization-3.3", "HeuristicLab.Algorithms.ParticleSwarmOptimization\3.3\HeuristicLab.Algorithms.ParticleSwarmOptimization-3.3.csproj", "{2C429157-9C34-4DD3-9D5F-B444B751E39A}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.DataAnalysis.Views-3.3", "HeuristicLab.Problems.DataAnalysis.Views\3.3\HeuristicLab.Problems.DataAnalysis.Views-3.3.csproj", "{799B0B38-E384-4A17-A73C-F211EB854592}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm-3.3", "HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm\3.3\HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm-3.3.csproj", "{F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Common-3.3", "HeuristicLab.Common\3.3\HeuristicLab.Common-3.3.csproj", "{A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Encodings.PermutationEncoding.Views-3.3", "HeuristicLab.Encodings.PermutationEncoding.Views\3.3\HeuristicLab.Encodings.PermutationEncoding.Views-3.3.csproj", "{3EAF1454-086D-44A2-8509-B1BA24DB1865}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.MainForm-3.3", "HeuristicLab.MainForm\3.3\HeuristicLab.MainForm-3.3.csproj", "{3BD61258-31DA-4B09-89C0-4F71FEF5F05A}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.MainForm.WindowsForms-3.3", "HeuristicLab.MainForm.WindowsForms\3.3\HeuristicLab.MainForm.WindowsForms-3.3.csproj", "{AB687BBE-1BFE-476B-906D-44237135431D}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.OneMax.Views-3.3", "HeuristicLab.Problems.OneMax.Views\3.3\HeuristicLab.Problems.OneMax.Views-3.3.csproj", "{4FE983A1-AAF8-4977-B9E2-52B3224510CB}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.DataAnalysis.Tests-3.3", "HeuristicLab.Problems.DataAnalysis\3.3\Tests\HeuristicLab.Problems.DataAnalysis.Tests-3.3.csproj", "{5A4679EF-A8F3-4647-B722-441A36B3BA6B}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.TestFunctions-3.3.Tests", "HeuristicLab.Problems.TestFunctions\3.3\Tests\HeuristicLab.Problems.TestFunctions-3.3.Tests.csproj", "{71D904D9-233B-44B2-ABB2-1525691228C5}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ALGLIB-2.5.0", "HeuristicLab.ExtLibs\HeuristicLab.ALGLIB\2.5.0\ALGLIB-2.5.0\ALGLIB-2.5.0.csproj", "{29E4B033-1FEF-4FE1-AE17-0A9319D7C54E}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.ALGLIB-2.5.0", "HeuristicLab.ExtLibs\HeuristicLab.ALGLIB\2.5.0\HeuristicLab.ALGLIB-2.5.0\HeuristicLab.ALGLIB-2.5.0.csproj", "{01BBCB5A-144A-4A7E-908E-079849E2F7CF}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LibSVM-1.6.3", "HeuristicLab.ExtLibs\HeuristicLab.LibSVM\1.6.3\LibSVM-1.6.3\LibSVM-1.6.3.csproj", "{A16F23B5-FB62-499E-A831-26953AA56FE2}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.LibSVM-1.6.3", "HeuristicLab.ExtLibs\HeuristicLab.LibSVM\1.6.3\HeuristicLab.LibSVM-1.6.3\HeuristicLab.LibSVM-1.6.3.csproj", "{89B50302-9CEE-4D13-9779-633EADCAE624}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.ExternalEvaluation-3.3", "HeuristicLab.Problems.ExternalEvaluation\3.3\HeuristicLab.Problems.ExternalEvaluation-3.3.csproj", "{25735DB4-8E54-4A2C-83E3-A60C76565E55}"
+	ProjectSection(ProjectDependencies) = postProject
+		{250ADE34-82FD-4BAE-86D5-985FBE589C4A} = {250ADE34-82FD-4BAE-86D5-985FBE589C4A}
+	EndProjectSection
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Algorithms.DataAnalysis-3.3", "HeuristicLab.Algorithms.DataAnalysis\3.3\HeuristicLab.Algorithms.DataAnalysis-3.3.csproj", "{A8D5676D-9662-437A-B44D-ECB4046CDE12}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtocolBuffers", "HeuristicLab.ExtLibs\HeuristicLab.ProtobufCS\0.9.1\ProtobufCS\src\ProtocolBuffers\ProtocolBuffers.csproj", "{6908BDCE-D925-43F3-94AC-A531E6DF2591}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtocolBuffers.Test", "HeuristicLab.ExtLibs\HeuristicLab.ProtobufCS\0.9.1\ProtobufCS\src\ProtocolBuffers.Test\ProtocolBuffers.Test.csproj", "{DD01ED24-3750-4567-9A23-1DB676A15610}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtoGen", "HeuristicLab.ExtLibs\HeuristicLab.ProtobufCS\0.9.1\ProtobufCS\src\ProtoGen\ProtoGen.csproj", "{250ADE34-82FD-4BAE-86D5-985FBE589C4A}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtoGen.Test", "HeuristicLab.ExtLibs\HeuristicLab.ProtobufCS\0.9.1\ProtobufCS\src\ProtoGen.Test\ProtoGen.Test.csproj", "{C268DA4C-4004-47DA-AF23-44C983281A68}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.ProtobufCS-0.9.1", "HeuristicLab.ExtLibs\HeuristicLab.ProtobufCS\0.9.1\HeuristicLab.ProtobufCS\HeuristicLab.ProtobufCS-0.9.1.csproj", "{236459CE-80CF-4991-972F-DE74C826BCCC}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.ExternalEvaluation.Views-3.3", "HeuristicLab.Problems.ExternalEvaluation.Views\3.3\HeuristicLab.Problems.ExternalEvaluation.Views-3.3.csproj", "{3081630C-9521-47D7-8075-1777C12F212C}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.VehicleRouting-3.3", "HeuristicLab.Problems.VehicleRouting\3.3\HeuristicLab.Problems.VehicleRouting-3.3.csproj", "{6410BDA6-3641-42B2-BABA-AA626E2F6F71}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.VehicleRouting.Views-3.3", "HeuristicLab.Problems.VehicleRouting.Views\3.3\HeuristicLab.Problems.VehicleRouting.Views-3.3.csproj", "{D1386FE7-682D-4E18-8C4F-CFD423FA5DD0}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.MainForm.WindowsForms-3.3.Tests", "HeuristicLab.MainForm.WindowsForms\3.3\Tests\HeuristicLab.MainForm.WindowsForms-3.3.Tests.csproj", "{9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Algorithms.NSGA2-3.3", "HeuristicLab.Algorithms.NSGA2\3.3\HeuristicLab.Algorithms.NSGA2-3.3.csproj", "{15452B9F-A436-4139-8EE7-DA72FB8D3664}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.DataAnalysis.MultiVariate-3.3", "HeuristicLab.Problems.DataAnalysis.MultiVariate\3.3\HeuristicLab.Problems.DataAnalysis.MultiVariate-3.3.csproj", "{2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.DataAnalysis.MultiVariate.Regression-3.3", "HeuristicLab.Problems.DataAnalysis.MultiVariate.Regression\3.3\HeuristicLab.Problems.DataAnalysis.MultiVariate.Regression-3.3.csproj", "{6024D74F-E29C-4E6B-843E-8851831B8E14}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.DataAnalysis.MultiVariate.Views-3.3", "HeuristicLab.Problems.DataAnalysis.MultiVariate.Views\3.3\HeuristicLab.Problems.DataAnalysis.MultiVariate.Views-3.3.csproj", "{9B6EA19A-F894-4E00-B5A3-970514284772}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.DataAnalysis.FeatureSelection-3.3", "HeuristicLab.Problems.DataAnalysis.FeatureSelection\3.3\HeuristicLab.Problems.DataAnalysis.FeatureSelection-3.3.csproj", "{7252890C-F207-4AD6-B3C9-764DF93F73CC}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.ExternalEvaluation.GP-3.3", "HeuristicLab.Problems.ExternalEvaluation.GP\3.3\HeuristicLab.Problems.ExternalEvaluation.GP-3.3.csproj", "{E86E215D-E3CE-4244-978D-555D4E17AC09}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis-3.3", "HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis\3.3\HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis-3.3.csproj", "{B3310CE1-0C05-410F-BA77-8DAD6CE3F803}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views-3.3", "HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views\3.3\HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views-3.3.csproj", "{C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.ExternalEvaluation.GP.Views-3.3", "HeuristicLab.Problems.ExternalEvaluation.GP.Views\3.3\HeuristicLab.Problems.ExternalEvaluation.GP.Views-3.3.csproj", "{1778134B-866B-4CB3-BFC0-52B2FAAA5777}"
+EndProject
+Global
+	GlobalSection(TestCaseManagementSettings) = postSolution
+		CategoryFile = HeuristicLab 3.3.vsmdi
+	EndGlobalSection
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
+		Debug|x64 = Debug|x64
+		Debug|x86 = Debug|x86
+		Release|Any CPU = Release|Any CPU
+		Release|x64 = Release|x64
+		Release|x86 = Release|x86
+		Services|Any CPU = Services|Any CPU
+		Services|x64 = Services|x64
+		Services|x86 = Services|x86
+		Silverlight2|Any CPU = Silverlight2|Any CPU
+		Silverlight2|x64 = Silverlight2|x64
+		Silverlight2|x86 = Silverlight2|x86
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{94186A6A-5176-4402-AE83-886557B53CCA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{94186A6A-5176-4402-AE83-886557B53CCA}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{94186A6A-5176-4402-AE83-886557B53CCA}.Debug|x64.ActiveCfg = Debug|x64
+		{94186A6A-5176-4402-AE83-886557B53CCA}.Debug|x64.Build.0 = Debug|x64
+		{94186A6A-5176-4402-AE83-886557B53CCA}.Debug|x86.ActiveCfg = Debug|x86
+		{94186A6A-5176-4402-AE83-886557B53CCA}.Debug|x86.Build.0 = Debug|x86
+		{94186A6A-5176-4402-AE83-886557B53CCA}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{94186A6A-5176-4402-AE83-886557B53CCA}.Release|Any CPU.Build.0 = Release|Any CPU
+		{94186A6A-5176-4402-AE83-886557B53CCA}.Release|x64.ActiveCfg = Release|x64
+		{94186A6A-5176-4402-AE83-886557B53CCA}.Release|x64.Build.0 = Release|x64
+		{94186A6A-5176-4402-AE83-886557B53CCA}.Release|x86.ActiveCfg = Release|x86
+		{94186A6A-5176-4402-AE83-886557B53CCA}.Release|x86.Build.0 = Release|x86
+		{94186A6A-5176-4402-AE83-886557B53CCA}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{94186A6A-5176-4402-AE83-886557B53CCA}.Services|x64.ActiveCfg = Release|x64
+		{94186A6A-5176-4402-AE83-886557B53CCA}.Services|x86.ActiveCfg = Release|x86
+		{94186A6A-5176-4402-AE83-886557B53CCA}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+		{94186A6A-5176-4402-AE83-886557B53CCA}.Silverlight2|x64.ActiveCfg = Release|x64
+		{94186A6A-5176-4402-AE83-886557B53CCA}.Silverlight2|x64.Build.0 = Release|x64
+		{94186A6A-5176-4402-AE83-886557B53CCA}.Silverlight2|x86.ActiveCfg = Release|x64
+		{102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Debug|x64.ActiveCfg = Debug|x64
+		{102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Debug|x64.Build.0 = Debug|x64
+		{102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Debug|x86.ActiveCfg = Debug|x86
+		{102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Debug|x86.Build.0 = Debug|x86
+		{102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Release|Any CPU.Build.0 = Release|Any CPU
+		{102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Release|x64.ActiveCfg = Release|x64
+		{102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Release|x64.Build.0 = Release|x64
+		{102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Release|x86.ActiveCfg = Release|x86
+		{102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Release|x86.Build.0 = Release|x86
+		{102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Services|x64.ActiveCfg = Release|x64
+		{102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Services|x86.ActiveCfg = Release|x86
+		{102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+		{102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Silverlight2|x64.ActiveCfg = Release|x86
+		{102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Silverlight2|x86.ActiveCfg = Release|x86
+		{102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Silverlight2|x86.Build.0 = Release|x86
+		{A9E282EA-180F-4233-B809-AEDF0787545C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{A9E282EA-180F-4233-B809-AEDF0787545C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{A9E282EA-180F-4233-B809-AEDF0787545C}.Debug|x64.ActiveCfg = Debug|x64
+		{A9E282EA-180F-4233-B809-AEDF0787545C}.Debug|x64.Build.0 = Debug|x64
+		{A9E282EA-180F-4233-B809-AEDF0787545C}.Debug|x86.ActiveCfg = Debug|x86
+		{A9E282EA-180F-4233-B809-AEDF0787545C}.Debug|x86.Build.0 = Debug|x86
+		{A9E282EA-180F-4233-B809-AEDF0787545C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{A9E282EA-180F-4233-B809-AEDF0787545C}.Release|Any CPU.Build.0 = Release|Any CPU
+		{A9E282EA-180F-4233-B809-AEDF0787545C}.Release|x64.ActiveCfg = Release|x64
+		{A9E282EA-180F-4233-B809-AEDF0787545C}.Release|x64.Build.0 = Release|x64
+		{A9E282EA-180F-4233-B809-AEDF0787545C}.Release|x86.ActiveCfg = Release|x86
+		{A9E282EA-180F-4233-B809-AEDF0787545C}.Release|x86.Build.0 = Release|x86
+		{A9E282EA-180F-4233-B809-AEDF0787545C}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{A9E282EA-180F-4233-B809-AEDF0787545C}.Services|x64.ActiveCfg = Release|x64
+		{A9E282EA-180F-4233-B809-AEDF0787545C}.Services|x86.ActiveCfg = Release|x86
+		{A9E282EA-180F-4233-B809-AEDF0787545C}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+		{A9E282EA-180F-4233-B809-AEDF0787545C}.Silverlight2|x64.ActiveCfg = Release|x86
+		{A9E282EA-180F-4233-B809-AEDF0787545C}.Silverlight2|x86.ActiveCfg = Release|x86
+		{A9E282EA-180F-4233-B809-AEDF0787545C}.Silverlight2|x86.Build.0 = Release|x86
+		{C36BD924-A541-4A00-AFA8-41701378DDC5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{C36BD924-A541-4A00-AFA8-41701378DDC5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{C36BD924-A541-4A00-AFA8-41701378DDC5}.Debug|x64.ActiveCfg = Debug|x64
+		{C36BD924-A541-4A00-AFA8-41701378DDC5}.Debug|x64.Build.0 = Debug|x64
+		{C36BD924-A541-4A00-AFA8-41701378DDC5}.Debug|x86.ActiveCfg = Debug|x86
+		{C36BD924-A541-4A00-AFA8-41701378DDC5}.Debug|x86.Build.0 = Debug|x86
+		{C36BD924-A541-4A00-AFA8-41701378DDC5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{C36BD924-A541-4A00-AFA8-41701378DDC5}.Release|Any CPU.Build.0 = Release|Any CPU
+		{C36BD924-A541-4A00-AFA8-41701378DDC5}.Release|x64.ActiveCfg = Release|x64
+		{C36BD924-A541-4A00-AFA8-41701378DDC5}.Release|x64.Build.0 = Release|x64
+		{C36BD924-A541-4A00-AFA8-41701378DDC5}.Release|x86.ActiveCfg = Release|x86
+		{C36BD924-A541-4A00-AFA8-41701378DDC5}.Release|x86.Build.0 = Release|x86
+		{C36BD924-A541-4A00-AFA8-41701378DDC5}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{C36BD924-A541-4A00-AFA8-41701378DDC5}.Services|x64.ActiveCfg = Release|x64
+		{C36BD924-A541-4A00-AFA8-41701378DDC5}.Services|x86.ActiveCfg = Release|x86
+		{C36BD924-A541-4A00-AFA8-41701378DDC5}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+		{C36BD924-A541-4A00-AFA8-41701378DDC5}.Silverlight2|x64.ActiveCfg = Release|x64
+		{C36BD924-A541-4A00-AFA8-41701378DDC5}.Silverlight2|x64.Build.0 = Release|x64
+		{C36BD924-A541-4A00-AFA8-41701378DDC5}.Silverlight2|x86.ActiveCfg = Release|x64
+		{BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Debug|x64.ActiveCfg = Debug|x64
+		{BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Debug|x64.Build.0 = Debug|x64
+		{BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Debug|x86.ActiveCfg = Debug|x86
+		{BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Debug|x86.Build.0 = Debug|x86
+		{BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Release|Any CPU.Build.0 = Release|Any CPU
+		{BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Release|x64.ActiveCfg = Release|x64
+		{BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Release|x64.Build.0 = Release|x64
+		{BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Release|x86.ActiveCfg = Release|x86
+		{BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Release|x86.Build.0 = Release|x86
+		{BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Services|x64.ActiveCfg = Release|x64
+		{BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Services|x86.ActiveCfg = Release|x86
+		{BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+		{BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Silverlight2|x64.ActiveCfg = Release|x64
+		{BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Silverlight2|x64.Build.0 = Release|x64
+		{BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Silverlight2|x86.ActiveCfg = Release|x64
+		{23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Debug|x64.ActiveCfg = Debug|x64
+		{23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Debug|x64.Build.0 = Debug|x64
+		{23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Debug|x86.ActiveCfg = Debug|x86
+		{23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Debug|x86.Build.0 = Debug|x86
+		{23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Release|Any CPU.Build.0 = Release|Any CPU
+		{23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Release|x64.ActiveCfg = Release|x64
+		{23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Release|x64.Build.0 = Release|x64
+		{23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Release|x86.ActiveCfg = Release|x86
+		{23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Release|x86.Build.0 = Release|x86
+		{23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Services|x64.ActiveCfg = Release|x64
+		{23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Services|x86.ActiveCfg = Release|x86
+		{23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+		{23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Silverlight2|x64.ActiveCfg = Release|x64
+		{23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Silverlight2|x64.Build.0 = Release|x64
+		{23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Silverlight2|x86.ActiveCfg = Release|x64
+		{DC3D7072-7999-4719-B65D-3997744D5DC1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{DC3D7072-7999-4719-B65D-3997744D5DC1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{DC3D7072-7999-4719-B65D-3997744D5DC1}.Debug|x64.ActiveCfg = Debug|x64
+		{DC3D7072-7999-4719-B65D-3997744D5DC1}.Debug|x64.Build.0 = Debug|x64
+		{DC3D7072-7999-4719-B65D-3997744D5DC1}.Debug|x86.ActiveCfg = Debug|x86
+		{DC3D7072-7999-4719-B65D-3997744D5DC1}.Debug|x86.Build.0 = Debug|x86
+		{DC3D7072-7999-4719-B65D-3997744D5DC1}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{DC3D7072-7999-4719-B65D-3997744D5DC1}.Release|Any CPU.Build.0 = Release|Any CPU
+		{DC3D7072-7999-4719-B65D-3997744D5DC1}.Release|x64.ActiveCfg = Release|x64
+		{DC3D7072-7999-4719-B65D-3997744D5DC1}.Release|x64.Build.0 = Release|x64
+		{DC3D7072-7999-4719-B65D-3997744D5DC1}.Release|x86.ActiveCfg = Release|x86
+		{DC3D7072-7999-4719-B65D-3997744D5DC1}.Release|x86.Build.0 = Release|x86
+		{DC3D7072-7999-4719-B65D-3997744D5DC1}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{DC3D7072-7999-4719-B65D-3997744D5DC1}.Services|x64.ActiveCfg = Release|x64
+		{DC3D7072-7999-4719-B65D-3997744D5DC1}.Services|x86.ActiveCfg = Release|x86
+		{DC3D7072-7999-4719-B65D-3997744D5DC1}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+		{DC3D7072-7999-4719-B65D-3997744D5DC1}.Silverlight2|x64.ActiveCfg = Release|x64
+		{DC3D7072-7999-4719-B65D-3997744D5DC1}.Silverlight2|x64.Build.0 = Release|x64
+		{DC3D7072-7999-4719-B65D-3997744D5DC1}.Silverlight2|x86.ActiveCfg = Release|x64
+		{F4539FB6-4708-40C9-BE64-0A1390AEA197}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{F4539FB6-4708-40C9-BE64-0A1390AEA197}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{F4539FB6-4708-40C9-BE64-0A1390AEA197}.Debug|x64.ActiveCfg = Debug|x64
+		{F4539FB6-4708-40C9-BE64-0A1390AEA197}.Debug|x64.Build.0 = Debug|x64
+		{F4539FB6-4708-40C9-BE64-0A1390AEA197}.Debug|x86.ActiveCfg = Debug|x86
+		{F4539FB6-4708-40C9-BE64-0A1390AEA197}.Debug|x86.Build.0 = Debug|x86
+		{F4539FB6-4708-40C9-BE64-0A1390AEA197}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{F4539FB6-4708-40C9-BE64-0A1390AEA197}.Release|Any CPU.Build.0 = Release|Any CPU
+		{F4539FB6-4708-40C9-BE64-0A1390AEA197}.Release|x64.ActiveCfg = Release|x64
+		{F4539FB6-4708-40C9-BE64-0A1390AEA197}.Release|x64.Build.0 = Release|x64
+		{F4539FB6-4708-40C9-BE64-0A1390AEA197}.Release|x86.ActiveCfg = Release|x86
+		{F4539FB6-4708-40C9-BE64-0A1390AEA197}.Release|x86.Build.0 = Release|x86
+		{F4539FB6-4708-40C9-BE64-0A1390AEA197}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{F4539FB6-4708-40C9-BE64-0A1390AEA197}.Services|x64.ActiveCfg = Release|x64
+		{F4539FB6-4708-40C9-BE64-0A1390AEA197}.Services|x86.ActiveCfg = Release|x86
+		{F4539FB6-4708-40C9-BE64-0A1390AEA197}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+		{F4539FB6-4708-40C9-BE64-0A1390AEA197}.Silverlight2|x64.ActiveCfg = Release|x64
+		{F4539FB6-4708-40C9-BE64-0A1390AEA197}.Silverlight2|x64.Build.0 = Release|x64
+		{F4539FB6-4708-40C9-BE64-0A1390AEA197}.Silverlight2|x86.ActiveCfg = Release|x64
+		{2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Debug|x64.ActiveCfg = Debug|x64
+		{2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Debug|x64.Build.0 = Debug|x64
+		{2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Debug|x86.ActiveCfg = Debug|x86
+		{2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Debug|x86.Build.0 = Debug|x86
+		{2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Release|Any CPU.Build.0 = Release|Any CPU
+		{2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Release|x64.ActiveCfg = Release|x64
+		{2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Release|x64.Build.0 = Release|x64
+		{2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Release|x86.ActiveCfg = Release|x86
+		{2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Release|x86.Build.0 = Release|x86
+		{2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Services|x64.ActiveCfg = Release|x64
+		{2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Services|x86.ActiveCfg = Release|x86
+		{2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+		{2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Silverlight2|x64.ActiveCfg = Release|x64
+		{2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Silverlight2|x64.Build.0 = Release|x64
+		{2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Silverlight2|x86.ActiveCfg = Release|x64
+		{6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}.Debug|x64.ActiveCfg = Debug|x64
+		{6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}.Debug|x64.Build.0 = Debug|x64
+		{6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}.Debug|x86.ActiveCfg = Debug|x86
+		{6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}.Debug|x86.Build.0 = Debug|x86
+		{6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}.Release|Any CPU.Build.0 = Release|Any CPU
+		{6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}.Release|x64.ActiveCfg = Release|x64
+		{6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}.Release|x64.Build.0 = Release|x64
+		{6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}.Release|x86.ActiveCfg = Release|x86
+		{6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}.Release|x86.Build.0 = Release|x86
+		{6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}.Services|x64.ActiveCfg = Release|x64
+		{6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}.Services|x86.ActiveCfg = Release|x86
+		{6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+		{6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}.Silverlight2|x64.ActiveCfg = Release|x64
+		{6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}.Silverlight2|x64.Build.0 = Release|x64
+		{6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}.Silverlight2|x86.ActiveCfg = Release|x64
+		{B1DCDECA-B56E-41D5-9850-EF0D3A77DEAF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{B1DCDECA-B56E-41D5-9850-EF0D3A77DEAF}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{B1DCDECA-B56E-41D5-9850-EF0D3A77DEAF}.Debug|x64.ActiveCfg = Debug|x64
+		{B1DCDECA-B56E-41D5-9850-EF0D3A77DEAF}.Debug|x64.Build.0 = Debug|x64
+		{B1DCDECA-B56E-41D5-9850-EF0D3A77DEAF}.Debug|x86.ActiveCfg = Debug|x86
+		{B1DCDECA-B56E-41D5-9850-EF0D3A77DEAF}.Debug|x86.Build.0 = Debug|x86
+		{B1DCDECA-B56E-41D5-9850-EF0D3A77DEAF}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{B1DCDECA-B56E-41D5-9850-EF0D3A77DEAF}.Release|Any CPU.Build.0 = Release|Any CPU
+		{B1DCDECA-B56E-41D5-9850-EF0D3A77DEAF}.Release|x64.ActiveCfg = Release|x64
+		{B1DCDECA-B56E-41D5-9850-EF0D3A77DEAF}.Release|x64.Build.0 = Release|x64
+		{B1DCDECA-B56E-41D5-9850-EF0D3A77DEAF}.Release|x86.ActiveCfg = Release|x86
+		{B1DCDECA-B56E-41D5-9850-EF0D3A77DEAF}.Release|x86.Build.0 = Release|x86
+		{B1DCDECA-B56E-41D5-9850-EF0D3A77DEAF}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{B1DCDECA-B56E-41D5-9850-EF0D3A77DEAF}.Services|x64.ActiveCfg = Release|x64
+		{B1DCDECA-B56E-41D5-9850-EF0D3A77DEAF}.Services|x86.ActiveCfg = Release|x86
+		{B1DCDECA-B56E-41D5-9850-EF0D3A77DEAF}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+		{B1DCDECA-B56E-41D5-9850-EF0D3A77DEAF}.Silverlight2|x64.ActiveCfg = Release|x64
+		{B1DCDECA-B56E-41D5-9850-EF0D3A77DEAF}.Silverlight2|x64.Build.0 = Release|x64
+		{B1DCDECA-B56E-41D5-9850-EF0D3A77DEAF}.Silverlight2|x86.ActiveCfg = Release|x64
+		{EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Debug|x64.ActiveCfg = Debug|x64
+		{EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Debug|x64.Build.0 = Debug|x64
+		{EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Debug|x86.ActiveCfg = Debug|x86
+		{EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Debug|x86.Build.0 = Debug|x86
+		{EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Release|Any CPU.Build.0 = Release|Any CPU
+		{EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Release|x64.ActiveCfg = Release|x64
+		{EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Release|x64.Build.0 = Release|x64
+		{EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Release|x86.ActiveCfg = Release|x86
+		{EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Release|x86.Build.0 = Release|x86
+		{EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Services|x64.ActiveCfg = Release|x64
+		{EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Services|x86.ActiveCfg = Release|x86
+		{EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+		{EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Silverlight2|x64.ActiveCfg = Release|x86
+		{EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Silverlight2|x86.ActiveCfg = Release|x86
+		{EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Silverlight2|x86.Build.0 = Release|x86
+		{0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}.Debug|x64.ActiveCfg = Debug|x64
+		{0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}.Debug|x64.Build.0 = Debug|x64
+		{0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}.Debug|x86.ActiveCfg = Debug|x86
+		{0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}.Debug|x86.Build.0 = Debug|x86
+		{0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}.Release|Any CPU.Build.0 = Release|Any CPU
+		{0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}.Release|x64.ActiveCfg = Release|x64
+		{0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}.Release|x64.Build.0 = Release|x64
+		{0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}.Release|x86.ActiveCfg = Release|x86
+		{0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}.Release|x86.Build.0 = Release|x86
+		{0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}.Services|x64.ActiveCfg = Release|x64
+		{0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}.Services|x86.ActiveCfg = Release|x86
+		{0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+		{0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}.Silverlight2|x64.ActiveCfg = Release|x64
+		{0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}.Silverlight2|x64.Build.0 = Release|x64
+		{0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}.Silverlight2|x86.ActiveCfg = Release|x64
+		{C664305E-497C-4533-A140-967DEDB05C19}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{C664305E-497C-4533-A140-967DEDB05C19}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{C664305E-497C-4533-A140-967DEDB05C19}.Debug|x64.ActiveCfg = Debug|x64
+		{C664305E-497C-4533-A140-967DEDB05C19}.Debug|x64.Build.0 = Debug|x64
+		{C664305E-497C-4533-A140-967DEDB05C19}.Debug|x86.ActiveCfg = Debug|x86
+		{C664305E-497C-4533-A140-967DEDB05C19}.Debug|x86.Build.0 = Debug|x86
+		{C664305E-497C-4533-A140-967DEDB05C19}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{C664305E-497C-4533-A140-967DEDB05C19}.Release|Any CPU.Build.0 = Release|Any CPU
+		{C664305E-497C-4533-A140-967DEDB05C19}.Release|x64.ActiveCfg = Release|x64
+		{C664305E-497C-4533-A140-967DEDB05C19}.Release|x64.Build.0 = Release|x64
+		{C664305E-497C-4533-A140-967DEDB05C19}.Release|x86.ActiveCfg = Release|x86
+		{C664305E-497C-4533-A140-967DEDB05C19}.Release|x86.Build.0 = Release|x86
+		{C664305E-497C-4533-A140-967DEDB05C19}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{C664305E-497C-4533-A140-967DEDB05C19}.Services|x64.ActiveCfg = Release|x64
+		{C664305E-497C-4533-A140-967DEDB05C19}.Services|x86.ActiveCfg = Release|x86
+		{C664305E-497C-4533-A140-967DEDB05C19}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+		{C664305E-497C-4533-A140-967DEDB05C19}.Silverlight2|x64.ActiveCfg = Release|x86
+		{C664305E-497C-4533-A140-967DEDB05C19}.Silverlight2|x86.ActiveCfg = Release|x86
+		{C664305E-497C-4533-A140-967DEDB05C19}.Silverlight2|x86.Build.0 = Release|x86
+		{E226881D-315F-423D-B419-A766FE0D8685}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{E226881D-315F-423D-B419-A766FE0D8685}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{E226881D-315F-423D-B419-A766FE0D8685}.Debug|x64.ActiveCfg = Debug|x64
+		{E226881D-315F-423D-B419-A766FE0D8685}.Debug|x64.Build.0 = Debug|x64
+		{E226881D-315F-423D-B419-A766FE0D8685}.Debug|x86.ActiveCfg = Debug|x86
+		{E226881D-315F-423D-B419-A766FE0D8685}.Debug|x86.Build.0 = Debug|x86
+		{E226881D-315F-423D-B419-A766FE0D8685}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{E226881D-315F-423D-B419-A766FE0D8685}.Release|Any CPU.Build.0 = Release|Any CPU
+		{E226881D-315F-423D-B419-A766FE0D8685}.Release|x64.ActiveCfg = Release|x64
+		{E226881D-315F-423D-B419-A766FE0D8685}.Release|x64.Build.0 = Release|x64
+		{E226881D-315F-423D-B419-A766FE0D8685}.Release|x86.ActiveCfg = Release|x86
+		{E226881D-315F-423D-B419-A766FE0D8685}.Release|x86.Build.0 = Release|x86
+		{E226881D-315F-423D-B419-A766FE0D8685}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{E226881D-315F-423D-B419-A766FE0D8685}.Services|x64.ActiveCfg = Release|x64
+		{E226881D-315F-423D-B419-A766FE0D8685}.Services|x86.ActiveCfg = Release|x86
+		{E226881D-315F-423D-B419-A766FE0D8685}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+		{E226881D-315F-423D-B419-A766FE0D8685}.Silverlight2|x64.ActiveCfg = Release|x86
+		{E226881D-315F-423D-B419-A766FE0D8685}.Silverlight2|x86.ActiveCfg = Release|x86
+		{E226881D-315F-423D-B419-A766FE0D8685}.Silverlight2|x86.Build.0 = Release|x86
+		{958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Debug|x64.ActiveCfg = Debug|x64
+		{958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Debug|x64.Build.0 = Debug|x64
+		{958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Debug|x86.ActiveCfg = Debug|x86
+		{958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Debug|x86.Build.0 = Debug|x86
+		{958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Release|Any CPU.Build.0 = Release|Any CPU
+		{958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Release|x64.ActiveCfg = Release|x64
+		{958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Release|x64.Build.0 = Release|x64
+		{958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Release|x86.ActiveCfg = Release|x86
+		{958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Release|x86.Build.0 = Release|x86
+		{958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Services|x64.ActiveCfg = Release|x64
+		{958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Services|x86.ActiveCfg = Release|x86
+		{958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+		{958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Silverlight2|x64.ActiveCfg = Release|x86
+		{958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Silverlight2|x86.ActiveCfg = Release|x86
+		{958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Silverlight2|x86.Build.0 = Release|x86
+		{678E2145-8152-4E19-9646-07D439D00301}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{678E2145-8152-4E19-9646-07D439D00301}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{678E2145-8152-4E19-9646-07D439D00301}.Debug|x64.ActiveCfg = Debug|x64
+		{678E2145-8152-4E19-9646-07D439D00301}.Debug|x64.Build.0 = Debug|x64
+		{678E2145-8152-4E19-9646-07D439D00301}.Debug|x86.ActiveCfg = Debug|x86
+		{678E2145-8152-4E19-9646-07D439D00301}.Debug|x86.Build.0 = Debug|x86
+		{678E2145-8152-4E19-9646-07D439D00301}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{678E2145-8152-4E19-9646-07D439D00301}.Release|Any CPU.Build.0 = Release|Any CPU
+		{678E2145-8152-4E19-9646-07D439D00301}.Release|x64.ActiveCfg = Release|x64
+		{678E2145-8152-4E19-9646-07D439D00301}.Release|x64.Build.0 = Release|x64
+		{678E2145-8152-4E19-9646-07D439D00301}.Release|x86.ActiveCfg = Release|x86
+		{678E2145-8152-4E19-9646-07D439D00301}.Release|x86.Build.0 = Release|x86
+		{678E2145-8152-4E19-9646-07D439D00301}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{678E2145-8152-4E19-9646-07D439D00301}.Services|x64.ActiveCfg = Release|x64
+		{678E2145-8152-4E19-9646-07D439D00301}.Services|x86.ActiveCfg = Release|x86
+		{678E2145-8152-4E19-9646-07D439D00301}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+		{678E2145-8152-4E19-9646-07D439D00301}.Silverlight2|x64.ActiveCfg = Release|x86
+		{678E2145-8152-4E19-9646-07D439D00301}.Silverlight2|x86.ActiveCfg = Release|x86
+		{678E2145-8152-4E19-9646-07D439D00301}.Silverlight2|x86.Build.0 = Release|x86
+		{1849A92E-DCFC-4E05-BB0A-D7B7A3DAFCFB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{1849A92E-DCFC-4E05-BB0A-D7B7A3DAFCFB}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{1849A92E-DCFC-4E05-BB0A-D7B7A3DAFCFB}.Debug|x64.ActiveCfg = Debug|x64
+		{1849A92E-DCFC-4E05-BB0A-D7B7A3DAFCFB}.Debug|x64.Build.0 = Debug|x64
+		{1849A92E-DCFC-4E05-BB0A-D7B7A3DAFCFB}.Debug|x86.ActiveCfg = Debug|x86
+		{1849A92E-DCFC-4E05-BB0A-D7B7A3DAFCFB}.Debug|x86.Build.0 = Debug|x86
+		{1849A92E-DCFC-4E05-BB0A-D7B7A3DAFCFB}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{1849A92E-DCFC-4E05-BB0A-D7B7A3DAFCFB}.Release|Any CPU.Build.0 = Release|Any CPU
+		{1849A92E-DCFC-4E05-BB0A-D7B7A3DAFCFB}.Release|x64.ActiveCfg = Release|x64
+		{1849A92E-DCFC-4E05-BB0A-D7B7A3DAFCFB}.Release|x64.Build.0 = Release|x64
+		{1849A92E-DCFC-4E05-BB0A-D7B7A3DAFCFB}.Release|x86.ActiveCfg = Release|x86
+		{1849A92E-DCFC-4E05-BB0A-D7B7A3DAFCFB}.Release|x86.Build.0 = Release|x86
+		{1849A92E-DCFC-4E05-BB0A-D7B7A3DAFCFB}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{1849A92E-DCFC-4E05-BB0A-D7B7A3DAFCFB}.Services|x64.ActiveCfg = Release|x64
+		{1849A92E-DCFC-4E05-BB0A-D7B7A3DAFCFB}.Services|x86.ActiveCfg = Release|x86
+		{1849A92E-DCFC-4E05-BB0A-D7B7A3DAFCFB}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+		{1849A92E-DCFC-4E05-BB0A-D7B7A3DAFCFB}.Silverlight2|x64.ActiveCfg = Release|x64
+		{1849A92E-DCFC-4E05-BB0A-D7B7A3DAFCFB}.Silverlight2|x64.Build.0 = Release|x64
+		{1849A92E-DCFC-4E05-BB0A-D7B7A3DAFCFB}.Silverlight2|x86.ActiveCfg = Release|x64
+		{1B3063DB-D71C-4A6A-A359-883E8F53A140}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{1B3063DB-D71C-4A6A-A359-883E8F53A140}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{1B3063DB-D71C-4A6A-A359-883E8F53A140}.Debug|x64.ActiveCfg = Debug|x64
+		{1B3063DB-D71C-4A6A-A359-883E8F53A140}.Debug|x64.Build.0 = Debug|x64
+		{1B3063DB-D71C-4A6A-A359-883E8F53A140}.Debug|x86.ActiveCfg = Debug|x86
+		{1B3063DB-D71C-4A6A-A359-883E8F53A140}.Debug|x86.Build.0 = Debug|x86
+		{1B3063DB-D71C-4A6A-A359-883E8F53A140}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{1B3063DB-D71C-4A6A-A359-883E8F53A140}.Release|Any CPU.Build.0 = Release|Any CPU
+		{1B3063DB-D71C-4A6A-A359-883E8F53A140}.Release|x64.ActiveCfg = Release|x64
+		{1B3063DB-D71C-4A6A-A359-883E8F53A140}.Release|x64.Build.0 = Release|x64
+		{1B3063DB-D71C-4A6A-A359-883E8F53A140}.Release|x86.ActiveCfg = Release|x86
+		{1B3063DB-D71C-4A6A-A359-883E8F53A140}.Release|x86.Build.0 = Release|x86
+		{1B3063DB-D71C-4A6A-A359-883E8F53A140}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{1B3063DB-D71C-4A6A-A359-883E8F53A140}.Services|x64.ActiveCfg = Release|x64
+		{1B3063DB-D71C-4A6A-A359-883E8F53A140}.Services|x86.ActiveCfg = Release|x86
+		{1B3063DB-D71C-4A6A-A359-883E8F53A140}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+		{1B3063DB-D71C-4A6A-A359-883E8F53A140}.Silverlight2|x64.ActiveCfg = Release|x86
+		{1B3063DB-D71C-4A6A-A359-883E8F53A140}.Silverlight2|x86.ActiveCfg = Release|x86
+		{1B3063DB-D71C-4A6A-A359-883E8F53A140}.Silverlight2|x86.Build.0 = Release|x86
+		{72104A0B-90E7-42F3-9ABE-9BBBADD4B943}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{72104A0B-90E7-42F3-9ABE-9BBBADD4B943}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{72104A0B-90E7-42F3-9ABE-9BBBADD4B943}.Debug|x64.ActiveCfg = Debug|x64
+		{72104A0B-90E7-42F3-9ABE-9BBBADD4B943}.Debug|x64.Build.0 = Debug|x64
+		{72104A0B-90E7-42F3-9ABE-9BBBADD4B943}.Debug|x86.ActiveCfg = Debug|x86
+		{72104A0B-90E7-42F3-9ABE-9BBBADD4B943}.Debug|x86.Build.0 = Debug|x86
+		{72104A0B-90E7-42F3-9ABE-9BBBADD4B943}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{72104A0B-90E7-42F3-9ABE-9BBBADD4B943}.Release|Any CPU.Build.0 = Release|Any CPU
+		{72104A0B-90E7-42F3-9ABE-9BBBADD4B943}.Release|x64.ActiveCfg = Release|x64
+		{72104A0B-90E7-42F3-9ABE-9BBBADD4B943}.Release|x64.Build.0 = Release|x64
+		{72104A0B-90E7-42F3-9ABE-9BBBADD4B943}.Release|x86.ActiveCfg = Release|x86
+		{72104A0B-90E7-42F3-9ABE-9BBBADD4B943}.Release|x86.Build.0 = Release|x86
+		{72104A0B-90E7-42F3-9ABE-9BBBADD4B943}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{72104A0B-90E7-42F3-9ABE-9BBBADD4B943}.Services|x64.ActiveCfg = Release|x64
+		{72104A0B-90E7-42F3-9ABE-9BBBADD4B943}.Services|x86.ActiveCfg = Release|x86
+		{72104A0B-90E7-42F3-9ABE-9BBBADD4B943}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+		{72104A0B-90E7-42F3-9ABE-9BBBADD4B943}.Silverlight2|x64.ActiveCfg = Release|x86
+		{72104A0B-90E7-42F3-9ABE-9BBBADD4B943}.Silverlight2|x86.ActiveCfg = Release|x86
+		{72104A0B-90E7-42F3-9ABE-9BBBADD4B943}.Silverlight2|x86.Build.0 = Release|x86
+		{C49CB749-8B24-4628-8003-E86475749410}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{C49CB749-8B24-4628-8003-E86475749410}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{C49CB749-8B24-4628-8003-E86475749410}.Debug|x64.ActiveCfg = Debug|x64
+		{C49CB749-8B24-4628-8003-E86475749410}.Debug|x64.Build.0 = Debug|x64
+		{C49CB749-8B24-4628-8003-E86475749410}.Debug|x86.ActiveCfg = Debug|x86
+		{C49CB749-8B24-4628-8003-E86475749410}.Debug|x86.Build.0 = Debug|x86
+		{C49CB749-8B24-4628-8003-E86475749410}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{C49CB749-8B24-4628-8003-E86475749410}.Release|Any CPU.Build.0 = Release|Any CPU
+		{C49CB749-8B24-4628-8003-E86475749410}.Release|x64.ActiveCfg = Release|x64
+		{C49CB749-8B24-4628-8003-E86475749410}.Release|x64.Build.0 = Release|x64
+		{C49CB749-8B24-4628-8003-E86475749410}.Release|x86.ActiveCfg = Release|x86
+		{C49CB749-8B24-4628-8003-E86475749410}.Release|x86.Build.0 = Release|x86
+		{C49CB749-8B24-4628-8003-E86475749410}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{C49CB749-8B24-4628-8003-E86475749410}.Services|x64.ActiveCfg = Release|x64
+		{C49CB749-8B24-4628-8003-E86475749410}.Services|x86.ActiveCfg = Release|x86
+		{C49CB749-8B24-4628-8003-E86475749410}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+		{C49CB749-8B24-4628-8003-E86475749410}.Silverlight2|x64.ActiveCfg = Release|x86
+		{C49CB749-8B24-4628-8003-E86475749410}.Silverlight2|x86.ActiveCfg = Release|x86
+		{C49CB749-8B24-4628-8003-E86475749410}.Silverlight2|x86.Build.0 = Release|x86
+		{56F9106A-079F-4C61-92F6-86A84C2D84B7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{56F9106A-079F-4C61-92F6-86A84C2D84B7}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{56F9106A-079F-4C61-92F6-86A84C2D84B7}.Debug|x64.ActiveCfg = Debug|x64
+		{56F9106A-079F-4C61-92F6-86A84C2D84B7}.Debug|x64.Build.0 = Debug|x64
+		{56F9106A-079F-4C61-92F6-86A84C2D84B7}.Debug|x86.ActiveCfg = Debug|x86
+		{56F9106A-079F-4C61-92F6-86A84C2D84B7}.Debug|x86.Build.0 = Debug|x86
+		{56F9106A-079F-4C61-92F6-86A84C2D84B7}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{56F9106A-079F-4C61-92F6-86A84C2D84B7}.Release|Any CPU.Build.0 = Release|Any CPU
+		{56F9106A-079F-4C61-92F6-86A84C2D84B7}.Release|x64.ActiveCfg = Release|x64
+		{56F9106A-079F-4C61-92F6-86A84C2D84B7}.Release|x64.Build.0 = Release|x64
+		{56F9106A-079F-4C61-92F6-86A84C2D84B7}.Release|x86.ActiveCfg = Release|x86
+		{56F9106A-079F-4C61-92F6-86A84C2D84B7}.Release|x86.Build.0 = Release|x86
+		{56F9106A-079F-4C61-92F6-86A84C2D84B7}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{56F9106A-079F-4C61-92F6-86A84C2D84B7}.Services|x64.ActiveCfg = Release|x64
+		{56F9106A-079F-4C61-92F6-86A84C2D84B7}.Services|x86.ActiveCfg = Release|x86
+		{56F9106A-079F-4C61-92F6-86A84C2D84B7}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+		{56F9106A-079F-4C61-92F6-86A84C2D84B7}.Silverlight2|x64.ActiveCfg = Release|x86
+		{56F9106A-079F-4C61-92F6-86A84C2D84B7}.Silverlight2|x86.ActiveCfg = Release|x86
+		{56F9106A-079F-4C61-92F6-86A84C2D84B7}.Silverlight2|x86.Build.0 = Release|x86
+		{AE5B1CE5-9862-4D6F-A700-D72CD9AEA295}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{AE5B1CE5-9862-4D6F-A700-D72CD9AEA295}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{AE5B1CE5-9862-4D6F-A700-D72CD9AEA295}.Debug|x64.ActiveCfg = Debug|x64
+		{AE5B1CE5-9862-4D6F-A700-D72CD9AEA295}.Debug|x64.Build.0 = Debug|x64
+		{AE5B1CE5-9862-4D6F-A700-D72CD9AEA295}.Debug|x86.ActiveCfg = Debug|x86
+		{AE5B1CE5-9862-4D6F-A700-D72CD9AEA295}.Debug|x86.Build.0 = Debug|x86
+		{AE5B1CE5-9862-4D6F-A700-D72CD9AEA295}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{AE5B1CE5-9862-4D6F-A700-D72CD9AEA295}.Release|Any CPU.Build.0 = Release|Any CPU
+		{AE5B1CE5-9862-4D6F-A700-D72CD9AEA295}.Release|x64.ActiveCfg = Release|x64
+		{AE5B1CE5-9862-4D6F-A700-D72CD9AEA295}.Release|x64.Build.0 = Release|x64
+		{AE5B1CE5-9862-4D6F-A700-D72CD9AEA295}.Release|x86.ActiveCfg = Release|x86
+		{AE5B1CE5-9862-4D6F-A700-D72CD9AEA295}.Release|x86.Build.0 = Release|x86
+		{AE5B1CE5-9862-4D6F-A700-D72CD9AEA295}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{AE5B1CE5-9862-4D6F-A700-D72CD9AEA295}.Services|x64.ActiveCfg = Release|x64
+		{AE5B1CE5-9862-4D6F-A700-D72CD9AEA295}.Services|x86.ActiveCfg = Release|x86
+		{AE5B1CE5-9862-4D6F-A700-D72CD9AEA295}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+		{AE5B1CE5-9862-4D6F-A700-D72CD9AEA295}.Silverlight2|x64.ActiveCfg = Release|x86
+		{AE5B1CE5-9862-4D6F-A700-D72CD9AEA295}.Silverlight2|x86.ActiveCfg = Release|x86
+		{AE5B1CE5-9862-4D6F-A700-D72CD9AEA295}.Silverlight2|x86.Build.0 = Release|x86
+		{96AEBBEE-4203-45F3-BCF5-7B73BF256BDA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{96AEBBEE-4203-45F3-BCF5-7B73BF256BDA}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{96AEBBEE-4203-45F3-BCF5-7B73BF256BDA}.Debug|x64.ActiveCfg = Debug|x64
+		{96AEBBEE-4203-45F3-BCF5-7B73BF256BDA}.Debug|x64.Build.0 = Debug|x64
+		{96AEBBEE-4203-45F3-BCF5-7B73BF256BDA}.Debug|x86.ActiveCfg = Debug|x86
+		{96AEBBEE-4203-45F3-BCF5-7B73BF256BDA}.Debug|x86.Build.0 = Debug|x86
+		{96AEBBEE-4203-45F3-BCF5-7B73BF256BDA}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{96AEBBEE-4203-45F3-BCF5-7B73BF256BDA}.Release|Any CPU.Build.0 = Release|Any CPU
+		{96AEBBEE-4203-45F3-BCF5-7B73BF256BDA}.Release|x64.ActiveCfg = Release|x64
+		{96AEBBEE-4203-45F3-BCF5-7B73BF256BDA}.Release|x64.Build.0 = Release|x64
+		{96AEBBEE-4203-45F3-BCF5-7B73BF256BDA}.Release|x86.ActiveCfg = Release|x86
+		{96AEBBEE-4203-45F3-BCF5-7B73BF256BDA}.Release|x86.Build.0 = Release|x86
+		{96AEBBEE-4203-45F3-BCF5-7B73BF256BDA}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{96AEBBEE-4203-45F3-BCF5-7B73BF256BDA}.Services|x64.ActiveCfg = Release|x64
+		{96AEBBEE-4203-45F3-BCF5-7B73BF256BDA}.Services|x86.ActiveCfg = Release|x86
+		{96AEBBEE-4203-45F3-BCF5-7B73BF256BDA}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+		{96AEBBEE-4203-45F3-BCF5-7B73BF256BDA}.Silverlight2|x64.ActiveCfg = Release|x64
+		{96AEBBEE-4203-45F3-BCF5-7B73BF256BDA}.Silverlight2|x64.Build.0 = Release|x64
+		{96AEBBEE-4203-45F3-BCF5-7B73BF256BDA}.Silverlight2|x86.ActiveCfg = Release|x64
+		{BB994448-2B21-4564-BB2E-38D8FFF8CF18}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{BB994448-2B21-4564-BB2E-38D8FFF8CF18}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{BB994448-2B21-4564-BB2E-38D8FFF8CF18}.Debug|x64.ActiveCfg = Debug|x64
+		{BB994448-2B21-4564-BB2E-38D8FFF8CF18}.Debug|x64.Build.0 = Debug|x64
+		{BB994448-2B21-4564-BB2E-38D8FFF8CF18}.Debug|x86.ActiveCfg = Debug|x86
+		{BB994448-2B21-4564-BB2E-38D8FFF8CF18}.Debug|x86.Build.0 = Debug|x86
+		{BB994448-2B21-4564-BB2E-38D8FFF8CF18}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{BB994448-2B21-4564-BB2E-38D8FFF8CF18}.Release|Any CPU.Build.0 = Release|Any CPU
+		{BB994448-2B21-4564-BB2E-38D8FFF8CF18}.Release|x64.ActiveCfg = Release|x64
+		{BB994448-2B21-4564-BB2E-38D8FFF8CF18}.Release|x64.Build.0 = Release|x64
+		{BB994448-2B21-4564-BB2E-38D8FFF8CF18}.Release|x86.ActiveCfg = Release|x86
+		{BB994448-2B21-4564-BB2E-38D8FFF8CF18}.Release|x86.Build.0 = Release|x86
+		{BB994448-2B21-4564-BB2E-38D8FFF8CF18}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{BB994448-2B21-4564-BB2E-38D8FFF8CF18}.Services|x64.ActiveCfg = Release|x64
+		{BB994448-2B21-4564-BB2E-38D8FFF8CF18}.Services|x86.ActiveCfg = Release|x86
+		{BB994448-2B21-4564-BB2E-38D8FFF8CF18}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+		{BB994448-2B21-4564-BB2E-38D8FFF8CF18}.Silverlight2|x64.ActiveCfg = Release|x64
+		{BB994448-2B21-4564-BB2E-38D8FFF8CF18}.Silverlight2|x64.Build.0 = Release|x64
+		{BB994448-2B21-4564-BB2E-38D8FFF8CF18}.Silverlight2|x86.ActiveCfg = Release|x64
+		{57F38579-409D-4DD8-AB19-3F2C4A665126}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{57F38579-409D-4DD8-AB19-3F2C4A665126}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{57F38579-409D-4DD8-AB19-3F2C4A665126}.Debug|x64.ActiveCfg = Debug|x64
+		{57F38579-409D-4DD8-AB19-3F2C4A665126}.Debug|x64.Build.0 = Debug|x64
+		{57F38579-409D-4DD8-AB19-3F2C4A665126}.Debug|x86.ActiveCfg = Debug|x86
+		{57F38579-409D-4DD8-AB19-3F2C4A665126}.Debug|x86.Build.0 = Debug|x86
+		{57F38579-409D-4DD8-AB19-3F2C4A665126}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{57F38579-409D-4DD8-AB19-3F2C4A665126}.Release|Any CPU.Build.0 = Release|Any CPU
+		{57F38579-409D-4DD8-AB19-3F2C4A665126}.Release|x64.ActiveCfg = Release|x64
+		{57F38579-409D-4DD8-AB19-3F2C4A665126}.Release|x64.Build.0 = Release|x64
+		{57F38579-409D-4DD8-AB19-3F2C4A665126}.Release|x86.ActiveCfg = Release|x86
+		{57F38579-409D-4DD8-AB19-3F2C4A665126}.Release|x86.Build.0 = Release|x86
+		{57F38579-409D-4DD8-AB19-3F2C4A665126}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{57F38579-409D-4DD8-AB19-3F2C4A665126}.Services|x64.ActiveCfg = Release|x64
+		{57F38579-409D-4DD8-AB19-3F2C4A665126}.Services|x86.ActiveCfg = Release|x86
+		{57F38579-409D-4DD8-AB19-3F2C4A665126}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+		{57F38579-409D-4DD8-AB19-3F2C4A665126}.Silverlight2|x64.ActiveCfg = Release|x64
+		{57F38579-409D-4DD8-AB19-3F2C4A665126}.Silverlight2|x64.Build.0 = Release|x64
+		{57F38579-409D-4DD8-AB19-3F2C4A665126}.Silverlight2|x86.ActiveCfg = Release|x64
+		{489CFE09-FDF7-4C89-BAB5-BD09CADD61AD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{489CFE09-FDF7-4C89-BAB5-BD09CADD61AD}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{489CFE09-FDF7-4C89-BAB5-BD09CADD61AD}.Debug|x64.ActiveCfg = Debug|x64
+		{489CFE09-FDF7-4C89-BAB5-BD09CADD61AD}.Debug|x64.Build.0 = Debug|x64
+		{489CFE09-FDF7-4C89-BAB5-BD09CADD61AD}.Debug|x86.ActiveCfg = Debug|x86
+		{489CFE09-FDF7-4C89-BAB5-BD09CADD61AD}.Debug|x86.Build.0 = Debug|x86
+		{489CFE09-FDF7-4C89-BAB5-BD09CADD61AD}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{489CFE09-FDF7-4C89-BAB5-BD09CADD61AD}.Release|Any CPU.Build.0 = Release|Any CPU
+		{489CFE09-FDF7-4C89-BAB5-BD09CADD61AD}.Release|x64.ActiveCfg = Release|x64
+		{489CFE09-FDF7-4C89-BAB5-BD09CADD61AD}.Release|x64.Build.0 = Release|x64
+		{489CFE09-FDF7-4C89-BAB5-BD09CADD61AD}.Release|x86.ActiveCfg = Release|x86
+		{489CFE09-FDF7-4C89-BAB5-BD09CADD61AD}.Release|x86.Build.0 = Release|x86
+		{489CFE09-FDF7-4C89-BAB5-BD09CADD61AD}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{489CFE09-FDF7-4C89-BAB5-BD09CADD61AD}.Services|x64.ActiveCfg = Release|x64
+		{489CFE09-FDF7-4C89-BAB5-BD09CADD61AD}.Services|x86.ActiveCfg = Release|x86
+		{489CFE09-FDF7-4C89-BAB5-BD09CADD61AD}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+		{489CFE09-FDF7-4C89-BAB5-BD09CADD61AD}.Silverlight2|x64.ActiveCfg = Release|x64
+		{489CFE09-FDF7-4C89-BAB5-BD09CADD61AD}.Silverlight2|x64.Build.0 = Release|x64
+		{489CFE09-FDF7-4C89-BAB5-BD09CADD61AD}.Silverlight2|x86.ActiveCfg = Release|x64
+		{4ABA047D-46DD-4608-9E4A-41C5F92FDBB1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{4ABA047D-46DD-4608-9E4A-41C5F92FDBB1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{4ABA047D-46DD-4608-9E4A-41C5F92FDBB1}.Debug|x64.ActiveCfg = Debug|x64
+		{4ABA047D-46DD-4608-9E4A-41C5F92FDBB1}.Debug|x64.Build.0 = Debug|x64
+		{4ABA047D-46DD-4608-9E4A-41C5F92FDBB1}.Debug|x86.ActiveCfg = Debug|x86
+		{4ABA047D-46DD-4608-9E4A-41C5F92FDBB1}.Debug|x86.Build.0 = Debug|x86
+		{4ABA047D-46DD-4608-9E4A-41C5F92FDBB1}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{4ABA047D-46DD-4608-9E4A-41C5F92FDBB1}.Release|Any CPU.Build.0 = Release|Any CPU
+		{4ABA047D-46DD-4608-9E4A-41C5F92FDBB1}.Release|x64.ActiveCfg = Release|x64
+		{4ABA047D-46DD-4608-9E4A-41C5F92FDBB1}.Release|x64.Build.0 = Release|x64
+		{4ABA047D-46DD-4608-9E4A-41C5F92FDBB1}.Release|x86.ActiveCfg = Release|x86
+		{4ABA047D-46DD-4608-9E4A-41C5F92FDBB1}.Release|x86.Build.0 = Release|x86
+		{4ABA047D-46DD-4608-9E4A-41C5F92FDBB1}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{4ABA047D-46DD-4608-9E4A-41C5F92FDBB1}.Services|x64.ActiveCfg = Release|x64
+		{4ABA047D-46DD-4608-9E4A-41C5F92FDBB1}.Services|x86.ActiveCfg = Release|x86
+		{4ABA047D-46DD-4608-9E4A-41C5F92FDBB1}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+		{4ABA047D-46DD-4608-9E4A-41C5F92FDBB1}.Silverlight2|x64.ActiveCfg = Release|x64
+		{4ABA047D-46DD-4608-9E4A-41C5F92FDBB1}.Silverlight2|x64.Build.0 = Release|x64
+		{4ABA047D-46DD-4608-9E4A-41C5F92FDBB1}.Silverlight2|x86.ActiveCfg = Release|x64
+		{14AB8D24-25BC-400C-A846-4627AA945192}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{14AB8D24-25BC-400C-A846-4627AA945192}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{14AB8D24-25BC-400C-A846-4627AA945192}.Debug|x64.ActiveCfg = Debug|x64
+		{14AB8D24-25BC-400C-A846-4627AA945192}.Debug|x64.Build.0 = Debug|x64
+		{14AB8D24-25BC-400C-A846-4627AA945192}.Debug|x86.ActiveCfg = Debug|x86
+		{14AB8D24-25BC-400C-A846-4627AA945192}.Debug|x86.Build.0 = Debug|x86
+		{14AB8D24-25BC-400C-A846-4627AA945192}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{14AB8D24-25BC-400C-A846-4627AA945192}.Release|Any CPU.Build.0 = Release|Any CPU
+		{14AB8D24-25BC-400C-A846-4627AA945192}.Release|x64.ActiveCfg = Release|x64
+		{14AB8D24-25BC-400C-A846-4627AA945192}.Release|x64.Build.0 = Release|x64
+		{14AB8D24-25BC-400C-A846-4627AA945192}.Release|x86.ActiveCfg = Release|x86
+		{14AB8D24-25BC-400C-A846-4627AA945192}.Release|x86.Build.0 = Release|x86
+		{14AB8D24-25BC-400C-A846-4627AA945192}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{14AB8D24-25BC-400C-A846-4627AA945192}.Services|x64.ActiveCfg = Release|x64
+		{14AB8D24-25BC-400C-A846-4627AA945192}.Services|x86.ActiveCfg = Release|x86
+		{14AB8D24-25BC-400C-A846-4627AA945192}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+		{14AB8D24-25BC-400C-A846-4627AA945192}.Silverlight2|x64.ActiveCfg = Release|x64
+		{14AB8D24-25BC-400C-A846-4627AA945192}.Silverlight2|x64.Build.0 = Release|x64
+		{14AB8D24-25BC-400C-A846-4627AA945192}.Silverlight2|x86.ActiveCfg = Release|x64
+		{662B4B15-8F4D-4AE5-B3EB-D91C215F5AF2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{662B4B15-8F4D-4AE5-B3EB-D91C215F5AF2}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{662B4B15-8F4D-4AE5-B3EB-D91C215F5AF2}.Debug|x64.ActiveCfg = Debug|x64
+		{662B4B15-8F4D-4AE5-B3EB-D91C215F5AF2}.Debug|x64.Build.0 = Debug|x64
+		{662B4B15-8F4D-4AE5-B3EB-D91C215F5AF2}.Debug|x86.ActiveCfg = Debug|x86
+		{662B4B15-8F4D-4AE5-B3EB-D91C215F5AF2}.Debug|x86.Build.0 = Debug|x86
+		{662B4B15-8F4D-4AE5-B3EB-D91C215F5AF2}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{662B4B15-8F4D-4AE5-B3EB-D91C215F5AF2}.Release|Any CPU.Build.0 = Release|Any CPU
+		{662B4B15-8F4D-4AE5-B3EB-D91C215F5AF2}.Release|x64.ActiveCfg = Release|x64
+		{662B4B15-8F4D-4AE5-B3EB-D91C215F5AF2}.Release|x64.Build.0 = Release|x64
+		{662B4B15-8F4D-4AE5-B3EB-D91C215F5AF2}.Release|x86.ActiveCfg = Release|x86
+		{662B4B15-8F4D-4AE5-B3EB-D91C215F5AF2}.Release|x86.Build.0 = Release|x86
+		{662B4B15-8F4D-4AE5-B3EB-D91C215F5AF2}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{662B4B15-8F4D-4AE5-B3EB-D91C215F5AF2}.Services|x64.ActiveCfg = Release|x64
+		{662B4B15-8F4D-4AE5-B3EB-D91C215F5AF2}.Services|x86.ActiveCfg = Release|x86
+		{662B4B15-8F4D-4AE5-B3EB-D91C215F5AF2}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+		{662B4B15-8F4D-4AE5-B3EB-D91C215F5AF2}.Silverlight2|x64.ActiveCfg = Release|x64
+		{662B4B15-8F4D-4AE5-B3EB-D91C215F5AF2}.Silverlight2|x64.Build.0 = Release|x64
+		{662B4B15-8F4D-4AE5-B3EB-D91C215F5AF2}.Silverlight2|x86.ActiveCfg = Release|x64
+		{887425B4-4348-49ED-A457-B7D2C26DDBF9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{887425B4-4348-49ED-A457-B7D2C26DDBF9}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{887425B4-4348-49ED-A457-B7D2C26DDBF9}.Debug|x64.ActiveCfg = Debug|x64
+		{887425B4-4348-49ED-A457-B7D2C26DDBF9}.Debug|x64.Build.0 = Debug|x64
+		{887425B4-4348-49ED-A457-B7D2C26DDBF9}.Debug|x86.ActiveCfg = Debug|x86
+		{887425B4-4348-49ED-A457-B7D2C26DDBF9}.Debug|x86.Build.0 = Debug|x86
+		{887425B4-4348-49ED-A457-B7D2C26DDBF9}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{887425B4-4348-49ED-A457-B7D2C26DDBF9}.Release|Any CPU.Build.0 = Release|Any CPU
+		{887425B4-4348-49ED-A457-B7D2C26DDBF9}.Release|x64.ActiveCfg = Release|x64
+		{887425B4-4348-49ED-A457-B7D2C26DDBF9}.Release|x64.Build.0 = Release|x64
+		{887425B4-4348-49ED-A457-B7D2C26DDBF9}.Release|x86.ActiveCfg = Release|x86
+		{887425B4-4348-49ED-A457-B7D2C26DDBF9}.Release|x86.Build.0 = Release|x86
+		{887425B4-4348-49ED-A457-B7D2C26DDBF9}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{887425B4-4348-49ED-A457-B7D2C26DDBF9}.Services|x64.ActiveCfg = Release|x64
+		{887425B4-4348-49ED-A457-B7D2C26DDBF9}.Services|x86.ActiveCfg = Release|x86
+		{887425B4-4348-49ED-A457-B7D2C26DDBF9}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+		{887425B4-4348-49ED-A457-B7D2C26DDBF9}.Silverlight2|x64.ActiveCfg = Release|x64
+		{887425B4-4348-49ED-A457-B7D2C26DDBF9}.Silverlight2|x64.Build.0 = Release|x64
+		{887425B4-4348-49ED-A457-B7D2C26DDBF9}.Silverlight2|x86.ActiveCfg = Release|x64
+		{76945D76-CA61-4147-9DC2-0ACDCDDF87F9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{76945D76-CA61-4147-9DC2-0ACDCDDF87F9}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{76945D76-CA61-4147-9DC2-0ACDCDDF87F9}.Debug|x64.ActiveCfg = Debug|x64
+		{76945D76-CA61-4147-9DC2-0ACDCDDF87F9}.Debug|x64.Build.0 = Debug|x64
+		{76945D76-CA61-4147-9DC2-0ACDCDDF87F9}.Debug|x86.ActiveCfg = Debug|x86
+		{76945D76-CA61-4147-9DC2-0ACDCDDF87F9}.Debug|x86.Build.0 = Debug|x86
+		{76945D76-CA61-4147-9DC2-0ACDCDDF87F9}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{76945D76-CA61-4147-9DC2-0ACDCDDF87F9}.Release|Any CPU.Build.0 = Release|Any CPU
+		{76945D76-CA61-4147-9DC2-0ACDCDDF87F9}.Release|x64.ActiveCfg = Release|x64
+		{76945D76-CA61-4147-9DC2-0ACDCDDF87F9}.Release|x64.Build.0 = Release|x64
+		{76945D76-CA61-4147-9DC2-0ACDCDDF87F9}.Release|x86.ActiveCfg = Release|x86
+		{76945D76-CA61-4147-9DC2-0ACDCDDF87F9}.Release|x86.Build.0 = Release|x86
+		{76945D76-CA61-4147-9DC2-0ACDCDDF87F9}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{76945D76-CA61-4147-9DC2-0ACDCDDF87F9}.Services|x64.ActiveCfg = Release|x64
+		{76945D76-CA61-4147-9DC2-0ACDCDDF87F9}.Services|x86.ActiveCfg = Release|x86
+		{76945D76-CA61-4147-9DC2-0ACDCDDF87F9}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+		{76945D76-CA61-4147-9DC2-0ACDCDDF87F9}.Silverlight2|x64.ActiveCfg = Release|x64
+		{76945D76-CA61-4147-9DC2-0ACDCDDF87F9}.Silverlight2|x64.Build.0 = Release|x64
+		{76945D76-CA61-4147-9DC2-0ACDCDDF87F9}.Silverlight2|x86.ActiveCfg = Release|x64
+		{BF7D9494-A586-457B-8DF9-ED599F9E6A71}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{BF7D9494-A586-457B-8DF9-ED599F9E6A71}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{BF7D9494-A586-457B-8DF9-ED599F9E6A71}.Debug|x64.ActiveCfg = Debug|x64
+		{BF7D9494-A586-457B-8DF9-ED599F9E6A71}.Debug|x64.Build.0 = Debug|x64
+		{BF7D9494-A586-457B-8DF9-ED599F9E6A71}.Debug|x86.ActiveCfg = Debug|x86
+		{BF7D9494-A586-457B-8DF9-ED599F9E6A71}.Debug|x86.Build.0 = Debug|x86
+		{BF7D9494-A586-457B-8DF9-ED599F9E6A71}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{BF7D9494-A586-457B-8DF9-ED599F9E6A71}.Release|Any CPU.Build.0 = Release|Any CPU
+		{BF7D9494-A586-457B-8DF9-ED599F9E6A71}.Release|x64.ActiveCfg = Release|x64
+		{BF7D9494-A586-457B-8DF9-ED599F9E6A71}.Release|x64.Build.0 = Release|x64
+		{BF7D9494-A586-457B-8DF9-ED599F9E6A71}.Release|x86.ActiveCfg = Release|x86
+		{BF7D9494-A586-457B-8DF9-ED599F9E6A71}.Release|x86.Build.0 = Release|x86
+		{BF7D9494-A586-457B-8DF9-ED599F9E6A71}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{BF7D9494-A586-457B-8DF9-ED599F9E6A71}.Services|x64.ActiveCfg = Release|x64
+		{BF7D9494-A586-457B-8DF9-ED599F9E6A71}.Services|x86.ActiveCfg = Release|x86
+		{BF7D9494-A586-457B-8DF9-ED599F9E6A71}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+		{BF7D9494-A586-457B-8DF9-ED599F9E6A71}.Silverlight2|x64.ActiveCfg = Release|x86
+		{BF7D9494-A586-457B-8DF9-ED599F9E6A71}.Silverlight2|x86.ActiveCfg = Release|x86
+		{BF7D9494-A586-457B-8DF9-ED599F9E6A71}.Silverlight2|x86.Build.0 = Release|x86
+		{25087811-F74C-4128-BC86-8324271DA13E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{25087811-F74C-4128-BC86-8324271DA13E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{25087811-F74C-4128-BC86-8324271DA13E}.Debug|x64.ActiveCfg = Debug|x64
+		{25087811-F74C-4128-BC86-8324271DA13E}.Debug|x64.Build.0 = Debug|x64
+		{25087811-F74C-4128-BC86-8324271DA13E}.Debug|x86.ActiveCfg = Debug|x86
+		{25087811-F74C-4128-BC86-8324271DA13E}.Debug|x86.Build.0 = Debug|x86
+		{25087811-F74C-4128-BC86-8324271DA13E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{25087811-F74C-4128-BC86-8324271DA13E}.Release|Any CPU.Build.0 = Release|Any CPU
+		{25087811-F74C-4128-BC86-8324271DA13E}.Release|x64.ActiveCfg = Release|x64
+		{25087811-F74C-4128-BC86-8324271DA13E}.Release|x64.Build.0 = Release|x64
+		{25087811-F74C-4128-BC86-8324271DA13E}.Release|x86.ActiveCfg = Release|x86
+		{25087811-F74C-4128-BC86-8324271DA13E}.Release|x86.Build.0 = Release|x86
+		{25087811-F74C-4128-BC86-8324271DA13E}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{25087811-F74C-4128-BC86-8324271DA13E}.Services|x64.ActiveCfg = Release|x64
+		{25087811-F74C-4128-BC86-8324271DA13E}.Services|x86.ActiveCfg = Release|x86
+		{25087811-F74C-4128-BC86-8324271DA13E}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+		{25087811-F74C-4128-BC86-8324271DA13E}.Silverlight2|x64.ActiveCfg = Release|x64
+		{25087811-F74C-4128-BC86-8324271DA13E}.Silverlight2|x64.Build.0 = Release|x64
+		{25087811-F74C-4128-BC86-8324271DA13E}.Silverlight2|x86.ActiveCfg = Release|x64
+		{DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Debug|x64.ActiveCfg = Debug|x64
+		{DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Debug|x64.Build.0 = Debug|x64
+		{DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Debug|x86.ActiveCfg = Debug|x86
+		{DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Debug|x86.Build.0 = Debug|x86
+		{DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Release|Any CPU.Build.0 = Release|Any CPU
+		{DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Release|x64.ActiveCfg = Release|x64
+		{DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Release|x64.Build.0 = Release|x64
+		{DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Release|x86.ActiveCfg = Release|x86
+		{DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Release|x86.Build.0 = Release|x86
+		{DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Services|x64.ActiveCfg = Release|x64
+		{DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Services|x86.ActiveCfg = Release|x86
+		{DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+		{DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Silverlight2|x64.ActiveCfg = Release|x64
+		{DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Silverlight2|x64.Build.0 = Release|x64
+		{DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Silverlight2|x86.ActiveCfg = Release|x64
+		{13CA37D6-4111-4E7B-BE2E-AF3DE462D384}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{13CA37D6-4111-4E7B-BE2E-AF3DE462D384}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{13CA37D6-4111-4E7B-BE2E-AF3DE462D384}.Debug|x64.ActiveCfg = Debug|x64
+		{13CA37D6-4111-4E7B-BE2E-AF3DE462D384}.Debug|x64.Build.0 = Debug|x64
+		{13CA37D6-4111-4E7B-BE2E-AF3DE462D384}.Debug|x86.ActiveCfg = Debug|x86
+		{13CA37D6-4111-4E7B-BE2E-AF3DE462D384}.Debug|x86.Build.0 = Debug|x86
+		{13CA37D6-4111-4E7B-BE2E-AF3DE462D384}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{13CA37D6-4111-4E7B-BE2E-AF3DE462D384}.Release|Any CPU.Build.0 = Release|Any CPU
+		{13CA37D6-4111-4E7B-BE2E-AF3DE462D384}.Release|x64.ActiveCfg = Release|x64
+		{13CA37D6-4111-4E7B-BE2E-AF3DE462D384}.Release|x64.Build.0 = Release|x64
+		{13CA37D6-4111-4E7B-BE2E-AF3DE462D384}.Release|x86.ActiveCfg = Release|x86
+		{13CA37D6-4111-4E7B-BE2E-AF3DE462D384}.Release|x86.Build.0 = Release|x86
+		{13CA37D6-4111-4E7B-BE2E-AF3DE462D384}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{13CA37D6-4111-4E7B-BE2E-AF3DE462D384}.Services|x64.ActiveCfg = Release|x64
+		{13CA37D6-4111-4E7B-BE2E-AF3DE462D384}.Services|x86.ActiveCfg = Release|x86
+		{13CA37D6-4111-4E7B-BE2E-AF3DE462D384}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+		{13CA37D6-4111-4E7B-BE2E-AF3DE462D384}.Silverlight2|x64.ActiveCfg = Release|x64
+		{13CA37D6-4111-4E7B-BE2E-AF3DE462D384}.Silverlight2|x64.Build.0 = Release|x64
+		{13CA37D6-4111-4E7B-BE2E-AF3DE462D384}.Silverlight2|x86.ActiveCfg = Release|x64
+		{BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Debug|x64.ActiveCfg = Debug|x64
+		{BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Debug|x64.Build.0 = Debug|x64
+		{BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Debug|x86.ActiveCfg = Debug|x86
+		{BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Debug|x86.Build.0 = Debug|x86
+		{BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Release|Any CPU.Build.0 = Release|Any CPU
+		{BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Release|x64.ActiveCfg = Release|x64
+		{BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Release|x64.Build.0 = Release|x64
+		{BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Release|x86.ActiveCfg = Release|x86
+		{BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Release|x86.Build.0 = Release|x86
+		{BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Services|x64.ActiveCfg = Release|x64
+		{BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Services|x86.ActiveCfg = Release|x86
+		{BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+		{BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Silverlight2|x64.ActiveCfg = Release|x64
+		{BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Silverlight2|x64.Build.0 = Release|x64
+		{BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Silverlight2|x86.ActiveCfg = Release|x64
+		{8FA6898D-E4B0-4E08-A6D6-F9F520E7959F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{8FA6898D-E4B0-4E08-A6D6-F9F520E7959F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{8FA6898D-E4B0-4E08-A6D6-F9F520E7959F}.Debug|x64.ActiveCfg = Debug|x64
+		{8FA6898D-E4B0-4E08-A6D6-F9F520E7959F}.Debug|x64.Build.0 = Debug|x64
+		{8FA6898D-E4B0-4E08-A6D6-F9F520E7959F}.Debug|x86.ActiveCfg = Debug|x86
+		{8FA6898D-E4B0-4E08-A6D6-F9F520E7959F}.Debug|x86.Build.0 = Debug|x86
+		{8FA6898D-E4B0-4E08-A6D6-F9F520E7959F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{8FA6898D-E4B0-4E08-A6D6-F9F520E7959F}.Release|Any CPU.Build.0 = Release|Any CPU
+		{8FA6898D-E4B0-4E08-A6D6-F9F520E7959F}.Release|x64.ActiveCfg = Release|x64
+		{8FA6898D-E4B0-4E08-A6D6-F9F520E7959F}.Release|x64.Build.0 = Release|x64
+		{8FA6898D-E4B0-4E08-A6D6-F9F520E7959F}.Release|x86.ActiveCfg = Release|x86
+		{8FA6898D-E4B0-4E08-A6D6-F9F520E7959F}.Release|x86.Build.0 = Release|x86
+		{8FA6898D-E4B0-4E08-A6D6-F9F520E7959F}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{8FA6898D-E4B0-4E08-A6D6-F9F520E7959F}.Services|x64.ActiveCfg = Release|x64
+		{8FA6898D-E4B0-4E08-A6D6-F9F520E7959F}.Services|x86.ActiveCfg = Release|x86
+		{8FA6898D-E4B0-4E08-A6D6-F9F520E7959F}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+		{8FA6898D-E4B0-4E08-A6D6-F9F520E7959F}.Silverlight2|x64.ActiveCfg = Release|x64
+		{8FA6898D-E4B0-4E08-A6D6-F9F520E7959F}.Silverlight2|x64.Build.0 = Release|x64
+		{8FA6898D-E4B0-4E08-A6D6-F9F520E7959F}.Silverlight2|x86.ActiveCfg = Release|x64
+		{DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Debug|x64.ActiveCfg = Debug|x64
+		{DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Debug|x64.Build.0 = Debug|x64
+		{DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Debug|x86.ActiveCfg = Debug|x86
+		{DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Debug|x86.Build.0 = Debug|x86
+		{DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Release|Any CPU.Build.0 = Release|Any CPU
+		{DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Release|x64.ActiveCfg = Release|x64
+		{DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Release|x64.Build.0 = Release|x64
+		{DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Release|x86.ActiveCfg = Release|x86
+		{DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Release|x86.Build.0 = Release|x86
+		{DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Services|x64.ActiveCfg = Release|x64
+		{DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Services|x86.ActiveCfg = Release|x86
+		{DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+		{DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Silverlight2|x64.ActiveCfg = Release|x86
+		{DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Silverlight2|x86.ActiveCfg = Release|x86
+		{DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Silverlight2|x86.Build.0 = Release|x86
+		{6F18ED66-2333-4B5C-B882-AC99FB3CDCE5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{6F18ED66-2333-4B5C-B882-AC99FB3CDCE5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{6F18ED66-2333-4B5C-B882-AC99FB3CDCE5}.Debug|x64.ActiveCfg = Debug|x64
+		{6F18ED66-2333-4B5C-B882-AC99FB3CDCE5}.Debug|x64.Build.0 = Debug|x64
+		{6F18ED66-2333-4B5C-B882-AC99FB3CDCE5}.Debug|x86.ActiveCfg = Debug|x86
+		{6F18ED66-2333-4B5C-B882-AC99FB3CDCE5}.Debug|x86.Build.0 = Debug|x86
+		{6F18ED66-2333-4B5C-B882-AC99FB3CDCE5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{6F18ED66-2333-4B5C-B882-AC99FB3CDCE5}.Release|Any CPU.Build.0 = Release|Any CPU
+		{6F18ED66-2333-4B5C-B882-AC99FB3CDCE5}.Release|x64.ActiveCfg = Release|x64
+		{6F18ED66-2333-4B5C-B882-AC99FB3CDCE5}.Release|x64.Build.0 = Release|x64
+		{6F18ED66-2333-4B5C-B882-AC99FB3CDCE5}.Release|x86.ActiveCfg = Release|x86
+		{6F18ED66-2333-4B5C-B882-AC99FB3CDCE5}.Release|x86.Build.0 = Release|x86
+		{6F18ED66-2333-4B5C-B882-AC99FB3CDCE5}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{6F18ED66-2333-4B5C-B882-AC99FB3CDCE5}.Services|x64.ActiveCfg = Release|x64
+		{6F18ED66-2333-4B5C-B882-AC99FB3CDCE5}.Services|x86.ActiveCfg = Release|x86
+		{6F18ED66-2333-4B5C-B882-AC99FB3CDCE5}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+		{6F18ED66-2333-4B5C-B882-AC99FB3CDCE5}.Silverlight2|x64.ActiveCfg = Release|x86
+		{6F18ED66-2333-4B5C-B882-AC99FB3CDCE5}.Silverlight2|x86.ActiveCfg = Release|x86
+		{6F18ED66-2333-4B5C-B882-AC99FB3CDCE5}.Silverlight2|x86.Build.0 = Release|x86
+		{66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Debug|x64.ActiveCfg = Debug|x64
+		{66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Debug|x64.Build.0 = Debug|x64
+		{66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Debug|x86.ActiveCfg = Debug|x86
+		{66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Debug|x86.Build.0 = Debug|x86
+		{66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Release|Any CPU.Build.0 = Release|Any CPU
+		{66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Release|x64.ActiveCfg = Release|x64
+		{66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Release|x64.Build.0 = Release|x64
+		{66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Release|x86.ActiveCfg = Release|x86
+		{66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Release|x86.Build.0 = Release|x86
+		{66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Services|x64.ActiveCfg = Release|x64
+		{66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Services|x86.ActiveCfg = Release|x86
+		{66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+		{66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Silverlight2|x64.ActiveCfg = Release|x86
+		{66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Silverlight2|x86.ActiveCfg = Release|x86
+		{66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Silverlight2|x86.Build.0 = Release|x86
+		{30D6606B-96E7-436C-B5D7-EA1455848E37}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{30D6606B-96E7-436C-B5D7-EA1455848E37}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{30D6606B-96E7-436C-B5D7-EA1455848E37}.Debug|x64.ActiveCfg = Debug|x64
+		{30D6606B-96E7-436C-B5D7-EA1455848E37}.Debug|x64.Build.0 = Debug|x64
+		{30D6606B-96E7-436C-B5D7-EA1455848E37}.Debug|x86.ActiveCfg = Debug|x86
+		{30D6606B-96E7-436C-B5D7-EA1455848E37}.Debug|x86.Build.0 = Debug|x86
+		{30D6606B-96E7-436C-B5D7-EA1455848E37}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{30D6606B-96E7-436C-B5D7-EA1455848E37}.Release|Any CPU.Build.0 = Release|Any CPU
+		{30D6606B-96E7-436C-B5D7-EA1455848E37}.Release|x64.ActiveCfg = Release|x64
+		{30D6606B-96E7-436C-B5D7-EA1455848E37}.Release|x64.Build.0 = Release|x64
+		{30D6606B-96E7-436C-B5D7-EA1455848E37}.Release|x86.ActiveCfg = Release|x86
+		{30D6606B-96E7-436C-B5D7-EA1455848E37}.Release|x86.Build.0 = Release|x86
+		{30D6606B-96E7-436C-B5D7-EA1455848E37}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{30D6606B-96E7-436C-B5D7-EA1455848E37}.Services|x64.ActiveCfg = Release|x64
+		{30D6606B-96E7-436C-B5D7-EA1455848E37}.Services|x86.ActiveCfg = Release|x86
+		{30D6606B-96E7-436C-B5D7-EA1455848E37}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+		{30D6606B-96E7-436C-B5D7-EA1455848E37}.Silverlight2|x64.ActiveCfg = Release|x86
+		{30D6606B-96E7-436C-B5D7-EA1455848E37}.Silverlight2|x86.ActiveCfg = Release|x86
+		{30D6606B-96E7-436C-B5D7-EA1455848E37}.Silverlight2|x86.Build.0 = Release|x86
+		{F62BCD22-FB83-4444-9401-8031C2487A86}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{F62BCD22-FB83-4444-9401-8031C2487A86}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{F62BCD22-FB83-4444-9401-8031C2487A86}.Debug|x64.ActiveCfg = Debug|x64
+		{F62BCD22-FB83-4444-9401-8031C2487A86}.Debug|x64.Build.0 = Debug|x64
+		{F62BCD22-FB83-4444-9401-8031C2487A86}.Debug|x86.ActiveCfg = Debug|x86
+		{F62BCD22-FB83-4444-9401-8031C2487A86}.Debug|x86.Build.0 = Debug|x86
+		{F62BCD22-FB83-4444-9401-8031C2487A86}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{F62BCD22-FB83-4444-9401-8031C2487A86}.Release|Any CPU.Build.0 = Release|Any CPU
+		{F62BCD22-FB83-4444-9401-8031C2487A86}.Release|x64.ActiveCfg = Release|x64
+		{F62BCD22-FB83-4444-9401-8031C2487A86}.Release|x64.Build.0 = Release|x64
+		{F62BCD22-FB83-4444-9401-8031C2487A86}.Release|x86.ActiveCfg = Release|x86
+		{F62BCD22-FB83-4444-9401-8031C2487A86}.Release|x86.Build.0 = Release|x86
+		{F62BCD22-FB83-4444-9401-8031C2487A86}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{F62BCD22-FB83-4444-9401-8031C2487A86}.Services|x64.ActiveCfg = Release|x64
+		{F62BCD22-FB83-4444-9401-8031C2487A86}.Services|x86.ActiveCfg = Release|x86
+		{F62BCD22-FB83-4444-9401-8031C2487A86}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+		{F62BCD22-FB83-4444-9401-8031C2487A86}.Silverlight2|x64.ActiveCfg = Release|x64
+		{F62BCD22-FB83-4444-9401-8031C2487A86}.Silverlight2|x64.Build.0 = Release|x64
+		{F62BCD22-FB83-4444-9401-8031C2487A86}.Silverlight2|x86.ActiveCfg = Release|x64
+		{E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Debug|x64.ActiveCfg = Debug|x64
+		{E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Debug|x64.Build.0 = Debug|x64
+		{E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Debug|x86.ActiveCfg = Debug|x86
+		{E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Debug|x86.Build.0 = Debug|x86
+		{E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Release|Any CPU.Build.0 = Release|Any CPU
+		{E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Release|x64.ActiveCfg = Release|x64
+		{E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Release|x64.Build.0 = Release|x64
+		{E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Release|x86.ActiveCfg = Release|x86
+		{E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Release|x86.Build.0 = Release|x86
+		{E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Services|x64.ActiveCfg = Release|x64
+		{E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Services|x86.ActiveCfg = Release|x86
+		{E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+		{E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Silverlight2|x64.ActiveCfg = Release|x64
+		{E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Silverlight2|x64.Build.0 = Release|x64
+		{E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Silverlight2|x86.ActiveCfg = Release|x64
+		{A9EE65D9-405B-4C9C-B470-FC911AAC541B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{A9EE65D9-405B-4C9C-B470-FC911AAC541B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{A9EE65D9-405B-4C9C-B470-FC911AAC541B}.Debug|x64.ActiveCfg = Debug|x64
+		{A9EE65D9-405B-4C9C-B470-FC911AAC541B}.Debug|x64.Build.0 = Debug|x64
+		{A9EE65D9-405B-4C9C-B470-FC911AAC541B}.Debug|x86.ActiveCfg = Debug|x86
+		{A9EE65D9-405B-4C9C-B470-FC911AAC541B}.Debug|x86.Build.0 = Debug|x86
+		{A9EE65D9-405B-4C9C-B470-FC911AAC541B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{A9EE65D9-405B-4C9C-B470-FC911AAC541B}.Release|Any CPU.Build.0 = Release|Any CPU
+		{A9EE65D9-405B-4C9C-B470-FC911AAC541B}.Release|x64.ActiveCfg = Release|x64
+		{A9EE65D9-405B-4C9C-B470-FC911AAC541B}.Release|x64.Build.0 = Release|x64
+		{A9EE65D9-405B-4C9C-B470-FC911AAC541B}.Release|x86.ActiveCfg = Release|x86
+		{A9EE65D9-405B-4C9C-B470-FC911AAC541B}.Release|x86.Build.0 = Release|x86
+		{A9EE65D9-405B-4C9C-B470-FC911AAC541B}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{A9EE65D9-405B-4C9C-B470-FC911AAC541B}.Services|x64.ActiveCfg = Release|x64
+		{A9EE65D9-405B-4C9C-B470-FC911AAC541B}.Services|x86.ActiveCfg = Release|x86
+		{A9EE65D9-405B-4C9C-B470-FC911AAC541B}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+		{A9EE65D9-405B-4C9C-B470-FC911AAC541B}.Silverlight2|x64.ActiveCfg = Release|x86
+		{A9EE65D9-405B-4C9C-B470-FC911AAC541B}.Silverlight2|x86.ActiveCfg = Release|x86
+		{A9EE65D9-405B-4C9C-B470-FC911AAC541B}.Silverlight2|x86.Build.0 = Release|x86
+		{96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Debug|x64.ActiveCfg = Debug|x64
+		{96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Debug|x64.Build.0 = Debug|x64
+		{96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Debug|x86.ActiveCfg = Debug|x86
+		{96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Debug|x86.Build.0 = Debug|x86
+		{96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Release|Any CPU.Build.0 = Release|Any CPU
+		{96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Release|x64.ActiveCfg = Release|x64
+		{96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Release|x64.Build.0 = Release|x64
+		{96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Release|x86.ActiveCfg = Release|x86
+		{96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Release|x86.Build.0 = Release|x86
+		{96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Services|x64.ActiveCfg = Release|x64
+		{96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Services|x86.ActiveCfg = Release|x86
+		{96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+		{96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Silverlight2|x64.ActiveCfg = Release|x86
+		{96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Silverlight2|x86.ActiveCfg = Release|x86
+		{96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Silverlight2|x86.Build.0 = Release|x86
+		{30D8C5F1-CD3A-4EC1-907F-430177A03FBE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{30D8C5F1-CD3A-4EC1-907F-430177A03FBE}.Debug|x64.ActiveCfg = Debug|x64
+		{30D8C5F1-CD3A-4EC1-907F-430177A03FBE}.Debug|x86.ActiveCfg = Debug|x86
+		{30D8C5F1-CD3A-4EC1-907F-430177A03FBE}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{30D8C5F1-CD3A-4EC1-907F-430177A03FBE}.Release|x64.ActiveCfg = Release|x64
+		{30D8C5F1-CD3A-4EC1-907F-430177A03FBE}.Release|x86.ActiveCfg = Release|x86
+		{30D8C5F1-CD3A-4EC1-907F-430177A03FBE}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{30D8C5F1-CD3A-4EC1-907F-430177A03FBE}.Services|Any CPU.Build.0 = Release|Any CPU
+		{30D8C5F1-CD3A-4EC1-907F-430177A03FBE}.Services|x64.ActiveCfg = Release|x64
+		{30D8C5F1-CD3A-4EC1-907F-430177A03FBE}.Services|x64.Build.0 = Release|x64
+		{30D8C5F1-CD3A-4EC1-907F-430177A03FBE}.Services|x86.ActiveCfg = Release|x86
+		{30D8C5F1-CD3A-4EC1-907F-430177A03FBE}.Services|x86.Build.0 = Release|x86
+		{30D8C5F1-CD3A-4EC1-907F-430177A03FBE}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+		{30D8C5F1-CD3A-4EC1-907F-430177A03FBE}.Silverlight2|x64.ActiveCfg = Release|x64
+		{30D8C5F1-CD3A-4EC1-907F-430177A03FBE}.Silverlight2|x64.Build.0 = Release|x64
+		{30D8C5F1-CD3A-4EC1-907F-430177A03FBE}.Silverlight2|x86.ActiveCfg = Release|x64
+		{EBEBA863-DD05-4331-BE25-5758B15F7407}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{EBEBA863-DD05-4331-BE25-5758B15F7407}.Debug|x64.ActiveCfg = Debug|x64
+		{EBEBA863-DD05-4331-BE25-5758B15F7407}.Debug|x86.ActiveCfg = Debug|x86
+		{EBEBA863-DD05-4331-BE25-5758B15F7407}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{EBEBA863-DD05-4331-BE25-5758B15F7407}.Release|x64.ActiveCfg = Release|x64
+		{EBEBA863-DD05-4331-BE25-5758B15F7407}.Release|x86.ActiveCfg = Release|x86
+		{EBEBA863-DD05-4331-BE25-5758B15F7407}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{EBEBA863-DD05-4331-BE25-5758B15F7407}.Services|Any CPU.Build.0 = Release|Any CPU
+		{EBEBA863-DD05-4331-BE25-5758B15F7407}.Services|x64.ActiveCfg = Release|x64
+		{EBEBA863-DD05-4331-BE25-5758B15F7407}.Services|x64.Build.0 = Release|x64
+		{EBEBA863-DD05-4331-BE25-5758B15F7407}.Services|x86.ActiveCfg = Release|x86
+		{EBEBA863-DD05-4331-BE25-5758B15F7407}.Services|x86.Build.0 = Release|x86
+		{EBEBA863-DD05-4331-BE25-5758B15F7407}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+		{EBEBA863-DD05-4331-BE25-5758B15F7407}.Silverlight2|x64.ActiveCfg = Release|x64
+		{EBEBA863-DD05-4331-BE25-5758B15F7407}.Silverlight2|x64.Build.0 = Release|x64
+		{EBEBA863-DD05-4331-BE25-5758B15F7407}.Silverlight2|x86.ActiveCfg = Release|x64
+		{D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Debug|x64.ActiveCfg = Debug|x64
+		{D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Debug|x64.Build.0 = Debug|x64
+		{D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Debug|x86.ActiveCfg = Debug|x86
+		{D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Debug|x86.Build.0 = Debug|x86
+		{D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Release|Any CPU.Build.0 = Release|Any CPU
+		{D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Release|x64.ActiveCfg = Release|x64
+		{D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Release|x64.Build.0 = Release|x64
+		{D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Release|x86.ActiveCfg = Release|x86
+		{D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Release|x86.Build.0 = Release|x86
+		{D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Services|x64.ActiveCfg = Release|x64
+		{D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Services|x86.ActiveCfg = Release|x86
+		{D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+		{D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Silverlight2|x64.ActiveCfg = Release|x86
+		{D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Silverlight2|x86.ActiveCfg = Release|x86
+		{D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Silverlight2|x86.Build.0 = Release|x86
+		{4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Debug|x64.ActiveCfg = Debug|x64
+		{4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Debug|x64.Build.0 = Debug|x64
+		{4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Debug|x86.ActiveCfg = Debug|x86
+		{4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Debug|x86.Build.0 = Debug|x86
+		{4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Release|Any CPU.Build.0 = Release|Any CPU
+		{4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Release|x64.ActiveCfg = Release|x64
+		{4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Release|x64.Build.0 = Release|x64
+		{4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Release|x86.ActiveCfg = Release|x86
+		{4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Release|x86.Build.0 = Release|x86
+		{4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Services|x64.ActiveCfg = Release|x64
+		{4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Services|x86.ActiveCfg = Release|x86
+		{4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+		{4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Silverlight2|x64.ActiveCfg = Release|x86
+		{4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Silverlight2|x86.ActiveCfg = Release|x86
+		{4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Silverlight2|x86.Build.0 = Release|x86
+		{E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Debug|x64.ActiveCfg = Debug|x64
+		{E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Debug|x64.Build.0 = Debug|x64
+		{E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Debug|x86.ActiveCfg = Debug|x86
+		{E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Debug|x86.Build.0 = Debug|x86
+		{E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Release|Any CPU.Build.0 = Release|Any CPU
+		{E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Release|x64.ActiveCfg = Release|x64
+		{E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Release|x64.Build.0 = Release|x64
+		{E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Release|x86.ActiveCfg = Release|x86
+		{E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Release|x86.Build.0 = Release|x86
+		{E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Services|x64.ActiveCfg = Release|x64
+		{E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Services|x86.ActiveCfg = Release|x86
+		{E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+		{E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Silverlight2|x64.ActiveCfg = Release|x64
+		{E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Silverlight2|x64.Build.0 = Release|x64
+		{E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Silverlight2|x86.ActiveCfg = Release|x64
+		{D767C38D-8014-46B0-9A32-03A3AECCE34A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{D767C38D-8014-46B0-9A32-03A3AECCE34A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{D767C38D-8014-46B0-9A32-03A3AECCE34A}.Debug|x64.ActiveCfg = Debug|x64
+		{D767C38D-8014-46B0-9A32-03A3AECCE34A}.Debug|x64.Build.0 = Debug|x64
+		{D767C38D-8014-46B0-9A32-03A3AECCE34A}.Debug|x86.ActiveCfg = Debug|x86
+		{D767C38D-8014-46B0-9A32-03A3AECCE34A}.Debug|x86.Build.0 = Debug|x86
+		{D767C38D-8014-46B0-9A32-03A3AECCE34A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{D767C38D-8014-46B0-9A32-03A3AECCE34A}.Release|Any CPU.Build.0 = Release|Any CPU
+		{D767C38D-8014-46B0-9A32-03A3AECCE34A}.Release|x64.ActiveCfg = Release|x64
+		{D767C38D-8014-46B0-9A32-03A3AECCE34A}.Release|x64.Build.0 = Release|x64
+		{D767C38D-8014-46B0-9A32-03A3AECCE34A}.Release|x86.ActiveCfg = Release|x86
+		{D767C38D-8014-46B0-9A32-03A3AECCE34A}.Release|x86.Build.0 = Release|x86
+		{D767C38D-8014-46B0-9A32-03A3AECCE34A}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{D767C38D-8014-46B0-9A32-03A3AECCE34A}.Services|x64.ActiveCfg = Release|x64
+		{D767C38D-8014-46B0-9A32-03A3AECCE34A}.Services|x86.ActiveCfg = Release|x86
+		{D767C38D-8014-46B0-9A32-03A3AECCE34A}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+		{D767C38D-8014-46B0-9A32-03A3AECCE34A}.Silverlight2|x64.ActiveCfg = Release|x64
+		{D767C38D-8014-46B0-9A32-03A3AECCE34A}.Silverlight2|x64.Build.0 = Release|x64
+		{D767C38D-8014-46B0-9A32-03A3AECCE34A}.Silverlight2|x86.ActiveCfg = Release|x64
+		{CDA28124-ACD0-4231-8EB0-C510B361F84E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{CDA28124-ACD0-4231-8EB0-C510B361F84E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{CDA28124-ACD0-4231-8EB0-C510B361F84E}.Debug|x64.ActiveCfg = Debug|x64
+		{CDA28124-ACD0-4231-8EB0-C510B361F84E}.Debug|x64.Build.0 = Debug|x64
+		{CDA28124-ACD0-4231-8EB0-C510B361F84E}.Debug|x86.ActiveCfg = Debug|x86
+		{CDA28124-ACD0-4231-8EB0-C510B361F84E}.Debug|x86.Build.0 = Debug|x86
+		{CDA28124-ACD0-4231-8EB0-C510B361F84E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{CDA28124-ACD0-4231-8EB0-C510B361F84E}.Release|Any CPU.Build.0 = Release|Any CPU
+		{CDA28124-ACD0-4231-8EB0-C510B361F84E}.Release|x64.ActiveCfg = Release|x64
+		{CDA28124-ACD0-4231-8EB0-C510B361F84E}.Release|x64.Build.0 = Release|x64
+		{CDA28124-ACD0-4231-8EB0-C510B361F84E}.Release|x86.ActiveCfg = Release|x86
+		{CDA28124-ACD0-4231-8EB0-C510B361F84E}.Release|x86.Build.0 = Release|x86
+		{CDA28124-ACD0-4231-8EB0-C510B361F84E}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{CDA28124-ACD0-4231-8EB0-C510B361F84E}.Services|x64.ActiveCfg = Release|x64
+		{CDA28124-ACD0-4231-8EB0-C510B361F84E}.Services|x86.ActiveCfg = Release|x86
+		{CDA28124-ACD0-4231-8EB0-C510B361F84E}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+		{CDA28124-ACD0-4231-8EB0-C510B361F84E}.Silverlight2|x64.ActiveCfg = Release|x64
+		{CDA28124-ACD0-4231-8EB0-C510B361F84E}.Silverlight2|x64.Build.0 = Release|x64
+		{CDA28124-ACD0-4231-8EB0-C510B361F84E}.Silverlight2|x86.ActiveCfg = Release|x64
+		{88B9B0E3-344E-4196-82A3-0F9732506FE8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{88B9B0E3-344E-4196-82A3-0F9732506FE8}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{88B9B0E3-344E-4196-82A3-0F9732506FE8}.Debug|x64.ActiveCfg = Debug|x64
+		{88B9B0E3-344E-4196-82A3-0F9732506FE8}.Debug|x64.Build.0 = Debug|x64
+		{88B9B0E3-344E-4196-82A3-0F9732506FE8}.Debug|x86.ActiveCfg = Debug|x86
+		{88B9B0E3-344E-4196-82A3-0F9732506FE8}.Debug|x86.Build.0 = Debug|x86
+		{88B9B0E3-344E-4196-82A3-0F9732506FE8}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{88B9B0E3-344E-4196-82A3-0F9732506FE8}.Release|Any CPU.Build.0 = Release|Any CPU
+		{88B9B0E3-344E-4196-82A3-0F9732506FE8}.Release|x64.ActiveCfg = Release|x64
+		{88B9B0E3-344E-4196-82A3-0F9732506FE8}.Release|x64.Build.0 = Release|x64
+		{88B9B0E3-344E-4196-82A3-0F9732506FE8}.Release|x86.ActiveCfg = Release|x86
+		{88B9B0E3-344E-4196-82A3-0F9732506FE8}.Release|x86.Build.0 = Release|x86
+		{88B9B0E3-344E-4196-82A3-0F9732506FE8}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{88B9B0E3-344E-4196-82A3-0F9732506FE8}.Services|x64.ActiveCfg = Release|x64
+		{88B9B0E3-344E-4196-82A3-0F9732506FE8}.Services|x86.ActiveCfg = Release|x86
+		{88B9B0E3-344E-4196-82A3-0F9732506FE8}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+		{88B9B0E3-344E-4196-82A3-0F9732506FE8}.Silverlight2|x64.ActiveCfg = Release|x86
+		{88B9B0E3-344E-4196-82A3-0F9732506FE8}.Silverlight2|x86.ActiveCfg = Release|x86
+		{88B9B0E3-344E-4196-82A3-0F9732506FE8}.Silverlight2|x86.Build.0 = Release|x86
+		{6AE0E1F5-D3FF-43A3-90E1-2435E7493FB5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{6AE0E1F5-D3FF-43A3-90E1-2435E7493FB5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{6AE0E1F5-D3FF-43A3-90E1-2435E7493FB5}.Debug|x64.ActiveCfg = Debug|x64
+		{6AE0E1F5-D3FF-43A3-90E1-2435E7493FB5}.Debug|x64.Build.0 = Debug|x64
+		{6AE0E1F5-D3FF-43A3-90E1-2435E7493FB5}.Debug|x86.ActiveCfg = Debug|x86
+		{6AE0E1F5-D3FF-43A3-90E1-2435E7493FB5}.Debug|x86.Build.0 = Debug|x86
+		{6AE0E1F5-D3FF-43A3-90E1-2435E7493FB5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{6AE0E1F5-D3FF-43A3-90E1-2435E7493FB5}.Release|Any CPU.Build.0 = Release|Any CPU
+		{6AE0E1F5-D3FF-43A3-90E1-2435E7493FB5}.Release|x64.ActiveCfg = Release|x64
+		{6AE0E1F5-D3FF-43A3-90E1-2435E7493FB5}.Release|x64.Build.0 = Release|x64
+		{6AE0E1F5-D3FF-43A3-90E1-2435E7493FB5}.Release|x86.ActiveCfg = Release|x86
+		{6AE0E1F5-D3FF-43A3-90E1-2435E7493FB5}.Release|x86.Build.0 = Release|x86
+		{6AE0E1F5-D3FF-43A3-90E1-2435E7493FB5}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{6AE0E1F5-D3FF-43A3-90E1-2435E7493FB5}.Services|x64.ActiveCfg = Release|x64
+		{6AE0E1F5-D3FF-43A3-90E1-2435E7493FB5}.Services|x86.ActiveCfg = Release|x86
+		{6AE0E1F5-D3FF-43A3-90E1-2435E7493FB5}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+		{6AE0E1F5-D3FF-43A3-90E1-2435E7493FB5}.Silverlight2|x64.ActiveCfg = Release|x86
+		{6AE0E1F5-D3FF-43A3-90E1-2435E7493FB5}.Silverlight2|x86.ActiveCfg = Release|x86
+		{6AE0E1F5-D3FF-43A3-90E1-2435E7493FB5}.Silverlight2|x86.Build.0 = Release|x86
+		{A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Debug|x64.ActiveCfg = Debug|x64
+		{A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Debug|x64.Build.0 = Debug|x64
+		{A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Debug|x86.ActiveCfg = Debug|x86
+		{A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Debug|x86.Build.0 = Debug|x86
+		{A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Release|Any CPU.Build.0 = Release|Any CPU
+		{A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Release|x64.ActiveCfg = Release|x64
+		{A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Release|x64.Build.0 = Release|x64
+		{A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Release|x86.ActiveCfg = Release|x86
+		{A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Release|x86.Build.0 = Release|x86
+		{A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Services|x64.ActiveCfg = Release|x64
+		{A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Services|x86.ActiveCfg = Release|x86
+		{A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+		{A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Silverlight2|x64.ActiveCfg = Release|x64
+		{A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Silverlight2|x64.Build.0 = Release|x64
+		{A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Silverlight2|x86.ActiveCfg = Release|x64
+		{DE12659F-87C4-48E6-B2E3-4E73DD95A540}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{DE12659F-87C4-48E6-B2E3-4E73DD95A540}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{DE12659F-87C4-48E6-B2E3-4E73DD95A540}.Debug|x64.ActiveCfg = Debug|x64
+		{DE12659F-87C4-48E6-B2E3-4E73DD95A540}.Debug|x64.Build.0 = Debug|x64
+		{DE12659F-87C4-48E6-B2E3-4E73DD95A540}.Debug|x86.ActiveCfg = Debug|x86
+		{DE12659F-87C4-48E6-B2E3-4E73DD95A540}.Debug|x86.Build.0 = Debug|x86
+		{DE12659F-87C4-48E6-B2E3-4E73DD95A540}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{DE12659F-87C4-48E6-B2E3-4E73DD95A540}.Release|Any CPU.Build.0 = Release|Any CPU
+		{DE12659F-87C4-48E6-B2E3-4E73DD95A540}.Release|x64.ActiveCfg = Release|x64
+		{DE12659F-87C4-48E6-B2E3-4E73DD95A540}.Release|x64.Build.0 = Release|x64
+		{DE12659F-87C4-48E6-B2E3-4E73DD95A540}.Release|x86.ActiveCfg = Release|x86
+		{DE12659F-87C4-48E6-B2E3-4E73DD95A540}.Release|x86.Build.0 = Release|x86
+		{DE12659F-87C4-48E6-B2E3-4E73DD95A540}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{DE12659F-87C4-48E6-B2E3-4E73DD95A540}.Services|x64.ActiveCfg = Release|x64
+		{DE12659F-87C4-48E6-B2E3-4E73DD95A540}.Services|x86.ActiveCfg = Release|x86
+		{DE12659F-87C4-48E6-B2E3-4E73DD95A540}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+		{DE12659F-87C4-48E6-B2E3-4E73DD95A540}.Silverlight2|x64.ActiveCfg = Release|x64
+		{DE12659F-87C4-48E6-B2E3-4E73DD95A540}.Silverlight2|x64.Build.0 = Release|x64
+		{DE12659F-87C4-48E6-B2E3-4E73DD95A540}.Silverlight2|x86.ActiveCfg = Release|x64
+		{421D9CCA-5A48-4813-AB9C-ED7025F9CC35}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{421D9CCA-5A48-4813-AB9C-ED7025F9CC35}.Debug|x64.ActiveCfg = Debug|x64
+		{421D9CCA-5A48-4813-AB9C-ED7025F9CC35}.Debug|x86.ActiveCfg = Debug|x86
+		{421D9CCA-5A48-4813-AB9C-ED7025F9CC35}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{421D9CCA-5A48-4813-AB9C-ED7025F9CC35}.Release|x64.ActiveCfg = Release|x64
+		{421D9CCA-5A48-4813-AB9C-ED7025F9CC35}.Release|x86.ActiveCfg = Release|x86
+		{421D9CCA-5A48-4813-AB9C-ED7025F9CC35}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{421D9CCA-5A48-4813-AB9C-ED7025F9CC35}.Services|Any CPU.Build.0 = Release|Any CPU
+		{421D9CCA-5A48-4813-AB9C-ED7025F9CC35}.Services|x64.ActiveCfg = Release|x64
+		{421D9CCA-5A48-4813-AB9C-ED7025F9CC35}.Services|x64.Build.0 = Release|x64
+		{421D9CCA-5A48-4813-AB9C-ED7025F9CC35}.Services|x86.ActiveCfg = Release|x86
+		{421D9CCA-5A48-4813-AB9C-ED7025F9CC35}.Services|x86.Build.0 = Release|x86
+		{421D9CCA-5A48-4813-AB9C-ED7025F9CC35}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+		{421D9CCA-5A48-4813-AB9C-ED7025F9CC35}.Silverlight2|x64.ActiveCfg = Release|x86
+		{421D9CCA-5A48-4813-AB9C-ED7025F9CC35}.Silverlight2|x86.ActiveCfg = Release|x86
+		{421D9CCA-5A48-4813-AB9C-ED7025F9CC35}.Silverlight2|x86.Build.0 = Release|x86
+		{125D3006-67F5-48CB-913E-73C0548F17FA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{125D3006-67F5-48CB-913E-73C0548F17FA}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{125D3006-67F5-48CB-913E-73C0548F17FA}.Debug|x64.ActiveCfg = Debug|x64
+		{125D3006-67F5-48CB-913E-73C0548F17FA}.Debug|x64.Build.0 = Debug|x64
+		{125D3006-67F5-48CB-913E-73C0548F17FA}.Debug|x86.ActiveCfg = Debug|x86
+		{125D3006-67F5-48CB-913E-73C0548F17FA}.Debug|x86.Build.0 = Debug|x86
+		{125D3006-67F5-48CB-913E-73C0548F17FA}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{125D3006-67F5-48CB-913E-73C0548F17FA}.Release|Any CPU.Build.0 = Release|Any CPU
+		{125D3006-67F5-48CB-913E-73C0548F17FA}.Release|x64.ActiveCfg = Release|x64
+		{125D3006-67F5-48CB-913E-73C0548F17FA}.Release|x64.Build.0 = Release|x64
+		{125D3006-67F5-48CB-913E-73C0548F17FA}.Release|x86.ActiveCfg = Release|x86
+		{125D3006-67F5-48CB-913E-73C0548F17FA}.Release|x86.Build.0 = Release|x86
+		{125D3006-67F5-48CB-913E-73C0548F17FA}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{125D3006-67F5-48CB-913E-73C0548F17FA}.Services|x64.ActiveCfg = Release|x64
+		{125D3006-67F5-48CB-913E-73C0548F17FA}.Services|x86.ActiveCfg = Release|x86
+		{125D3006-67F5-48CB-913E-73C0548F17FA}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+		{125D3006-67F5-48CB-913E-73C0548F17FA}.Silverlight2|x64.ActiveCfg = Release|x86
+		{125D3006-67F5-48CB-913E-73C0548F17FA}.Silverlight2|x86.ActiveCfg = Release|x86
+		{125D3006-67F5-48CB-913E-73C0548F17FA}.Silverlight2|x86.Build.0 = Release|x86
+		{F5C0ECAC-EDBA-4024-872A-1F74AFCB20B4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{F5C0ECAC-EDBA-4024-872A-1F74AFCB20B4}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{F5C0ECAC-EDBA-4024-872A-1F74AFCB20B4}.Debug|x64.ActiveCfg = Debug|x64
+		{F5C0ECAC-EDBA-4024-872A-1F74AFCB20B4}.Debug|x64.Build.0 = Debug|x64
+		{F5C0ECAC-EDBA-4024-872A-1F74AFCB20B4}.Debug|x86.ActiveCfg = Debug|x86
+		{F5C0ECAC-EDBA-4024-872A-1F74AFCB20B4}.Debug|x86.Build.0 = Debug|x86
+		{F5C0ECAC-EDBA-4024-872A-1F74AFCB20B4}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{F5C0ECAC-EDBA-4024-872A-1F74AFCB20B4}.Release|Any CPU.Build.0 = Release|Any CPU
+		{F5C0ECAC-EDBA-4024-872A-1F74AFCB20B4}.Release|x64.ActiveCfg = Release|x64
+		{F5C0ECAC-EDBA-4024-872A-1F74AFCB20B4}.Release|x64.Build.0 = Release|x64
+		{F5C0ECAC-EDBA-4024-872A-1F74AFCB20B4}.Release|x86.ActiveCfg = Release|x86
+		{F5C0ECAC-EDBA-4024-872A-1F74AFCB20B4}.Release|x86.Build.0 = Release|x86
+		{F5C0ECAC-EDBA-4024-872A-1F74AFCB20B4}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{F5C0ECAC-EDBA-4024-872A-1F74AFCB20B4}.Services|x64.ActiveCfg = Release|x64
+		{F5C0ECAC-EDBA-4024-872A-1F74AFCB20B4}.Services|x86.ActiveCfg = Release|x86
+		{F5C0ECAC-EDBA-4024-872A-1F74AFCB20B4}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+		{F5C0ECAC-EDBA-4024-872A-1F74AFCB20B4}.Silverlight2|x64.ActiveCfg = Release|x86
+		{F5C0ECAC-EDBA-4024-872A-1F74AFCB20B4}.Silverlight2|x86.ActiveCfg = Release|x86
+		{F5C0ECAC-EDBA-4024-872A-1F74AFCB20B4}.Silverlight2|x86.Build.0 = Release|x86
+		{30DD3DA2-CA57-49DD-A5BA-50CEF19DB45F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{30DD3DA2-CA57-49DD-A5BA-50CEF19DB45F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{30DD3DA2-CA57-49DD-A5BA-50CEF19DB45F}.Debug|x64.ActiveCfg = Debug|x64
+		{30DD3DA2-CA57-49DD-A5BA-50CEF19DB45F}.Debug|x64.Build.0 = Debug|x64
+		{30DD3DA2-CA57-49DD-A5BA-50CEF19DB45F}.Debug|x86.ActiveCfg = Debug|x86
+		{30DD3DA2-CA57-49DD-A5BA-50CEF19DB45F}.Debug|x86.Build.0 = Debug|x86
+		{30DD3DA2-CA57-49DD-A5BA-50CEF19DB45F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{30DD3DA2-CA57-49DD-A5BA-50CEF19DB45F}.Release|Any CPU.Build.0 = Release|Any CPU
+		{30DD3DA2-CA57-49DD-A5BA-50CEF19DB45F}.Release|x64.ActiveCfg = Release|x64
+		{30DD3DA2-CA57-49DD-A5BA-50CEF19DB45F}.Release|x64.Build.0 = Release|x64
+		{30DD3DA2-CA57-49DD-A5BA-50CEF19DB45F}.Release|x86.ActiveCfg = Release|x86
+		{30DD3DA2-CA57-49DD-A5BA-50CEF19DB45F}.Release|x86.Build.0 = Release|x86
+		{30DD3DA2-CA57-49DD-A5BA-50CEF19DB45F}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{30DD3DA2-CA57-49DD-A5BA-50CEF19DB45F}.Services|x64.ActiveCfg = Release|x64
+		{30DD3DA2-CA57-49DD-A5BA-50CEF19DB45F}.Services|x86.ActiveCfg = Release|x86
+		{30DD3DA2-CA57-49DD-A5BA-50CEF19DB45F}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+		{30DD3DA2-CA57-49DD-A5BA-50CEF19DB45F}.Silverlight2|x64.ActiveCfg = Release|x86
+		{30DD3DA2-CA57-49DD-A5BA-50CEF19DB45F}.Silverlight2|x86.ActiveCfg = Release|x86
+		{30DD3DA2-CA57-49DD-A5BA-50CEF19DB45F}.Silverlight2|x86.Build.0 = Release|x86
+		{6F42C5F8-16CD-43EE-8208-FD4573A69D85}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{6F42C5F8-16CD-43EE-8208-FD4573A69D85}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{6F42C5F8-16CD-43EE-8208-FD4573A69D85}.Debug|x64.ActiveCfg = Debug|x64
+		{6F42C5F8-16CD-43EE-8208-FD4573A69D85}.Debug|x64.Build.0 = Debug|x64
+		{6F42C5F8-16CD-43EE-8208-FD4573A69D85}.Debug|x86.ActiveCfg = Debug|x86
+		{6F42C5F8-16CD-43EE-8208-FD4573A69D85}.Debug|x86.Build.0 = Debug|x86
+		{6F42C5F8-16CD-43EE-8208-FD4573A69D85}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{6F42C5F8-16CD-43EE-8208-FD4573A69D85}.Release|Any CPU.Build.0 = Release|Any CPU
+		{6F42C5F8-16CD-43EE-8208-FD4573A69D85}.Release|x64.ActiveCfg = Release|x64
+		{6F42C5F8-16CD-43EE-8208-FD4573A69D85}.Release|x64.Build.0 = Release|x64
+		{6F42C5F8-16CD-43EE-8208-FD4573A69D85}.Release|x86.ActiveCfg = Release|x86
+		{6F42C5F8-16CD-43EE-8208-FD4573A69D85}.Release|x86.Build.0 = Release|x86
+		{6F42C5F8-16CD-43EE-8208-FD4573A69D85}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{6F42C5F8-16CD-43EE-8208-FD4573A69D85}.Services|x64.ActiveCfg = Release|x64
+		{6F42C5F8-16CD-43EE-8208-FD4573A69D85}.Services|x86.ActiveCfg = Release|x86
+		{6F42C5F8-16CD-43EE-8208-FD4573A69D85}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+		{6F42C5F8-16CD-43EE-8208-FD4573A69D85}.Silverlight2|x64.ActiveCfg = Release|x86
+		{6F42C5F8-16CD-43EE-8208-FD4573A69D85}.Silverlight2|x86.ActiveCfg = Release|x86
+		{6F42C5F8-16CD-43EE-8208-FD4573A69D85}.Silverlight2|x86.Build.0 = Release|x86
+		{70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}.Debug|x64.ActiveCfg = Debug|x64
+		{70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}.Debug|x64.Build.0 = Debug|x64
+		{70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}.Debug|x86.ActiveCfg = Debug|x86
+		{70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}.Debug|x86.Build.0 = Debug|x86
+		{70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}.Release|Any CPU.Build.0 = Release|Any CPU
+		{70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}.Release|x64.ActiveCfg = Release|x64
+		{70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}.Release|x64.Build.0 = Release|x64
+		{70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}.Release|x86.ActiveCfg = Release|x86
+		{70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}.Release|x86.Build.0 = Release|x86
+		{70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}.Services|x64.ActiveCfg = Release|x64
+		{70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}.Services|x86.ActiveCfg = Release|x86
+		{70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+		{70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}.Silverlight2|x64.ActiveCfg = Release|x86
+		{70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}.Silverlight2|x86.ActiveCfg = Release|x86
+		{70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}.Silverlight2|x86.Build.0 = Release|x86
+		{BDF86B1D-630E-4CE2-8A49-8C90B1BDE4C9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{BDF86B1D-630E-4CE2-8A49-8C90B1BDE4C9}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{BDF86B1D-630E-4CE2-8A49-8C90B1BDE4C9}.Debug|x64.ActiveCfg = Debug|x64
+		{BDF86B1D-630E-4CE2-8A49-8C90B1BDE4C9}.Debug|x64.Build.0 = Debug|x64
+		{BDF86B1D-630E-4CE2-8A49-8C90B1BDE4C9}.Debug|x86.ActiveCfg = Debug|x86
+		{BDF86B1D-630E-4CE2-8A49-8C90B1BDE4C9}.Debug|x86.Build.0 = Debug|x86
+		{BDF86B1D-630E-4CE2-8A49-8C90B1BDE4C9}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{BDF86B1D-630E-4CE2-8A49-8C90B1BDE4C9}.Release|Any CPU.Build.0 = Release|Any CPU
+		{BDF86B1D-630E-4CE2-8A49-8C90B1BDE4C9}.Release|x64.ActiveCfg = Release|x64
+		{BDF86B1D-630E-4CE2-8A49-8C90B1BDE4C9}.Release|x64.Build.0 = Release|x64
+		{BDF86B1D-630E-4CE2-8A49-8C90B1BDE4C9}.Release|x86.ActiveCfg = Release|x86
+		{BDF86B1D-630E-4CE2-8A49-8C90B1BDE4C9}.Release|x86.Build.0 = Release|x86
+		{BDF86B1D-630E-4CE2-8A49-8C90B1BDE4C9}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{BDF86B1D-630E-4CE2-8A49-8C90B1BDE4C9}.Services|x64.ActiveCfg = Release|x64
+		{BDF86B1D-630E-4CE2-8A49-8C90B1BDE4C9}.Services|x86.ActiveCfg = Release|x86
+		{BDF86B1D-630E-4CE2-8A49-8C90B1BDE4C9}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+		{BDF86B1D-630E-4CE2-8A49-8C90B1BDE4C9}.Silverlight2|x64.ActiveCfg = Release|x86
+		{BDF86B1D-630E-4CE2-8A49-8C90B1BDE4C9}.Silverlight2|x86.ActiveCfg = Release|x86
+		{BDF86B1D-630E-4CE2-8A49-8C90B1BDE4C9}.Silverlight2|x86.Build.0 = Release|x86
+		{8824925E-3E00-4543-8293-7DDACE4737F8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{8824925E-3E00-4543-8293-7DDACE4737F8}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{8824925E-3E00-4543-8293-7DDACE4737F8}.Debug|x64.ActiveCfg = Debug|x64
+		{8824925E-3E00-4543-8293-7DDACE4737F8}.Debug|x64.Build.0 = Debug|x64
+		{8824925E-3E00-4543-8293-7DDACE4737F8}.Debug|x86.ActiveCfg = Debug|x86
+		{8824925E-3E00-4543-8293-7DDACE4737F8}.Debug|x86.Build.0 = Debug|x86
+		{8824925E-3E00-4543-8293-7DDACE4737F8}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{8824925E-3E00-4543-8293-7DDACE4737F8}.Release|Any CPU.Build.0 = Release|Any CPU
+		{8824925E-3E00-4543-8293-7DDACE4737F8}.Release|x64.ActiveCfg = Release|x64
+		{8824925E-3E00-4543-8293-7DDACE4737F8}.Release|x64.Build.0 = Release|x64
+		{8824925E-3E00-4543-8293-7DDACE4737F8}.Release|x86.ActiveCfg = Release|x86
+		{8824925E-3E00-4543-8293-7DDACE4737F8}.Release|x86.Build.0 = Release|x86
+		{8824925E-3E00-4543-8293-7DDACE4737F8}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{8824925E-3E00-4543-8293-7DDACE4737F8}.Services|x64.ActiveCfg = Release|x64
+		{8824925E-3E00-4543-8293-7DDACE4737F8}.Services|x86.ActiveCfg = Release|x86
+		{8824925E-3E00-4543-8293-7DDACE4737F8}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+		{8824925E-3E00-4543-8293-7DDACE4737F8}.Silverlight2|x64.ActiveCfg = Release|x86
+		{8824925E-3E00-4543-8293-7DDACE4737F8}.Silverlight2|x86.ActiveCfg = Release|x86
+		{8824925E-3E00-4543-8293-7DDACE4737F8}.Silverlight2|x86.Build.0 = Release|x86
+		{2C429157-9C34-4DD3-9D5F-B444B751E39A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{2C429157-9C34-4DD3-9D5F-B444B751E39A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{2C429157-9C34-4DD3-9D5F-B444B751E39A}.Debug|x64.ActiveCfg = Debug|x64
+		{2C429157-9C34-4DD3-9D5F-B444B751E39A}.Debug|x64.Build.0 = Debug|x64
+		{2C429157-9C34-4DD3-9D5F-B444B751E39A}.Debug|x86.ActiveCfg = Debug|x86
+		{2C429157-9C34-4DD3-9D5F-B444B751E39A}.Debug|x86.Build.0 = Debug|x86
+		{2C429157-9C34-4DD3-9D5F-B444B751E39A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{2C429157-9C34-4DD3-9D5F-B444B751E39A}.Release|Any CPU.Build.0 = Release|Any CPU
+		{2C429157-9C34-4DD3-9D5F-B444B751E39A}.Release|x64.ActiveCfg = Release|x64
+		{2C429157-9C34-4DD3-9D5F-B444B751E39A}.Release|x64.Build.0 = Release|x64
+		{2C429157-9C34-4DD3-9D5F-B444B751E39A}.Release|x86.ActiveCfg = Release|x86
+		{2C429157-9C34-4DD3-9D5F-B444B751E39A}.Release|x86.Build.0 = Release|x86
+		{2C429157-9C34-4DD3-9D5F-B444B751E39A}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{2C429157-9C34-4DD3-9D5F-B444B751E39A}.Services|x64.ActiveCfg = Release|x64
+		{2C429157-9C34-4DD3-9D5F-B444B751E39A}.Services|x86.ActiveCfg = Release|x86
+		{2C429157-9C34-4DD3-9D5F-B444B751E39A}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+		{2C429157-9C34-4DD3-9D5F-B444B751E39A}.Silverlight2|x64.ActiveCfg = Release|x64
+		{2C429157-9C34-4DD3-9D5F-B444B751E39A}.Silverlight2|x64.Build.0 = Release|x64
+		{2C429157-9C34-4DD3-9D5F-B444B751E39A}.Silverlight2|x86.ActiveCfg = Release|x64
+		{799B0B38-E384-4A17-A73C-F211EB854592}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{799B0B38-E384-4A17-A73C-F211EB854592}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{799B0B38-E384-4A17-A73C-F211EB854592}.Debug|x64.ActiveCfg = Debug|x64
+		{799B0B38-E384-4A17-A73C-F211EB854592}.Debug|x64.Build.0 = Debug|x64
+		{799B0B38-E384-4A17-A73C-F211EB854592}.Debug|x86.ActiveCfg = Debug|x86
+		{799B0B38-E384-4A17-A73C-F211EB854592}.Debug|x86.Build.0 = Debug|x86
+		{799B0B38-E384-4A17-A73C-F211EB854592}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{799B0B38-E384-4A17-A73C-F211EB854592}.Release|Any CPU.Build.0 = Release|Any CPU
+		{799B0B38-E384-4A17-A73C-F211EB854592}.Release|x64.ActiveCfg = Release|x64
+		{799B0B38-E384-4A17-A73C-F211EB854592}.Release|x64.Build.0 = Release|x64
+		{799B0B38-E384-4A17-A73C-F211EB854592}.Release|x86.ActiveCfg = Release|x86
+		{799B0B38-E384-4A17-A73C-F211EB854592}.Release|x86.Build.0 = Release|x86
+		{799B0B38-E384-4A17-A73C-F211EB854592}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{799B0B38-E384-4A17-A73C-F211EB854592}.Services|x64.ActiveCfg = Release|x64
+		{799B0B38-E384-4A17-A73C-F211EB854592}.Services|x86.ActiveCfg = Release|x86
+		{799B0B38-E384-4A17-A73C-F211EB854592}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+		{799B0B38-E384-4A17-A73C-F211EB854592}.Silverlight2|x64.ActiveCfg = Release|x86
+		{799B0B38-E384-4A17-A73C-F211EB854592}.Silverlight2|x86.ActiveCfg = Release|x86
+		{799B0B38-E384-4A17-A73C-F211EB854592}.Silverlight2|x86.Build.0 = Release|x86
+		{F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Debug|x64.ActiveCfg = Debug|x64
+		{F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Debug|x64.Build.0 = Debug|x64
+		{F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Debug|x86.ActiveCfg = Debug|x86
+		{F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Debug|x86.Build.0 = Debug|x86
+		{F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Release|Any CPU.Build.0 = Release|Any CPU
+		{F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Release|x64.ActiveCfg = Release|x64
+		{F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Release|x64.Build.0 = Release|x64
+		{F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Release|x86.ActiveCfg = Release|x86
+		{F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Release|x86.Build.0 = Release|x86
+		{F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Services|x64.ActiveCfg = Release|x64
+		{F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Services|x86.ActiveCfg = Release|x86
+		{F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+		{F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Silverlight2|x64.ActiveCfg = Release|x64
+		{F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Silverlight2|x64.Build.0 = Release|x64
+		{F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Silverlight2|x86.ActiveCfg = Release|x64
+		{A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Debug|x64.ActiveCfg = Debug|x64
+		{A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Debug|x64.Build.0 = Debug|x64
+		{A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Debug|x86.ActiveCfg = Debug|x86
+		{A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Debug|x86.Build.0 = Debug|x86
+		{A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Release|Any CPU.Build.0 = Release|Any CPU
+		{A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Release|x64.ActiveCfg = Release|x64
+		{A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Release|x64.Build.0 = Release|x64
+		{A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Release|x86.ActiveCfg = Release|x86
+		{A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Release|x86.Build.0 = Release|x86
+		{A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Services|x64.ActiveCfg = Release|x64
+		{A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Services|x86.ActiveCfg = Release|x86
+		{A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+		{A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Silverlight2|x64.ActiveCfg = Release|x64
+		{A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Silverlight2|x64.Build.0 = Release|x64
+		{A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Silverlight2|x86.ActiveCfg = Release|x64
+		{3EAF1454-086D-44A2-8509-B1BA24DB1865}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{3EAF1454-086D-44A2-8509-B1BA24DB1865}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{3EAF1454-086D-44A2-8509-B1BA24DB1865}.Debug|x64.ActiveCfg = Debug|x64
+		{3EAF1454-086D-44A2-8509-B1BA24DB1865}.Debug|x64.Build.0 = Debug|x64
+		{3EAF1454-086D-44A2-8509-B1BA24DB1865}.Debug|x86.ActiveCfg = Debug|x86
+		{3EAF1454-086D-44A2-8509-B1BA24DB1865}.Debug|x86.Build.0 = Debug|x86
+		{3EAF1454-086D-44A2-8509-B1BA24DB1865}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{3EAF1454-086D-44A2-8509-B1BA24DB1865}.Release|Any CPU.Build.0 = Release|Any CPU
+		{3EAF1454-086D-44A2-8509-B1BA24DB1865}.Release|x64.ActiveCfg = Release|x64
+		{3EAF1454-086D-44A2-8509-B1BA24DB1865}.Release|x64.Build.0 = Release|x64
+		{3EAF1454-086D-44A2-8509-B1BA24DB1865}.Release|x86.ActiveCfg = Release|x86
+		{3EAF1454-086D-44A2-8509-B1BA24DB1865}.Release|x86.Build.0 = Release|x86
+		{3EAF1454-086D-44A2-8509-B1BA24DB1865}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{3EAF1454-086D-44A2-8509-B1BA24DB1865}.Services|x64.ActiveCfg = Release|x64
+		{3EAF1454-086D-44A2-8509-B1BA24DB1865}.Services|x86.ActiveCfg = Release|x86
+		{3EAF1454-086D-44A2-8509-B1BA24DB1865}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+		{3EAF1454-086D-44A2-8509-B1BA24DB1865}.Silverlight2|x64.ActiveCfg = Release|x64
+		{3EAF1454-086D-44A2-8509-B1BA24DB1865}.Silverlight2|x64.Build.0 = Release|x64
+		{3EAF1454-086D-44A2-8509-B1BA24DB1865}.Silverlight2|x86.ActiveCfg = Release|x64
+		{3BD61258-31DA-4B09-89C0-4F71FEF5F05A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{3BD61258-31DA-4B09-89C0-4F71FEF5F05A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{3BD61258-31DA-4B09-89C0-4F71FEF5F05A}.Debug|x64.ActiveCfg = Debug|x64
+		{3BD61258-31DA-4B09-89C0-4F71FEF5F05A}.Debug|x64.Build.0 = Debug|x64
+		{3BD61258-31DA-4B09-89C0-4F71FEF5F05A}.Debug|x86.ActiveCfg = Debug|x86
+		{3BD61258-31DA-4B09-89C0-4F71FEF5F05A}.Debug|x86.Build.0 = Debug|x86
+		{3BD61258-31DA-4B09-89C0-4F71FEF5F05A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{3BD61258-31DA-4B09-89C0-4F71FEF5F05A}.Release|Any CPU.Build.0 = Release|Any CPU
+		{3BD61258-31DA-4B09-89C0-4F71FEF5F05A}.Release|x64.ActiveCfg = Release|x64
+		{3BD61258-31DA-4B09-89C0-4F71FEF5F05A}.Release|x64.Build.0 = Release|x64
+		{3BD61258-31DA-4B09-89C0-4F71FEF5F05A}.Release|x86.ActiveCfg = Release|x86
+		{3BD61258-31DA-4B09-89C0-4F71FEF5F05A}.Release|x86.Build.0 = Release|x86
+		{3BD61258-31DA-4B09-89C0-4F71FEF5F05A}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{3BD61258-31DA-4B09-89C0-4F71FEF5F05A}.Services|x64.ActiveCfg = Release|x64
+		{3BD61258-31DA-4B09-89C0-4F71FEF5F05A}.Services|x86.ActiveCfg = Release|x86
+		{3BD61258-31DA-4B09-89C0-4F71FEF5F05A}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+		{3BD61258-31DA-4B09-89C0-4F71FEF5F05A}.Silverlight2|x64.ActiveCfg = Release|x86
+		{3BD61258-31DA-4B09-89C0-4F71FEF5F05A}.Silverlight2|x86.ActiveCfg = Release|x86
+		{3BD61258-31DA-4B09-89C0-4F71FEF5F05A}.Silverlight2|x86.Build.0 = Release|x86
+		{AB687BBE-1BFE-476B-906D-44237135431D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{AB687BBE-1BFE-476B-906D-44237135431D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{AB687BBE-1BFE-476B-906D-44237135431D}.Debug|x64.ActiveCfg = Debug|x64
+		{AB687BBE-1BFE-476B-906D-44237135431D}.Debug|x64.Build.0 = Debug|x64
+		{AB687BBE-1BFE-476B-906D-44237135431D}.Debug|x86.ActiveCfg = Debug|x86
+		{AB687BBE-1BFE-476B-906D-44237135431D}.Debug|x86.Build.0 = Debug|x86
+		{AB687BBE-1BFE-476B-906D-44237135431D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{AB687BBE-1BFE-476B-906D-44237135431D}.Release|Any CPU.Build.0 = Release|Any CPU
+		{AB687BBE-1BFE-476B-906D-44237135431D}.Release|x64.ActiveCfg = Release|x64
+		{AB687BBE-1BFE-476B-906D-44237135431D}.Release|x64.Build.0 = Release|x64
+		{AB687BBE-1BFE-476B-906D-44237135431D}.Release|x86.ActiveCfg = Release|x86
+		{AB687BBE-1BFE-476B-906D-44237135431D}.Release|x86.Build.0 = Release|x86
+		{AB687BBE-1BFE-476B-906D-44237135431D}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{AB687BBE-1BFE-476B-906D-44237135431D}.Services|x64.ActiveCfg = Release|x64
+		{AB687BBE-1BFE-476B-906D-44237135431D}.Services|x86.ActiveCfg = Release|x86
+		{AB687BBE-1BFE-476B-906D-44237135431D}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+		{AB687BBE-1BFE-476B-906D-44237135431D}.Silverlight2|x64.ActiveCfg = Release|x86
+		{AB687BBE-1BFE-476B-906D-44237135431D}.Silverlight2|x86.ActiveCfg = Release|x86
+		{AB687BBE-1BFE-476B-906D-44237135431D}.Silverlight2|x86.Build.0 = Release|x86
+		{4FE983A1-AAF8-4977-B9E2-52B3224510CB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{4FE983A1-AAF8-4977-B9E2-52B3224510CB}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{4FE983A1-AAF8-4977-B9E2-52B3224510CB}.Debug|x64.ActiveCfg = Debug|x64
+		{4FE983A1-AAF8-4977-B9E2-52B3224510CB}.Debug|x64.Build.0 = Debug|x64
+		{4FE983A1-AAF8-4977-B9E2-52B3224510CB}.Debug|x86.ActiveCfg = Debug|x86
+		{4FE983A1-AAF8-4977-B9E2-52B3224510CB}.Debug|x86.Build.0 = Debug|x86
+		{4FE983A1-AAF8-4977-B9E2-52B3224510CB}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{4FE983A1-AAF8-4977-B9E2-52B3224510CB}.Release|Any CPU.Build.0 = Release|Any CPU
+		{4FE983A1-AAF8-4977-B9E2-52B3224510CB}.Release|x64.ActiveCfg = Release|x64
+		{4FE983A1-AAF8-4977-B9E2-52B3224510CB}.Release|x64.Build.0 = Release|x64
+		{4FE983A1-AAF8-4977-B9E2-52B3224510CB}.Release|x86.ActiveCfg = Release|x86
+		{4FE983A1-AAF8-4977-B9E2-52B3224510CB}.Release|x86.Build.0 = Release|x86
+		{4FE983A1-AAF8-4977-B9E2-52B3224510CB}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{4FE983A1-AAF8-4977-B9E2-52B3224510CB}.Services|x64.ActiveCfg = Release|x64
+		{4FE983A1-AAF8-4977-B9E2-52B3224510CB}.Services|x86.ActiveCfg = Release|x86
+		{4FE983A1-AAF8-4977-B9E2-52B3224510CB}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+		{4FE983A1-AAF8-4977-B9E2-52B3224510CB}.Silverlight2|x64.ActiveCfg = Release|x86
+		{4FE983A1-AAF8-4977-B9E2-52B3224510CB}.Silverlight2|x86.ActiveCfg = Release|x86
+		{4FE983A1-AAF8-4977-B9E2-52B3224510CB}.Silverlight2|x86.Build.0 = Release|x86
+		{5A4679EF-A8F3-4647-B722-441A36B3BA6B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{5A4679EF-A8F3-4647-B722-441A36B3BA6B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{5A4679EF-A8F3-4647-B722-441A36B3BA6B}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{5A4679EF-A8F3-4647-B722-441A36B3BA6B}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{5A4679EF-A8F3-4647-B722-441A36B3BA6B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{5A4679EF-A8F3-4647-B722-441A36B3BA6B}.Release|Any CPU.Build.0 = Release|Any CPU
+		{5A4679EF-A8F3-4647-B722-441A36B3BA6B}.Release|x64.ActiveCfg = Release|Any CPU
+		{5A4679EF-A8F3-4647-B722-441A36B3BA6B}.Release|x86.ActiveCfg = Release|Any CPU
+		{5A4679EF-A8F3-4647-B722-441A36B3BA6B}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{5A4679EF-A8F3-4647-B722-441A36B3BA6B}.Services|Any CPU.Build.0 = Release|Any CPU
+		{5A4679EF-A8F3-4647-B722-441A36B3BA6B}.Services|x64.ActiveCfg = Release|Any CPU
+		{5A4679EF-A8F3-4647-B722-441A36B3BA6B}.Services|x86.ActiveCfg = Release|Any CPU
+		{5A4679EF-A8F3-4647-B722-441A36B3BA6B}.Silverlight2|Any CPU.ActiveCfg = Release|Any CPU
+		{5A4679EF-A8F3-4647-B722-441A36B3BA6B}.Silverlight2|Any CPU.Build.0 = Release|Any CPU
+		{5A4679EF-A8F3-4647-B722-441A36B3BA6B}.Silverlight2|x64.ActiveCfg = Release|Any CPU
+		{5A4679EF-A8F3-4647-B722-441A36B3BA6B}.Silverlight2|x86.ActiveCfg = Release|Any CPU
+		{71D904D9-233B-44B2-ABB2-1525691228C5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{71D904D9-233B-44B2-ABB2-1525691228C5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{71D904D9-233B-44B2-ABB2-1525691228C5}.Debug|x64.ActiveCfg = Debug|x64
+		{71D904D9-233B-44B2-ABB2-1525691228C5}.Debug|x64.Build.0 = Debug|x64
+		{71D904D9-233B-44B2-ABB2-1525691228C5}.Debug|x86.ActiveCfg = Debug|x86
+		{71D904D9-233B-44B2-ABB2-1525691228C5}.Debug|x86.Build.0 = Debug|x86
+		{71D904D9-233B-44B2-ABB2-1525691228C5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{71D904D9-233B-44B2-ABB2-1525691228C5}.Release|Any CPU.Build.0 = Release|Any CPU
+		{71D904D9-233B-44B2-ABB2-1525691228C5}.Release|x64.ActiveCfg = Release|x64
+		{71D904D9-233B-44B2-ABB2-1525691228C5}.Release|x64.Build.0 = Release|x64
+		{71D904D9-233B-44B2-ABB2-1525691228C5}.Release|x86.ActiveCfg = Release|x86
+		{71D904D9-233B-44B2-ABB2-1525691228C5}.Release|x86.Build.0 = Release|x86
+		{71D904D9-233B-44B2-ABB2-1525691228C5}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{71D904D9-233B-44B2-ABB2-1525691228C5}.Services|Any CPU.Build.0 = Release|Any CPU
+		{71D904D9-233B-44B2-ABB2-1525691228C5}.Services|x64.ActiveCfg = Release|Any CPU
+		{71D904D9-233B-44B2-ABB2-1525691228C5}.Services|x86.ActiveCfg = Release|Any CPU
+		{71D904D9-233B-44B2-ABB2-1525691228C5}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+		{71D904D9-233B-44B2-ABB2-1525691228C5}.Silverlight2|x64.ActiveCfg = Release|x64
+		{71D904D9-233B-44B2-ABB2-1525691228C5}.Silverlight2|x64.Build.0 = Release|x64
+		{71D904D9-233B-44B2-ABB2-1525691228C5}.Silverlight2|x86.ActiveCfg = Release|x64
+		{29E4B033-1FEF-4FE1-AE17-0A9319D7C54E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{29E4B033-1FEF-4FE1-AE17-0A9319D7C54E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{29E4B033-1FEF-4FE1-AE17-0A9319D7C54E}.Debug|x64.ActiveCfg = Debug|x64
+		{29E4B033-1FEF-4FE1-AE17-0A9319D7C54E}.Debug|x64.Build.0 = Debug|x64
+		{29E4B033-1FEF-4FE1-AE17-0A9319D7C54E}.Debug|x86.ActiveCfg = Debug|x86
+		{29E4B033-1FEF-4FE1-AE17-0A9319D7C54E}.Debug|x86.Build.0 = Debug|x86
+		{29E4B033-1FEF-4FE1-AE17-0A9319D7C54E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{29E4B033-1FEF-4FE1-AE17-0A9319D7C54E}.Release|Any CPU.Build.0 = Release|Any CPU
+		{29E4B033-1FEF-4FE1-AE17-0A9319D7C54E}.Release|x64.ActiveCfg = Release|x64
+		{29E4B033-1FEF-4FE1-AE17-0A9319D7C54E}.Release|x64.Build.0 = Release|x64
+		{29E4B033-1FEF-4FE1-AE17-0A9319D7C54E}.Release|x86.ActiveCfg = Release|x86
+		{29E4B033-1FEF-4FE1-AE17-0A9319D7C54E}.Release|x86.Build.0 = Release|x86
+		{29E4B033-1FEF-4FE1-AE17-0A9319D7C54E}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{29E4B033-1FEF-4FE1-AE17-0A9319D7C54E}.Services|x64.ActiveCfg = Release|x64
+		{29E4B033-1FEF-4FE1-AE17-0A9319D7C54E}.Services|x86.ActiveCfg = Release|x86
+		{29E4B033-1FEF-4FE1-AE17-0A9319D7C54E}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+		{29E4B033-1FEF-4FE1-AE17-0A9319D7C54E}.Silverlight2|x64.ActiveCfg = Release|x64
+		{29E4B033-1FEF-4FE1-AE17-0A9319D7C54E}.Silverlight2|x64.Build.0 = Release|x64
+		{29E4B033-1FEF-4FE1-AE17-0A9319D7C54E}.Silverlight2|x86.ActiveCfg = Release|x64
+		{01BBCB5A-144A-4A7E-908E-079849E2F7CF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{01BBCB5A-144A-4A7E-908E-079849E2F7CF}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{01BBCB5A-144A-4A7E-908E-079849E2F7CF}.Debug|x64.ActiveCfg = Debug|x64
+		{01BBCB5A-144A-4A7E-908E-079849E2F7CF}.Debug|x64.Build.0 = Debug|x64
+		{01BBCB5A-144A-4A7E-908E-079849E2F7CF}.Debug|x86.ActiveCfg = Debug|x86
+		{01BBCB5A-144A-4A7E-908E-079849E2F7CF}.Debug|x86.Build.0 = Debug|x86
+		{01BBCB5A-144A-4A7E-908E-079849E2F7CF}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{01BBCB5A-144A-4A7E-908E-079849E2F7CF}.Release|Any CPU.Build.0 = Release|Any CPU
+		{01BBCB5A-144A-4A7E-908E-079849E2F7CF}.Release|x64.ActiveCfg = Release|x64
+		{01BBCB5A-144A-4A7E-908E-079849E2F7CF}.Release|x64.Build.0 = Release|x64
+		{01BBCB5A-144A-4A7E-908E-079849E2F7CF}.Release|x86.ActiveCfg = Release|x86
+		{01BBCB5A-144A-4A7E-908E-079849E2F7CF}.Release|x86.Build.0 = Release|x86
+		{01BBCB5A-144A-4A7E-908E-079849E2F7CF}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{01BBCB5A-144A-4A7E-908E-079849E2F7CF}.Services|x64.ActiveCfg = Release|x64
+		{01BBCB5A-144A-4A7E-908E-079849E2F7CF}.Services|x86.ActiveCfg = Release|x86
+		{01BBCB5A-144A-4A7E-908E-079849E2F7CF}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+		{01BBCB5A-144A-4A7E-908E-079849E2F7CF}.Silverlight2|x64.ActiveCfg = Release|x64
+		{01BBCB5A-144A-4A7E-908E-079849E2F7CF}.Silverlight2|x64.Build.0 = Release|x64
+		{01BBCB5A-144A-4A7E-908E-079849E2F7CF}.Silverlight2|x86.ActiveCfg = Release|x64
+		{A16F23B5-FB62-499E-A831-26953AA56FE2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{A16F23B5-FB62-499E-A831-26953AA56FE2}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{A16F23B5-FB62-499E-A831-26953AA56FE2}.Debug|x64.ActiveCfg = Debug|x64
+		{A16F23B5-FB62-499E-A831-26953AA56FE2}.Debug|x64.Build.0 = Debug|x64
+		{A16F23B5-FB62-499E-A831-26953AA56FE2}.Debug|x86.ActiveCfg = Debug|x86
+		{A16F23B5-FB62-499E-A831-26953AA56FE2}.Debug|x86.Build.0 = Debug|x86
+		{A16F23B5-FB62-499E-A831-26953AA56FE2}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{A16F23B5-FB62-499E-A831-26953AA56FE2}.Release|Any CPU.Build.0 = Release|Any CPU
+		{A16F23B5-FB62-499E-A831-26953AA56FE2}.Release|x64.ActiveCfg = Release|x64
+		{A16F23B5-FB62-499E-A831-26953AA56FE2}.Release|x64.Build.0 = Release|x64
+		{A16F23B5-FB62-499E-A831-26953AA56FE2}.Release|x86.ActiveCfg = Release|x86
+		{A16F23B5-FB62-499E-A831-26953AA56FE2}.Release|x86.Build.0 = Release|x86
+		{A16F23B5-FB62-499E-A831-26953AA56FE2}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{A16F23B5-FB62-499E-A831-26953AA56FE2}.Services|x64.ActiveCfg = Release|x64
+		{A16F23B5-FB62-499E-A831-26953AA56FE2}.Services|x86.ActiveCfg = Release|x86
+		{A16F23B5-FB62-499E-A831-26953AA56FE2}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+		{A16F23B5-FB62-499E-A831-26953AA56FE2}.Silverlight2|x64.ActiveCfg = Release|x86
+		{A16F23B5-FB62-499E-A831-26953AA56FE2}.Silverlight2|x86.ActiveCfg = Release|x86
+		{A16F23B5-FB62-499E-A831-26953AA56FE2}.Silverlight2|x86.Build.0 = Release|x86
+		{89B50302-9CEE-4D13-9779-633EADCAE624}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{89B50302-9CEE-4D13-9779-633EADCAE624}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{89B50302-9CEE-4D13-9779-633EADCAE624}.Debug|x64.ActiveCfg = Debug|x64
+		{89B50302-9CEE-4D13-9779-633EADCAE624}.Debug|x64.Build.0 = Debug|x64
+		{89B50302-9CEE-4D13-9779-633EADCAE624}.Debug|x86.ActiveCfg = Debug|x86
+		{89B50302-9CEE-4D13-9779-633EADCAE624}.Debug|x86.Build.0 = Debug|x86
+		{89B50302-9CEE-4D13-9779-633EADCAE624}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{89B50302-9CEE-4D13-9779-633EADCAE624}.Release|Any CPU.Build.0 = Release|Any CPU
+		{89B50302-9CEE-4D13-9779-633EADCAE624}.Release|x64.ActiveCfg = Release|x64
+		{89B50302-9CEE-4D13-9779-633EADCAE624}.Release|x64.Build.0 = Release|x64
+		{89B50302-9CEE-4D13-9779-633EADCAE624}.Release|x86.ActiveCfg = Release|x86
+		{89B50302-9CEE-4D13-9779-633EADCAE624}.Release|x86.Build.0 = Release|x86
+		{89B50302-9CEE-4D13-9779-633EADCAE624}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{89B50302-9CEE-4D13-9779-633EADCAE624}.Services|x64.ActiveCfg = Release|x64
+		{89B50302-9CEE-4D13-9779-633EADCAE624}.Services|x86.ActiveCfg = Release|x86
+		{89B50302-9CEE-4D13-9779-633EADCAE624}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+		{89B50302-9CEE-4D13-9779-633EADCAE624}.Silverlight2|x64.ActiveCfg = Release|x86
+		{89B50302-9CEE-4D13-9779-633EADCAE624}.Silverlight2|x86.ActiveCfg = Release|x86
+		{89B50302-9CEE-4D13-9779-633EADCAE624}.Silverlight2|x86.Build.0 = Release|x86
+		{25735DB4-8E54-4A2C-83E3-A60C76565E55}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{25735DB4-8E54-4A2C-83E3-A60C76565E55}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{25735DB4-8E54-4A2C-83E3-A60C76565E55}.Debug|x64.ActiveCfg = Debug|x64
+		{25735DB4-8E54-4A2C-83E3-A60C76565E55}.Debug|x64.Build.0 = Debug|x64
+		{25735DB4-8E54-4A2C-83E3-A60C76565E55}.Debug|x86.ActiveCfg = Debug|x86
+		{25735DB4-8E54-4A2C-83E3-A60C76565E55}.Debug|x86.Build.0 = Debug|x86
+		{25735DB4-8E54-4A2C-83E3-A60C76565E55}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{25735DB4-8E54-4A2C-83E3-A60C76565E55}.Release|Any CPU.Build.0 = Release|Any CPU
+		{25735DB4-8E54-4A2C-83E3-A60C76565E55}.Release|x64.ActiveCfg = Release|x64
+		{25735DB4-8E54-4A2C-83E3-A60C76565E55}.Release|x64.Build.0 = Release|x64
+		{25735DB4-8E54-4A2C-83E3-A60C76565E55}.Release|x86.ActiveCfg = Release|x86
+		{25735DB4-8E54-4A2C-83E3-A60C76565E55}.Release|x86.Build.0 = Release|x86
+		{25735DB4-8E54-4A2C-83E3-A60C76565E55}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{25735DB4-8E54-4A2C-83E3-A60C76565E55}.Services|Any CPU.Build.0 = Release|Any CPU
+		{25735DB4-8E54-4A2C-83E3-A60C76565E55}.Services|x64.ActiveCfg = Release|Any CPU
+		{25735DB4-8E54-4A2C-83E3-A60C76565E55}.Services|x86.ActiveCfg = Release|Any CPU
+		{25735DB4-8E54-4A2C-83E3-A60C76565E55}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+		{25735DB4-8E54-4A2C-83E3-A60C76565E55}.Silverlight2|x64.ActiveCfg = Release|x64
+		{25735DB4-8E54-4A2C-83E3-A60C76565E55}.Silverlight2|x64.Build.0 = Release|x64
+		{25735DB4-8E54-4A2C-83E3-A60C76565E55}.Silverlight2|x86.ActiveCfg = Release|x64
+		{A8D5676D-9662-437A-B44D-ECB4046CDE12}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{A8D5676D-9662-437A-B44D-ECB4046CDE12}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{A8D5676D-9662-437A-B44D-ECB4046CDE12}.Debug|x64.ActiveCfg = Debug|x64
+		{A8D5676D-9662-437A-B44D-ECB4046CDE12}.Debug|x64.Build.0 = Debug|x64
+		{A8D5676D-9662-437A-B44D-ECB4046CDE12}.Debug|x86.ActiveCfg = Debug|x86
+		{A8D5676D-9662-437A-B44D-ECB4046CDE12}.Debug|x86.Build.0 = Debug|x86
+		{A8D5676D-9662-437A-B44D-ECB4046CDE12}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{A8D5676D-9662-437A-B44D-ECB4046CDE12}.Release|Any CPU.Build.0 = Release|Any CPU
+		{A8D5676D-9662-437A-B44D-ECB4046CDE12}.Release|x64.ActiveCfg = Release|x64
+		{A8D5676D-9662-437A-B44D-ECB4046CDE12}.Release|x64.Build.0 = Release|x64
+		{A8D5676D-9662-437A-B44D-ECB4046CDE12}.Release|x86.ActiveCfg = Release|x86
+		{A8D5676D-9662-437A-B44D-ECB4046CDE12}.Release|x86.Build.0 = Release|x86
+		{A8D5676D-9662-437A-B44D-ECB4046CDE12}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{A8D5676D-9662-437A-B44D-ECB4046CDE12}.Services|x64.ActiveCfg = Release|x64
+		{A8D5676D-9662-437A-B44D-ECB4046CDE12}.Services|x86.ActiveCfg = Release|x86
+		{A8D5676D-9662-437A-B44D-ECB4046CDE12}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+		{A8D5676D-9662-437A-B44D-ECB4046CDE12}.Silverlight2|x64.ActiveCfg = Release|x64
+		{A8D5676D-9662-437A-B44D-ECB4046CDE12}.Silverlight2|x86.ActiveCfg = Release|x64
+		{6908BDCE-D925-43F3-94AC-A531E6DF2591}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{6908BDCE-D925-43F3-94AC-A531E6DF2591}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{6908BDCE-D925-43F3-94AC-A531E6DF2591}.Debug|x64.ActiveCfg = Debug|x64
+		{6908BDCE-D925-43F3-94AC-A531E6DF2591}.Debug|x64.Build.0 = Debug|x64
+		{6908BDCE-D925-43F3-94AC-A531E6DF2591}.Debug|x86.ActiveCfg = Debug|x86
+		{6908BDCE-D925-43F3-94AC-A531E6DF2591}.Debug|x86.Build.0 = Debug|x86
+		{6908BDCE-D925-43F3-94AC-A531E6DF2591}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{6908BDCE-D925-43F3-94AC-A531E6DF2591}.Release|Any CPU.Build.0 = Release|Any CPU
+		{6908BDCE-D925-43F3-94AC-A531E6DF2591}.Release|x64.ActiveCfg = Release|x64
+		{6908BDCE-D925-43F3-94AC-A531E6DF2591}.Release|x64.Build.0 = Release|x64
+		{6908BDCE-D925-43F3-94AC-A531E6DF2591}.Release|x86.ActiveCfg = Release|x86
+		{6908BDCE-D925-43F3-94AC-A531E6DF2591}.Release|x86.Build.0 = Release|x86
+		{6908BDCE-D925-43F3-94AC-A531E6DF2591}.Services|Any CPU.ActiveCfg = Silverlight2|Any CPU
+		{6908BDCE-D925-43F3-94AC-A531E6DF2591}.Services|Any CPU.Build.0 = Silverlight2|Any CPU
+		{6908BDCE-D925-43F3-94AC-A531E6DF2591}.Services|x64.ActiveCfg = Silverlight2|Any CPU
+		{6908BDCE-D925-43F3-94AC-A531E6DF2591}.Services|x86.ActiveCfg = Silverlight2|Any CPU
+		{6908BDCE-D925-43F3-94AC-A531E6DF2591}.Silverlight2|Any CPU.ActiveCfg = Silverlight2|Any CPU
+		{6908BDCE-D925-43F3-94AC-A531E6DF2591}.Silverlight2|Any CPU.Build.0 = Silverlight2|Any CPU
+		{6908BDCE-D925-43F3-94AC-A531E6DF2591}.Silverlight2|x64.ActiveCfg = Silverlight2|Any CPU
+		{6908BDCE-D925-43F3-94AC-A531E6DF2591}.Silverlight2|x86.ActiveCfg = Silverlight2|Any CPU
+		{DD01ED24-3750-4567-9A23-1DB676A15610}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{DD01ED24-3750-4567-9A23-1DB676A15610}.Debug|x64.ActiveCfg = Debug|x64
+		{DD01ED24-3750-4567-9A23-1DB676A15610}.Debug|x86.ActiveCfg = Debug|x86
+		{DD01ED24-3750-4567-9A23-1DB676A15610}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{DD01ED24-3750-4567-9A23-1DB676A15610}.Release|x64.ActiveCfg = Release|x64
+		{DD01ED24-3750-4567-9A23-1DB676A15610}.Release|x86.ActiveCfg = Release|x86
+		{DD01ED24-3750-4567-9A23-1DB676A15610}.Services|Any CPU.ActiveCfg = Silverlight2|Any CPU
+		{DD01ED24-3750-4567-9A23-1DB676A15610}.Services|Any CPU.Build.0 = Silverlight2|Any CPU
+		{DD01ED24-3750-4567-9A23-1DB676A15610}.Services|x64.ActiveCfg = Silverlight2|Any CPU
+		{DD01ED24-3750-4567-9A23-1DB676A15610}.Services|x86.ActiveCfg = Silverlight2|Any CPU
+		{DD01ED24-3750-4567-9A23-1DB676A15610}.Silverlight2|Any CPU.ActiveCfg = Silverlight2|Any CPU
+		{DD01ED24-3750-4567-9A23-1DB676A15610}.Silverlight2|Any CPU.Build.0 = Silverlight2|Any CPU
+		{DD01ED24-3750-4567-9A23-1DB676A15610}.Silverlight2|x64.ActiveCfg = Silverlight2|Any CPU
+		{DD01ED24-3750-4567-9A23-1DB676A15610}.Silverlight2|x86.ActiveCfg = Silverlight2|Any CPU
+		{250ADE34-82FD-4BAE-86D5-985FBE589C4A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{250ADE34-82FD-4BAE-86D5-985FBE589C4A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{250ADE34-82FD-4BAE-86D5-985FBE589C4A}.Debug|x64.ActiveCfg = Debug|x64
+		{250ADE34-82FD-4BAE-86D5-985FBE589C4A}.Debug|x64.Build.0 = Debug|x64
+		{250ADE34-82FD-4BAE-86D5-985FBE589C4A}.Debug|x86.ActiveCfg = Debug|x86
+		{250ADE34-82FD-4BAE-86D5-985FBE589C4A}.Debug|x86.Build.0 = Debug|x86
+		{250ADE34-82FD-4BAE-86D5-985FBE589C4A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{250ADE34-82FD-4BAE-86D5-985FBE589C4A}.Release|Any CPU.Build.0 = Release|Any CPU
+		{250ADE34-82FD-4BAE-86D5-985FBE589C4A}.Release|x64.ActiveCfg = Release|x64
+		{250ADE34-82FD-4BAE-86D5-985FBE589C4A}.Release|x64.Build.0 = Release|x64
+		{250ADE34-82FD-4BAE-86D5-985FBE589C4A}.Release|x86.ActiveCfg = Release|x86
+		{250ADE34-82FD-4BAE-86D5-985FBE589C4A}.Release|x86.Build.0 = Release|x86
+		{250ADE34-82FD-4BAE-86D5-985FBE589C4A}.Services|Any CPU.ActiveCfg = Silverlight2|Any CPU
+		{250ADE34-82FD-4BAE-86D5-985FBE589C4A}.Services|Any CPU.Build.0 = Silverlight2|Any CPU
+		{250ADE34-82FD-4BAE-86D5-985FBE589C4A}.Services|x64.ActiveCfg = Silverlight2|Any CPU
+		{250ADE34-82FD-4BAE-86D5-985FBE589C4A}.Services|x86.ActiveCfg = Silverlight2|Any CPU
+		{250ADE34-82FD-4BAE-86D5-985FBE589C4A}.Silverlight2|Any CPU.ActiveCfg = Silverlight2|Any CPU
+		{250ADE34-82FD-4BAE-86D5-985FBE589C4A}.Silverlight2|Any CPU.Build.0 = Silverlight2|Any CPU
+		{250ADE34-82FD-4BAE-86D5-985FBE589C4A}.Silverlight2|x64.ActiveCfg = Silverlight2|Any CPU
+		{250ADE34-82FD-4BAE-86D5-985FBE589C4A}.Silverlight2|x86.ActiveCfg = Silverlight2|Any CPU
+		{C268DA4C-4004-47DA-AF23-44C983281A68}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{C268DA4C-4004-47DA-AF23-44C983281A68}.Debug|x64.ActiveCfg = Debug|x64
+		{C268DA4C-4004-47DA-AF23-44C983281A68}.Debug|x86.ActiveCfg = Debug|x86
+		{C268DA4C-4004-47DA-AF23-44C983281A68}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{C268DA4C-4004-47DA-AF23-44C983281A68}.Release|x64.ActiveCfg = Release|x64
+		{C268DA4C-4004-47DA-AF23-44C983281A68}.Release|x86.ActiveCfg = Release|x86
+		{C268DA4C-4004-47DA-AF23-44C983281A68}.Services|Any CPU.ActiveCfg = Silverlight2|Any CPU
+		{C268DA4C-4004-47DA-AF23-44C983281A68}.Services|Any CPU.Build.0 = Silverlight2|Any CPU
+		{C268DA4C-4004-47DA-AF23-44C983281A68}.Services|x64.ActiveCfg = Silverlight2|Any CPU
+		{C268DA4C-4004-47DA-AF23-44C983281A68}.Services|x86.ActiveCfg = Silverlight2|Any CPU
+		{C268DA4C-4004-47DA-AF23-44C983281A68}.Silverlight2|Any CPU.ActiveCfg = Silverlight2|Any CPU
+		{C268DA4C-4004-47DA-AF23-44C983281A68}.Silverlight2|Any CPU.Build.0 = Silverlight2|Any CPU
+		{C268DA4C-4004-47DA-AF23-44C983281A68}.Silverlight2|x64.ActiveCfg = Silverlight2|Any CPU
+		{C268DA4C-4004-47DA-AF23-44C983281A68}.Silverlight2|x86.ActiveCfg = Silverlight2|Any CPU
+		{236459CE-80CF-4991-972F-DE74C826BCCC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{236459CE-80CF-4991-972F-DE74C826BCCC}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{236459CE-80CF-4991-972F-DE74C826BCCC}.Debug|x64.ActiveCfg = Debug|x64
+		{236459CE-80CF-4991-972F-DE74C826BCCC}.Debug|x64.Build.0 = Debug|x64
+		{236459CE-80CF-4991-972F-DE74C826BCCC}.Debug|x86.ActiveCfg = Debug|x86
+		{236459CE-80CF-4991-972F-DE74C826BCCC}.Debug|x86.Build.0 = Debug|x86
+		{236459CE-80CF-4991-972F-DE74C826BCCC}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{236459CE-80CF-4991-972F-DE74C826BCCC}.Release|Any CPU.Build.0 = Release|Any CPU
+		{236459CE-80CF-4991-972F-DE74C826BCCC}.Release|x64.ActiveCfg = Release|x64
+		{236459CE-80CF-4991-972F-DE74C826BCCC}.Release|x64.Build.0 = Release|x64
+		{236459CE-80CF-4991-972F-DE74C826BCCC}.Release|x86.ActiveCfg = Release|x86
+		{236459CE-80CF-4991-972F-DE74C826BCCC}.Release|x86.Build.0 = Release|x86
+		{236459CE-80CF-4991-972F-DE74C826BCCC}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{236459CE-80CF-4991-972F-DE74C826BCCC}.Services|Any CPU.Build.0 = Release|Any CPU
+		{236459CE-80CF-4991-972F-DE74C826BCCC}.Services|x64.ActiveCfg = Release|Any CPU
+		{236459CE-80CF-4991-972F-DE74C826BCCC}.Services|x86.ActiveCfg = Release|Any CPU
+		{236459CE-80CF-4991-972F-DE74C826BCCC}.Silverlight2|Any CPU.ActiveCfg = Release|Any CPU
+		{236459CE-80CF-4991-972F-DE74C826BCCC}.Silverlight2|Any CPU.Build.0 = Release|Any CPU
+		{236459CE-80CF-4991-972F-DE74C826BCCC}.Silverlight2|x64.ActiveCfg = Release|Any CPU
+		{236459CE-80CF-4991-972F-DE74C826BCCC}.Silverlight2|x86.ActiveCfg = Release|Any CPU
+		{3081630C-9521-47D7-8075-1777C12F212C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{3081630C-9521-47D7-8075-1777C12F212C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{3081630C-9521-47D7-8075-1777C12F212C}.Debug|x64.ActiveCfg = Debug|x64
+		{3081630C-9521-47D7-8075-1777C12F212C}.Debug|x64.Build.0 = Debug|x64
+		{3081630C-9521-47D7-8075-1777C12F212C}.Debug|x86.ActiveCfg = Debug|x86
+		{3081630C-9521-47D7-8075-1777C12F212C}.Debug|x86.Build.0 = Debug|x86
+		{3081630C-9521-47D7-8075-1777C12F212C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{3081630C-9521-47D7-8075-1777C12F212C}.Release|Any CPU.Build.0 = Release|Any CPU
+		{3081630C-9521-47D7-8075-1777C12F212C}.Release|x64.ActiveCfg = Release|x64
+		{3081630C-9521-47D7-8075-1777C12F212C}.Release|x64.Build.0 = Release|x64
+		{3081630C-9521-47D7-8075-1777C12F212C}.Release|x86.ActiveCfg = Release|x86
+		{3081630C-9521-47D7-8075-1777C12F212C}.Release|x86.Build.0 = Release|x86
+		{3081630C-9521-47D7-8075-1777C12F212C}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{3081630C-9521-47D7-8075-1777C12F212C}.Services|Any CPU.Build.0 = Release|Any CPU
+		{3081630C-9521-47D7-8075-1777C12F212C}.Services|x64.ActiveCfg = Release|Any CPU
+		{3081630C-9521-47D7-8075-1777C12F212C}.Services|x86.ActiveCfg = Release|Any CPU
+		{3081630C-9521-47D7-8075-1777C12F212C}.Silverlight2|Any CPU.ActiveCfg = Release|Any CPU
+		{3081630C-9521-47D7-8075-1777C12F212C}.Silverlight2|Any CPU.Build.0 = Release|Any CPU
+		{3081630C-9521-47D7-8075-1777C12F212C}.Silverlight2|x64.ActiveCfg = Release|Any CPU
+		{3081630C-9521-47D7-8075-1777C12F212C}.Silverlight2|x86.ActiveCfg = Release|Any CPU
+		{6410BDA6-3641-42B2-BABA-AA626E2F6F71}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{6410BDA6-3641-42B2-BABA-AA626E2F6F71}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{6410BDA6-3641-42B2-BABA-AA626E2F6F71}.Debug|x64.ActiveCfg = Debug|x64
+		{6410BDA6-3641-42B2-BABA-AA626E2F6F71}.Debug|x64.Build.0 = Debug|x64
+		{6410BDA6-3641-42B2-BABA-AA626E2F6F71}.Debug|x86.ActiveCfg = Debug|x86
+		{6410BDA6-3641-42B2-BABA-AA626E2F6F71}.Debug|x86.Build.0 = Debug|x86
+		{6410BDA6-3641-42B2-BABA-AA626E2F6F71}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{6410BDA6-3641-42B2-BABA-AA626E2F6F71}.Release|Any CPU.Build.0 = Release|Any CPU
+		{6410BDA6-3641-42B2-BABA-AA626E2F6F71}.Release|x64.ActiveCfg = Release|x64
+		{6410BDA6-3641-42B2-BABA-AA626E2F6F71}.Release|x64.Build.0 = Release|x64
+		{6410BDA6-3641-42B2-BABA-AA626E2F6F71}.Release|x86.ActiveCfg = Release|x86
+		{6410BDA6-3641-42B2-BABA-AA626E2F6F71}.Release|x86.Build.0 = Release|x86
+		{6410BDA6-3641-42B2-BABA-AA626E2F6F71}.Services|Any CPU.ActiveCfg = Release|x64
+		{6410BDA6-3641-42B2-BABA-AA626E2F6F71}.Services|x64.ActiveCfg = Release|x64
+		{6410BDA6-3641-42B2-BABA-AA626E2F6F71}.Services|x64.Build.0 = Release|x64
+		{6410BDA6-3641-42B2-BABA-AA626E2F6F71}.Services|x86.ActiveCfg = Release|x64
+		{6410BDA6-3641-42B2-BABA-AA626E2F6F71}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+		{6410BDA6-3641-42B2-BABA-AA626E2F6F71}.Silverlight2|x64.ActiveCfg = Release|x64
+		{6410BDA6-3641-42B2-BABA-AA626E2F6F71}.Silverlight2|x64.Build.0 = Release|x64
+		{6410BDA6-3641-42B2-BABA-AA626E2F6F71}.Silverlight2|x86.ActiveCfg = Release|x64
+		{D1386FE7-682D-4E18-8C4F-CFD423FA5DD0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{D1386FE7-682D-4E18-8C4F-CFD423FA5DD0}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{D1386FE7-682D-4E18-8C4F-CFD423FA5DD0}.Debug|x64.ActiveCfg = Debug|x64
+		{D1386FE7-682D-4E18-8C4F-CFD423FA5DD0}.Debug|x64.Build.0 = Debug|x64
+		{D1386FE7-682D-4E18-8C4F-CFD423FA5DD0}.Debug|x86.ActiveCfg = Debug|x86
+		{D1386FE7-682D-4E18-8C4F-CFD423FA5DD0}.Debug|x86.Build.0 = Debug|x86
+		{D1386FE7-682D-4E18-8C4F-CFD423FA5DD0}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{D1386FE7-682D-4E18-8C4F-CFD423FA5DD0}.Release|Any CPU.Build.0 = Release|Any CPU
+		{D1386FE7-682D-4E18-8C4F-CFD423FA5DD0}.Release|x64.ActiveCfg = Release|x64
+		{D1386FE7-682D-4E18-8C4F-CFD423FA5DD0}.Release|x64.Build.0 = Release|x64
+		{D1386FE7-682D-4E18-8C4F-CFD423FA5DD0}.Release|x86.ActiveCfg = Release|x86
+		{D1386FE7-682D-4E18-8C4F-CFD423FA5DD0}.Release|x86.Build.0 = Release|x86
+		{D1386FE7-682D-4E18-8C4F-CFD423FA5DD0}.Services|Any CPU.ActiveCfg = Release|x64
+		{D1386FE7-682D-4E18-8C4F-CFD423FA5DD0}.Services|x64.ActiveCfg = Release|x64
+		{D1386FE7-682D-4E18-8C4F-CFD423FA5DD0}.Services|x64.Build.0 = Release|x64
+		{D1386FE7-682D-4E18-8C4F-CFD423FA5DD0}.Services|x86.ActiveCfg = Release|x64
+		{D1386FE7-682D-4E18-8C4F-CFD423FA5DD0}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+		{D1386FE7-682D-4E18-8C4F-CFD423FA5DD0}.Silverlight2|x64.ActiveCfg = Release|x64
+		{D1386FE7-682D-4E18-8C4F-CFD423FA5DD0}.Silverlight2|x64.Build.0 = Release|x64
+		{D1386FE7-682D-4E18-8C4F-CFD423FA5DD0}.Silverlight2|x86.ActiveCfg = Release|x64
+		{9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}.Debug|x64.ActiveCfg = Debug|x64
+		{9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}.Debug|x86.ActiveCfg = Debug|x86
+		{9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}.Release|Any CPU.Build.0 = Release|Any CPU
+		{9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}.Release|x64.ActiveCfg = Release|x64
+		{9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}.Release|x64.Build.0 = Release|x64
+		{9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}.Release|x86.ActiveCfg = Release|x86
+		{9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}.Services|Any CPU.Build.0 = Release|Any CPU
+		{9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}.Services|x64.ActiveCfg = Release|Any CPU
+		{9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}.Services|x86.ActiveCfg = Release|Any CPU
+		{9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}.Silverlight2|Any CPU.ActiveCfg = Release|Any CPU
+		{9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}.Silverlight2|Any CPU.Build.0 = Release|Any CPU
+		{9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}.Silverlight2|x64.ActiveCfg = Release|Any CPU
+		{9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}.Silverlight2|x86.ActiveCfg = Release|Any CPU
+		{15452B9F-A436-4139-8EE7-DA72FB8D3664}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{15452B9F-A436-4139-8EE7-DA72FB8D3664}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{15452B9F-A436-4139-8EE7-DA72FB8D3664}.Debug|x64.ActiveCfg = Debug|x64
+		{15452B9F-A436-4139-8EE7-DA72FB8D3664}.Debug|x64.Build.0 = Debug|x64
+		{15452B9F-A436-4139-8EE7-DA72FB8D3664}.Debug|x86.ActiveCfg = Debug|x86
+		{15452B9F-A436-4139-8EE7-DA72FB8D3664}.Debug|x86.Build.0 = Debug|x86
+		{15452B9F-A436-4139-8EE7-DA72FB8D3664}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{15452B9F-A436-4139-8EE7-DA72FB8D3664}.Release|Any CPU.Build.0 = Release|Any CPU
+		{15452B9F-A436-4139-8EE7-DA72FB8D3664}.Release|x64.ActiveCfg = Release|x64
+		{15452B9F-A436-4139-8EE7-DA72FB8D3664}.Release|x64.Build.0 = Release|x64
+		{15452B9F-A436-4139-8EE7-DA72FB8D3664}.Release|x86.ActiveCfg = Release|x86
+		{15452B9F-A436-4139-8EE7-DA72FB8D3664}.Release|x86.Build.0 = Release|x86
+		{15452B9F-A436-4139-8EE7-DA72FB8D3664}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{15452B9F-A436-4139-8EE7-DA72FB8D3664}.Services|Any CPU.Build.0 = Release|Any CPU
+		{15452B9F-A436-4139-8EE7-DA72FB8D3664}.Services|x64.ActiveCfg = Release|Any CPU
+		{15452B9F-A436-4139-8EE7-DA72FB8D3664}.Services|x86.ActiveCfg = Release|Any CPU
+		{15452B9F-A436-4139-8EE7-DA72FB8D3664}.Silverlight2|Any CPU.ActiveCfg = Release|Any CPU
+		{15452B9F-A436-4139-8EE7-DA72FB8D3664}.Silverlight2|Any CPU.Build.0 = Release|Any CPU
+		{15452B9F-A436-4139-8EE7-DA72FB8D3664}.Silverlight2|x64.ActiveCfg = Release|Any CPU
+		{15452B9F-A436-4139-8EE7-DA72FB8D3664}.Silverlight2|x86.ActiveCfg = Release|Any CPU
+		{2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}.Debug|x64.ActiveCfg = Debug|x64
+		{2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}.Debug|x64.Build.0 = Debug|x64
+		{2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}.Debug|x86.ActiveCfg = Debug|x86
+		{2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}.Debug|x86.Build.0 = Debug|x86
+		{2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}.Release|Any CPU.Build.0 = Release|Any CPU
+		{2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}.Release|x64.ActiveCfg = Release|x64
+		{2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}.Release|x64.Build.0 = Release|x64
+		{2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}.Release|x86.ActiveCfg = Release|x86
+		{2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}.Release|x86.Build.0 = Release|x86
+		{2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}.Services|Any CPU.ActiveCfg = Release|x86
+		{2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}.Services|x64.ActiveCfg = Release|x86
+		{2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}.Services|x86.ActiveCfg = Release|x86
+		{2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}.Services|x86.Build.0 = Release|x86
+		{2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+		{2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}.Silverlight2|x64.ActiveCfg = Release|x86
+		{2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}.Silverlight2|x86.ActiveCfg = Release|x86
+		{2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}.Silverlight2|x86.Build.0 = Release|x86
+		{6024D74F-E29C-4E6B-843E-8851831B8E14}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{6024D74F-E29C-4E6B-843E-8851831B8E14}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{6024D74F-E29C-4E6B-843E-8851831B8E14}.Debug|x64.ActiveCfg = Debug|x64
+		{6024D74F-E29C-4E6B-843E-8851831B8E14}.Debug|x64.Build.0 = Debug|x64
+		{6024D74F-E29C-4E6B-843E-8851831B8E14}.Debug|x86.ActiveCfg = Debug|x86
+		{6024D74F-E29C-4E6B-843E-8851831B8E14}.Debug|x86.Build.0 = Debug|x86
+		{6024D74F-E29C-4E6B-843E-8851831B8E14}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{6024D74F-E29C-4E6B-843E-8851831B8E14}.Release|Any CPU.Build.0 = Release|Any CPU
+		{6024D74F-E29C-4E6B-843E-8851831B8E14}.Release|x64.ActiveCfg = Release|x64
+		{6024D74F-E29C-4E6B-843E-8851831B8E14}.Release|x64.Build.0 = Release|x64
+		{6024D74F-E29C-4E6B-843E-8851831B8E14}.Release|x86.ActiveCfg = Release|x86
+		{6024D74F-E29C-4E6B-843E-8851831B8E14}.Release|x86.Build.0 = Release|x86
+		{6024D74F-E29C-4E6B-843E-8851831B8E14}.Services|Any CPU.ActiveCfg = Release|x86
+		{6024D74F-E29C-4E6B-843E-8851831B8E14}.Services|x64.ActiveCfg = Release|x86
+		{6024D74F-E29C-4E6B-843E-8851831B8E14}.Services|x86.ActiveCfg = Release|x86
+		{6024D74F-E29C-4E6B-843E-8851831B8E14}.Services|x86.Build.0 = Release|x86
+		{6024D74F-E29C-4E6B-843E-8851831B8E14}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+		{6024D74F-E29C-4E6B-843E-8851831B8E14}.Silverlight2|x64.ActiveCfg = Release|x86
+		{6024D74F-E29C-4E6B-843E-8851831B8E14}.Silverlight2|x86.ActiveCfg = Release|x86
+		{6024D74F-E29C-4E6B-843E-8851831B8E14}.Silverlight2|x86.Build.0 = Release|x86
+		{9B6EA19A-F894-4E00-B5A3-970514284772}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{9B6EA19A-F894-4E00-B5A3-970514284772}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{9B6EA19A-F894-4E00-B5A3-970514284772}.Debug|x64.ActiveCfg = Debug|x64
+		{9B6EA19A-F894-4E00-B5A3-970514284772}.Debug|x64.Build.0 = Debug|x64
+		{9B6EA19A-F894-4E00-B5A3-970514284772}.Debug|x86.ActiveCfg = Debug|x86
+		{9B6EA19A-F894-4E00-B5A3-970514284772}.Debug|x86.Build.0 = Debug|x86
+		{9B6EA19A-F894-4E00-B5A3-970514284772}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{9B6EA19A-F894-4E00-B5A3-970514284772}.Release|Any CPU.Build.0 = Release|Any CPU
+		{9B6EA19A-F894-4E00-B5A3-970514284772}.Release|x64.ActiveCfg = Release|x64
+		{9B6EA19A-F894-4E00-B5A3-970514284772}.Release|x64.Build.0 = Release|x64
+		{9B6EA19A-F894-4E00-B5A3-970514284772}.Release|x86.ActiveCfg = Release|x86
+		{9B6EA19A-F894-4E00-B5A3-970514284772}.Release|x86.Build.0 = Release|x86
+		{9B6EA19A-F894-4E00-B5A3-970514284772}.Services|Any CPU.ActiveCfg = Release|x86
+		{9B6EA19A-F894-4E00-B5A3-970514284772}.Services|x64.ActiveCfg = Release|x86
+		{9B6EA19A-F894-4E00-B5A3-970514284772}.Services|x86.ActiveCfg = Release|x86
+		{9B6EA19A-F894-4E00-B5A3-970514284772}.Services|x86.Build.0 = Release|x86
+		{9B6EA19A-F894-4E00-B5A3-970514284772}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+		{9B6EA19A-F894-4E00-B5A3-970514284772}.Silverlight2|x64.ActiveCfg = Release|x86
+		{9B6EA19A-F894-4E00-B5A3-970514284772}.Silverlight2|x86.ActiveCfg = Release|x86
+		{9B6EA19A-F894-4E00-B5A3-970514284772}.Silverlight2|x86.Build.0 = Release|x86
+		{7252890C-F207-4AD6-B3C9-764DF93F73CC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{7252890C-F207-4AD6-B3C9-764DF93F73CC}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{7252890C-F207-4AD6-B3C9-764DF93F73CC}.Debug|x64.ActiveCfg = Debug|x64
+		{7252890C-F207-4AD6-B3C9-764DF93F73CC}.Debug|x64.Build.0 = Debug|x64
+		{7252890C-F207-4AD6-B3C9-764DF93F73CC}.Debug|x86.ActiveCfg = Debug|x86
+		{7252890C-F207-4AD6-B3C9-764DF93F73CC}.Debug|x86.Build.0 = Debug|x86
+		{7252890C-F207-4AD6-B3C9-764DF93F73CC}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{7252890C-F207-4AD6-B3C9-764DF93F73CC}.Release|Any CPU.Build.0 = Release|Any CPU
+		{7252890C-F207-4AD6-B3C9-764DF93F73CC}.Release|x64.ActiveCfg = Release|x64
+		{7252890C-F207-4AD6-B3C9-764DF93F73CC}.Release|x64.Build.0 = Release|x64
+		{7252890C-F207-4AD6-B3C9-764DF93F73CC}.Release|x86.ActiveCfg = Release|x86
+		{7252890C-F207-4AD6-B3C9-764DF93F73CC}.Release|x86.Build.0 = Release|x86
+		{7252890C-F207-4AD6-B3C9-764DF93F73CC}.Services|Any CPU.ActiveCfg = Release|x86
+		{7252890C-F207-4AD6-B3C9-764DF93F73CC}.Services|x64.ActiveCfg = Release|x86
+		{7252890C-F207-4AD6-B3C9-764DF93F73CC}.Services|x86.ActiveCfg = Release|x86
+		{7252890C-F207-4AD6-B3C9-764DF93F73CC}.Services|x86.Build.0 = Release|x86
+		{7252890C-F207-4AD6-B3C9-764DF93F73CC}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+		{7252890C-F207-4AD6-B3C9-764DF93F73CC}.Silverlight2|x64.ActiveCfg = Release|x86
+		{7252890C-F207-4AD6-B3C9-764DF93F73CC}.Silverlight2|x86.ActiveCfg = Release|x86
+		{7252890C-F207-4AD6-B3C9-764DF93F73CC}.Silverlight2|x86.Build.0 = Release|x86
+		{E86E215D-E3CE-4244-978D-555D4E17AC09}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{E86E215D-E3CE-4244-978D-555D4E17AC09}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{E86E215D-E3CE-4244-978D-555D4E17AC09}.Debug|x64.ActiveCfg = Debug|x64
+		{E86E215D-E3CE-4244-978D-555D4E17AC09}.Debug|x64.Build.0 = Debug|x64
+		{E86E215D-E3CE-4244-978D-555D4E17AC09}.Debug|x86.ActiveCfg = Debug|x86
+		{E86E215D-E3CE-4244-978D-555D4E17AC09}.Debug|x86.Build.0 = Debug|x86
+		{E86E215D-E3CE-4244-978D-555D4E17AC09}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{E86E215D-E3CE-4244-978D-555D4E17AC09}.Release|Any CPU.Build.0 = Release|Any CPU
+		{E86E215D-E3CE-4244-978D-555D4E17AC09}.Release|x64.ActiveCfg = Release|x64
+		{E86E215D-E3CE-4244-978D-555D4E17AC09}.Release|x64.Build.0 = Release|x64
+		{E86E215D-E3CE-4244-978D-555D4E17AC09}.Release|x86.ActiveCfg = Release|x86
+		{E86E215D-E3CE-4244-978D-555D4E17AC09}.Release|x86.Build.0 = Release|x86
+		{E86E215D-E3CE-4244-978D-555D4E17AC09}.Services|Any CPU.ActiveCfg = Release|x64
+		{E86E215D-E3CE-4244-978D-555D4E17AC09}.Services|x64.ActiveCfg = Release|x64
+		{E86E215D-E3CE-4244-978D-555D4E17AC09}.Services|x64.Build.0 = Release|x64
+		{E86E215D-E3CE-4244-978D-555D4E17AC09}.Services|x86.ActiveCfg = Release|x64
+		{E86E215D-E3CE-4244-978D-555D4E17AC09}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+		{E86E215D-E3CE-4244-978D-555D4E17AC09}.Silverlight2|x64.ActiveCfg = Release|x64
+		{E86E215D-E3CE-4244-978D-555D4E17AC09}.Silverlight2|x64.Build.0 = Release|x64
+		{E86E215D-E3CE-4244-978D-555D4E17AC09}.Silverlight2|x86.ActiveCfg = Release|x64
+		{B3310CE1-0C05-410F-BA77-8DAD6CE3F803}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{B3310CE1-0C05-410F-BA77-8DAD6CE3F803}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{B3310CE1-0C05-410F-BA77-8DAD6CE3F803}.Debug|x64.ActiveCfg = Debug|x64
+		{B3310CE1-0C05-410F-BA77-8DAD6CE3F803}.Debug|x64.Build.0 = Debug|x64
+		{B3310CE1-0C05-410F-BA77-8DAD6CE3F803}.Debug|x86.ActiveCfg = Debug|x86
+		{B3310CE1-0C05-410F-BA77-8DAD6CE3F803}.Debug|x86.Build.0 = Debug|x86
+		{B3310CE1-0C05-410F-BA77-8DAD6CE3F803}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{B3310CE1-0C05-410F-BA77-8DAD6CE3F803}.Release|Any CPU.Build.0 = Release|Any CPU
+		{B3310CE1-0C05-410F-BA77-8DAD6CE3F803}.Release|x64.ActiveCfg = Release|x64
+		{B3310CE1-0C05-410F-BA77-8DAD6CE3F803}.Release|x64.Build.0 = Release|x64
+		{B3310CE1-0C05-410F-BA77-8DAD6CE3F803}.Release|x86.ActiveCfg = Release|x86
+		{B3310CE1-0C05-410F-BA77-8DAD6CE3F803}.Release|x86.Build.0 = Release|x86
+		{B3310CE1-0C05-410F-BA77-8DAD6CE3F803}.Services|Any CPU.ActiveCfg = Release|x86
+		{B3310CE1-0C05-410F-BA77-8DAD6CE3F803}.Services|x64.ActiveCfg = Release|x86
+		{B3310CE1-0C05-410F-BA77-8DAD6CE3F803}.Services|x86.ActiveCfg = Release|x86
+		{B3310CE1-0C05-410F-BA77-8DAD6CE3F803}.Services|x86.Build.0 = Release|x86
+		{B3310CE1-0C05-410F-BA77-8DAD6CE3F803}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+		{B3310CE1-0C05-410F-BA77-8DAD6CE3F803}.Silverlight2|x64.ActiveCfg = Release|x86
+		{B3310CE1-0C05-410F-BA77-8DAD6CE3F803}.Silverlight2|x86.ActiveCfg = Release|x86
+		{B3310CE1-0C05-410F-BA77-8DAD6CE3F803}.Silverlight2|x86.Build.0 = Release|x86
+		{C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}.Debug|x64.ActiveCfg = Debug|x64
+		{C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}.Debug|x64.Build.0 = Debug|x64
+		{C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}.Debug|x86.ActiveCfg = Debug|x86
+		{C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}.Debug|x86.Build.0 = Debug|x86
+		{C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}.Release|Any CPU.Build.0 = Release|Any CPU
+		{C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}.Release|x64.ActiveCfg = Release|x64
+		{C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}.Release|x64.Build.0 = Release|x64
+		{C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}.Release|x86.ActiveCfg = Release|x86
+		{C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}.Release|x86.Build.0 = Release|x86
+		{C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}.Services|Any CPU.ActiveCfg = Release|x86
+		{C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}.Services|x64.ActiveCfg = Release|x86
+		{C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}.Services|x86.ActiveCfg = Release|x86
+		{C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}.Services|x86.Build.0 = Release|x86
+		{C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+		{C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}.Silverlight2|x64.ActiveCfg = Release|x86
+		{C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}.Silverlight2|x86.ActiveCfg = Release|x86
+		{C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}.Silverlight2|x86.Build.0 = Release|x86
+		{1778134B-866B-4CB3-BFC0-52B2FAAA5777}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{1778134B-866B-4CB3-BFC0-52B2FAAA5777}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{1778134B-866B-4CB3-BFC0-52B2FAAA5777}.Debug|x64.ActiveCfg = Debug|x64
+		{1778134B-866B-4CB3-BFC0-52B2FAAA5777}.Debug|x64.Build.0 = Debug|x64
+		{1778134B-866B-4CB3-BFC0-52B2FAAA5777}.Debug|x86.ActiveCfg = Debug|x86
+		{1778134B-866B-4CB3-BFC0-52B2FAAA5777}.Debug|x86.Build.0 = Debug|x86
+		{1778134B-866B-4CB3-BFC0-52B2FAAA5777}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{1778134B-866B-4CB3-BFC0-52B2FAAA5777}.Release|Any CPU.Build.0 = Release|Any CPU
+		{1778134B-866B-4CB3-BFC0-52B2FAAA5777}.Release|x64.ActiveCfg = Release|x64
+		{1778134B-866B-4CB3-BFC0-52B2FAAA5777}.Release|x64.Build.0 = Release|x64
+		{1778134B-866B-4CB3-BFC0-52B2FAAA5777}.Release|x86.ActiveCfg = Release|x86
+		{1778134B-866B-4CB3-BFC0-52B2FAAA5777}.Release|x86.Build.0 = Release|x86
+		{1778134B-866B-4CB3-BFC0-52B2FAAA5777}.Services|Any CPU.ActiveCfg = Release|x64
+		{1778134B-866B-4CB3-BFC0-52B2FAAA5777}.Services|x64.ActiveCfg = Release|x64
+		{1778134B-866B-4CB3-BFC0-52B2FAAA5777}.Services|x64.Build.0 = Release|x64
+		{1778134B-866B-4CB3-BFC0-52B2FAAA5777}.Services|x86.ActiveCfg = Release|x64
+		{1778134B-866B-4CB3-BFC0-52B2FAAA5777}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+		{1778134B-866B-4CB3-BFC0-52B2FAAA5777}.Silverlight2|x64.ActiveCfg = Release|x64
+		{1778134B-866B-4CB3-BFC0-52B2FAAA5777}.Silverlight2|x64.Build.0 = Release|x64
+		{1778134B-866B-4CB3-BFC0-52B2FAAA5777}.Silverlight2|x86.ActiveCfg = Release|x64
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+	GlobalSection(NestedProjects) = preSolution
+		{7F485A48-A80F-4454-9A9B-7B126B43861C} = {07BCBC57-3E15-4582-B306-C046E516C49C}
+		{BA3315A3-9D7C-4F5F-99F4-1C9B88FD32AE} = {07BCBC57-3E15-4582-B306-C046E516C49C}
+		{27D3A83C-DEEA-49DA-955E-65D3D703B2F1} = {07BCBC57-3E15-4582-B306-C046E516C49C}
+		{F94E41E4-F25F-4302-8486-0BEF121CF5C8} = {07BCBC57-3E15-4582-B306-C046E516C49C}
+		{F0D06B07-1CB3-418E-88ED-CAE8DAACC7E0} = {07BCBC57-3E15-4582-B306-C046E516C49C}
+		{782DDDA3-A7A3-404E-B751-6200CE2D5EF3} = {07BCBC57-3E15-4582-B306-C046E516C49C}
+		{189F7770-5540-4832-B9A0-82474009680C} = {07BCBC57-3E15-4582-B306-C046E516C49C}
+		{99AD3658-DB36-4E26-B4CC-6FEAACC5C88C} = {7F485A48-A80F-4454-9A9B-7B126B43861C}
+		{678E2145-8152-4E19-9646-07D439D00301} = {99AD3658-DB36-4E26-B4CC-6FEAACC5C88C}
+		{1849A92E-DCFC-4E05-BB0A-D7B7A3DAFCFB} = {99AD3658-DB36-4E26-B4CC-6FEAACC5C88C}
+		{1B3063DB-D71C-4A6A-A359-883E8F53A140} = {BA3315A3-9D7C-4F5F-99F4-1C9B88FD32AE}
+		{0A3CE05D-4FCD-40A4-9001-D57627554BBC} = {27D3A83C-DEEA-49DA-955E-65D3D703B2F1}
+		{96AEBBEE-4203-45F3-BCF5-7B73BF256BDA} = {0A3CE05D-4FCD-40A4-9001-D57627554BBC}
+		{BB994448-2B21-4564-BB2E-38D8FFF8CF18} = {0A3CE05D-4FCD-40A4-9001-D57627554BBC}
+		{4ABA047D-46DD-4608-9E4A-41C5F92FDBB1} = {F94E41E4-F25F-4302-8486-0BEF121CF5C8}
+		{F1A195C9-98CD-47C6-9B74-3344EB258C5D} = {F0D06B07-1CB3-418E-88ED-CAE8DAACC7E0}
+		{29E4B033-1FEF-4FE1-AE17-0A9319D7C54E} = {F1A195C9-98CD-47C6-9B74-3344EB258C5D}
+		{01BBCB5A-144A-4A7E-908E-079849E2F7CF} = {F1A195C9-98CD-47C6-9B74-3344EB258C5D}
+		{16A50D44-107B-4601-A291-3B6870CD919D} = {782DDDA3-A7A3-404E-B751-6200CE2D5EF3}
+		{A16F23B5-FB62-499E-A831-26953AA56FE2} = {16A50D44-107B-4601-A291-3B6870CD919D}
+		{89B50302-9CEE-4D13-9779-633EADCAE624} = {16A50D44-107B-4601-A291-3B6870CD919D}
+		{2F5318D7-9CC2-4B5A-A7FE-43985FEA7198} = {189F7770-5540-4832-B9A0-82474009680C}
+		{6908BDCE-D925-43F3-94AC-A531E6DF2591} = {2F5318D7-9CC2-4B5A-A7FE-43985FEA7198}
+		{DD01ED24-3750-4567-9A23-1DB676A15610} = {2F5318D7-9CC2-4B5A-A7FE-43985FEA7198}
+		{250ADE34-82FD-4BAE-86D5-985FBE589C4A} = {2F5318D7-9CC2-4B5A-A7FE-43985FEA7198}
+		{C268DA4C-4004-47DA-AF23-44C983281A68} = {2F5318D7-9CC2-4B5A-A7FE-43985FEA7198}
+		{236459CE-80CF-4991-972F-DE74C826BCCC} = {2F5318D7-9CC2-4B5A-A7FE-43985FEA7198}
+	EndGlobalSection
+EndGlobal
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views/3.3/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views-3.3.csproj
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views/3.3/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views-3.3.csproj	(revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views/3.3/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views-3.3.csproj	(revision 4235)
@@ -0,0 +1,226 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>9.0.30729</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views</RootNamespace>
+    <AssemblyName>HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views-3.3</AssemblyName>
+    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+    <SignAssembly>true</SignAssembly>
+    <AssemblyOriginatorKeyFile>HeuristicLab.snk</AssemblyOriginatorKeyFile>
+    <FileUpgradeFlags>
+    </FileUpgradeFlags>
+    <OldToolsVersion>3.5</OldToolsVersion>
+    <UpgradeBackupLocation />
+    <PublishUrl>publish\</PublishUrl>
+    <Install>true</Install>
+    <InstallFrom>Disk</InstallFrom>
+    <UpdateEnabled>false</UpdateEnabled>
+    <UpdateMode>Foreground</UpdateMode>
+    <UpdateInterval>7</UpdateInterval>
+    <UpdateIntervalUnits>Days</UpdateIntervalUnits>
+    <UpdatePeriodically>false</UpdatePeriodically>
+    <UpdateRequired>false</UpdateRequired>
+    <MapFileExtensions>true</MapFileExtensions>
+    <ApplicationRevision>0</ApplicationRevision>
+    <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
+    <IsWebBootstrapper>false</IsWebBootstrapper>
+    <UseApplicationTrust>false</UseApplicationTrust>
+    <BootstrapperEnabled>true</BootstrapperEnabled>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' ">
+    <DebugSymbols>true</DebugSymbols>
+    <OutputPath>bin\x64\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <DebugType>full</DebugType>
+    <PlatformTarget>x64</PlatformTarget>
+    <ErrorReport>prompt</ErrorReport>
+    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' ">
+    <OutputPath>bin\x64\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <Optimize>true</Optimize>
+    <DebugType>pdbonly</DebugType>
+    <PlatformTarget>x64</PlatformTarget>
+    <ErrorReport>prompt</ErrorReport>
+    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
+    <DebugSymbols>true</DebugSymbols>
+    <OutputPath>bin\x86\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <DebugType>full</DebugType>
+    <PlatformTarget>x86</PlatformTarget>
+    <ErrorReport>prompt</ErrorReport>
+    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
+    <OutputPath>bin\x86\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <Optimize>true</Optimize>
+    <DebugType>pdbonly</DebugType>
+    <PlatformTarget>x86</PlatformTarget>
+    <ErrorReport>prompt</ErrorReport>
+    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="System.Core">
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="System.Drawing" />
+    <Reference Include="System.Windows.Forms" />
+    <Reference Include="System.Windows.Forms.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" />
+    <Reference Include="System.Xml.Linq">
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="System.Data.DataSetExtensions">
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="System.Data" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="HeuristicLabProblemsDataAnalysisMultiVariateTimeSeriesPrognosisViewsPlugin.cs" />
+    <Compile Include="Symbols\DerivativeVariableView.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="Symbols\DerivativeVariableView.Designer.cs">
+      <DependentUpon>DerivativeVariableView.cs</DependentUpon>
+    </Compile>
+    <Compile Include="Symbols\IntegratedVariableView.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="Symbols\IntegratedVariableView.Designer.cs">
+      <DependentUpon>IntegratedVariableView.cs</DependentUpon>
+    </Compile>
+    <Compile Include="Symbols\MovingAverageView.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="Symbols\MovingAverageView.Designer.cs">
+      <DependentUpon>MovingAverageView.cs</DependentUpon>
+    </Compile>
+    <None Include="HeuristicLab.snk" />
+    <None Include="HeuristicLabProblemsDataAnalysisMultiVariateTimeSeriesPrognosisViewsPlugin.cs.frame" />
+    <None Include="Properties\AssemblyInfo.frame" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\..\HeuristicLab.Common\3.3\HeuristicLab.Common-3.3.csproj">
+      <Project>{A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}</Project>
+      <Name>HeuristicLab.Common-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Core.Views\3.3\HeuristicLab.Core.Views-3.3.csproj">
+      <Project>{E226881D-315F-423D-B419-A766FE0D8685}</Project>
+      <Name>HeuristicLab.Core.Views-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Core\3.3\HeuristicLab.Core-3.3.csproj">
+      <Project>{C36BD924-A541-4A00-AFA8-41701378DDC5}</Project>
+      <Name>HeuristicLab.Core-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Data.Views\3.3\HeuristicLab.Data.Views-3.3.csproj">
+      <Project>{72104A0B-90E7-42F3-9ABE-9BBBADD4B943}</Project>
+      <Name>HeuristicLab.Data.Views-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views\3.3\HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views-3.3.csproj">
+      <Project>{6F42C5F8-16CD-43EE-8208-FD4573A69D85}</Project>
+      <Name>HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Encodings.SymbolicExpressionTreeEncoding\3.3\HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.3.csproj">
+      <Project>{125D3006-67F5-48CB-913E-73C0548F17FA}</Project>
+      <Name>HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.MainForm.WindowsForms\3.3\HeuristicLab.MainForm.WindowsForms-3.3.csproj">
+      <Project>{AB687BBE-1BFE-476B-906D-44237135431D}</Project>
+      <Name>HeuristicLab.MainForm.WindowsForms-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.MainForm\3.3\HeuristicLab.MainForm-3.3.csproj">
+      <Project>{3BD61258-31DA-4B09-89C0-4F71FEF5F05A}</Project>
+      <Name>HeuristicLab.MainForm-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Persistence\3.3\HeuristicLab.Persistence-3.3.csproj">
+      <Project>{102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}</Project>
+      <Name>HeuristicLab.Persistence-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.PluginInfrastructure\3.3\HeuristicLab.PluginInfrastructure-3.3.csproj">
+      <Project>{94186A6A-5176-4402-AE83-886557B53CCA}</Project>
+      <Name>HeuristicLab.PluginInfrastructure-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis\3.3\HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis-3.3.csproj">
+      <Project>{B3310CE1-0C05-410F-BA77-8DAD6CE3F803}</Project>
+      <Name>HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Problems.DataAnalysis.MultiVariate\3.3\HeuristicLab.Problems.DataAnalysis.MultiVariate-3.3.csproj">
+      <Project>{2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}</Project>
+      <Name>HeuristicLab.Problems.DataAnalysis.MultiVariate-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Problems.DataAnalysis.Views\3.3\HeuristicLab.Problems.DataAnalysis.Views-3.3.csproj">
+      <Project>{799B0B38-E384-4A17-A73C-F211EB854592}</Project>
+      <Name>HeuristicLab.Problems.DataAnalysis.Views-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Problems.DataAnalysis\3.3\HeuristicLab.Problems.DataAnalysis-3.3.csproj">
+      <Project>{70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}</Project>
+      <Name>HeuristicLab.Problems.DataAnalysis-3.3</Name>
+    </ProjectReference>
+  </ItemGroup>
+  <ItemGroup>
+    <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+      <Visible>False</Visible>
+      <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
+      <Install>false</Install>
+    </BootstrapperPackage>
+    <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+      <Visible>False</Visible>
+      <ProductName>.NET Framework 3.5 SP1</ProductName>
+      <Install>true</Install>
+    </BootstrapperPackage>
+    <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
+      <Visible>False</Visible>
+      <ProductName>Windows Installer 3.1</ProductName>
+      <Install>true</Install>
+    </BootstrapperPackage>
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+  <PropertyGroup>
+    <PreBuildEvent>set Path=%25Path%25;$(ProjectDir);$(SolutionDir)
+set ProjectDir=$(ProjectDir)
+set SolutionDir=$(SolutionDir)
+set Outdir=$(Outdir)
+
+call PreBuildEvent.cmd
+SubWCRev "%25ProjectDir%25\" "%25ProjectDir%25\HeuristicLabProblemsDataAnalysisMultiVariateTimeSeriesPrognosisViewsPlugin.cs.frame" "%25ProjectDir%25\HeuristicLabProblemsDataAnalysisMultiVariateTimeSeriesPrognosisViewsPlugin.cs"</PreBuildEvent>
+  </PropertyGroup>
+</Project>
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views/3.3/HeuristicLabProblemsDataAnalysisMultiVariateTimeSeriesPrognosisViewsPlugin.cs.frame
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views/3.3/HeuristicLabProblemsDataAnalysisMultiVariateTimeSeriesPrognosisViewsPlugin.cs.frame	(revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views/3.3/HeuristicLabProblemsDataAnalysisMultiVariateTimeSeriesPrognosisViewsPlugin.cs.frame	(revision 4235)
@@ -0,0 +1,45 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Text;
+using HeuristicLab.PluginInfrastructure;
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views {
+  [Plugin("HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views","3.3.0.$WCREV$")]
+  [PluginFile("HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views-3.3.dll", PluginFileType.Assembly)]
+  [PluginDependency("HeuristicLab.Common", "3.3")]
+  [PluginDependency("HeuristicLab.Core", "3.3")]
+  [PluginDependency("HeuristicLab.Core.Views", "3.3")]
+  [PluginDependency("HeuristicLab.Data.Views", "3.3")]
+  [PluginDependency("HeuristicLab.Encodings.SymbolicExpressionTreeEncoding", "3.3")]
+  [PluginDependency("HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views", "3.3")]
+  [PluginDependency("HeuristicLab.MainForm", "3.3")]
+  [PluginDependency("HeuristicLab.MainForm.WindowsForms", "3.3")]
+  [PluginDependency("HeuristicLab.Persistence", "3.3")]
+  [PluginDependency("HeuristicLab.Problems.DataAnalysis", "3.3")]
+  [PluginDependency("HeuristicLab.Problems.DataAnalysis.MultiVariate", "3.3")]
+  [PluginDependency("HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis", "3.3")]
+  [PluginDependency("HeuristicLab.Problems.DataAnalysis.Views", "3.3")]
+  public class HeuristicLabProblemsDataAnalysisMultiVariateTimeSeriesPrognosisViewsPlugin : PluginBase {
+  }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views/3.3/Properties/AssemblyInfo.frame
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views/3.3/Properties/AssemblyInfo.frame	(revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views/3.3/Properties/AssemblyInfo.frame	(revision 4235)
@@ -0,0 +1,55 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+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("HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views")]
+[assembly: AssemblyDescription("Views for HeuristicLab multi variate time series prognosis problem classes ")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("HeuristicLab")]
+[assembly: AssemblyCopyright("(c) 2002-2010 HEAL")]
+[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("9D140A01-2FB2-427A-A4DC-8BAB8D449252")]
+
+// 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 Revision and Build Numbers 
+// by using the '*' as shown below:
+[assembly: AssemblyVersion("3.3.0.0")]
+[assembly: AssemblyFileVersion("3.3.0.$WCREV$")]
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views/3.3/Symbols/DerivativeVariableView.Designer.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views/3.3/Symbols/DerivativeVariableView.Designer.cs	(revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views/3.3/Symbols/DerivativeVariableView.Designer.cs	(revision 4235)
@@ -0,0 +1,155 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views.Symbols {
+  partial class DerivativeVariableView {
+    /// <summary> 
+    /// Required designer variable.
+    /// </summary>
+    private System.ComponentModel.IContainer components = null;
+
+    /// <summary> 
+    /// Clean up any resources being used.
+    /// </summary>
+    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+    protected override void Dispose(bool disposing) {
+      if (disposing && (components != null)) {
+        components.Dispose();
+      }
+      base.Dispose(disposing);
+    }
+
+    #region Component Designer generated code
+
+    /// <summary> 
+    /// Required method for Designer support - do not modify 
+    /// the contents of this method with the code editor.
+    /// </summary>
+    private void InitializeComponent() {
+      this.minTimeOffsetLabel = new System.Windows.Forms.Label();
+      this.maxTimeOffsetLabel = new System.Windows.Forms.Label();
+      this.minTimeOffsetTextBox = new System.Windows.Forms.TextBox();
+      this.maxTimeOffsetTextBox = new System.Windows.Forms.TextBox();
+      ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit();
+      this.SuspendLayout();
+      // 
+      // initializationGroupBox
+      // 
+      this.initializationGroupBox.Location = new System.Drawing.Point(6, 131);
+      this.initializationGroupBox.Size = new System.Drawing.Size(396, 73);
+      // 
+      // mutationGroupBox
+      // 
+      this.mutationGroupBox.Location = new System.Drawing.Point(9, 210);
+      this.mutationGroupBox.Size = new System.Drawing.Size(393, 73);
+      // 
+      // initialFrequencyLabel
+      // 
+      this.initialFrequencyLabel.Location = new System.Drawing.Point(3, 56);
+      this.toolTip.SetToolTip(this.initialFrequencyLabel, "Relative frequency of the symbol in randomly created trees");
+      // 
+      // initialFrequencyTextBox
+      // 
+      this.errorProvider.SetIconAlignment(this.initialFrequencyTextBox, System.Windows.Forms.ErrorIconAlignment.MiddleLeft);
+      this.initialFrequencyTextBox.Size = new System.Drawing.Size(285, 20);
+      // 
+      // nameTextBox
+      // 
+      this.errorProvider.SetIconAlignment(this.nameTextBox, System.Windows.Forms.ErrorIconAlignment.MiddleLeft);
+      this.errorProvider.SetIconPadding(this.nameTextBox, 2);
+      this.nameTextBox.Size = new System.Drawing.Size(285, 20);
+      // 
+      // descriptionTextBox
+      // 
+      this.errorProvider.SetIconAlignment(this.descriptionTextBox, System.Windows.Forms.ErrorIconAlignment.MiddleLeft);
+      this.descriptionTextBox.Size = new System.Drawing.Size(285, 20);
+      // 
+      // minTimeOffsetLabel
+      // 
+      this.minTimeOffsetLabel.AutoSize = true;
+      this.minTimeOffsetLabel.Location = new System.Drawing.Point(3, 82);
+      this.minTimeOffsetLabel.Name = "minTimeOffsetLabel";
+      this.minTimeOffsetLabel.Size = new System.Drawing.Size(81, 13);
+      this.minTimeOffsetLabel.TabIndex = 10;
+      this.minTimeOffsetLabel.Text = "Min. time offset:";
+      // 
+      // maxTimeOffsetLabel
+      // 
+      this.maxTimeOffsetLabel.AutoSize = true;
+      this.maxTimeOffsetLabel.Location = new System.Drawing.Point(3, 108);
+      this.maxTimeOffsetLabel.Name = "maxTimeOffsetLabel";
+      this.maxTimeOffsetLabel.Size = new System.Drawing.Size(84, 13);
+      this.maxTimeOffsetLabel.TabIndex = 11;
+      this.maxTimeOffsetLabel.Text = "Max. time offset:";
+      // 
+      // minTimeOffsetTextBox
+      // 
+      this.minTimeOffsetTextBox.Location = new System.Drawing.Point(117, 79);
+      this.minTimeOffsetTextBox.Name = "minTimeOffsetTextBox";
+      this.minTimeOffsetTextBox.Size = new System.Drawing.Size(285, 20);
+      this.minTimeOffsetTextBox.TabIndex = 12;
+      this.minTimeOffsetTextBox.TextChanged += new System.EventHandler(this.minTimeOffsetTextBox_TextChanged);
+      // 
+      // maxTimeOffsetTextBox
+      // 
+      this.maxTimeOffsetTextBox.Location = new System.Drawing.Point(117, 105);
+      this.maxTimeOffsetTextBox.Name = "maxTimeOffsetTextBox";
+      this.maxTimeOffsetTextBox.Size = new System.Drawing.Size(285, 20);
+      this.maxTimeOffsetTextBox.TabIndex = 13;
+      this.maxTimeOffsetTextBox.TextChanged += new System.EventHandler(this.maxTimeOffsetTextBox_TextChanged);
+      // 
+      // DerivativeVariableView
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.Controls.Add(this.maxTimeOffsetTextBox);
+      this.Controls.Add(this.minTimeOffsetTextBox);
+      this.Controls.Add(this.maxTimeOffsetLabel);
+      this.Controls.Add(this.minTimeOffsetLabel);
+      this.Name = "DerivativeVariableView";
+      this.Size = new System.Drawing.Size(408, 290);
+      this.Controls.SetChildIndex(this.initializationGroupBox, 0);
+      this.Controls.SetChildIndex(this.initialFrequencyTextBox, 0);
+      this.Controls.SetChildIndex(this.initialFrequencyLabel, 0);
+      this.Controls.SetChildIndex(this.nameLabel, 0);
+      this.Controls.SetChildIndex(this.descriptionLabel, 0);
+      this.Controls.SetChildIndex(this.nameTextBox, 0);
+      this.Controls.SetChildIndex(this.descriptionTextBox, 0);
+      this.Controls.SetChildIndex(this.mutationGroupBox, 0);
+      this.Controls.SetChildIndex(this.minTimeOffsetLabel, 0);
+      this.Controls.SetChildIndex(this.maxTimeOffsetLabel, 0);
+      this.Controls.SetChildIndex(this.minTimeOffsetTextBox, 0);
+      this.Controls.SetChildIndex(this.maxTimeOffsetTextBox, 0);
+      ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit();
+      this.ResumeLayout(false);
+      this.PerformLayout();
+
+    }
+
+    #endregion
+
+    private System.Windows.Forms.Label minTimeOffsetLabel;
+    private System.Windows.Forms.Label maxTimeOffsetLabel;
+    private System.Windows.Forms.TextBox minTimeOffsetTextBox;
+    private System.Windows.Forms.TextBox maxTimeOffsetTextBox;
+
+  }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views/3.3/Symbols/DerivativeVariableView.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views/3.3/Symbols/DerivativeVariableView.cs	(revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views/3.3/Symbols/DerivativeVariableView.cs	(revision 4235)
@@ -0,0 +1,110 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using HeuristicLab.MainForm;
+using HeuristicLab.MainForm.WindowsForms;
+using HeuristicLab.Core.Views;
+using HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Symbolic.Symbols;
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views.Symbols {
+  [View("DerivativeVariable View")]
+  [Content(typeof(DerivativeVariable), true)]
+  public partial class DerivativeVariableView : HeuristicLab.Problems.DataAnalysis.Views.Symbolic.Symbols.VariableView {
+    public new DerivativeVariable Content {
+      get { return (DerivativeVariable)base.Content; }
+      set { base.Content = value; }
+    }
+
+    public DerivativeVariableView() {
+      InitializeComponent();
+    }
+
+    protected override void RegisterContentEvents() {
+      base.RegisterContentEvents();
+      Content.Changed += new EventHandler(Content_Changed);
+    }
+
+    protected override void DeregisterContentEvents() {
+      base.DeregisterContentEvents();
+      Content.Changed -= new EventHandler(Content_Changed);
+    }
+
+    protected override void OnContentChanged() {
+      base.OnContentChanged();
+      UpdateControl();
+    }
+
+    protected override void SetEnabledStateOfControls() {
+      base.SetEnabledStateOfControls();
+      minTimeOffsetTextBox.Enabled = Content != null;
+      maxTimeOffsetTextBox.Enabled = Content != null;
+    }
+
+    #region content event handlers
+    private void Content_Changed(object sender, EventArgs e) {
+      UpdateControl();
+    }
+    #endregion
+    #region control event handlers
+    private void minTimeOffsetTextBox_TextChanged(object sender, EventArgs e) {
+      int timeOffset;
+      if (int.TryParse(minTimeOffsetTextBox.Text, out timeOffset) && timeOffset < 0) {
+        Content.MinLag = timeOffset;
+        errorProvider.SetError(minTimeOffsetTextBox, string.Empty);
+      } else {
+        errorProvider.SetError(minTimeOffsetTextBox, "Time offset must be a negative value.");
+      }
+    }
+
+    private void maxTimeOffsetTextBox_TextChanged(object sender, EventArgs e) {
+      int timeOffset;
+      if (int.TryParse(maxTimeOffsetTextBox.Text, out timeOffset) && timeOffset < 0) {
+        Content.MaxLag = timeOffset;
+        errorProvider.SetError(maxTimeOffsetTextBox, string.Empty);
+      } else {
+        errorProvider.SetError(maxTimeOffsetTextBox, "Time offset must be a negative value.");
+      }
+    }
+
+    #endregion
+    #region helpers
+    private void UpdateControl() {
+      if (Content == null) {
+        minTimeOffsetTextBox.Text = string.Empty;
+        maxTimeOffsetTextBox.Text = string.Empty;
+      } else {
+        minTimeOffsetTextBox.Text = Content.MinLag.ToString();
+        maxTimeOffsetTextBox.Text = Content.MaxLag.ToString();
+      }
+      SetEnabledStateOfControls();
+    }
+    #endregion
+
+  }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views/3.3/Symbols/IntegratedVariableView.Designer.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views/3.3/Symbols/IntegratedVariableView.Designer.cs	(revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views/3.3/Symbols/IntegratedVariableView.Designer.cs	(revision 4235)
@@ -0,0 +1,155 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views.Symbols {
+  partial class IntegratedVariableView {
+    /// <summary> 
+    /// Required designer variable.
+    /// </summary>
+    private System.ComponentModel.IContainer components = null;
+
+    /// <summary> 
+    /// Clean up any resources being used.
+    /// </summary>
+    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+    protected override void Dispose(bool disposing) {
+      if (disposing && (components != null)) {
+        components.Dispose();
+      }
+      base.Dispose(disposing);
+    }
+
+    #region Component Designer generated code
+
+    /// <summary> 
+    /// Required method for Designer support - do not modify 
+    /// the contents of this method with the code editor.
+    /// </summary>
+    private void InitializeComponent() {
+      this.minTimeOffsetLabel = new System.Windows.Forms.Label();
+      this.maxTimeOffsetLabel = new System.Windows.Forms.Label();
+      this.minTimeOffsetTextBox = new System.Windows.Forms.TextBox();
+      this.maxTimeOffsetTextBox = new System.Windows.Forms.TextBox();
+      ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit();
+      this.SuspendLayout();
+      // 
+      // initializationGroupBox
+      // 
+      this.initializationGroupBox.Location = new System.Drawing.Point(6, 131);
+      this.initializationGroupBox.Size = new System.Drawing.Size(396, 73);
+      // 
+      // mutationGroupBox
+      // 
+      this.mutationGroupBox.Location = new System.Drawing.Point(6, 210);
+      this.mutationGroupBox.Size = new System.Drawing.Size(396, 73);
+      // 
+      // initialFrequencyLabel
+      // 
+      this.initialFrequencyLabel.Location = new System.Drawing.Point(3, 56);
+      this.toolTip.SetToolTip(this.initialFrequencyLabel, "Relative frequency of the symbol in randomly created trees");
+      // 
+      // initialFrequencyTextBox
+      // 
+      this.errorProvider.SetIconAlignment(this.initialFrequencyTextBox, System.Windows.Forms.ErrorIconAlignment.MiddleLeft);
+      this.initialFrequencyTextBox.Size = new System.Drawing.Size(285, 20);
+      // 
+      // nameTextBox
+      // 
+      this.errorProvider.SetIconAlignment(this.nameTextBox, System.Windows.Forms.ErrorIconAlignment.MiddleLeft);
+      this.errorProvider.SetIconPadding(this.nameTextBox, 2);
+      this.nameTextBox.Size = new System.Drawing.Size(285, 20);
+      // 
+      // descriptionTextBox
+      // 
+      this.errorProvider.SetIconAlignment(this.descriptionTextBox, System.Windows.Forms.ErrorIconAlignment.MiddleLeft);
+      this.descriptionTextBox.Size = new System.Drawing.Size(285, 20);
+      // 
+      // minTimeOffsetLabel
+      // 
+      this.minTimeOffsetLabel.AutoSize = true;
+      this.minTimeOffsetLabel.Location = new System.Drawing.Point(3, 82);
+      this.minTimeOffsetLabel.Name = "minTimeOffsetLabel";
+      this.minTimeOffsetLabel.Size = new System.Drawing.Size(81, 13);
+      this.minTimeOffsetLabel.TabIndex = 10;
+      this.minTimeOffsetLabel.Text = "Min. time offset:";
+      // 
+      // maxTimeOffsetLabel
+      // 
+      this.maxTimeOffsetLabel.AutoSize = true;
+      this.maxTimeOffsetLabel.Location = new System.Drawing.Point(3, 108);
+      this.maxTimeOffsetLabel.Name = "maxTimeOffsetLabel";
+      this.maxTimeOffsetLabel.Size = new System.Drawing.Size(84, 13);
+      this.maxTimeOffsetLabel.TabIndex = 11;
+      this.maxTimeOffsetLabel.Text = "Max. time offset:";
+      // 
+      // minTimeOffsetTextBox
+      // 
+      this.minTimeOffsetTextBox.Location = new System.Drawing.Point(117, 79);
+      this.minTimeOffsetTextBox.Name = "minTimeOffsetTextBox";
+      this.minTimeOffsetTextBox.Size = new System.Drawing.Size(285, 20);
+      this.minTimeOffsetTextBox.TabIndex = 12;
+      this.minTimeOffsetTextBox.TextChanged += new System.EventHandler(this.minTimeOffsetTextBox_TextChanged);
+      // 
+      // maxTimeOffsetTextBox
+      // 
+      this.maxTimeOffsetTextBox.Location = new System.Drawing.Point(117, 105);
+      this.maxTimeOffsetTextBox.Name = "maxTimeOffsetTextBox";
+      this.maxTimeOffsetTextBox.Size = new System.Drawing.Size(285, 20);
+      this.maxTimeOffsetTextBox.TabIndex = 13;
+      this.maxTimeOffsetTextBox.TextChanged += new System.EventHandler(this.maxTimeOffsetTextBox_TextChanged);
+      // 
+      // IntegratedVariableView
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.Controls.Add(this.maxTimeOffsetTextBox);
+      this.Controls.Add(this.minTimeOffsetTextBox);
+      this.Controls.Add(this.maxTimeOffsetLabel);
+      this.Controls.Add(this.minTimeOffsetLabel);
+      this.Name = "IntegratedVariableView";
+      this.Size = new System.Drawing.Size(408, 303);
+      this.Controls.SetChildIndex(this.initializationGroupBox, 0);
+      this.Controls.SetChildIndex(this.mutationGroupBox, 0);
+      this.Controls.SetChildIndex(this.initialFrequencyTextBox, 0);
+      this.Controls.SetChildIndex(this.initialFrequencyLabel, 0);
+      this.Controls.SetChildIndex(this.nameLabel, 0);
+      this.Controls.SetChildIndex(this.descriptionLabel, 0);
+      this.Controls.SetChildIndex(this.nameTextBox, 0);
+      this.Controls.SetChildIndex(this.descriptionTextBox, 0);
+      this.Controls.SetChildIndex(this.minTimeOffsetLabel, 0);
+      this.Controls.SetChildIndex(this.maxTimeOffsetLabel, 0);
+      this.Controls.SetChildIndex(this.minTimeOffsetTextBox, 0);
+      this.Controls.SetChildIndex(this.maxTimeOffsetTextBox, 0);
+      ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit();
+      this.ResumeLayout(false);
+      this.PerformLayout();
+
+    }
+
+    #endregion
+
+    private System.Windows.Forms.Label minTimeOffsetLabel;
+    private System.Windows.Forms.Label maxTimeOffsetLabel;
+    private System.Windows.Forms.TextBox minTimeOffsetTextBox;
+    private System.Windows.Forms.TextBox maxTimeOffsetTextBox;
+
+  }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views/3.3/Symbols/IntegratedVariableView.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views/3.3/Symbols/IntegratedVariableView.cs	(revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views/3.3/Symbols/IntegratedVariableView.cs	(revision 4235)
@@ -0,0 +1,112 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using HeuristicLab.MainForm;
+using HeuristicLab.MainForm.WindowsForms;
+using HeuristicLab.Core.Views;
+using HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Symbolic.Symbols;
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views.Symbols {
+  [View("IntegratedVariable View")]
+  [Content(typeof(IntegratedVariable), true)]
+  public partial class IntegratedVariableView : HeuristicLab.Problems.DataAnalysis.Views.Symbolic.Symbols.VariableView {
+    public new IntegratedVariable Content {
+      get { return (IntegratedVariable)base.Content; }
+      set { base.Content = value; }
+    }
+
+    public IntegratedVariableView() {
+      InitializeComponent();
+    }
+
+    protected override void RegisterContentEvents() {
+      base.RegisterContentEvents();
+      Content.Changed += new EventHandler(Content_Changed);
+    }
+
+    protected override void DeregisterContentEvents() {
+      base.DeregisterContentEvents();
+      Content.Changed -= new EventHandler(Content_Changed);
+    }
+
+    protected override void OnContentChanged() {
+      base.OnContentChanged();
+      UpdateControl();
+    }
+
+    protected override void SetEnabledStateOfControls() {
+      base.SetEnabledStateOfControls();
+      minTimeOffsetTextBox.Enabled = Content != null;
+      maxTimeOffsetTextBox.Enabled = Content != null;
+    }
+
+    #region content event handlers
+    private void Content_Changed(object sender, EventArgs e) {
+      UpdateControl();
+    }
+    #endregion
+
+    #region control event handlers   
+    private void minTimeOffsetTextBox_TextChanged(object sender, EventArgs e) {
+      int timeOffset;
+      if (int.TryParse(minTimeOffsetTextBox.Text, out timeOffset) && timeOffset < 0) {
+        Content.MinLag = timeOffset;
+        errorProvider.SetError(minTimeOffsetTextBox, string.Empty);
+      } else {
+        errorProvider.SetError(minTimeOffsetTextBox, "Time offset must be a negative value.");
+      }
+    }
+
+    private void maxTimeOffsetTextBox_TextChanged(object sender, EventArgs e) {
+      int timeOffset;
+      if (int.TryParse(maxTimeOffsetTextBox.Text, out timeOffset) && timeOffset < 0) {
+        Content.MaxLag = timeOffset;
+        errorProvider.SetError(maxTimeOffsetTextBox, string.Empty);
+      } else {
+        errorProvider.SetError(maxTimeOffsetTextBox, "Time offset must be a negative value.");
+      }
+    }
+
+    #endregion
+
+    #region helpers
+    private void UpdateControl() {
+      if (Content == null) {
+        minTimeOffsetTextBox.Text = string.Empty;
+        maxTimeOffsetTextBox.Text = string.Empty;
+      } else {
+        minTimeOffsetTextBox.Text = Content.MinLag.ToString();
+        maxTimeOffsetTextBox.Text = Content.MaxLag.ToString();
+      }
+      SetEnabledStateOfControls();
+    }
+    #endregion
+
+  }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views/3.3/Symbols/MovingAverageView.Designer.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views/3.3/Symbols/MovingAverageView.Designer.cs	(revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views/3.3/Symbols/MovingAverageView.Designer.cs	(revision 4235)
@@ -0,0 +1,153 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views.Symbols {
+  partial class MovingAverageView {
+    /// <summary> 
+    /// Required designer variable.
+    /// </summary>
+    private System.ComponentModel.IContainer components = null;
+
+    /// <summary> 
+    /// Clean up any resources being used.
+    /// </summary>
+    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+    protected override void Dispose(bool disposing) {
+      if (disposing && (components != null)) {
+        components.Dispose();
+      }
+      base.Dispose(disposing);
+    }
+
+    #region Component Designer generated code
+
+    /// <summary> 
+    /// Required method for Designer support - do not modify 
+    /// the contents of this method with the code editor.
+    /// </summary>
+    private void InitializeComponent() {
+      this.minTimeOffsetLabel = new System.Windows.Forms.Label();
+      this.maxTimeOffsetLabel = new System.Windows.Forms.Label();
+      this.minTimeOffsetTextBox = new System.Windows.Forms.TextBox();
+      this.maxTimeOffsetTextBox = new System.Windows.Forms.TextBox();
+      ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit();
+      this.SuspendLayout();
+      // 
+      // initializationGroupBox
+      // 
+      this.initializationGroupBox.Location = new System.Drawing.Point(6, 131);
+      this.initializationGroupBox.Size = new System.Drawing.Size(396, 73);
+      // 
+      // mutationGroupBox
+      // 
+      this.mutationGroupBox.Location = new System.Drawing.Point(6, 210);
+      this.mutationGroupBox.Size = new System.Drawing.Size(396, 73);
+      // 
+      // initialFrequencyLabel
+      // 
+      this.initialFrequencyLabel.Location = new System.Drawing.Point(3, 56);
+      this.toolTip.SetToolTip(this.initialFrequencyLabel, "Relative frequency of the symbol in randomly created trees");
+      // 
+      // initialFrequencyTextBox
+      // 
+      this.errorProvider.SetIconAlignment(this.initialFrequencyTextBox, System.Windows.Forms.ErrorIconAlignment.MiddleLeft);
+      this.initialFrequencyTextBox.Size = new System.Drawing.Size(285, 20);
+      // 
+      // nameTextBox
+      // 
+      this.errorProvider.SetIconAlignment(this.nameTextBox, System.Windows.Forms.ErrorIconAlignment.MiddleLeft);
+      this.errorProvider.SetIconPadding(this.nameTextBox, 2);
+      this.nameTextBox.Size = new System.Drawing.Size(285, 20);
+      // 
+      // descriptionTextBox
+      // 
+      this.errorProvider.SetIconAlignment(this.descriptionTextBox, System.Windows.Forms.ErrorIconAlignment.MiddleLeft);
+      this.descriptionTextBox.Size = new System.Drawing.Size(285, 20);
+      // 
+      // minTimeOffsetLabel
+      // 
+      this.minTimeOffsetLabel.Location = new System.Drawing.Point(3, 82);
+      this.minTimeOffsetLabel.Name = "minTimeOffsetLabel";
+      this.minTimeOffsetLabel.Size = new System.Drawing.Size(100, 23);
+      this.minTimeOffsetLabel.TabIndex = 15;
+      this.minTimeOffsetLabel.Text = "Min. time offset:";
+      // 
+      // maxTimeOffsetLabel
+      // 
+      this.maxTimeOffsetLabel.Location = new System.Drawing.Point(3, 108);
+      this.maxTimeOffsetLabel.Name = "maxTimeOffsetLabel";
+      this.maxTimeOffsetLabel.Size = new System.Drawing.Size(100, 23);
+      this.maxTimeOffsetLabel.TabIndex = 14;
+      this.maxTimeOffsetLabel.Text = "Max. time offset:";
+      // 
+      // minTimeOffsetTextBox
+      // 
+      this.minTimeOffsetTextBox.Location = new System.Drawing.Point(117, 79);
+      this.minTimeOffsetTextBox.Name = "minTimeOffsetTextBox";
+      this.minTimeOffsetTextBox.Size = new System.Drawing.Size(285, 20);
+      this.minTimeOffsetTextBox.TabIndex = 12;
+      this.minTimeOffsetTextBox.TextChanged += new System.EventHandler(this.minTimeOffsetTextBox_TextChanged);
+      // 
+      // maxTimeOffsetTextBox
+      // 
+      this.maxTimeOffsetTextBox.Location = new System.Drawing.Point(117, 105);
+      this.maxTimeOffsetTextBox.Name = "maxTimeOffsetTextBox";
+      this.maxTimeOffsetTextBox.Size = new System.Drawing.Size(285, 20);
+      this.maxTimeOffsetTextBox.TabIndex = 13;
+      this.maxTimeOffsetTextBox.TextChanged += new System.EventHandler(this.maxTimeOffsetTextBox_TextChanged);
+      // 
+      // MovingAverageView
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.Controls.Add(this.maxTimeOffsetLabel);
+      this.Controls.Add(this.maxTimeOffsetTextBox);
+      this.Controls.Add(this.minTimeOffsetTextBox);
+      this.Controls.Add(this.minTimeOffsetLabel);
+      this.Name = "MovingAverageView";
+      this.Size = new System.Drawing.Size(408, 288);
+      this.Controls.SetChildIndex(this.initializationGroupBox, 0);
+      this.Controls.SetChildIndex(this.initialFrequencyTextBox, 0);
+      this.Controls.SetChildIndex(this.initialFrequencyLabel, 0);
+      this.Controls.SetChildIndex(this.nameLabel, 0);
+      this.Controls.SetChildIndex(this.descriptionLabel, 0);
+      this.Controls.SetChildIndex(this.nameTextBox, 0);
+      this.Controls.SetChildIndex(this.descriptionTextBox, 0);
+      this.Controls.SetChildIndex(this.mutationGroupBox, 0);
+      this.Controls.SetChildIndex(this.minTimeOffsetLabel, 0);
+      this.Controls.SetChildIndex(this.minTimeOffsetTextBox, 0);
+      this.Controls.SetChildIndex(this.maxTimeOffsetTextBox, 0);
+      this.Controls.SetChildIndex(this.maxTimeOffsetLabel, 0);
+      ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit();
+      this.ResumeLayout(false);
+      this.PerformLayout();
+
+    }
+
+    #endregion
+
+    private System.Windows.Forms.Label minTimeOffsetLabel;
+    private System.Windows.Forms.Label maxTimeOffsetLabel;
+    private System.Windows.Forms.TextBox minTimeOffsetTextBox;
+    private System.Windows.Forms.TextBox maxTimeOffsetTextBox;
+
+  }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views/3.3/Symbols/MovingAverageView.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views/3.3/Symbols/MovingAverageView.cs	(revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views/3.3/Symbols/MovingAverageView.cs	(revision 4235)
@@ -0,0 +1,112 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using HeuristicLab.MainForm;
+using HeuristicLab.MainForm.WindowsForms;
+using HeuristicLab.Core.Views;
+using HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Symbolic.Symbols;
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views.Symbols {
+  [View("MovingAverage View")]
+  [Content(typeof(MovingAverage), true)]
+  public partial class MovingAverageView : HeuristicLab.Problems.DataAnalysis.Views.Symbolic.Symbols.VariableView {
+    public new MovingAverage Content {
+      get { return (MovingAverage)base.Content; }
+      set { base.Content = value; }
+    }
+
+    public MovingAverageView() {
+      InitializeComponent();
+    }
+
+    protected override void RegisterContentEvents() {
+      base.RegisterContentEvents();
+      Content.Changed += new EventHandler(Content_Changed);
+    }
+
+    protected override void DeregisterContentEvents() {
+      base.DeregisterContentEvents();
+      Content.Changed -= new EventHandler(Content_Changed);
+    }
+
+    protected override void OnContentChanged() {
+      base.OnContentChanged();
+      UpdateControl();
+    }
+
+    protected override void SetEnabledStateOfControls() {
+      base.SetEnabledStateOfControls();
+      minTimeOffsetTextBox.Enabled = Content != null;
+      maxTimeOffsetTextBox.Enabled = Content != null;
+    }
+
+    #region content event handlers
+    private void Content_Changed(object sender, EventArgs e) {
+      UpdateControl();
+    }
+    #endregion
+
+    #region control event handlers
+    private void minTimeOffsetTextBox_TextChanged(object sender, EventArgs e) {
+      int timeOffset;
+      if (int.TryParse(minTimeOffsetTextBox.Text, out timeOffset) && timeOffset < 0) {
+        Content.MinLag = timeOffset;
+        errorProvider.SetError(minTimeOffsetTextBox, string.Empty);
+      } else {
+        errorProvider.SetError(minTimeOffsetTextBox, "Time offset must be a negative value.");
+      }
+    }
+
+    private void maxTimeOffsetTextBox_TextChanged(object sender, EventArgs e) {
+      int timeOffset;
+      if (int.TryParse(maxTimeOffsetTextBox.Text, out timeOffset) && timeOffset < 0) {
+        Content.MaxLag = timeOffset;
+        errorProvider.SetError(maxTimeOffsetTextBox, string.Empty);
+      } else {
+        errorProvider.SetError(maxTimeOffsetTextBox, "Time offset must be a negative value.");
+      }
+    }
+
+    #endregion
+
+    #region helpers
+    private void UpdateControl() {
+      if (Content == null) {
+        minTimeOffsetTextBox.Text = string.Empty;
+        maxTimeOffsetTextBox.Text = string.Empty;
+      } else {
+        minTimeOffsetTextBox.Text = Content.MinLag.ToString();
+        maxTimeOffsetTextBox.Text = Content.MaxLag.ToString();
+      }
+      SetEnabledStateOfControls();
+    }
+    #endregion
+
+  }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Evaluators/OnlineDirectionalSymmetryEvaluator.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Evaluators/OnlineDirectionalSymmetryEvaluator.cs	(revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Evaluators/OnlineDirectionalSymmetryEvaluator.cs	(revision 4235)
@@ -0,0 +1,65 @@
+﻿using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using HeuristicLab.Problems.DataAnalysis.Evaluators;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Parameters;
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis {
+  public class OnlineDirectionalSymmetryEvaluator : IOnlineTimeSeriesPrognosisEvaluator {
+    private double prevEstimated;
+    private double prevOriginal;
+    private int n;
+    private int nCorrect;
+
+    public double DirectionalSymmetry {
+      get {
+        if (n < 1) return 0.0;
+        return (double)nCorrect / n * 100.0;
+      }
+    }
+
+    public OnlineDirectionalSymmetryEvaluator() {
+      Reset();
+    }
+
+    #region IOnlineEvaluator Members
+    public double Value {
+      get { return DirectionalSymmetry; }
+    }
+
+    public void Add(double original, double estimated) {
+      if (double.IsNaN(original) || double.IsInfinity(original) || double.IsNaN(estimated) || double.IsInfinity(estimated)) {
+        throw new ArgumentException("Directional symmetry is not defined for series containing NaN or infinity values.");
+      }
+      if (!double.IsNaN(prevOriginal)) {
+        if ((original - prevOriginal) * (estimated - prevEstimated) >= 0.0) {
+          nCorrect++;
+        } else {
+          n++;
+        }
+      }
+    }
+
+    public void Reset() {
+      n = 0;
+      nCorrect = 0;
+      prevOriginal = double.NaN;
+      prevEstimated = double.NaN;
+    }
+
+    #endregion
+
+    #region IOnlineTimeSeriesPrognosisEvaluator Members
+
+    public void StartNewPredictionWindow(double lastKnownOriginalValue) {
+      prevEstimated = lastKnownOriginalValue;
+      prevOriginal = lastKnownOriginalValue;
+    }
+
+    #endregion
+  }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Evaluators/OnlineTheilsUStatisticEvaluator.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Evaluators/OnlineTheilsUStatisticEvaluator.cs	(revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Evaluators/OnlineTheilsUStatisticEvaluator.cs	(revision 4235)
@@ -0,0 +1,66 @@
+﻿using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using HeuristicLab.Problems.DataAnalysis.Evaluators;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Parameters;
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis {
+  public class OnlineTheilsUStatisticEvaluator : IOnlineTimeSeriesPrognosisEvaluator {
+    private OnlineMeanAndVarianceCalculator squaredErrorMeanCalculator;
+    private OnlineMeanAndVarianceCalculator unbiasedEstimatorMeanCalculator;
+    private double prevOriginal;
+
+    public double TheilsUStatistic {
+      get {
+        return Math.Sqrt(squaredErrorMeanCalculator.Mean) / Math.Sqrt(unbiasedEstimatorMeanCalculator.Mean);
+      }
+    }
+
+    public OnlineTheilsUStatisticEvaluator() {
+      squaredErrorMeanCalculator = new OnlineMeanAndVarianceCalculator();
+      unbiasedEstimatorMeanCalculator = new OnlineMeanAndVarianceCalculator();
+      Reset();
+    }
+
+    #region IOnlineEvaluator Members
+    public double Value {
+      get { return TheilsUStatistic; }
+    }
+
+    public void Add(double original, double estimated) {
+      if (double.IsInfinity(original) || double.IsNaN(original) || double.IsInfinity(estimated) || double.IsNaN(estimated)) {
+        throw new ArgumentException("Theil's U-statistic is not defined for series containing NaN or infinity values.");
+      }
+
+      if (!double.IsNaN(prevOriginal)) {
+        // error of predicted change
+        double errorEstimatedChange = (estimated - original);
+        squaredErrorMeanCalculator.Add(errorEstimatedChange * errorEstimatedChange);
+
+        // error of naive model y(t+1) = y(t)
+        double errorNoChange = (original - prevOriginal);
+        unbiasedEstimatorMeanCalculator.Add(errorNoChange * errorNoChange);
+      }
+    }
+
+    public void Reset() {
+      prevOriginal = double.NaN;
+      squaredErrorMeanCalculator.Reset();
+      unbiasedEstimatorMeanCalculator.Reset();
+    }
+
+    #endregion
+
+    #region IOnlineTimeSeriesPrognosisEvaluator Members
+
+    public void StartNewPredictionWindow(double referenceOriginalValue) {
+      prevOriginal = referenceOriginalValue;
+    }
+
+    #endregion
+  }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Evaluators/OnlineWeightedDirectionalSymmetryEvaluator.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Evaluators/OnlineWeightedDirectionalSymmetryEvaluator.cs	(revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Evaluators/OnlineWeightedDirectionalSymmetryEvaluator.cs	(revision 4235)
@@ -0,0 +1,66 @@
+﻿using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using HeuristicLab.Problems.DataAnalysis.Evaluators;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Parameters;
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis {
+  public class OnlineWeightedDirectionalSymmetryEvaluator : IOnlineTimeSeriesPrognosisEvaluator {
+    private double prevEstimated;
+    private double prevOriginal;
+    private double incorrectSum;
+    private double correctSum;
+
+    public double WeightedDirectionalSymmetry {
+      get {
+        return incorrectSum / correctSum;
+      }
+    }
+
+    public OnlineWeightedDirectionalSymmetryEvaluator() {
+      Reset();
+    }
+
+    #region IOnlineEvaluator Members
+    public double Value {
+      get { return WeightedDirectionalSymmetry; }
+    }
+
+    public void Add(double original, double estimated) {
+      if (double.IsInfinity(original) || double.IsNaN(original) || double.IsInfinity(estimated) || double.IsNaN(estimated)) {
+        throw new ArgumentException("Weighted directional symmetry is not defined for series containing NaN or infinity values.");
+      }
+
+      // not the first element and a valid estimated value
+      if (!double.IsNaN(prevOriginal)) {
+        double error = Math.Abs(estimated - original);
+        if ((original - prevOriginal) * (estimated - prevEstimated) >= 0.0)
+          correctSum += error;
+        else
+          incorrectSum += error;
+      }
+    }
+
+    public void Reset() {
+      correctSum = 0;
+      incorrectSum = 0;
+      prevOriginal = double.NaN;
+      prevEstimated = double.NaN;
+    }
+
+    #endregion
+
+    #region IOnlineTimeSeriesPrognosisEvaluator Members
+
+    public void StartNewPredictionWindow(double referenceOriginalValue) {
+      prevOriginal = referenceOriginalValue;
+      prevEstimated = referenceOriginalValue;
+    }
+
+    #endregion
+  }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis-3.3.csproj
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis-3.3.csproj	(revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis-3.3.csproj	(revision 4235)
@@ -0,0 +1,235 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>9.0.30729</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{B3310CE1-0C05-410F-BA77-8DAD6CE3F803}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis</RootNamespace>
+    <AssemblyName>HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis-3.3</AssemblyName>
+    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+    <SignAssembly>true</SignAssembly>
+    <AssemblyOriginatorKeyFile>HeuristicLab.snk</AssemblyOriginatorKeyFile>
+    <FileUpgradeFlags>
+    </FileUpgradeFlags>
+    <OldToolsVersion>3.5</OldToolsVersion>
+    <UpgradeBackupLocation />
+    <PublishUrl>publish\</PublishUrl>
+    <Install>true</Install>
+    <InstallFrom>Disk</InstallFrom>
+    <UpdateEnabled>false</UpdateEnabled>
+    <UpdateMode>Foreground</UpdateMode>
+    <UpdateInterval>7</UpdateInterval>
+    <UpdateIntervalUnits>Days</UpdateIntervalUnits>
+    <UpdatePeriodically>false</UpdatePeriodically>
+    <UpdateRequired>false</UpdateRequired>
+    <MapFileExtensions>true</MapFileExtensions>
+    <ApplicationRevision>0</ApplicationRevision>
+    <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
+    <IsWebBootstrapper>false</IsWebBootstrapper>
+    <UseApplicationTrust>false</UseApplicationTrust>
+    <BootstrapperEnabled>true</BootstrapperEnabled>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' ">
+    <DebugSymbols>true</DebugSymbols>
+    <OutputPath>bin\x64\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <DebugType>full</DebugType>
+    <PlatformTarget>x64</PlatformTarget>
+    <ErrorReport>prompt</ErrorReport>
+    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' ">
+    <OutputPath>bin\x64\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <Optimize>true</Optimize>
+    <DebugType>pdbonly</DebugType>
+    <PlatformTarget>x64</PlatformTarget>
+    <ErrorReport>prompt</ErrorReport>
+    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
+    <DebugSymbols>true</DebugSymbols>
+    <OutputPath>bin\x86\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <DebugType>full</DebugType>
+    <PlatformTarget>x86</PlatformTarget>
+    <ErrorReport>prompt</ErrorReport>
+    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
+    <OutputPath>bin\x86\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <Optimize>true</Optimize>
+    <DebugType>pdbonly</DebugType>
+    <PlatformTarget>x86</PlatformTarget>
+    <ErrorReport>prompt</ErrorReport>
+    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="System.Core">
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="System.Drawing" />
+    <Reference Include="System.Xml.Linq">
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="System.Data.DataSetExtensions">
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="System.Data" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="HeuristicLabProblemsDataAnalysisMultiVariateTimeSeriesPrognosisPlugin.cs" />
+    <Compile Include="Symbolic\Analyzer\ValidationBestScaledSymbolicTimeSeriesPrognosisSolutionAnalyzer.cs" />
+    <Compile Include="Symbolic\Evaluators\SymbolicTimeSeriesPrognosisNormalizedMseEvaluator.cs" />
+    <Compile Include="Symbolic\Evaluators\SymbolicTimeSeriesPrognosisScaledNormalizedMseEvaluator.cs" />
+    <Compile Include="Symbolic\Interfaces\ISingleObjectiveSymbolicTimeSeriesPrognosisEvaluator.cs" />
+    <Compile Include="Symbolic\Interfaces\ISymbolicTimeSeriesExpressionInterpreter.cs" />
+    <Compile Include="Symbolic\Interfaces\ISymbolicTimeSeriesPrognosisEvaluator.cs" />
+    <Compile Include="Symbolic\SingleObjectiveSymbolicTimeSeriesPrognosisProblem.cs" />
+    <Compile Include="Symbolic\Interfaces\IMultiObjectiveSymbolicTimeSeriesPrognosisEvaluator.cs" />
+    <Compile Include="Symbolic\SymbolicTimeSeriesExpressionInterpreter.cs" />
+    <Compile Include="Symbolic\SymbolicTimeSeriesPrognosisGrammar.cs" />
+    <Compile Include="Symbolic\SymbolicTimeSeriesPrognosisProblem.cs" />
+    <Compile Include="Symbolic\Symbols\DerivativeVariable.cs" />
+    <Compile Include="Symbolic\Symbols\DerivativeVariableTreeNode.cs" />
+    <Compile Include="Symbolic\Symbols\IntegratedVariable.cs" />
+    <Compile Include="Symbolic\Symbols\IntegratedVariableTreeNode.cs" />
+    <Compile Include="Symbolic\Symbols\MovingAverage.cs" />
+    <Compile Include="Symbolic\Symbols\MovingAverageTreeNode.cs" />
+    <None Include="HeuristicLab.snk" />
+    <None Include="HeuristicLabProblemsDataAnalysisMultiVariateTimeSeriesPrognosisPlugin.cs.frame" />
+    <None Include="Properties\AssemblyInfo.frame" />
+    <Compile Include="Evaluators\OnlineDirectionalSymmetryEvaluator.cs" />
+    <Compile Include="Evaluators\OnlineTheilsUStatisticEvaluator.cs" />
+    <Compile Include="Evaluators\OnlineWeightedDirectionalSymmetryEvaluator.cs" />
+    <Compile Include="Interfaces\IOnlineTimeSeriesPrognosisEvaluator.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\..\HeuristicLab.Analysis\3.3\HeuristicLab.Analysis-3.3.csproj">
+      <Project>{887425B4-4348-49ED-A457-B7D2C26DDBF9}</Project>
+      <Name>HeuristicLab.Analysis-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Collections\3.3\HeuristicLab.Collections-3.3.csproj">
+      <Project>{958B43BC-CC5C-4FA2-8628-2B3B01D890B6}</Project>
+      <Name>HeuristicLab.Collections-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Common.Resources\3.3\HeuristicLab.Common.Resources-3.3.csproj">
+      <Project>{0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}</Project>
+      <Name>HeuristicLab.Common.Resources-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Common\3.3\HeuristicLab.Common-3.3.csproj">
+      <Project>{A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}</Project>
+      <Name>HeuristicLab.Common-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Core\3.3\HeuristicLab.Core-3.3.csproj">
+      <Project>{C36BD924-A541-4A00-AFA8-41701378DDC5}</Project>
+      <Name>HeuristicLab.Core-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Data\3.3\HeuristicLab.Data-3.3.csproj">
+      <Project>{BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}</Project>
+      <Name>HeuristicLab.Data-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Encodings.SymbolicExpressionTreeEncoding\3.3\HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.3.csproj">
+      <Project>{125D3006-67F5-48CB-913E-73C0548F17FA}</Project>
+      <Name>HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Operators\3.3\HeuristicLab.Operators-3.3.csproj">
+      <Project>{23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}</Project>
+      <Name>HeuristicLab.Operators-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Optimization\3.3\HeuristicLab.Optimization-3.3.csproj">
+      <Project>{14AB8D24-25BC-400C-A846-4627AA945192}</Project>
+      <Name>HeuristicLab.Optimization-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Parameters\3.3\HeuristicLab.Parameters-3.3.csproj">
+      <Project>{56F9106A-079F-4C61-92F6-86A84C2D84B7}</Project>
+      <Name>HeuristicLab.Parameters-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Persistence\3.3\HeuristicLab.Persistence-3.3.csproj">
+      <Project>{102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}</Project>
+      <Name>HeuristicLab.Persistence-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.PluginInfrastructure\3.3\HeuristicLab.PluginInfrastructure-3.3.csproj">
+      <Project>{94186A6A-5176-4402-AE83-886557B53CCA}</Project>
+      <Name>HeuristicLab.PluginInfrastructure-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Problems.DataAnalysis.MultiVariate.Regression\3.3\HeuristicLab.Problems.DataAnalysis.MultiVariate.Regression-3.3.csproj">
+      <Project>{6024D74F-E29C-4E6B-843E-8851831B8E14}</Project>
+      <Name>HeuristicLab.Problems.DataAnalysis.MultiVariate.Regression-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Problems.DataAnalysis.MultiVariate\3.3\HeuristicLab.Problems.DataAnalysis.MultiVariate-3.3.csproj">
+      <Project>{2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}</Project>
+      <Name>HeuristicLab.Problems.DataAnalysis.MultiVariate-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Problems.DataAnalysis\3.3\HeuristicLab.Problems.DataAnalysis-3.3.csproj">
+      <Project>{70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}</Project>
+      <Name>HeuristicLab.Problems.DataAnalysis-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Random\3.3\HeuristicLab.Random-3.3.csproj">
+      <Project>{F4539FB6-4708-40C9-BE64-0A1390AEA197}</Project>
+      <Name>HeuristicLab.Random-3.3</Name>
+    </ProjectReference>
+  </ItemGroup>
+  <ItemGroup>
+    <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+      <Visible>False</Visible>
+      <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
+      <Install>false</Install>
+    </BootstrapperPackage>
+    <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+      <Visible>False</Visible>
+      <ProductName>.NET Framework 3.5 SP1</ProductName>
+      <Install>true</Install>
+    </BootstrapperPackage>
+    <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
+      <Visible>False</Visible>
+      <ProductName>Windows Installer 3.1</ProductName>
+      <Install>true</Install>
+    </BootstrapperPackage>
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+  <PropertyGroup>
+    <PreBuildEvent>set Path=%25Path%25;$(ProjectDir);$(SolutionDir)
+set ProjectDir=$(ProjectDir)
+set SolutionDir=$(SolutionDir)
+set Outdir=$(Outdir)
+
+call PreBuildEvent.cmd
+SubWCRev "%25ProjectDir%25\" "%25ProjectDir%25\HeuristicLabProblemsDataAnalysisMultiVariateTimeSeriesPrognosisPlugin.cs.frame" "%25ProjectDir%25\HeuristicLabProblemsDataAnalysisMultiVariateTimeSeriesPrognosisPlugin.cs"</PreBuildEvent>
+  </PropertyGroup>
+</Project>
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/HeuristicLabProblemsDataAnalysisMultiVariateTimeSeriesPrognosisPlugin.cs.frame
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/HeuristicLabProblemsDataAnalysisMultiVariateTimeSeriesPrognosisPlugin.cs.frame	(revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/HeuristicLabProblemsDataAnalysisMultiVariateTimeSeriesPrognosisPlugin.cs.frame	(revision 4235)
@@ -0,0 +1,32 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Text;
+using HeuristicLab.PluginInfrastructure;
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis {
+  [Plugin("HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis","3.3.0.$WCREV$")]
+  [PluginFile("HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis-3.3.dll", PluginFileType.Assembly)]
+  public class HeuristicLabProblemsDataAnalysisMultiVariateTimeSeriesPrognosisPlugin : PluginBase {
+  }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Interfaces/IOnlineTimeSeriesPrognosisEvaluator.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Interfaces/IOnlineTimeSeriesPrognosisEvaluator.cs	(revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Interfaces/IOnlineTimeSeriesPrognosisEvaluator.cs	(revision 4235)
@@ -0,0 +1,15 @@
+﻿using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using HeuristicLab.Problems.DataAnalysis.Evaluators;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Parameters;
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis {
+  public interface IOnlineTimeSeriesPrognosisEvaluator : IOnlineEvaluator {
+    void StartNewPredictionWindow(double referenceOriginalValue);
+  }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Properties/AssemblyInfo.frame
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Properties/AssemblyInfo.frame	(revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Properties/AssemblyInfo.frame	(revision 4235)
@@ -0,0 +1,55 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+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("HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis")]
+[assembly: AssemblyDescription("HeuristicLab multi variate time series prognosis problem classes")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("HeuristicLab")]
+[assembly: AssemblyCopyright("(c) 2002-2010 HEAL")]
+[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("8A05822F-E13D-4F74-A479-135828BB2F36")]
+
+// 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 Revision and Build Numbers 
+// by using the '*' as shown below:
+[assembly: AssemblyVersion("3.3.0.0")]
+[assembly: AssemblyFileVersion("3.3.0.$WCREV$")]
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Analyzer/ValidationBestScaledSymbolicTimeSeriesPrognosisSolutionAnalyzer.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Analyzer/ValidationBestScaledSymbolicTimeSeriesPrognosisSolutionAnalyzer.cs	(revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Analyzer/ValidationBestScaledSymbolicTimeSeriesPrognosisSolutionAnalyzer.cs	(revision 4235)
@@ -0,0 +1,336 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Linq;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using HeuristicLab.Operators;
+using HeuristicLab.Optimization;
+using HeuristicLab.Parameters;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
+using HeuristicLab.Problems.DataAnalysis.Regression.Symbolic;
+using HeuristicLab.Problems.DataAnalysis.Symbolic;
+using System.Collections.Generic;
+using HeuristicLab.Problems.DataAnalysis.Symbolic.Symbols;
+using HeuristicLab.Problems.DataAnalysis;
+using System;
+
+using HeuristicLab.Problems.DataAnalysis.Evaluators;
+using HeuristicLab.Problems.DataAnalysis.Regression;
+using HeuristicLab.Analysis;
+using HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Symbolic.Evaluators;
+using HeuristicLab.Problems.DataAnalysis.MultiVariate.Regression.Symbolic;
+using HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Symbolic.Interfaces;
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Symbolic.Analyzers {
+  /// <summary>
+  /// An operator that analyzes the validation best scaled symbolic time series prognosis solution.
+  /// </summary>
+  [Item("ValidationBestScaledSymbolicTimeSeriesPrognosisSolutionAnalyzer", "An operator that analyzes the validation best scaled symbolic time series prognosis solution.")]
+  [StorableClass]
+  public sealed class ValidationBestScaledSymbolicTimeSeriesPrognosisSolutionAnalyzer : SingleSuccessorOperator, IAnalyzer {
+    private const string RandomParameterName = "Random";
+    private const string SymbolicExpressionTreeParameterName = "SymbolicExpressionTree";
+    private const string SymbolicExpressionTreeInterpreterParameterName = "SymbolicExpressionTreeInterpreter";
+    private const string ProblemDataParameterName = "ProblemData";
+    private const string ValidationSamplesStartParameterName = "SamplesStart";
+    private const string ValidationSamplesEndParameterName = "SamplesEnd";
+    private const string QualityParameterName = "Quality";
+    private const string ScaledQualityParameterName = "ScaledQuality";
+    private const string UpperEstimationLimitParameterName = "UpperEstimationLimit";
+    private const string LowerEstimationLimitParameterName = "LowerEstimationLimit";
+    private const string PredictionHorizonParameterName = "PredictionHorizon";
+    private const string ConditionVariableParameterName = "ConditionVariableName";
+    private const string AlphaParameterName = "Alpha";
+    private const string BetaParameterName = "Beta";
+    private const string BestSolutionParameterName = "Best solution (validation)";
+    private const string BestSolutionQualityParameterName = "Best solution quality (validation)";
+    private const string CurrentBestValidationQualityParameterName = "Current best validation quality";
+    private const string BestSolutionQualityValuesParameterName = "Validation Quality";
+    private const string ResultsParameterName = "Results";
+    private const string VariableFrequenciesParameterName = "VariableFrequencies";
+    private const string BestKnownQualityParameterName = "BestKnownQuality";
+    private const string GenerationsParameterName = "Generations";
+
+    private const string TrainingMeanSquaredErrorQualityParameterName = "Mean squared error (training)";
+    private const string MinTrainingMeanSquaredErrorQualityParameterName = "Min mean squared error (training)";
+    private const string MaxTrainingMeanSquaredErrorQualityParameterName = "Max mean squared error (training)";
+    private const string AverageTrainingMeanSquaredErrorQualityParameterName = "Average mean squared error (training)";
+    private const string BestTrainingMeanSquaredErrorQualityParameterName = "Best mean squared error (training)";
+
+    private const string TrainingAverageRelativeErrorQualityParameterName = "Average relative error (training)";
+    private const string MinTrainingAverageRelativeErrorQualityParameterName = "Min average relative error (training)";
+    private const string MaxTrainingAverageRelativeErrorQualityParameterName = "Max average relative error (training)";
+    private const string AverageTrainingAverageRelativeErrorQualityParameterName = "Average average relative error (training)";
+    private const string BestTrainingAverageRelativeErrorQualityParameterName = "Best average relative error (training)";
+
+    private const string TrainingRSquaredQualityParameterName = "R² (training)";
+    private const string MinTrainingRSquaredQualityParameterName = "Min R² (training)";
+    private const string MaxTrainingRSquaredQualityParameterName = "Max R² (training)";
+    private const string AverageTrainingRSquaredQualityParameterName = "Average R² (training)";
+    private const string BestTrainingRSquaredQualityParameterName = "Best R² (training)";
+
+    private const string TestMeanSquaredErrorQualityParameterName = "Mean squared error (test)";
+    private const string MinTestMeanSquaredErrorQualityParameterName = "Min mean squared error (test)";
+    private const string MaxTestMeanSquaredErrorQualityParameterName = "Max mean squared error (test)";
+    private const string AverageTestMeanSquaredErrorQualityParameterName = "Average mean squared error (test)";
+    private const string BestTestMeanSquaredErrorQualityParameterName = "Best mean squared error (test)";
+
+    private const string TestAverageRelativeErrorQualityParameterName = "Average relative error (test)";
+    private const string MinTestAverageRelativeErrorQualityParameterName = "Min average relative error (test)";
+    private const string MaxTestAverageRelativeErrorQualityParameterName = "Max average relative error (test)";
+    private const string AverageTestAverageRelativeErrorQualityParameterName = "Average average relative error (test)";
+    private const string BestTestAverageRelativeErrorQualityParameterName = "Best average relative error (test)";
+
+    private const string TestRSquaredQualityParameterName = "R² (test)";
+    private const string MinTestRSquaredQualityParameterName = "Min R² (test)";
+    private const string MaxTestRSquaredQualityParameterName = "Max R² (test)";
+    private const string AverageTestRSquaredQualityParameterName = "Average R² (test)";
+    private const string BestTestRSquaredQualityParameterName = "Best R² (test)";
+
+    private const string RSquaredValuesParameterName = "R²";
+    private const string MeanSquaredErrorValuesParameterName = "Mean squared error";
+    private const string RelativeErrorValuesParameterName = "Average relative error";
+    private const string BestSolutionResultName = "Best solution (on validiation set)";
+    private const string RelativeNumberOfEvaluatedSamplesParameterName = "RelativeNumberOfEvaluatedSamples";
+
+    #region parameter properties
+    public ILookupParameter<IRandom> RandomParameter {
+      get { return (ILookupParameter<IRandom>)Parameters[RandomParameterName]; }
+    }
+    public ScopeTreeLookupParameter<SymbolicExpressionTree> SymbolicExpressionTreeParameter {
+      get { return (ScopeTreeLookupParameter<SymbolicExpressionTree>)Parameters[SymbolicExpressionTreeParameterName]; }
+    }
+    public OptionalValueParameter<StringValue> ConditionVariableNameParameter {
+      get { return (OptionalValueParameter<StringValue>)Parameters[ConditionVariableParameterName]; }
+    }
+    public ScopeTreeLookupParameter<DoubleArray> AlphaParameter {
+      get { return (ScopeTreeLookupParameter<DoubleArray>)Parameters[AlphaParameterName]; }
+    }
+    public ScopeTreeLookupParameter<DoubleArray> BetaParameter {
+      get { return (ScopeTreeLookupParameter<DoubleArray>)Parameters[BetaParameterName]; }
+    }
+    public IValueLookupParameter<ISymbolicTimeSeriesExpressionInterpreter> SymbolicExpressionTreeInterpreterParameter {
+      get { return (IValueLookupParameter<ISymbolicTimeSeriesExpressionInterpreter>)Parameters[SymbolicExpressionTreeInterpreterParameterName]; }
+    }
+    public IValueLookupParameter<MultiVariateDataAnalysisProblemData> ProblemDataParameter {
+      get { return (IValueLookupParameter<MultiVariateDataAnalysisProblemData>)Parameters[ProblemDataParameterName]; }
+    }
+    public IValueLookupParameter<IntValue> ValidationSamplesStartParameter {
+      get { return (IValueLookupParameter<IntValue>)Parameters[ValidationSamplesStartParameterName]; }
+    }
+    public IValueLookupParameter<IntValue> ValidationSamplesEndParameter {
+      get { return (IValueLookupParameter<IntValue>)Parameters[ValidationSamplesEndParameterName]; }
+    }
+    public IValueLookupParameter<DoubleArray> UpperEstimationLimitParameter {
+      get { return (IValueLookupParameter<DoubleArray>)Parameters[UpperEstimationLimitParameterName]; }
+    }
+    public IValueLookupParameter<DoubleArray> LowerEstimationLimitParameter {
+      get { return (IValueLookupParameter<DoubleArray>)Parameters[LowerEstimationLimitParameterName]; }
+    }
+    public IValueLookupParameter<IntValue> PredictionHorizonParameter {
+      get { return (IValueLookupParameter<IntValue>)Parameters[PredictionHorizonParameterName]; }
+    }
+    public ILookupParameter<SymbolicExpressionTree> BestSolutionParameter {
+      get { return (ILookupParameter<SymbolicExpressionTree>)Parameters[BestSolutionParameterName]; }
+    }
+    public ILookupParameter<IntValue> GenerationsParameter {
+      get { return (ILookupParameter<IntValue>)Parameters[GenerationsParameterName]; }
+    }
+    public ILookupParameter<DoubleValue> BestSolutionQualityParameter {
+      get { return (ILookupParameter<DoubleValue>)Parameters[BestSolutionQualityParameterName]; }
+    }
+    public ILookupParameter<ResultCollection> ResultsParameter {
+      get { return (ILookupParameter<ResultCollection>)Parameters[ResultsParameterName]; }
+    }
+    public ILookupParameter<DoubleValue> BestKnownQualityParameter {
+      get { return (ILookupParameter<DoubleValue>)Parameters[BestKnownQualityParameterName]; }
+    }
+    public ILookupParameter<DataTable> VariableFrequenciesParameter {
+      get { return (ILookupParameter<DataTable>)Parameters[VariableFrequenciesParameterName]; }
+    }
+    public IValueParameter<PercentValue> RelativeNumberOfEvaluatedSamplesParameter {
+      get { return (IValueParameter<PercentValue>)Parameters[RelativeNumberOfEvaluatedSamplesParameterName]; }
+    }
+    #endregion
+    #region properties
+    public IRandom Random {
+      get { return RandomParameter.ActualValue; }
+    }
+    public ItemArray<SymbolicExpressionTree> SymbolicExpressionTree {
+      get { return SymbolicExpressionTreeParameter.ActualValue; }
+    }
+    public ItemArray<DoubleArray> Alpha {
+      get { return AlphaParameter.ActualValue; }
+    }
+    public ItemArray<DoubleArray> Beta {
+      get { return BetaParameter.ActualValue; }
+    }
+    public ISymbolicTimeSeriesExpressionInterpreter SymbolicExpressionTreeInterpreter {
+      get { return SymbolicExpressionTreeInterpreterParameter.ActualValue; }
+    }
+    public MultiVariateDataAnalysisProblemData ProblemData {
+      get { return ProblemDataParameter.ActualValue; }
+    }
+    public IntValue ValidiationSamplesStart {
+      get { return ValidationSamplesStartParameter.ActualValue; }
+    }
+    public IntValue ValidationSamplesEnd {
+      get { return ValidationSamplesEndParameter.ActualValue; }
+    }
+    public DoubleArray UpperEstimationLimit {
+      get { return UpperEstimationLimitParameter.ActualValue; }
+    }
+    public DoubleArray LowerEstimationLimit {
+      get { return LowerEstimationLimitParameter.ActualValue; }
+    }
+    public IntValue PredictionHorizon {
+      get { return PredictionHorizonParameter.ActualValue; }
+    }
+    public StringValue ConditionVariableName {
+      get { return ConditionVariableNameParameter.Value; }
+    }
+    public ResultCollection Results {
+      get { return ResultsParameter.ActualValue; }
+    }
+    public DataTable VariableFrequencies {
+      get { return VariableFrequenciesParameter.ActualValue; }
+    }
+    public IntValue Generations {
+      get { return GenerationsParameter.ActualValue; }
+    }
+    public PercentValue RelativeNumberOfEvaluatedSamples {
+      get { return RelativeNumberOfEvaluatedSamplesParameter.Value; }
+    }
+    #endregion
+
+    public ValidationBestScaledSymbolicTimeSeriesPrognosisSolutionAnalyzer()
+      : base() {
+      Parameters.Add(new LookupParameter<IRandom>(RandomParameterName, "A random number generator."));
+      Parameters.Add(new ScopeTreeLookupParameter<SymbolicExpressionTree>(SymbolicExpressionTreeParameterName, "The symbolic expression trees to analyze."));
+      Parameters.Add(new OptionalValueParameter<StringValue>(ConditionVariableParameterName, "The name of the condition variable indicating if a row should be considered for evaluation or not."));
+      Parameters.Add(new ScopeTreeLookupParameter<DoubleArray>(AlphaParameterName, "The alpha parameter for linear scaling."));
+      Parameters.Add(new ScopeTreeLookupParameter<DoubleArray>(BetaParameterName, "The beta parameter for linear scaling."));
+      Parameters.Add(new ValueLookupParameter<ISymbolicTimeSeriesExpressionInterpreter>(SymbolicExpressionTreeInterpreterParameterName, "The interpreter that should be used for the analysis of symbolic expression trees."));
+      Parameters.Add(new ValueLookupParameter<MultiVariateDataAnalysisProblemData>(ProblemDataParameterName, "The problem data for which the symbolic expression tree is a solution."));
+      Parameters.Add(new ValueLookupParameter<IntValue>(ValidationSamplesStartParameterName, "The first index of the validation partition of the data set."));
+      Parameters.Add(new ValueLookupParameter<IntValue>(ValidationSamplesEndParameterName, "The last index of the validation partition of the data set."));
+      Parameters.Add(new ValueLookupParameter<IntValue>(PredictionHorizonParameterName, "The number of time steps for which to create a forecast."));
+      Parameters.Add(new ValueLookupParameter<DoubleArray>(UpperEstimationLimitParameterName, "The upper estimation limit that was set for the evaluation of the symbolic expression trees."));
+      Parameters.Add(new ValueLookupParameter<DoubleArray>(LowerEstimationLimitParameterName, "The lower estimation limit that was set for the evaluation of the symbolic expression trees."));
+      Parameters.Add(new LookupParameter<SymbolicExpressionTree>(BestSolutionParameterName, "The best symbolic time series prognosis solution."));
+      Parameters.Add(new LookupParameter<IntValue>(GenerationsParameterName, "The number of generations calculated so far."));
+      Parameters.Add(new LookupParameter<DoubleValue>(BestSolutionQualityParameterName, "The quality of the best symbolic regression solution."));
+      Parameters.Add(new LookupParameter<ResultCollection>(ResultsParameterName, "The result collection where the best symbolic regression solution should be stored."));
+      Parameters.Add(new LookupParameter<DoubleValue>(BestKnownQualityParameterName, "The best known (validation) quality achieved on the data set."));
+      Parameters.Add(new LookupParameter<DataTable>(VariableFrequenciesParameterName, "The variable frequencies table to use for the calculation of variable impacts"));
+      Parameters.Add(new ValueParameter<PercentValue>(RelativeNumberOfEvaluatedSamplesParameterName, "The relative number of samples of the dataset partition, which should be randomly chosen for evaluation between the start and end index.", new PercentValue(1)));
+
+    }
+
+    [StorableConstructor]
+    private ValidationBestScaledSymbolicTimeSeriesPrognosisSolutionAnalyzer(bool deserializing) : base(deserializing) { }
+
+    public override IOperation Apply() {
+      var alphas = Alpha;
+      var betas = Beta;
+      var trees = SymbolicExpressionTree;
+
+      IEnumerable<SymbolicExpressionTree> scaledTrees;
+      if (alphas.Length == trees.Length) {
+        scaledTrees = from i in Enumerable.Range(0, trees.Length)
+                      select SymbolicVectorRegressionSolutionLinearScaler.Scale(trees[i], betas[i].ToArray(), alphas[i].ToArray());
+      } else {
+        scaledTrees = trees;
+      }
+
+      int trainingStart = ProblemData.TrainingSamplesStart.Value;
+      int trainingEnd = ProblemData.TrainingSamplesEnd.Value;
+      int testStart = ProblemData.TestSamplesStart.Value;
+      int testEnd = ProblemData.TestSamplesEnd.Value;
+
+      #region validation best model
+      int validationStart = ValidiationSamplesStart.Value;
+      int validationEnd = ValidationSamplesEnd.Value;
+      int rowCount = (int)Math.Ceiling((validationEnd - validationStart) * RelativeNumberOfEvaluatedSamples.Value);
+      IEnumerable<int> rows = RandomEnumerable.SampleRandomNumbers((uint)Random.Next(), validationStart, validationEnd, rowCount);
+      double bestValidationNmse = double.MaxValue;
+      SymbolicExpressionTree bestTree = null;
+      string conditionalVariableName = ConditionVariableName == null ? null : ConditionVariableName.Value;
+      foreach (var tree in scaledTrees) {
+        double validationNmse;
+        validationNmse = SymbolicTimeSeriesPrognosisNormalizedMseEvaluator.Evaluate(tree, ProblemData,
+          SymbolicExpressionTreeInterpreter, conditionalVariableName,
+          rows, PredictionHorizon.Value, LowerEstimationLimit, UpperEstimationLimit);
+        if (validationNmse < bestValidationNmse) {
+          bestValidationNmse = validationNmse;
+          bestTree = tree;
+        }
+      }
+
+
+      if (BestSolutionQualityParameter.ActualValue == null || BestSolutionQualityParameter.ActualValue.Value > bestValidationNmse) {
+        var solution = bestTree;
+        //solution.Name = BestSolutionParameterName;
+        //solution.Description = "Best solution on validation partition found over the whole run.";
+
+        BestSolutionParameter.ActualValue = solution;
+        BestSolutionQualityParameter.ActualValue = new DoubleValue(bestValidationNmse);
+
+        // BestSymbolicTimeSeriesPrognosisSolutionAnalyzer.UpdateBestSolutionResults(solution, ProblemData, Results, Generations, VariableFrequencies);
+      }
+
+      if (!Results.ContainsKey(BestSolutionQualityValuesParameterName)) {
+        Results.Add(new Result(BestSolutionResultName, BestSolutionParameter.ActualValue));
+        Results.Add(new Result(BestSolutionQualityValuesParameterName, new DataTable(BestSolutionQualityValuesParameterName, BestSolutionQualityValuesParameterName)));
+        Results.Add(new Result(BestSolutionQualityParameterName, new DoubleValue()));
+        Results.Add(new Result(CurrentBestValidationQualityParameterName, new DoubleValue()));
+      }
+      Results[BestSolutionResultName].Value = BestSolutionParameter.ActualValue;
+      Results[BestSolutionQualityParameterName].Value = new DoubleValue(BestSolutionQualityParameter.ActualValue.Value);
+      Results[CurrentBestValidationQualityParameterName].Value = new DoubleValue(bestValidationNmse);
+
+      DataTable validationValues = (DataTable)Results[BestSolutionQualityValuesParameterName].Value;
+      AddValue(validationValues, BestSolutionQualityParameter.ActualValue.Value, BestSolutionQualityParameterName, BestSolutionQualityParameterName);
+      AddValue(validationValues, bestValidationNmse, CurrentBestValidationQualityParameterName, CurrentBestValidationQualityParameterName);
+      #endregion
+      return base.Apply();
+    }
+
+    [StorableHook(HookType.AfterDeserialization)]
+    private void Initialize() {
+    }
+
+    private static void AddValue(DataTable table, double data, string name, string description) {
+      DataRow row;
+      table.Rows.TryGetValue(name, out row);
+      if (row == null) {
+        row = new DataRow(name, description);
+        row.Values.Add(data);
+        table.Rows.Add(row);
+      } else {
+        row.Values.Add(data);
+      }
+    }
+  }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Evaluators/SymbolicTimeSeriesPrognosisNormalizedMseEvaluator.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Evaluators/SymbolicTimeSeriesPrognosisNormalizedMseEvaluator.cs	(revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Evaluators/SymbolicTimeSeriesPrognosisNormalizedMseEvaluator.cs	(revision 4235)
@@ -0,0 +1,174 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Linq;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Problems.DataAnalysis.SupportVectorMachine;
+using HeuristicLab.Problems.DataAnalysis;
+using HeuristicLab.Problems.DataAnalysis.Evaluators;
+using HeuristicLab.Parameters;
+using HeuristicLab.Optimization;
+using HeuristicLab.Operators;
+using HeuristicLab.Problems.DataAnalysis.Regression.Symbolic;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
+using System.Collections.Generic;
+using HeuristicLab.Problems.DataAnalysis.Regression;
+using HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Symbolic.Interfaces;
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Symbolic.Evaluators {
+  [Item("SymbolicTimeSeriesPrognosisNormalizedMseEvaluator", "")]
+  [StorableClass]
+  public class SymbolicTimeSeriesPrognosisNormalizedMseEvaluator : SingleSuccessorOperator, ISingleObjectiveSymbolicTimeSeriesPrognosisEvaluator {
+    private const string RandomParameterName = "Random";
+    private const string DataAnalysisProblemDataParameterName = "MultiVariateDataAnalysisProblemData";
+    private const string TimeSeriesExpressionInterpreterParameterName = "TimeSeriesExpressionInterpreter";
+    private const string TimeSeriesPrognosisModelParameterName = "TimeSeriesPrognosisModel";
+    private const string PredictionHorizontParameterName = "PredictionHorizon";
+    private const string LowerEstimationLimitParameterName = "LowerEstimationLimit";
+    private const string UpperEstimationLimitParameterName = "UpperEstimationLimit";
+    private const string ConditionVariableParameterName = "ConditionVariableName";
+    private const string SamplesStartParameterName = "SamplesStart";
+    private const string SamplesEndParameterName = "SamplesEnd";
+    private const string QualityParameterName = "Quality";
+    private const string RelativeNumberOfEvaluatedSamplesParameterName = "RelativeNumberOfEvaluatedSamples";
+
+    #region parameter properties
+    public ILookupParameter<IRandom> RandomParameter {
+      get { return (ILookupParameter<IRandom>)Parameters[RandomParameterName]; }
+    }
+    public ILookupParameter<MultiVariateDataAnalysisProblemData> ProblemDataParameter {
+      get { return (ILookupParameter<MultiVariateDataAnalysisProblemData>)Parameters[DataAnalysisProblemDataParameterName]; }
+    }
+    public ILookupParameter<ISymbolicTimeSeriesExpressionInterpreter> TimeSeriesExpressionInterpreterParameter {
+      get { return (ILookupParameter<ISymbolicTimeSeriesExpressionInterpreter>)Parameters[TimeSeriesExpressionInterpreterParameterName]; }
+    }
+    public IValueLookupParameter<IntValue> PredictionHorizonParameter {
+      get { return (IValueLookupParameter<IntValue>)Parameters[PredictionHorizontParameterName]; }
+    }
+    public OptionalValueParameter<StringValue> ConditionVariableNameParameter {
+      get { return (OptionalValueParameter<StringValue>)Parameters[ConditionVariableParameterName]; }
+    }
+    public IValueLookupParameter<IntValue> SamplesStartParameter {
+      get { return (IValueLookupParameter<IntValue>)Parameters[SamplesStartParameterName]; }
+    }
+    public IValueLookupParameter<IntValue> SamplesEndParameter {
+      get { return (IValueLookupParameter<IntValue>)Parameters[SamplesEndParameterName]; }
+    }
+    public IValueLookupParameter<DoubleArray> LowerEstimationLimitParameter {
+      get { return (IValueLookupParameter<DoubleArray>)Parameters[LowerEstimationLimitParameterName]; }
+    }
+    public IValueLookupParameter<DoubleArray> UpperEstimationLimitParameter {
+      get { return (IValueLookupParameter<DoubleArray>)Parameters[UpperEstimationLimitParameterName]; }
+    }
+    public ILookupParameter<SymbolicExpressionTree> TimeSeriesPrognosisModelParameter {
+      get { return (ILookupParameter<SymbolicExpressionTree>)Parameters[TimeSeriesPrognosisModelParameterName]; }
+    }
+    public ILookupParameter<DoubleValue> QualityParameter {
+      get { return (ILookupParameter<DoubleValue>)Parameters[QualityParameterName]; }
+    }
+    public IValueParameter<PercentValue> RelativeNumberOfEvaluatedSamplesParameter {
+      get { return (IValueParameter<PercentValue>)Parameters[RelativeNumberOfEvaluatedSamplesParameterName]; }
+    }
+    #endregion
+    #region
+    public IRandom Random {
+      get { return RandomParameter.ActualValue; }
+    }
+    public MultiVariateDataAnalysisProblemData ProblemData {
+      get { return ProblemDataParameter.ActualValue; }
+    }
+    public ISymbolicTimeSeriesExpressionInterpreter TimeSeriesExpressionInterpreter {
+      get { return TimeSeriesExpressionInterpreterParameter.ActualValue; }
+    }
+    public IntValue PredictionHorizon {
+      get { return PredictionHorizonParameter.ActualValue; }
+    }
+    public StringValue ConditionVariableName {
+      get { return ConditionVariableNameParameter.Value; }
+    }
+    public IntValue SamplesStart {
+      get { return SamplesStartParameter.ActualValue; }
+    }
+    public IntValue SamplesEnd {
+      get { return SamplesEndParameter.ActualValue; }
+    }
+    public DoubleArray LowerEstimationLimit {
+      get { return LowerEstimationLimitParameter.ActualValue; }
+    }
+    public DoubleArray UpperEstimationLimit {
+      get { return UpperEstimationLimitParameter.ActualValue; }
+    }
+    public SymbolicExpressionTree TimeSeriesPrognosisModel {
+      get { return TimeSeriesPrognosisModelParameter.ActualValue; }
+    }
+    public PercentValue RelativeNumberOfEvaluatedSamples {
+      get { return RelativeNumberOfEvaluatedSamplesParameter.Value; }
+    }
+    #endregion
+
+    public SymbolicTimeSeriesPrognosisNormalizedMseEvaluator()
+      : base() {
+      Parameters.Add(new LookupParameter<IRandom>(RandomParameterName, "A random number generator."));
+      Parameters.Add(new LookupParameter<MultiVariateDataAnalysisProblemData>(DataAnalysisProblemDataParameterName, "The data analysis problem data to use for training."));
+      Parameters.Add(new LookupParameter<ISymbolicTimeSeriesExpressionInterpreter>(TimeSeriesExpressionInterpreterParameterName, "The interpreter that should be used to evaluate the time series model represented as a symbolic expression tree."));
+      Parameters.Add(new ValueLookupParameter<IntValue>(SamplesStartParameterName, "The first index of the data set partition to use for training."));
+      Parameters.Add(new ValueLookupParameter<IntValue>(SamplesEndParameterName, "The last index of the data set partition to use for training."));
+      Parameters.Add(new ValueLookupParameter<IntValue>(PredictionHorizontParameterName, "The number of time steps for which to create a forecast."));
+      Parameters.Add(new ValueLookupParameter<DoubleArray>(LowerEstimationLimitParameterName, "The lower limit for estimated values."));
+      Parameters.Add(new ValueLookupParameter<DoubleArray>(UpperEstimationLimitParameterName, "The upper limit for estimated values."));
+      Parameters.Add(new OptionalValueParameter<StringValue>(ConditionVariableParameterName, "The name of the condition variable indicating if a row should be considered for evaluation or not."));
+      Parameters.Add(new LookupParameter<SymbolicExpressionTree>(TimeSeriesPrognosisModelParameterName, "The time series prognosis model encoded as a symbolic expression tree."));
+      Parameters.Add(new LookupParameter<DoubleValue>(QualityParameterName, "The quality of the time series prognosis model encoded as a symbolic expression tree."));
+      Parameters.Add(new ValueParameter<PercentValue>(RelativeNumberOfEvaluatedSamplesParameterName, "The relative number of samples of the dataset partition, which should be randomly chosen for evaluation between the start and end index.", new PercentValue(1)));
+    }
+
+    public override IOperation Apply() {
+      double quality;
+      string conditionVariableName = ConditionVariableName == null ? null : ConditionVariableName.Value;
+      int nRows = (int)Math.Ceiling((SamplesEnd.Value - SamplesStart.Value) * RelativeNumberOfEvaluatedSamples.Value);
+      IEnumerable<int> rows = RandomEnumerable.SampleRandomNumbers((uint)Random.Next(), SamplesStart.Value, SamplesEnd.Value, nRows);
+
+      quality = Evaluate(TimeSeriesPrognosisModel, ProblemData, TimeSeriesExpressionInterpreter,
+        conditionVariableName, rows, PredictionHorizon.Value, LowerEstimationLimit, UpperEstimationLimit);
+      QualityParameter.ActualValue = new DoubleValue(quality);
+      return base.Apply();
+    }
+
+    public static double Evaluate(SymbolicExpressionTree tree, MultiVariateDataAnalysisProblemData problemData,
+      ISymbolicTimeSeriesExpressionInterpreter interpreter,
+     IEnumerable<int> rows, int predictionHorizon, DoubleArray lowerEstimationLimit, DoubleArray upperEstimationLimit) {
+      return Evaluate(tree, problemData, interpreter, null, rows, predictionHorizon, lowerEstimationLimit, upperEstimationLimit);
+    }
+
+    public static double Evaluate(SymbolicExpressionTree tree, MultiVariateDataAnalysisProblemData problemData,
+      ISymbolicTimeSeriesExpressionInterpreter interpreter, string conditionVariableName,
+      IEnumerable<int> rows, int predictionHorizon, DoubleArray lowerEstimationLimit, DoubleArray upperEstimationLimit) {
+      double[] zeros = new double[problemData.TargetVariables.CheckedItems.Count()];
+      double[] ones = Enumerable.Repeat(1.0, zeros.Length).ToArray();
+      return SymbolicTimeSeriesPrognosisScaledNormalizedMseEvaluator.Evaluate(tree, problemData, interpreter, conditionVariableName, rows,
+        predictionHorizon, lowerEstimationLimit, upperEstimationLimit, ones, zeros);
+    }
+  }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Evaluators/SymbolicTimeSeriesPrognosisScaledNormalizedMseEvaluator.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Evaluators/SymbolicTimeSeriesPrognosisScaledNormalizedMseEvaluator.cs	(revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Evaluators/SymbolicTimeSeriesPrognosisScaledNormalizedMseEvaluator.cs	(revision 4235)
@@ -0,0 +1,303 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Linq;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Problems.DataAnalysis.SupportVectorMachine;
+using HeuristicLab.Problems.DataAnalysis;
+using HeuristicLab.Problems.DataAnalysis.Evaluators;
+using HeuristicLab.Parameters;
+using HeuristicLab.Optimization;
+using HeuristicLab.Operators;
+using HeuristicLab.Problems.DataAnalysis.Regression.Symbolic;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
+using System.Collections.Generic;
+using HeuristicLab.Problems.DataAnalysis.Regression;
+using HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Symbolic.Interfaces;
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Symbolic.Evaluators {
+  [Item("SymbolicTimeSeriesPrognosisScaledNormalizedMseEvaluator", "")]
+  [StorableClass]
+  public class SymbolicTimeSeriesPrognosisScaledNormalizedMseEvaluator : SingleSuccessorOperator, ISingleObjectiveSymbolicTimeSeriesPrognosisEvaluator {
+    private const string RandomParameterName = "Random";
+    private const string DataAnalysisProblemDataParameterName = "MultiVariateDataAnalysisProblemData";
+    private const string TimeSeriesExpressionInterpreterParameterName = "TimeSeriesExpressionInterpreter";
+    private const string TimeSeriesPrognosisModelParameterName = "TimeSeriesPrognosisModel";
+    private const string PredictionHorizontParameterName = "PredictionHorizon";
+    private const string ConditionVariableParameterName = "ConditionVariableName";
+    private const string SamplesStartParameterName = "SamplesStart";
+    private const string SamplesEndParameterName = "SamplesEnd";
+    private const string AlphaParameterName = "Alpha";
+    private const string BetaParameterName = "Beta";
+    private const string LowerEstimationLimitParameterName = "LowerEstimationLimit";
+    private const string UpperEstimationLimitParameterName = "UpperEstimationLimit";
+    private const string QualityParameterName = "Quality";
+    private const string RelativeNumberOfEvaluatedSamplesParameterName = "RelativeNumberOfEvaluatedSamples";
+
+    #region parameter properties
+    public ILookupParameter<IRandom> RandomParameter {
+      get { return (ILookupParameter<IRandom>)Parameters[RandomParameterName]; }
+    }
+    public ILookupParameter<MultiVariateDataAnalysisProblemData> ProblemDataParameter {
+      get { return (ILookupParameter<MultiVariateDataAnalysisProblemData>)Parameters[DataAnalysisProblemDataParameterName]; }
+    }
+    public ILookupParameter<ISymbolicTimeSeriesExpressionInterpreter> TimeSeriesExpressionInterpreterParameter {
+      get { return (ILookupParameter<ISymbolicTimeSeriesExpressionInterpreter>)Parameters[TimeSeriesExpressionInterpreterParameterName]; }
+    }
+    public IValueLookupParameter<IntValue> PredictionHorizonParameter {
+      get { return (IValueLookupParameter<IntValue>)Parameters[PredictionHorizontParameterName]; }
+    }
+    public OptionalValueParameter<StringValue> ConditionVariableNameParameter {
+      get { return (OptionalValueParameter<StringValue>)Parameters[ConditionVariableParameterName]; }
+    }
+    public IValueLookupParameter<IntValue> SamplesStartParameter {
+      get { return (IValueLookupParameter<IntValue>)Parameters[SamplesStartParameterName]; }
+    }
+    public IValueLookupParameter<IntValue> SamplesEndParameter {
+      get { return (IValueLookupParameter<IntValue>)Parameters[SamplesEndParameterName]; }
+    }
+    public ILookupParameter<SymbolicExpressionTree> TimeSeriesPrognosisModelParameter {
+      get { return (ILookupParameter<SymbolicExpressionTree>)Parameters[TimeSeriesPrognosisModelParameterName]; }
+    }
+    public ILookupParameter<DoubleValue> QualityParameter {
+      get { return (ILookupParameter<DoubleValue>)Parameters[QualityParameterName]; }
+    }
+    public ILookupParameter<DoubleArray> AlphaParameter {
+      get { return (ILookupParameter<DoubleArray>)Parameters[AlphaParameterName]; }
+    }
+    public ILookupParameter<DoubleArray> BetaParameter {
+      get { return (ILookupParameter<DoubleArray>)Parameters[BetaParameterName]; }
+    }
+    public IValueLookupParameter<DoubleArray> LowerEstimationLimitParameter {
+      get { return (IValueLookupParameter<DoubleArray>)Parameters[LowerEstimationLimitParameterName]; }
+    }
+    public IValueLookupParameter<DoubleArray> UpperEstimationLimitParameter {
+      get { return (IValueLookupParameter<DoubleArray>)Parameters[UpperEstimationLimitParameterName]; }
+    }
+    public IValueParameter<PercentValue> RelativeNumberOfEvaluatedSamplesParameter {
+      get { return (IValueParameter<PercentValue>)Parameters[RelativeNumberOfEvaluatedSamplesParameterName]; }
+    }
+
+    #endregion
+    #region properties
+    public IRandom Random {
+      get { return RandomParameter.ActualValue; }
+    }
+    public MultiVariateDataAnalysisProblemData ProblemData {
+      get { return ProblemDataParameter.ActualValue; }
+    }
+    public ISymbolicTimeSeriesExpressionInterpreter TimeSeriesExpressionInterpreter {
+      get { return TimeSeriesExpressionInterpreterParameter.ActualValue; }
+    }
+    public IntValue PredictionHorizon {
+      get { return PredictionHorizonParameter.ActualValue; }
+    }
+    public StringValue ConditionVariableName {
+      get { return ConditionVariableNameParameter.Value; }
+    }
+    public IntValue SamplesStart {
+      get { return SamplesStartParameter.ActualValue; }
+    }
+    public IntValue SamplesEnd {
+      get { return SamplesEndParameter.ActualValue; }
+    }
+    public DoubleArray LowerEstimationLimit {
+      get { return LowerEstimationLimitParameter.ActualValue; }
+    }
+    public DoubleArray UpperEstimationLimit {
+      get { return UpperEstimationLimitParameter.ActualValue; }
+    }
+    public SymbolicExpressionTree TimeSeriesPrognosisModel {
+      get { return TimeSeriesPrognosisModelParameter.ActualValue; }
+    }
+    public PercentValue RelativeNumberOfEvaluatedSamples {
+      get { return RelativeNumberOfEvaluatedSamplesParameter.Value; }
+    }
+    #endregion
+
+    public SymbolicTimeSeriesPrognosisScaledNormalizedMseEvaluator()
+      : base() {
+      Parameters.Add(new LookupParameter<IRandom>(RandomParameterName, "A random number generator."));
+      Parameters.Add(new LookupParameter<MultiVariateDataAnalysisProblemData>(DataAnalysisProblemDataParameterName, "The data analysis problem data to use for training."));
+      Parameters.Add(new LookupParameter<ISymbolicTimeSeriesExpressionInterpreter>(TimeSeriesExpressionInterpreterParameterName, "The interpreter that should be used to evaluate the time series model represented as a symbolic expression tree."));
+      Parameters.Add(new ValueLookupParameter<IntValue>(SamplesStartParameterName, "The first index of the data set partition to use for training."));
+      Parameters.Add(new ValueLookupParameter<IntValue>(SamplesEndParameterName, "The last index of the data set partition to use for training."));
+      Parameters.Add(new ValueLookupParameter<IntValue>(PredictionHorizontParameterName, "The number of time steps for which to create a forecast."));
+      Parameters.Add(new ValueLookupParameter<DoubleArray>(LowerEstimationLimitParameterName, "The lower limit for estimated values."));
+      Parameters.Add(new ValueLookupParameter<DoubleArray>(UpperEstimationLimitParameterName, "The upper limit for estimated values."));
+      Parameters.Add(new OptionalValueParameter<StringValue>(ConditionVariableParameterName, "The name of the condition variable indicating if a row should be considered for evaluation or not."));
+      Parameters.Add(new LookupParameter<SymbolicExpressionTree>(TimeSeriesPrognosisModelParameterName, "The time series prognosis model encoded as a symbolic expression tree."));
+      Parameters.Add(new LookupParameter<DoubleValue>(QualityParameterName, "The quality of the time series prognosis model encoded as a symbolic expression tree."));
+      Parameters.Add(new LookupParameter<DoubleArray>(AlphaParameterName, "The alpha parameter for linear scaling based on one step predictions."));
+      Parameters.Add(new LookupParameter<DoubleArray>(BetaParameterName, "The beta parameter for linear scaling based on one step predictions."));
+      Parameters.Add(new ValueParameter<PercentValue>(RelativeNumberOfEvaluatedSamplesParameterName, "The relative number of samples of the dataset partition, which should be randomly chosen for evaluation between the start and end index.", new PercentValue(1)));
+    }
+
+    public override IOperation Apply() {
+      double[] alpha, beta;
+      double quality;
+      string conditionVariableName = ConditionVariableName == null ? null : ConditionVariableName.Value;
+      int nRows = (int)Math.Ceiling((SamplesEnd.Value - SamplesStart.Value) * RelativeNumberOfEvaluatedSamples.Value);
+
+      IEnumerable<int> rows = RandomEnumerable.SampleRandomNumbers((uint)Random.Next(), SamplesStart.Value, SamplesEnd.Value, nRows);
+      CalculateScalingParameters(TimeSeriesPrognosisModel, ProblemData, TimeSeriesExpressionInterpreter,
+        conditionVariableName, rows,
+        out beta, out alpha);
+
+      quality = Evaluate(TimeSeriesPrognosisModel, ProblemData, TimeSeriesExpressionInterpreter,
+        conditionVariableName, rows, PredictionHorizon.Value,
+        LowerEstimationLimit, UpperEstimationLimit,
+        beta, alpha);
+      QualityParameter.ActualValue = new DoubleValue(quality);
+      AlphaParameter.ActualValue = new DoubleArray(alpha);
+      BetaParameter.ActualValue = new DoubleArray(beta);
+      return base.Apply();
+    }
+
+    public static double Evaluate(SymbolicExpressionTree tree, MultiVariateDataAnalysisProblemData problemData,
+      ISymbolicTimeSeriesExpressionInterpreter interpreter,
+      IEnumerable<int> rows, int predictionHorizon, 
+      DoubleArray lowerEstimationLimit, DoubleArray upperEstimationLimit,
+      double[] beta, double[] alpha) {
+      return Evaluate(tree, problemData, interpreter, null, rows, predictionHorizon, lowerEstimationLimit, upperEstimationLimit, beta, alpha);
+    }
+
+    public static double Evaluate(SymbolicExpressionTree tree, MultiVariateDataAnalysisProblemData problemData,
+      ISymbolicTimeSeriesExpressionInterpreter interpreter, string conditionVariableName,
+      IEnumerable<int> rows, int predictionHorizon,
+      DoubleArray lowerEstimationLimit, DoubleArray upperEstimationLimit,
+      double[] beta, double[] alpha) {
+      if (conditionVariableName != null) {
+        rows = from row in rows
+               where !problemData.Dataset[conditionVariableName, row].IsAlmost(0.0)
+               select row;
+      }
+      IEnumerable<string> selectedTargetVariables = from targetVariable in problemData.TargetVariables
+                                                    where problemData.TargetVariables.ItemChecked(targetVariable)
+                                                    select targetVariable.Value;
+
+      IEnumerable<double[]> estimatedValues =
+        interpreter.GetScaledSymbolicExpressionTreeValues(tree, problemData.Dataset, selectedTargetVariables,
+        rows, predictionHorizon, beta, alpha);
+
+      IEnumerable<double[]> originalValues = from row in rows
+                                             from step in Enumerable.Range(0, predictionHorizon)
+                                             select (from targetVariable in selectedTargetVariables
+                                                     select problemData.Dataset[targetVariable, row + step]).ToArray();
+
+      List<OnlineNormalizedMeanSquaredErrorEvaluator> evaluators = new List<OnlineNormalizedMeanSquaredErrorEvaluator>();
+      foreach (string targetVariable in selectedTargetVariables)
+        evaluators.Add(new OnlineNormalizedMeanSquaredErrorEvaluator());
+
+      var estimatedValuesEnumerator = estimatedValues.GetEnumerator();
+      var originalValuesEnumerator = originalValues.GetEnumerator();
+      while (originalValuesEnumerator.MoveNext() & estimatedValuesEnumerator.MoveNext()) {
+        double[] original = originalValuesEnumerator.Current;
+        double[] estimated = estimatedValuesEnumerator.Current;
+        for (int i = 0; i < evaluators.Count; i++) {
+          if (double.IsNaN(estimated[i])) estimated[i] = upperEstimationLimit[i];
+          else estimated[i] = Math.Min(upperEstimationLimit[i], Math.Max(lowerEstimationLimit[i], estimated[i]));
+          evaluators[i].Add(original[i], estimated[i]);
+        }
+      }
+
+      double quality = evaluators.Select(x => x.NormalizedMeanSquaredError).Sum();
+      return quality;
+    }
+
+    public static void CalculateScalingParameters(SymbolicExpressionTree tree, MultiVariateDataAnalysisProblemData problemData,
+      ISymbolicTimeSeriesExpressionInterpreter interpreter,
+      IEnumerable<int> rows, 
+      out double[] betas, out double[] alphas) {
+      CalculateScalingParameters(tree, problemData, interpreter, null, rows, out betas, out alphas);
+    }
+
+    public static void CalculateScalingParameters(SymbolicExpressionTree tree, MultiVariateDataAnalysisProblemData problemData,
+      ISymbolicTimeSeriesExpressionInterpreter interpreter, string conditionVariableName,
+      IEnumerable<int> rows, out double[] betas, out double[] alphas) {
+      IEnumerable<string> selectedTargetVariables = from item in problemData.TargetVariables
+                                                    where problemData.TargetVariables.ItemChecked(item)
+                                                    select item.Value;
+      int dimension = selectedTargetVariables.Count();
+
+      if (conditionVariableName != null) {
+        rows = from row in rows
+               where !problemData.Dataset[conditionVariableName, row].IsAlmost(0.0)
+               select row;
+      }
+
+      IEnumerable<double[]> oneStepPredictions =
+        interpreter.GetSymbolicExpressionTreeValues(tree, problemData.Dataset, selectedTargetVariables, rows, 1);
+      IEnumerable<double[]> originalValues = from row in rows
+                                             select (from targetVariable in selectedTargetVariables
+                                                     select problemData.Dataset[targetVariable, row]).ToArray();
+
+      alphas = new double[dimension];
+      betas = new double[dimension];
+      int[] cnt = new int[dimension];
+      List<OnlineMeanAndVarianceCalculator> estimatedVarianceEvaluators = new List<OnlineMeanAndVarianceCalculator>();
+      List<OnlineCovarianceEvaluator> covarianceEvaluators = new List<OnlineCovarianceEvaluator>();
+      List<OnlineMeanAndVarianceCalculator> originalMeanCalculators = new List<OnlineMeanAndVarianceCalculator>();
+      foreach (var selectedTargetVariable in selectedTargetVariables) {
+        estimatedVarianceEvaluators.Add(new OnlineMeanAndVarianceCalculator());
+        covarianceEvaluators.Add(new OnlineCovarianceEvaluator());
+        originalMeanCalculators.Add(new OnlineMeanAndVarianceCalculator());
+      }
+      var estimatedEnumerator = oneStepPredictions.GetEnumerator();
+      var originalEnumerator = originalValues.GetEnumerator();
+      while (estimatedEnumerator.MoveNext() & originalEnumerator.MoveNext()) {
+        double[] original = originalEnumerator.Current;
+        double[] estimated = estimatedEnumerator.Current;
+        for (int component = 0; component < dimension; component++) {
+          if (IsValidValue(original[component]) && IsValidValue(estimated[component])) {
+            cnt[component]++;
+            estimatedVarianceEvaluators[component].Add(estimated[component]);
+            covarianceEvaluators[component].Add(original[component], estimated[component]);
+            originalMeanCalculators[component].Add(original[component]);
+          }
+        }
+      }
+      if (estimatedEnumerator.MoveNext() || originalEnumerator.MoveNext())
+        throw new InvalidOperationException("Number of elements in estimated and original series doesn't match.");
+      for (int component = 0; component < dimension; component++) {
+        if (cnt[component] < 2) {
+          alphas[component] = 0;
+          betas[component] = 1;
+        } else {
+          if (estimatedVarianceEvaluators[component].Variance.IsAlmost(0.0))
+            betas[component] = 1;
+          else
+            betas[component] = covarianceEvaluators[component].Covariance / estimatedVarianceEvaluators[component].Variance;
+
+          alphas[component] = originalMeanCalculators[component].Mean - betas[component] * estimatedVarianceEvaluators[component].Mean;
+        }
+      }
+    }
+
+    private static bool IsValidValue(double d) {
+      return !double.IsInfinity(d) && !double.IsNaN(d) && d > -1.0E07 && d < 1.0E07;  // don't consider very large or very small values for scaling
+    }
+  }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Interfaces/IMultiObjectiveSymbolicTimeSeriesPrognosisEvaluator.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Interfaces/IMultiObjectiveSymbolicTimeSeriesPrognosisEvaluator.cs	(revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Interfaces/IMultiObjectiveSymbolicTimeSeriesPrognosisEvaluator.cs	(revision 4235)
@@ -0,0 +1,38 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using System.Collections.Generic;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Symbols;
+using HeuristicLab.Problems.DataAnalysis.Symbolic.Symbols;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Compiler;
+using HeuristicLab.Problems.DataAnalysis.Symbolic;
+using HeuristicLab.Optimization;
+using HeuristicLab.Data;
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Symbolic.Interfaces {
+  public interface IMultiObjectiveSymbolicTimeSeriesPrognosisEvaluator : ISymbolicTimeSeriesPrognosisEvaluator, IMultiObjectiveEvaluator {
+  }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Interfaces/ISingleObjectiveSymbolicTimeSeriesPrognosisEvaluator.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Interfaces/ISingleObjectiveSymbolicTimeSeriesPrognosisEvaluator.cs	(revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Interfaces/ISingleObjectiveSymbolicTimeSeriesPrognosisEvaluator.cs	(revision 4235)
@@ -0,0 +1,39 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using System.Collections.Generic;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Symbols;
+using HeuristicLab.Problems.DataAnalysis.Symbolic.Symbols;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Compiler;
+using HeuristicLab.Problems.DataAnalysis.Symbolic;
+using HeuristicLab.Optimization;
+using HeuristicLab.Data;
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Symbolic.Interfaces {
+  public interface ISingleObjectiveSymbolicTimeSeriesPrognosisEvaluator : ISymbolicTimeSeriesPrognosisEvaluator, ISingleObjectiveEvaluator {
+  }
+
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Interfaces/ISymbolicTimeSeriesExpressionInterpreter.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Interfaces/ISymbolicTimeSeriesExpressionInterpreter.cs	(revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Interfaces/ISymbolicTimeSeriesExpressionInterpreter.cs	(revision 4235)
@@ -0,0 +1,38 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using System.Collections.Generic;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Symbols;
+using HeuristicLab.Problems.DataAnalysis.Symbolic.Symbols;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Compiler;
+using HeuristicLab.Problems.DataAnalysis.Symbolic;
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Symbolic.Interfaces {
+  public interface ISymbolicTimeSeriesExpressionInterpreter : IItem {
+    IEnumerable<double[]> GetSymbolicExpressionTreeValues(SymbolicExpressionTree tree, Dataset dataset, IEnumerable<string> targetVariables, IEnumerable<int> rows, int predictionHorizon);
+    IEnumerable<double[]> GetScaledSymbolicExpressionTreeValues(SymbolicExpressionTree tree, Dataset dataset, IEnumerable<string> targetVariables, IEnumerable<int> rows, int predictionHorizon, double[] beta, double[] alpha);
+  }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Interfaces/ISymbolicTimeSeriesPrognosisEvaluator.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Interfaces/ISymbolicTimeSeriesPrognosisEvaluator.cs	(revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Interfaces/ISymbolicTimeSeriesPrognosisEvaluator.cs	(revision 4235)
@@ -0,0 +1,44 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using System.Collections.Generic;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Symbols;
+using HeuristicLab.Problems.DataAnalysis.Symbolic.Symbols;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Compiler;
+using HeuristicLab.Problems.DataAnalysis.Symbolic;
+using HeuristicLab.Optimization;
+using HeuristicLab.Data;
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Symbolic.Interfaces {
+  public interface ISymbolicTimeSeriesPrognosisEvaluator : IEvaluator {
+    ILookupParameter<SymbolicExpressionTree> TimeSeriesPrognosisModelParameter { get; }
+    ILookupParameter<ISymbolicTimeSeriesExpressionInterpreter> TimeSeriesExpressionInterpreterParameter { get; }
+    ILookupParameter<MultiVariateDataAnalysisProblemData> ProblemDataParameter { get; }
+    IValueLookupParameter<IntValue> PredictionHorizonParameter { get; }
+    IValueLookupParameter<IntValue> SamplesStartParameter { get; }
+    IValueLookupParameter<IntValue> SamplesEndParameter { get; }
+  }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/SingleObjectiveSymbolicTimeSeriesPrognosisProblem.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/SingleObjectiveSymbolicTimeSeriesPrognosisProblem.cs	(revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/SingleObjectiveSymbolicTimeSeriesPrognosisProblem.cs	(revision 4235)
@@ -0,0 +1,174 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using HeuristicLab.Optimization;
+using HeuristicLab.Parameters;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.PluginInfrastructure;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
+using HeuristicLab.Problems.DataAnalysis.Symbolic;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.ArchitectureManipulators;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Manipulators;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Crossovers;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Creators;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Interfaces;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Analyzers;
+using HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Symbolic.Evaluators;
+using HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Symbolic.Analyzers;
+using HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Symbolic.Interfaces;
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Symbolic {
+  [Item("Symbolic Time Series Prognosis Problem", "Represents a symbolic time series prognosis problem.")]
+  [Creatable("Problems")]
+  [StorableClass]
+  public class SingleObjectiveSymbolicTimeSeriesPrognosisProblem : SymbolicTimeSeriesPrognosisProblem, ISingleObjectiveProblem {
+
+    #region Parameter Properties
+    public ValueParameter<ISingleObjectiveSymbolicTimeSeriesPrognosisEvaluator> EvaluatorParameter {
+      get { return (ValueParameter<ISingleObjectiveSymbolicTimeSeriesPrognosisEvaluator>)Parameters["Evaluator"]; }
+    }
+    IParameter IProblem.EvaluatorParameter {
+      get { return EvaluatorParameter; }
+    }
+    public ValueParameter<BoolValue> MaximizationParameter {
+      get { return (ValueParameter<BoolValue>)Parameters["Maximization"]; }
+    }
+    IParameter ISingleObjectiveProblem.MaximizationParameter {
+      get { return MaximizationParameter; }
+    }
+    public OptionalValueParameter<DoubleValue> BestKnownQualityParameter {
+      get { return (OptionalValueParameter<DoubleValue>)Parameters["BestKnownQuality"]; }
+    }
+    IParameter ISingleObjectiveProblem.BestKnownQualityParameter {
+      get { return BestKnownQualityParameter; }
+    }
+
+    #endregion
+
+    #region Properties
+    public ISingleObjectiveSymbolicTimeSeriesPrognosisEvaluator Evaluator {
+      get { return EvaluatorParameter.Value; }
+    }
+    ISingleObjectiveEvaluator ISingleObjectiveProblem.Evaluator {
+      get { return Evaluator; }
+    }
+    IEvaluator IProblem.Evaluator {
+      get { return Evaluator; }
+    }
+    public DoubleValue BestKnownQuality {
+      get { return BestKnownQualityParameter.Value; }
+    }
+    #endregion
+
+    [StorableConstructor]
+    protected SingleObjectiveSymbolicTimeSeriesPrognosisProblem(bool deserializing) : base(deserializing) { }
+    public SingleObjectiveSymbolicTimeSeriesPrognosisProblem()
+      : base() {
+      var evaluator = new SymbolicTimeSeriesPrognosisScaledNormalizedMseEvaluator();
+      Parameters.Add(new ValueParameter<BoolValue>("Maximization", "Set to false as the error of the time series prognosis model should be minimized.", (BoolValue)new BoolValue(false).AsReadOnly()));
+      Parameters.Add(new ValueParameter<ISingleObjectiveSymbolicTimeSeriesPrognosisEvaluator>("Evaluator", "The operator which should be used to evaluate symbolic time series prognosis solutions.", evaluator));
+      Parameters.Add(new OptionalValueParameter<DoubleValue>("BestKnownQuality", "The minimal error value that reached by symbolic time series prognosis solutions for the problem."));
+      evaluator.QualityParameter.ActualName = "TrainingMeanSquaredError";
+
+      ParameterizeEvaluator();
+
+      InitializeOperators();
+      AttachEventHandlers();
+    }
+
+    [StorableHook(HookType.AfterDeserialization)]
+    private void AfterDeserializationHook() {
+      AttachEventHandlers();
+    }
+
+    public override IDeepCloneable Clone(Cloner cloner) {
+      SingleObjectiveSymbolicTimeSeriesPrognosisProblem clone = (SingleObjectiveSymbolicTimeSeriesPrognosisProblem)base.Clone(cloner);
+      clone.AttachEventHandlers();
+      return clone;
+    }
+
+    #region event handling
+    protected override void OnMultiVariateDataAnalysisProblemChanged(EventArgs e) {
+      base.OnMultiVariateDataAnalysisProblemChanged(e);
+      BestKnownQualityParameter.Value = null;
+      // paritions could be changed
+      ParameterizeEvaluator();
+      ParameterizeAnalyzers();
+    }
+
+    protected override void OnSolutionParameterNameChanged(EventArgs e) {
+      ParameterizeEvaluator();
+      ParameterizeAnalyzers();
+    }
+
+    protected virtual void OnEvaluatorChanged(EventArgs e) {
+      ParameterizeEvaluator();
+      ParameterizeAnalyzers();
+      RaiseEvaluatorChanged(e);
+    }
+    #endregion
+
+    #region Helpers
+    private void AttachEventHandlers() {
+    }
+
+    private void InitializeOperators() {
+      AddOperator(new ValidationBestScaledSymbolicTimeSeriesPrognosisSolutionAnalyzer());
+      ParameterizeAnalyzers();
+    }
+
+    private void ParameterizeEvaluator() {
+      Evaluator.TimeSeriesPrognosisModelParameter.ActualName = SolutionCreator.SymbolicExpressionTreeParameter.ActualName;
+      Evaluator.TimeSeriesExpressionInterpreterParameter.ActualName = SymbolicExpressionTreeInterpreterParameter.Name;
+      Evaluator.ProblemDataParameter.ActualName = MultiVariateDataAnalysisProblemDataParameter.Name;
+      Evaluator.PredictionHorizonParameter.ActualName = PredictionHorizonParameter.Name;
+      Evaluator.SamplesStartParameter.Value = TrainingSamplesStart;
+      Evaluator.SamplesEndParameter.Value = TrainingSamplesEnd;
+    }
+
+    private void ParameterizeAnalyzers() {
+      foreach (var analyzer in Analyzers) {
+        var bestValidationSolutionAnalyzer = analyzer as ValidationBestScaledSymbolicTimeSeriesPrognosisSolutionAnalyzer;
+        if (bestValidationSolutionAnalyzer != null) {
+          bestValidationSolutionAnalyzer.ProblemDataParameter.ActualName = MultiVariateDataAnalysisProblemDataParameter.Name;
+          bestValidationSolutionAnalyzer.SymbolicExpressionTreeInterpreterParameter.ActualName = SymbolicExpressionTreeInterpreterParameter.Name;
+          bestValidationSolutionAnalyzer.SymbolicExpressionTreeParameter.ActualName = SolutionCreator.SymbolicExpressionTreeParameter.ActualName;
+          bestValidationSolutionAnalyzer.ValidationSamplesStartParameter.Value = ValidationSamplesStart;
+          bestValidationSolutionAnalyzer.ValidationSamplesEndParameter.Value = ValidationSamplesEnd;
+          bestValidationSolutionAnalyzer.BestKnownQualityParameter.ActualName = BestKnownQualityParameter.Name;
+          bestValidationSolutionAnalyzer.PredictionHorizonParameter.ActualName = PredictionHorizonParameter.Name;
+          bestValidationSolutionAnalyzer.UpperEstimationLimitParameter.ActualName = UpperEstimationLimitParameter.Name;
+          bestValidationSolutionAnalyzer.LowerEstimationLimitParameter.ActualName = LowerEstimationLimitParameter.Name;
+        }
+      }
+      foreach (ISymbolicExpressionTreeAnalyzer analyzer in Operators.OfType<ISymbolicExpressionTreeAnalyzer>()) {
+        analyzer.SymbolicExpressionTreeParameter.ActualName = SolutionCreator.SymbolicExpressionTreeParameter.ActualName;
+      }
+    }
+    #endregion
+  }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/SymbolicTimeSeriesExpressionInterpreter.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/SymbolicTimeSeriesExpressionInterpreter.cs	(revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/SymbolicTimeSeriesExpressionInterpreter.cs	(revision 4235)
@@ -0,0 +1,413 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using System.Collections.Generic;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Symbols;
+using HeuristicLab.Problems.DataAnalysis.Symbolic.Symbols;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Compiler;
+using HeuristicLab.Problems.DataAnalysis.Symbolic;
+using HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Symbolic.Interfaces;
+using HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Symbolic.Symbols;
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis {
+  [StorableClass]
+  [Item("SymbolicTimeSeriesExpressionInterpreter", "Interpreter for symbolic expression trees representing time series forecast models.")]
+  public class SymbolicTimeSeriesExpressionInterpreter : NamedItem, ISymbolicTimeSeriesExpressionInterpreter {
+    private class OpCodes {
+      public const byte Add = 1;
+      public const byte Sub = 2;
+      public const byte Mul = 3;
+      public const byte Div = 4;
+
+      public const byte Sin = 5;
+      public const byte Cos = 6;
+      public const byte Tan = 7;
+
+      public const byte Log = 8;
+      public const byte Exp = 9;
+
+      public const byte IfThenElse = 10;
+
+      public const byte GT = 11;
+      public const byte LT = 12;
+
+      public const byte AND = 13;
+      public const byte OR = 14;
+      public const byte NOT = 15;
+
+
+      public const byte Average = 16;
+
+      public const byte Call = 17;
+
+      public const byte Variable = 18;
+      public const byte LagVariable = 19;
+      public const byte Constant = 20;
+      public const byte Arg = 21;
+      public const byte Differential = 22;
+      public const byte Integral = 23;
+      public const byte MovingAverage = 24;
+    }
+
+    private Dictionary<Type, byte> symbolToOpcode = new Dictionary<Type, byte>() {
+      { typeof(Addition), OpCodes.Add },
+      { typeof(Subtraction), OpCodes.Sub },
+      { typeof(Multiplication), OpCodes.Mul },
+      { typeof(Division), OpCodes.Div },
+      { typeof(Sine), OpCodes.Sin },
+      { typeof(Cosine), OpCodes.Cos },
+      { typeof(Tangent), OpCodes.Tan },
+      { typeof(Logarithm), OpCodes.Log },
+      { typeof(Exponential), OpCodes.Exp },
+      { typeof(IfThenElse), OpCodes.IfThenElse },
+      { typeof(GreaterThan), OpCodes.GT },
+      { typeof(LessThan), OpCodes.LT },
+      { typeof(And), OpCodes.AND },
+      { typeof(Or), OpCodes.OR },
+      { typeof(Not), OpCodes.NOT},
+      { typeof(Average), OpCodes.Average},
+      { typeof(InvokeFunction), OpCodes.Call },
+      { typeof(HeuristicLab.Problems.DataAnalysis.Symbolic.Symbols.Variable), OpCodes.Variable },
+      { typeof(LaggedVariable), OpCodes.LagVariable },
+      { typeof(IntegratedVariable), OpCodes.Integral },
+      { typeof(DerivativeVariable), OpCodes.Differential },
+      { typeof(MovingAverage), OpCodes.MovingAverage },
+      { typeof(Constant), OpCodes.Constant },
+      { typeof(Argument), OpCodes.Arg },
+    };
+    private const int ARGUMENT_STACK_SIZE = 1024;
+
+    private Dataset dataset;
+    private int row;
+    private Instruction[] code;
+    private int pc;
+    private double[] argumentStack = new double[ARGUMENT_STACK_SIZE];
+    private int argStackPointer;
+    private Dictionary<int, double[]> estimatedTargetVariableValues;
+    private int currentPredictionHorizon;
+
+    public override bool CanChangeName {
+      get { return false; }
+    }
+    public override bool CanChangeDescription {
+      get { return false; }
+    }
+
+    public SymbolicTimeSeriesExpressionInterpreter()
+      : base() {
+    }
+    #region ITimeSeriesExpressionInterpreter Members
+
+    public IEnumerable<double[]> GetSymbolicExpressionTreeValues(SymbolicExpressionTree tree, Dataset dataset, IEnumerable<string> targetVariables, IEnumerable<int> rows, int predictionHorizon) {
+      this.dataset = dataset;
+      List<int> targetVariableIndexes = new List<int>();
+      estimatedTargetVariableValues = new Dictionary<int, double[]>();
+      foreach (string targetVariable in targetVariables) {
+        int index = dataset.GetVariableIndex(targetVariable);
+        targetVariableIndexes.Add(index);
+        estimatedTargetVariableValues.Add(index, new double[predictionHorizon]);
+      }
+      var compiler = new SymbolicExpressionTreeCompiler();
+      compiler.AddInstructionPostProcessingHook(PostProcessInstruction);
+      code = compiler.Compile(tree, MapSymbolToOpCode);
+
+      foreach (var row in rows) {
+        ResetVariableValues(dataset, row);
+        for (int step = 0; step < predictionHorizon; step++) {
+          this.row = row + step;
+          this.currentPredictionHorizon = step;
+          pc = 0;
+          argStackPointer = 0;
+          double[] estimatedValues = new double[tree.Root.SubTrees[0].SubTrees.Count];
+          int component = 0;
+          foreach (int targetVariableIndex in targetVariableIndexes) {
+            double estimatedValue = Evaluate();
+            estimatedTargetVariableValues[targetVariableIndex][step] = estimatedValue;
+            estimatedValues[component] = estimatedValue;
+            component++;
+          }
+          yield return estimatedValues;
+        }
+      }
+    }
+
+    public IEnumerable<double[]> GetScaledSymbolicExpressionTreeValues(SymbolicExpressionTree tree, Dataset dataset, IEnumerable<string> targetVariables, IEnumerable<int> rows, int predictionHorizon, double[] beta, double[] alpha) {
+      this.dataset = dataset;
+      List<int> targetVariableIndexes = new List<int>();
+      estimatedTargetVariableValues = new Dictionary<int, double[]>();
+      foreach (string targetVariable in targetVariables) {
+        int index = dataset.GetVariableIndex(targetVariable);
+        targetVariableIndexes.Add(index);
+        estimatedTargetVariableValues.Add(index, new double[predictionHorizon]);
+      }
+      var compiler = new SymbolicExpressionTreeCompiler();
+      compiler.AddInstructionPostProcessingHook(PostProcessInstruction);
+      code = compiler.Compile(tree, MapSymbolToOpCode);
+
+      foreach (var row in rows) {
+        ResetVariableValues(dataset, row);
+        for (int step = 0; step < predictionHorizon; step++) {
+          this.row = row + step;
+          this.currentPredictionHorizon = step;
+          pc = 0;
+          argStackPointer = 0;
+          double[] estimatedValues = new double[tree.Root.SubTrees[0].SubTrees.Count];
+          int component = 0;
+          foreach (int targetVariableIndex in targetVariableIndexes) {
+            double estimatedValue = Evaluate() * beta[component] + alpha[component];
+            estimatedTargetVariableValues[targetVariableIndex][step] = estimatedValue;
+            estimatedValues[component] = estimatedValue;
+            component++;
+          }
+          yield return estimatedValues;
+        }
+      }
+    }
+
+    #endregion
+
+    private void ResetVariableValues(Dataset dataset, int start) {
+      foreach (var pair in estimatedTargetVariableValues) {
+        int targetVariableIndex = pair.Key;
+        double[] values = pair.Value;
+        for (int i = 0; i < values.Length; i++) {
+          values[i] = dataset[start + i, targetVariableIndex];
+        }
+      }
+    }
+
+    private Instruction PostProcessInstruction(Instruction instr) {
+      if (instr.opCode == OpCodes.Variable) {
+        var variableTreeNode = instr.dynamicNode as VariableTreeNode;
+        instr.iArg0 = (ushort)dataset.GetVariableIndex(variableTreeNode.VariableName);
+      } else if (instr.opCode == OpCodes.LagVariable) {
+        var variableTreeNode = instr.dynamicNode as LaggedVariableTreeNode;
+        instr.iArg0 = (ushort)dataset.GetVariableIndex(variableTreeNode.VariableName);
+      }
+      return instr;
+    }
+
+    private byte MapSymbolToOpCode(SymbolicExpressionTreeNode treeNode) {
+      if (symbolToOpcode.ContainsKey(treeNode.Symbol.GetType()))
+        return symbolToOpcode[treeNode.Symbol.GetType()];
+      else
+        throw new NotSupportedException("Symbol: " + treeNode.Symbol);
+    }
+
+    private double Evaluate() {
+      Instruction currentInstr = code[pc++];
+      switch (currentInstr.opCode) {
+        case OpCodes.Add: {
+            double s = Evaluate();
+            for (int i = 1; i < currentInstr.nArguments; i++) {
+              s += Evaluate();
+            }
+            return s;
+          }
+        case OpCodes.Sub: {
+            double s = Evaluate();
+            for (int i = 1; i < currentInstr.nArguments; i++) {
+              s -= Evaluate();
+            }
+            if (currentInstr.nArguments == 1) s = -s;
+            return s;
+          }
+        case OpCodes.Mul: {
+            double p = Evaluate();
+            for (int i = 1; i < currentInstr.nArguments; i++) {
+              p *= Evaluate();
+            }
+            return p;
+          }
+        case OpCodes.Div: {
+            double p = Evaluate();
+            for (int i = 1; i < currentInstr.nArguments; i++) {
+              p /= Evaluate();
+            }
+            if (currentInstr.nArguments == 1) p = 1.0 / p;
+            return p;
+          }
+        case OpCodes.Average: {
+            double sum = Evaluate();
+            for (int i = 1; i < currentInstr.nArguments; i++) {
+              sum += Evaluate();
+            }
+            return sum / currentInstr.nArguments;
+          }
+        case OpCodes.Cos: {
+            return Math.Cos(Evaluate());
+          }
+        case OpCodes.Sin: {
+            return Math.Sin(Evaluate());
+          }
+        case OpCodes.Tan: {
+            return Math.Tan(Evaluate());
+          }
+        case OpCodes.Exp: {
+            return Math.Exp(Evaluate());
+          }
+        case OpCodes.Log: {
+            return Math.Log(Evaluate());
+          }
+        case OpCodes.IfThenElse: {
+            double condition = Evaluate();
+            double result;
+            if (condition > 0.0) {
+              result = Evaluate(); SkipBakedCode();
+            } else {
+              SkipBakedCode(); result = Evaluate();
+            }
+            return result;
+          }
+        case OpCodes.AND: {
+            double result = Evaluate();
+            for (int i = 1; i < currentInstr.nArguments; i++) {
+              if (result <= 0.0) SkipBakedCode();
+              else {
+                result = Evaluate();
+              }
+            }
+            return result <= 0.0 ? -1.0 : 1.0;
+          }
+        case OpCodes.OR: {
+            double result = Evaluate();
+            for (int i = 1; i < currentInstr.nArguments; i++) {
+              if (result > 0.0) SkipBakedCode();
+              else {
+                result = Evaluate();
+              }
+            }
+            return result > 0.0 ? 1.0 : -1.0;
+          }
+        case OpCodes.NOT: {
+            return -Evaluate();
+          }
+        case OpCodes.GT: {
+            double x = Evaluate();
+            double y = Evaluate();
+            if (x > y) return 1.0;
+            else return -1.0;
+          }
+        case OpCodes.LT: {
+            double x = Evaluate();
+            double y = Evaluate();
+            if (x < y) return 1.0;
+            else return -1.0;
+          }
+        case OpCodes.Call: {
+            // evaluate sub-trees
+            // push on argStack in reverse order 
+            for (int i = 0; i < currentInstr.nArguments; i++) {
+              argumentStack[argStackPointer + currentInstr.nArguments - i] = Evaluate();
+            }
+            argStackPointer += currentInstr.nArguments;
+
+            // save the pc
+            int nextPc = pc;
+            // set pc to start of function  
+            pc = currentInstr.iArg0;
+            // evaluate the function
+            double v = Evaluate();
+
+            // decrease the argument stack pointer by the number of arguments pushed
+            // to set the argStackPointer back to the original location
+            argStackPointer -= currentInstr.nArguments;
+
+            // restore the pc => evaluation will continue at point after my subtrees  
+            pc = nextPc;
+            return v;
+          }
+        case OpCodes.Arg: {
+            return argumentStack[argStackPointer - currentInstr.iArg0];
+          }
+        case OpCodes.Variable: {
+            var variableTreeNode = currentInstr.dynamicNode as VariableTreeNode;
+            return dataset[row, currentInstr.iArg0] * variableTreeNode.Weight;
+          }
+        case OpCodes.LagVariable: {
+            var lagVariableTreeNode = currentInstr.dynamicNode as LaggedVariableTreeNode;
+            int actualRow = row + lagVariableTreeNode.Lag;
+            if (actualRow < 0 || actualRow >= dataset.Rows)
+              return double.NaN;
+            return GetVariableValue(currentInstr.iArg0, lagVariableTreeNode.Lag) * lagVariableTreeNode.Weight;
+          }
+        case OpCodes.MovingAverage: {
+            var movingAvgTreeNode = currentInstr.dynamicNode as MovingAverageTreeNode;
+            if (row + movingAvgTreeNode.MinTimeOffset < 0 || row + movingAvgTreeNode.MaxTimeOffset >= dataset.Rows)
+              return double.NaN;
+            double sum = 0.0;
+            for (int relativeRow = movingAvgTreeNode.MinTimeOffset; relativeRow < movingAvgTreeNode.MaxTimeOffset; relativeRow++) {
+              sum += GetVariableValue(currentInstr.iArg0, relativeRow) * movingAvgTreeNode.Weight;
+            }
+            return sum / (movingAvgTreeNode.MaxTimeOffset - movingAvgTreeNode.MinTimeOffset);
+          }
+        case OpCodes.Differential: {
+            var diffTreeNode = currentInstr.dynamicNode as DerivativeVariableTreeNode;
+            if (row + diffTreeNode.Lag - 2 < 0 || row + diffTreeNode.Lag >= dataset.Rows)
+              return double.NaN;
+            double y_0 = GetVariableValue(currentInstr.iArg0, diffTreeNode.Lag) * diffTreeNode.Weight;
+            double y_1 = GetVariableValue(currentInstr.iArg0, diffTreeNode.Lag - 1) * diffTreeNode.Weight;
+            double y_2 = GetVariableValue(currentInstr.iArg0, diffTreeNode.Lag - 2) * diffTreeNode.Weight;
+            return (3 * y_0 - 4 * y_1 + 3 * y_2) / 2;
+          }
+        case OpCodes.Integral: {
+            var integralVarTreeNode = currentInstr.dynamicNode as IntegratedVariableTreeNode;
+            if (row + integralVarTreeNode.MinTimeOffset < 0 || row + integralVarTreeNode.MaxTimeOffset >= dataset.Rows)
+              return double.NaN;
+            double sum = 0;
+            for (int relativeRow = integralVarTreeNode.MinTimeOffset; relativeRow < integralVarTreeNode.MaxTimeOffset; relativeRow++) {
+              sum += GetVariableValue(currentInstr.iArg0, relativeRow) * integralVarTreeNode.Weight;
+            }
+            return sum;
+          }
+        case OpCodes.Constant: {
+            var constTreeNode = currentInstr.dynamicNode as ConstantTreeNode;
+            return constTreeNode.Value;
+          }
+        default: throw new NotSupportedException();
+      }
+    }
+
+    private double GetVariableValue(int variableIndex, int timeoffset) {
+      if (estimatedTargetVariableValues.ContainsKey(variableIndex) &&
+                      currentPredictionHorizon + timeoffset >= 0) {
+        return estimatedTargetVariableValues[variableIndex][currentPredictionHorizon + timeoffset];
+      } else {
+        return dataset[row + timeoffset, variableIndex];
+      }
+    }
+
+    // skips a whole branch
+    protected void SkipBakedCode() {
+      int i = 1;
+      while (i > 0) {
+        i += code[pc++].nArguments;
+        i--;
+      }
+    }
+  }
+}
+
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/SymbolicTimeSeriesPrognosisGrammar.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/SymbolicTimeSeriesPrognosisGrammar.cs	(revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/SymbolicTimeSeriesPrognosisGrammar.cs	(revision 4235)
@@ -0,0 +1,145 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
+using System.Collections.Generic;
+using System;
+using System.Linq;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Symbols;
+using HeuristicLab.Data;
+using HeuristicLab.Problems.DataAnalysis.Symbolic.Symbols;
+using HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Symbolic.Symbols;
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Symbolic {
+  [StorableClass]
+  [Item("SymbolicTimeSeriesPrognosisGrammar", "Represents a grammar for time series prognosis model using all available functions.")]
+  public class SymbolicTimeSeriesPrognosisGrammar : DefaultSymbolicExpressionGrammar {
+    [Storable]
+    private int dimension;
+
+    // for persistence
+    private SymbolicTimeSeriesPrognosisGrammar() : this(1) { }
+
+    public SymbolicTimeSeriesPrognosisGrammar(int dimension)
+      : base() {
+      this.dimension = dimension;
+      Initialize();
+    }
+
+    protected SymbolicTimeSeriesPrognosisGrammar(SymbolicTimeSeriesPrognosisGrammar original)
+      : base(original) {
+      this.dimension = original.dimension;
+    }
+
+    private void Initialize() {
+      var add = new Addition();
+      var sub = new Subtraction();
+      var mul = new Multiplication();
+      var div = new Division();
+      var mean = new Average();
+      var sin = new Sine();
+      var cos = new Cosine();
+      var tan = new Tangent();
+      var log = new Logarithm();
+      var exp = new Exponential();
+      var @if = new IfThenElse();
+      var gt = new GreaterThan();
+      var lt = new LessThan();
+      var and = new And();
+      var or = new Or();
+      var not = new Not();
+      var constant = new Constant();
+      constant.MinValue = -20;
+      constant.MaxValue = 20;
+      var variableSymbol = new HeuristicLab.Problems.DataAnalysis.Symbolic.Symbols.Variable();
+      var laggedVariableSymbol = new HeuristicLab.Problems.DataAnalysis.Symbolic.Symbols.LaggedVariable();
+      var integralVariableSymbol = new IntegratedVariable();
+      var derivedVariableSymbol = new DerivativeVariable();
+      var movingAverageSymbol = new MovingAverage();
+
+      var allSymbols = new List<Symbol>() { add, sub, mul, div, mean, sin, cos, tan, log, exp, 
+        @if, gt, lt, and, or, not, 
+        constant, variableSymbol, laggedVariableSymbol, derivedVariableSymbol, integralVariableSymbol, movingAverageSymbol};
+      var unaryFunctionSymbols = new List<Symbol>() { sin, cos, tan, log, exp, not };
+      var binaryFunctionSymbols = new List<Symbol>() { gt, lt };
+      var functionSymbols = new List<Symbol>() { add, sub, mul, div, mean, and, or };
+      var terminalSymbols = new List<Symbol>() { constant, variableSymbol, laggedVariableSymbol, derivedVariableSymbol, integralVariableSymbol, movingAverageSymbol };
+      foreach (var symb in allSymbols)
+        AddSymbol(symb);
+
+      foreach (var funSymb in functionSymbols) {
+        SetMinSubtreeCount(funSymb, 1);
+        SetMaxSubtreeCount(funSymb, 3);
+      }
+      foreach (var funSymb in unaryFunctionSymbols) {
+        SetMinSubtreeCount(funSymb, 1);
+        SetMaxSubtreeCount(funSymb, 1);
+      }
+      foreach (var funSymb in binaryFunctionSymbols) {
+        SetMinSubtreeCount(funSymb, 2);
+        SetMaxSubtreeCount(funSymb, 2);
+      }
+
+      SetMinSubtreeCount(@if, 3);
+      SetMaxSubtreeCount(@if, 3);
+      foreach (var terminalSymbol in terminalSymbols) {
+        SetMinSubtreeCount(terminalSymbol, 0);
+        SetMaxSubtreeCount(terminalSymbol, 0);
+      }
+
+      SetMinSubtreeCount(StartSymbol, dimension);
+      SetMaxSubtreeCount(StartSymbol, dimension);
+
+      // allow each symbol as child of the start symbol
+      foreach (var symb in allSymbols) {
+        for (int i = 0; i < GetMaxSubtreeCount(StartSymbol); i++)
+          SetAllowedChild(StartSymbol, symb, i);
+      }
+
+      // allow each symbol as child of every other symbol (except for terminals that have maxSubtreeCount == 0)
+      foreach (var parent in allSymbols) {
+        for (int i = 0; i < GetMaxSubtreeCount(parent); i++)
+          foreach (var child in allSymbols) {
+            SetAllowedChild(parent, child, i);
+          }
+      }
+    }
+
+    public void SetResultProducingBranches(int n) {
+      SetMinSubtreeCount(StartSymbol, n);
+      SetMaxSubtreeCount(StartSymbol, n);
+
+      foreach (Symbol s in Symbols) {
+        if (s != StartSymbol)
+          for (int i = 0; i < n; i++) {
+            SetAllowedChild(StartSymbol, s, i);
+          }
+      }
+    }
+
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new SymbolicTimeSeriesPrognosisGrammar(this);
+    }
+  }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/SymbolicTimeSeriesPrognosisProblem.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/SymbolicTimeSeriesPrognosisProblem.cs	(revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/SymbolicTimeSeriesPrognosisProblem.cs	(revision 4235)
@@ -0,0 +1,334 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using HeuristicLab.Optimization;
+using HeuristicLab.Parameters;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.PluginInfrastructure;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
+using HeuristicLab.Problems.DataAnalysis.Symbolic;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.ArchitectureManipulators;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Manipulators;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Crossovers;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Creators;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Interfaces;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Analyzers;
+using HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Symbolic.Interfaces;
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Symbolic {
+  [Item("Symbolic Time Series Prognosis Problem", "Represents a symbolic time series prognosis problem.")]
+  [StorableClass]
+  public class SymbolicTimeSeriesPrognosisProblem : MultiVariateDataAnalysisProblem, IProblem {
+
+    #region Parameter Properties
+    public ValueParameter<SymbolicExpressionTreeCreator> SolutionCreatorParameter {
+      get { return (ValueParameter<SymbolicExpressionTreeCreator>)Parameters["SolutionCreator"]; }
+    }
+    IParameter IProblem.SolutionCreatorParameter {
+      get { return SolutionCreatorParameter; }
+    }
+    public ValueParameter<ISymbolicTimeSeriesExpressionInterpreter> SymbolicExpressionTreeInterpreterParameter {
+      get { return (ValueParameter<ISymbolicTimeSeriesExpressionInterpreter>)Parameters["SymbolicExpressionTreeInterpreter"]; }
+    }
+    public ValueParameter<ISymbolicExpressionGrammar> FunctionTreeGrammarParameter {
+      get { return (ValueParameter<ISymbolicExpressionGrammar>)Parameters["FunctionTreeGrammar"]; }
+    }
+    public ValueParameter<IntValue> MaxExpressionLengthParameter {
+      get { return (ValueParameter<IntValue>)Parameters["MaxExpressionLength"]; }
+    }
+    public ValueParameter<IntValue> MaxExpressionDepthParameter {
+      get { return (ValueParameter<IntValue>)Parameters["MaxExpressionDepth"]; }
+    }
+    public ValueParameter<IntValue> MaxFunctionDefiningBranchesParameter {
+      get { return (ValueParameter<IntValue>)Parameters["MaxFunctionDefiningBranches"]; }
+    }
+    public ValueParameter<IntValue> MaxFunctionArgumentsParameter {
+      get { return (ValueParameter<IntValue>)Parameters["MaxFunctionArguments"]; }
+    }
+    public ValueParameter<IntValue> PredictionHorizonParameter {
+      get { return (ValueParameter<IntValue>)Parameters["PredictionHorizon"]; }
+    }
+    public ValueParameter<DoubleArray> UpperEstimationLimitParameter {
+      get { return (ValueParameter<DoubleArray>)Parameters["UpperEstimationLimit"]; }
+    }
+    public ValueParameter<DoubleArray> LowerEstimationLimitParameter {
+      get { return (ValueParameter<DoubleArray>)Parameters["LowerEstimationLimit"]; }
+    }
+    #endregion
+
+    #region Properties
+    public IntValue MaxExpressionLength {
+      get { return MaxExpressionLengthParameter.Value; }
+      set { MaxExpressionLengthParameter.Value = value; }
+    }
+    public IntValue MaxExpressionDepth {
+      get { return MaxExpressionDepthParameter.Value; }
+      set { MaxExpressionDepthParameter.Value = value; }
+    }
+    public IntValue MaxFunctionDefiningBranches {
+      get { return MaxFunctionDefiningBranchesParameter.Value; }
+      set { MaxFunctionDefiningBranchesParameter.Value = value; }
+    }
+    public IntValue MaxFunctionArguments {
+      get { return MaxFunctionArgumentsParameter.Value; }
+      set { MaxFunctionArgumentsParameter.Value = value; }
+    }
+    public DoubleArray UpperEstimationLimit {
+      get { return UpperEstimationLimitParameter.Value; }
+      set { UpperEstimationLimitParameter.Value = value; }
+    }
+    public DoubleArray LowerEstimationLimit {
+      get { return LowerEstimationLimitParameter.Value; }
+      set { LowerEstimationLimitParameter.Value = value; }
+    }
+    public new SymbolicExpressionTreeCreator SolutionCreator {
+      get { return SolutionCreatorParameter.Value; }
+      set { SolutionCreatorParameter.Value = value; }
+    }
+    ISolutionCreator IProblem.SolutionCreator {
+      get { return SolutionCreatorParameter.Value; }
+    }
+    public ISymbolicTimeSeriesExpressionInterpreter SymbolicExpressionTreeInterpreter {
+      get { return SymbolicExpressionTreeInterpreterParameter.Value; }
+      set { SymbolicExpressionTreeInterpreterParameter.Value = value; }
+    }
+
+    public ISymbolicExpressionGrammar FunctionTreeGrammar {
+      get { return (ISymbolicExpressionGrammar)FunctionTreeGrammarParameter.Value; }
+      set { FunctionTreeGrammarParameter.Value = value; }
+    }
+    public override IEnumerable<IOperator> Operators {
+      get { return operators; }
+    }
+    public IEnumerable<IAnalyzer> Analyzers {
+      get { return operators.OfType<IAnalyzer>(); }
+    }
+    public IntValue TrainingSamplesStart {
+      get { return new IntValue(MultiVariateDataAnalysisProblemData.TrainingSamplesStart.Value); }
+    }
+    public IntValue TrainingSamplesEnd {
+      get {
+        return new IntValue((MultiVariateDataAnalysisProblemData.TrainingSamplesStart.Value +
+          MultiVariateDataAnalysisProblemData.TrainingSamplesEnd.Value) / 2);
+      }
+    }
+    public IntValue ValidationSamplesStart {
+      get { return TrainingSamplesEnd; }
+    }
+    public IntValue ValidationSamplesEnd {
+      get { return new IntValue(MultiVariateDataAnalysisProblemData.TrainingSamplesEnd.Value); }
+    }
+    public IntValue TestSamplesStart {
+      get { return MultiVariateDataAnalysisProblemData.TestSamplesStart; }
+    }
+    public IntValue TestSamplesEnd {
+      get { return MultiVariateDataAnalysisProblemData.TestSamplesEnd; }
+    }
+    public DoubleValue PunishmentFactor {
+      get { return new DoubleValue(10.0); }
+    }
+    #endregion
+
+    [Storable]
+    private SymbolicTimeSeriesPrognosisGrammar grammar;
+    [Storable]
+    private List<IOperator> operators;
+
+    [StorableConstructor]
+    protected SymbolicTimeSeriesPrognosisProblem(bool deserializing) : base(deserializing) { }
+    public SymbolicTimeSeriesPrognosisProblem()
+      : base() {
+      SymbolicExpressionTreeCreator creator = new ProbabilisticTreeCreator();
+      grammar = new SymbolicTimeSeriesPrognosisGrammar(1);
+      var globalGrammar = new GlobalSymbolicExpressionGrammar(grammar);
+      var interpreter = new SymbolicTimeSeriesExpressionInterpreter();
+      Parameters.Add(new ValueParameter<SymbolicExpressionTreeCreator>("SolutionCreator", "The operator which should be used to create new symbolic time series prognosis solutions.", creator));
+      Parameters.Add(new ValueParameter<ISymbolicTimeSeriesExpressionInterpreter>("SymbolicExpressionTreeInterpreter", "The interpreter that should be used to evaluate the symbolic expression tree.", interpreter));
+      Parameters.Add(new ValueParameter<ISymbolicExpressionGrammar>("FunctionTreeGrammar", "The grammar that should be used for symbolic time series prognosis models.", globalGrammar));
+      Parameters.Add(new ValueParameter<IntValue>("MaxExpressionLength", "Maximal length of the symbolic expression.", new IntValue(100)));
+      Parameters.Add(new ValueParameter<IntValue>("MaxExpressionDepth", "Maximal depth of the symbolic expression.", new IntValue(10)));
+      Parameters.Add(new ValueParameter<IntValue>("MaxFunctionDefiningBranches", "Maximal number of automatically defined functions.", (IntValue)new IntValue(0).AsReadOnly()));
+      Parameters.Add(new ValueParameter<IntValue>("MaxFunctionArguments", "Maximal number of arguments of automatically defined functions.", (IntValue)new IntValue(0).AsReadOnly()));
+      Parameters.Add(new ValueParameter<IntValue>("PredictionHorizon", "The number of time steps for which to create a forecast.", new IntValue(1)));
+      Parameters.Add(new ValueParameter<DoubleArray>("UpperEstimationLimit", "The upper limit for the estimated values for each component."));
+      Parameters.Add(new ValueParameter<DoubleArray>("LowerEstimationLimit", "The lower limit for the estimated values for each component."));
+      creator.SymbolicExpressionTreeParameter.ActualName = "SymbolicTimeSeriesPrognosisModel";
+
+      ParameterizeSolutionCreator();
+
+      UpdateGrammar();
+      InitializeOperators();
+      RegisterParameterEvents();
+      RegisterParameterValueEvents();
+    }
+
+    [StorableHook(HookType.AfterDeserialization)]
+    private void AfterDeserializationHook() {
+      // BackwardsCompatibility3.3
+      #region Backwards compatible code (remove with 3.4)
+      if (operators == null) InitializeOperators();
+      #endregion
+      RegisterParameterEvents();
+      RegisterParameterValueEvents();
+    }
+
+    public override IDeepCloneable Clone(Cloner cloner) {
+      SymbolicTimeSeriesPrognosisProblem clone = (SymbolicTimeSeriesPrognosisProblem)base.Clone(cloner);
+      clone.operators = operators.Select(x => (IOperator)cloner.Clone(x)).ToList();
+      clone.grammar = (SymbolicTimeSeriesPrognosisGrammar)cloner.Clone(grammar);
+      clone.RegisterParameterEvents();
+      clone.RegisterParameterValueEvents();
+      return clone;
+    }
+
+    private void RegisterParameterValueEvents() {
+      MaxFunctionArgumentsParameter.ValueChanged += new EventHandler(ArchitectureParameter_ValueChanged);
+      MaxFunctionDefiningBranchesParameter.ValueChanged += new EventHandler(ArchitectureParameter_ValueChanged);
+      SolutionCreatorParameter.ValueChanged += new EventHandler(SolutionCreatorParameter_ValueChanged);
+    }
+
+    private void RegisterParameterEvents() {
+      MaxFunctionArgumentsParameter.Value.ValueChanged += new EventHandler(ArchitectureParameterValue_ValueChanged);
+      MaxFunctionDefiningBranchesParameter.Value.ValueChanged += new EventHandler(ArchitectureParameterValue_ValueChanged);
+      SolutionCreator.SymbolicExpressionTreeParameter.ActualNameChanged += new EventHandler(SolutionCreator_SymbolicExpressionTreeParameter_ActualNameChanged);
+    }
+
+    #region event handling
+    protected override void OnMultiVariateDataAnalysisProblemChanged(EventArgs e) {
+      base.OnMultiVariateDataAnalysisProblemChanged(e);
+      // input variables could have been changed
+      UpdateGrammar();
+      UpdateEstimationLimits();
+    }
+    protected virtual void OnArchitectureParameterChanged(EventArgs e) {
+      UpdateGrammar();
+    }
+    protected virtual void OnGrammarChanged(EventArgs e) { }
+    protected virtual void OnOperatorsChanged(EventArgs e) { RaiseOperatorsChanged(e); }
+    protected virtual void OnSolutionCreatorChanged(EventArgs e) {
+      SolutionCreator.SymbolicExpressionTreeParameter.ActualNameChanged += new EventHandler(SolutionCreator_SymbolicExpressionTreeParameter_ActualNameChanged);
+      ParameterizeSolutionCreator();
+      OnSolutionParameterNameChanged(e);
+      RaiseSolutionCreatorChanged(e);
+    }
+
+    protected virtual void OnSolutionParameterNameChanged(EventArgs e) {
+      ParameterizeOperators();
+    }
+    #endregion
+
+    #region event handlers
+    private void SolutionCreatorParameter_ValueChanged(object sender, EventArgs e) {
+      OnSolutionCreatorChanged(e);
+    }
+    private void SolutionCreator_SymbolicExpressionTreeParameter_ActualNameChanged(object sender, EventArgs e) {
+      OnSolutionParameterNameChanged(e);
+    }
+    private void ArchitectureParameter_ValueChanged(object sender, EventArgs e) {
+      MaxFunctionArgumentsParameter.Value.ValueChanged += new EventHandler(ArchitectureParameterValue_ValueChanged);
+      MaxFunctionDefiningBranchesParameter.Value.ValueChanged += new EventHandler(ArchitectureParameterValue_ValueChanged);
+      OnArchitectureParameterChanged(e);
+    }
+    private void ArchitectureParameterValue_ValueChanged(object sender, EventArgs e) {
+      OnArchitectureParameterChanged(e);
+    }
+    #endregion
+
+    #region Helpers
+    protected void AddOperator(IOperator op) {
+      operators.Add(op);
+    }
+
+    private void UpdateGrammar() {
+      var selectedTargetVariables = MultiVariateDataAnalysisProblemData.TargetVariables.CheckedItems;
+      grammar.SetResultProducingBranches(selectedTargetVariables.Count());
+
+      foreach (var varSymbol in grammar.Symbols.OfType<HeuristicLab.Problems.DataAnalysis.Symbolic.Symbols.Variable>()) {
+        varSymbol.VariableNames = MultiVariateDataAnalysisProblemData.InputVariables.CheckedItems.Select(x => x.Value.Value);
+      }
+
+      var globalGrammar = new GlobalSymbolicExpressionGrammar(grammar);
+      globalGrammar.MaxFunctionArguments = MaxFunctionArguments.Value;
+      globalGrammar.MaxFunctionDefinitions = MaxFunctionDefiningBranches.Value;
+      FunctionTreeGrammar = globalGrammar;
+    }
+    private void UpdateEstimationLimits() {
+      IEnumerable<string> selectedTargetVariables = MultiVariateDataAnalysisProblemData.TargetVariables.CheckedItems.Select(x => x.Value.Value);
+      UpperEstimationLimit = new DoubleArray(selectedTargetVariables.Count());
+      LowerEstimationLimit = new DoubleArray(selectedTargetVariables.Count());
+      int i = 0;
+      foreach (string targetVariable in selectedTargetVariables) {
+        if (TrainingSamplesStart.Value < TrainingSamplesEnd.Value) {
+          var targetValues = MultiVariateDataAnalysisProblemData.Dataset.GetVariableValues(targetVariable, TrainingSamplesStart.Value, TrainingSamplesEnd.Value);
+          var mean = targetValues.Average();
+          var range = targetValues.Max() - targetValues.Min();
+          UpperEstimationLimit[i] = mean + PunishmentFactor.Value * range;
+          LowerEstimationLimit[i] = mean - PunishmentFactor.Value * range;
+        } else {
+          UpperEstimationLimit[i] = 0;
+          LowerEstimationLimit[i] = 0;
+        }
+        i++;
+      }
+    }
+
+    private void InitializeOperators() {
+      operators = new List<IOperator>();
+      operators.AddRange(ApplicationManager.Manager.GetInstances<ISymbolicExpressionTreeOperator>().OfType<IOperator>());
+      operators.Add(new MinAverageMaxSymbolicExpressionTreeSizeAnalyzer());
+      ParameterizeOperators();
+    }
+
+    private void ParameterizeSolutionCreator() {
+      SolutionCreator.SymbolicExpressionGrammarParameter.ActualName = FunctionTreeGrammarParameter.Name;
+      SolutionCreator.MaxTreeHeightParameter.ActualName = MaxExpressionDepthParameter.Name;
+      SolutionCreator.MaxTreeSizeParameter.ActualName = MaxExpressionLengthParameter.Name;
+      SolutionCreator.MaxFunctionArgumentsParameter.ActualName = MaxFunctionArgumentsParameter.Name;
+      SolutionCreator.MaxFunctionDefinitionsParameter.ActualName = MaxFunctionDefiningBranchesParameter.Name;
+    }
+
+    private void ParameterizeOperators() {
+      foreach (ISymbolicExpressionTreeOperator op in Operators.OfType<ISymbolicExpressionTreeOperator>()) {
+        op.MaxTreeHeightParameter.ActualName = MaxExpressionDepthParameter.Name;
+        op.MaxTreeSizeParameter.ActualName = MaxExpressionLengthParameter.Name;
+        op.SymbolicExpressionGrammarParameter.ActualName = FunctionTreeGrammarParameter.Name;
+      }
+      foreach (ISymbolicExpressionTreeCrossover op in Operators.OfType<ISymbolicExpressionTreeCrossover>()) {
+        op.ParentsParameter.ActualName = SolutionCreator.SymbolicExpressionTreeParameter.ActualName;
+        op.ChildParameter.ActualName = SolutionCreator.SymbolicExpressionTreeParameter.ActualName;
+      }
+      foreach (ISymbolicExpressionTreeManipulator op in Operators.OfType<ISymbolicExpressionTreeManipulator>()) {
+        op.SymbolicExpressionTreeParameter.ActualName = SolutionCreator.SymbolicExpressionTreeParameter.ActualName;
+      }
+      foreach (ISymbolicExpressionTreeArchitectureManipulator op in Operators.OfType<ISymbolicExpressionTreeArchitectureManipulator>()) {
+        op.MaxFunctionArgumentsParameter.ActualName = MaxFunctionArgumentsParameter.Name;
+        op.MaxFunctionDefinitionsParameter.ActualName = MaxFunctionDefiningBranchesParameter.Name;
+      }
+    }
+    #endregion
+  }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Symbols/DerivativeVariable.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Symbols/DerivativeVariable.cs	(revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Symbols/DerivativeVariable.cs	(revision 4235)
@@ -0,0 +1,65 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Operators;
+using HeuristicLab.Random;
+using HeuristicLab.Data;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Parameters;
+using System.Collections.Generic;
+using System;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Symbols;
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Symbolic.Symbols {
+  [StorableClass]
+  [Item("DerivativeVariable", "Represents an differentiated variable value with a time offset.")]
+  public sealed class DerivativeVariable : HeuristicLab.Problems.DataAnalysis.Symbolic.Symbols.Variable {
+    [Storable]
+    private int minLag;
+    public int MinLag {
+      get { return minLag; }
+      set { minLag = value; }
+    }
+    [Storable]
+    private int maxLag;
+    public int MaxLag {
+      get { return maxLag; }
+      set { maxLag = value; }
+    }
+    public DerivativeVariable()
+      : base("DerivativeVariable", "Represents an differentiated variable value with a time offset.") {
+      minLag = -1; maxLag = -1;
+    }
+
+    public override SymbolicExpressionTreeNode CreateTreeNode() {
+      return new DerivativeVariableTreeNode(this);
+    }
+
+    public override IDeepCloneable Clone(Cloner cloner) {
+      DerivativeVariable clone = (DerivativeVariable)base.Clone(cloner);
+      clone.minLag = minLag;
+      clone.maxLag = maxLag;
+      return clone;
+    }
+  }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Symbols/DerivativeVariableTreeNode.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Symbols/DerivativeVariableTreeNode.cs	(revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Symbols/DerivativeVariableTreeNode.cs	(revision 4235)
@@ -0,0 +1,80 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
+using System;
+using System.Collections.Generic;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using HeuristicLab.Random;
+using HeuristicLab.Problems.DataAnalysis.Symbolic.Symbols;
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Symbolic.Symbols {
+  [StorableClass]
+  public sealed class DerivativeVariableTreeNode : VariableTreeNode {
+    public new DerivativeVariable Symbol {
+      get { return (DerivativeVariable)base.Symbol; }
+    }
+    [Storable]
+    private int lag;
+    public int Lag {
+      get { return lag; }
+      set { lag = value; }
+    }
+
+    private DerivativeVariableTreeNode() { }
+
+    // copy constructor
+    private DerivativeVariableTreeNode(DerivativeVariableTreeNode original)
+      : base(original) {
+      lag = original.lag;
+    }
+
+    public DerivativeVariableTreeNode(DerivativeVariable derivedVariableSymbol) : base(derivedVariableSymbol) { }
+
+    public override bool HasLocalParameters {
+      get {
+        return true;
+      }
+    }
+
+    public override void ResetLocalParameters(IRandom random) {
+      base.ResetLocalParameters(random);
+      lag = random.Next(Symbol.MinLag, Symbol.MaxLag + 1);
+    }
+
+    public override void ShakeLocalParameters(IRandom random, double shakingFactor) {
+      base.ShakeLocalParameters(random, shakingFactor);
+      lag = Math.Min(Symbol.MaxLag, Math.Max(Symbol.MinLag, lag + random.Next(-1, 2)));
+    }
+
+
+    public override object Clone() {
+      return new DerivativeVariableTreeNode(this);
+    }
+
+    public override string ToString() {
+      return Weight.ToString("E4") + " d(" + VariableName +
+        ")(t" + (lag > 0 ? "+" : "") + lag + ")";
+    }
+  }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Symbols/IntegratedVariable.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Symbols/IntegratedVariable.cs	(revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Symbols/IntegratedVariable.cs	(revision 4235)
@@ -0,0 +1,65 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Operators;
+using HeuristicLab.Random;
+using HeuristicLab.Data;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Parameters;
+using System.Collections.Generic;
+using System;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Symbols;
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Symbolic.Symbols {
+  [StorableClass]
+  [Item("IntegratedVariable", "Represents an integrated variable value with a time offset.")]
+  public sealed class IntegratedVariable : HeuristicLab.Problems.DataAnalysis.Symbolic.Symbols.Variable {
+    [Storable]
+    private int minLag;
+    public int MinLag {
+      get { return minLag; }
+      set { minLag = value; }
+    }
+    [Storable]
+    private int maxLag;
+    public int MaxLag {
+      get { return maxLag; }
+      set { maxLag = value; }
+    }
+    public IntegratedVariable()
+      : base("IntegratedVariable", "Represents an integrated variable value with a time offset.") {
+      minLag = -1; maxLag = -1;
+    }
+
+    public override SymbolicExpressionTreeNode CreateTreeNode() {
+      return new IntegratedVariableTreeNode(this);
+    }
+
+    public override IDeepCloneable Clone(Cloner cloner) {
+      IntegratedVariable clone = (IntegratedVariable)base.Clone(cloner);
+      clone.minLag = minLag;
+      clone.maxLag = maxLag;
+      return clone;
+    }
+  }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Symbols/IntegratedVariableTreeNode.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Symbols/IntegratedVariableTreeNode.cs	(revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Symbols/IntegratedVariableTreeNode.cs	(revision 4235)
@@ -0,0 +1,90 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
+using System;
+using System.Collections.Generic;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using HeuristicLab.Random;
+using HeuristicLab.Problems.DataAnalysis.Symbolic.Symbols;
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Symbolic.Symbols {
+  [StorableClass]
+  public sealed class IntegratedVariableTreeNode : VariableTreeNode {
+    public new IntegratedVariable Symbol {
+      get { return (IntegratedVariable)base.Symbol; }
+    }
+    [Storable]
+    private int minTimeOffset;
+    public int MinTimeOffset {
+      get { return minTimeOffset; }
+      set { minTimeOffset = value; }
+    }
+
+    [Storable]
+    private int maxTimeOffset;
+    public int MaxTimeOffset {
+      get { return maxTimeOffset; }
+      set { maxTimeOffset = value; }
+    }
+
+    private IntegratedVariableTreeNode() { }
+
+    // copy constructor
+    private IntegratedVariableTreeNode(IntegratedVariableTreeNode original)
+      : base(original) {
+      minTimeOffset = original.minTimeOffset;
+      maxTimeOffset = original.maxTimeOffset;
+    }
+
+    public IntegratedVariableTreeNode(IntegratedVariable integralVarSymbol) : base(integralVarSymbol) { }
+
+    public override bool HasLocalParameters {
+      get {
+        return true;
+      }
+    }
+
+    public override void ResetLocalParameters(IRandom random) {
+      base.ResetLocalParameters(random);
+      minTimeOffset = random.Next(Symbol.MinLag, Symbol.MaxLag + 1);
+      maxTimeOffset = random.Next(minTimeOffset, Symbol.MaxLag + 1);
+    }
+
+    public override void ShakeLocalParameters(IRandom random, double shakingFactor) {
+      base.ShakeLocalParameters(random, shakingFactor);
+      minTimeOffset = Math.Min(Symbol.MaxLag, Math.Max(Symbol.MinLag, minTimeOffset + random.Next(-1, 2)));
+      maxTimeOffset = Math.Min(Symbol.MaxLag, Math.Max(minTimeOffset, maxTimeOffset + random.Next(-1, 2)));
+    }
+
+
+    public override object Clone() {
+      return new IntegratedVariableTreeNode(this);
+    }
+
+    public override string ToString() {
+      return Weight.ToString("E4") + " I(" + VariableName +
+        ", " + minTimeOffset + ", " + maxTimeOffset + ")";
+    }
+  }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Symbols/MovingAverage.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Symbols/MovingAverage.cs	(revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Symbols/MovingAverage.cs	(revision 4235)
@@ -0,0 +1,65 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Operators;
+using HeuristicLab.Random;
+using HeuristicLab.Data;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Parameters;
+using System.Collections.Generic;
+using System;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Symbols;
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Symbolic.Symbols {
+  [StorableClass]
+  [Item("MovingAverage", "Represents a moving average of a variable value with a time offset.")]
+  public sealed class MovingAverage : HeuristicLab.Problems.DataAnalysis.Symbolic.Symbols.Variable {
+    [Storable]
+    private int minLag;
+    public int MinLag {
+      get { return minLag; }
+      set { minLag = value; }
+    }
+    [Storable]
+    private int maxLag;
+    public int MaxLag {
+      get { return maxLag; }
+      set { maxLag = value; }
+    }
+    public MovingAverage()
+      : base("MovingAverage", "Represents a moving average of a variable value with a time offset.") {
+      minLag = -1; maxLag = -1;
+    }
+
+    public override SymbolicExpressionTreeNode CreateTreeNode() {
+      return new MovingAverageTreeNode(this);
+    }
+
+    public override IDeepCloneable Clone(Cloner cloner) {
+      MovingAverage clone = (MovingAverage)base.Clone(cloner);
+      clone.minLag = minLag;
+      clone.maxLag = maxLag;
+      return clone;
+    }
+  }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Symbols/MovingAverageTreeNode.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Symbols/MovingAverageTreeNode.cs	(revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Symbols/MovingAverageTreeNode.cs	(revision 4235)
@@ -0,0 +1,90 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
+using System;
+using System.Collections.Generic;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using HeuristicLab.Random;
+using HeuristicLab.Problems.DataAnalysis.Symbolic.Symbols;
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Symbolic.Symbols {
+  [StorableClass]
+  public sealed class MovingAverageTreeNode : VariableTreeNode {
+    public new MovingAverage Symbol {
+      get { return (MovingAverage)base.Symbol; }
+    }
+    [Storable]
+    private int minTimeOffset;
+    public int MinTimeOffset {
+      get { return minTimeOffset; }
+      set { minTimeOffset = value; }
+    }
+
+    [Storable]
+    private int maxTimeOffset;
+    public int MaxTimeOffset {
+      get { return maxTimeOffset; }
+      set { maxTimeOffset = value; }
+    }
+
+    private MovingAverageTreeNode() { }
+
+    // copy constructor
+    private MovingAverageTreeNode(MovingAverageTreeNode original)
+      : base(original) {
+      minTimeOffset = original.minTimeOffset;
+      maxTimeOffset = original.maxTimeOffset;
+    }
+
+    public MovingAverageTreeNode(MovingAverage maSymbol) : base(maSymbol) { }
+
+    public override bool HasLocalParameters {
+      get {
+        return true;
+      }
+    }
+
+    public override void ResetLocalParameters(IRandom random) {
+      base.ResetLocalParameters(random);
+      minTimeOffset = random.Next(Symbol.MinLag, Symbol.MaxLag + 1);
+      maxTimeOffset = random.Next(minTimeOffset, Symbol.MaxLag + 1);
+    }
+
+    public override void ShakeLocalParameters(IRandom random, double shakingFactor) {
+      base.ShakeLocalParameters(random, shakingFactor);
+      minTimeOffset = Math.Min(Symbol.MaxLag, Math.Max(Symbol.MinLag, minTimeOffset + random.Next(-1, 2)));
+      maxTimeOffset = Math.Min(Symbol.MaxLag, Math.Max(minTimeOffset, maxTimeOffset + random.Next(-1, 2)));
+    }
+
+
+    public override object Clone() {
+      return new MovingAverageTreeNode(this);
+    }
+
+    public override string ToString() {
+      return Weight.ToString("E4") + " MA(" + VariableName +
+        ", " + minTimeOffset + ", " + maxTimeOffset + ")";
+    }
+  }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.Views/3.3/HeuristicLab.Problems.DataAnalysis.MultiVariate.Views-3.3.csproj
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.Views/3.3/HeuristicLab.Problems.DataAnalysis.MultiVariate.Views-3.3.csproj	(revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.Views/3.3/HeuristicLab.Problems.DataAnalysis.MultiVariate.Views-3.3.csproj	(revision 4235)
@@ -0,0 +1,194 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>9.0.30729</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{9B6EA19A-F894-4E00-B5A3-970514284772}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>HeuristicLab.Problems.DataAnalysis.MultiVariate.Views</RootNamespace>
+    <AssemblyName>HeuristicLab.Problems.DataAnalysis.MultiVariate.Views-3.3</AssemblyName>
+    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+    <SignAssembly>true</SignAssembly>
+    <AssemblyOriginatorKeyFile>HeuristicLab.snk</AssemblyOriginatorKeyFile>
+    <FileUpgradeFlags>
+    </FileUpgradeFlags>
+    <OldToolsVersion>3.5</OldToolsVersion>
+    <UpgradeBackupLocation />
+    <PublishUrl>publish\</PublishUrl>
+    <Install>true</Install>
+    <InstallFrom>Disk</InstallFrom>
+    <UpdateEnabled>false</UpdateEnabled>
+    <UpdateMode>Foreground</UpdateMode>
+    <UpdateInterval>7</UpdateInterval>
+    <UpdateIntervalUnits>Days</UpdateIntervalUnits>
+    <UpdatePeriodically>false</UpdatePeriodically>
+    <UpdateRequired>false</UpdateRequired>
+    <MapFileExtensions>true</MapFileExtensions>
+    <ApplicationRevision>0</ApplicationRevision>
+    <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
+    <IsWebBootstrapper>false</IsWebBootstrapper>
+    <UseApplicationTrust>false</UseApplicationTrust>
+    <BootstrapperEnabled>true</BootstrapperEnabled>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' ">
+    <DebugSymbols>true</DebugSymbols>
+    <OutputPath>bin\x64\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <DebugType>full</DebugType>
+    <PlatformTarget>x64</PlatformTarget>
+    <ErrorReport>prompt</ErrorReport>
+    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' ">
+    <OutputPath>bin\x64\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <Optimize>true</Optimize>
+    <DebugType>pdbonly</DebugType>
+    <PlatformTarget>x64</PlatformTarget>
+    <ErrorReport>prompt</ErrorReport>
+    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
+    <DebugSymbols>true</DebugSymbols>
+    <OutputPath>bin\x86\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <DebugType>full</DebugType>
+    <PlatformTarget>x86</PlatformTarget>
+    <ErrorReport>prompt</ErrorReport>
+    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
+    <OutputPath>bin\x86\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <Optimize>true</Optimize>
+    <DebugType>pdbonly</DebugType>
+    <PlatformTarget>x86</PlatformTarget>
+    <ErrorReport>prompt</ErrorReport>
+    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="System.Core">
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="System.Drawing" />
+    <Reference Include="System.Windows.Forms" />
+    <Reference Include="System.Windows.Forms.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" />
+    <Reference Include="System.Xml.Linq">
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="System.Data.DataSetExtensions">
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="System.Data" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="HeuristicLab.snk" />
+    <None Include="HeuristicLabProblemsDataAnalysisMultiVariateViewsPlugin.cs.frame" />
+    <None Include="Properties\AssemblyInfo.frame" />
+    <Compile Include="HeuristicLabProblemsDataAnalysisMultiVariateViewsPlugin.cs" />
+    <Compile Include="MultiVariateDataAnalysisProblemDataView.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="MultiVariateDataAnalysisProblemDataView.Designer.cs">
+      <DependentUpon>MultiVariateDataAnalysisProblemDataView.cs</DependentUpon>
+    </Compile>
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\..\HeuristicLab.Common\3.3\HeuristicLab.Common-3.3.csproj">
+      <Project>{A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}</Project>
+      <Name>HeuristicLab.Common-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Core.Views\3.3\HeuristicLab.Core.Views-3.3.csproj">
+      <Project>{E226881D-315F-423D-B419-A766FE0D8685}</Project>
+      <Name>HeuristicLab.Core.Views-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Core\3.3\HeuristicLab.Core-3.3.csproj">
+      <Project>{C36BD924-A541-4A00-AFA8-41701378DDC5}</Project>
+      <Name>HeuristicLab.Core-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Data.Views\3.3\HeuristicLab.Data.Views-3.3.csproj">
+      <Project>{72104A0B-90E7-42F3-9ABE-9BBBADD4B943}</Project>
+      <Name>HeuristicLab.Data.Views-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.MainForm.WindowsForms\3.3\HeuristicLab.MainForm.WindowsForms-3.3.csproj">
+      <Project>{AB687BBE-1BFE-476B-906D-44237135431D}</Project>
+      <Name>HeuristicLab.MainForm.WindowsForms-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.MainForm\3.3\HeuristicLab.MainForm-3.3.csproj">
+      <Project>{3BD61258-31DA-4B09-89C0-4F71FEF5F05A}</Project>
+      <Name>HeuristicLab.MainForm-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Persistence\3.3\HeuristicLab.Persistence-3.3.csproj">
+      <Project>{102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}</Project>
+      <Name>HeuristicLab.Persistence-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.PluginInfrastructure\3.3\HeuristicLab.PluginInfrastructure-3.3.csproj">
+      <Project>{94186A6A-5176-4402-AE83-886557B53CCA}</Project>
+      <Name>HeuristicLab.PluginInfrastructure-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Problems.DataAnalysis.MultiVariate\3.3\HeuristicLab.Problems.DataAnalysis.MultiVariate-3.3.csproj">
+      <Project>{2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}</Project>
+      <Name>HeuristicLab.Problems.DataAnalysis.MultiVariate-3.3</Name>
+    </ProjectReference>
+  </ItemGroup>
+  <ItemGroup>
+    <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+      <Visible>False</Visible>
+      <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
+      <Install>false</Install>
+    </BootstrapperPackage>
+    <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+      <Visible>False</Visible>
+      <ProductName>.NET Framework 3.5 SP1</ProductName>
+      <Install>true</Install>
+    </BootstrapperPackage>
+    <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
+      <Visible>False</Visible>
+      <ProductName>Windows Installer 3.1</ProductName>
+      <Install>true</Install>
+    </BootstrapperPackage>
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+  <PropertyGroup>
+    <PreBuildEvent>set Path=%25Path%25;$(ProjectDir);$(SolutionDir)
+set ProjectDir=$(ProjectDir)
+set SolutionDir=$(SolutionDir)
+set Outdir=$(Outdir)
+
+call PreBuildEvent.cmd
+SubWCRev "%25ProjectDir%25\" "%25ProjectDir%25\HeuristicLabProblemsDataAnalysisMultiVariateViewsPlugin.cs.frame" "%25ProjectDir%25\HeuristicLabProblemsDataAnalysisMultiVariateViewsPlugin.cs"</PreBuildEvent>
+  </PropertyGroup>
+</Project>
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.Views/3.3/HeuristicLabProblemsDataAnalysisMultiVariateViewsPlugin.cs.frame
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.Views/3.3/HeuristicLabProblemsDataAnalysisMultiVariateViewsPlugin.cs.frame	(revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.Views/3.3/HeuristicLabProblemsDataAnalysisMultiVariateViewsPlugin.cs.frame	(revision 4235)
@@ -0,0 +1,40 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Text;
+using HeuristicLab.PluginInfrastructure;
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.Views {
+  [Plugin("HeuristicLab.Problems.DataAnalysis.MultiVariate.Views","3.3.0.$WCREV$")]
+  [PluginFile("HeuristicLab.Problems.DataAnalysis.MultiVariate.Views-3.3.dll", PluginFileType.Assembly)]
+  [PluginDependency("HeuristicLab.Common", "3.3")]
+  [PluginDependency("HeuristicLab.Core", "3.3")]
+  [PluginDependency("HeuristicLab.Core.Views", "3.3")]
+  [PluginDependency("HeuristicLab.Data.Views", "3.3")]
+  [PluginDependency("HeuristicLab.MainForm", "3.3")]
+  [PluginDependency("HeuristicLab.MainForm.WindowsForms", "3.3")]
+  [PluginDependency("HeuristicLab.Persistence", "3.3")]
+  [PluginDependency("HeuristicLab.Problems.DataAnalysis.MultiVariate", "3.3")]
+  public class HeuristicLabProblemsDataAnalysisMultiVariateViewsPlugin : PluginBase {
+  }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.Views/3.3/MultiVariateDataAnalysisProblemDataView.Designer.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.Views/3.3/MultiVariateDataAnalysisProblemDataView.Designer.cs	(revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.Views/3.3/MultiVariateDataAnalysisProblemDataView.Designer.cs	(revision 4235)
@@ -0,0 +1,100 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.Views {
+  partial class MultiVariateDataAnalysisProblemDataView {
+    /// <summary> 
+    /// Required designer variable.
+    /// </summary>
+    private System.ComponentModel.IContainer components = null;
+
+    /// <summary> 
+    /// Clean up any resources being used.
+    /// </summary>
+    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+    protected override void Dispose(bool disposing) {
+      if (disposing && (components != null)) {
+        components.Dispose();
+      }
+      base.Dispose(disposing);
+    }
+
+    #region Component Designer generated code
+
+    /// <summary> 
+    /// Required method for Designer support - do not modify 
+    /// the contents of this method with the code editor.
+    /// </summary>
+    private void InitializeComponent() {
+      this.importButton = new System.Windows.Forms.Button();
+      ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit();
+      this.SuspendLayout();
+      // 
+      // parameterCollectionView
+      // 
+      this.parameterCollectionView.Size = new System.Drawing.Size(585, 366);
+      // 
+      // nameTextBox
+      // 
+      this.errorProvider.SetIconAlignment(this.nameTextBox, System.Windows.Forms.ErrorIconAlignment.MiddleLeft);
+      this.errorProvider.SetIconPadding(this.nameTextBox, 2);
+      this.nameTextBox.Size = new System.Drawing.Size(513, 20);
+      // 
+      // descriptionTextBox
+      // 
+      this.descriptionTextBox.Size = new System.Drawing.Size(513, 20);
+      // 
+      // importButton
+      // 
+      this.importButton.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
+                  | System.Windows.Forms.AnchorStyles.Right)));
+      this.importButton.Location = new System.Drawing.Point(6, 424);
+      this.importButton.Name = "importButton";
+      this.importButton.Size = new System.Drawing.Size(579, 23);
+      this.importButton.TabIndex = 4;
+      this.importButton.Text = "Import from CSV file";
+      this.importButton.UseVisualStyleBackColor = true;
+      this.importButton.Click += new System.EventHandler(this.importButton_Click);
+      // 
+      // DataAnalysisProblemDataView
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.Controls.Add(this.importButton);
+      this.Name = "DataAnalysisProblemDataView";
+      this.Size = new System.Drawing.Size(588, 450);
+      this.Controls.SetChildIndex(this.parameterCollectionView, 0);
+      this.Controls.SetChildIndex(this.importButton, 0);
+      this.Controls.SetChildIndex(this.nameLabel, 0);
+      this.Controls.SetChildIndex(this.descriptionLabel, 0);
+      this.Controls.SetChildIndex(this.nameTextBox, 0);
+      this.Controls.SetChildIndex(this.descriptionTextBox, 0);
+      ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit();
+      this.ResumeLayout(false);
+      this.PerformLayout();
+
+    }
+
+    #endregion
+
+    private System.Windows.Forms.Button importButton;
+  }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.Views/3.3/MultiVariateDataAnalysisProblemDataView.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.Views/3.3/MultiVariateDataAnalysisProblemDataView.cs	(revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.Views/3.3/MultiVariateDataAnalysisProblemDataView.cs	(revision 4235)
@@ -0,0 +1,57 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Windows.Forms;
+using HeuristicLab.Core.Views;
+using HeuristicLab.MainForm;
+using HeuristicLab.PluginInfrastructure;
+using HeuristicLab.Problems.DataAnalysis.MultiVariate;
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.Views {
+  [View("Multi-Variate Data-Analysis Problem View")]
+  [Content(typeof(MultiVariateDataAnalysisProblemData), true)]
+  public partial class MultiVariateDataAnalysisProblemDataView : ParameterizedNamedItemView {
+    private OpenFileDialog openFileDialog;
+    public new MultiVariateDataAnalysisProblemData Content {
+      get { return (MultiVariateDataAnalysisProblemData)base.Content; }
+      set { base.Content = value; }
+    }
+
+    public MultiVariateDataAnalysisProblemDataView() {
+      InitializeComponent();
+    }
+
+    private void importButton_Click(object sender, EventArgs e) {
+      if (openFileDialog == null) openFileDialog = new OpenFileDialog();
+
+      if (openFileDialog.ShowDialog(this) == DialogResult.OK) {
+        try {
+          Content.ImportFromFile(openFileDialog.FileName);
+          importButton.Enabled = false;
+        }
+        catch (Exception ex) {
+          ErrorHandling.ShowErrorDialog(this, ex);
+        }
+      }
+    }
+  }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.Views/3.3/Properties/AssemblyInfo.frame
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.Views/3.3/Properties/AssemblyInfo.frame	(revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.Views/3.3/Properties/AssemblyInfo.frame	(revision 4235)
@@ -0,0 +1,55 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+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("HeuristicLab.Problems.DataAnalysis.MultiVariate.Views")]
+[assembly: AssemblyDescription("Views for HeuristicLab multi variate data analysis problem classes ")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("HeuristicLab")]
+[assembly: AssemblyCopyright("(c) 2002-2010 HEAL")]
+[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("67B13CF0-EB85-4517-BF0A-7765B5EF54F7")]
+
+// 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 Revision and Build Numbers 
+// by using the '*' as shown below:
+[assembly: AssemblyVersion("3.3.0.0")]
+[assembly: AssemblyFileVersion("3.3.0.$WCREV$")]
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate/3.3/HeuristicLab.Problems.DataAnalysis.MultiVariate-3.3.csproj
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate/3.3/HeuristicLab.Problems.DataAnalysis.MultiVariate-3.3.csproj	(revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate/3.3/HeuristicLab.Problems.DataAnalysis.MultiVariate-3.3.csproj	(revision 4235)
@@ -0,0 +1,209 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>9.0.30729</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>HeuristicLab.Problems.DataAnalysis.MultiVariate</RootNamespace>
+    <AssemblyName>HeuristicLab.Problems.DataAnalysis.MultiVariate-3.3</AssemblyName>
+    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+    <SignAssembly>true</SignAssembly>
+    <AssemblyOriginatorKeyFile>HeuristicLab.snk</AssemblyOriginatorKeyFile>
+    <FileUpgradeFlags>
+    </FileUpgradeFlags>
+    <OldToolsVersion>3.5</OldToolsVersion>
+    <UpgradeBackupLocation />
+    <PublishUrl>publish\</PublishUrl>
+    <Install>true</Install>
+    <InstallFrom>Disk</InstallFrom>
+    <UpdateEnabled>false</UpdateEnabled>
+    <UpdateMode>Foreground</UpdateMode>
+    <UpdateInterval>7</UpdateInterval>
+    <UpdateIntervalUnits>Days</UpdateIntervalUnits>
+    <UpdatePeriodically>false</UpdatePeriodically>
+    <UpdateRequired>false</UpdateRequired>
+    <MapFileExtensions>true</MapFileExtensions>
+    <ApplicationRevision>0</ApplicationRevision>
+    <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
+    <IsWebBootstrapper>false</IsWebBootstrapper>
+    <UseApplicationTrust>false</UseApplicationTrust>
+    <BootstrapperEnabled>true</BootstrapperEnabled>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' ">
+    <DebugSymbols>true</DebugSymbols>
+    <OutputPath>bin\x64\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <DebugType>full</DebugType>
+    <PlatformTarget>x64</PlatformTarget>
+    <ErrorReport>prompt</ErrorReport>
+    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' ">
+    <OutputPath>bin\x64\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <Optimize>true</Optimize>
+    <DebugType>pdbonly</DebugType>
+    <PlatformTarget>x64</PlatformTarget>
+    <ErrorReport>prompt</ErrorReport>
+    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
+    <DebugSymbols>true</DebugSymbols>
+    <OutputPath>bin\x86\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <DebugType>full</DebugType>
+    <PlatformTarget>x86</PlatformTarget>
+    <ErrorReport>prompt</ErrorReport>
+    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
+    <OutputPath>bin\x86\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <Optimize>true</Optimize>
+    <DebugType>pdbonly</DebugType>
+    <PlatformTarget>x86</PlatformTarget>
+    <ErrorReport>prompt</ErrorReport>
+    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="System.Core">
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="System.Drawing" />
+    <Reference Include="System.Xml.Linq">
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="System.Data.DataSetExtensions">
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="System.Data" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="HeuristicLab.snk" />
+    <None Include="HeuristicLabProblemsDataAnalysisMultiVariatePlugin.cs.frame" />
+    <None Include="Properties\AssemblyInfo.frame" />
+    <Compile Include="HeuristicLabProblemsDataAnalysisMultiVariatePlugin.cs" />
+    <Compile Include="Interfaces\IMultiVariateDataAnalysisEvaluator.cs" />
+    <Compile Include="Interfaces\IMultiVariateDataAnalysisModel.cs" />
+    <Compile Include="Interfaces\IMultiVariateDataAnalysisSolution.cs" />
+    <Compile Include="Interfaces\IMultiVariateDataAnalysisProblem.cs" />
+    <Compile Include="MultiVariateDataAnalysisProblem.cs" />
+    <Compile Include="MultiVariateDataAnalysisProblemData.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+    <Compile Include="Symbolic\MultiVariateExpressionGrammar.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\..\HeuristicLab.Collections\3.3\HeuristicLab.Collections-3.3.csproj">
+      <Project>{958B43BC-CC5C-4FA2-8628-2B3B01D890B6}</Project>
+      <Name>HeuristicLab.Collections-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Common.Resources\3.3\HeuristicLab.Common.Resources-3.3.csproj">
+      <Project>{0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}</Project>
+      <Name>HeuristicLab.Common.Resources-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Common\3.3\HeuristicLab.Common-3.3.csproj">
+      <Project>{A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}</Project>
+      <Name>HeuristicLab.Common-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Core\3.3\HeuristicLab.Core-3.3.csproj">
+      <Project>{C36BD924-A541-4A00-AFA8-41701378DDC5}</Project>
+      <Name>HeuristicLab.Core-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Data\3.3\HeuristicLab.Data-3.3.csproj">
+      <Project>{BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}</Project>
+      <Name>HeuristicLab.Data-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Encodings.SymbolicExpressionTreeEncoding\3.3\HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.3.csproj">
+      <Project>{125D3006-67F5-48CB-913E-73C0548F17FA}</Project>
+      <Name>HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Operators\3.3\HeuristicLab.Operators-3.3.csproj">
+      <Project>{23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}</Project>
+      <Name>HeuristicLab.Operators-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Optimization\3.3\HeuristicLab.Optimization-3.3.csproj">
+      <Project>{14AB8D24-25BC-400C-A846-4627AA945192}</Project>
+      <Name>HeuristicLab.Optimization-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Parameters\3.3\HeuristicLab.Parameters-3.3.csproj">
+      <Project>{56F9106A-079F-4C61-92F6-86A84C2D84B7}</Project>
+      <Name>HeuristicLab.Parameters-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Persistence\3.3\HeuristicLab.Persistence-3.3.csproj">
+      <Project>{102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}</Project>
+      <Name>HeuristicLab.Persistence-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.PluginInfrastructure\3.3\HeuristicLab.PluginInfrastructure-3.3.csproj">
+      <Project>{94186A6A-5176-4402-AE83-886557B53CCA}</Project>
+      <Name>HeuristicLab.PluginInfrastructure-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Problems.DataAnalysis\3.3\HeuristicLab.Problems.DataAnalysis-3.3.csproj">
+      <Project>{70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}</Project>
+      <Name>HeuristicLab.Problems.DataAnalysis-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Random\3.3\HeuristicLab.Random-3.3.csproj">
+      <Project>{F4539FB6-4708-40C9-BE64-0A1390AEA197}</Project>
+      <Name>HeuristicLab.Random-3.3</Name>
+    </ProjectReference>
+  </ItemGroup>
+  <ItemGroup>
+    <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+      <Visible>False</Visible>
+      <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
+      <Install>false</Install>
+    </BootstrapperPackage>
+    <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+      <Visible>False</Visible>
+      <ProductName>.NET Framework 3.5 SP1</ProductName>
+      <Install>true</Install>
+    </BootstrapperPackage>
+    <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
+      <Visible>False</Visible>
+      <ProductName>Windows Installer 3.1</ProductName>
+      <Install>true</Install>
+    </BootstrapperPackage>
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+  <PropertyGroup>
+    <PreBuildEvent>set Path=%25Path%25;$(ProjectDir);$(SolutionDir)
+set ProjectDir=$(ProjectDir)
+set SolutionDir=$(SolutionDir)
+set Outdir=$(Outdir)
+
+call PreBuildEvent.cmd
+SubWCRev "%25ProjectDir%25\" "%25ProjectDir%25\HeuristicLabProblemsDataAnalysisMultiVariatePlugin.cs.frame" "%25ProjectDir%25\HeuristicLabProblemsDataAnalysisMultiVariatePlugin.cs"</PreBuildEvent>
+  </PropertyGroup>
+</Project>
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate/3.3/HeuristicLabProblemsDataAnalysisMultiVariatePlugin.cs.frame
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate/3.3/HeuristicLabProblemsDataAnalysisMultiVariatePlugin.cs.frame	(revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate/3.3/HeuristicLabProblemsDataAnalysisMultiVariatePlugin.cs.frame	(revision 4235)
@@ -0,0 +1,45 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Text;
+using HeuristicLab.PluginInfrastructure;
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate {
+  [Plugin("HeuristicLab.Problems.DataAnalysis.MultiVariate","3.3.0.$WCREV$")]
+  [PluginFile("HeuristicLab.Problems.DataAnalysis.MultiVariate-3.3.dll", PluginFileType.Assembly)]
+  [PluginDependency("HeuristicLab.Analysis","3.3")]
+  [PluginDependency("HeuristicLab.Collections","3.3")]
+  [PluginDependency("HeuristicLab.Common","3.3")]
+  [PluginDependency("HeuristicLab.Common.Resources","3.3")]
+  [PluginDependency("HeuristicLab.Core","3.3")]
+  [PluginDependency("HeuristicLab.Data","3.3")]
+  [PluginDependency("HeuristicLab.Encodings.SymbolicExpressionTreeEncoding","3.3")]
+  [PluginDependency("HeuristicLab.Operators","3.3")]
+  [PluginDependency("HeuristicLab.Optimization","3.3")]
+  [PluginDependency("HeuristicLab.Parameters","3.3")]
+  [PluginDependency("HeuristicLab.Persistence","3.3")]
+  [PluginDependency("HeuristicLab.Problems.DataAnalysis","3.3")]
+  [PluginDependency("HeuristicLab.Random","3.3")]
+  public class HeuristicLabProblemsDataAnalysisMultiVariatePlugin : PluginBase {
+  }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate/3.3/Interfaces/IMultiVariateDataAnalysisEvaluator.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate/3.3/Interfaces/IMultiVariateDataAnalysisEvaluator.cs	(revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate/3.3/Interfaces/IMultiVariateDataAnalysisEvaluator.cs	(revision 4235)
@@ -0,0 +1,29 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using HeuristicLab.Core;
+using HeuristicLab.Optimization;
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate {
+  public interface IMultiVariateDataAnalysisEvaluator : IEvaluator {
+    ILookupParameter<MultiVariateDataAnalysisProblemData> MultiVariateDataAnalysisProblemDataParameter { get; }
+  }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate/3.3/Interfaces/IMultiVariateDataAnalysisModel.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate/3.3/Interfaces/IMultiVariateDataAnalysisModel.cs	(revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate/3.3/Interfaces/IMultiVariateDataAnalysisModel.cs	(revision 4235)
@@ -0,0 +1,27 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using HeuristicLab.Core;
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate {
+  public interface IMultiVariateDataAnalysisModel : INamedItem {
+  }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate/3.3/Interfaces/IMultiVariateDataAnalysisProblem.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate/3.3/Interfaces/IMultiVariateDataAnalysisProblem.cs	(revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate/3.3/Interfaces/IMultiVariateDataAnalysisProblem.cs	(revision 4235)
@@ -0,0 +1,27 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using HeuristicLab.Optimization;
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate {
+  public interface IMultiVariateDataAnalysisProblem : IProblem {
+  }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate/3.3/Interfaces/IMultiVariateDataAnalysisSolution.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate/3.3/Interfaces/IMultiVariateDataAnalysisSolution.cs	(revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate/3.3/Interfaces/IMultiVariateDataAnalysisSolution.cs	(revision 4235)
@@ -0,0 +1,27 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using HeuristicLab.Core;
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate {
+  public interface IMultiVariateDataAnalysisSolution : INamedItem {
+  }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate/3.3/MultiVariateDataAnalysisProblem.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate/3.3/MultiVariateDataAnalysisProblem.cs	(revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate/3.3/MultiVariateDataAnalysisProblem.cs	(revision 4235)
@@ -0,0 +1,147 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Drawing;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Optimization;
+using HeuristicLab.Parameters;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate {
+  [Item("Multi Variate Data Analysis Problem", "Represents a multi variate data analysis problem.")]
+  [Creatable("Problems")]
+  [StorableClass]
+  public class MultiVariateDataAnalysisProblem : ParameterizedNamedItem, IMultiVariateDataAnalysisProblem {
+    private const string MultiVariateDataAnalysisProblemDataParameterName = "MultiVariateDataAnalysisProblem";
+    public override Image ItemImage {
+      get { return HeuristicLab.Common.Resources.VS2008ImageLibrary.Type; }
+    }
+
+    #region Parameter Properties
+    public ValueParameter<MultiVariateDataAnalysisProblemData> MultiVariateDataAnalysisProblemDataParameter {
+      get { return (ValueParameter<MultiVariateDataAnalysisProblemData>)Parameters[MultiVariateDataAnalysisProblemDataParameterName]; }
+    }
+    #endregion
+    #region properties
+    public MultiVariateDataAnalysisProblemData MultiVariateDataAnalysisProblemData {
+      get { return MultiVariateDataAnalysisProblemDataParameter.Value; }
+    }
+    #endregion
+
+    [StorableConstructor]
+    protected MultiVariateDataAnalysisProblem(bool deserializing) : base(deserializing) { }
+    public MultiVariateDataAnalysisProblem()
+      : base() {
+      Parameters.Add(new ValueParameter<MultiVariateDataAnalysisProblemData>(MultiVariateDataAnalysisProblemDataParameterName, "The data set, target variables and input variables of the multi-variate data analysis problem.", new MultiVariateDataAnalysisProblemData()));
+      RegisterParameterEvents();
+      RegisterParameterValueEvents();
+    }
+
+    [StorableHook(HookType.AfterDeserialization)]
+    private void AfterDeserializationHook() {
+      RegisterParameterEvents();
+      RegisterParameterValueEvents();
+    }
+
+    #region events
+    protected virtual void OnMultiVariateDataAnalysisProblemChanged(EventArgs e) {
+      RaiseReset(e);
+    }
+
+    private void RegisterParameterEvents() {
+      MultiVariateDataAnalysisProblemDataParameter.ValueChanged += new EventHandler(MultiVariateDataAnalysisProblemDataParameter_ValueChanged);
+    }
+
+    private void RegisterParameterValueEvents() {
+      MultiVariateDataAnalysisProblemData.ProblemDataChanged += new EventHandler(MultiVariateDataAnalysisProblemData_ProblemDataChanged);
+    }
+
+    private void MultiVariateDataAnalysisProblemDataParameter_ValueChanged(object sender, EventArgs e) {
+      OnMultiVariateDataAnalysisProblemChanged(e);
+    }
+
+    private void MultiVariateDataAnalysisProblemData_ProblemDataChanged(object sender, EventArgs e) {
+      OnMultiVariateDataAnalysisProblemChanged(e);
+    }
+    #endregion
+
+    public override IDeepCloneable Clone(Cloner cloner) {
+      MultiVariateDataAnalysisProblem clone = (MultiVariateDataAnalysisProblem)base.Clone(cloner);
+      clone.RegisterParameterEvents();
+      clone.RegisterParameterValueEvents();
+      return clone;
+    }
+
+    #region IProblem Members
+
+    public virtual IParameter SolutionCreatorParameter {
+      get { return null; }
+    }
+
+    public virtual ISolutionCreator SolutionCreator {
+      get { return null; }
+    }
+
+    public virtual IParameter EvaluatorParameter {
+      get { return null; }
+    }
+
+    public virtual IEvaluator Evaluator {
+      get { return null; }
+    }
+
+    public virtual IEnumerable<IOperator> Operators {
+      get { return new IOperator[0]; }
+    }
+
+    public event EventHandler SolutionCreatorChanged;
+    protected void RaiseSolutionCreatorChanged(EventArgs e) {
+      var changed = SolutionCreatorChanged;
+      if (changed != null)
+        changed(this, e);
+    }
+
+    public event EventHandler EvaluatorChanged;
+    protected void RaiseEvaluatorChanged(EventArgs e) {
+      var changed = EvaluatorChanged;
+      if (changed != null)
+        changed(this, e);
+    }
+
+    public event EventHandler OperatorsChanged;
+    protected void RaiseOperatorsChanged(EventArgs e) {
+      var changed = OperatorsChanged;
+      if (changed != null)
+        changed(this, e);
+    }
+
+    public event EventHandler Reset;
+    protected void RaiseReset(EventArgs e) {
+      var changed = Reset;
+      if (changed != null)
+        changed(this, e);
+    }
+    #endregion
+  }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate/3.3/MultiVariateDataAnalysisProblemData.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate/3.3/MultiVariateDataAnalysisProblemData.cs	(revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate/3.3/MultiVariateDataAnalysisProblemData.cs	(revision 4235)
@@ -0,0 +1,431 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.IO;
+using System.Linq;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using HeuristicLab.Parameters;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate {
+  [Item("MultiVariateDataAnalysisProblemData", "Represents an item containing all data defining a multi-variate data analysis problem.")]
+  [StorableClass]
+  public class MultiVariateDataAnalysisProblemData : ParameterizedNamedItem {
+    private bool suppressEvents = false;
+    #region default data
+    // y0 = x^4 + x^3 + x^2 + x
+    // y1 = -(y0)
+    private static double[,] kozaF1 = new double[,] {
+{2.017885919,   -2.017885919,	-1.449165046},
+{1.30060506,	-1.30060506,	-1.344523885},
+{1.147134798,	-1.147134798,	-1.317989331},
+{0.877182504,	-0.877182504,	-1.266142284},
+{0.852562452,	-0.852562452,	-1.261020794},
+{0.431095788,	-0.431095788,	-1.158793317},
+{0.112586002,	-0.112586002,	-1.050908405},
+{0.04594507,	-0.04594507,	-1.021989402},
+{0.042572879,	-0.042572879,	-1.020438113},
+{-0.074027291,	0.074027291,	-0.959859562},
+{-0.109178553,	0.109178553,	-0.938094706},
+{-0.259721109,	0.259721109,	-0.803635355},
+{-0.272991057,	0.272991057,	-0.387519561},
+{-0.161978191,	0.161978191,	-0.193611001},
+{-0.102489983,	0.102489983,	-0.114215349},
+{-0.01469968,	0.01469968,	-0.014918985},
+{-0.008863365,	0.008863365,	-0.008942626},
+{0.026751057,	-0.026751057,	0.026054094},
+{0.166922436,	-0.166922436,	0.14309643},
+{0.176953808,	-0.176953808,	0.1504144},
+{0.190233418,	-0.190233418,	0.159916534},
+{0.199800708,	-0.199800708,	0.166635331},
+{0.261502822,	-0.261502822,	0.207600348},
+{0.30182879,	-0.30182879,	0.232370249},
+{0.83763905,	-0.83763905,	0.468046718}
+    };
+    #endregion
+    #region parameter properties
+    public IValueParameter<Dataset> DatasetParameter {
+      get { return (IValueParameter<Dataset>)Parameters["Dataset"]; }
+    }
+
+    public IValueParameter<ICheckedItemList<StringValue>> TargetVariablesParameter {
+      get { return (IValueParameter<ICheckedItemList<StringValue>>)Parameters["TargetVariables"]; }
+    }
+
+    public IValueParameter<ICheckedItemList<StringValue>> InputVariablesParameter {
+      get { return (IValueParameter<ICheckedItemList<StringValue>>)Parameters["InputVariables"]; }
+    }
+
+    public IValueParameter<IntValue> TrainingSamplesStartParameter {
+      get { return (IValueParameter<IntValue>)Parameters["TrainingSamplesStart"]; }
+    }
+    public IValueParameter<IntValue> TrainingSamplesEndParameter {
+      get { return (IValueParameter<IntValue>)Parameters["TrainingSamplesEnd"]; }
+    }
+    public IValueParameter<IntValue> TestSamplesStartParameter {
+      get { return (IValueParameter<IntValue>)Parameters["TestSamplesStart"]; }
+    }
+    public IValueParameter<IntValue> TestSamplesEndParameter {
+      get { return (IValueParameter<IntValue>)Parameters["TestSamplesEnd"]; }
+    }
+    #endregion
+
+    #region properties
+    public Dataset Dataset {
+      get { return (Dataset)DatasetParameter.Value; }
+      set {
+        if (value != Dataset) {
+          if (value == null) throw new ArgumentNullException();
+          if (Dataset != null) DeregisterDatasetEventHandlers();
+          DatasetParameter.Value = value;
+        }
+      }
+    }
+    public ICheckedItemList<StringValue> TargetVariables {
+      get { return (ICheckedItemList<StringValue>)TargetVariablesParameter.Value; }
+      set {
+        if (value != TargetVariablesParameter.Value) {
+          if (value == null) throw new ArgumentNullException();
+          if (TargetVariables != null) DeregisterTargetVariablesEventHandlers();
+          TargetVariablesParameter.Value = value;
+        }
+      }
+    }
+    public ICheckedItemList<StringValue> InputVariables {
+      get { return (ICheckedItemList<StringValue>)InputVariablesParameter.Value; }
+      set {
+        if (value != InputVariables) {
+          if (value == null) throw new ArgumentNullException();
+          if (InputVariables != null) DeregisterInputVariablesEventHandlers();
+          InputVariablesParameter.Value = value;
+        }
+      }
+    }
+    public IntValue TrainingSamplesStart {
+      get { return (IntValue)TrainingSamplesStartParameter.Value; }
+      set {
+        if (value != TrainingSamplesStart) {
+          if (value == null) throw new ArgumentNullException();
+          if (TrainingSamplesStart != null) DeregisterValueTypeEventHandlers(TrainingSamplesStart);
+          TrainingSamplesStartParameter.Value = value;
+        }
+      }
+    }
+    public IntValue TrainingSamplesEnd {
+      get { return (IntValue)TrainingSamplesEndParameter.Value; }
+      set {
+        if (value != TrainingSamplesEnd) {
+          if (value == null) throw new ArgumentNullException();
+          if (TrainingSamplesEnd != null) DeregisterValueTypeEventHandlers(TrainingSamplesEnd);
+          TrainingSamplesEndParameter.Value = value;
+        }
+      }
+    }
+    public IntValue TestSamplesStart {
+      get { return (IntValue)TestSamplesStartParameter.Value; }
+      set {
+        if (value != TestSamplesStart) {
+          if (value == null) throw new ArgumentNullException();
+          if (TestSamplesStart != null) DeregisterValueTypeEventHandlers(TestSamplesStart);
+          TestSamplesStartParameter.Value = value;
+        }
+      }
+    }
+    public IntValue TestSamplesEnd {
+      get { return (IntValue)TestSamplesEndParameter.Value; }
+      set {
+        if (value != TestSamplesEnd) {
+          if (value == null) throw new ArgumentNullException();
+          if (TestSamplesEnd != null) DeregisterValueTypeEventHandlers(TestSamplesEnd);
+          TestSamplesEndParameter.Value = value;
+        }
+      }
+    }
+    #endregion
+
+    public MultiVariateDataAnalysisProblemData()
+      : base() {
+      var inputVariables = new CheckedItemList<StringValue>();
+      StringValue inputVariable = new StringValue("x");
+      inputVariables.Add(inputVariable);
+      StringValue targetVariable0 = new StringValue("y0");
+      StringValue targetVariable1 = new StringValue("y1");
+      var targetVariables = new CheckedItemList<StringValue>();
+      targetVariables.Add(targetVariable0);
+      targetVariables.Add(targetVariable1);
+      Parameters.Add(new ValueParameter<Dataset>("Dataset", new Dataset(new string[] { "y0", "y1", "x" }, kozaF1)));
+      Parameters.Add(new ValueParameter<ICheckedItemList<StringValue>>("InputVariables", inputVariables));
+      Parameters.Add(new ValueParameter<ICheckedItemList<StringValue>>("TargetVariables", targetVariables));
+      Parameters.Add(new ValueParameter<IntValue>("TrainingSamplesStart", new IntValue(0)));
+      Parameters.Add(new ValueParameter<IntValue>("TrainingSamplesEnd", new IntValue(15)));
+      Parameters.Add(new ValueParameter<IntValue>("TestSamplesStart", new IntValue(15)));
+      Parameters.Add(new ValueParameter<IntValue>("TestSamplesEnd", new IntValue(25)));
+      RegisterParameterEventHandlers();
+      RegisterParameterValueEventHandlers();
+    }
+
+
+    [StorableConstructor]
+    private MultiVariateDataAnalysisProblemData(bool deserializing) : base() { }
+
+    [StorableHook(HookType.AfterDeserialization)]
+    private void AfterDeserializationHook() {
+      RegisterParameterEventHandlers();
+      RegisterParameterValueEventHandlers();
+    }
+
+    #region events
+    public event EventHandler ProblemDataChanged;
+    protected virtual void OnProblemDataChanged(EventArgs e) {
+      if (!suppressEvents) {
+        var listeners = ProblemDataChanged;
+        if (listeners != null) listeners(this, e);
+      }
+    }
+
+    private void RegisterParameterEventHandlers() {
+      DatasetParameter.ValueChanged += new EventHandler(DatasetParameter_ValueChanged);
+      InputVariablesParameter.ValueChanged += new EventHandler(InputVariablesParameter_ValueChanged);
+      TargetVariablesParameter.ValueChanged += new EventHandler(TargetVariablesParameter_ValueChanged);
+      TrainingSamplesStartParameter.ValueChanged += new EventHandler(TrainingSamplesStartParameter_ValueChanged);
+      TrainingSamplesEndParameter.ValueChanged += new EventHandler(TrainingSamplesEndParameter_ValueChanged);
+      TestSamplesStartParameter.ValueChanged += new EventHandler(TestSamplesStartParameter_ValueChanged);
+      TestSamplesEndParameter.ValueChanged += new EventHandler(TestSamplesEndParameter_ValueChanged);
+    }
+
+    private void RegisterParameterValueEventHandlers() {
+      RegisterDatasetEventHandlers();
+      RegisterInputVariablesEventHandlers();
+      RegisterTargetVariablesEventHandlers();
+      RegisterValueTypeEventHandlers(TrainingSamplesStart);
+      RegisterValueTypeEventHandlers(TrainingSamplesEnd);
+      RegisterValueTypeEventHandlers(TestSamplesStart);
+      RegisterValueTypeEventHandlers(TestSamplesEnd);
+    }
+
+
+    #region parameter value changed event handlers
+    void DatasetParameter_ValueChanged(object sender, EventArgs e) {
+      RegisterDatasetEventHandlers();
+      OnProblemDataChanged(EventArgs.Empty);
+    }
+    void InputVariablesParameter_ValueChanged(object sender, EventArgs e) {
+      RegisterInputVariablesEventHandlers();
+      OnProblemDataChanged(EventArgs.Empty);
+    }
+    void TargetVariablesParameter_ValueChanged(object sender, EventArgs e) {
+      RegisterTargetVariablesEventHandlers();
+      OnProblemDataChanged(EventArgs.Empty);
+    }
+    void TrainingSamplesStartParameter_ValueChanged(object sender, EventArgs e) {
+      RegisterValueTypeEventHandlers(TrainingSamplesStart);
+      OnProblemDataChanged(EventArgs.Empty);
+    }
+    void TrainingSamplesEndParameter_ValueChanged(object sender, EventArgs e) {
+      RegisterValueTypeEventHandlers(TrainingSamplesEnd);
+      OnProblemDataChanged(EventArgs.Empty);
+    }
+    void TestSamplesStartParameter_ValueChanged(object sender, EventArgs e) {
+      RegisterValueTypeEventHandlers(TestSamplesStart);
+      OnProblemDataChanged(EventArgs.Empty);
+    }
+    void TestSamplesEndParameter_ValueChanged(object sender, EventArgs e) {
+      RegisterValueTypeEventHandlers(TestSamplesEnd);
+      OnProblemDataChanged(EventArgs.Empty);
+    }
+    #endregion
+
+
+    private void RegisterDatasetEventHandlers() {
+      Dataset.Reset += new EventHandler(Dataset_Reset);
+      Dataset.ColumnNamesChanged += new EventHandler(Dataset_ColumnNamesChanged);
+    }
+
+    private void DeregisterDatasetEventHandlers() {
+      Dataset.Reset -= new EventHandler(Dataset_Reset);
+      Dataset.ColumnNamesChanged -= new EventHandler(Dataset_ColumnNamesChanged);
+    }
+
+    void Dataset_ColumnNamesChanged(object sender, EventArgs e) {
+      OnProblemDataChanged(e);
+    }
+
+    void Dataset_Reset(object sender, EventArgs e) {
+      OnProblemDataChanged(e);
+    }
+
+    void Dataset_DataChanged(object sender, EventArgs<int, int> e) {
+      OnProblemDataChanged(e);
+    }
+
+    private void RegisterInputVariablesEventHandlers() {
+      InputVariables.CollectionReset += new HeuristicLab.Collections.CollectionItemsChangedEventHandler<HeuristicLab.Collections.IndexedItem<StringValue>>(InputVariables_CollectionReset);
+      InputVariables.ItemsAdded += new HeuristicLab.Collections.CollectionItemsChangedEventHandler<HeuristicLab.Collections.IndexedItem<StringValue>>(InputVariables_ItemsAdded);
+      InputVariables.ItemsRemoved += new HeuristicLab.Collections.CollectionItemsChangedEventHandler<HeuristicLab.Collections.IndexedItem<StringValue>>(InputVariables_ItemsRemoved);
+      InputVariables.CheckedItemsChanged += new HeuristicLab.Collections.CollectionItemsChangedEventHandler<HeuristicLab.Collections.IndexedItem<StringValue>>(InputVariables_CheckedItemsChanged);
+      foreach (var item in InputVariables)
+        item.ValueChanged += new EventHandler(InputVariable_ValueChanged);
+    }
+
+    private void DeregisterInputVariablesEventHandlers() {
+      InputVariables.CollectionReset -= new HeuristicLab.Collections.CollectionItemsChangedEventHandler<HeuristicLab.Collections.IndexedItem<StringValue>>(InputVariables_CollectionReset);
+      InputVariables.ItemsAdded -= new HeuristicLab.Collections.CollectionItemsChangedEventHandler<HeuristicLab.Collections.IndexedItem<StringValue>>(InputVariables_ItemsAdded);
+      InputVariables.ItemsRemoved -= new HeuristicLab.Collections.CollectionItemsChangedEventHandler<HeuristicLab.Collections.IndexedItem<StringValue>>(InputVariables_ItemsRemoved);
+      InputVariables.CheckedItemsChanged -= new HeuristicLab.Collections.CollectionItemsChangedEventHandler<HeuristicLab.Collections.IndexedItem<StringValue>>(InputVariables_CheckedItemsChanged);
+      foreach (var item in InputVariables) {
+        item.ValueChanged -= new EventHandler(InputVariable_ValueChanged);
+      }
+    }
+
+    private void RegisterTargetVariablesEventHandlers() {
+      TargetVariables.CollectionReset += new HeuristicLab.Collections.CollectionItemsChangedEventHandler<HeuristicLab.Collections.IndexedItem<StringValue>>(TargetVariables_CollectionReset);
+      TargetVariables.ItemsAdded += new HeuristicLab.Collections.CollectionItemsChangedEventHandler<HeuristicLab.Collections.IndexedItem<StringValue>>(TargetVariables_ItemsAdded);
+      TargetVariables.ItemsRemoved += new HeuristicLab.Collections.CollectionItemsChangedEventHandler<HeuristicLab.Collections.IndexedItem<StringValue>>(TargetVariables_ItemsRemoved);
+      TargetVariables.CheckedItemsChanged += new HeuristicLab.Collections.CollectionItemsChangedEventHandler<HeuristicLab.Collections.IndexedItem<StringValue>>(TargetVariables_CheckedItemsChanged);
+      foreach (var item in TargetVariables)
+        item.ValueChanged += new EventHandler(TargetVariable_ValueChanged);
+    }
+
+    private void DeregisterTargetVariablesEventHandlers() {
+      TargetVariables.CollectionReset -= new HeuristicLab.Collections.CollectionItemsChangedEventHandler<HeuristicLab.Collections.IndexedItem<StringValue>>(TargetVariables_CollectionReset);
+      TargetVariables.ItemsAdded -= new HeuristicLab.Collections.CollectionItemsChangedEventHandler<HeuristicLab.Collections.IndexedItem<StringValue>>(TargetVariables_ItemsAdded);
+      TargetVariables.ItemsRemoved -= new HeuristicLab.Collections.CollectionItemsChangedEventHandler<HeuristicLab.Collections.IndexedItem<StringValue>>(TargetVariables_ItemsRemoved);
+      TargetVariables.CheckedItemsChanged -= new HeuristicLab.Collections.CollectionItemsChangedEventHandler<HeuristicLab.Collections.IndexedItem<StringValue>>(TargetVariables_CheckedItemsChanged);
+      foreach (var item in TargetVariables) {
+        item.ValueChanged -= new EventHandler(TargetVariable_ValueChanged);
+      }
+    }
+
+    private void InputVariables_CheckedItemsChanged(object sender, HeuristicLab.Collections.CollectionItemsChangedEventArgs<HeuristicLab.Collections.IndexedItem<StringValue>> e) {
+      OnProblemDataChanged(e);
+    }
+
+    private void InputVariables_ItemsRemoved(object sender, HeuristicLab.Collections.CollectionItemsChangedEventArgs<HeuristicLab.Collections.IndexedItem<StringValue>> e) {
+      foreach (var indexedItem in e.Items)
+        indexedItem.Value.ValueChanged -= new EventHandler(InputVariable_ValueChanged);
+      OnProblemDataChanged(e);
+    }
+
+    private void InputVariables_ItemsAdded(object sender, HeuristicLab.Collections.CollectionItemsChangedEventArgs<HeuristicLab.Collections.IndexedItem<StringValue>> e) {
+      foreach (var indexedItem in e.Items)
+        indexedItem.Value.ValueChanged += new EventHandler(InputVariable_ValueChanged);
+      OnProblemDataChanged(e);
+    }
+
+    private void InputVariables_CollectionReset(object sender, HeuristicLab.Collections.CollectionItemsChangedEventArgs<HeuristicLab.Collections.IndexedItem<StringValue>> e) {
+      foreach (var indexedItem in e.OldItems)
+        indexedItem.Value.ValueChanged -= new EventHandler(InputVariable_ValueChanged);
+      OnProblemDataChanged(e);
+    }
+
+    void InputVariable_ValueChanged(object sender, EventArgs e) {
+      OnProblemDataChanged(e);
+    }
+    private void TargetVariables_CheckedItemsChanged(object sender, HeuristicLab.Collections.CollectionItemsChangedEventArgs<HeuristicLab.Collections.IndexedItem<StringValue>> e) {
+      OnProblemDataChanged(e);
+    }
+
+    private void TargetVariables_ItemsRemoved(object sender, HeuristicLab.Collections.CollectionItemsChangedEventArgs<HeuristicLab.Collections.IndexedItem<StringValue>> e) {
+      foreach (var indexedItem in e.Items)
+        indexedItem.Value.ValueChanged -= new EventHandler(TargetVariable_ValueChanged);
+      OnProblemDataChanged(e);
+    }
+
+    private void TargetVariables_ItemsAdded(object sender, HeuristicLab.Collections.CollectionItemsChangedEventArgs<HeuristicLab.Collections.IndexedItem<StringValue>> e) {
+      foreach (var indexedItem in e.Items)
+        indexedItem.Value.ValueChanged += new EventHandler(TargetVariable_ValueChanged);
+      OnProblemDataChanged(e);
+    }
+
+    private void TargetVariables_CollectionReset(object sender, HeuristicLab.Collections.CollectionItemsChangedEventArgs<HeuristicLab.Collections.IndexedItem<StringValue>> e) {
+      foreach (var indexedItem in e.OldItems)
+        indexedItem.Value.ValueChanged -= new EventHandler(TargetVariable_ValueChanged);
+      OnProblemDataChanged(e);
+    }
+
+    void TargetVariable_ValueChanged(object sender, EventArgs e) {
+      OnProblemDataChanged(e);
+    }
+    #region helper
+
+    private void RegisterValueTypeEventHandlers<T>(ValueTypeValue<T> value) where T : struct {
+      value.ValueChanged += new EventHandler(value_ValueChanged);
+    }
+
+    private void DeregisterValueTypeEventHandlers<T>(ValueTypeValue<T> value) where T : struct {
+      value.ValueChanged -= new EventHandler(value_ValueChanged);
+    }
+
+    void value_ValueChanged(object sender, EventArgs e) {
+      OnProblemDataChanged(e);
+    }
+
+    private void RegisterStringValueEventHandlers(StringValue value) {
+      value.ValueChanged += new EventHandler(value_ValueChanged);
+    }
+
+    private void DeregisterStringValueEventHandlers(StringValue value) {
+      value.ValueChanged -= new EventHandler(value_ValueChanged);
+    }
+
+    #endregion
+    #endregion
+
+    public virtual void ImportFromFile(string fileName) {
+      var csvFileParser = new CsvFileParser();
+      csvFileParser.Parse(fileName);
+      suppressEvents = true;
+      Name = "Data imported from " + Path.GetFileName(fileName);
+      Dataset = new Dataset(csvFileParser.VariableNames, csvFileParser.Values);
+      Dataset.Name = Path.GetFileName(fileName);
+      var variableNames = Dataset.VariableNames.Select(x => new StringValue(x).AsReadOnly()).ToList();
+      InputVariables = new CheckedItemList<StringValue>(variableNames).AsReadOnly();
+      TargetVariables = new CheckedItemList<StringValue>(variableNames).AsReadOnly();
+      int middle = (int)(csvFileParser.Rows * 0.5);
+      TrainingSamplesStart = new IntValue(0);
+      TrainingSamplesEnd = new IntValue(middle);
+      TestSamplesStart = new IntValue(middle);
+      TestSamplesEnd = new IntValue(csvFileParser.Rows);
+      suppressEvents = false;
+      OnProblemDataChanged(EventArgs.Empty);
+    }
+
+    public override IDeepCloneable Clone(Cloner cloner) {
+      MultiVariateDataAnalysisProblemData clone = (MultiVariateDataAnalysisProblemData)base.Clone(cloner);
+      clone.RegisterParameterEventHandlers();
+      clone.RegisterParameterValueEventHandlers();
+      return clone;
+    }
+
+    public DataAnalysisProblemData ConvertToDataAnalysisProblemData(string targetVariable) {
+      return new DataAnalysisProblemData((Dataset)Dataset.Clone(),
+        InputVariables.Select(x => x.Value),
+        targetVariable,
+        TrainingSamplesStart.Value,
+        TrainingSamplesEnd.Value,
+        TestSamplesStart.Value,
+        TestSamplesEnd.Value);
+    }
+  }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate/3.3/Properties/AssemblyInfo.frame
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate/3.3/Properties/AssemblyInfo.frame	(revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate/3.3/Properties/AssemblyInfo.frame	(revision 4235)
@@ -0,0 +1,55 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+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("HeuristicLab.Problems.DataAnalysis.MultiVariate")]
+[assembly: AssemblyDescription("HeuristicLab multi variate data analysis problem classes")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("HeuristicLab")]
+[assembly: AssemblyCopyright("(c) 2002-2010 HEAL")]
+[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("7B1B600A-9A92-469f-8C53-81060B8A4605")]
+
+// 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 Revision and Build Numbers 
+// by using the '*' as shown below:
+[assembly: AssemblyVersion("3.3.0.0")]
+[assembly: AssemblyFileVersion("3.3.0.$WCREV$")]
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate/3.3/Symbolic/MultiVariateExpressionGrammar.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate/3.3/Symbolic/MultiVariateExpressionGrammar.cs	(revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate/3.3/Symbolic/MultiVariateExpressionGrammar.cs	(revision 4235)
@@ -0,0 +1,70 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Symbols;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.Symbolic {
+  [StorableClass]
+  [Item("MultiVariateExpressionGrammar", "Represents a grammar for multi-variate expressions using all available functions.")]
+  public class MultiVariateExpressionGrammar : DefaultSymbolicExpressionGrammar {
+
+    [Storable]
+    private int dimension;
+    public int Dimension {
+      get { return dimension; }
+    }
+
+    public MultiVariateExpressionGrammar() : this(2) { }
+
+    public MultiVariateExpressionGrammar(int dimension)
+      : base() {
+      this.dimension = dimension;
+    }
+
+    protected MultiVariateExpressionGrammar(MultiVariateExpressionGrammar original)
+      : base(original) {
+      this.dimension = original.dimension;
+    }
+
+    public void SetDimension(int n) {
+      dimension = n;
+      SetMinSubtreeCount(StartSymbol, n);
+      SetMaxSubtreeCount(StartSymbol, n);
+
+      foreach (Symbol s in Symbols) {
+        if (s != StartSymbol)
+          for (int i = 0; i < n; i++) {
+            SetAllowedChild(StartSymbol, s, i);
+          }
+      }
+    }
+
+    public override IDeepCloneable Clone(Cloner cloner) {
+      var clone = new MultiVariateExpressionGrammar(this);
+      cloner.RegisterClonedObject(this, clone);
+      return clone;
+    }
+  }
+}
Index: /trunk/sources/HeuristicLab 3.3.sln
===================================================================
--- /trunk/sources/HeuristicLab 3.3.sln	(revision 4234)
+++ /trunk/sources/HeuristicLab 3.3.sln	(revision 4235)
@@ -87,5 +87,4 @@
 		{A51DA44F-CB35-4F6F-99F5-2A2E904AB93B} = {A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}
 		{2C36CD4F-E5F5-43A4-801A-201EA895FE17} = {2C36CD4F-E5F5-43A4-801A-201EA895FE17}
-		{6024D74F-E29C-4E6B-843E-8851831B8E14} = {6024D74F-E29C-4E6B-843E-8851831B8E14}
 		{3EAF1454-086D-44A2-8509-B1BA24DB1865} = {3EAF1454-086D-44A2-8509-B1BA24DB1865}
 		{2C429157-9C34-4DD3-9D5F-B444B751E39A} = {2C429157-9C34-4DD3-9D5F-B444B751E39A}
@@ -110,6 +109,4 @@
 		{D767C38D-8014-46B0-9A32-03A3AECCE34A} = {D767C38D-8014-46B0-9A32-03A3AECCE34A}
 		{BF7D9494-A586-457B-8DF9-ED599F9E6A71} = {BF7D9494-A586-457B-8DF9-ED599F9E6A71}
-		{C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7} = {C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}
-		{9B6EA19A-F894-4E00-B5A3-970514284772} = {9B6EA19A-F894-4E00-B5A3-970514284772}
 		{F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58} = {F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}
 		{15452B9F-A436-4139-8EE7-DA72FB8D3664} = {15452B9F-A436-4139-8EE7-DA72FB8D3664}
@@ -129,5 +126,4 @@
 		{66D249C3-A01D-42A8-82A2-919BC8EC3D83} = {66D249C3-A01D-42A8-82A2-919BC8EC3D83}
 		{236459CE-80CF-4991-972F-DE74C826BCCC} = {236459CE-80CF-4991-972F-DE74C826BCCC}
-		{2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515} = {2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}
 		{102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B} = {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}
 		{13CA37D6-4111-4E7B-BE2E-AF3DE462D384} = {13CA37D6-4111-4E7B-BE2E-AF3DE462D384}
@@ -137,5 +133,4 @@
 		{1B3063DB-D71C-4A6A-A359-883E8F53A140} = {1B3063DB-D71C-4A6A-A359-883E8F53A140}
 		{DDFB14DD-2A85-493C-A52D-E69729BBAEB0} = {DDFB14DD-2A85-493C-A52D-E69729BBAEB0}
-		{B3310CE1-0C05-410F-BA77-8DAD6CE3F803} = {B3310CE1-0C05-410F-BA77-8DAD6CE3F803}
 		{88B9B0E3-344E-4196-82A3-0F9732506FE8} = {88B9B0E3-344E-4196-82A3-0F9732506FE8}
 		{AE5B1CE5-9862-4D6F-A700-D72CD9AEA295} = {AE5B1CE5-9862-4D6F-A700-D72CD9AEA295}
@@ -316,17 +311,7 @@
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Algorithms.NSGA2-3.3", "HeuristicLab.Algorithms.NSGA2\3.3\HeuristicLab.Algorithms.NSGA2-3.3.csproj", "{15452B9F-A436-4139-8EE7-DA72FB8D3664}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.DataAnalysis.MultiVariate-3.3", "HeuristicLab.Problems.DataAnalysis.MultiVariate\3.3\HeuristicLab.Problems.DataAnalysis.MultiVariate-3.3.csproj", "{2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.DataAnalysis.MultiVariate.Regression-3.3", "HeuristicLab.Problems.DataAnalysis.MultiVariate.Regression\3.3\HeuristicLab.Problems.DataAnalysis.MultiVariate.Regression-3.3.csproj", "{6024D74F-E29C-4E6B-843E-8851831B8E14}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.DataAnalysis.MultiVariate.Views-3.3", "HeuristicLab.Problems.DataAnalysis.MultiVariate.Views\3.3\HeuristicLab.Problems.DataAnalysis.MultiVariate.Views-3.3.csproj", "{9B6EA19A-F894-4E00-B5A3-970514284772}"
-EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.DataAnalysis.FeatureSelection-3.3", "HeuristicLab.Problems.DataAnalysis.FeatureSelection\3.3\HeuristicLab.Problems.DataAnalysis.FeatureSelection-3.3.csproj", "{7252890C-F207-4AD6-B3C9-764DF93F73CC}"
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.ExternalEvaluation.GP-3.3", "HeuristicLab.Problems.ExternalEvaluation.GP\3.3\HeuristicLab.Problems.ExternalEvaluation.GP-3.3.csproj", "{E86E215D-E3CE-4244-978D-555D4E17AC09}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis-3.3", "HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis\3.3\HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis-3.3.csproj", "{B3310CE1-0C05-410F-BA77-8DAD6CE3F803}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views-3.3", "HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views\3.3\HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views-3.3.csproj", "{C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}"
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.ExternalEvaluation.GP.Views-3.3", "HeuristicLab.Problems.ExternalEvaluation.GP.Views\3.3\HeuristicLab.Problems.ExternalEvaluation.GP.Views-3.3.csproj", "{1778134B-866B-4CB3-BFC0-52B2FAAA5777}"
@@ -2064,64 +2049,4 @@
 		{15452B9F-A436-4139-8EE7-DA72FB8D3664}.Silverlight2|x64.ActiveCfg = Release|Any CPU
 		{15452B9F-A436-4139-8EE7-DA72FB8D3664}.Silverlight2|x86.ActiveCfg = Release|Any CPU
-		{2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}.Debug|x64.ActiveCfg = Debug|x64
-		{2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}.Debug|x64.Build.0 = Debug|x64
-		{2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}.Debug|x86.ActiveCfg = Debug|x86
-		{2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}.Debug|x86.Build.0 = Debug|x86
-		{2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}.Release|Any CPU.Build.0 = Release|Any CPU
-		{2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}.Release|x64.ActiveCfg = Release|x64
-		{2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}.Release|x64.Build.0 = Release|x64
-		{2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}.Release|x86.ActiveCfg = Release|x86
-		{2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}.Release|x86.Build.0 = Release|x86
-		{2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}.Services|Any CPU.ActiveCfg = Release|x86
-		{2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}.Services|x64.ActiveCfg = Release|x86
-		{2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}.Services|x86.ActiveCfg = Release|x86
-		{2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}.Services|x86.Build.0 = Release|x86
-		{2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}.Silverlight2|Any CPU.ActiveCfg = Release|x86
-		{2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}.Silverlight2|x64.ActiveCfg = Release|x86
-		{2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}.Silverlight2|x86.ActiveCfg = Release|x86
-		{2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}.Silverlight2|x86.Build.0 = Release|x86
-		{6024D74F-E29C-4E6B-843E-8851831B8E14}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{6024D74F-E29C-4E6B-843E-8851831B8E14}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{6024D74F-E29C-4E6B-843E-8851831B8E14}.Debug|x64.ActiveCfg = Debug|x64
-		{6024D74F-E29C-4E6B-843E-8851831B8E14}.Debug|x64.Build.0 = Debug|x64
-		{6024D74F-E29C-4E6B-843E-8851831B8E14}.Debug|x86.ActiveCfg = Debug|x86
-		{6024D74F-E29C-4E6B-843E-8851831B8E14}.Debug|x86.Build.0 = Debug|x86
-		{6024D74F-E29C-4E6B-843E-8851831B8E14}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{6024D74F-E29C-4E6B-843E-8851831B8E14}.Release|Any CPU.Build.0 = Release|Any CPU
-		{6024D74F-E29C-4E6B-843E-8851831B8E14}.Release|x64.ActiveCfg = Release|x64
-		{6024D74F-E29C-4E6B-843E-8851831B8E14}.Release|x64.Build.0 = Release|x64
-		{6024D74F-E29C-4E6B-843E-8851831B8E14}.Release|x86.ActiveCfg = Release|x86
-		{6024D74F-E29C-4E6B-843E-8851831B8E14}.Release|x86.Build.0 = Release|x86
-		{6024D74F-E29C-4E6B-843E-8851831B8E14}.Services|Any CPU.ActiveCfg = Release|x86
-		{6024D74F-E29C-4E6B-843E-8851831B8E14}.Services|x64.ActiveCfg = Release|x86
-		{6024D74F-E29C-4E6B-843E-8851831B8E14}.Services|x86.ActiveCfg = Release|x86
-		{6024D74F-E29C-4E6B-843E-8851831B8E14}.Services|x86.Build.0 = Release|x86
-		{6024D74F-E29C-4E6B-843E-8851831B8E14}.Silverlight2|Any CPU.ActiveCfg = Release|x86
-		{6024D74F-E29C-4E6B-843E-8851831B8E14}.Silverlight2|x64.ActiveCfg = Release|x86
-		{6024D74F-E29C-4E6B-843E-8851831B8E14}.Silverlight2|x86.ActiveCfg = Release|x86
-		{6024D74F-E29C-4E6B-843E-8851831B8E14}.Silverlight2|x86.Build.0 = Release|x86
-		{9B6EA19A-F894-4E00-B5A3-970514284772}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{9B6EA19A-F894-4E00-B5A3-970514284772}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{9B6EA19A-F894-4E00-B5A3-970514284772}.Debug|x64.ActiveCfg = Debug|x64
-		{9B6EA19A-F894-4E00-B5A3-970514284772}.Debug|x64.Build.0 = Debug|x64
-		{9B6EA19A-F894-4E00-B5A3-970514284772}.Debug|x86.ActiveCfg = Debug|x86
-		{9B6EA19A-F894-4E00-B5A3-970514284772}.Debug|x86.Build.0 = Debug|x86
-		{9B6EA19A-F894-4E00-B5A3-970514284772}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{9B6EA19A-F894-4E00-B5A3-970514284772}.Release|Any CPU.Build.0 = Release|Any CPU
-		{9B6EA19A-F894-4E00-B5A3-970514284772}.Release|x64.ActiveCfg = Release|x64
-		{9B6EA19A-F894-4E00-B5A3-970514284772}.Release|x64.Build.0 = Release|x64
-		{9B6EA19A-F894-4E00-B5A3-970514284772}.Release|x86.ActiveCfg = Release|x86
-		{9B6EA19A-F894-4E00-B5A3-970514284772}.Release|x86.Build.0 = Release|x86
-		{9B6EA19A-F894-4E00-B5A3-970514284772}.Services|Any CPU.ActiveCfg = Release|x86
-		{9B6EA19A-F894-4E00-B5A3-970514284772}.Services|x64.ActiveCfg = Release|x86
-		{9B6EA19A-F894-4E00-B5A3-970514284772}.Services|x86.ActiveCfg = Release|x86
-		{9B6EA19A-F894-4E00-B5A3-970514284772}.Services|x86.Build.0 = Release|x86
-		{9B6EA19A-F894-4E00-B5A3-970514284772}.Silverlight2|Any CPU.ActiveCfg = Release|x86
-		{9B6EA19A-F894-4E00-B5A3-970514284772}.Silverlight2|x64.ActiveCfg = Release|x86
-		{9B6EA19A-F894-4E00-B5A3-970514284772}.Silverlight2|x86.ActiveCfg = Release|x86
-		{9B6EA19A-F894-4E00-B5A3-970514284772}.Silverlight2|x86.Build.0 = Release|x86
 		{7252890C-F207-4AD6-B3C9-764DF93F73CC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{7252890C-F207-4AD6-B3C9-764DF93F73CC}.Debug|Any CPU.Build.0 = Debug|Any CPU
@@ -2164,44 +2089,4 @@
 		{E86E215D-E3CE-4244-978D-555D4E17AC09}.Silverlight2|x64.Build.0 = Release|x64
 		{E86E215D-E3CE-4244-978D-555D4E17AC09}.Silverlight2|x86.ActiveCfg = Release|x64
-		{B3310CE1-0C05-410F-BA77-8DAD6CE3F803}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{B3310CE1-0C05-410F-BA77-8DAD6CE3F803}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{B3310CE1-0C05-410F-BA77-8DAD6CE3F803}.Debug|x64.ActiveCfg = Debug|x64
-		{B3310CE1-0C05-410F-BA77-8DAD6CE3F803}.Debug|x64.Build.0 = Debug|x64
-		{B3310CE1-0C05-410F-BA77-8DAD6CE3F803}.Debug|x86.ActiveCfg = Debug|x86
-		{B3310CE1-0C05-410F-BA77-8DAD6CE3F803}.Debug|x86.Build.0 = Debug|x86
-		{B3310CE1-0C05-410F-BA77-8DAD6CE3F803}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{B3310CE1-0C05-410F-BA77-8DAD6CE3F803}.Release|Any CPU.Build.0 = Release|Any CPU
-		{B3310CE1-0C05-410F-BA77-8DAD6CE3F803}.Release|x64.ActiveCfg = Release|x64
-		{B3310CE1-0C05-410F-BA77-8DAD6CE3F803}.Release|x64.Build.0 = Release|x64
-		{B3310CE1-0C05-410F-BA77-8DAD6CE3F803}.Release|x86.ActiveCfg = Release|x86
-		{B3310CE1-0C05-410F-BA77-8DAD6CE3F803}.Release|x86.Build.0 = Release|x86
-		{B3310CE1-0C05-410F-BA77-8DAD6CE3F803}.Services|Any CPU.ActiveCfg = Release|x86
-		{B3310CE1-0C05-410F-BA77-8DAD6CE3F803}.Services|x64.ActiveCfg = Release|x86
-		{B3310CE1-0C05-410F-BA77-8DAD6CE3F803}.Services|x86.ActiveCfg = Release|x86
-		{B3310CE1-0C05-410F-BA77-8DAD6CE3F803}.Services|x86.Build.0 = Release|x86
-		{B3310CE1-0C05-410F-BA77-8DAD6CE3F803}.Silverlight2|Any CPU.ActiveCfg = Release|x86
-		{B3310CE1-0C05-410F-BA77-8DAD6CE3F803}.Silverlight2|x64.ActiveCfg = Release|x86
-		{B3310CE1-0C05-410F-BA77-8DAD6CE3F803}.Silverlight2|x86.ActiveCfg = Release|x86
-		{B3310CE1-0C05-410F-BA77-8DAD6CE3F803}.Silverlight2|x86.Build.0 = Release|x86
-		{C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}.Debug|x64.ActiveCfg = Debug|x64
-		{C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}.Debug|x64.Build.0 = Debug|x64
-		{C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}.Debug|x86.ActiveCfg = Debug|x86
-		{C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}.Debug|x86.Build.0 = Debug|x86
-		{C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}.Release|Any CPU.Build.0 = Release|Any CPU
-		{C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}.Release|x64.ActiveCfg = Release|x64
-		{C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}.Release|x64.Build.0 = Release|x64
-		{C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}.Release|x86.ActiveCfg = Release|x86
-		{C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}.Release|x86.Build.0 = Release|x86
-		{C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}.Services|Any CPU.ActiveCfg = Release|x86
-		{C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}.Services|x64.ActiveCfg = Release|x86
-		{C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}.Services|x86.ActiveCfg = Release|x86
-		{C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}.Services|x86.Build.0 = Release|x86
-		{C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}.Silverlight2|Any CPU.ActiveCfg = Release|x86
-		{C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}.Silverlight2|x64.ActiveCfg = Release|x86
-		{C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}.Silverlight2|x86.ActiveCfg = Release|x86
-		{C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}.Silverlight2|x86.Build.0 = Release|x86
 		{1778134B-866B-4CB3-BFC0-52B2FAAA5777}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{1778134B-866B-4CB3-BFC0-52B2FAAA5777}.Debug|Any CPU.Build.0 = Debug|Any CPU
