diff --git a/OpenConsole.sln b/OpenConsole.sln
index bb55346956..150d3166f0 100644
--- a/OpenConsole.sln
+++ b/OpenConsole.sln
@@ -302,30 +302,41 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TerminalAzBridge", "src\cas
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fmt", "src\dep\fmt\fmt.vcxproj", "{6BAE5851-50D5-4934-8D5E-30361A8A40F3}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WpfTerminalTestNetCore", "src\tools\WpfTerminalTestNetCore\WpfTerminalTestNetCore\WpfTerminalTestNetCore.csproj", "{1588FD7C-241E-4E7D-9113-43735F3E6BAD}"
+ ProjectSection(ProjectDependencies) = postProject
+ {A22EC5F6-7851-4B88-AC52-47249D437A52} = {A22EC5F6-7851-4B88-AC52-47249D437A52}
+ {84848BFA-931D-42CE-9ADF-01EE54DE7890} = {84848BFA-931D-42CE-9ADF-01EE54DE7890}
+ EndProjectSection
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
AuditMode|Any CPU = AuditMode|Any CPU
AuditMode|ARM64 = AuditMode|ARM64
+ AuditMode|NET_Test = AuditMode|NET_Test
AuditMode|x64 = AuditMode|x64
AuditMode|x86 = AuditMode|x86
Debug|Any CPU = Debug|Any CPU
Debug|ARM64 = Debug|ARM64
+ Debug|NET_Test = Debug|NET_Test
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
Release|ARM64 = Release|ARM64
+ Release|NET_Test = Release|NET_Test
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{CA5CAD1A-224A-4171-B13A-F16E576FDD12}.AuditMode|Any CPU.ActiveCfg = Debug|x86
{CA5CAD1A-224A-4171-B13A-F16E576FDD12}.AuditMode|ARM64.ActiveCfg = Release|ARM64
+ {CA5CAD1A-224A-4171-B13A-F16E576FDD12}.AuditMode|NET_Test.ActiveCfg = Debug|x86
{CA5CAD1A-224A-4171-B13A-F16E576FDD12}.AuditMode|x64.ActiveCfg = Release|x64
{CA5CAD1A-224A-4171-B13A-F16E576FDD12}.AuditMode|x86.ActiveCfg = Release|x86
{CA5CAD1A-224A-4171-B13A-F16E576FDD12}.Debug|Any CPU.ActiveCfg = Debug|x86
{CA5CAD1A-224A-4171-B13A-F16E576FDD12}.Debug|ARM64.ActiveCfg = Debug|ARM64
{CA5CAD1A-224A-4171-B13A-F16E576FDD12}.Debug|ARM64.Build.0 = Debug|ARM64
{CA5CAD1A-224A-4171-B13A-F16E576FDD12}.Debug|ARM64.Deploy.0 = Debug|ARM64
+ {CA5CAD1A-224A-4171-B13A-F16E576FDD12}.Debug|NET_Test.ActiveCfg = Debug|x86
{CA5CAD1A-224A-4171-B13A-F16E576FDD12}.Debug|x64.ActiveCfg = Debug|x64
{CA5CAD1A-224A-4171-B13A-F16E576FDD12}.Debug|x64.Build.0 = Debug|x64
{CA5CAD1A-224A-4171-B13A-F16E576FDD12}.Debug|x64.Deploy.0 = Debug|x64
@@ -344,11 +355,13 @@ Global
{CA5CAD1A-224A-4171-B13A-F16E576FDD12}.Release|x86.Deploy.0 = Release|x86
{9CBD7DFA-1754-4A9D-93D7-857A9D17CB1B}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32
{9CBD7DFA-1754-4A9D-93D7-857A9D17CB1B}.AuditMode|ARM64.ActiveCfg = Release|ARM64
+ {9CBD7DFA-1754-4A9D-93D7-857A9D17CB1B}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32
{9CBD7DFA-1754-4A9D-93D7-857A9D17CB1B}.AuditMode|x64.ActiveCfg = Release|x64
{9CBD7DFA-1754-4A9D-93D7-857A9D17CB1B}.AuditMode|x86.ActiveCfg = Release|Win32
{9CBD7DFA-1754-4A9D-93D7-857A9D17CB1B}.Debug|Any CPU.ActiveCfg = Debug|Win32
{9CBD7DFA-1754-4A9D-93D7-857A9D17CB1B}.Debug|ARM64.ActiveCfg = Debug|ARM64
{9CBD7DFA-1754-4A9D-93D7-857A9D17CB1B}.Debug|ARM64.Build.0 = Debug|ARM64
+ {9CBD7DFA-1754-4A9D-93D7-857A9D17CB1B}.Debug|NET_Test.ActiveCfg = Debug|Win32
{9CBD7DFA-1754-4A9D-93D7-857A9D17CB1B}.Debug|x64.ActiveCfg = Debug|x64
{9CBD7DFA-1754-4A9D-93D7-857A9D17CB1B}.Debug|x64.Build.0 = Debug|x64
{9CBD7DFA-1754-4A9D-93D7-857A9D17CB1B}.Debug|x86.ActiveCfg = Debug|Win32
@@ -362,11 +375,13 @@ Global
{9CBD7DFA-1754-4A9D-93D7-857A9D17CB1B}.Release|x86.Build.0 = Release|Win32
{345FD5A4-B32B-4F29-BD1C-B033BD2C35CC}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32
{345FD5A4-B32B-4F29-BD1C-B033BD2C35CC}.AuditMode|ARM64.ActiveCfg = Release|ARM64
+ {345FD5A4-B32B-4F29-BD1C-B033BD2C35CC}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32
{345FD5A4-B32B-4F29-BD1C-B033BD2C35CC}.AuditMode|x64.ActiveCfg = Release|x64
{345FD5A4-B32B-4F29-BD1C-B033BD2C35CC}.AuditMode|x86.ActiveCfg = Release|Win32
{345FD5A4-B32B-4F29-BD1C-B033BD2C35CC}.Debug|Any CPU.ActiveCfg = Debug|Win32
{345FD5A4-B32B-4F29-BD1C-B033BD2C35CC}.Debug|ARM64.ActiveCfg = Debug|ARM64
{345FD5A4-B32B-4F29-BD1C-B033BD2C35CC}.Debug|ARM64.Build.0 = Debug|ARM64
+ {345FD5A4-B32B-4F29-BD1C-B033BD2C35CC}.Debug|NET_Test.ActiveCfg = Debug|Win32
{345FD5A4-B32B-4F29-BD1C-B033BD2C35CC}.Debug|x64.ActiveCfg = Debug|x64
{345FD5A4-B32B-4F29-BD1C-B033BD2C35CC}.Debug|x64.Build.0 = Debug|x64
{345FD5A4-B32B-4F29-BD1C-B033BD2C35CC}.Debug|x86.ActiveCfg = Debug|Win32
@@ -380,11 +395,13 @@ Global
{345FD5A4-B32B-4F29-BD1C-B033BD2C35CC}.Release|x86.Build.0 = Release|Win32
{2FD12FBB-1DDB-46D8-B818-1023C624CACA}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32
{2FD12FBB-1DDB-46D8-B818-1023C624CACA}.AuditMode|ARM64.ActiveCfg = Release|ARM64
+ {2FD12FBB-1DDB-46D8-B818-1023C624CACA}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32
{2FD12FBB-1DDB-46D8-B818-1023C624CACA}.AuditMode|x64.ActiveCfg = Release|x64
{2FD12FBB-1DDB-46D8-B818-1023C624CACA}.AuditMode|x86.ActiveCfg = Release|Win32
{2FD12FBB-1DDB-46D8-B818-1023C624CACA}.Debug|Any CPU.ActiveCfg = Debug|Win32
{2FD12FBB-1DDB-46D8-B818-1023C624CACA}.Debug|ARM64.ActiveCfg = Debug|ARM64
{2FD12FBB-1DDB-46D8-B818-1023C624CACA}.Debug|ARM64.Build.0 = Debug|ARM64
+ {2FD12FBB-1DDB-46D8-B818-1023C624CACA}.Debug|NET_Test.ActiveCfg = Debug|Win32
{2FD12FBB-1DDB-46D8-B818-1023C624CACA}.Debug|x64.ActiveCfg = Debug|x64
{2FD12FBB-1DDB-46D8-B818-1023C624CACA}.Debug|x64.Build.0 = Debug|x64
{2FD12FBB-1DDB-46D8-B818-1023C624CACA}.Debug|x86.ActiveCfg = Debug|Win32
@@ -398,12 +415,15 @@ Global
{2FD12FBB-1DDB-46D8-B818-1023C624CACA}.Release|x86.Build.0 = Release|Win32
{3AE13314-1939-4DFA-9C14-38CA0834050C}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32
{3AE13314-1939-4DFA-9C14-38CA0834050C}.AuditMode|ARM64.ActiveCfg = Release|ARM64
+ {3AE13314-1939-4DFA-9C14-38CA0834050C}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32
{3AE13314-1939-4DFA-9C14-38CA0834050C}.AuditMode|x64.ActiveCfg = AuditMode|x64
{3AE13314-1939-4DFA-9C14-38CA0834050C}.AuditMode|x64.Build.0 = AuditMode|x64
{3AE13314-1939-4DFA-9C14-38CA0834050C}.AuditMode|x86.ActiveCfg = Release|Win32
{3AE13314-1939-4DFA-9C14-38CA0834050C}.Debug|Any CPU.ActiveCfg = Debug|Win32
{3AE13314-1939-4DFA-9C14-38CA0834050C}.Debug|ARM64.ActiveCfg = Debug|ARM64
{3AE13314-1939-4DFA-9C14-38CA0834050C}.Debug|ARM64.Build.0 = Debug|ARM64
+ {3AE13314-1939-4DFA-9C14-38CA0834050C}.Debug|NET_Test.ActiveCfg = Debug|x64
+ {3AE13314-1939-4DFA-9C14-38CA0834050C}.Debug|NET_Test.Build.0 = Debug|x64
{3AE13314-1939-4DFA-9C14-38CA0834050C}.Debug|x64.ActiveCfg = Debug|x64
{3AE13314-1939-4DFA-9C14-38CA0834050C}.Debug|x64.Build.0 = Debug|x64
{3AE13314-1939-4DFA-9C14-38CA0834050C}.Debug|x86.ActiveCfg = Debug|Win32
@@ -417,12 +437,14 @@ Global
{3AE13314-1939-4DFA-9C14-38CA0834050C}.Release|x86.Build.0 = Release|Win32
{DCF55140-EF6A-4736-A403-957E4F7430BB}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32
{DCF55140-EF6A-4736-A403-957E4F7430BB}.AuditMode|ARM64.ActiveCfg = Release|ARM64
+ {DCF55140-EF6A-4736-A403-957E4F7430BB}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32
{DCF55140-EF6A-4736-A403-957E4F7430BB}.AuditMode|x64.ActiveCfg = AuditMode|x64
{DCF55140-EF6A-4736-A403-957E4F7430BB}.AuditMode|x64.Build.0 = AuditMode|x64
{DCF55140-EF6A-4736-A403-957E4F7430BB}.AuditMode|x86.ActiveCfg = Release|Win32
{DCF55140-EF6A-4736-A403-957E4F7430BB}.Debug|Any CPU.ActiveCfg = Debug|Win32
{DCF55140-EF6A-4736-A403-957E4F7430BB}.Debug|ARM64.ActiveCfg = Debug|ARM64
{DCF55140-EF6A-4736-A403-957E4F7430BB}.Debug|ARM64.Build.0 = Debug|ARM64
+ {DCF55140-EF6A-4736-A403-957E4F7430BB}.Debug|NET_Test.ActiveCfg = Debug|Win32
{DCF55140-EF6A-4736-A403-957E4F7430BB}.Debug|x64.ActiveCfg = Debug|x64
{DCF55140-EF6A-4736-A403-957E4F7430BB}.Debug|x64.Build.0 = Debug|x64
{DCF55140-EF6A-4736-A403-957E4F7430BB}.Debug|x86.ActiveCfg = Debug|Win32
@@ -436,12 +458,15 @@ Global
{DCF55140-EF6A-4736-A403-957E4F7430BB}.Release|x86.Build.0 = Release|Win32
{1CF55140-EF6A-4736-A403-957E4F7430BB}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32
{1CF55140-EF6A-4736-A403-957E4F7430BB}.AuditMode|ARM64.ActiveCfg = Release|ARM64
+ {1CF55140-EF6A-4736-A403-957E4F7430BB}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32
{1CF55140-EF6A-4736-A403-957E4F7430BB}.AuditMode|x64.ActiveCfg = AuditMode|x64
{1CF55140-EF6A-4736-A403-957E4F7430BB}.AuditMode|x64.Build.0 = AuditMode|x64
{1CF55140-EF6A-4736-A403-957E4F7430BB}.AuditMode|x86.ActiveCfg = Release|Win32
{1CF55140-EF6A-4736-A403-957E4F7430BB}.Debug|Any CPU.ActiveCfg = Debug|Win32
{1CF55140-EF6A-4736-A403-957E4F7430BB}.Debug|ARM64.ActiveCfg = Debug|ARM64
{1CF55140-EF6A-4736-A403-957E4F7430BB}.Debug|ARM64.Build.0 = Debug|ARM64
+ {1CF55140-EF6A-4736-A403-957E4F7430BB}.Debug|NET_Test.ActiveCfg = Debug|x64
+ {1CF55140-EF6A-4736-A403-957E4F7430BB}.Debug|NET_Test.Build.0 = Debug|x64
{1CF55140-EF6A-4736-A403-957E4F7430BB}.Debug|x64.ActiveCfg = Debug|x64
{1CF55140-EF6A-4736-A403-957E4F7430BB}.Debug|x64.Build.0 = Debug|x64
{1CF55140-EF6A-4736-A403-957E4F7430BB}.Debug|x86.ActiveCfg = Debug|Win32
@@ -455,12 +480,15 @@ Global
{1CF55140-EF6A-4736-A403-957E4F7430BB}.Release|x86.Build.0 = Release|Win32
{AF0A096A-8B3A-4949-81EF-7DF8F0FEE91F}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32
{AF0A096A-8B3A-4949-81EF-7DF8F0FEE91F}.AuditMode|ARM64.ActiveCfg = Release|ARM64
+ {AF0A096A-8B3A-4949-81EF-7DF8F0FEE91F}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32
{AF0A096A-8B3A-4949-81EF-7DF8F0FEE91F}.AuditMode|x64.ActiveCfg = Release|x64
{AF0A096A-8B3A-4949-81EF-7DF8F0FEE91F}.AuditMode|x64.Build.0 = Release|x64
{AF0A096A-8B3A-4949-81EF-7DF8F0FEE91F}.AuditMode|x86.ActiveCfg = Release|Win32
{AF0A096A-8B3A-4949-81EF-7DF8F0FEE91F}.Debug|Any CPU.ActiveCfg = Debug|Win32
{AF0A096A-8B3A-4949-81EF-7DF8F0FEE91F}.Debug|ARM64.ActiveCfg = Debug|ARM64
{AF0A096A-8B3A-4949-81EF-7DF8F0FEE91F}.Debug|ARM64.Build.0 = Debug|ARM64
+ {AF0A096A-8B3A-4949-81EF-7DF8F0FEE91F}.Debug|NET_Test.ActiveCfg = Debug|x64
+ {AF0A096A-8B3A-4949-81EF-7DF8F0FEE91F}.Debug|NET_Test.Build.0 = Debug|x64
{AF0A096A-8B3A-4949-81EF-7DF8F0FEE91F}.Debug|x64.ActiveCfg = Debug|x64
{AF0A096A-8B3A-4949-81EF-7DF8F0FEE91F}.Debug|x64.Build.0 = Debug|x64
{AF0A096A-8B3A-4949-81EF-7DF8F0FEE91F}.Debug|x86.ActiveCfg = Debug|Win32
@@ -474,11 +502,13 @@ Global
{AF0A096A-8B3A-4949-81EF-7DF8F0FEE91F}.Release|x86.Build.0 = Release|Win32
{1C959542-BAC2-4E55-9A6D-13251914CBB9}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32
{1C959542-BAC2-4E55-9A6D-13251914CBB9}.AuditMode|ARM64.ActiveCfg = Release|ARM64
+ {1C959542-BAC2-4E55-9A6D-13251914CBB9}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32
{1C959542-BAC2-4E55-9A6D-13251914CBB9}.AuditMode|x64.ActiveCfg = Release|x64
{1C959542-BAC2-4E55-9A6D-13251914CBB9}.AuditMode|x86.ActiveCfg = Release|Win32
{1C959542-BAC2-4E55-9A6D-13251914CBB9}.Debug|Any CPU.ActiveCfg = Debug|Win32
{1C959542-BAC2-4E55-9A6D-13251914CBB9}.Debug|ARM64.ActiveCfg = Debug|ARM64
{1C959542-BAC2-4E55-9A6D-13251914CBB9}.Debug|ARM64.Build.0 = Debug|ARM64
+ {1C959542-BAC2-4E55-9A6D-13251914CBB9}.Debug|NET_Test.ActiveCfg = Debug|Win32
{1C959542-BAC2-4E55-9A6D-13251914CBB9}.Debug|x64.ActiveCfg = Debug|x64
{1C959542-BAC2-4E55-9A6D-13251914CBB9}.Debug|x64.Build.0 = Debug|x64
{1C959542-BAC2-4E55-9A6D-13251914CBB9}.Debug|x86.ActiveCfg = Debug|Win32
@@ -492,11 +522,13 @@ Global
{1C959542-BAC2-4E55-9A6D-13251914CBB9}.Release|x86.Build.0 = Release|Win32
{06EC74CB-9A12-429C-B551-8562EC954746}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32
{06EC74CB-9A12-429C-B551-8562EC954746}.AuditMode|ARM64.ActiveCfg = Release|ARM64
+ {06EC74CB-9A12-429C-B551-8562EC954746}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32
{06EC74CB-9A12-429C-B551-8562EC954746}.AuditMode|x64.ActiveCfg = Release|x64
{06EC74CB-9A12-429C-B551-8562EC954746}.AuditMode|x86.ActiveCfg = Release|Win32
{06EC74CB-9A12-429C-B551-8562EC954746}.Debug|Any CPU.ActiveCfg = Debug|Win32
{06EC74CB-9A12-429C-B551-8562EC954746}.Debug|ARM64.ActiveCfg = Debug|ARM64
{06EC74CB-9A12-429C-B551-8562EC954746}.Debug|ARM64.Build.0 = Debug|ARM64
+ {06EC74CB-9A12-429C-B551-8562EC954746}.Debug|NET_Test.ActiveCfg = Debug|Win32
{06EC74CB-9A12-429C-B551-8562EC954746}.Debug|x64.ActiveCfg = Debug|x64
{06EC74CB-9A12-429C-B551-8562EC954746}.Debug|x64.Build.0 = Debug|x64
{06EC74CB-9A12-429C-B551-8562EC954746}.Debug|x86.ActiveCfg = Debug|Win32
@@ -510,11 +542,13 @@ Global
{06EC74CB-9A12-429C-B551-8562EC954746}.Release|x86.Build.0 = Release|Win32
{06EC74CB-9A12-429C-B551-8562EC954747}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32
{06EC74CB-9A12-429C-B551-8562EC954747}.AuditMode|ARM64.ActiveCfg = Release|ARM64
+ {06EC74CB-9A12-429C-B551-8562EC954747}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32
{06EC74CB-9A12-429C-B551-8562EC954747}.AuditMode|x64.ActiveCfg = Release|x64
{06EC74CB-9A12-429C-B551-8562EC954747}.AuditMode|x86.ActiveCfg = Release|Win32
{06EC74CB-9A12-429C-B551-8562EC954747}.Debug|Any CPU.ActiveCfg = Debug|Win32
{06EC74CB-9A12-429C-B551-8562EC954747}.Debug|ARM64.ActiveCfg = Debug|ARM64
{06EC74CB-9A12-429C-B551-8562EC954747}.Debug|ARM64.Build.0 = Debug|ARM64
+ {06EC74CB-9A12-429C-B551-8562EC954747}.Debug|NET_Test.ActiveCfg = Debug|Win32
{06EC74CB-9A12-429C-B551-8562EC954747}.Debug|x64.ActiveCfg = Debug|x64
{06EC74CB-9A12-429C-B551-8562EC954747}.Debug|x64.Build.0 = Debug|x64
{06EC74CB-9A12-429C-B551-8562EC954747}.Debug|x86.ActiveCfg = Debug|Win32
@@ -528,11 +562,13 @@ Global
{06EC74CB-9A12-429C-B551-8562EC954747}.Release|x86.Build.0 = Release|Win32
{531C23E7-4B76-4C08-8AAD-04164CB628C9}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32
{531C23E7-4B76-4C08-8AAD-04164CB628C9}.AuditMode|ARM64.ActiveCfg = Release|ARM64
+ {531C23E7-4B76-4C08-8AAD-04164CB628C9}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32
{531C23E7-4B76-4C08-8AAD-04164CB628C9}.AuditMode|x64.ActiveCfg = Release|x64
{531C23E7-4B76-4C08-8AAD-04164CB628C9}.AuditMode|x86.ActiveCfg = Release|Win32
{531C23E7-4B76-4C08-8AAD-04164CB628C9}.Debug|Any CPU.ActiveCfg = Debug|Win32
{531C23E7-4B76-4C08-8AAD-04164CB628C9}.Debug|ARM64.ActiveCfg = Debug|ARM64
{531C23E7-4B76-4C08-8AAD-04164CB628C9}.Debug|ARM64.Build.0 = Debug|ARM64
+ {531C23E7-4B76-4C08-8AAD-04164CB628C9}.Debug|NET_Test.ActiveCfg = Debug|Win32
{531C23E7-4B76-4C08-8AAD-04164CB628C9}.Debug|x64.ActiveCfg = Debug|x64
{531C23E7-4B76-4C08-8AAD-04164CB628C9}.Debug|x64.Build.0 = Debug|x64
{531C23E7-4B76-4C08-8AAD-04164CB628C9}.Debug|x86.ActiveCfg = Debug|Win32
@@ -546,11 +582,13 @@ Global
{531C23E7-4B76-4C08-8AAD-04164CB628C9}.Release|x86.Build.0 = Release|Win32
{531C23E7-4B76-4C08-8BBD-04164CB628C9}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32
{531C23E7-4B76-4C08-8BBD-04164CB628C9}.AuditMode|ARM64.ActiveCfg = Release|ARM64
+ {531C23E7-4B76-4C08-8BBD-04164CB628C9}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32
{531C23E7-4B76-4C08-8BBD-04164CB628C9}.AuditMode|x64.ActiveCfg = Release|x64
{531C23E7-4B76-4C08-8BBD-04164CB628C9}.AuditMode|x86.ActiveCfg = Release|Win32
{531C23E7-4B76-4C08-8BBD-04164CB628C9}.Debug|Any CPU.ActiveCfg = Debug|Win32
{531C23E7-4B76-4C08-8BBD-04164CB628C9}.Debug|ARM64.ActiveCfg = Debug|ARM64
{531C23E7-4B76-4C08-8BBD-04164CB628C9}.Debug|ARM64.Build.0 = Debug|ARM64
+ {531C23E7-4B76-4C08-8BBD-04164CB628C9}.Debug|NET_Test.ActiveCfg = Debug|Win32
{531C23E7-4B76-4C08-8BBD-04164CB628C9}.Debug|x64.ActiveCfg = Debug|x64
{531C23E7-4B76-4C08-8BBD-04164CB628C9}.Debug|x64.Build.0 = Debug|x64
{531C23E7-4B76-4C08-8BBD-04164CB628C9}.Debug|x86.ActiveCfg = Debug|Win32
@@ -564,11 +602,13 @@ Global
{531C23E7-4B76-4C08-8BBD-04164CB628C9}.Release|x86.Build.0 = Release|Win32
{8CDB8850-7484-4EC7-B45B-181F85B2EE54}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32
{8CDB8850-7484-4EC7-B45B-181F85B2EE54}.AuditMode|ARM64.ActiveCfg = Release|ARM64
+ {8CDB8850-7484-4EC7-B45B-181F85B2EE54}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32
{8CDB8850-7484-4EC7-B45B-181F85B2EE54}.AuditMode|x64.ActiveCfg = Release|x64
{8CDB8850-7484-4EC7-B45B-181F85B2EE54}.AuditMode|x86.ActiveCfg = Release|Win32
{8CDB8850-7484-4EC7-B45B-181F85B2EE54}.Debug|Any CPU.ActiveCfg = Debug|Win32
{8CDB8850-7484-4EC7-B45B-181F85B2EE54}.Debug|ARM64.ActiveCfg = Debug|ARM64
{8CDB8850-7484-4EC7-B45B-181F85B2EE54}.Debug|ARM64.Build.0 = Debug|ARM64
+ {8CDB8850-7484-4EC7-B45B-181F85B2EE54}.Debug|NET_Test.ActiveCfg = Debug|Win32
{8CDB8850-7484-4EC7-B45B-181F85B2EE54}.Debug|x64.ActiveCfg = Debug|x64
{8CDB8850-7484-4EC7-B45B-181F85B2EE54}.Debug|x64.Build.0 = Debug|x64
{8CDB8850-7484-4EC7-B45B-181F85B2EE54}.Debug|x86.ActiveCfg = Debug|Win32
@@ -580,11 +620,13 @@ Global
{8CDB8850-7484-4EC7-B45B-181F85B2EE54}.Release|x86.ActiveCfg = Release|Win32
{12144E07-FE63-4D33-9231-748B8D8C3792}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32
{12144E07-FE63-4D33-9231-748B8D8C3792}.AuditMode|ARM64.ActiveCfg = Release|ARM64
+ {12144E07-FE63-4D33-9231-748B8D8C3792}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32
{12144E07-FE63-4D33-9231-748B8D8C3792}.AuditMode|x64.ActiveCfg = Release|x64
{12144E07-FE63-4D33-9231-748B8D8C3792}.AuditMode|x86.ActiveCfg = Release|Win32
{12144E07-FE63-4D33-9231-748B8D8C3792}.Debug|Any CPU.ActiveCfg = Debug|Win32
{12144E07-FE63-4D33-9231-748B8D8C3792}.Debug|ARM64.ActiveCfg = Debug|ARM64
{12144E07-FE63-4D33-9231-748B8D8C3792}.Debug|ARM64.Build.0 = Debug|ARM64
+ {12144E07-FE63-4D33-9231-748B8D8C3792}.Debug|NET_Test.ActiveCfg = Debug|Win32
{12144E07-FE63-4D33-9231-748B8D8C3792}.Debug|x64.ActiveCfg = Debug|x64
{12144E07-FE63-4D33-9231-748B8D8C3792}.Debug|x64.Build.0 = Debug|x64
{12144E07-FE63-4D33-9231-748B8D8C3792}.Debug|x86.ActiveCfg = Debug|Win32
@@ -598,11 +640,13 @@ Global
{12144E07-FE63-4D33-9231-748B8D8C3792}.Release|x86.Build.0 = Release|Win32
{6AF01638-84CF-4B65-9870-484DFFCAC772}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32
{6AF01638-84CF-4B65-9870-484DFFCAC772}.AuditMode|ARM64.ActiveCfg = Release|ARM64
+ {6AF01638-84CF-4B65-9870-484DFFCAC772}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32
{6AF01638-84CF-4B65-9870-484DFFCAC772}.AuditMode|x64.ActiveCfg = Release|x64
{6AF01638-84CF-4B65-9870-484DFFCAC772}.AuditMode|x86.ActiveCfg = Release|Win32
{6AF01638-84CF-4B65-9870-484DFFCAC772}.Debug|Any CPU.ActiveCfg = Debug|Win32
{6AF01638-84CF-4B65-9870-484DFFCAC772}.Debug|ARM64.ActiveCfg = Debug|ARM64
{6AF01638-84CF-4B65-9870-484DFFCAC772}.Debug|ARM64.Build.0 = Debug|ARM64
+ {6AF01638-84CF-4B65-9870-484DFFCAC772}.Debug|NET_Test.ActiveCfg = Debug|Win32
{6AF01638-84CF-4B65-9870-484DFFCAC772}.Debug|x64.ActiveCfg = Debug|x64
{6AF01638-84CF-4B65-9870-484DFFCAC772}.Debug|x64.Build.0 = Debug|x64
{6AF01638-84CF-4B65-9870-484DFFCAC772}.Debug|x86.ActiveCfg = Debug|Win32
@@ -616,11 +660,13 @@ Global
{6AF01638-84CF-4B65-9870-484DFFCAC772}.Release|x86.Build.0 = Release|Win32
{96927B31-D6E8-4ABD-B03E-A5088A30BEBE}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32
{96927B31-D6E8-4ABD-B03E-A5088A30BEBE}.AuditMode|ARM64.ActiveCfg = Release|ARM64
+ {96927B31-D6E8-4ABD-B03E-A5088A30BEBE}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32
{96927B31-D6E8-4ABD-B03E-A5088A30BEBE}.AuditMode|x64.ActiveCfg = Release|x64
{96927B31-D6E8-4ABD-B03E-A5088A30BEBE}.AuditMode|x86.ActiveCfg = Release|Win32
{96927B31-D6E8-4ABD-B03E-A5088A30BEBE}.Debug|Any CPU.ActiveCfg = Debug|Win32
{96927B31-D6E8-4ABD-B03E-A5088A30BEBE}.Debug|ARM64.ActiveCfg = Debug|ARM64
{96927B31-D6E8-4ABD-B03E-A5088A30BEBE}.Debug|ARM64.Build.0 = Debug|ARM64
+ {96927B31-D6E8-4ABD-B03E-A5088A30BEBE}.Debug|NET_Test.ActiveCfg = Debug|Win32
{96927B31-D6E8-4ABD-B03E-A5088A30BEBE}.Debug|x64.ActiveCfg = Debug|x64
{96927B31-D6E8-4ABD-B03E-A5088A30BEBE}.Debug|x64.Build.0 = Debug|x64
{96927B31-D6E8-4ABD-B03E-A5088A30BEBE}.Debug|x86.ActiveCfg = Debug|Win32
@@ -634,11 +680,13 @@ Global
{96927B31-D6E8-4ABD-B03E-A5088A30BEBE}.Release|x86.Build.0 = Release|Win32
{F210A4AE-E02A-4BFC-80BB-F50A672FE763}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32
{F210A4AE-E02A-4BFC-80BB-F50A672FE763}.AuditMode|ARM64.ActiveCfg = Release|ARM64
+ {F210A4AE-E02A-4BFC-80BB-F50A672FE763}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32
{F210A4AE-E02A-4BFC-80BB-F50A672FE763}.AuditMode|x64.ActiveCfg = Release|x64
{F210A4AE-E02A-4BFC-80BB-F50A672FE763}.AuditMode|x86.ActiveCfg = Release|Win32
{F210A4AE-E02A-4BFC-80BB-F50A672FE763}.Debug|Any CPU.ActiveCfg = Debug|Win32
{F210A4AE-E02A-4BFC-80BB-F50A672FE763}.Debug|ARM64.ActiveCfg = Debug|ARM64
{F210A4AE-E02A-4BFC-80BB-F50A672FE763}.Debug|ARM64.Build.0 = Debug|ARM64
+ {F210A4AE-E02A-4BFC-80BB-F50A672FE763}.Debug|NET_Test.ActiveCfg = Debug|Win32
{F210A4AE-E02A-4BFC-80BB-F50A672FE763}.Debug|x64.ActiveCfg = Debug|x64
{F210A4AE-E02A-4BFC-80BB-F50A672FE763}.Debug|x64.Build.0 = Debug|x64
{F210A4AE-E02A-4BFC-80BB-F50A672FE763}.Debug|x86.ActiveCfg = Debug|Win32
@@ -652,11 +700,13 @@ Global
{F210A4AE-E02A-4BFC-80BB-F50A672FE763}.Release|x86.Build.0 = Release|Win32
{5D23E8E1-3C64-4CC1-A8F7-6861677F7239}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32
{5D23E8E1-3C64-4CC1-A8F7-6861677F7239}.AuditMode|ARM64.ActiveCfg = Release|ARM64
+ {5D23E8E1-3C64-4CC1-A8F7-6861677F7239}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32
{5D23E8E1-3C64-4CC1-A8F7-6861677F7239}.AuditMode|x64.ActiveCfg = Release|x64
{5D23E8E1-3C64-4CC1-A8F7-6861677F7239}.AuditMode|x86.ActiveCfg = Release|Win32
{5D23E8E1-3C64-4CC1-A8F7-6861677F7239}.Debug|Any CPU.ActiveCfg = Debug|Win32
{5D23E8E1-3C64-4CC1-A8F7-6861677F7239}.Debug|ARM64.ActiveCfg = Debug|ARM64
{5D23E8E1-3C64-4CC1-A8F7-6861677F7239}.Debug|ARM64.Build.0 = Debug|ARM64
+ {5D23E8E1-3C64-4CC1-A8F7-6861677F7239}.Debug|NET_Test.ActiveCfg = Debug|Win32
{5D23E8E1-3C64-4CC1-A8F7-6861677F7239}.Debug|x64.ActiveCfg = Debug|x64
{5D23E8E1-3C64-4CC1-A8F7-6861677F7239}.Debug|x64.Build.0 = Debug|x64
{5D23E8E1-3C64-4CC1-A8F7-6861677F7239}.Debug|x86.ActiveCfg = Debug|Win32
@@ -670,11 +720,13 @@ Global
{5D23E8E1-3C64-4CC1-A8F7-6861677F7239}.Release|x86.Build.0 = Release|Win32
{18D09A24-8240-42D6-8CB6-236EEE820262}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32
{18D09A24-8240-42D6-8CB6-236EEE820262}.AuditMode|ARM64.ActiveCfg = Release|ARM64
+ {18D09A24-8240-42D6-8CB6-236EEE820262}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32
{18D09A24-8240-42D6-8CB6-236EEE820262}.AuditMode|x64.ActiveCfg = Release|x64
{18D09A24-8240-42D6-8CB6-236EEE820262}.AuditMode|x86.ActiveCfg = Release|Win32
{18D09A24-8240-42D6-8CB6-236EEE820262}.Debug|Any CPU.ActiveCfg = Debug|Win32
{18D09A24-8240-42D6-8CB6-236EEE820262}.Debug|ARM64.ActiveCfg = Debug|ARM64
{18D09A24-8240-42D6-8CB6-236EEE820262}.Debug|ARM64.Build.0 = Debug|ARM64
+ {18D09A24-8240-42D6-8CB6-236EEE820262}.Debug|NET_Test.ActiveCfg = Debug|Win32
{18D09A24-8240-42D6-8CB6-236EEE820262}.Debug|x64.ActiveCfg = Debug|x64
{18D09A24-8240-42D6-8CB6-236EEE820262}.Debug|x64.Build.0 = Debug|x64
{18D09A24-8240-42D6-8CB6-236EEE820262}.Debug|x86.ActiveCfg = Debug|Win32
@@ -688,10 +740,12 @@ Global
{18D09A24-8240-42D6-8CB6-236EEE820262}.Release|x86.Build.0 = Release|Win32
{C17E1BF3-9D34-4779-9458-A8EF98CC5662}.AuditMode|Any CPU.ActiveCfg = Debug|ARM64
{C17E1BF3-9D34-4779-9458-A8EF98CC5662}.AuditMode|ARM64.ActiveCfg = Debug|Win32
+ {C17E1BF3-9D34-4779-9458-A8EF98CC5662}.AuditMode|NET_Test.ActiveCfg = Debug|ARM64
{C17E1BF3-9D34-4779-9458-A8EF98CC5662}.AuditMode|x64.ActiveCfg = Release|x64
{C17E1BF3-9D34-4779-9458-A8EF98CC5662}.AuditMode|x86.ActiveCfg = Release|Win32
{C17E1BF3-9D34-4779-9458-A8EF98CC5662}.Debug|Any CPU.ActiveCfg = Debug|Win32
{C17E1BF3-9D34-4779-9458-A8EF98CC5662}.Debug|ARM64.ActiveCfg = Debug|Win32
+ {C17E1BF3-9D34-4779-9458-A8EF98CC5662}.Debug|NET_Test.ActiveCfg = Debug|Win32
{C17E1BF3-9D34-4779-9458-A8EF98CC5662}.Debug|x64.ActiveCfg = Debug|x64
{C17E1BF3-9D34-4779-9458-A8EF98CC5662}.Debug|x64.Build.0 = Debug|x64
{C17E1BF3-9D34-4779-9458-A8EF98CC5662}.Debug|x86.ActiveCfg = Debug|Win32
@@ -704,10 +758,12 @@ Global
{C17E1BF3-9D34-4779-9458-A8EF98CC5662}.Release|x86.Build.0 = Release|Win32
{099193A0-1E43-4BBC-BA7F-7B351E1342DF}.AuditMode|Any CPU.ActiveCfg = Debug|ARM64
{099193A0-1E43-4BBC-BA7F-7B351E1342DF}.AuditMode|ARM64.ActiveCfg = Debug|Win32
+ {099193A0-1E43-4BBC-BA7F-7B351E1342DF}.AuditMode|NET_Test.ActiveCfg = Debug|ARM64
{099193A0-1E43-4BBC-BA7F-7B351E1342DF}.AuditMode|x64.ActiveCfg = Release|x64
{099193A0-1E43-4BBC-BA7F-7B351E1342DF}.AuditMode|x86.ActiveCfg = Release|Win32
{099193A0-1E43-4BBC-BA7F-7B351E1342DF}.Debug|Any CPU.ActiveCfg = Debug|Win32
{099193A0-1E43-4BBC-BA7F-7B351E1342DF}.Debug|ARM64.ActiveCfg = Debug|Win32
+ {099193A0-1E43-4BBC-BA7F-7B351E1342DF}.Debug|NET_Test.ActiveCfg = Debug|Win32
{099193A0-1E43-4BBC-BA7F-7B351E1342DF}.Debug|x64.ActiveCfg = Debug|x64
{099193A0-1E43-4BBC-BA7F-7B351E1342DF}.Debug|x64.Build.0 = Debug|x64
{099193A0-1E43-4BBC-BA7F-7B351E1342DF}.Debug|x86.ActiveCfg = Debug|Win32
@@ -720,11 +776,13 @@ Global
{099193A0-1E43-4BBC-BA7F-7B351E1342DF}.Release|x86.Build.0 = Release|Win32
{FC802440-AD6A-4919-8F2C-7701F2B38D79}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32
{FC802440-AD6A-4919-8F2C-7701F2B38D79}.AuditMode|ARM64.ActiveCfg = Release|ARM64
+ {FC802440-AD6A-4919-8F2C-7701F2B38D79}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32
{FC802440-AD6A-4919-8F2C-7701F2B38D79}.AuditMode|x64.ActiveCfg = Release|x64
{FC802440-AD6A-4919-8F2C-7701F2B38D79}.AuditMode|x86.ActiveCfg = Release|Win32
{FC802440-AD6A-4919-8F2C-7701F2B38D79}.Debug|Any CPU.ActiveCfg = Debug|Win32
{FC802440-AD6A-4919-8F2C-7701F2B38D79}.Debug|ARM64.ActiveCfg = Debug|ARM64
{FC802440-AD6A-4919-8F2C-7701F2B38D79}.Debug|ARM64.Build.0 = Debug|ARM64
+ {FC802440-AD6A-4919-8F2C-7701F2B38D79}.Debug|NET_Test.ActiveCfg = Debug|Win32
{FC802440-AD6A-4919-8F2C-7701F2B38D79}.Debug|x64.ActiveCfg = Debug|x64
{FC802440-AD6A-4919-8F2C-7701F2B38D79}.Debug|x64.Build.0 = Debug|x64
{FC802440-AD6A-4919-8F2C-7701F2B38D79}.Debug|x86.ActiveCfg = Debug|Win32
@@ -738,11 +796,13 @@ Global
{FC802440-AD6A-4919-8F2C-7701F2B38D79}.Release|x86.Build.0 = Release|Win32
{919544AC-D39B-463F-8414-3C3C67CF727C}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32
{919544AC-D39B-463F-8414-3C3C67CF727C}.AuditMode|ARM64.ActiveCfg = Release|ARM64
+ {919544AC-D39B-463F-8414-3C3C67CF727C}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32
{919544AC-D39B-463F-8414-3C3C67CF727C}.AuditMode|x64.ActiveCfg = Release|x64
{919544AC-D39B-463F-8414-3C3C67CF727C}.AuditMode|x86.ActiveCfg = Release|Win32
{919544AC-D39B-463F-8414-3C3C67CF727C}.Debug|Any CPU.ActiveCfg = Debug|Win32
{919544AC-D39B-463F-8414-3C3C67CF727C}.Debug|ARM64.ActiveCfg = Debug|ARM64
{919544AC-D39B-463F-8414-3C3C67CF727C}.Debug|ARM64.Build.0 = Debug|ARM64
+ {919544AC-D39B-463F-8414-3C3C67CF727C}.Debug|NET_Test.ActiveCfg = Debug|Win32
{919544AC-D39B-463F-8414-3C3C67CF727C}.Debug|x64.ActiveCfg = Debug|x64
{919544AC-D39B-463F-8414-3C3C67CF727C}.Debug|x64.Build.0 = Debug|x64
{919544AC-D39B-463F-8414-3C3C67CF727C}.Debug|x86.ActiveCfg = Debug|Win32
@@ -756,11 +816,13 @@ Global
{919544AC-D39B-463F-8414-3C3C67CF727C}.Release|x86.Build.0 = Release|Win32
{ED82003F-FC5D-4E94-8B36-F480018ED064}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32
{ED82003F-FC5D-4E94-8B36-F480018ED064}.AuditMode|ARM64.ActiveCfg = Release|ARM64
+ {ED82003F-FC5D-4E94-8B36-F480018ED064}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32
{ED82003F-FC5D-4E94-8B36-F480018ED064}.AuditMode|x64.ActiveCfg = Release|x64
{ED82003F-FC5D-4E94-8B36-F480018ED064}.AuditMode|x86.ActiveCfg = Release|Win32
{ED82003F-FC5D-4E94-8B36-F480018ED064}.Debug|Any CPU.ActiveCfg = Debug|Win32
{ED82003F-FC5D-4E94-8B36-F480018ED064}.Debug|ARM64.ActiveCfg = Debug|ARM64
{ED82003F-FC5D-4E94-8B36-F480018ED064}.Debug|ARM64.Build.0 = Debug|ARM64
+ {ED82003F-FC5D-4E94-8B36-F480018ED064}.Debug|NET_Test.ActiveCfg = Debug|Win32
{ED82003F-FC5D-4E94-8B36-F480018ED064}.Debug|x64.ActiveCfg = Debug|x64
{ED82003F-FC5D-4E94-8B36-F480018ED064}.Debug|x64.Build.0 = Debug|x64
{ED82003F-FC5D-4E94-8B36-F480018ED064}.Debug|x86.ActiveCfg = Debug|Win32
@@ -774,11 +836,13 @@ Global
{ED82003F-FC5D-4E94-8B36-F480018ED064}.Release|x86.Build.0 = Release|Win32
{06EC74CB-9A12-429C-B551-8532EC964726}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32
{06EC74CB-9A12-429C-B551-8532EC964726}.AuditMode|ARM64.ActiveCfg = Release|ARM64
+ {06EC74CB-9A12-429C-B551-8532EC964726}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32
{06EC74CB-9A12-429C-B551-8532EC964726}.AuditMode|x64.ActiveCfg = Release|x64
{06EC74CB-9A12-429C-B551-8532EC964726}.AuditMode|x86.ActiveCfg = Release|Win32
{06EC74CB-9A12-429C-B551-8532EC964726}.Debug|Any CPU.ActiveCfg = Debug|Win32
{06EC74CB-9A12-429C-B551-8532EC964726}.Debug|ARM64.ActiveCfg = Debug|ARM64
{06EC74CB-9A12-429C-B551-8532EC964726}.Debug|ARM64.Build.0 = Debug|ARM64
+ {06EC74CB-9A12-429C-B551-8532EC964726}.Debug|NET_Test.ActiveCfg = Debug|Win32
{06EC74CB-9A12-429C-B551-8532EC964726}.Debug|x64.ActiveCfg = Debug|x64
{06EC74CB-9A12-429C-B551-8532EC964726}.Debug|x64.Build.0 = Debug|x64
{06EC74CB-9A12-429C-B551-8532EC964726}.Debug|x86.ActiveCfg = Debug|Win32
@@ -792,11 +856,13 @@ Global
{06EC74CB-9A12-429C-B551-8532EC964726}.Release|x86.Build.0 = Release|Win32
{ED82003F-FC5D-4E94-8B47-F480018ED064}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32
{ED82003F-FC5D-4E94-8B47-F480018ED064}.AuditMode|ARM64.ActiveCfg = Release|ARM64
+ {ED82003F-FC5D-4E94-8B47-F480018ED064}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32
{ED82003F-FC5D-4E94-8B47-F480018ED064}.AuditMode|x64.ActiveCfg = Release|x64
{ED82003F-FC5D-4E94-8B47-F480018ED064}.AuditMode|x86.ActiveCfg = Release|Win32
{ED82003F-FC5D-4E94-8B47-F480018ED064}.Debug|Any CPU.ActiveCfg = Debug|Win32
{ED82003F-FC5D-4E94-8B47-F480018ED064}.Debug|ARM64.ActiveCfg = Debug|ARM64
{ED82003F-FC5D-4E94-8B47-F480018ED064}.Debug|ARM64.Build.0 = Debug|ARM64
+ {ED82003F-FC5D-4E94-8B47-F480018ED064}.Debug|NET_Test.ActiveCfg = Debug|Win32
{ED82003F-FC5D-4E94-8B47-F480018ED064}.Debug|x64.ActiveCfg = Debug|x64
{ED82003F-FC5D-4E94-8B47-F480018ED064}.Debug|x64.Build.0 = Debug|x64
{ED82003F-FC5D-4E94-8B47-F480018ED064}.Debug|x86.ActiveCfg = Debug|Win32
@@ -810,11 +876,13 @@ Global
{ED82003F-FC5D-4E94-8B47-F480018ED064}.Release|x86.Build.0 = Release|Win32
{06EC74CB-9A12-429C-B551-8562EC964846}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32
{06EC74CB-9A12-429C-B551-8562EC964846}.AuditMode|ARM64.ActiveCfg = Release|ARM64
+ {06EC74CB-9A12-429C-B551-8562EC964846}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32
{06EC74CB-9A12-429C-B551-8562EC964846}.AuditMode|x64.ActiveCfg = Release|x64
{06EC74CB-9A12-429C-B551-8562EC964846}.AuditMode|x86.ActiveCfg = Release|Win32
{06EC74CB-9A12-429C-B551-8562EC964846}.Debug|Any CPU.ActiveCfg = Debug|Win32
{06EC74CB-9A12-429C-B551-8562EC964846}.Debug|ARM64.ActiveCfg = Debug|ARM64
{06EC74CB-9A12-429C-B551-8562EC964846}.Debug|ARM64.Build.0 = Debug|ARM64
+ {06EC74CB-9A12-429C-B551-8562EC964846}.Debug|NET_Test.ActiveCfg = Debug|Win32
{06EC74CB-9A12-429C-B551-8562EC964846}.Debug|x64.ActiveCfg = Debug|x64
{06EC74CB-9A12-429C-B551-8562EC964846}.Debug|x64.Build.0 = Debug|x64
{06EC74CB-9A12-429C-B551-8562EC964846}.Debug|x86.ActiveCfg = Debug|Win32
@@ -828,11 +896,13 @@ Global
{06EC74CB-9A12-429C-B551-8562EC964846}.Release|x86.Build.0 = Release|Win32
{D3B92829-26CB-411A-BDA2-7F5DA3D25DD4}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32
{D3B92829-26CB-411A-BDA2-7F5DA3D25DD4}.AuditMode|ARM64.ActiveCfg = Release|ARM64
+ {D3B92829-26CB-411A-BDA2-7F5DA3D25DD4}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32
{D3B92829-26CB-411A-BDA2-7F5DA3D25DD4}.AuditMode|x64.ActiveCfg = Release|x64
{D3B92829-26CB-411A-BDA2-7F5DA3D25DD4}.AuditMode|x86.ActiveCfg = Release|Win32
{D3B92829-26CB-411A-BDA2-7F5DA3D25DD4}.Debug|Any CPU.ActiveCfg = Debug|Win32
{D3B92829-26CB-411A-BDA2-7F5DA3D25DD4}.Debug|ARM64.ActiveCfg = Debug|ARM64
{D3B92829-26CB-411A-BDA2-7F5DA3D25DD4}.Debug|ARM64.Build.0 = Debug|ARM64
+ {D3B92829-26CB-411A-BDA2-7F5DA3D25DD4}.Debug|NET_Test.ActiveCfg = Debug|Win32
{D3B92829-26CB-411A-BDA2-7F5DA3D25DD4}.Debug|x64.ActiveCfg = Debug|x64
{D3B92829-26CB-411A-BDA2-7F5DA3D25DD4}.Debug|x64.Build.0 = Debug|x64
{D3B92829-26CB-411A-BDA2-7F5DA3D25DD4}.Debug|x86.ActiveCfg = Debug|Win32
@@ -846,11 +916,13 @@ Global
{D3B92829-26CB-411A-BDA2-7F5DA3D25DD4}.Release|x86.Build.0 = Release|Win32
{C7A6A5D9-60BE-4AEB-A5F6-AFE352F86CBB}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32
{C7A6A5D9-60BE-4AEB-A5F6-AFE352F86CBB}.AuditMode|ARM64.ActiveCfg = Release|ARM64
+ {C7A6A5D9-60BE-4AEB-A5F6-AFE352F86CBB}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32
{C7A6A5D9-60BE-4AEB-A5F6-AFE352F86CBB}.AuditMode|x64.ActiveCfg = Release|x64
{C7A6A5D9-60BE-4AEB-A5F6-AFE352F86CBB}.AuditMode|x86.ActiveCfg = Release|Win32
{C7A6A5D9-60BE-4AEB-A5F6-AFE352F86CBB}.Debug|Any CPU.ActiveCfg = Debug|Win32
{C7A6A5D9-60BE-4AEB-A5F6-AFE352F86CBB}.Debug|ARM64.ActiveCfg = Debug|ARM64
{C7A6A5D9-60BE-4AEB-A5F6-AFE352F86CBB}.Debug|ARM64.Build.0 = Debug|ARM64
+ {C7A6A5D9-60BE-4AEB-A5F6-AFE352F86CBB}.Debug|NET_Test.ActiveCfg = Debug|Win32
{C7A6A5D9-60BE-4AEB-A5F6-AFE352F86CBB}.Debug|x64.ActiveCfg = Debug|x64
{C7A6A5D9-60BE-4AEB-A5F6-AFE352F86CBB}.Debug|x64.Build.0 = Debug|x64
{C7A6A5D9-60BE-4AEB-A5F6-AFE352F86CBB}.Debug|x86.ActiveCfg = Debug|Win32
@@ -864,11 +936,13 @@ Global
{C7A6A5D9-60BE-4AEB-A5F6-AFE352F86CBB}.Release|x86.Build.0 = Release|Win32
{990F2657-8580-4828-943F-5DD657D11842}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32
{990F2657-8580-4828-943F-5DD657D11842}.AuditMode|ARM64.ActiveCfg = Release|ARM64
+ {990F2657-8580-4828-943F-5DD657D11842}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32
{990F2657-8580-4828-943F-5DD657D11842}.AuditMode|x64.ActiveCfg = Release|x64
{990F2657-8580-4828-943F-5DD657D11842}.AuditMode|x86.ActiveCfg = Release|Win32
{990F2657-8580-4828-943F-5DD657D11842}.Debug|Any CPU.ActiveCfg = Debug|Win32
{990F2657-8580-4828-943F-5DD657D11842}.Debug|ARM64.ActiveCfg = Debug|ARM64
{990F2657-8580-4828-943F-5DD657D11842}.Debug|ARM64.Build.0 = Debug|ARM64
+ {990F2657-8580-4828-943F-5DD657D11842}.Debug|NET_Test.ActiveCfg = Debug|Win32
{990F2657-8580-4828-943F-5DD657D11842}.Debug|x64.ActiveCfg = Debug|x64
{990F2657-8580-4828-943F-5DD657D11842}.Debug|x64.Build.0 = Debug|x64
{990F2657-8580-4828-943F-5DD657D11842}.Debug|x86.ActiveCfg = Debug|Win32
@@ -882,11 +956,13 @@ Global
{990F2657-8580-4828-943F-5DD657D11842}.Release|x86.Build.0 = Release|Win32
{814DBDDE-894E-4327-A6E1-740504850098}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32
{814DBDDE-894E-4327-A6E1-740504850098}.AuditMode|ARM64.ActiveCfg = Release|ARM64
+ {814DBDDE-894E-4327-A6E1-740504850098}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32
{814DBDDE-894E-4327-A6E1-740504850098}.AuditMode|x64.ActiveCfg = Release|x64
{814DBDDE-894E-4327-A6E1-740504850098}.AuditMode|x86.ActiveCfg = Release|Win32
{814DBDDE-894E-4327-A6E1-740504850098}.Debug|Any CPU.ActiveCfg = Debug|Win32
{814DBDDE-894E-4327-A6E1-740504850098}.Debug|ARM64.ActiveCfg = Debug|ARM64
{814DBDDE-894E-4327-A6E1-740504850098}.Debug|ARM64.Build.0 = Debug|ARM64
+ {814DBDDE-894E-4327-A6E1-740504850098}.Debug|NET_Test.ActiveCfg = Debug|Win32
{814DBDDE-894E-4327-A6E1-740504850098}.Debug|x64.ActiveCfg = Debug|x64
{814DBDDE-894E-4327-A6E1-740504850098}.Debug|x64.Build.0 = Debug|x64
{814DBDDE-894E-4327-A6E1-740504850098}.Debug|x86.ActiveCfg = Debug|Win32
@@ -900,11 +976,13 @@ Global
{814DBDDE-894E-4327-A6E1-740504850098}.Release|x86.Build.0 = Release|Win32
{814CBEEE-894E-4327-A6E1-740504850098}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32
{814CBEEE-894E-4327-A6E1-740504850098}.AuditMode|ARM64.ActiveCfg = Release|ARM64
+ {814CBEEE-894E-4327-A6E1-740504850098}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32
{814CBEEE-894E-4327-A6E1-740504850098}.AuditMode|x64.ActiveCfg = Release|x64
{814CBEEE-894E-4327-A6E1-740504850098}.AuditMode|x86.ActiveCfg = Release|Win32
{814CBEEE-894E-4327-A6E1-740504850098}.Debug|Any CPU.ActiveCfg = Debug|Win32
{814CBEEE-894E-4327-A6E1-740504850098}.Debug|ARM64.ActiveCfg = Debug|ARM64
{814CBEEE-894E-4327-A6E1-740504850098}.Debug|ARM64.Build.0 = Debug|ARM64
+ {814CBEEE-894E-4327-A6E1-740504850098}.Debug|NET_Test.ActiveCfg = Debug|Win32
{814CBEEE-894E-4327-A6E1-740504850098}.Debug|x64.ActiveCfg = Debug|x64
{814CBEEE-894E-4327-A6E1-740504850098}.Debug|x64.Build.0 = Debug|x64
{814CBEEE-894E-4327-A6E1-740504850098}.Debug|x86.ActiveCfg = Debug|Win32
@@ -919,6 +997,7 @@ Global
{18D09A24-8240-42D6-8CB6-236EEE820263}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32
{18D09A24-8240-42D6-8CB6-236EEE820263}.AuditMode|ARM64.ActiveCfg = AuditMode|ARM64
{18D09A24-8240-42D6-8CB6-236EEE820263}.AuditMode|ARM64.Build.0 = AuditMode|ARM64
+ {18D09A24-8240-42D6-8CB6-236EEE820263}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32
{18D09A24-8240-42D6-8CB6-236EEE820263}.AuditMode|x64.ActiveCfg = AuditMode|x64
{18D09A24-8240-42D6-8CB6-236EEE820263}.AuditMode|x64.Build.0 = AuditMode|x64
{18D09A24-8240-42D6-8CB6-236EEE820263}.AuditMode|x86.ActiveCfg = AuditMode|Win32
@@ -926,6 +1005,8 @@ Global
{18D09A24-8240-42D6-8CB6-236EEE820263}.Debug|Any CPU.ActiveCfg = Debug|Win32
{18D09A24-8240-42D6-8CB6-236EEE820263}.Debug|ARM64.ActiveCfg = Debug|ARM64
{18D09A24-8240-42D6-8CB6-236EEE820263}.Debug|ARM64.Build.0 = Debug|ARM64
+ {18D09A24-8240-42D6-8CB6-236EEE820263}.Debug|NET_Test.ActiveCfg = Debug|x64
+ {18D09A24-8240-42D6-8CB6-236EEE820263}.Debug|NET_Test.Build.0 = Debug|x64
{18D09A24-8240-42D6-8CB6-236EEE820263}.Debug|x64.ActiveCfg = Debug|x64
{18D09A24-8240-42D6-8CB6-236EEE820263}.Debug|x64.Build.0 = Debug|x64
{18D09A24-8240-42D6-8CB6-236EEE820263}.Debug|x86.ActiveCfg = Debug|Win32
@@ -939,11 +1020,13 @@ Global
{18D09A24-8240-42D6-8CB6-236EEE820263}.Release|x86.Build.0 = Release|Win32
{990F2657-8580-4828-943F-5DD657D11843}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32
{990F2657-8580-4828-943F-5DD657D11843}.AuditMode|ARM64.ActiveCfg = Release|ARM64
+ {990F2657-8580-4828-943F-5DD657D11843}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32
{990F2657-8580-4828-943F-5DD657D11843}.AuditMode|x64.ActiveCfg = Release|x64
{990F2657-8580-4828-943F-5DD657D11843}.AuditMode|x86.ActiveCfg = Release|Win32
{990F2657-8580-4828-943F-5DD657D11843}.Debug|Any CPU.ActiveCfg = Debug|Win32
{990F2657-8580-4828-943F-5DD657D11843}.Debug|ARM64.ActiveCfg = Debug|ARM64
{990F2657-8580-4828-943F-5DD657D11843}.Debug|ARM64.Build.0 = Debug|ARM64
+ {990F2657-8580-4828-943F-5DD657D11843}.Debug|NET_Test.ActiveCfg = Debug|Win32
{990F2657-8580-4828-943F-5DD657D11843}.Debug|x64.ActiveCfg = Debug|x64
{990F2657-8580-4828-943F-5DD657D11843}.Debug|x64.Build.0 = Debug|x64
{990F2657-8580-4828-943F-5DD657D11843}.Debug|x86.ActiveCfg = Debug|Win32
@@ -958,6 +1041,7 @@ Global
{0CF235BD-2DA0-407E-90EE-C467E8BBC714}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32
{0CF235BD-2DA0-407E-90EE-C467E8BBC714}.AuditMode|ARM64.ActiveCfg = AuditMode|ARM64
{0CF235BD-2DA0-407E-90EE-C467E8BBC714}.AuditMode|ARM64.Build.0 = AuditMode|ARM64
+ {0CF235BD-2DA0-407E-90EE-C467E8BBC714}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32
{0CF235BD-2DA0-407E-90EE-C467E8BBC714}.AuditMode|x64.ActiveCfg = AuditMode|x64
{0CF235BD-2DA0-407E-90EE-C467E8BBC714}.AuditMode|x64.Build.0 = AuditMode|x64
{0CF235BD-2DA0-407E-90EE-C467E8BBC714}.AuditMode|x86.ActiveCfg = AuditMode|Win32
@@ -965,6 +1049,8 @@ Global
{0CF235BD-2DA0-407E-90EE-C467E8BBC714}.Debug|Any CPU.ActiveCfg = Debug|Win32
{0CF235BD-2DA0-407E-90EE-C467E8BBC714}.Debug|ARM64.ActiveCfg = Debug|ARM64
{0CF235BD-2DA0-407E-90EE-C467E8BBC714}.Debug|ARM64.Build.0 = Debug|ARM64
+ {0CF235BD-2DA0-407E-90EE-C467E8BBC714}.Debug|NET_Test.ActiveCfg = Debug|x64
+ {0CF235BD-2DA0-407E-90EE-C467E8BBC714}.Debug|NET_Test.Build.0 = Debug|x64
{0CF235BD-2DA0-407E-90EE-C467E8BBC714}.Debug|x64.ActiveCfg = Debug|x64
{0CF235BD-2DA0-407E-90EE-C467E8BBC714}.Debug|x64.Build.0 = Debug|x64
{0CF235BD-2DA0-407E-90EE-C467E8BBC714}.Debug|x86.ActiveCfg = Debug|Win32
@@ -979,6 +1065,7 @@ Global
{48D21369-3D7B-4431-9967-24E81292CF62}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32
{48D21369-3D7B-4431-9967-24E81292CF62}.AuditMode|ARM64.ActiveCfg = AuditMode|ARM64
{48D21369-3D7B-4431-9967-24E81292CF62}.AuditMode|ARM64.Build.0 = AuditMode|ARM64
+ {48D21369-3D7B-4431-9967-24E81292CF62}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32
{48D21369-3D7B-4431-9967-24E81292CF62}.AuditMode|x64.ActiveCfg = AuditMode|x64
{48D21369-3D7B-4431-9967-24E81292CF62}.AuditMode|x64.Build.0 = AuditMode|x64
{48D21369-3D7B-4431-9967-24E81292CF62}.AuditMode|x86.ActiveCfg = AuditMode|Win32
@@ -986,6 +1073,8 @@ Global
{48D21369-3D7B-4431-9967-24E81292CF62}.Debug|Any CPU.ActiveCfg = Debug|Win32
{48D21369-3D7B-4431-9967-24E81292CF62}.Debug|ARM64.ActiveCfg = Debug|ARM64
{48D21369-3D7B-4431-9967-24E81292CF62}.Debug|ARM64.Build.0 = Debug|ARM64
+ {48D21369-3D7B-4431-9967-24E81292CF62}.Debug|NET_Test.ActiveCfg = Debug|x64
+ {48D21369-3D7B-4431-9967-24E81292CF62}.Debug|NET_Test.Build.0 = Debug|x64
{48D21369-3D7B-4431-9967-24E81292CF62}.Debug|x64.ActiveCfg = Debug|x64
{48D21369-3D7B-4431-9967-24E81292CF62}.Debug|x64.Build.0 = Debug|x64
{48D21369-3D7B-4431-9967-24E81292CF62}.Debug|x86.ActiveCfg = Debug|Win32
@@ -999,12 +1088,14 @@ Global
{48D21369-3D7B-4431-9967-24E81292CF62}.Release|x86.Build.0 = Release|Win32
{CA5CAD1A-C46D-4588-B1C0-40F31AE9100B}.AuditMode|Any CPU.ActiveCfg = Debug|Win32
{CA5CAD1A-C46D-4588-B1C0-40F31AE9100B}.AuditMode|ARM64.ActiveCfg = Release|ARM64
+ {CA5CAD1A-C46D-4588-B1C0-40F31AE9100B}.AuditMode|NET_Test.ActiveCfg = Debug|Win32
{CA5CAD1A-C46D-4588-B1C0-40F31AE9100B}.AuditMode|x64.ActiveCfg = AuditMode|x64
{CA5CAD1A-C46D-4588-B1C0-40F31AE9100B}.AuditMode|x64.Build.0 = AuditMode|x64
{CA5CAD1A-C46D-4588-B1C0-40F31AE9100B}.AuditMode|x86.ActiveCfg = Release|Win32
{CA5CAD1A-C46D-4588-B1C0-40F31AE9100B}.Debug|Any CPU.ActiveCfg = Debug|Win32
{CA5CAD1A-C46D-4588-B1C0-40F31AE9100B}.Debug|ARM64.ActiveCfg = Debug|ARM64
{CA5CAD1A-C46D-4588-B1C0-40F31AE9100B}.Debug|ARM64.Build.0 = Debug|ARM64
+ {CA5CAD1A-C46D-4588-B1C0-40F31AE9100B}.Debug|NET_Test.ActiveCfg = Debug|Win32
{CA5CAD1A-C46D-4588-B1C0-40F31AE9100B}.Debug|x64.ActiveCfg = Debug|x64
{CA5CAD1A-C46D-4588-B1C0-40F31AE9100B}.Debug|x64.Build.0 = Debug|x64
{CA5CAD1A-C46D-4588-B1C0-40F31AE9100B}.Debug|x86.ActiveCfg = Debug|Win32
@@ -1018,12 +1109,15 @@ Global
{CA5CAD1A-C46D-4588-B1C0-40F31AE9100B}.Release|x86.Build.0 = Release|Win32
{CA5CAD1A-ABCD-429C-B551-8562EC954746}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32
{CA5CAD1A-ABCD-429C-B551-8562EC954746}.AuditMode|ARM64.ActiveCfg = Release|ARM64
+ {CA5CAD1A-ABCD-429C-B551-8562EC954746}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32
{CA5CAD1A-ABCD-429C-B551-8562EC954746}.AuditMode|x64.ActiveCfg = AuditMode|x64
{CA5CAD1A-ABCD-429C-B551-8562EC954746}.AuditMode|x64.Build.0 = AuditMode|x64
{CA5CAD1A-ABCD-429C-B551-8562EC954746}.AuditMode|x86.ActiveCfg = Release|Win32
{CA5CAD1A-ABCD-429C-B551-8562EC954746}.Debug|Any CPU.ActiveCfg = Debug|Win32
{CA5CAD1A-ABCD-429C-B551-8562EC954746}.Debug|ARM64.ActiveCfg = Debug|ARM64
{CA5CAD1A-ABCD-429C-B551-8562EC954746}.Debug|ARM64.Build.0 = Debug|ARM64
+ {CA5CAD1A-ABCD-429C-B551-8562EC954746}.Debug|NET_Test.ActiveCfg = Debug|x64
+ {CA5CAD1A-ABCD-429C-B551-8562EC954746}.Debug|NET_Test.Build.0 = Debug|x64
{CA5CAD1A-ABCD-429C-B551-8562EC954746}.Debug|x64.ActiveCfg = Debug|x64
{CA5CAD1A-ABCD-429C-B551-8562EC954746}.Debug|x64.Build.0 = Debug|x64
{CA5CAD1A-ABCD-429C-B551-8562EC954746}.Debug|x86.ActiveCfg = Debug|Win32
@@ -1037,11 +1131,13 @@ Global
{CA5CAD1A-ABCD-429C-B551-8562EC954746}.Release|x86.Build.0 = Release|Win32
{CA5CAD1A-44BD-4AC7-AC72-6CA5B3AB89ED}.AuditMode|Any CPU.ActiveCfg = Debug|Win32
{CA5CAD1A-44BD-4AC7-AC72-6CA5B3AB89ED}.AuditMode|ARM64.ActiveCfg = Release|ARM64
+ {CA5CAD1A-44BD-4AC7-AC72-6CA5B3AB89ED}.AuditMode|NET_Test.ActiveCfg = Debug|Win32
{CA5CAD1A-44BD-4AC7-AC72-6CA5B3AB89ED}.AuditMode|x64.ActiveCfg = Release|x64
{CA5CAD1A-44BD-4AC7-AC72-6CA5B3AB89ED}.AuditMode|x86.ActiveCfg = Release|Win32
{CA5CAD1A-44BD-4AC7-AC72-6CA5B3AB89ED}.Debug|Any CPU.ActiveCfg = Debug|Win32
{CA5CAD1A-44BD-4AC7-AC72-6CA5B3AB89ED}.Debug|ARM64.ActiveCfg = Debug|ARM64
{CA5CAD1A-44BD-4AC7-AC72-6CA5B3AB89ED}.Debug|ARM64.Build.0 = Debug|ARM64
+ {CA5CAD1A-44BD-4AC7-AC72-6CA5B3AB89ED}.Debug|NET_Test.ActiveCfg = Debug|Win32
{CA5CAD1A-44BD-4AC7-AC72-6CA5B3AB89ED}.Debug|x64.ActiveCfg = Debug|x64
{CA5CAD1A-44BD-4AC7-AC72-6CA5B3AB89ED}.Debug|x64.Build.0 = Debug|x64
{CA5CAD1A-44BD-4AC7-AC72-6CA5B3AB89ED}.Debug|x86.ActiveCfg = Debug|Win32
@@ -1055,11 +1151,13 @@ Global
{CA5CAD1A-44BD-4AC7-AC72-6CA5B3AB89ED}.Release|x86.Build.0 = Release|Win32
{CA5CAD1A-1754-4A9D-93D7-857A9D17CB1B}.AuditMode|Any CPU.ActiveCfg = Debug|x64
{CA5CAD1A-1754-4A9D-93D7-857A9D17CB1B}.AuditMode|ARM64.ActiveCfg = Release|ARM64
+ {CA5CAD1A-1754-4A9D-93D7-857A9D17CB1B}.AuditMode|NET_Test.ActiveCfg = Debug|x64
{CA5CAD1A-1754-4A9D-93D7-857A9D17CB1B}.AuditMode|x64.ActiveCfg = Release|x64
{CA5CAD1A-1754-4A9D-93D7-857A9D17CB1B}.AuditMode|x86.ActiveCfg = Release|Win32
{CA5CAD1A-1754-4A9D-93D7-857A9D17CB1B}.Debug|Any CPU.ActiveCfg = Debug|Win32
{CA5CAD1A-1754-4A9D-93D7-857A9D17CB1B}.Debug|ARM64.ActiveCfg = Debug|ARM64
{CA5CAD1A-1754-4A9D-93D7-857A9D17CB1B}.Debug|ARM64.Build.0 = Debug|ARM64
+ {CA5CAD1A-1754-4A9D-93D7-857A9D17CB1B}.Debug|NET_Test.ActiveCfg = Debug|Win32
{CA5CAD1A-1754-4A9D-93D7-857A9D17CB1B}.Debug|x64.ActiveCfg = Debug|x64
{CA5CAD1A-1754-4A9D-93D7-857A9D17CB1B}.Debug|x64.Build.0 = Debug|x64
{CA5CAD1A-1754-4A9D-93D7-857A9D17CB1B}.Debug|x86.ActiveCfg = Debug|Win32
@@ -1073,11 +1171,13 @@ Global
{CA5CAD1A-1754-4A9D-93D7-857A9D17CB1B}.Release|x86.Build.0 = Release|Win32
{CA5CAD1A-44BD-4AC7-AC72-F16E576FDD12}.AuditMode|Any CPU.ActiveCfg = Debug|Win32
{CA5CAD1A-44BD-4AC7-AC72-F16E576FDD12}.AuditMode|ARM64.ActiveCfg = Release|ARM64
+ {CA5CAD1A-44BD-4AC7-AC72-F16E576FDD12}.AuditMode|NET_Test.ActiveCfg = Debug|Win32
{CA5CAD1A-44BD-4AC7-AC72-F16E576FDD12}.AuditMode|x64.ActiveCfg = Release|x64
{CA5CAD1A-44BD-4AC7-AC72-F16E576FDD12}.AuditMode|x86.ActiveCfg = Release|Win32
{CA5CAD1A-44BD-4AC7-AC72-F16E576FDD12}.Debug|Any CPU.ActiveCfg = Debug|Win32
{CA5CAD1A-44BD-4AC7-AC72-F16E576FDD12}.Debug|ARM64.ActiveCfg = Debug|ARM64
{CA5CAD1A-44BD-4AC7-AC72-F16E576FDD12}.Debug|ARM64.Build.0 = Debug|ARM64
+ {CA5CAD1A-44BD-4AC7-AC72-F16E576FDD12}.Debug|NET_Test.ActiveCfg = Debug|Win32
{CA5CAD1A-44BD-4AC7-AC72-F16E576FDD12}.Debug|x64.ActiveCfg = Debug|x64
{CA5CAD1A-44BD-4AC7-AC72-F16E576FDD12}.Debug|x64.Build.0 = Debug|x64
{CA5CAD1A-44BD-4AC7-AC72-F16E576FDD12}.Debug|x86.ActiveCfg = Debug|Win32
@@ -1091,12 +1191,15 @@ Global
{CA5CAD1A-44BD-4AC7-AC72-F16E576FDD12}.Release|x86.Build.0 = Release|Win32
{CA5CAD1A-D7EC-4107-B7C6-79CB77AE2907}.AuditMode|Any CPU.ActiveCfg = Debug|Win32
{CA5CAD1A-D7EC-4107-B7C6-79CB77AE2907}.AuditMode|ARM64.ActiveCfg = Release|ARM64
+ {CA5CAD1A-D7EC-4107-B7C6-79CB77AE2907}.AuditMode|NET_Test.ActiveCfg = Debug|Win32
{CA5CAD1A-D7EC-4107-B7C6-79CB77AE2907}.AuditMode|x64.ActiveCfg = AuditMode|x64
{CA5CAD1A-D7EC-4107-B7C6-79CB77AE2907}.AuditMode|x64.Build.0 = AuditMode|x64
{CA5CAD1A-D7EC-4107-B7C6-79CB77AE2907}.AuditMode|x86.ActiveCfg = Release|Win32
{CA5CAD1A-D7EC-4107-B7C6-79CB77AE2907}.Debug|Any CPU.ActiveCfg = Debug|Win32
{CA5CAD1A-D7EC-4107-B7C6-79CB77AE2907}.Debug|ARM64.ActiveCfg = Debug|ARM64
{CA5CAD1A-D7EC-4107-B7C6-79CB77AE2907}.Debug|ARM64.Build.0 = Debug|ARM64
+ {CA5CAD1A-D7EC-4107-B7C6-79CB77AE2907}.Debug|NET_Test.ActiveCfg = Debug|x64
+ {CA5CAD1A-D7EC-4107-B7C6-79CB77AE2907}.Debug|NET_Test.Build.0 = Debug|x64
{CA5CAD1A-D7EC-4107-B7C6-79CB77AE2907}.Debug|x64.ActiveCfg = Debug|x64
{CA5CAD1A-D7EC-4107-B7C6-79CB77AE2907}.Debug|x64.Build.0 = Debug|x64
{CA5CAD1A-D7EC-4107-B7C6-79CB77AE2907}.Debug|x86.ActiveCfg = Debug|Win32
@@ -1110,11 +1213,13 @@ Global
{CA5CAD1A-D7EC-4107-B7C6-79CB77AE2907}.Release|x86.Build.0 = Release|Win32
{2C2BEEF4-9333-4D05-B12A-1905CBF112F9}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32
{2C2BEEF4-9333-4D05-B12A-1905CBF112F9}.AuditMode|ARM64.ActiveCfg = AuditMode|ARM64
+ {2C2BEEF4-9333-4D05-B12A-1905CBF112F9}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32
{2C2BEEF4-9333-4D05-B12A-1905CBF112F9}.AuditMode|x64.ActiveCfg = AuditMode|x64
{2C2BEEF4-9333-4D05-B12A-1905CBF112F9}.AuditMode|x86.ActiveCfg = AuditMode|Win32
{2C2BEEF4-9333-4D05-B12A-1905CBF112F9}.Debug|Any CPU.ActiveCfg = Debug|Win32
{2C2BEEF4-9333-4D05-B12A-1905CBF112F9}.Debug|ARM64.ActiveCfg = Debug|ARM64
{2C2BEEF4-9333-4D05-B12A-1905CBF112F9}.Debug|ARM64.Build.0 = Debug|ARM64
+ {2C2BEEF4-9333-4D05-B12A-1905CBF112F9}.Debug|NET_Test.ActiveCfg = Debug|Win32
{2C2BEEF4-9333-4D05-B12A-1905CBF112F9}.Debug|x64.ActiveCfg = Debug|x64
{2C2BEEF4-9333-4D05-B12A-1905CBF112F9}.Debug|x64.Build.0 = Debug|x64
{2C2BEEF4-9333-4D05-B12A-1905CBF112F9}.Debug|x86.ActiveCfg = Debug|Win32
@@ -1129,6 +1234,7 @@ Global
{EF3E32A7-5FF6-42B4-B6E2-96CD7D033F00}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32
{EF3E32A7-5FF6-42B4-B6E2-96CD7D033F00}.AuditMode|ARM64.ActiveCfg = AuditMode|ARM64
{EF3E32A7-5FF6-42B4-B6E2-96CD7D033F00}.AuditMode|ARM64.Build.0 = AuditMode|ARM64
+ {EF3E32A7-5FF6-42B4-B6E2-96CD7D033F00}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32
{EF3E32A7-5FF6-42B4-B6E2-96CD7D033F00}.AuditMode|x64.ActiveCfg = AuditMode|x64
{EF3E32A7-5FF6-42B4-B6E2-96CD7D033F00}.AuditMode|x64.Build.0 = AuditMode|x64
{EF3E32A7-5FF6-42B4-B6E2-96CD7D033F00}.AuditMode|x86.ActiveCfg = AuditMode|Win32
@@ -1136,6 +1242,7 @@ Global
{EF3E32A7-5FF6-42B4-B6E2-96CD7D033F00}.Debug|Any CPU.ActiveCfg = Debug|Win32
{EF3E32A7-5FF6-42B4-B6E2-96CD7D033F00}.Debug|ARM64.ActiveCfg = Debug|ARM64
{EF3E32A7-5FF6-42B4-B6E2-96CD7D033F00}.Debug|ARM64.Build.0 = Debug|ARM64
+ {EF3E32A7-5FF6-42B4-B6E2-96CD7D033F00}.Debug|NET_Test.ActiveCfg = Debug|Win32
{EF3E32A7-5FF6-42B4-B6E2-96CD7D033F00}.Debug|x64.ActiveCfg = Debug|x64
{EF3E32A7-5FF6-42B4-B6E2-96CD7D033F00}.Debug|x64.Build.0 = Debug|x64
{EF3E32A7-5FF6-42B4-B6E2-96CD7D033F00}.Debug|x86.ActiveCfg = Debug|Win32
@@ -1149,11 +1256,13 @@ Global
{EF3E32A7-5FF6-42B4-B6E2-96CD7D033F00}.Release|x86.Build.0 = Release|Win32
{34DE34D3-1CD6-4EE3-8BD9-A26B5B27EC73}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32
{34DE34D3-1CD6-4EE3-8BD9-A26B5B27EC73}.AuditMode|ARM64.ActiveCfg = AuditMode|ARM64
+ {34DE34D3-1CD6-4EE3-8BD9-A26B5B27EC73}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32
{34DE34D3-1CD6-4EE3-8BD9-A26B5B27EC73}.AuditMode|x64.ActiveCfg = AuditMode|x64
{34DE34D3-1CD6-4EE3-8BD9-A26B5B27EC73}.AuditMode|x86.ActiveCfg = AuditMode|Win32
{34DE34D3-1CD6-4EE3-8BD9-A26B5B27EC73}.Debug|Any CPU.ActiveCfg = Debug|Win32
{34DE34D3-1CD6-4EE3-8BD9-A26B5B27EC73}.Debug|ARM64.ActiveCfg = Debug|ARM64
{34DE34D3-1CD6-4EE3-8BD9-A26B5B27EC73}.Debug|ARM64.Build.0 = Debug|ARM64
+ {34DE34D3-1CD6-4EE3-8BD9-A26B5B27EC73}.Debug|NET_Test.ActiveCfg = Debug|Win32
{34DE34D3-1CD6-4EE3-8BD9-A26B5B27EC73}.Debug|x64.ActiveCfg = Debug|x64
{34DE34D3-1CD6-4EE3-8BD9-A26B5B27EC73}.Debug|x64.Build.0 = Debug|x64
{34DE34D3-1CD6-4EE3-8BD9-A26B5B27EC73}.Debug|x86.ActiveCfg = Debug|Win32
@@ -1167,12 +1276,15 @@ Global
{34DE34D3-1CD6-4EE3-8BD9-A26B5B27EC73}.Release|x86.Build.0 = Release|Win32
{84848BFA-931D-42CE-9ADF-01EE54DE7890}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32
{84848BFA-931D-42CE-9ADF-01EE54DE7890}.AuditMode|ARM64.ActiveCfg = AuditMode|ARM64
+ {84848BFA-931D-42CE-9ADF-01EE54DE7890}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32
{84848BFA-931D-42CE-9ADF-01EE54DE7890}.AuditMode|x64.ActiveCfg = AuditMode|x64
{84848BFA-931D-42CE-9ADF-01EE54DE7890}.AuditMode|x64.Build.0 = AuditMode|x64
{84848BFA-931D-42CE-9ADF-01EE54DE7890}.AuditMode|x86.ActiveCfg = AuditMode|Win32
{84848BFA-931D-42CE-9ADF-01EE54DE7890}.AuditMode|x86.Build.0 = AuditMode|Win32
{84848BFA-931D-42CE-9ADF-01EE54DE7890}.Debug|Any CPU.ActiveCfg = Debug|Win32
{84848BFA-931D-42CE-9ADF-01EE54DE7890}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {84848BFA-931D-42CE-9ADF-01EE54DE7890}.Debug|NET_Test.ActiveCfg = Debug|x64
+ {84848BFA-931D-42CE-9ADF-01EE54DE7890}.Debug|NET_Test.Build.0 = Debug|x64
{84848BFA-931D-42CE-9ADF-01EE54DE7890}.Debug|x64.ActiveCfg = Debug|x64
{84848BFA-931D-42CE-9ADF-01EE54DE7890}.Debug|x64.Build.0 = Debug|x64
{84848BFA-931D-42CE-9ADF-01EE54DE7890}.Debug|x86.ActiveCfg = Debug|Win32
@@ -1186,6 +1298,7 @@ Global
{376FE273-6B84-4EB5-8B30-8DE9D21B022C}.AuditMode|Any CPU.ActiveCfg = Release|Any CPU
{376FE273-6B84-4EB5-8B30-8DE9D21B022C}.AuditMode|ARM64.ActiveCfg = Debug|Any CPU
{376FE273-6B84-4EB5-8B30-8DE9D21B022C}.AuditMode|ARM64.Build.0 = Debug|Any CPU
+ {376FE273-6B84-4EB5-8B30-8DE9D21B022C}.AuditMode|NET_Test.ActiveCfg = Release|Any CPU
{376FE273-6B84-4EB5-8B30-8DE9D21B022C}.AuditMode|x64.ActiveCfg = Debug|Any CPU
{376FE273-6B84-4EB5-8B30-8DE9D21B022C}.AuditMode|x64.Build.0 = Debug|Any CPU
{376FE273-6B84-4EB5-8B30-8DE9D21B022C}.AuditMode|x86.ActiveCfg = Debug|Any CPU
@@ -1193,6 +1306,8 @@ Global
{376FE273-6B84-4EB5-8B30-8DE9D21B022C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{376FE273-6B84-4EB5-8B30-8DE9D21B022C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{376FE273-6B84-4EB5-8B30-8DE9D21B022C}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {376FE273-6B84-4EB5-8B30-8DE9D21B022C}.Debug|NET_Test.ActiveCfg = Debug|Any CPU
+ {376FE273-6B84-4EB5-8B30-8DE9D21B022C}.Debug|NET_Test.Build.0 = Debug|Any CPU
{376FE273-6B84-4EB5-8B30-8DE9D21B022C}.Debug|x64.ActiveCfg = Debug|Any CPU
{376FE273-6B84-4EB5-8B30-8DE9D21B022C}.Debug|x86.ActiveCfg = Debug|Any CPU
{376FE273-6B84-4EB5-8B30-8DE9D21B022C}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -1202,11 +1317,13 @@ Global
{376FE273-6B84-4EB5-8B30-8DE9D21B022C}.Release|x86.ActiveCfg = Release|Any CPU
{CA5CAD1A-9333-4D05-B12A-1905CBF112F9}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32
{CA5CAD1A-9333-4D05-B12A-1905CBF112F9}.AuditMode|ARM64.ActiveCfg = AuditMode|ARM64
+ {CA5CAD1A-9333-4D05-B12A-1905CBF112F9}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32
{CA5CAD1A-9333-4D05-B12A-1905CBF112F9}.AuditMode|x64.ActiveCfg = AuditMode|x64
{CA5CAD1A-9333-4D05-B12A-1905CBF112F9}.AuditMode|x86.ActiveCfg = AuditMode|Win32
{CA5CAD1A-9333-4D05-B12A-1905CBF112F9}.Debug|Any CPU.ActiveCfg = Debug|Win32
{CA5CAD1A-9333-4D05-B12A-1905CBF112F9}.Debug|ARM64.ActiveCfg = Debug|ARM64
{CA5CAD1A-9333-4D05-B12A-1905CBF112F9}.Debug|ARM64.Build.0 = Debug|ARM64
+ {CA5CAD1A-9333-4D05-B12A-1905CBF112F9}.Debug|NET_Test.ActiveCfg = Debug|Win32
{CA5CAD1A-9333-4D05-B12A-1905CBF112F9}.Debug|x64.ActiveCfg = Debug|x64
{CA5CAD1A-9333-4D05-B12A-1905CBF112F9}.Debug|x64.Build.0 = Debug|x64
{CA5CAD1A-9333-4D05-B12A-1905CBF112F9}.Debug|x86.ActiveCfg = Debug|Win32
@@ -1220,11 +1337,13 @@ Global
{CA5CAD1A-9333-4D05-B12A-1905CBF112F9}.Release|x86.Build.0 = Release|Win32
{CA5CAD1A-9A12-429C-B551-8562EC954746}.AuditMode|Any CPU.ActiveCfg = Debug|Win32
{CA5CAD1A-9A12-429C-B551-8562EC954746}.AuditMode|ARM64.ActiveCfg = Release|ARM64
+ {CA5CAD1A-9A12-429C-B551-8562EC954746}.AuditMode|NET_Test.ActiveCfg = Debug|Win32
{CA5CAD1A-9A12-429C-B551-8562EC954746}.AuditMode|x64.ActiveCfg = Release|x64
{CA5CAD1A-9A12-429C-B551-8562EC954746}.AuditMode|x86.ActiveCfg = Release|Win32
{CA5CAD1A-9A12-429C-B551-8562EC954746}.Debug|Any CPU.ActiveCfg = Debug|Win32
{CA5CAD1A-9A12-429C-B551-8562EC954746}.Debug|ARM64.ActiveCfg = Debug|ARM64
{CA5CAD1A-9A12-429C-B551-8562EC954746}.Debug|ARM64.Build.0 = Debug|ARM64
+ {CA5CAD1A-9A12-429C-B551-8562EC954746}.Debug|NET_Test.ActiveCfg = Debug|Win32
{CA5CAD1A-9A12-429C-B551-8562EC954746}.Debug|x64.ActiveCfg = Debug|x64
{CA5CAD1A-9A12-429C-B551-8562EC954746}.Debug|x64.Build.0 = Debug|x64
{CA5CAD1A-9A12-429C-B551-8562EC954746}.Debug|x86.ActiveCfg = Debug|Win32
@@ -1238,11 +1357,13 @@ Global
{CA5CAD1A-9A12-429C-B551-8562EC954746}.Release|x86.Build.0 = Release|Win32
{CA5CAD1A-B11C-4DDB-A4FE-C3AFAE9B5506}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32
{CA5CAD1A-B11C-4DDB-A4FE-C3AFAE9B5506}.AuditMode|ARM64.ActiveCfg = AuditMode|ARM64
+ {CA5CAD1A-B11C-4DDB-A4FE-C3AFAE9B5506}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32
{CA5CAD1A-B11C-4DDB-A4FE-C3AFAE9B5506}.AuditMode|x64.ActiveCfg = AuditMode|x64
{CA5CAD1A-B11C-4DDB-A4FE-C3AFAE9B5506}.AuditMode|x86.ActiveCfg = AuditMode|Win32
{CA5CAD1A-B11C-4DDB-A4FE-C3AFAE9B5506}.Debug|Any CPU.ActiveCfg = Debug|Win32
{CA5CAD1A-B11C-4DDB-A4FE-C3AFAE9B5506}.Debug|ARM64.ActiveCfg = Debug|ARM64
{CA5CAD1A-B11C-4DDB-A4FE-C3AFAE9B5506}.Debug|ARM64.Build.0 = Debug|ARM64
+ {CA5CAD1A-B11C-4DDB-A4FE-C3AFAE9B5506}.Debug|NET_Test.ActiveCfg = Debug|Win32
{CA5CAD1A-B11C-4DDB-A4FE-C3AFAE9B5506}.Debug|x64.ActiveCfg = Debug|x64
{CA5CAD1A-B11C-4DDB-A4FE-C3AFAE9B5506}.Debug|x64.Build.0 = Debug|x64
{CA5CAD1A-B11C-4DDB-A4FE-C3AFAE9B5506}.Debug|x86.ActiveCfg = Debug|Win32
@@ -1257,6 +1378,7 @@ Global
{48D21369-3D7B-4431-9967-24E81292CF63}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32
{48D21369-3D7B-4431-9967-24E81292CF63}.AuditMode|ARM64.ActiveCfg = AuditMode|ARM64
{48D21369-3D7B-4431-9967-24E81292CF63}.AuditMode|ARM64.Build.0 = AuditMode|ARM64
+ {48D21369-3D7B-4431-9967-24E81292CF63}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32
{48D21369-3D7B-4431-9967-24E81292CF63}.AuditMode|x64.ActiveCfg = AuditMode|x64
{48D21369-3D7B-4431-9967-24E81292CF63}.AuditMode|x64.Build.0 = AuditMode|x64
{48D21369-3D7B-4431-9967-24E81292CF63}.AuditMode|x86.ActiveCfg = AuditMode|Win32
@@ -1264,6 +1386,7 @@ Global
{48D21369-3D7B-4431-9967-24E81292CF63}.Debug|Any CPU.ActiveCfg = Debug|Win32
{48D21369-3D7B-4431-9967-24E81292CF63}.Debug|ARM64.ActiveCfg = Debug|ARM64
{48D21369-3D7B-4431-9967-24E81292CF63}.Debug|ARM64.Build.0 = Debug|ARM64
+ {48D21369-3D7B-4431-9967-24E81292CF63}.Debug|NET_Test.ActiveCfg = Debug|Win32
{48D21369-3D7B-4431-9967-24E81292CF63}.Debug|x64.ActiveCfg = Debug|x64
{48D21369-3D7B-4431-9967-24E81292CF63}.Debug|x64.Build.0 = Debug|x64
{48D21369-3D7B-4431-9967-24E81292CF63}.Debug|x86.ActiveCfg = Debug|Win32
@@ -1277,12 +1400,14 @@ Global
{48D21369-3D7B-4431-9967-24E81292CF63}.Release|x86.Build.0 = Release|Win32
{CA5CAD1A-039A-4929-BA2A-8BEB2E4106FE}.AuditMode|Any CPU.ActiveCfg = Release|x64
{CA5CAD1A-039A-4929-BA2A-8BEB2E4106FE}.AuditMode|ARM64.ActiveCfg = Release|ARM64
+ {CA5CAD1A-039A-4929-BA2A-8BEB2E4106FE}.AuditMode|NET_Test.ActiveCfg = Release|x64
{CA5CAD1A-039A-4929-BA2A-8BEB2E4106FE}.AuditMode|x64.ActiveCfg = AuditMode|x64
{CA5CAD1A-039A-4929-BA2A-8BEB2E4106FE}.AuditMode|x64.Build.0 = AuditMode|x64
{CA5CAD1A-039A-4929-BA2A-8BEB2E4106FE}.AuditMode|x86.ActiveCfg = Release|Win32
{CA5CAD1A-039A-4929-BA2A-8BEB2E4106FE}.Debug|Any CPU.ActiveCfg = Debug|Win32
{CA5CAD1A-039A-4929-BA2A-8BEB2E4106FE}.Debug|ARM64.ActiveCfg = Debug|ARM64
{CA5CAD1A-039A-4929-BA2A-8BEB2E4106FE}.Debug|ARM64.Build.0 = Debug|ARM64
+ {CA5CAD1A-039A-4929-BA2A-8BEB2E4106FE}.Debug|NET_Test.ActiveCfg = Debug|Win32
{CA5CAD1A-039A-4929-BA2A-8BEB2E4106FE}.Debug|x64.ActiveCfg = Debug|x64
{CA5CAD1A-039A-4929-BA2A-8BEB2E4106FE}.Debug|x64.Build.0 = Debug|x64
{CA5CAD1A-039A-4929-BA2A-8BEB2E4106FE}.Debug|x86.ActiveCfg = Debug|Win32
@@ -1300,12 +1425,16 @@ Global
{B0AC39D6-7B40-49A9-8202-58549BAE1FB1}.AuditMode|ARM64.ActiveCfg = Release|x64
{B0AC39D6-7B40-49A9-8202-58549BAE1FB1}.AuditMode|ARM64.Build.0 = Release|x64
{B0AC39D6-7B40-49A9-8202-58549BAE1FB1}.AuditMode|ARM64.Deploy.0 = Release|x64
+ {B0AC39D6-7B40-49A9-8202-58549BAE1FB1}.AuditMode|NET_Test.ActiveCfg = Release|x64
+ {B0AC39D6-7B40-49A9-8202-58549BAE1FB1}.AuditMode|NET_Test.Build.0 = Release|x64
+ {B0AC39D6-7B40-49A9-8202-58549BAE1FB1}.AuditMode|NET_Test.Deploy.0 = Release|x64
{B0AC39D6-7B40-49A9-8202-58549BAE1FB1}.AuditMode|x64.ActiveCfg = Release|x64
{B0AC39D6-7B40-49A9-8202-58549BAE1FB1}.AuditMode|x86.ActiveCfg = Release|Win32
{B0AC39D6-7B40-49A9-8202-58549BAE1FB1}.AuditMode|x86.Build.0 = Release|Win32
{B0AC39D6-7B40-49A9-8202-58549BAE1FB1}.AuditMode|x86.Deploy.0 = Release|Win32
{B0AC39D6-7B40-49A9-8202-58549BAE1FB1}.Debug|Any CPU.ActiveCfg = Debug|Win32
{B0AC39D6-7B40-49A9-8202-58549BAE1FB1}.Debug|ARM64.ActiveCfg = Debug|Win32
+ {B0AC39D6-7B40-49A9-8202-58549BAE1FB1}.Debug|NET_Test.ActiveCfg = Debug|Win32
{B0AC39D6-7B40-49A9-8202-58549BAE1FB1}.Debug|x64.ActiveCfg = Debug|x64
{B0AC39D6-7B40-49A9-8202-58549BAE1FB1}.Debug|x64.Build.0 = Debug|x64
{B0AC39D6-7B40-49A9-8202-58549BAE1FB1}.Debug|x64.Deploy.0 = Debug|x64
@@ -1325,6 +1454,7 @@ Global
{58A03BB2-DF5A-4B66-91A0-7EF3BA01269A}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32
{58A03BB2-DF5A-4B66-91A0-7EF3BA01269A}.AuditMode|ARM64.ActiveCfg = AuditMode|ARM64
{58A03BB2-DF5A-4B66-91A0-7EF3BA01269A}.AuditMode|ARM64.Build.0 = AuditMode|ARM64
+ {58A03BB2-DF5A-4B66-91A0-7EF3BA01269A}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32
{58A03BB2-DF5A-4B66-91A0-7EF3BA01269A}.AuditMode|x64.ActiveCfg = AuditMode|x64
{58A03BB2-DF5A-4B66-91A0-7EF3BA01269A}.AuditMode|x64.Build.0 = AuditMode|x64
{58A03BB2-DF5A-4B66-91A0-7EF3BA01269A}.AuditMode|x86.ActiveCfg = AuditMode|Win32
@@ -1332,6 +1462,8 @@ Global
{58A03BB2-DF5A-4B66-91A0-7EF3BA01269A}.Debug|Any CPU.ActiveCfg = Debug|Win32
{58A03BB2-DF5A-4B66-91A0-7EF3BA01269A}.Debug|ARM64.ActiveCfg = Debug|ARM64
{58A03BB2-DF5A-4B66-91A0-7EF3BA01269A}.Debug|ARM64.Build.0 = Debug|ARM64
+ {58A03BB2-DF5A-4B66-91A0-7EF3BA01269A}.Debug|NET_Test.ActiveCfg = Debug|x64
+ {58A03BB2-DF5A-4B66-91A0-7EF3BA01269A}.Debug|NET_Test.Build.0 = Debug|x64
{58A03BB2-DF5A-4B66-91A0-7EF3BA01269A}.Debug|x64.ActiveCfg = Debug|x64
{58A03BB2-DF5A-4B66-91A0-7EF3BA01269A}.Debug|x64.Build.0 = Debug|x64
{58A03BB2-DF5A-4B66-91A0-7EF3BA01269A}.Debug|x86.ActiveCfg = Debug|Win32
@@ -1346,12 +1478,15 @@ Global
{A22EC5F6-7851-4B88-AC52-47249D437A52}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32
{A22EC5F6-7851-4B88-AC52-47249D437A52}.AuditMode|ARM64.ActiveCfg = AuditMode|ARM64
{A22EC5F6-7851-4B88-AC52-47249D437A52}.AuditMode|ARM64.Build.0 = AuditMode|ARM64
+ {A22EC5F6-7851-4B88-AC52-47249D437A52}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32
{A22EC5F6-7851-4B88-AC52-47249D437A52}.AuditMode|x64.ActiveCfg = Release|x64
{A22EC5F6-7851-4B88-AC52-47249D437A52}.AuditMode|x86.ActiveCfg = AuditMode|Win32
{A22EC5F6-7851-4B88-AC52-47249D437A52}.AuditMode|x86.Build.0 = AuditMode|Win32
{A22EC5F6-7851-4B88-AC52-47249D437A52}.Debug|Any CPU.ActiveCfg = Debug|Win32
{A22EC5F6-7851-4B88-AC52-47249D437A52}.Debug|ARM64.ActiveCfg = Debug|ARM64
{A22EC5F6-7851-4B88-AC52-47249D437A52}.Debug|ARM64.Build.0 = Debug|ARM64
+ {A22EC5F6-7851-4B88-AC52-47249D437A52}.Debug|NET_Test.ActiveCfg = Debug|x64
+ {A22EC5F6-7851-4B88-AC52-47249D437A52}.Debug|NET_Test.Build.0 = Debug|x64
{A22EC5F6-7851-4B88-AC52-47249D437A52}.Debug|x64.ActiveCfg = Debug|x64
{A22EC5F6-7851-4B88-AC52-47249D437A52}.Debug|x64.Build.0 = Debug|x64
{A22EC5F6-7851-4B88-AC52-47249D437A52}.Debug|x86.ActiveCfg = Debug|Win32
@@ -1365,12 +1500,14 @@ Global
{A22EC5F6-7851-4B88-AC52-47249D437A52}.Release|x86.Build.0 = Release|Win32
{A021EDFF-45C8-4DC2-BEF7-36E1B3B8CFE8}.AuditMode|Any CPU.ActiveCfg = AuditMode|x64
{A021EDFF-45C8-4DC2-BEF7-36E1B3B8CFE8}.AuditMode|ARM64.ActiveCfg = AuditMode|ARM64
+ {A021EDFF-45C8-4DC2-BEF7-36E1B3B8CFE8}.AuditMode|NET_Test.ActiveCfg = AuditMode|x64
{A021EDFF-45C8-4DC2-BEF7-36E1B3B8CFE8}.AuditMode|x64.ActiveCfg = AuditMode|x64
{A021EDFF-45C8-4DC2-BEF7-36E1B3B8CFE8}.AuditMode|x86.ActiveCfg = AuditMode|Win32
{A021EDFF-45C8-4DC2-BEF7-36E1B3B8CFE8}.Debug|Any CPU.ActiveCfg = Debug|Win32
{A021EDFF-45C8-4DC2-BEF7-36E1B3B8CFE8}.Debug|ARM64.ActiveCfg = Debug|ARM64
{A021EDFF-45C8-4DC2-BEF7-36E1B3B8CFE8}.Debug|ARM64.Build.0 = Debug|ARM64
{A021EDFF-45C8-4DC2-BEF7-36E1B3B8CFE8}.Debug|ARM64.Deploy.0 = Debug|ARM64
+ {A021EDFF-45C8-4DC2-BEF7-36E1B3B8CFE8}.Debug|NET_Test.ActiveCfg = Debug|Win32
{A021EDFF-45C8-4DC2-BEF7-36E1B3B8CFE8}.Debug|x64.ActiveCfg = Debug|x64
{A021EDFF-45C8-4DC2-BEF7-36E1B3B8CFE8}.Debug|x64.Build.0 = Debug|x64
{A021EDFF-45C8-4DC2-BEF7-36E1B3B8CFE8}.Debug|x64.Deploy.0 = Debug|x64
@@ -1390,12 +1527,14 @@ Global
{767268EE-174A-46FE-96F0-EEE698A1BBC9}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32
{767268EE-174A-46FE-96F0-EEE698A1BBC9}.AuditMode|ARM64.ActiveCfg = AuditMode|ARM64
{767268EE-174A-46FE-96F0-EEE698A1BBC9}.AuditMode|ARM64.Build.0 = AuditMode|ARM64
+ {767268EE-174A-46FE-96F0-EEE698A1BBC9}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32
{767268EE-174A-46FE-96F0-EEE698A1BBC9}.AuditMode|x64.ActiveCfg = Release|x64
{767268EE-174A-46FE-96F0-EEE698A1BBC9}.AuditMode|x86.ActiveCfg = AuditMode|Win32
{767268EE-174A-46FE-96F0-EEE698A1BBC9}.AuditMode|x86.Build.0 = AuditMode|Win32
{767268EE-174A-46FE-96F0-EEE698A1BBC9}.Debug|Any CPU.ActiveCfg = Debug|Win32
{767268EE-174A-46FE-96F0-EEE698A1BBC9}.Debug|ARM64.ActiveCfg = Debug|ARM64
{767268EE-174A-46FE-96F0-EEE698A1BBC9}.Debug|ARM64.Build.0 = Debug|ARM64
+ {767268EE-174A-46FE-96F0-EEE698A1BBC9}.Debug|NET_Test.ActiveCfg = Debug|Win32
{767268EE-174A-46FE-96F0-EEE698A1BBC9}.Debug|x64.ActiveCfg = Debug|x64
{767268EE-174A-46FE-96F0-EEE698A1BBC9}.Debug|x64.Build.0 = Debug|x64
{767268EE-174A-46FE-96F0-EEE698A1BBC9}.Debug|x86.ActiveCfg = Debug|Win32
@@ -1411,12 +1550,15 @@ Global
{A602A555-BAAC-46E1-A91D-3DAB0475C5A1}.AuditMode|Any CPU.Build.0 = Release|x64
{A602A555-BAAC-46E1-A91D-3DAB0475C5A1}.AuditMode|ARM64.ActiveCfg = Release|x64
{A602A555-BAAC-46E1-A91D-3DAB0475C5A1}.AuditMode|ARM64.Build.0 = Release|x64
+ {A602A555-BAAC-46E1-A91D-3DAB0475C5A1}.AuditMode|NET_Test.ActiveCfg = Release|x64
+ {A602A555-BAAC-46E1-A91D-3DAB0475C5A1}.AuditMode|NET_Test.Build.0 = Release|x64
{A602A555-BAAC-46E1-A91D-3DAB0475C5A1}.AuditMode|x64.ActiveCfg = Release|x64
{A602A555-BAAC-46E1-A91D-3DAB0475C5A1}.AuditMode|x64.Build.0 = Release|x64
{A602A555-BAAC-46E1-A91D-3DAB0475C5A1}.AuditMode|x86.ActiveCfg = Release|Win32
{A602A555-BAAC-46E1-A91D-3DAB0475C5A1}.AuditMode|x86.Build.0 = Release|Win32
{A602A555-BAAC-46E1-A91D-3DAB0475C5A1}.Debug|Any CPU.ActiveCfg = Debug|Win32
{A602A555-BAAC-46E1-A91D-3DAB0475C5A1}.Debug|ARM64.ActiveCfg = Debug|Win32
+ {A602A555-BAAC-46E1-A91D-3DAB0475C5A1}.Debug|NET_Test.ActiveCfg = Debug|Win32
{A602A555-BAAC-46E1-A91D-3DAB0475C5A1}.Debug|x64.ActiveCfg = Debug|x64
{A602A555-BAAC-46E1-A91D-3DAB0475C5A1}.Debug|x64.Build.0 = Debug|x64
{A602A555-BAAC-46E1-A91D-3DAB0475C5A1}.Debug|x86.ActiveCfg = Debug|Win32
@@ -1430,12 +1572,14 @@ Global
{95B136F9-B238-490C-A7C5-5843C1FECAC4}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32
{95B136F9-B238-490C-A7C5-5843C1FECAC4}.AuditMode|ARM64.ActiveCfg = AuditMode|ARM64
{95B136F9-B238-490C-A7C5-5843C1FECAC4}.AuditMode|ARM64.Build.0 = AuditMode|ARM64
+ {95B136F9-B238-490C-A7C5-5843C1FECAC4}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32
{95B136F9-B238-490C-A7C5-5843C1FECAC4}.AuditMode|x64.ActiveCfg = Release|x64
{95B136F9-B238-490C-A7C5-5843C1FECAC4}.AuditMode|x86.ActiveCfg = AuditMode|Win32
{95B136F9-B238-490C-A7C5-5843C1FECAC4}.AuditMode|x86.Build.0 = AuditMode|Win32
{95B136F9-B238-490C-A7C5-5843C1FECAC4}.Debug|Any CPU.ActiveCfg = Debug|Win32
{95B136F9-B238-490C-A7C5-5843C1FECAC4}.Debug|ARM64.ActiveCfg = Debug|ARM64
{95B136F9-B238-490C-A7C5-5843C1FECAC4}.Debug|ARM64.Build.0 = Debug|ARM64
+ {95B136F9-B238-490C-A7C5-5843C1FECAC4}.Debug|NET_Test.ActiveCfg = Debug|Win32
{95B136F9-B238-490C-A7C5-5843C1FECAC4}.Debug|x64.ActiveCfg = Debug|x64
{95B136F9-B238-490C-A7C5-5843C1FECAC4}.Debug|x64.Build.0 = Debug|x64
{95B136F9-B238-490C-A7C5-5843C1FECAC4}.Debug|x86.ActiveCfg = Debug|Win32
@@ -1450,12 +1594,14 @@ Global
{024052DE-83FB-4653-AEA4-90790D29D5BD}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32
{024052DE-83FB-4653-AEA4-90790D29D5BD}.AuditMode|ARM64.ActiveCfg = AuditMode|ARM64
{024052DE-83FB-4653-AEA4-90790D29D5BD}.AuditMode|ARM64.Build.0 = AuditMode|ARM64
+ {024052DE-83FB-4653-AEA4-90790D29D5BD}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32
{024052DE-83FB-4653-AEA4-90790D29D5BD}.AuditMode|x64.ActiveCfg = Release|x64
{024052DE-83FB-4653-AEA4-90790D29D5BD}.AuditMode|x86.ActiveCfg = AuditMode|Win32
{024052DE-83FB-4653-AEA4-90790D29D5BD}.AuditMode|x86.Build.0 = AuditMode|Win32
{024052DE-83FB-4653-AEA4-90790D29D5BD}.Debug|Any CPU.ActiveCfg = Debug|Win32
{024052DE-83FB-4653-AEA4-90790D29D5BD}.Debug|ARM64.ActiveCfg = Debug|ARM64
{024052DE-83FB-4653-AEA4-90790D29D5BD}.Debug|ARM64.Build.0 = Debug|ARM64
+ {024052DE-83FB-4653-AEA4-90790D29D5BD}.Debug|NET_Test.ActiveCfg = Debug|Win32
{024052DE-83FB-4653-AEA4-90790D29D5BD}.Debug|x64.ActiveCfg = Debug|x64
{024052DE-83FB-4653-AEA4-90790D29D5BD}.Debug|x64.Build.0 = Debug|x64
{024052DE-83FB-4653-AEA4-90790D29D5BD}.Debug|x86.ActiveCfg = Debug|Win32
@@ -1470,12 +1616,14 @@ Global
{067F0A06-FCB7-472C-96E9-B03B54E8E18D}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32
{067F0A06-FCB7-472C-96E9-B03B54E8E18D}.AuditMode|ARM64.ActiveCfg = AuditMode|ARM64
{067F0A06-FCB7-472C-96E9-B03B54E8E18D}.AuditMode|ARM64.Build.0 = AuditMode|ARM64
+ {067F0A06-FCB7-472C-96E9-B03B54E8E18D}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32
{067F0A06-FCB7-472C-96E9-B03B54E8E18D}.AuditMode|x64.ActiveCfg = Release|x64
{067F0A06-FCB7-472C-96E9-B03B54E8E18D}.AuditMode|x86.ActiveCfg = AuditMode|Win32
{067F0A06-FCB7-472C-96E9-B03B54E8E18D}.AuditMode|x86.Build.0 = AuditMode|Win32
{067F0A06-FCB7-472C-96E9-B03B54E8E18D}.Debug|Any CPU.ActiveCfg = Debug|Win32
{067F0A06-FCB7-472C-96E9-B03B54E8E18D}.Debug|ARM64.ActiveCfg = Debug|ARM64
{067F0A06-FCB7-472C-96E9-B03B54E8E18D}.Debug|ARM64.Build.0 = Debug|ARM64
+ {067F0A06-FCB7-472C-96E9-B03B54E8E18D}.Debug|NET_Test.ActiveCfg = Debug|Win32
{067F0A06-FCB7-472C-96E9-B03B54E8E18D}.Debug|x64.ActiveCfg = Debug|x64
{067F0A06-FCB7-472C-96E9-B03B54E8E18D}.Debug|x64.Build.0 = Debug|x64
{067F0A06-FCB7-472C-96E9-B03B54E8E18D}.Debug|x86.ActiveCfg = Debug|Win32
@@ -1490,6 +1638,7 @@ Global
{6BAE5851-50D5-4934-8D5E-30361A8A40F3}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32
{6BAE5851-50D5-4934-8D5E-30361A8A40F3}.AuditMode|ARM64.ActiveCfg = AuditMode|ARM64
{6BAE5851-50D5-4934-8D5E-30361A8A40F3}.AuditMode|ARM64.Build.0 = AuditMode|ARM64
+ {6BAE5851-50D5-4934-8D5E-30361A8A40F3}.AuditMode|NET_Test.ActiveCfg = AuditMode|Win32
{6BAE5851-50D5-4934-8D5E-30361A8A40F3}.AuditMode|x64.ActiveCfg = AuditMode|x64
{6BAE5851-50D5-4934-8D5E-30361A8A40F3}.AuditMode|x64.Build.0 = AuditMode|x64
{6BAE5851-50D5-4934-8D5E-30361A8A40F3}.AuditMode|x86.ActiveCfg = AuditMode|Win32
@@ -1497,6 +1646,8 @@ Global
{6BAE5851-50D5-4934-8D5E-30361A8A40F3}.Debug|Any CPU.ActiveCfg = Debug|Win32
{6BAE5851-50D5-4934-8D5E-30361A8A40F3}.Debug|ARM64.ActiveCfg = Debug|ARM64
{6BAE5851-50D5-4934-8D5E-30361A8A40F3}.Debug|ARM64.Build.0 = Debug|ARM64
+ {6BAE5851-50D5-4934-8D5E-30361A8A40F3}.Debug|NET_Test.ActiveCfg = Debug|x64
+ {6BAE5851-50D5-4934-8D5E-30361A8A40F3}.Debug|NET_Test.Build.0 = Debug|x64
{6BAE5851-50D5-4934-8D5E-30361A8A40F3}.Debug|x64.ActiveCfg = Debug|x64
{6BAE5851-50D5-4934-8D5E-30361A8A40F3}.Debug|x64.Build.0 = Debug|x64
{6BAE5851-50D5-4934-8D5E-30361A8A40F3}.Debug|x86.ActiveCfg = Debug|Win32
@@ -1508,6 +1659,113 @@ Global
{6BAE5851-50D5-4934-8D5E-30361A8A40F3}.Release|x64.Build.0 = Release|x64
{6BAE5851-50D5-4934-8D5E-30361A8A40F3}.Release|x86.ActiveCfg = Release|Win32
{6BAE5851-50D5-4934-8D5E-30361A8A40F3}.Release|x86.Build.0 = Release|Win32
+ {1588FD7C-241E-4E7D-9113-43735F3E6BAD}.AuditMode|Any CPU.ActiveCfg = Debug|Any CPU
+ {1588FD7C-241E-4E7D-9113-43735F3E6BAD}.AuditMode|Any CPU.Build.0 = Debug|Any CPU
+ {1588FD7C-241E-4E7D-9113-43735F3E6BAD}.AuditMode|ARM64.ActiveCfg = Debug|Any CPU
+ {1588FD7C-241E-4E7D-9113-43735F3E6BAD}.AuditMode|ARM64.Build.0 = Debug|Any CPU
+ {1588FD7C-241E-4E7D-9113-43735F3E6BAD}.AuditMode|NET_Test.ActiveCfg = Debug|Any CPU
+ {1588FD7C-241E-4E7D-9113-43735F3E6BAD}.AuditMode|NET_Test.Build.0 = Debug|Any CPU
+ {1588FD7C-241E-4E7D-9113-43735F3E6BAD}.AuditMode|x64.ActiveCfg = Debug|Any CPU
+ {1588FD7C-241E-4E7D-9113-43735F3E6BAD}.AuditMode|x64.Build.0 = Debug|Any CPU
+ {1588FD7C-241E-4E7D-9113-43735F3E6BAD}.AuditMode|x86.ActiveCfg = Debug|Any CPU
+ {1588FD7C-241E-4E7D-9113-43735F3E6BAD}.AuditMode|x86.Build.0 = Debug|Any CPU
+ {1588FD7C-241E-4E7D-9113-43735F3E6BAD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {1588FD7C-241E-4E7D-9113-43735F3E6BAD}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {1588FD7C-241E-4E7D-9113-43735F3E6BAD}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {1588FD7C-241E-4E7D-9113-43735F3E6BAD}.Debug|ARM64.Build.0 = Debug|Any CPU
+ {1588FD7C-241E-4E7D-9113-43735F3E6BAD}.Debug|NET_Test.ActiveCfg = Debug|x64
+ {1588FD7C-241E-4E7D-9113-43735F3E6BAD}.Debug|NET_Test.Build.0 = Debug|x64
+ {1588FD7C-241E-4E7D-9113-43735F3E6BAD}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {1588FD7C-241E-4E7D-9113-43735F3E6BAD}.Debug|x64.Build.0 = Debug|Any CPU
+ {1588FD7C-241E-4E7D-9113-43735F3E6BAD}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {1588FD7C-241E-4E7D-9113-43735F3E6BAD}.Debug|x86.Build.0 = Debug|Any CPU
+ {1588FD7C-241E-4E7D-9113-43735F3E6BAD}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {1588FD7C-241E-4E7D-9113-43735F3E6BAD}.Release|Any CPU.Build.0 = Release|Any CPU
+ {1588FD7C-241E-4E7D-9113-43735F3E6BAD}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {1588FD7C-241E-4E7D-9113-43735F3E6BAD}.Release|ARM64.Build.0 = Release|Any CPU
+ {1588FD7C-241E-4E7D-9113-43735F3E6BAD}.Release|x64.ActiveCfg = Release|Any CPU
+ {1588FD7C-241E-4E7D-9113-43735F3E6BAD}.Release|x64.Build.0 = Release|Any CPU
+ {1588FD7C-241E-4E7D-9113-43735F3E6BAD}.Release|x86.ActiveCfg = Release|Any CPU
+ {1588FD7C-241E-4E7D-9113-43735F3E6BAD}.Release|x86.Build.0 = Release|Any CPU
+
+ {CA5CAD1A-224A-4171-B13A-F16E576FDD12}.Release|NET_Test.ActiveCfg = Release|x86
+ {9CBD7DFA-1754-4A9D-93D7-857A9D17CB1B}.Release|NET_Test.ActiveCfg = Release|Win32
+ {345FD5A4-B32B-4F29-BD1C-B033BD2C35CC}.Release|NET_Test.ActiveCfg = Release|Win32
+ {2FD12FBB-1DDB-46D8-B818-1023C624CACA}.Release|NET_Test.ActiveCfg = Release|Win32
+ {3AE13314-1939-4DFA-9C14-38CA0834050C}.Release|NET_Test.ActiveCfg = Release|x64
+ {3AE13314-1939-4DFA-9C14-38CA0834050C}.Release|NET_Test.Build.0 = Release|x64
+ {DCF55140-EF6A-4736-A403-957E4F7430BB}.Release|NET_Test.ActiveCfg = Release|Win32
+ {1CF55140-EF6A-4736-A403-957E4F7430BB}.Release|NET_Test.ActiveCfg = Release|x64
+ {1CF55140-EF6A-4736-A403-957E4F7430BB}.Release|NET_Test.Build.0 = Release|x64
+ {AF0A096A-8B3A-4949-81EF-7DF8F0FEE91F}.Release|NET_Test.ActiveCfg = Release|x64
+ {AF0A096A-8B3A-4949-81EF-7DF8F0FEE91F}.Release|NET_Test.Build.0 = Release|x64
+ {1C959542-BAC2-4E55-9A6D-13251914CBB9}.Release|NET_Test.ActiveCfg = Release|Win32
+ {06EC74CB-9A12-429C-B551-8562EC954746}.Release|NET_Test.ActiveCfg = Release|Win32
+ {06EC74CB-9A12-429C-B551-8562EC954747}.Release|NET_Test.ActiveCfg = Release|Win32
+ {531C23E7-4B76-4C08-8AAD-04164CB628C9}.Release|NET_Test.ActiveCfg = Release|Win32
+ {531C23E7-4B76-4C08-8BBD-04164CB628C9}.Release|NET_Test.ActiveCfg = Release|Win32
+ {8CDB8850-7484-4EC7-B45B-181F85B2EE54}.Release|NET_Test.ActiveCfg = Release|Win32
+ {12144E07-FE63-4D33-9231-748B8D8C3792}.Release|NET_Test.ActiveCfg = Release|Win32
+ {6AF01638-84CF-4B65-9870-484DFFCAC772}.Release|NET_Test.ActiveCfg = Release|Win32
+ {96927B31-D6E8-4ABD-B03E-A5088A30BEBE}.Release|NET_Test.ActiveCfg = Release|Win32
+ {F210A4AE-E02A-4BFC-80BB-F50A672FE763}.Release|NET_Test.ActiveCfg = Release|Win32
+ {5D23E8E1-3C64-4CC1-A8F7-6861677F7239}.Release|NET_Test.ActiveCfg = Release|Win32
+ {18D09A24-8240-42D6-8CB6-236EEE820262}.Release|NET_Test.ActiveCfg = Release|Win32
+ {C17E1BF3-9D34-4779-9458-A8EF98CC5662}.Release|NET_Test.ActiveCfg = Release|Win32
+ {099193A0-1E43-4BBC-BA7F-7B351E1342DF}.Release|NET_Test.ActiveCfg = Release|Win32
+ {FC802440-AD6A-4919-8F2C-7701F2B38D79}.Release|NET_Test.ActiveCfg = Release|Win32
+ {919544AC-D39B-463F-8414-3C3C67CF727C}.Release|NET_Test.ActiveCfg = Release|Win32
+ {ED82003F-FC5D-4E94-8B36-F480018ED064}.Release|NET_Test.ActiveCfg = Release|Win32
+ {06EC74CB-9A12-429C-B551-8532EC964726}.Release|NET_Test.ActiveCfg = Release|Win32
+ {ED82003F-FC5D-4E94-8B47-F480018ED064}.Release|NET_Test.ActiveCfg = Release|Win32
+ {06EC74CB-9A12-429C-B551-8562EC964846}.Release|NET_Test.ActiveCfg = Release|Win32
+ {D3B92829-26CB-411A-BDA2-7F5DA3D25DD4}.Release|NET_Test.ActiveCfg = Release|Win32
+ {C7A6A5D9-60BE-4AEB-A5F6-AFE352F86CBB}.Release|NET_Test.ActiveCfg = Release|Win32
+ {990F2657-8580-4828-943F-5DD657D11842}.Release|NET_Test.ActiveCfg = Release|Win32
+ {814DBDDE-894E-4327-A6E1-740504850098}.Release|NET_Test.ActiveCfg = Release|Win32
+ {814CBEEE-894E-4327-A6E1-740504850098}.Release|NET_Test.ActiveCfg = Release|Win32
+ {18D09A24-8240-42D6-8CB6-236EEE820263}.Release|NET_Test.ActiveCfg = Release|x64
+ {18D09A24-8240-42D6-8CB6-236EEE820263}.Release|NET_Test.Build.0 = Release|x64
+ {990F2657-8580-4828-943F-5DD657D11843}.Release|NET_Test.ActiveCfg = Release|Win32
+ {0CF235BD-2DA0-407E-90EE-C467E8BBC714}.Release|NET_Test.ActiveCfg = Release|x64
+ {0CF235BD-2DA0-407E-90EE-C467E8BBC714}.Release|NET_Test.Build.0 = Release|x64
+ {48D21369-3D7B-4431-9967-24E81292CF62}.Release|NET_Test.ActiveCfg = Release|x64
+ {48D21369-3D7B-4431-9967-24E81292CF62}.Release|NET_Test.Build.0 = Release|x64
+ {CA5CAD1A-C46D-4588-B1C0-40F31AE9100B}.Release|NET_Test.ActiveCfg = Release|Win32
+ {CA5CAD1A-ABCD-429C-B551-8562EC954746}.Release|NET_Test.ActiveCfg = Release|x64
+ {CA5CAD1A-ABCD-429C-B551-8562EC954746}.Release|NET_Test.Build.0 = Release|x64
+ {CA5CAD1A-44BD-4AC7-AC72-6CA5B3AB89ED}.Release|NET_Test.ActiveCfg = Release|Win32
+ {CA5CAD1A-1754-4A9D-93D7-857A9D17CB1B}.Release|NET_Test.ActiveCfg = Release|Win32
+ {CA5CAD1A-44BD-4AC7-AC72-F16E576FDD12}.Release|NET_Test.ActiveCfg = Release|Win32
+ {CA5CAD1A-D7EC-4107-B7C6-79CB77AE2907}.Release|NET_Test.ActiveCfg = Release|x64
+ {CA5CAD1A-D7EC-4107-B7C6-79CB77AE2907}.Release|NET_Test.Build.0 = Release|x64
+ {2C2BEEF4-9333-4D05-B12A-1905CBF112F9}.Release|NET_Test.ActiveCfg = Release|Win32
+ {EF3E32A7-5FF6-42B4-B6E2-96CD7D033F00}.Release|NET_Test.ActiveCfg = Release|Win32
+ {34DE34D3-1CD6-4EE3-8BD9-A26B5B27EC73}.Release|NET_Test.ActiveCfg = Release|Win32
+ {84848BFA-931D-42CE-9ADF-01EE54DE7890}.Release|NET_Test.ActiveCfg = Release|x64
+ {84848BFA-931D-42CE-9ADF-01EE54DE7890}.Release|NET_Test.Build.0 = Release|x64
+ {376FE273-6B84-4EB5-8B30-8DE9D21B022C}.Release|NET_Test.ActiveCfg = Release|Any CPU
+ {376FE273-6B84-4EB5-8B30-8DE9D21B022C}.Release|NET_Test.Build.0 = Release|Any CPU
+ {CA5CAD1A-9333-4D05-B12A-1905CBF112F9}.Release|NET_Test.ActiveCfg = Release|Win32
+ {CA5CAD1A-9A12-429C-B551-8562EC954746}.Release|NET_Test.ActiveCfg = Release|Win32
+ {CA5CAD1A-B11C-4DDB-A4FE-C3AFAE9B5506}.Release|NET_Test.ActiveCfg = Release|Win32
+ {48D21369-3D7B-4431-9967-24E81292CF63}.Release|NET_Test.ActiveCfg = Release|Win32
+ {CA5CAD1A-039A-4929-BA2A-8BEB2E4106FE}.Release|NET_Test.ActiveCfg = Release|Win32
+ {B0AC39D6-7B40-49A9-8202-58549BAE1FB1}.Release|NET_Test.ActiveCfg = Release|Win32
+ {58A03BB2-DF5A-4B66-91A0-7EF3BA01269A}.Release|NET_Test.ActiveCfg = Release|x64
+ {58A03BB2-DF5A-4B66-91A0-7EF3BA01269A}.Release|NET_Test.Build.0 = Release|x64
+ {A22EC5F6-7851-4B88-AC52-47249D437A52}.Release|NET_Test.ActiveCfg = Release|x64
+ {A22EC5F6-7851-4B88-AC52-47249D437A52}.Release|NET_Test.Build.0 = Release|x64
+ {A021EDFF-45C8-4DC2-BEF7-36E1B3B8CFE8}.Release|NET_Test.ActiveCfg = Release|Win32
+ {767268EE-174A-46FE-96F0-EEE698A1BBC9}.Release|NET_Test.ActiveCfg = Release|Win32
+ {A602A555-BAAC-46E1-A91D-3DAB0475C5A1}.Release|NET_Test.ActiveCfg = Release|Win32
+ {95B136F9-B238-490C-A7C5-5843C1FECAC4}.Release|NET_Test.ActiveCfg = Release|Win32
+ {024052DE-83FB-4653-AEA4-90790D29D5BD}.Release|NET_Test.ActiveCfg = Release|Win32
+ {067F0A06-FCB7-472C-96E9-B03B54E8E18D}.Release|NET_Test.ActiveCfg = Release|Win32
+ {6BAE5851-50D5-4934-8D5E-30361A8A40F3}.Release|NET_Test.ActiveCfg = Release|x64
+ {6BAE5851-50D5-4934-8D5E-30361A8A40F3}.Release|NET_Test.Build.0 = Release|x64
+ {1588FD7C-241E-4E7D-9113-43735F3E6BAD}.Release|NET_Test.ActiveCfg = Release|x64
+ {1588FD7C-241E-4E7D-9113-43735F3E6BAD}.Release|NET_Test.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/src/common.build.post.props b/src/common.build.post.props
index 64ac5f1222..e4039cab2e 100644
--- a/src/common.build.post.props
+++ b/src/common.build.post.props
@@ -13,7 +13,7 @@
ProgramDatabase
- onecoreuap_apiset.lib;d3dcompiler.lib;dwmapi.lib;uxtheme.lib;shlwapi.lib;ntdll.lib;%(AdditionalDependencies)
+ user32.lib;uiautomationcore.lib;onecoreuap.lib;d3dcompiler.lib;dwmapi.lib;uxtheme.lib;shlwapi.lib;ntdll.lib;%(AdditionalDependencies)
diff --git a/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/App.xaml b/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/App.xaml
new file mode 100644
index 0000000000..07734522d8
--- /dev/null
+++ b/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/App.xaml
@@ -0,0 +1,9 @@
+
+
+
+
+
diff --git a/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/App.xaml.cs b/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/App.xaml.cs
new file mode 100644
index 0000000000..98e01ed806
--- /dev/null
+++ b/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/App.xaml.cs
@@ -0,0 +1,17 @@
+using System;
+using System.Collections.Generic;
+using System.Configuration;
+using System.Data;
+using System.Linq;
+using System.Threading.Tasks;
+using System.Windows;
+
+namespace WpfTerminalTestNetCore
+{
+ ///
+ /// Interaction logic for App.xaml
+ ///
+ public partial class App : Application
+ {
+ }
+}
diff --git a/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/AssemblyInfo.cs b/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/AssemblyInfo.cs
new file mode 100644
index 0000000000..0cd23b6831
--- /dev/null
+++ b/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/AssemblyInfo.cs
@@ -0,0 +1,10 @@
+using System.Windows;
+
+[assembly: ThemeInfo(
+ ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
+ //(used if a resource is not found in the page,
+ // or application resource dictionaries)
+ ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
+ //(used if a resource is not found in the page,
+ // app, or any theme specific resource dictionaries)
+)]
diff --git a/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/MainWindow.xaml b/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/MainWindow.xaml
new file mode 100644
index 0000000000..e7a7ffab18
--- /dev/null
+++ b/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/MainWindow.xaml
@@ -0,0 +1,13 @@
+
+
+
+
+
diff --git a/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/MainWindow.xaml.cs b/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/MainWindow.xaml.cs
new file mode 100644
index 0000000000..2f0dba9afa
--- /dev/null
+++ b/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/MainWindow.xaml.cs
@@ -0,0 +1,103 @@
+using Microsoft.Terminal.Wpf;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace WpfTerminalTestNetCore
+{
+ public class PseudoConsoleConnection : Microsoft.Terminal.Wpf.ITerminalConnection
+ {
+ private String _command;
+ private int _initialRows = 25, _initialCols = 80;
+ PseudoConsole _pty = null;
+ PseudoConsolePipe _inPipe = null;
+ PseudoConsolePipe _outPipe = null;
+ StreamWriter _inputWriter = null;
+ Process _process;
+
+ public PseudoConsoleConnection(String command, int columns, int rows)
+ {
+ _command = command;
+ _initialCols = columns;
+ _initialRows = rows;
+ }
+
+ public event EventHandler TerminalOutput;
+
+ public void Close()
+ {
+ _pty.Dispose();
+ }
+
+ public void Resize(uint rows, uint columns)
+ {
+ _pty?.Resize((short)columns, (short)rows);
+ }
+
+ public void Start()
+ {
+ _inPipe = new PseudoConsolePipe();
+ _outPipe = new PseudoConsolePipe();
+ _inputWriter = new StreamWriter(new FileStream(_inPipe.WriteSide, FileAccess.Write));
+ _pty = PseudoConsole.Create(_inPipe.ReadSide, _outPipe.WriteSide, (short)_initialCols, (short)_initialRows);
+ _process = ProcessFactory.Start(_command, PseudoConsole.PseudoConsoleThreadAttribute, _pty.Handle);
+ Task.Run(async () =>
+ {
+ var outReader = new FileStream(_outPipe.ReadSide, FileAccess.Read);
+ var bytes = new byte[1024];
+ var chars = new char[Encoding.UTF8.GetMaxCharCount(bytes.Length)];
+ var decoder = Encoding.UTF8.GetDecoder();
+ while (_pty != null)
+ {
+ int read = await outReader.ReadAsync(bytes);
+ if (read == 0) break;
+ var decoded = decoder.GetChars(bytes, 0, read, chars, 0, false);
+ TerminalOutput.Invoke(this, new TerminalOutputEventArgs(new String(chars, 0, decoded)));
+ }
+ });
+ }
+
+ public void WriteInput(string data)
+ {
+ _inputWriter.Write(data);
+ _inputWriter.Flush();
+ }
+ }
+ ///
+ /// Interaction logic for MainWindow.xaml
+ ///
+ public partial class MainWindow : Window
+ {
+ public MainWindow()
+ {
+ InitializeComponent();
+ Terminal.Loaded += Terminal_Loaded;
+ }
+
+ private void Terminal_Loaded(object sender, RoutedEventArgs e)
+ {
+ var theme = new TerminalTheme
+ {
+ DefaultBackground = 0x0c0c0c,
+ DefaultForeground = 0xcccccc,
+ CursorStyle = CursorStyle.BlinkingBar,
+ ColorTable = new uint[] { 0x0C0C0C, 0x1F0FC5, 0x0EA113, 0x009CC1, 0xDA3700, 0x981788, 0xDD963A, 0xCCCCCC, 0x767676, 0x5648E7, 0x0CC616, 0xA5F1F9, 0xFF783B, 0x9E00B4, 0xD6D661, 0xF2F2F2 },
+ };
+ Terminal.Connection = new PseudoConsoleConnection("c:\\windows\\system32\\windowspowershell\\v1.0\\powershell.exe", Terminal.Columns, Terminal.Rows);
+ Terminal.SetTheme(theme, "Cascadia Code", 12);
+ Terminal.Focus();
+ }
+ }
+}
diff --git a/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/Native/ConsoleApi.cs b/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/Native/ConsoleApi.cs
new file mode 100644
index 0000000000..1c59d8a906
--- /dev/null
+++ b/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/Native/ConsoleApi.cs
@@ -0,0 +1,38 @@
+using Microsoft.Win32.SafeHandles;
+using System.Runtime.InteropServices;
+
+namespace WpfTerminalTestNetCore.Native
+{
+ ///
+ /// PInvoke signatures for win32 console api
+ ///
+ static class ConsoleApi
+ {
+ internal const int STD_OUTPUT_HANDLE = -11;
+ internal const uint ENABLE_VIRTUAL_TERMINAL_PROCESSING = 0x0004;
+ internal const uint DISABLE_NEWLINE_AUTO_RETURN = 0x0008;
+
+ [DllImport("kernel32.dll", SetLastError = true)]
+ internal static extern SafeFileHandle GetStdHandle(int nStdHandle);
+
+ [DllImport("kernel32.dll", SetLastError = true)]
+ internal static extern bool SetConsoleMode(SafeFileHandle hConsoleHandle, uint mode);
+
+ [DllImport("kernel32.dll", SetLastError = true)]
+ internal static extern bool GetConsoleMode(SafeFileHandle handle, out uint mode);
+
+ internal delegate bool ConsoleEventDelegate(CtrlTypes ctrlType);
+
+ internal enum CtrlTypes : uint
+ {
+ CTRL_C_EVENT = 0,
+ CTRL_BREAK_EVENT,
+ CTRL_CLOSE_EVENT,
+ CTRL_LOGOFF_EVENT = 5,
+ CTRL_SHUTDOWN_EVENT
+ }
+
+ [DllImport("kernel32.dll", SetLastError = true)]
+ internal static extern bool SetConsoleCtrlHandler(ConsoleEventDelegate callback, bool add);
+ }
+}
diff --git a/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/Native/ProcessApi.cs b/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/Native/ProcessApi.cs
new file mode 100644
index 0000000000..565087dd79
--- /dev/null
+++ b/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/Native/ProcessApi.cs
@@ -0,0 +1,86 @@
+using System;
+using System.Runtime.InteropServices;
+
+namespace WpfTerminalTestNetCore.Native
+{
+ ///
+ /// PInvoke signatures for win32 process api
+ ///
+ static class ProcessApi
+ {
+ internal const uint EXTENDED_STARTUPINFO_PRESENT = 0x00080000;
+
+ [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
+ internal struct STARTUPINFOEX
+ {
+ public STARTUPINFO StartupInfo;
+ public IntPtr lpAttributeList;
+ }
+
+ [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
+ internal struct STARTUPINFO
+ {
+ public Int32 cb;
+ public string lpReserved;
+ public string lpDesktop;
+ public string lpTitle;
+ public Int32 dwX;
+ public Int32 dwY;
+ public Int32 dwXSize;
+ public Int32 dwYSize;
+ public Int32 dwXCountChars;
+ public Int32 dwYCountChars;
+ public Int32 dwFillAttribute;
+ public Int32 dwFlags;
+ public Int16 wShowWindow;
+ public Int16 cbReserved2;
+ public IntPtr lpReserved2;
+ public IntPtr hStdInput;
+ public IntPtr hStdOutput;
+ public IntPtr hStdError;
+ }
+
+ [StructLayout(LayoutKind.Sequential)]
+ internal struct PROCESS_INFORMATION
+ {
+ public IntPtr hProcess;
+ public IntPtr hThread;
+ public int dwProcessId;
+ public int dwThreadId;
+ }
+
+ [StructLayout(LayoutKind.Sequential)]
+ internal struct SECURITY_ATTRIBUTES
+ {
+ public int nLength;
+ public IntPtr lpSecurityDescriptor;
+ public int bInheritHandle;
+ }
+
+ [DllImport("kernel32.dll", SetLastError = true)]
+ [return: MarshalAs(UnmanagedType.Bool)]
+ internal static extern bool InitializeProcThreadAttributeList(
+ IntPtr lpAttributeList, int dwAttributeCount, int dwFlags, ref IntPtr lpSize);
+
+ [DllImport("kernel32.dll", SetLastError = true)]
+ [return: MarshalAs(UnmanagedType.Bool)]
+ internal static extern bool UpdateProcThreadAttribute(
+ IntPtr lpAttributeList, uint dwFlags, IntPtr attribute, IntPtr lpValue,
+ IntPtr cbSize, IntPtr lpPreviousValue, IntPtr lpReturnSize);
+
+ [DllImport("kernel32.dll", SetLastError = true)]
+ [return: MarshalAs(UnmanagedType.Bool)]
+ internal static extern bool CreateProcess(
+ string lpApplicationName, string lpCommandLine, ref SECURITY_ATTRIBUTES lpProcessAttributes,
+ ref SECURITY_ATTRIBUTES lpThreadAttributes, bool bInheritHandles, uint dwCreationFlags,
+ IntPtr lpEnvironment, string lpCurrentDirectory, [In] ref STARTUPINFOEX lpStartupInfo,
+ out PROCESS_INFORMATION lpProcessInformation);
+
+ [DllImport("kernel32.dll", SetLastError = true)]
+ [return: MarshalAs(UnmanagedType.Bool)]
+ internal static extern bool DeleteProcThreadAttributeList(IntPtr lpAttributeList);
+
+ [DllImport("kernel32.dll", SetLastError = true)]
+ internal static extern bool CloseHandle(IntPtr hObject);
+ }
+}
diff --git a/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/Native/PseudoConsoleApi.cs b/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/Native/PseudoConsoleApi.cs
new file mode 100644
index 0000000000..ba7ca4048d
--- /dev/null
+++ b/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/Native/PseudoConsoleApi.cs
@@ -0,0 +1,41 @@
+using Microsoft.Win32.SafeHandles;
+using System;
+using System.Runtime.InteropServices;
+using static WpfTerminalTestNetCore.Native.ProcessApi;
+
+namespace WpfTerminalTestNetCore.Native
+{
+ ///
+ /// PInvoke signatures for win32 pseudo console api
+ ///
+ static class PseudoConsoleApi
+ {
+ internal const uint PROC_THREAD_ATTRIBUTE_PSEUDOCONSOLE = 0x00020016;
+ internal const uint PROC_THREAD_ATTRIBUTE_CONSOLE_REFERENCE = 0x0002000A;
+
+ [StructLayout(LayoutKind.Sequential)]
+ internal struct COORD
+ {
+ public short X;
+ public short Y;
+ }
+
+ [DllImport("conpty.dll", SetLastError = true)]
+ internal static extern int CreatePseudoConsole(COORD size, SafeFileHandle hInput, SafeFileHandle hOutput, uint dwFlags, out IntPtr phPC);
+
+ [DllImport("conpty.dll", SetLastError = true)]
+ internal static extern int ConptyCreateStartupInfo(IntPtr hPC, out STARTUPINFOEX pSiExW);
+
+ [DllImport("conpty.dll", SetLastError = true)]
+ internal static extern int ConptyDestroyStartupInfo(ref STARTUPINFOEX pSiExW);
+
+ [DllImport("conpty.dll", SetLastError = true)]
+ internal static extern int ResizePseudoConsole(IntPtr hPC, COORD size);
+
+ [DllImport("conpty.dll", SetLastError = true)]
+ internal static extern int ClosePseudoConsole(IntPtr hPC);
+
+ [DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
+ internal static extern bool CreatePipe(out SafeFileHandle hReadPipe, out SafeFileHandle hWritePipe, IntPtr lpPipeAttributes, int nSize);
+ }
+}
diff --git a/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/Processes/Process.cs b/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/Processes/Process.cs
new file mode 100644
index 0000000000..2bd33c6f67
--- /dev/null
+++ b/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/Processes/Process.cs
@@ -0,0 +1,72 @@
+using System;
+using System.Runtime.InteropServices;
+using WpfTerminalTestNetCore.Native;
+using static WpfTerminalTestNetCore.Native.ProcessApi;
+
+namespace WpfTerminalTestNetCore
+{
+ ///
+ /// Represents an instance of a process.
+ ///
+ internal sealed class Process : IDisposable
+ {
+ public Process(STARTUPINFOEX startupInfo, PROCESS_INFORMATION processInfo)
+ {
+ StartupInfo = startupInfo;
+ ProcessInfo = processInfo;
+ }
+
+ public STARTUPINFOEX StartupInfo { get; }
+ public PROCESS_INFORMATION ProcessInfo { get; }
+
+ #region IDisposable Support
+
+ private bool disposedValue = false; // To detect redundant calls
+
+ void Dispose(bool disposing)
+ {
+ if (!disposedValue)
+ {
+ if (disposing)
+ {
+ // dispose managed state (managed objects).
+ }
+
+ // dispose unmanaged state
+
+ // Free the attribute list
+ var si = StartupInfo;
+ PseudoConsoleApi.ConptyDestroyStartupInfo(ref si);
+
+ // Close process and thread handles
+ if (ProcessInfo.hProcess != IntPtr.Zero)
+ {
+ CloseHandle(ProcessInfo.hProcess);
+ }
+ if (ProcessInfo.hThread != IntPtr.Zero)
+ {
+ CloseHandle(ProcessInfo.hThread);
+ }
+
+ disposedValue = true;
+ }
+ }
+
+ ~Process()
+ {
+ // Do not change this code. Put cleanup code in Dispose(bool disposing) above.
+ Dispose(false);
+ }
+
+ // This code added to correctly implement the disposable pattern.
+ public void Dispose()
+ {
+ // Do not change this code. Put cleanup code in Dispose(bool disposing) above.
+ Dispose(true);
+ // use the following line if the finalizer is overridden above.
+ GC.SuppressFinalize(this);
+ }
+
+ #endregion
+ }
+}
diff --git a/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/Processes/ProcessFactory.cs b/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/Processes/ProcessFactory.cs
new file mode 100644
index 0000000000..9116e80b85
--- /dev/null
+++ b/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/Processes/ProcessFactory.cs
@@ -0,0 +1,52 @@
+using System;
+using System.Runtime.InteropServices;
+using WpfTerminalTestNetCore.Native;
+using static WpfTerminalTestNetCore.Native.ProcessApi;
+
+namespace WpfTerminalTestNetCore
+{
+ ///
+ /// Support for starting and configuring processes.
+ ///
+ ///
+ /// Possible to replace with managed code? The key is being able to provide the PROC_THREAD_ATTRIBUTE_PSEUDOCONSOLE attribute
+ ///
+ static class ProcessFactory
+ {
+ ///
+ /// Start and configure a process. The return value represents the process and should be disposed.
+ ///
+ internal static Process Start(string command, IntPtr attributes, IntPtr hPC)
+ {
+ var startupInfo = new STARTUPINFOEX();
+ PseudoConsoleApi.ConptyCreateStartupInfo(hPC, out startupInfo);
+ var processInfo = RunProcess(ref startupInfo, command);
+ return new Process(startupInfo, processInfo);
+ }
+
+ private static PROCESS_INFORMATION RunProcess(ref STARTUPINFOEX sInfoEx, string commandLine)
+ {
+ int securityAttributeSize = Marshal.SizeOf();
+ var pSec = new SECURITY_ATTRIBUTES { nLength = securityAttributeSize };
+ var tSec = new SECURITY_ATTRIBUTES { nLength = securityAttributeSize };
+ var success = CreateProcess(
+ lpApplicationName: null,
+ lpCommandLine: commandLine,
+ lpProcessAttributes: ref pSec,
+ lpThreadAttributes: ref tSec,
+ bInheritHandles: true,
+ dwCreationFlags: EXTENDED_STARTUPINFO_PRESENT,
+ lpEnvironment: IntPtr.Zero,
+ lpCurrentDirectory: null,
+ lpStartupInfo: ref sInfoEx,
+ lpProcessInformation: out PROCESS_INFORMATION pInfo
+ );
+ if (!success)
+ {
+ throw new InvalidOperationException("Could not create process. " + Marshal.GetLastWin32Error());
+ }
+
+ return pInfo;
+ }
+ }
+}
diff --git a/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/Properties/launchSettings.json b/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/Properties/launchSettings.json
new file mode 100644
index 0000000000..95d9270c44
--- /dev/null
+++ b/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/Properties/launchSettings.json
@@ -0,0 +1,11 @@
+{
+ "profiles": {
+ "WpfTerminalTestNetCore": {
+ "commandName": "Project",
+ "workingDirectory": "C:\\",
+ "remoteDebugEnabled": true,
+ "remoteDebugMachine": "VM81",
+ "nativeDebugging": true
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/PseudoConsole.cs b/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/PseudoConsole.cs
new file mode 100644
index 0000000000..bf424ecee4
--- /dev/null
+++ b/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/PseudoConsole.cs
@@ -0,0 +1,44 @@
+using Microsoft.Win32.SafeHandles;
+using System;
+using static WpfTerminalTestNetCore.Native.PseudoConsoleApi;
+
+namespace WpfTerminalTestNetCore
+{
+ ///
+ /// Utility functions around the new Pseudo Console APIs
+ ///
+ internal sealed class PseudoConsole : IDisposable
+ {
+ public static readonly IntPtr PseudoConsoleThreadAttribute = (IntPtr)PROC_THREAD_ATTRIBUTE_PSEUDOCONSOLE;
+
+ public IntPtr Handle { get; }
+
+ private PseudoConsole(IntPtr handle)
+ {
+ this.Handle = handle;
+ }
+
+ internal static PseudoConsole Create(SafeFileHandle inputReadSide, SafeFileHandle outputWriteSide, int width, int height)
+ {
+ var createResult = CreatePseudoConsole(
+ new COORD { X = (short)width, Y = (short)height },
+ inputReadSide, outputWriteSide,
+ 0, out IntPtr hPC);
+ if (createResult != 0)
+ {
+ throw new InvalidOperationException("Could not create psuedo console. Error Code " + createResult);
+ }
+ return new PseudoConsole(hPC);
+ }
+
+ public void Resize(short w, short h)
+ {
+ ResizePseudoConsole(Handle, new COORD { X = w, Y = h });
+ }
+
+ public void Dispose()
+ {
+ ClosePseudoConsole(Handle);
+ }
+ }
+}
diff --git a/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/PseudoConsolePipe.cs b/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/PseudoConsolePipe.cs
new file mode 100644
index 0000000000..9cefdb8334
--- /dev/null
+++ b/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/PseudoConsolePipe.cs
@@ -0,0 +1,46 @@
+using Microsoft.Win32.SafeHandles;
+using System;
+using static WpfTerminalTestNetCore.Native.PseudoConsoleApi;
+
+namespace WpfTerminalTestNetCore
+{
+ ///
+ /// A pipe used to talk to the pseudoconsole, as described in:
+ /// https://docs.microsoft.com/en-us/windows/console/creating-a-pseudoconsole-session
+ ///
+ ///
+ /// We'll have two instances of this class, one for input and one for output.
+ ///
+ internal sealed class PseudoConsolePipe : IDisposable
+ {
+ public readonly SafeFileHandle ReadSide;
+ public readonly SafeFileHandle WriteSide;
+
+ public PseudoConsolePipe()
+ {
+ if (!CreatePipe(out ReadSide, out WriteSide, IntPtr.Zero, 0))
+ {
+ throw new InvalidOperationException("failed to create pipe");
+ }
+ }
+
+ #region IDisposable
+
+ void Dispose(bool disposing)
+ {
+ if (disposing)
+ {
+ ReadSide?.Dispose();
+ WriteSide?.Dispose();
+ }
+ }
+
+ public void Dispose()
+ {
+ Dispose(true);
+ GC.SuppressFinalize(this);
+ }
+
+ #endregion
+ }
+}
diff --git a/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/WpfTerminalTestNetCore.csproj b/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/WpfTerminalTestNetCore.csproj
new file mode 100644
index 0000000000..8e5601f688
--- /dev/null
+++ b/src/tools/WpfTerminalTestNetCore/WpfTerminalTestNetCore/WpfTerminalTestNetCore.csproj
@@ -0,0 +1,28 @@
+
+
+
+ WinExe
+ netcoreapp3.1
+ true
+ AnyCPU;x64
+
+
+
+
+
+
+
+
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+
+
diff --git a/src/winconpty/dll/winconpty.def b/src/winconpty/dll/winconpty.def
index 1ea7e916ae..1710d6e1ef 100644
--- a/src/winconpty/dll/winconpty.def
+++ b/src/winconpty/dll/winconpty.def
@@ -2,3 +2,5 @@ EXPORTS
CreatePseudoConsole = ConptyCreatePseudoConsole
ResizePseudoConsole = ConptyResizePseudoConsole
ClosePseudoConsole = ConptyClosePseudoConsole
+ ConptyCreateStartupInfo
+ ConptyDestroyStartupInfo
diff --git a/src/winconpty/winconpty.cpp b/src/winconpty/winconpty.cpp
index ed250b55a6..59a1d43b2c 100644
--- a/src/winconpty/winconpty.cpp
+++ b/src/winconpty/winconpty.cpp
@@ -4,6 +4,7 @@
#include "precomp.h"
#include "winconpty.h"
+#include "../server/winbasep.h"
#ifdef __INSIDE_WINDOWS
#include
@@ -189,6 +190,8 @@ HRESULT _CreatePseudoConsole(const HANDLE hToken,
L"\\Reference",
FALSE));
+ pPty->hPtyServer = serverHandle.release();
+
pPty->hSignal = signalPipeOurSide.release();
return S_OK;
@@ -266,6 +269,12 @@ void _ClosePseudoConsoleMembers(_In_ PseudoConsole* pPty)
CloseHandle(pPty->hPtyReference);
pPty->hPtyReference = nullptr;
}
+
+ if (_HandleIsValid(pPty->hPtyServer))
+ {
+ CloseHandle(pPty->hPtyServer);
+ pPty->hPtyServer = nullptr;
+ }
}
}
@@ -386,4 +395,153 @@ extern "C" VOID WINAPI ConptyClosePseudoConsole(_In_ HPCON hPC)
}
}
+extern "C" HRESULT WINAPI ConptyCreateStartupInfo(_In_ HPCON hPC, LPSTARTUPINFOEXW pSiExW)
+{
+ PseudoConsole* const pPty = (PseudoConsole*)hPC;
+ auto& siExW{ *pSiExW };
+
+ siExW = {};
+ siExW.StartupInfo.cb = sizeof(STARTUPINFOEX);
+ siExW.StartupInfo.dwFlags = STARTF_USESTDHANDLES;
+
+ SIZE_T AttributeListSize;
+ InitializeProcThreadAttributeList(nullptr,
+ 1,
+ 0,
+ &AttributeListSize);
+
+ // Alloc space
+ auto AttributeList{ wil::make_unique_cotaskmem(AttributeListSize) };
+ RETURN_IF_NULL_ALLOC(AttributeList);
+
+ siExW.lpAttributeList = reinterpret_cast(AttributeList.get());
+
+ // Call second time to actually initialize space.
+ RETURN_IF_WIN32_BOOL_FALSE(InitializeProcThreadAttributeList(siExW.lpAttributeList,
+ 1, // This represents the length of the list. We will call UpdateProcThreadAttribute twice so this is 2.
+ 0,
+ &AttributeListSize));
+ // Set cleanup data for ProcThreadAttributeList if we fail.
+ auto CleanupProcThreadAttribute = wil::scope_exit([&] {
+ DeleteProcThreadAttributeList(siExW.lpAttributeList);
+ });
+
+ RETURN_IF_WIN32_BOOL_FALSE(UpdateProcThreadAttribute(siExW.lpAttributeList,
+ 0,
+ PROC_THREAD_ATTRIBUTE_CONSOLE_REFERENCE,
+ &pPty->hPtyReference,
+ sizeof(HANDLE),
+ NULL,
+ NULL));
+
+ AttributeList.release();
+ CleanupProcThreadAttribute.release();
+ return S_OK;
+#if 0
+ PseudoConsole* const pPty = (PseudoConsole*)hPC;
+ auto& siExW{ *pSiExW };
+
+ wil::unique_handle ClientHandle[3];
+
+ // Input
+ RETURN_IF_NTSTATUS_FAILED(CreateClientHandle(ClientHandle[0].addressof(),
+ pPty->hPtyReference,
+ L"\\Input",
+ TRUE));
+
+ // Output
+ RETURN_IF_NTSTATUS_FAILED(CreateClientHandle(ClientHandle[1].addressof(),
+ pPty->hPtyReference,
+ L"\\Output",
+ TRUE));
+
+ // Error is a copy of Output
+ RETURN_IF_WIN32_BOOL_FALSE(DuplicateHandle(GetCurrentProcess(),
+ ClientHandle[1].get(),
+ GetCurrentProcess(),
+ ClientHandle[2].addressof(),
+ 0,
+ TRUE,
+ DUPLICATE_SAME_ACCESS));
+
+ // Create the child process. We will temporarily overwrite the values in the
+ // PEB to force them to be inherited.
+
+ siExW = {};
+ siExW.StartupInfo.cb = sizeof(STARTUPINFOEX);
+ siExW.StartupInfo.dwFlags = STARTF_USESTDHANDLES;
+ siExW.StartupInfo.hStdInput = ClientHandle[0].get();
+ siExW.StartupInfo.hStdOutput = ClientHandle[1].get();
+ siExW.StartupInfo.hStdError = ClientHandle[2].get();
+
+ // Create the extended attributes list that will pass the console server information into the child process.
+
+ // Call first time to find size
+ SIZE_T AttributeListSize;
+ InitializeProcThreadAttributeList(nullptr,
+ 2,
+ 0,
+ &AttributeListSize);
+
+ // Alloc space
+ auto AttributeList{ wil::make_unique_cotaskmem(AttributeListSize) };
+ RETURN_IF_NULL_ALLOC(AttributeList);
+
+ siExW.lpAttributeList = reinterpret_cast(AttributeList.get());
+
+ // Call second time to actually initialize space.
+ RETURN_IF_WIN32_BOOL_FALSE(InitializeProcThreadAttributeList(siExW.lpAttributeList,
+ 2, // This represents the length of the list. We will call UpdateProcThreadAttribute twice so this is 2.
+ 0,
+ &AttributeListSize));
+ // Set cleanup data for ProcThreadAttributeList if we fail.
+ auto CleanupProcThreadAttribute = wil::scope_exit([&] {
+ DeleteProcThreadAttributeList(siExW.lpAttributeList);
+ });
+
+ RETURN_IF_WIN32_BOOL_FALSE(UpdateProcThreadAttribute(siExW.lpAttributeList,
+ 0,
+ PROC_THREAD_ATTRIBUTE_CONSOLE_REFERENCE,
+ &pPty->hPtyReference,
+ sizeof(HANDLE),
+ NULL,
+ NULL));
+
+ // UpdateProcThreadAttributes wants this as a bare array of handles and doesn't like our smart structures,
+ // so set it up for its use.
+ HANDLE HandleList[4];
+ HandleList[0] = siExW.StartupInfo.hStdInput;
+ HandleList[1] = siExW.StartupInfo.hStdOutput;
+ HandleList[2] = siExW.StartupInfo.hStdError;
+ HandleList[3] = pPty->hPtyReference;
+
+ RETURN_IF_WIN32_BOOL_FALSE(UpdateProcThreadAttribute(siExW.lpAttributeList,
+ 0,
+ PROC_THREAD_ATTRIBUTE_HANDLE_LIST,
+ &HandleList[0],
+ sizeof HandleList,
+ NULL,
+ NULL));
+
+ for (auto& h : ClientHandle)
+ {
+ h.release();
+ }
+ AttributeList.release();
+ CleanupProcThreadAttribute.release();
+ return S_OK;
+#endif
+}
+
+extern "C" HRESULT WINAPI ConptyDestroyStartupInfo(LPSTARTUPINFOEXW pSiExW)
+{
+ DeleteProcThreadAttributeList(pSiExW->lpAttributeList);
+ CoTaskMemFree(pSiExW->lpAttributeList);
+ //CloseHandle(pSiExW->StartupInfo.hStdInput);
+ //CloseHandle(pSiExW->StartupInfo.hStdOutput);
+ //CloseHandle(pSiExW->StartupInfo.hStdError);
+ return S_OK;
+}
+
#pragma warning(pop)
+
diff --git a/src/winconpty/winconpty.h b/src/winconpty/winconpty.h
index 53c2279a3f..a8248ecb5c 100644
--- a/src/winconpty/winconpty.h
+++ b/src/winconpty/winconpty.h
@@ -12,6 +12,7 @@ typedef struct _PseudoConsole
HANDLE hSignal;
HANDLE hPtyReference;
HANDLE hConPtyProcess;
+ HANDLE hPtyServer;
} PseudoConsole;
// Signals