diff --git a/doc/admx/DesktopAppInstaller.admx b/doc/admx/DesktopAppInstaller.admx index c692c37061..fce3451700 100644 --- a/doc/admx/DesktopAppInstaller.admx +++ b/doc/admx/DesktopAppInstaller.admx @@ -183,6 +183,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -194,60 +276,60 @@ - + - + - + - + - + - + - + - + - + - + diff --git a/doc/admx/en-US/DesktopAppInstaller.adml b/doc/admx/en-US/DesktopAppInstaller.adml index 746b678784..ea2913d65a 100644 --- a/doc/admx/en-US/DesktopAppInstaller.adml +++ b/doc/admx/en-US/DesktopAppInstaller.adml @@ -122,20 +122,24 @@ If you disable this setting, users will not be able to use the Windows Package M If you disable or do not configure this setting, no proxy will be used by default. If you enable this setting, the specified proxy will be used by default. + Enable App Installer Allowed Zones for the Windows Package Manager + + Enable Microsoft SmartScreen checks for the Windows Package Manager + Enable App Installer Allowed Zones for MSIX Packages This policy controls whether App Installer allows installing packages originating from specific URL Zones. A package's origin is determined by its URI and whether a Mart-of-the-Web (MotW) is present. If multiple URIs are involved, all of them are considered; for example, when using a .appinstaller file that involves redirection. If you enable this policy, users will be able to install MSIX packages according to the configuration for each zone. If you disable or do not configure this policy, users will be able to install MSIX packages from any zone except for Untrusted. - Allow - Block Enable Microsoft SmartScreen checks for MSIX Packages This policy controls whether App Installer performs Microsoft SmartScreen checks when installing MSIX packages. If you enable or do not configure this policy, the package URI will be evaluated with Microsoft SmartScreen before installation. This check is only done for packages that come from the internet. If you disable, Microsoft SmartScreen will not be consulted before installing a package. + Allow + Block @@ -152,6 +156,13 @@ If you disable, Microsoft SmartScreen will not be consulted before installing a + + Local Machine + Intranet + Trusted Sites + Internet + Untrusted Sites + Local Machine Intranet diff --git a/src/AppInstallerCLI.sln b/src/AppInstallerCLI.sln index f4dbf6a7e2..bc914493d2 100644 --- a/src/AppInstallerCLI.sln +++ b/src/AppInstallerCLI.sln @@ -207,6 +207,10 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "VcpkgCustomTriplets", "Vcpk VcpkgCustomTriplets\x86.cmake = VcpkgCustomTriplets\x86.cmake EndProjectSection EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Internal", "Internal", "{A66FF147-BBB4-4A84-95A0-18413D973941}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UriValidation", "Internal\UriValidation\UriValidation.vcxproj", "{98920AB6-27B0-4C0F-B336-FA49DE57A1BA}" +EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Microsoft.Management.Deployment.OutOfProc", "Microsoft.Management.Deployment.OutOfProc\Microsoft.Management.Deployment.OutOfProc.vcxproj", "{0BA531C8-CF0C-405B-8221-0FE51BA529D1}" ProjectSection(ProjectDependencies) = postProject {2B00D362-AC92-41F3-A8D2-5B1599BDCA01} = {2B00D362-AC92-41F3-A8D2-5B1599BDCA01} @@ -214,23 +218,31 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Microsoft.Management.Deploy EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|ARM = Debug|ARM Debug|ARM64 = Debug|ARM64 Debug|x64 = Debug|x64 Debug|x86 = Debug|x86 + Fuzzing|ARM = Fuzzing|ARM Fuzzing|ARM64 = Fuzzing|ARM64 Fuzzing|x64 = Fuzzing|x64 Fuzzing|x86 = Fuzzing|x86 - ReleaseStatic|ARM64 = ReleaseStatic|ARM64 - ReleaseStatic|x64 = ReleaseStatic|x64 - ReleaseStatic|x86 = ReleaseStatic|x86 + Release|ARM = Release|ARM Release|ARM64 = Release|ARM64 Release|x64 = Release|x64 Release|x86 = Release|x86 + ReleaseStatic|ARM = ReleaseStatic|ARM + ReleaseStatic|ARM64 = ReleaseStatic|ARM64 + ReleaseStatic|x64 = ReleaseStatic|x64 + ReleaseStatic|x86 = ReleaseStatic|x86 + TestRelease|ARM = TestRelease|ARM TestRelease|ARM64 = TestRelease|ARM64 TestRelease|x64 = TestRelease|x64 TestRelease|x86 = TestRelease|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution + {6AA3791A-0713-4548-A357-87A323E7AC3A}.Debug|ARM.ActiveCfg = Debug|ARM + {6AA3791A-0713-4548-A357-87A323E7AC3A}.Debug|ARM.Build.0 = Debug|ARM + {6AA3791A-0713-4548-A357-87A323E7AC3A}.Debug|ARM.Deploy.0 = Debug|ARM {6AA3791A-0713-4548-A357-87A323E7AC3A}.Debug|ARM64.ActiveCfg = Debug|ARM64 {6AA3791A-0713-4548-A357-87A323E7AC3A}.Debug|ARM64.Build.0 = Debug|ARM64 {6AA3791A-0713-4548-A357-87A323E7AC3A}.Debug|ARM64.Deploy.0 = Debug|ARM64 @@ -240,12 +252,15 @@ Global {6AA3791A-0713-4548-A357-87A323E7AC3A}.Debug|x86.ActiveCfg = Debug|x86 {6AA3791A-0713-4548-A357-87A323E7AC3A}.Debug|x86.Build.0 = Debug|x86 {6AA3791A-0713-4548-A357-87A323E7AC3A}.Debug|x86.Deploy.0 = Debug|x86 + {6AA3791A-0713-4548-A357-87A323E7AC3A}.Fuzzing|ARM.ActiveCfg = Debug|ARM + {6AA3791A-0713-4548-A357-87A323E7AC3A}.Fuzzing|ARM.Build.0 = Debug|ARM + {6AA3791A-0713-4548-A357-87A323E7AC3A}.Fuzzing|ARM.Deploy.0 = Debug|ARM {6AA3791A-0713-4548-A357-87A323E7AC3A}.Fuzzing|ARM64.ActiveCfg = Release|ARM64 {6AA3791A-0713-4548-A357-87A323E7AC3A}.Fuzzing|x64.ActiveCfg = Release|x64 {6AA3791A-0713-4548-A357-87A323E7AC3A}.Fuzzing|x86.ActiveCfg = Release|x86 - {6AA3791A-0713-4548-A357-87A323E7AC3A}.ReleaseStatic|ARM64.ActiveCfg = Release|ARM64 - {6AA3791A-0713-4548-A357-87A323E7AC3A}.ReleaseStatic|x64.ActiveCfg = Release|x64 - {6AA3791A-0713-4548-A357-87A323E7AC3A}.ReleaseStatic|x86.ActiveCfg = Release|x86 + {6AA3791A-0713-4548-A357-87A323E7AC3A}.Release|ARM.ActiveCfg = Release|ARM + {6AA3791A-0713-4548-A357-87A323E7AC3A}.Release|ARM.Build.0 = Release|ARM + {6AA3791A-0713-4548-A357-87A323E7AC3A}.Release|ARM.Deploy.0 = Release|ARM {6AA3791A-0713-4548-A357-87A323E7AC3A}.Release|ARM64.ActiveCfg = Release|ARM64 {6AA3791A-0713-4548-A357-87A323E7AC3A}.Release|ARM64.Build.0 = Release|ARM64 {6AA3791A-0713-4548-A357-87A323E7AC3A}.Release|ARM64.Deploy.0 = Release|ARM64 @@ -255,224 +270,326 @@ Global {6AA3791A-0713-4548-A357-87A323E7AC3A}.Release|x86.ActiveCfg = Release|x86 {6AA3791A-0713-4548-A357-87A323E7AC3A}.Release|x86.Build.0 = Release|x86 {6AA3791A-0713-4548-A357-87A323E7AC3A}.Release|x86.Deploy.0 = Release|x86 + {6AA3791A-0713-4548-A357-87A323E7AC3A}.ReleaseStatic|ARM.ActiveCfg = Release|ARM + {6AA3791A-0713-4548-A357-87A323E7AC3A}.ReleaseStatic|ARM.Build.0 = Release|ARM + {6AA3791A-0713-4548-A357-87A323E7AC3A}.ReleaseStatic|ARM.Deploy.0 = Release|ARM + {6AA3791A-0713-4548-A357-87A323E7AC3A}.ReleaseStatic|ARM64.ActiveCfg = Release|ARM64 + {6AA3791A-0713-4548-A357-87A323E7AC3A}.ReleaseStatic|x64.ActiveCfg = Release|x64 + {6AA3791A-0713-4548-A357-87A323E7AC3A}.ReleaseStatic|x86.ActiveCfg = Release|x86 + {6AA3791A-0713-4548-A357-87A323E7AC3A}.TestRelease|ARM.ActiveCfg = Release|ARM + {6AA3791A-0713-4548-A357-87A323E7AC3A}.TestRelease|ARM.Build.0 = Release|ARM + {6AA3791A-0713-4548-A357-87A323E7AC3A}.TestRelease|ARM.Deploy.0 = Release|ARM {6AA3791A-0713-4548-A357-87A323E7AC3A}.TestRelease|ARM64.ActiveCfg = Release|ARM64 {6AA3791A-0713-4548-A357-87A323E7AC3A}.TestRelease|x64.ActiveCfg = Release|x64 {6AA3791A-0713-4548-A357-87A323E7AC3A}.TestRelease|x86.ActiveCfg = Release|x86 + {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.Debug|ARM.ActiveCfg = Debug|ARM + {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.Debug|ARM.Build.0 = Debug|ARM {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.Debug|ARM64.ActiveCfg = Debug|ARM64 {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.Debug|ARM64.Build.0 = Debug|ARM64 {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.Debug|x64.ActiveCfg = Debug|x64 {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.Debug|x64.Build.0 = Debug|x64 {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.Debug|x86.ActiveCfg = Debug|Win32 {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.Debug|x86.Build.0 = Debug|Win32 + {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.Fuzzing|ARM.ActiveCfg = Debug|ARM + {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.Fuzzing|ARM.Build.0 = Debug|ARM {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.Fuzzing|ARM64.ActiveCfg = Release|ARM64 {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.Fuzzing|x64.ActiveCfg = Release|x64 {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.Fuzzing|x86.ActiveCfg = Release|Win32 - {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.ReleaseStatic|ARM64.ActiveCfg = Release|ARM64 - {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.ReleaseStatic|x64.ActiveCfg = Release|x64 - {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.ReleaseStatic|x86.ActiveCfg = Release|Win32 + {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.Release|ARM.ActiveCfg = Release|ARM + {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.Release|ARM.Build.0 = Release|ARM {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.Release|ARM64.ActiveCfg = Release|ARM64 {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.Release|ARM64.Build.0 = Release|ARM64 {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.Release|x64.ActiveCfg = Release|x64 {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.Release|x64.Build.0 = Release|x64 {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.Release|x86.ActiveCfg = Release|Win32 {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.Release|x86.Build.0 = Release|Win32 + {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.ReleaseStatic|ARM.ActiveCfg = Release|ARM + {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.ReleaseStatic|ARM.Build.0 = Release|ARM + {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.ReleaseStatic|ARM64.ActiveCfg = Release|ARM64 + {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.ReleaseStatic|x64.ActiveCfg = Release|x64 + {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.ReleaseStatic|x86.ActiveCfg = Release|Win32 + {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.TestRelease|ARM.ActiveCfg = Release|ARM + {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.TestRelease|ARM.Build.0 = Release|ARM {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.TestRelease|ARM64.ActiveCfg = Release|ARM64 {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.TestRelease|x64.ActiveCfg = Release|x64 {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.TestRelease|x86.ActiveCfg = Release|Win32 + {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.Debug|ARM.ActiveCfg = Debug|ARM + {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.Debug|ARM.Build.0 = Debug|ARM {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.Debug|ARM64.ActiveCfg = Debug|ARM64 {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.Debug|ARM64.Build.0 = Debug|ARM64 {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.Debug|x64.ActiveCfg = Debug|x64 {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.Debug|x64.Build.0 = Debug|x64 {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.Debug|x86.ActiveCfg = Debug|Win32 {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.Debug|x86.Build.0 = Debug|Win32 + {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.Fuzzing|ARM.ActiveCfg = ReleaseStatic|ARM + {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.Fuzzing|ARM.Build.0 = ReleaseStatic|ARM {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.Fuzzing|ARM64.ActiveCfg = Release|ARM64 {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.Fuzzing|x64.ActiveCfg = Release|x64 {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.Fuzzing|x86.ActiveCfg = Release|Win32 - {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.ReleaseStatic|ARM64.ActiveCfg = ReleaseStatic|ARM64 - {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.ReleaseStatic|ARM64.Build.0 = ReleaseStatic|ARM64 - {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.ReleaseStatic|x64.ActiveCfg = ReleaseStatic|x64 - {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.ReleaseStatic|x64.Build.0 = ReleaseStatic|x64 - {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.ReleaseStatic|x86.ActiveCfg = ReleaseStatic|Win32 - {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.ReleaseStatic|x86.Build.0 = ReleaseStatic|Win32 + {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.Release|ARM.ActiveCfg = Release|ARM + {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.Release|ARM.Build.0 = Release|ARM {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.Release|ARM64.ActiveCfg = Release|ARM64 {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.Release|ARM64.Build.0 = Release|ARM64 {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.Release|x64.ActiveCfg = Release|x64 {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.Release|x64.Build.0 = Release|x64 {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.Release|x86.ActiveCfg = Release|Win32 {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.Release|x86.Build.0 = Release|Win32 + {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.ReleaseStatic|ARM.ActiveCfg = ReleaseStatic|ARM + {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.ReleaseStatic|ARM.Build.0 = ReleaseStatic|ARM + {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.ReleaseStatic|ARM64.ActiveCfg = ReleaseStatic|ARM64 + {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.ReleaseStatic|ARM64.Build.0 = ReleaseStatic|ARM64 + {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.ReleaseStatic|x64.ActiveCfg = ReleaseStatic|x64 + {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.ReleaseStatic|x64.Build.0 = ReleaseStatic|x64 + {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.ReleaseStatic|x86.ActiveCfg = ReleaseStatic|Win32 + {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.ReleaseStatic|x86.Build.0 = ReleaseStatic|Win32 + {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.TestRelease|ARM.ActiveCfg = Release|ARM + {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.TestRelease|ARM.Build.0 = Release|ARM {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.TestRelease|ARM64.ActiveCfg = Release|ARM64 {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.TestRelease|ARM64.Build.0 = Release|ARM64 {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.TestRelease|x64.ActiveCfg = Release|x64 {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.TestRelease|x64.Build.0 = Release|x64 {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.TestRelease|x86.ActiveCfg = Release|Win32 {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.TestRelease|x86.Build.0 = Release|Win32 + {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.Debug|ARM.ActiveCfg = Debug|x64 + {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.Debug|ARM.Build.0 = Debug|x64 {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.Debug|ARM64.ActiveCfg = Debug|ARM64 {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.Debug|ARM64.Build.0 = Debug|ARM64 {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.Debug|x64.ActiveCfg = Debug|x64 {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.Debug|x64.Build.0 = Debug|x64 {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.Debug|x86.ActiveCfg = Debug|Win32 {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.Debug|x86.Build.0 = Debug|Win32 + {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.Fuzzing|ARM.ActiveCfg = Release|x64 + {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.Fuzzing|ARM.Build.0 = Release|x64 {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.Fuzzing|ARM64.ActiveCfg = Release|x64 {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.Fuzzing|x64.ActiveCfg = Release|x64 {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.Fuzzing|x86.ActiveCfg = Release|Win32 - {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.ReleaseStatic|ARM64.ActiveCfg = Release|x64 - {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.ReleaseStatic|x64.ActiveCfg = Release|x64 - {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.ReleaseStatic|x86.ActiveCfg = Release|Win32 + {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.Release|ARM.ActiveCfg = Release|x64 + {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.Release|ARM.Build.0 = Release|x64 {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.Release|ARM64.ActiveCfg = Release|ARM64 {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.Release|ARM64.Build.0 = Release|ARM64 {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.Release|x64.ActiveCfg = Release|x64 {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.Release|x64.Build.0 = Release|x64 {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.Release|x86.ActiveCfg = Release|Win32 {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.Release|x86.Build.0 = Release|Win32 + {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.ReleaseStatic|ARM.ActiveCfg = Release|x64 + {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.ReleaseStatic|ARM.Build.0 = Release|x64 + {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.ReleaseStatic|ARM64.ActiveCfg = Release|x64 + {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.ReleaseStatic|x64.ActiveCfg = Release|x64 + {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.ReleaseStatic|x86.ActiveCfg = Release|Win32 + {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.TestRelease|ARM.ActiveCfg = Release|x64 + {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.TestRelease|ARM.Build.0 = Release|x64 {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.TestRelease|ARM64.ActiveCfg = Release|x64 {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.TestRelease|x64.ActiveCfg = Release|x64 {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.TestRelease|x86.ActiveCfg = Release|Win32 + {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.Debug|ARM.ActiveCfg = Debug|ARM + {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.Debug|ARM.Build.0 = Debug|ARM {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.Debug|ARM64.ActiveCfg = Debug|ARM64 {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.Debug|ARM64.Build.0 = Debug|ARM64 {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.Debug|x64.ActiveCfg = Debug|x64 {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.Debug|x64.Build.0 = Debug|x64 {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.Debug|x86.ActiveCfg = Debug|Win32 {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.Debug|x86.Build.0 = Debug|Win32 + {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.Fuzzing|ARM.ActiveCfg = ReleaseStatic|ARM + {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.Fuzzing|ARM.Build.0 = ReleaseStatic|ARM {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.Fuzzing|ARM64.ActiveCfg = Release|ARM64 {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.Fuzzing|x64.ActiveCfg = Release|x64 {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.Fuzzing|x86.ActiveCfg = Release|Win32 - {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.ReleaseStatic|ARM64.ActiveCfg = ReleaseStatic|ARM64 - {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.ReleaseStatic|ARM64.Build.0 = ReleaseStatic|ARM64 - {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.ReleaseStatic|x64.ActiveCfg = ReleaseStatic|x64 - {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.ReleaseStatic|x64.Build.0 = ReleaseStatic|x64 - {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.ReleaseStatic|x86.ActiveCfg = ReleaseStatic|Win32 - {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.ReleaseStatic|x86.Build.0 = ReleaseStatic|Win32 + {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.Release|ARM.ActiveCfg = Release|ARM + {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.Release|ARM.Build.0 = Release|ARM {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.Release|ARM64.ActiveCfg = Release|ARM64 {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.Release|ARM64.Build.0 = Release|ARM64 {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.Release|x64.ActiveCfg = Release|x64 {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.Release|x64.Build.0 = Release|x64 {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.Release|x86.ActiveCfg = Release|Win32 {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.Release|x86.Build.0 = Release|Win32 + {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.ReleaseStatic|ARM.ActiveCfg = ReleaseStatic|ARM + {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.ReleaseStatic|ARM.Build.0 = ReleaseStatic|ARM + {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.ReleaseStatic|ARM64.ActiveCfg = ReleaseStatic|ARM64 + {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.ReleaseStatic|ARM64.Build.0 = ReleaseStatic|ARM64 + {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.ReleaseStatic|x64.ActiveCfg = ReleaseStatic|x64 + {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.ReleaseStatic|x64.Build.0 = ReleaseStatic|x64 + {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.ReleaseStatic|x86.ActiveCfg = ReleaseStatic|Win32 + {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.ReleaseStatic|x86.Build.0 = ReleaseStatic|Win32 + {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.TestRelease|ARM.ActiveCfg = Release|ARM + {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.TestRelease|ARM.Build.0 = Release|ARM {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.TestRelease|ARM64.ActiveCfg = Release|ARM64 {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.TestRelease|ARM64.Build.0 = Release|ARM64 {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.TestRelease|x64.ActiveCfg = Release|x64 {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.TestRelease|x64.Build.0 = Release|x64 {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.TestRelease|x86.ActiveCfg = Release|Win32 {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.TestRelease|x86.Build.0 = Release|Win32 + {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Debug|ARM.ActiveCfg = Debug|ARM + {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Debug|ARM.Build.0 = Debug|ARM {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Debug|ARM64.ActiveCfg = Debug|ARM64 {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Debug|ARM64.Build.0 = Debug|ARM64 {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Debug|x64.ActiveCfg = Debug|x64 {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Debug|x64.Build.0 = Debug|x64 {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Debug|x86.ActiveCfg = Debug|Win32 {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Debug|x86.Build.0 = Debug|Win32 + {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Fuzzing|ARM.ActiveCfg = Fuzzing|ARM + {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Fuzzing|ARM.Build.0 = Fuzzing|ARM {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Fuzzing|ARM64.ActiveCfg = Fuzzing|ARM64 {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Fuzzing|x64.ActiveCfg = Fuzzing|x64 {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Fuzzing|x64.Build.0 = Fuzzing|x64 {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Fuzzing|x86.ActiveCfg = Fuzzing|Win32 {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Fuzzing|x86.Build.0 = Fuzzing|Win32 - {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.ReleaseStatic|ARM64.ActiveCfg = ReleaseStatic|ARM64 - {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.ReleaseStatic|ARM64.Build.0 = ReleaseStatic|ARM64 - {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.ReleaseStatic|x64.ActiveCfg = ReleaseStatic|x64 - {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.ReleaseStatic|x64.Build.0 = ReleaseStatic|x64 - {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.ReleaseStatic|x86.ActiveCfg = ReleaseStatic|Win32 - {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.ReleaseStatic|x86.Build.0 = ReleaseStatic|Win32 + {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Release|ARM.ActiveCfg = Release|ARM + {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Release|ARM.Build.0 = Release|ARM {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Release|ARM64.ActiveCfg = Release|ARM64 {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Release|ARM64.Build.0 = Release|ARM64 {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Release|x64.ActiveCfg = Release|x64 {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Release|x64.Build.0 = Release|x64 {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Release|x86.ActiveCfg = Release|Win32 {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Release|x86.Build.0 = Release|Win32 + {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.ReleaseStatic|ARM.ActiveCfg = ReleaseStatic|ARM + {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.ReleaseStatic|ARM.Build.0 = ReleaseStatic|ARM + {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.ReleaseStatic|ARM64.ActiveCfg = ReleaseStatic|ARM64 + {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.ReleaseStatic|ARM64.Build.0 = ReleaseStatic|ARM64 + {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.ReleaseStatic|x64.ActiveCfg = ReleaseStatic|x64 + {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.ReleaseStatic|x64.Build.0 = ReleaseStatic|x64 + {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.ReleaseStatic|x86.ActiveCfg = ReleaseStatic|Win32 + {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.ReleaseStatic|x86.Build.0 = ReleaseStatic|Win32 + {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.TestRelease|ARM.ActiveCfg = Release|ARM + {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.TestRelease|ARM.Build.0 = Release|ARM {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.TestRelease|ARM64.ActiveCfg = Release|ARM64 {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.TestRelease|ARM64.Build.0 = Release|ARM64 {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.TestRelease|x64.ActiveCfg = Release|x64 {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.TestRelease|x64.Build.0 = Release|x64 {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.TestRelease|x86.ActiveCfg = Release|Win32 {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.TestRelease|x86.Build.0 = Release|Win32 + {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.Debug|ARM.ActiveCfg = Debug|ARM + {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.Debug|ARM.Build.0 = Debug|ARM {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.Debug|ARM64.ActiveCfg = Debug|ARM64 {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.Debug|ARM64.Build.0 = Debug|ARM64 {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.Debug|x64.ActiveCfg = Debug|x64 {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.Debug|x64.Build.0 = Debug|x64 {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.Debug|x86.ActiveCfg = Debug|Win32 {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.Debug|x86.Build.0 = Debug|Win32 + {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.Fuzzing|ARM.ActiveCfg = Fuzzing|x64 + {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.Fuzzing|ARM.Build.0 = Fuzzing|x64 {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.Fuzzing|ARM64.ActiveCfg = Release|ARM64 {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.Fuzzing|x64.ActiveCfg = Fuzzing|x64 {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.Fuzzing|x64.Build.0 = Fuzzing|x64 {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.Fuzzing|x86.ActiveCfg = Fuzzing|Win32 {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.Fuzzing|x86.Build.0 = Fuzzing|Win32 - {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.ReleaseStatic|ARM64.ActiveCfg = ReleaseStatic|ARM64 - {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.ReleaseStatic|ARM64.Build.0 = ReleaseStatic|ARM64 - {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.ReleaseStatic|x64.ActiveCfg = ReleaseStatic|x64 - {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.ReleaseStatic|x64.Build.0 = ReleaseStatic|x64 - {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.ReleaseStatic|x86.ActiveCfg = ReleaseStatic|Win32 - {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.ReleaseStatic|x86.Build.0 = ReleaseStatic|Win32 + {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.Release|ARM.ActiveCfg = Release|ARM + {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.Release|ARM.Build.0 = Release|ARM {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.Release|ARM64.ActiveCfg = Release|ARM64 {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.Release|ARM64.Build.0 = Release|ARM64 {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.Release|x64.ActiveCfg = Release|x64 {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.Release|x64.Build.0 = Release|x64 {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.Release|x86.ActiveCfg = Release|Win32 {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.Release|x86.Build.0 = Release|Win32 + {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.ReleaseStatic|ARM.ActiveCfg = ReleaseStatic|ARM + {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.ReleaseStatic|ARM.Build.0 = ReleaseStatic|ARM + {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.ReleaseStatic|ARM64.ActiveCfg = ReleaseStatic|ARM64 + {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.ReleaseStatic|ARM64.Build.0 = ReleaseStatic|ARM64 + {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.ReleaseStatic|x64.ActiveCfg = ReleaseStatic|x64 + {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.ReleaseStatic|x64.Build.0 = ReleaseStatic|x64 + {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.ReleaseStatic|x86.ActiveCfg = ReleaseStatic|Win32 + {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.ReleaseStatic|x86.Build.0 = ReleaseStatic|Win32 + {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.TestRelease|ARM.ActiveCfg = Release|ARM + {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.TestRelease|ARM.Build.0 = Release|ARM {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.TestRelease|ARM64.ActiveCfg = Release|ARM64 {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.TestRelease|ARM64.Build.0 = Release|ARM64 {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.TestRelease|x64.ActiveCfg = Release|x64 {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.TestRelease|x64.Build.0 = Release|x64 {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.TestRelease|x86.ActiveCfg = Release|Win32 {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.TestRelease|x86.Build.0 = Release|Win32 + {FB313532-38B0-4676-9303-AB200AA13576}.Debug|ARM.ActiveCfg = Debug|ARM + {FB313532-38B0-4676-9303-AB200AA13576}.Debug|ARM.Build.0 = Debug|ARM {FB313532-38B0-4676-9303-AB200AA13576}.Debug|ARM64.ActiveCfg = Debug|ARM64 {FB313532-38B0-4676-9303-AB200AA13576}.Debug|ARM64.Build.0 = Debug|ARM64 {FB313532-38B0-4676-9303-AB200AA13576}.Debug|x64.ActiveCfg = Debug|x64 {FB313532-38B0-4676-9303-AB200AA13576}.Debug|x64.Build.0 = Debug|x64 {FB313532-38B0-4676-9303-AB200AA13576}.Debug|x86.ActiveCfg = Debug|Win32 {FB313532-38B0-4676-9303-AB200AA13576}.Debug|x86.Build.0 = Debug|Win32 + {FB313532-38B0-4676-9303-AB200AA13576}.Fuzzing|ARM.ActiveCfg = Debug|ARM + {FB313532-38B0-4676-9303-AB200AA13576}.Fuzzing|ARM.Build.0 = Debug|ARM {FB313532-38B0-4676-9303-AB200AA13576}.Fuzzing|ARM64.ActiveCfg = Release|ARM64 {FB313532-38B0-4676-9303-AB200AA13576}.Fuzzing|x64.ActiveCfg = Release|x64 {FB313532-38B0-4676-9303-AB200AA13576}.Fuzzing|x86.ActiveCfg = Release|Win32 - {FB313532-38B0-4676-9303-AB200AA13576}.ReleaseStatic|ARM64.ActiveCfg = Release|ARM64 - {FB313532-38B0-4676-9303-AB200AA13576}.ReleaseStatic|x64.ActiveCfg = Release|x64 - {FB313532-38B0-4676-9303-AB200AA13576}.ReleaseStatic|x86.ActiveCfg = Release|Win32 + {FB313532-38B0-4676-9303-AB200AA13576}.Release|ARM.ActiveCfg = Release|ARM + {FB313532-38B0-4676-9303-AB200AA13576}.Release|ARM.Build.0 = Release|ARM {FB313532-38B0-4676-9303-AB200AA13576}.Release|ARM64.ActiveCfg = Release|ARM64 {FB313532-38B0-4676-9303-AB200AA13576}.Release|ARM64.Build.0 = Release|ARM64 {FB313532-38B0-4676-9303-AB200AA13576}.Release|x64.ActiveCfg = Release|x64 {FB313532-38B0-4676-9303-AB200AA13576}.Release|x64.Build.0 = Release|x64 {FB313532-38B0-4676-9303-AB200AA13576}.Release|x86.ActiveCfg = Release|Win32 {FB313532-38B0-4676-9303-AB200AA13576}.Release|x86.Build.0 = Release|Win32 + {FB313532-38B0-4676-9303-AB200AA13576}.ReleaseStatic|ARM.ActiveCfg = Release|ARM + {FB313532-38B0-4676-9303-AB200AA13576}.ReleaseStatic|ARM.Build.0 = Release|ARM + {FB313532-38B0-4676-9303-AB200AA13576}.ReleaseStatic|ARM64.ActiveCfg = Release|ARM64 + {FB313532-38B0-4676-9303-AB200AA13576}.ReleaseStatic|x64.ActiveCfg = Release|x64 + {FB313532-38B0-4676-9303-AB200AA13576}.ReleaseStatic|x86.ActiveCfg = Release|Win32 + {FB313532-38B0-4676-9303-AB200AA13576}.TestRelease|ARM.ActiveCfg = Release|ARM + {FB313532-38B0-4676-9303-AB200AA13576}.TestRelease|ARM.Build.0 = Release|ARM {FB313532-38B0-4676-9303-AB200AA13576}.TestRelease|ARM64.ActiveCfg = Release|ARM64 {FB313532-38B0-4676-9303-AB200AA13576}.TestRelease|x64.ActiveCfg = Release|x64 {FB313532-38B0-4676-9303-AB200AA13576}.TestRelease|x86.ActiveCfg = Release|Win32 + {6CB84692-5994-407D-B9BD-9216AF77FE83}.Debug|ARM.ActiveCfg = Debug|ARM + {6CB84692-5994-407D-B9BD-9216AF77FE83}.Debug|ARM.Build.0 = Debug|ARM {6CB84692-5994-407D-B9BD-9216AF77FE83}.Debug|ARM64.ActiveCfg = Debug|ARM64 {6CB84692-5994-407D-B9BD-9216AF77FE83}.Debug|ARM64.Build.0 = Debug|ARM64 {6CB84692-5994-407D-B9BD-9216AF77FE83}.Debug|x64.ActiveCfg = Debug|x64 {6CB84692-5994-407D-B9BD-9216AF77FE83}.Debug|x64.Build.0 = Debug|x64 {6CB84692-5994-407D-B9BD-9216AF77FE83}.Debug|x86.ActiveCfg = Debug|Win32 {6CB84692-5994-407D-B9BD-9216AF77FE83}.Debug|x86.Build.0 = Debug|Win32 + {6CB84692-5994-407D-B9BD-9216AF77FE83}.Fuzzing|ARM.ActiveCfg = Debug|ARM + {6CB84692-5994-407D-B9BD-9216AF77FE83}.Fuzzing|ARM.Build.0 = Debug|ARM {6CB84692-5994-407D-B9BD-9216AF77FE83}.Fuzzing|ARM64.ActiveCfg = Release|ARM64 {6CB84692-5994-407D-B9BD-9216AF77FE83}.Fuzzing|x64.ActiveCfg = Release|x64 {6CB84692-5994-407D-B9BD-9216AF77FE83}.Fuzzing|x86.ActiveCfg = Release|Win32 - {6CB84692-5994-407D-B9BD-9216AF77FE83}.ReleaseStatic|ARM64.ActiveCfg = Release|ARM64 - {6CB84692-5994-407D-B9BD-9216AF77FE83}.ReleaseStatic|x64.ActiveCfg = Release|x64 - {6CB84692-5994-407D-B9BD-9216AF77FE83}.ReleaseStatic|x86.ActiveCfg = Release|Win32 + {6CB84692-5994-407D-B9BD-9216AF77FE83}.Release|ARM.ActiveCfg = Release|ARM + {6CB84692-5994-407D-B9BD-9216AF77FE83}.Release|ARM.Build.0 = Release|ARM {6CB84692-5994-407D-B9BD-9216AF77FE83}.Release|ARM64.ActiveCfg = Release|ARM64 {6CB84692-5994-407D-B9BD-9216AF77FE83}.Release|ARM64.Build.0 = Release|ARM64 {6CB84692-5994-407D-B9BD-9216AF77FE83}.Release|x64.ActiveCfg = Release|x64 {6CB84692-5994-407D-B9BD-9216AF77FE83}.Release|x64.Build.0 = Release|x64 {6CB84692-5994-407D-B9BD-9216AF77FE83}.Release|x86.ActiveCfg = Release|Win32 {6CB84692-5994-407D-B9BD-9216AF77FE83}.Release|x86.Build.0 = Release|Win32 + {6CB84692-5994-407D-B9BD-9216AF77FE83}.ReleaseStatic|ARM.ActiveCfg = Release|ARM + {6CB84692-5994-407D-B9BD-9216AF77FE83}.ReleaseStatic|ARM.Build.0 = Release|ARM + {6CB84692-5994-407D-B9BD-9216AF77FE83}.ReleaseStatic|ARM64.ActiveCfg = Release|ARM64 + {6CB84692-5994-407D-B9BD-9216AF77FE83}.ReleaseStatic|x64.ActiveCfg = Release|x64 + {6CB84692-5994-407D-B9BD-9216AF77FE83}.ReleaseStatic|x86.ActiveCfg = Release|Win32 + {6CB84692-5994-407D-B9BD-9216AF77FE83}.TestRelease|ARM.ActiveCfg = Release|ARM + {6CB84692-5994-407D-B9BD-9216AF77FE83}.TestRelease|ARM.Build.0 = Release|ARM {6CB84692-5994-407D-B9BD-9216AF77FE83}.TestRelease|ARM64.ActiveCfg = Release|ARM64 {6CB84692-5994-407D-B9BD-9216AF77FE83}.TestRelease|x64.ActiveCfg = Release|x64 {6CB84692-5994-407D-B9BD-9216AF77FE83}.TestRelease|x86.ActiveCfg = Release|Win32 + {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.Debug|ARM.ActiveCfg = Debug|x64 + {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.Debug|ARM.Build.0 = Debug|x64 {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.Debug|ARM64.ActiveCfg = Debug|x64 {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.Debug|x64.ActiveCfg = Debug|x64 {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.Debug|x64.Build.0 = Debug|x64 {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.Debug|x86.ActiveCfg = Debug|x86 {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.Debug|x86.Build.0 = Debug|x86 + {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.Fuzzing|ARM.ActiveCfg = Release|x64 + {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.Fuzzing|ARM.Build.0 = Release|x64 {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.Fuzzing|ARM64.ActiveCfg = Release|x64 {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.Fuzzing|x64.ActiveCfg = Release|x64 {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.Fuzzing|x86.ActiveCfg = Release|x86 - {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.ReleaseStatic|ARM64.ActiveCfg = Release|x86 - {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.ReleaseStatic|x64.ActiveCfg = Release|x64 - {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.ReleaseStatic|x86.ActiveCfg = Release|x86 + {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.Release|ARM.ActiveCfg = Release|x64 + {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.Release|ARM.Build.0 = Release|x64 {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.Release|ARM64.ActiveCfg = Release|x64 {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.Release|x64.ActiveCfg = Release|x64 {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.Release|x64.Build.0 = Release|x64 {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.Release|x86.ActiveCfg = Release|x86 {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.Release|x86.Build.0 = Release|x86 + {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.ReleaseStatic|ARM.ActiveCfg = Release|x64 + {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.ReleaseStatic|ARM.Build.0 = Release|x64 + {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.ReleaseStatic|ARM64.ActiveCfg = Release|x86 + {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.ReleaseStatic|x64.ActiveCfg = Release|x64 + {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.ReleaseStatic|x86.ActiveCfg = Release|x86 + {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.TestRelease|ARM.ActiveCfg = Release|x64 + {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.TestRelease|ARM.Build.0 = Release|x64 {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.TestRelease|ARM64.ActiveCfg = Release|x64 {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.TestRelease|x64.ActiveCfg = Release|x64 {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.TestRelease|x86.ActiveCfg = Release|x86 + {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.Debug|ARM.ActiveCfg = Debug|ARM + {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.Debug|ARM.Build.0 = Debug|ARM + {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.Debug|ARM.Deploy.0 = Debug|ARM {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.Debug|ARM64.ActiveCfg = Debug|ARM64 {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.Debug|ARM64.Build.0 = Debug|ARM64 {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.Debug|ARM64.Deploy.0 = Debug|ARM64 @@ -482,12 +599,15 @@ Global {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.Debug|x86.ActiveCfg = Debug|x86 {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.Debug|x86.Build.0 = Debug|x86 {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.Debug|x86.Deploy.0 = Debug|x86 + {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.Fuzzing|ARM.ActiveCfg = Debug|ARM + {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.Fuzzing|ARM.Build.0 = Debug|ARM + {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.Fuzzing|ARM.Deploy.0 = Debug|ARM {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.Fuzzing|ARM64.ActiveCfg = Release|ARM64 {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.Fuzzing|x64.ActiveCfg = Release|x64 {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.Fuzzing|x86.ActiveCfg = Release|x86 - {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.ReleaseStatic|ARM64.ActiveCfg = Release|ARM64 - {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.ReleaseStatic|x64.ActiveCfg = Release|x64 - {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.ReleaseStatic|x86.ActiveCfg = Release|x86 + {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.Release|ARM.ActiveCfg = Release|ARM + {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.Release|ARM.Build.0 = Release|ARM + {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.Release|ARM.Deploy.0 = Release|ARM {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.Release|ARM64.ActiveCfg = Release|ARM64 {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.Release|ARM64.Build.0 = Release|ARM64 {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.Release|ARM64.Deploy.0 = Release|ARM64 @@ -497,746 +617,1100 @@ Global {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.Release|x86.ActiveCfg = Release|x86 {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.Release|x86.Build.0 = Release|x86 {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.Release|x86.Deploy.0 = Release|x86 + {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.ReleaseStatic|ARM.ActiveCfg = Release|ARM + {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.ReleaseStatic|ARM.Build.0 = Release|ARM + {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.ReleaseStatic|ARM.Deploy.0 = Release|ARM + {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.ReleaseStatic|ARM64.ActiveCfg = Release|ARM64 + {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.ReleaseStatic|x64.ActiveCfg = Release|x64 + {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.ReleaseStatic|x86.ActiveCfg = Release|x86 + {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.TestRelease|ARM.ActiveCfg = Release|ARM + {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.TestRelease|ARM.Build.0 = Release|ARM + {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.TestRelease|ARM.Deploy.0 = Release|ARM {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.TestRelease|ARM64.ActiveCfg = Release|ARM64 {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.TestRelease|x64.ActiveCfg = Release|x64 {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.TestRelease|x86.ActiveCfg = Release|x86 + {C1624B2F-2BF6-4E28-92FA-1BF85C6B62A8}.Debug|ARM.ActiveCfg = Debug {C1624B2F-2BF6-4E28-92FA-1BF85C6B62A8}.Debug|ARM64.ActiveCfg = Debug {C1624B2F-2BF6-4E28-92FA-1BF85C6B62A8}.Debug|x64.ActiveCfg = Debug {C1624B2F-2BF6-4E28-92FA-1BF85C6B62A8}.Debug|x86.ActiveCfg = Debug + {C1624B2F-2BF6-4E28-92FA-1BF85C6B62A8}.Fuzzing|ARM.ActiveCfg = Release {C1624B2F-2BF6-4E28-92FA-1BF85C6B62A8}.Fuzzing|ARM64.ActiveCfg = Release {C1624B2F-2BF6-4E28-92FA-1BF85C6B62A8}.Fuzzing|x64.ActiveCfg = Release {C1624B2F-2BF6-4E28-92FA-1BF85C6B62A8}.Fuzzing|x86.ActiveCfg = Release - {C1624B2F-2BF6-4E28-92FA-1BF85C6B62A8}.ReleaseStatic|ARM64.ActiveCfg = Release - {C1624B2F-2BF6-4E28-92FA-1BF85C6B62A8}.ReleaseStatic|x64.ActiveCfg = Release - {C1624B2F-2BF6-4E28-92FA-1BF85C6B62A8}.ReleaseStatic|x86.ActiveCfg = Release + {C1624B2F-2BF6-4E28-92FA-1BF85C6B62A8}.Release|ARM.ActiveCfg = Release {C1624B2F-2BF6-4E28-92FA-1BF85C6B62A8}.Release|ARM64.ActiveCfg = Release {C1624B2F-2BF6-4E28-92FA-1BF85C6B62A8}.Release|x64.ActiveCfg = Release {C1624B2F-2BF6-4E28-92FA-1BF85C6B62A8}.Release|x86.ActiveCfg = Release + {C1624B2F-2BF6-4E28-92FA-1BF85C6B62A8}.ReleaseStatic|ARM.ActiveCfg = Release + {C1624B2F-2BF6-4E28-92FA-1BF85C6B62A8}.ReleaseStatic|ARM64.ActiveCfg = Release + {C1624B2F-2BF6-4E28-92FA-1BF85C6B62A8}.ReleaseStatic|x64.ActiveCfg = Release + {C1624B2F-2BF6-4E28-92FA-1BF85C6B62A8}.ReleaseStatic|x86.ActiveCfg = Release + {C1624B2F-2BF6-4E28-92FA-1BF85C6B62A8}.TestRelease|ARM.ActiveCfg = Release {C1624B2F-2BF6-4E28-92FA-1BF85C6B62A8}.TestRelease|ARM64.ActiveCfg = Release {C1624B2F-2BF6-4E28-92FA-1BF85C6B62A8}.TestRelease|x64.ActiveCfg = Release {C1624B2F-2BF6-4E28-92FA-1BF85C6B62A8}.TestRelease|x86.ActiveCfg = Release + {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.Debug|ARM.ActiveCfg = Debug|x64 + {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.Debug|ARM.Build.0 = Debug|x64 {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.Debug|ARM64.ActiveCfg = Debug|x64 {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.Debug|x64.ActiveCfg = Debug|x64 {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.Debug|x64.Build.0 = Debug|x64 {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.Debug|x86.ActiveCfg = Debug|x86 {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.Debug|x86.Build.0 = Debug|x86 + {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.Fuzzing|ARM.ActiveCfg = Release|x64 + {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.Fuzzing|ARM.Build.0 = Release|x64 {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.Fuzzing|ARM64.ActiveCfg = Release|x64 {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.Fuzzing|x64.ActiveCfg = Release|x64 {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.Fuzzing|x86.ActiveCfg = Release|x86 - {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.ReleaseStatic|ARM64.ActiveCfg = Release|x64 - {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.ReleaseStatic|x64.ActiveCfg = Release|x64 - {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.ReleaseStatic|x86.ActiveCfg = Release|x86 + {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.Release|ARM.ActiveCfg = Release|x64 + {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.Release|ARM.Build.0 = Release|x64 {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.Release|ARM64.ActiveCfg = Release|x64 {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.Release|x64.ActiveCfg = Release|x64 {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.Release|x64.Build.0 = Release|x64 {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.Release|x86.ActiveCfg = Release|x86 {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.Release|x86.Build.0 = Release|x86 + {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.ReleaseStatic|ARM.ActiveCfg = Release|x64 + {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.ReleaseStatic|ARM.Build.0 = Release|x64 + {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.ReleaseStatic|ARM64.ActiveCfg = Release|x64 + {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.ReleaseStatic|x64.ActiveCfg = Release|x64 + {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.ReleaseStatic|x86.ActiveCfg = Release|x86 + {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.TestRelease|ARM.ActiveCfg = Release|x64 + {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.TestRelease|ARM.Build.0 = Release|x64 {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.TestRelease|ARM64.ActiveCfg = Release|x64 {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.TestRelease|x64.ActiveCfg = Release|x64 {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.TestRelease|x86.ActiveCfg = Release|x86 + {82B39FDA-E86B-4713-A873-9D56DE00247A}.Debug|ARM.ActiveCfg = Debug|ARM + {82B39FDA-E86B-4713-A873-9D56DE00247A}.Debug|ARM.Build.0 = Debug|ARM {82B39FDA-E86B-4713-A873-9D56DE00247A}.Debug|ARM64.ActiveCfg = Debug|ARM64 {82B39FDA-E86B-4713-A873-9D56DE00247A}.Debug|ARM64.Build.0 = Debug|ARM64 {82B39FDA-E86B-4713-A873-9D56DE00247A}.Debug|x64.ActiveCfg = Debug|x64 {82B39FDA-E86B-4713-A873-9D56DE00247A}.Debug|x64.Build.0 = Debug|x64 {82B39FDA-E86B-4713-A873-9D56DE00247A}.Debug|x86.ActiveCfg = Debug|Win32 {82B39FDA-E86B-4713-A873-9D56DE00247A}.Debug|x86.Build.0 = Debug|Win32 + {82B39FDA-E86B-4713-A873-9D56DE00247A}.Fuzzing|ARM.ActiveCfg = Fuzzing|x64 + {82B39FDA-E86B-4713-A873-9D56DE00247A}.Fuzzing|ARM.Build.0 = Fuzzing|x64 {82B39FDA-E86B-4713-A873-9D56DE00247A}.Fuzzing|ARM64.ActiveCfg = Release|ARM64 {82B39FDA-E86B-4713-A873-9D56DE00247A}.Fuzzing|x64.ActiveCfg = Fuzzing|x64 {82B39FDA-E86B-4713-A873-9D56DE00247A}.Fuzzing|x64.Build.0 = Fuzzing|x64 {82B39FDA-E86B-4713-A873-9D56DE00247A}.Fuzzing|x86.ActiveCfg = Fuzzing|Win32 {82B39FDA-E86B-4713-A873-9D56DE00247A}.Fuzzing|x86.Build.0 = Fuzzing|Win32 - {82B39FDA-E86B-4713-A873-9D56DE00247A}.ReleaseStatic|ARM64.ActiveCfg = ReleaseStatic|ARM64 - {82B39FDA-E86B-4713-A873-9D56DE00247A}.ReleaseStatic|ARM64.Build.0 = ReleaseStatic|ARM64 - {82B39FDA-E86B-4713-A873-9D56DE00247A}.ReleaseStatic|x64.ActiveCfg = ReleaseStatic|x64 - {82B39FDA-E86B-4713-A873-9D56DE00247A}.ReleaseStatic|x64.Build.0 = ReleaseStatic|x64 - {82B39FDA-E86B-4713-A873-9D56DE00247A}.ReleaseStatic|x86.ActiveCfg = ReleaseStatic|Win32 - {82B39FDA-E86B-4713-A873-9D56DE00247A}.ReleaseStatic|x86.Build.0 = ReleaseStatic|Win32 + {82B39FDA-E86B-4713-A873-9D56DE00247A}.Release|ARM.ActiveCfg = Release|ARM + {82B39FDA-E86B-4713-A873-9D56DE00247A}.Release|ARM.Build.0 = Release|ARM {82B39FDA-E86B-4713-A873-9D56DE00247A}.Release|ARM64.ActiveCfg = Release|ARM64 {82B39FDA-E86B-4713-A873-9D56DE00247A}.Release|ARM64.Build.0 = Release|ARM64 {82B39FDA-E86B-4713-A873-9D56DE00247A}.Release|x64.ActiveCfg = Release|x64 {82B39FDA-E86B-4713-A873-9D56DE00247A}.Release|x64.Build.0 = Release|x64 {82B39FDA-E86B-4713-A873-9D56DE00247A}.Release|x86.ActiveCfg = Release|Win32 {82B39FDA-E86B-4713-A873-9D56DE00247A}.Release|x86.Build.0 = Release|Win32 + {82B39FDA-E86B-4713-A873-9D56DE00247A}.ReleaseStatic|ARM.ActiveCfg = ReleaseStatic|ARM + {82B39FDA-E86B-4713-A873-9D56DE00247A}.ReleaseStatic|ARM.Build.0 = ReleaseStatic|ARM + {82B39FDA-E86B-4713-A873-9D56DE00247A}.ReleaseStatic|ARM64.ActiveCfg = ReleaseStatic|ARM64 + {82B39FDA-E86B-4713-A873-9D56DE00247A}.ReleaseStatic|ARM64.Build.0 = ReleaseStatic|ARM64 + {82B39FDA-E86B-4713-A873-9D56DE00247A}.ReleaseStatic|x64.ActiveCfg = ReleaseStatic|x64 + {82B39FDA-E86B-4713-A873-9D56DE00247A}.ReleaseStatic|x64.Build.0 = ReleaseStatic|x64 + {82B39FDA-E86B-4713-A873-9D56DE00247A}.ReleaseStatic|x86.ActiveCfg = ReleaseStatic|Win32 + {82B39FDA-E86B-4713-A873-9D56DE00247A}.ReleaseStatic|x86.Build.0 = ReleaseStatic|Win32 + {82B39FDA-E86B-4713-A873-9D56DE00247A}.TestRelease|ARM.ActiveCfg = Release|ARM + {82B39FDA-E86B-4713-A873-9D56DE00247A}.TestRelease|ARM.Build.0 = Release|ARM {82B39FDA-E86B-4713-A873-9D56DE00247A}.TestRelease|ARM64.ActiveCfg = Release|ARM64 {82B39FDA-E86B-4713-A873-9D56DE00247A}.TestRelease|ARM64.Build.0 = Release|ARM64 {82B39FDA-E86B-4713-A873-9D56DE00247A}.TestRelease|x64.ActiveCfg = Release|x64 {82B39FDA-E86B-4713-A873-9D56DE00247A}.TestRelease|x64.Build.0 = Release|x64 {82B39FDA-E86B-4713-A873-9D56DE00247A}.TestRelease|x86.ActiveCfg = Release|Win32 {82B39FDA-E86B-4713-A873-9D56DE00247A}.TestRelease|x86.Build.0 = Release|Win32 + {1622DA16-914F-4F57-A259-D5169003CC8C}.Debug|ARM.ActiveCfg = Debug|x64 + {1622DA16-914F-4F57-A259-D5169003CC8C}.Debug|ARM.Build.0 = Debug|x64 {1622DA16-914F-4F57-A259-D5169003CC8C}.Debug|ARM64.ActiveCfg = Debug|x64 {1622DA16-914F-4F57-A259-D5169003CC8C}.Debug|x64.ActiveCfg = Debug|x64 {1622DA16-914F-4F57-A259-D5169003CC8C}.Debug|x86.ActiveCfg = Fuzzing|Win32 + {1622DA16-914F-4F57-A259-D5169003CC8C}.Fuzzing|ARM.ActiveCfg = Fuzzing|x64 + {1622DA16-914F-4F57-A259-D5169003CC8C}.Fuzzing|ARM.Build.0 = Fuzzing|x64 {1622DA16-914F-4F57-A259-D5169003CC8C}.Fuzzing|ARM64.ActiveCfg = Fuzzing|x64 {1622DA16-914F-4F57-A259-D5169003CC8C}.Fuzzing|x64.ActiveCfg = Fuzzing|x64 {1622DA16-914F-4F57-A259-D5169003CC8C}.Fuzzing|x64.Build.0 = Fuzzing|x64 {1622DA16-914F-4F57-A259-D5169003CC8C}.Fuzzing|x86.ActiveCfg = Fuzzing|Win32 {1622DA16-914F-4F57-A259-D5169003CC8C}.Fuzzing|x86.Build.0 = Fuzzing|Win32 - {1622DA16-914F-4F57-A259-D5169003CC8C}.ReleaseStatic|ARM64.ActiveCfg = Fuzzing|x64 - {1622DA16-914F-4F57-A259-D5169003CC8C}.ReleaseStatic|x64.ActiveCfg = Fuzzing|x64 - {1622DA16-914F-4F57-A259-D5169003CC8C}.ReleaseStatic|x86.ActiveCfg = Fuzzing|Win32 + {1622DA16-914F-4F57-A259-D5169003CC8C}.Release|ARM.ActiveCfg = Fuzzing|x64 + {1622DA16-914F-4F57-A259-D5169003CC8C}.Release|ARM.Build.0 = Fuzzing|x64 {1622DA16-914F-4F57-A259-D5169003CC8C}.Release|ARM64.ActiveCfg = Fuzzing|x64 {1622DA16-914F-4F57-A259-D5169003CC8C}.Release|x64.ActiveCfg = Fuzzing|x64 {1622DA16-914F-4F57-A259-D5169003CC8C}.Release|x86.ActiveCfg = Fuzzing|Win32 + {1622DA16-914F-4F57-A259-D5169003CC8C}.ReleaseStatic|ARM.ActiveCfg = Fuzzing|x64 + {1622DA16-914F-4F57-A259-D5169003CC8C}.ReleaseStatic|ARM.Build.0 = Fuzzing|x64 + {1622DA16-914F-4F57-A259-D5169003CC8C}.ReleaseStatic|ARM64.ActiveCfg = Fuzzing|x64 + {1622DA16-914F-4F57-A259-D5169003CC8C}.ReleaseStatic|x64.ActiveCfg = Fuzzing|x64 + {1622DA16-914F-4F57-A259-D5169003CC8C}.ReleaseStatic|x86.ActiveCfg = Fuzzing|Win32 + {1622DA16-914F-4F57-A259-D5169003CC8C}.TestRelease|ARM.ActiveCfg = Fuzzing|x64 + {1622DA16-914F-4F57-A259-D5169003CC8C}.TestRelease|ARM.Build.0 = Fuzzing|x64 {1622DA16-914F-4F57-A259-D5169003CC8C}.TestRelease|ARM64.ActiveCfg = Fuzzing|x64 {1622DA16-914F-4F57-A259-D5169003CC8C}.TestRelease|x64.ActiveCfg = Fuzzing|x64 {1622DA16-914F-4F57-A259-D5169003CC8C}.TestRelease|x86.ActiveCfg = Fuzzing|Win32 + {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.Debug|ARM.ActiveCfg = Debug|x64 + {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.Debug|ARM.Build.0 = Debug|x64 {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.Debug|ARM64.ActiveCfg = Debug|x64 {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.Debug|x64.ActiveCfg = Debug|x64 {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.Debug|x64.Build.0 = Debug|x64 {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.Debug|x86.ActiveCfg = Debug|x86 {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.Debug|x86.Build.0 = Debug|x86 + {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.Fuzzing|ARM.ActiveCfg = Release|x64 + {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.Fuzzing|ARM.Build.0 = Release|x64 {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.Fuzzing|ARM64.ActiveCfg = Release|x64 {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.Fuzzing|x64.ActiveCfg = Release|x64 {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.Fuzzing|x86.ActiveCfg = Release|x86 - {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.ReleaseStatic|ARM64.ActiveCfg = Release|x64 - {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.ReleaseStatic|x64.ActiveCfg = Release|x64 - {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.ReleaseStatic|x86.ActiveCfg = Release|x86 + {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.Release|ARM.ActiveCfg = Release|x64 + {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.Release|ARM.Build.0 = Release|x64 {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.Release|ARM64.ActiveCfg = Release|x64 {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.Release|x64.ActiveCfg = Release|x64 {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.Release|x64.Build.0 = Release|x64 {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.Release|x86.ActiveCfg = Release|x86 {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.Release|x86.Build.0 = Release|x86 + {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.ReleaseStatic|ARM.ActiveCfg = Release|x64 + {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.ReleaseStatic|ARM.Build.0 = Release|x64 + {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.ReleaseStatic|ARM64.ActiveCfg = Release|x64 + {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.ReleaseStatic|x64.ActiveCfg = Release|x64 + {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.ReleaseStatic|x86.ActiveCfg = Release|x86 + {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.TestRelease|ARM.ActiveCfg = Release|x64 + {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.TestRelease|ARM.Build.0 = Release|x64 {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.TestRelease|ARM64.ActiveCfg = Release|x64 {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.TestRelease|x64.ActiveCfg = Release|x64 {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.TestRelease|x86.ActiveCfg = Release|x86 + {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.Debug|ARM.ActiveCfg = Debug|ARM + {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.Debug|ARM.Build.0 = Debug|ARM {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.Debug|ARM64.ActiveCfg = Debug|ARM64 {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.Debug|ARM64.Build.0 = Debug|ARM64 {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.Debug|x64.ActiveCfg = Debug|x64 {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.Debug|x64.Build.0 = Debug|x64 {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.Debug|x86.ActiveCfg = Debug|Win32 {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.Debug|x86.Build.0 = Debug|Win32 + {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.Fuzzing|ARM.ActiveCfg = Debug|ARM + {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.Fuzzing|ARM.Build.0 = Debug|ARM {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.Fuzzing|ARM64.ActiveCfg = Release|ARM64 {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.Fuzzing|x64.ActiveCfg = Release|x64 {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.Fuzzing|x86.ActiveCfg = Release|Win32 - {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.ReleaseStatic|ARM64.ActiveCfg = ReleaseStatic|ARM64 - {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.ReleaseStatic|ARM64.Build.0 = ReleaseStatic|ARM64 - {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.ReleaseStatic|x64.ActiveCfg = ReleaseStatic|x64 - {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.ReleaseStatic|x64.Build.0 = ReleaseStatic|x64 - {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.ReleaseStatic|x86.ActiveCfg = ReleaseStatic|Win32 - {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.ReleaseStatic|x86.Build.0 = ReleaseStatic|Win32 + {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.Release|ARM.ActiveCfg = Release|ARM + {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.Release|ARM.Build.0 = Release|ARM {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.Release|ARM64.ActiveCfg = Release|ARM64 {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.Release|ARM64.Build.0 = Release|ARM64 {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.Release|x64.ActiveCfg = Release|x64 {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.Release|x64.Build.0 = Release|x64 {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.Release|x86.ActiveCfg = Release|Win32 {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.Release|x86.Build.0 = Release|Win32 + {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.ReleaseStatic|ARM.ActiveCfg = ReleaseStatic|ARM + {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.ReleaseStatic|ARM.Build.0 = ReleaseStatic|ARM + {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.ReleaseStatic|ARM64.ActiveCfg = ReleaseStatic|ARM64 + {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.ReleaseStatic|ARM64.Build.0 = ReleaseStatic|ARM64 + {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.ReleaseStatic|x64.ActiveCfg = ReleaseStatic|x64 + {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.ReleaseStatic|x64.Build.0 = ReleaseStatic|x64 + {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.ReleaseStatic|x86.ActiveCfg = ReleaseStatic|Win32 + {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.ReleaseStatic|x86.Build.0 = ReleaseStatic|Win32 + {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.TestRelease|ARM.ActiveCfg = Release|ARM + {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.TestRelease|ARM.Build.0 = Release|ARM {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.TestRelease|ARM64.ActiveCfg = Release|ARM64 {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.TestRelease|ARM64.Build.0 = Release|ARM64 {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.TestRelease|x64.ActiveCfg = Release|x64 {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.TestRelease|x64.Build.0 = Release|x64 {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.TestRelease|x86.ActiveCfg = Release|Win32 {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.TestRelease|x86.Build.0 = Release|Win32 + {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.Debug|ARM.ActiveCfg = Debug|ARM + {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.Debug|ARM.Build.0 = Debug|ARM {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.Debug|ARM64.ActiveCfg = Debug|ARM64 {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.Debug|ARM64.Build.0 = Debug|ARM64 {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.Debug|x64.ActiveCfg = Debug|x64 {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.Debug|x64.Build.0 = Debug|x64 {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.Debug|x86.ActiveCfg = Debug|Win32 {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.Debug|x86.Build.0 = Debug|Win32 + {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.Fuzzing|ARM.ActiveCfg = ReleaseStatic|ARM + {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.Fuzzing|ARM.Build.0 = ReleaseStatic|ARM {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.Fuzzing|ARM64.ActiveCfg = Release|ARM64 {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.Fuzzing|x64.ActiveCfg = Release|x64 {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.Fuzzing|x86.ActiveCfg = Release|Win32 - {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.ReleaseStatic|ARM64.ActiveCfg = ReleaseStatic|ARM64 - {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.ReleaseStatic|ARM64.Build.0 = ReleaseStatic|ARM64 - {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.ReleaseStatic|x64.ActiveCfg = ReleaseStatic|x64 - {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.ReleaseStatic|x64.Build.0 = ReleaseStatic|x64 - {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.ReleaseStatic|x86.ActiveCfg = ReleaseStatic|Win32 - {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.ReleaseStatic|x86.Build.0 = ReleaseStatic|Win32 + {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.Release|ARM.ActiveCfg = Release|ARM + {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.Release|ARM.Build.0 = Release|ARM {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.Release|ARM64.ActiveCfg = Release|ARM64 {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.Release|ARM64.Build.0 = Release|ARM64 {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.Release|x64.ActiveCfg = Release|x64 {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.Release|x64.Build.0 = Release|x64 {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.Release|x86.ActiveCfg = Release|Win32 {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.Release|x86.Build.0 = Release|Win32 + {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.ReleaseStatic|ARM.ActiveCfg = ReleaseStatic|ARM + {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.ReleaseStatic|ARM.Build.0 = ReleaseStatic|ARM + {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.ReleaseStatic|ARM64.ActiveCfg = ReleaseStatic|ARM64 + {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.ReleaseStatic|ARM64.Build.0 = ReleaseStatic|ARM64 + {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.ReleaseStatic|x64.ActiveCfg = ReleaseStatic|x64 + {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.ReleaseStatic|x64.Build.0 = ReleaseStatic|x64 + {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.ReleaseStatic|x86.ActiveCfg = ReleaseStatic|Win32 + {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.ReleaseStatic|x86.Build.0 = ReleaseStatic|Win32 + {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.TestRelease|ARM.ActiveCfg = Release|ARM + {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.TestRelease|ARM.Build.0 = Release|ARM {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.TestRelease|ARM64.ActiveCfg = Release|ARM64 {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.TestRelease|ARM64.Build.0 = Release|ARM64 {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.TestRelease|x64.ActiveCfg = Release|x64 {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.TestRelease|x64.Build.0 = Release|x64 {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.TestRelease|x86.ActiveCfg = Release|Win32 {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.TestRelease|x86.Build.0 = Release|Win32 + {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.Debug|ARM.ActiveCfg = Debug|ARM + {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.Debug|ARM.Build.0 = Debug|ARM {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.Debug|ARM64.ActiveCfg = Debug|ARM64 {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.Debug|ARM64.Build.0 = Debug|ARM64 {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.Debug|x64.ActiveCfg = Debug|x64 {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.Debug|x64.Build.0 = Debug|x64 {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.Debug|x86.ActiveCfg = Debug|Win32 {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.Debug|x86.Build.0 = Debug|Win32 + {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.Fuzzing|ARM.ActiveCfg = Debug|ARM + {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.Fuzzing|ARM.Build.0 = Debug|ARM {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.Fuzzing|ARM64.ActiveCfg = Release|ARM64 {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.Fuzzing|x64.ActiveCfg = Release|x64 {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.Fuzzing|x86.ActiveCfg = Release|Win32 - {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.ReleaseStatic|ARM64.ActiveCfg = Release|ARM64 - {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.ReleaseStatic|ARM64.Build.0 = Release|ARM64 - {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.ReleaseStatic|x64.ActiveCfg = Release|x64 - {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.ReleaseStatic|x64.Build.0 = Release|x64 - {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.ReleaseStatic|x86.ActiveCfg = Release|Win32 - {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.ReleaseStatic|x86.Build.0 = Release|Win32 + {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.Release|ARM.ActiveCfg = Release|ARM + {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.Release|ARM.Build.0 = Release|ARM {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.Release|ARM64.ActiveCfg = Release|ARM64 {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.Release|ARM64.Build.0 = Release|ARM64 {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.Release|x64.ActiveCfg = Release|x64 {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.Release|x64.Build.0 = Release|x64 {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.Release|x86.ActiveCfg = Release|Win32 {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.Release|x86.Build.0 = Release|Win32 + {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.ReleaseStatic|ARM.ActiveCfg = Release|ARM + {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.ReleaseStatic|ARM.Build.0 = Release|ARM + {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.ReleaseStatic|ARM64.ActiveCfg = Release|ARM64 + {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.ReleaseStatic|ARM64.Build.0 = Release|ARM64 + {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.ReleaseStatic|x64.ActiveCfg = Release|x64 + {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.ReleaseStatic|x64.Build.0 = Release|x64 + {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.ReleaseStatic|x86.ActiveCfg = Release|Win32 + {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.ReleaseStatic|x86.Build.0 = Release|Win32 + {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.TestRelease|ARM.ActiveCfg = Release|ARM + {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.TestRelease|ARM.Build.0 = Release|ARM {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.TestRelease|ARM64.ActiveCfg = Release|ARM64 {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.TestRelease|x64.ActiveCfg = Release|x64 {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.TestRelease|x86.ActiveCfg = Release|Win32 + {846FB88B-BF1B-4F33-9883-E589CEC99739}.Debug|ARM.ActiveCfg = Debug|Any CPU + {846FB88B-BF1B-4F33-9883-E589CEC99739}.Debug|ARM.Build.0 = Debug|Any CPU {846FB88B-BF1B-4F33-9883-E589CEC99739}.Debug|ARM64.ActiveCfg = Debug|Any CPU {846FB88B-BF1B-4F33-9883-E589CEC99739}.Debug|ARM64.Build.0 = Debug|Any CPU {846FB88B-BF1B-4F33-9883-E589CEC99739}.Debug|x64.ActiveCfg = Debug|Any CPU {846FB88B-BF1B-4F33-9883-E589CEC99739}.Debug|x64.Build.0 = Debug|Any CPU {846FB88B-BF1B-4F33-9883-E589CEC99739}.Debug|x86.ActiveCfg = Debug|Any CPU {846FB88B-BF1B-4F33-9883-E589CEC99739}.Debug|x86.Build.0 = Debug|Any CPU + {846FB88B-BF1B-4F33-9883-E589CEC99739}.Fuzzing|ARM.ActiveCfg = Release|Any CPU + {846FB88B-BF1B-4F33-9883-E589CEC99739}.Fuzzing|ARM.Build.0 = Release|Any CPU {846FB88B-BF1B-4F33-9883-E589CEC99739}.Fuzzing|ARM64.ActiveCfg = Release|Any CPU {846FB88B-BF1B-4F33-9883-E589CEC99739}.Fuzzing|x64.ActiveCfg = Release|Any CPU {846FB88B-BF1B-4F33-9883-E589CEC99739}.Fuzzing|x86.ActiveCfg = Release|Any CPU - {846FB88B-BF1B-4F33-9883-E589CEC99739}.ReleaseStatic|ARM64.ActiveCfg = Release|Any CPU - {846FB88B-BF1B-4F33-9883-E589CEC99739}.ReleaseStatic|x64.ActiveCfg = Release|Any CPU - {846FB88B-BF1B-4F33-9883-E589CEC99739}.ReleaseStatic|x86.ActiveCfg = Release|Any CPU + {846FB88B-BF1B-4F33-9883-E589CEC99739}.Release|ARM.ActiveCfg = Release|Any CPU + {846FB88B-BF1B-4F33-9883-E589CEC99739}.Release|ARM.Build.0 = Release|Any CPU {846FB88B-BF1B-4F33-9883-E589CEC99739}.Release|ARM64.ActiveCfg = Release|Any CPU {846FB88B-BF1B-4F33-9883-E589CEC99739}.Release|ARM64.Build.0 = Release|Any CPU {846FB88B-BF1B-4F33-9883-E589CEC99739}.Release|x64.ActiveCfg = Release|Any CPU {846FB88B-BF1B-4F33-9883-E589CEC99739}.Release|x64.Build.0 = Release|Any CPU {846FB88B-BF1B-4F33-9883-E589CEC99739}.Release|x86.ActiveCfg = Release|Any CPU {846FB88B-BF1B-4F33-9883-E589CEC99739}.Release|x86.Build.0 = Release|Any CPU + {846FB88B-BF1B-4F33-9883-E589CEC99739}.ReleaseStatic|ARM.ActiveCfg = Release|Any CPU + {846FB88B-BF1B-4F33-9883-E589CEC99739}.ReleaseStatic|ARM.Build.0 = Release|Any CPU + {846FB88B-BF1B-4F33-9883-E589CEC99739}.ReleaseStatic|ARM64.ActiveCfg = Release|Any CPU + {846FB88B-BF1B-4F33-9883-E589CEC99739}.ReleaseStatic|x64.ActiveCfg = Release|Any CPU + {846FB88B-BF1B-4F33-9883-E589CEC99739}.ReleaseStatic|x86.ActiveCfg = Release|Any CPU + {846FB88B-BF1B-4F33-9883-E589CEC99739}.TestRelease|ARM.ActiveCfg = Release|Any CPU + {846FB88B-BF1B-4F33-9883-E589CEC99739}.TestRelease|ARM.Build.0 = Release|Any CPU {846FB88B-BF1B-4F33-9883-E589CEC99739}.TestRelease|ARM64.ActiveCfg = Release|Any CPU {846FB88B-BF1B-4F33-9883-E589CEC99739}.TestRelease|x64.ActiveCfg = Release|Any CPU {846FB88B-BF1B-4F33-9883-E589CEC99739}.TestRelease|x86.ActiveCfg = Release|Any CPU + {68808357-902B-406C-8C19-E8E26A69DE8A}.Debug|ARM.ActiveCfg = Debug|x64 + {68808357-902B-406C-8C19-E8E26A69DE8A}.Debug|ARM.Build.0 = Debug|x64 {68808357-902B-406C-8C19-E8E26A69DE8A}.Debug|ARM64.ActiveCfg = Debug|ARM64 {68808357-902B-406C-8C19-E8E26A69DE8A}.Debug|x64.ActiveCfg = Debug|x64 {68808357-902B-406C-8C19-E8E26A69DE8A}.Debug|x64.Build.0 = Debug|x64 {68808357-902B-406C-8C19-E8E26A69DE8A}.Debug|x86.ActiveCfg = Debug|x86 {68808357-902B-406C-8C19-E8E26A69DE8A}.Debug|x86.Build.0 = Debug|x86 + {68808357-902B-406C-8C19-E8E26A69DE8A}.Fuzzing|ARM.ActiveCfg = Release|Any CPU + {68808357-902B-406C-8C19-E8E26A69DE8A}.Fuzzing|ARM.Build.0 = Release|Any CPU {68808357-902B-406C-8C19-E8E26A69DE8A}.Fuzzing|ARM64.ActiveCfg = Release|Any CPU {68808357-902B-406C-8C19-E8E26A69DE8A}.Fuzzing|x64.ActiveCfg = Release|Any CPU {68808357-902B-406C-8C19-E8E26A69DE8A}.Fuzzing|x86.ActiveCfg = Release|x86 - {68808357-902B-406C-8C19-E8E26A69DE8A}.ReleaseStatic|ARM64.ActiveCfg = Release|Any CPU - {68808357-902B-406C-8C19-E8E26A69DE8A}.ReleaseStatic|x64.ActiveCfg = Release|Any CPU - {68808357-902B-406C-8C19-E8E26A69DE8A}.ReleaseStatic|x86.ActiveCfg = Release|x86 + {68808357-902B-406C-8C19-E8E26A69DE8A}.Release|ARM.ActiveCfg = Release|Any CPU + {68808357-902B-406C-8C19-E8E26A69DE8A}.Release|ARM.Build.0 = Release|Any CPU {68808357-902B-406C-8C19-E8E26A69DE8A}.Release|ARM64.ActiveCfg = Release|ARM64 {68808357-902B-406C-8C19-E8E26A69DE8A}.Release|x64.ActiveCfg = Release|x64 {68808357-902B-406C-8C19-E8E26A69DE8A}.Release|x64.Build.0 = Release|x64 {68808357-902B-406C-8C19-E8E26A69DE8A}.Release|x86.ActiveCfg = Release|x86 {68808357-902B-406C-8C19-E8E26A69DE8A}.Release|x86.Build.0 = Release|x86 + {68808357-902B-406C-8C19-E8E26A69DE8A}.ReleaseStatic|ARM.ActiveCfg = Release|Any CPU + {68808357-902B-406C-8C19-E8E26A69DE8A}.ReleaseStatic|ARM.Build.0 = Release|Any CPU + {68808357-902B-406C-8C19-E8E26A69DE8A}.ReleaseStatic|ARM64.ActiveCfg = Release|Any CPU + {68808357-902B-406C-8C19-E8E26A69DE8A}.ReleaseStatic|x64.ActiveCfg = Release|Any CPU + {68808357-902B-406C-8C19-E8E26A69DE8A}.ReleaseStatic|x86.ActiveCfg = Release|x86 + {68808357-902B-406C-8C19-E8E26A69DE8A}.TestRelease|ARM.ActiveCfg = Release|Any CPU + {68808357-902B-406C-8C19-E8E26A69DE8A}.TestRelease|ARM.Build.0 = Release|Any CPU {68808357-902B-406C-8C19-E8E26A69DE8A}.TestRelease|ARM64.ActiveCfg = Release|ARM64 {68808357-902B-406C-8C19-E8E26A69DE8A}.TestRelease|x64.ActiveCfg = Release|x64 {68808357-902B-406C-8C19-E8E26A69DE8A}.TestRelease|x86.ActiveCfg = Release|x86 + {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.Debug|ARM.ActiveCfg = Debug|ARM + {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.Debug|ARM.Build.0 = Debug|ARM {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.Debug|ARM64.ActiveCfg = Debug|ARM64 {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.Debug|ARM64.Build.0 = Debug|ARM64 {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.Debug|x64.ActiveCfg = Debug|x64 {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.Debug|x64.Build.0 = Debug|x64 {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.Debug|x86.ActiveCfg = Debug|Win32 {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.Debug|x86.Build.0 = Debug|Win32 + {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.Fuzzing|ARM.ActiveCfg = ReleaseStatic|ARM + {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.Fuzzing|ARM.Build.0 = ReleaseStatic|ARM {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.Fuzzing|ARM64.ActiveCfg = Release|ARM64 {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.Fuzzing|x64.ActiveCfg = Release|x64 {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.Fuzzing|x86.ActiveCfg = Release|Win32 - {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.ReleaseStatic|ARM64.ActiveCfg = ReleaseStatic|ARM64 - {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.ReleaseStatic|ARM64.Build.0 = ReleaseStatic|ARM64 - {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.ReleaseStatic|x64.ActiveCfg = ReleaseStatic|x64 - {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.ReleaseStatic|x64.Build.0 = ReleaseStatic|x64 - {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.ReleaseStatic|x86.ActiveCfg = ReleaseStatic|Win32 - {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.ReleaseStatic|x86.Build.0 = ReleaseStatic|Win32 + {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.Release|ARM.ActiveCfg = Release|ARM + {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.Release|ARM.Build.0 = Release|ARM {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.Release|ARM64.ActiveCfg = Release|ARM64 {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.Release|ARM64.Build.0 = Release|ARM64 {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.Release|x64.ActiveCfg = Release|x64 {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.Release|x64.Build.0 = Release|x64 {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.Release|x86.ActiveCfg = Release|Win32 {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.Release|x86.Build.0 = Release|Win32 + {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.ReleaseStatic|ARM.ActiveCfg = ReleaseStatic|ARM + {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.ReleaseStatic|ARM.Build.0 = ReleaseStatic|ARM + {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.ReleaseStatic|ARM64.ActiveCfg = ReleaseStatic|ARM64 + {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.ReleaseStatic|ARM64.Build.0 = ReleaseStatic|ARM64 + {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.ReleaseStatic|x64.ActiveCfg = ReleaseStatic|x64 + {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.ReleaseStatic|x64.Build.0 = ReleaseStatic|x64 + {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.ReleaseStatic|x86.ActiveCfg = ReleaseStatic|Win32 + {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.ReleaseStatic|x86.Build.0 = ReleaseStatic|Win32 + {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.TestRelease|ARM.ActiveCfg = Release|ARM + {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.TestRelease|ARM.Build.0 = Release|ARM {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.TestRelease|ARM64.ActiveCfg = Release|ARM64 {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.TestRelease|ARM64.Build.0 = Release|ARM64 {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.TestRelease|x64.ActiveCfg = Release|x64 {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.TestRelease|x64.Build.0 = Release|x64 {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.TestRelease|x86.ActiveCfg = Release|Win32 {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.TestRelease|x86.Build.0 = Release|Win32 + {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.Debug|ARM.ActiveCfg = Debug|ARM + {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.Debug|ARM.Build.0 = Debug|ARM {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.Debug|ARM64.ActiveCfg = Debug|ARM64 {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.Debug|ARM64.Build.0 = Debug|ARM64 {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.Debug|x64.ActiveCfg = Debug|x64 {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.Debug|x64.Build.0 = Debug|x64 {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.Debug|x86.ActiveCfg = Debug|Win32 {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.Debug|x86.Build.0 = Debug|Win32 + {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.Fuzzing|ARM.ActiveCfg = Debug|ARM + {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.Fuzzing|ARM.Build.0 = Debug|ARM {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.Fuzzing|ARM64.ActiveCfg = Release|ARM64 {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.Fuzzing|x64.ActiveCfg = Release|x64 {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.Fuzzing|x86.ActiveCfg = Release|Win32 + {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.Release|ARM.ActiveCfg = Release|ARM + {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.Release|ARM.Build.0 = Release|ARM + {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.Release|ARM64.ActiveCfg = Release|ARM64 + {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.Release|x64.ActiveCfg = Release|x64 + {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.Release|x64.Build.0 = Release|x64 + {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.Release|x86.ActiveCfg = Release|Win32 + {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.Release|x86.Build.0 = Release|Win32 + {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.ReleaseStatic|ARM.ActiveCfg = ReleaseStatic|ARM + {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.ReleaseStatic|ARM.Build.0 = ReleaseStatic|ARM {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.ReleaseStatic|ARM64.ActiveCfg = ReleaseStatic|ARM64 {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.ReleaseStatic|ARM64.Build.0 = ReleaseStatic|ARM64 {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.ReleaseStatic|x64.ActiveCfg = ReleaseStatic|x64 {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.ReleaseStatic|x64.Build.0 = ReleaseStatic|x64 {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.ReleaseStatic|x86.ActiveCfg = ReleaseStatic|Win32 {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.ReleaseStatic|x86.Build.0 = ReleaseStatic|Win32 - {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.Release|ARM64.ActiveCfg = Release|ARM64 - {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.Release|x64.ActiveCfg = Release|x64 - {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.Release|x64.Build.0 = Release|x64 - {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.Release|x86.ActiveCfg = Release|Win32 - {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.Release|x86.Build.0 = Release|Win32 + {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.TestRelease|ARM.ActiveCfg = Release|ARM + {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.TestRelease|ARM.Build.0 = Release|ARM {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.TestRelease|ARM64.ActiveCfg = Release|x64 {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.TestRelease|x64.ActiveCfg = Release|x64 {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.TestRelease|x86.ActiveCfg = Release|Win32 + {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Debug|ARM.ActiveCfg = Debug|Any CPU + {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Debug|ARM.Build.0 = Debug|Any CPU {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Debug|ARM64.ActiveCfg = Debug|Any CPU {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Debug|ARM64.Build.0 = Debug|Any CPU {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Debug|x64.ActiveCfg = Debug|Any CPU {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Debug|x64.Build.0 = Debug|Any CPU {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Debug|x86.ActiveCfg = Debug|Any CPU {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Debug|x86.Build.0 = Debug|Any CPU + {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Fuzzing|ARM.ActiveCfg = ReleaseStatic|Any CPU + {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Fuzzing|ARM.Build.0 = ReleaseStatic|Any CPU {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Fuzzing|ARM64.ActiveCfg = Release|Any CPU {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Fuzzing|x64.ActiveCfg = Release|Any CPU {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Fuzzing|x86.ActiveCfg = Release|Any CPU - {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.ReleaseStatic|ARM64.ActiveCfg = Release|Any CPU - {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.ReleaseStatic|x64.ActiveCfg = ReleaseStatic|Any CPU - {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.ReleaseStatic|x64.Build.0 = ReleaseStatic|Any CPU - {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.ReleaseStatic|x86.ActiveCfg = ReleaseStatic|Any CPU - {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.ReleaseStatic|x86.Build.0 = ReleaseStatic|Any CPU + {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Release|ARM.ActiveCfg = Release|Any CPU + {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Release|ARM.Build.0 = Release|Any CPU {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Release|ARM64.ActiveCfg = Release|Any CPU {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Release|ARM64.Build.0 = Release|Any CPU {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Release|x64.ActiveCfg = Release|Any CPU {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Release|x64.Build.0 = Release|Any CPU {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Release|x86.ActiveCfg = Release|Any CPU {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Release|x86.Build.0 = Release|Any CPU + {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.ReleaseStatic|ARM.ActiveCfg = ReleaseStatic|Any CPU + {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.ReleaseStatic|ARM.Build.0 = ReleaseStatic|Any CPU + {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.ReleaseStatic|ARM64.ActiveCfg = Release|Any CPU + {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.ReleaseStatic|x64.ActiveCfg = ReleaseStatic|Any CPU + {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.ReleaseStatic|x64.Build.0 = ReleaseStatic|Any CPU + {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.ReleaseStatic|x86.ActiveCfg = ReleaseStatic|Any CPU + {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.ReleaseStatic|x86.Build.0 = ReleaseStatic|Any CPU + {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.TestRelease|ARM.ActiveCfg = Release|Any CPU + {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.TestRelease|ARM.Build.0 = Release|Any CPU {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.TestRelease|ARM64.ActiveCfg = Release|Any CPU {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.TestRelease|x64.ActiveCfg = Release|Any CPU {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.TestRelease|x86.ActiveCfg = Release|Any CPU + {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.Debug|ARM.ActiveCfg = Debug|x64 + {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.Debug|ARM.Build.0 = Debug|x64 {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.Debug|ARM64.ActiveCfg = Debug|arm64 {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.Debug|x64.ActiveCfg = Debug|x64 {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.Debug|x64.Build.0 = Debug|x64 {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.Debug|x86.ActiveCfg = Debug|x86 {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.Debug|x86.Build.0 = Debug|x86 + {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.Fuzzing|ARM.ActiveCfg = ReleaseStatic|x64 + {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.Fuzzing|ARM.Build.0 = ReleaseStatic|x64 {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.Fuzzing|ARM64.ActiveCfg = Release|arm64 {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.Fuzzing|x64.ActiveCfg = Release|x64 {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.Fuzzing|x86.ActiveCfg = Release|x86 + {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.Release|ARM.ActiveCfg = Release|x64 + {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.Release|ARM.Build.0 = Release|x64 + {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.Release|ARM64.ActiveCfg = Release|arm64 + {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.Release|x64.ActiveCfg = Release|x64 + {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.Release|x64.Build.0 = Release|x64 + {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.Release|x86.ActiveCfg = Release|x86 + {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.Release|x86.Build.0 = Release|x86 + {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.ReleaseStatic|ARM.ActiveCfg = ReleaseStatic|x64 + {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.ReleaseStatic|ARM.Build.0 = ReleaseStatic|x64 {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.ReleaseStatic|ARM64.ActiveCfg = ReleaseStatic|arm64 {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.ReleaseStatic|ARM64.Build.0 = ReleaseStatic|arm64 {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.ReleaseStatic|x64.ActiveCfg = ReleaseStatic|x64 {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.ReleaseStatic|x64.Build.0 = ReleaseStatic|x64 {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.ReleaseStatic|x86.ActiveCfg = ReleaseStatic|x86 {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.ReleaseStatic|x86.Build.0 = ReleaseStatic|x86 - {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.Release|ARM64.ActiveCfg = Release|arm64 - {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.Release|x64.ActiveCfg = Release|x64 - {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.Release|x64.Build.0 = Release|x64 - {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.Release|x86.ActiveCfg = Release|x86 - {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.Release|x86.Build.0 = Release|x86 + {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.TestRelease|ARM.ActiveCfg = Release|x64 + {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.TestRelease|ARM.Build.0 = Release|x64 {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.TestRelease|ARM64.ActiveCfg = Release|x64 {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.TestRelease|x64.ActiveCfg = Release|x64 {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.TestRelease|x86.ActiveCfg = Release|x86 + {31ED69A8-5310-45A9-953F-56C351D2C3E1}.Debug|ARM.ActiveCfg = Debug|ARM + {31ED69A8-5310-45A9-953F-56C351D2C3E1}.Debug|ARM.Build.0 = Debug|ARM {31ED69A8-5310-45A9-953F-56C351D2C3E1}.Debug|ARM64.ActiveCfg = Debug|ARM64 {31ED69A8-5310-45A9-953F-56C351D2C3E1}.Debug|ARM64.Build.0 = Debug|ARM64 {31ED69A8-5310-45A9-953F-56C351D2C3E1}.Debug|x64.ActiveCfg = Debug|x64 {31ED69A8-5310-45A9-953F-56C351D2C3E1}.Debug|x64.Build.0 = Debug|x64 {31ED69A8-5310-45A9-953F-56C351D2C3E1}.Debug|x86.ActiveCfg = Debug|Win32 {31ED69A8-5310-45A9-953F-56C351D2C3E1}.Debug|x86.Build.0 = Debug|Win32 + {31ED69A8-5310-45A9-953F-56C351D2C3E1}.Fuzzing|ARM.ActiveCfg = ReleaseStatic|ARM + {31ED69A8-5310-45A9-953F-56C351D2C3E1}.Fuzzing|ARM.Build.0 = ReleaseStatic|ARM {31ED69A8-5310-45A9-953F-56C351D2C3E1}.Fuzzing|ARM64.ActiveCfg = Release|ARM64 {31ED69A8-5310-45A9-953F-56C351D2C3E1}.Fuzzing|x64.ActiveCfg = Release|x64 {31ED69A8-5310-45A9-953F-56C351D2C3E1}.Fuzzing|x86.ActiveCfg = Release|Win32 - {31ED69A8-5310-45A9-953F-56C351D2C3E1}.ReleaseStatic|ARM64.ActiveCfg = ReleaseStatic|ARM64 - {31ED69A8-5310-45A9-953F-56C351D2C3E1}.ReleaseStatic|ARM64.Build.0 = ReleaseStatic|ARM64 - {31ED69A8-5310-45A9-953F-56C351D2C3E1}.ReleaseStatic|x64.ActiveCfg = ReleaseStatic|x64 - {31ED69A8-5310-45A9-953F-56C351D2C3E1}.ReleaseStatic|x64.Build.0 = ReleaseStatic|x64 - {31ED69A8-5310-45A9-953F-56C351D2C3E1}.ReleaseStatic|x86.ActiveCfg = ReleaseStatic|Win32 - {31ED69A8-5310-45A9-953F-56C351D2C3E1}.ReleaseStatic|x86.Build.0 = ReleaseStatic|Win32 + {31ED69A8-5310-45A9-953F-56C351D2C3E1}.Release|ARM.ActiveCfg = Release|ARM + {31ED69A8-5310-45A9-953F-56C351D2C3E1}.Release|ARM.Build.0 = Release|ARM {31ED69A8-5310-45A9-953F-56C351D2C3E1}.Release|ARM64.ActiveCfg = Release|ARM64 {31ED69A8-5310-45A9-953F-56C351D2C3E1}.Release|ARM64.Build.0 = Release|ARM64 {31ED69A8-5310-45A9-953F-56C351D2C3E1}.Release|x64.ActiveCfg = Release|x64 {31ED69A8-5310-45A9-953F-56C351D2C3E1}.Release|x64.Build.0 = Release|x64 {31ED69A8-5310-45A9-953F-56C351D2C3E1}.Release|x86.ActiveCfg = Release|Win32 {31ED69A8-5310-45A9-953F-56C351D2C3E1}.Release|x86.Build.0 = Release|Win32 + {31ED69A8-5310-45A9-953F-56C351D2C3E1}.ReleaseStatic|ARM.ActiveCfg = ReleaseStatic|ARM + {31ED69A8-5310-45A9-953F-56C351D2C3E1}.ReleaseStatic|ARM.Build.0 = ReleaseStatic|ARM + {31ED69A8-5310-45A9-953F-56C351D2C3E1}.ReleaseStatic|ARM64.ActiveCfg = ReleaseStatic|ARM64 + {31ED69A8-5310-45A9-953F-56C351D2C3E1}.ReleaseStatic|ARM64.Build.0 = ReleaseStatic|ARM64 + {31ED69A8-5310-45A9-953F-56C351D2C3E1}.ReleaseStatic|x64.ActiveCfg = ReleaseStatic|x64 + {31ED69A8-5310-45A9-953F-56C351D2C3E1}.ReleaseStatic|x64.Build.0 = ReleaseStatic|x64 + {31ED69A8-5310-45A9-953F-56C351D2C3E1}.ReleaseStatic|x86.ActiveCfg = ReleaseStatic|Win32 + {31ED69A8-5310-45A9-953F-56C351D2C3E1}.ReleaseStatic|x86.Build.0 = ReleaseStatic|Win32 + {31ED69A8-5310-45A9-953F-56C351D2C3E1}.TestRelease|ARM.ActiveCfg = Release|ARM + {31ED69A8-5310-45A9-953F-56C351D2C3E1}.TestRelease|ARM.Build.0 = Release|ARM {31ED69A8-5310-45A9-953F-56C351D2C3E1}.TestRelease|ARM64.ActiveCfg = Release|ARM64 {31ED69A8-5310-45A9-953F-56C351D2C3E1}.TestRelease|ARM64.Build.0 = Release|ARM64 {31ED69A8-5310-45A9-953F-56C351D2C3E1}.TestRelease|x64.ActiveCfg = Release|x64 {31ED69A8-5310-45A9-953F-56C351D2C3E1}.TestRelease|x64.Build.0 = Release|x64 {31ED69A8-5310-45A9-953F-56C351D2C3E1}.TestRelease|x86.ActiveCfg = Release|Win32 {31ED69A8-5310-45A9-953F-56C351D2C3E1}.TestRelease|x86.Build.0 = Release|Win32 + {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.Debug|ARM.ActiveCfg = Debug|ARM + {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.Debug|ARM.Build.0 = Debug|ARM {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.Debug|ARM64.ActiveCfg = Debug|ARM64 {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.Debug|ARM64.Build.0 = Debug|ARM64 {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.Debug|x64.ActiveCfg = Debug|x64 {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.Debug|x64.Build.0 = Debug|x64 {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.Debug|x86.ActiveCfg = Debug|Win32 {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.Debug|x86.Build.0 = Debug|Win32 + {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.Fuzzing|ARM.ActiveCfg = ReleaseStatic|ARM + {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.Fuzzing|ARM.Build.0 = ReleaseStatic|ARM {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.Fuzzing|ARM64.ActiveCfg = Release|ARM64 {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.Fuzzing|x64.ActiveCfg = Release|x64 {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.Fuzzing|x86.ActiveCfg = Release|Win32 - {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.ReleaseStatic|ARM64.ActiveCfg = ReleaseStatic|ARM64 - {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.ReleaseStatic|ARM64.Build.0 = ReleaseStatic|ARM64 - {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.ReleaseStatic|x64.ActiveCfg = ReleaseStatic|x64 - {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.ReleaseStatic|x64.Build.0 = ReleaseStatic|x64 - {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.ReleaseStatic|x86.ActiveCfg = ReleaseStatic|Win32 - {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.ReleaseStatic|x86.Build.0 = ReleaseStatic|Win32 + {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.Release|ARM.ActiveCfg = Release|ARM + {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.Release|ARM.Build.0 = Release|ARM {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.Release|ARM64.ActiveCfg = Release|ARM64 {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.Release|ARM64.Build.0 = Release|ARM64 {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.Release|x64.ActiveCfg = Release|x64 {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.Release|x64.Build.0 = Release|x64 {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.Release|x86.ActiveCfg = Release|Win32 {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.Release|x86.Build.0 = Release|Win32 + {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.ReleaseStatic|ARM.ActiveCfg = ReleaseStatic|ARM + {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.ReleaseStatic|ARM.Build.0 = ReleaseStatic|ARM + {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.ReleaseStatic|ARM64.ActiveCfg = ReleaseStatic|ARM64 + {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.ReleaseStatic|ARM64.Build.0 = ReleaseStatic|ARM64 + {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.ReleaseStatic|x64.ActiveCfg = ReleaseStatic|x64 + {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.ReleaseStatic|x64.Build.0 = ReleaseStatic|x64 + {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.ReleaseStatic|x86.ActiveCfg = ReleaseStatic|Win32 + {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.ReleaseStatic|x86.Build.0 = ReleaseStatic|Win32 + {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.TestRelease|ARM.ActiveCfg = Release|ARM + {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.TestRelease|ARM.Build.0 = Release|ARM {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.TestRelease|ARM64.ActiveCfg = Release|ARM64 {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.TestRelease|ARM64.Build.0 = Release|ARM64 {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.TestRelease|x64.ActiveCfg = Release|x64 {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.TestRelease|x64.Build.0 = Release|x64 {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.TestRelease|x86.ActiveCfg = Release|Win32 {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.TestRelease|x86.Build.0 = Release|Win32 + {BB14D603-F44E-4415-8770-BF3E13F4C17F}.Debug|ARM.ActiveCfg = Debug|ARM + {BB14D603-F44E-4415-8770-BF3E13F4C17F}.Debug|ARM.Build.0 = Debug|ARM {BB14D603-F44E-4415-8770-BF3E13F4C17F}.Debug|ARM64.ActiveCfg = Debug|ARM64 {BB14D603-F44E-4415-8770-BF3E13F4C17F}.Debug|ARM64.Build.0 = Debug|ARM64 {BB14D603-F44E-4415-8770-BF3E13F4C17F}.Debug|x64.ActiveCfg = Debug|x64 {BB14D603-F44E-4415-8770-BF3E13F4C17F}.Debug|x64.Build.0 = Debug|x64 {BB14D603-F44E-4415-8770-BF3E13F4C17F}.Debug|x86.ActiveCfg = Debug|Win32 {BB14D603-F44E-4415-8770-BF3E13F4C17F}.Debug|x86.Build.0 = Debug|Win32 + {BB14D603-F44E-4415-8770-BF3E13F4C17F}.Fuzzing|ARM.ActiveCfg = Debug|ARM + {BB14D603-F44E-4415-8770-BF3E13F4C17F}.Fuzzing|ARM.Build.0 = Debug|ARM {BB14D603-F44E-4415-8770-BF3E13F4C17F}.Fuzzing|ARM64.ActiveCfg = Release|ARM64 {BB14D603-F44E-4415-8770-BF3E13F4C17F}.Fuzzing|x64.ActiveCfg = Release|x64 {BB14D603-F44E-4415-8770-BF3E13F4C17F}.Fuzzing|x86.ActiveCfg = Release|Win32 - {BB14D603-F44E-4415-8770-BF3E13F4C17F}.ReleaseStatic|ARM64.ActiveCfg = ReleaseStatic|ARM64 - {BB14D603-F44E-4415-8770-BF3E13F4C17F}.ReleaseStatic|ARM64.Build.0 = ReleaseStatic|ARM64 - {BB14D603-F44E-4415-8770-BF3E13F4C17F}.ReleaseStatic|x64.ActiveCfg = ReleaseStatic|x64 - {BB14D603-F44E-4415-8770-BF3E13F4C17F}.ReleaseStatic|x64.Build.0 = ReleaseStatic|x64 - {BB14D603-F44E-4415-8770-BF3E13F4C17F}.ReleaseStatic|x86.ActiveCfg = ReleaseStatic|Win32 - {BB14D603-F44E-4415-8770-BF3E13F4C17F}.ReleaseStatic|x86.Build.0 = ReleaseStatic|Win32 + {BB14D603-F44E-4415-8770-BF3E13F4C17F}.Release|ARM.ActiveCfg = Release|ARM + {BB14D603-F44E-4415-8770-BF3E13F4C17F}.Release|ARM.Build.0 = Release|ARM {BB14D603-F44E-4415-8770-BF3E13F4C17F}.Release|ARM64.ActiveCfg = Release|ARM64 {BB14D603-F44E-4415-8770-BF3E13F4C17F}.Release|ARM64.Build.0 = Release|ARM64 {BB14D603-F44E-4415-8770-BF3E13F4C17F}.Release|x64.ActiveCfg = Release|x64 {BB14D603-F44E-4415-8770-BF3E13F4C17F}.Release|x64.Build.0 = Release|x64 {BB14D603-F44E-4415-8770-BF3E13F4C17F}.Release|x86.ActiveCfg = Release|Win32 {BB14D603-F44E-4415-8770-BF3E13F4C17F}.Release|x86.Build.0 = Release|Win32 + {BB14D603-F44E-4415-8770-BF3E13F4C17F}.ReleaseStatic|ARM.ActiveCfg = ReleaseStatic|ARM + {BB14D603-F44E-4415-8770-BF3E13F4C17F}.ReleaseStatic|ARM.Build.0 = ReleaseStatic|ARM + {BB14D603-F44E-4415-8770-BF3E13F4C17F}.ReleaseStatic|ARM64.ActiveCfg = ReleaseStatic|ARM64 + {BB14D603-F44E-4415-8770-BF3E13F4C17F}.ReleaseStatic|ARM64.Build.0 = ReleaseStatic|ARM64 + {BB14D603-F44E-4415-8770-BF3E13F4C17F}.ReleaseStatic|x64.ActiveCfg = ReleaseStatic|x64 + {BB14D603-F44E-4415-8770-BF3E13F4C17F}.ReleaseStatic|x64.Build.0 = ReleaseStatic|x64 + {BB14D603-F44E-4415-8770-BF3E13F4C17F}.ReleaseStatic|x86.ActiveCfg = ReleaseStatic|Win32 + {BB14D603-F44E-4415-8770-BF3E13F4C17F}.ReleaseStatic|x86.Build.0 = ReleaseStatic|Win32 + {BB14D603-F44E-4415-8770-BF3E13F4C17F}.TestRelease|ARM.ActiveCfg = Release|ARM + {BB14D603-F44E-4415-8770-BF3E13F4C17F}.TestRelease|ARM.Build.0 = Release|ARM {BB14D603-F44E-4415-8770-BF3E13F4C17F}.TestRelease|ARM64.ActiveCfg = Release|ARM64 {BB14D603-F44E-4415-8770-BF3E13F4C17F}.TestRelease|ARM64.Build.0 = Release|ARM64 {BB14D603-F44E-4415-8770-BF3E13F4C17F}.TestRelease|x64.ActiveCfg = Release|x64 {BB14D603-F44E-4415-8770-BF3E13F4C17F}.TestRelease|x64.Build.0 = Release|x64 {BB14D603-F44E-4415-8770-BF3E13F4C17F}.TestRelease|x86.ActiveCfg = Release|Win32 {BB14D603-F44E-4415-8770-BF3E13F4C17F}.TestRelease|x86.Build.0 = Release|Win32 + {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.Debug|ARM.ActiveCfg = Debug|ARM + {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.Debug|ARM.Build.0 = Debug|ARM {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.Debug|ARM64.ActiveCfg = Debug|ARM64 {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.Debug|ARM64.Build.0 = Debug|ARM64 {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.Debug|x64.ActiveCfg = Debug|x64 {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.Debug|x64.Build.0 = Debug|x64 {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.Debug|x86.ActiveCfg = Debug|Win32 {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.Debug|x86.Build.0 = Debug|Win32 + {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.Fuzzing|ARM.ActiveCfg = Fuzzing|x64 + {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.Fuzzing|ARM.Build.0 = Fuzzing|x64 {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.Fuzzing|ARM64.ActiveCfg = Fuzzing|x64 {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.Fuzzing|x64.ActiveCfg = Fuzzing|x64 {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.Fuzzing|x64.Build.0 = Fuzzing|x64 {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.Fuzzing|x86.ActiveCfg = Fuzzing|Win32 {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.Fuzzing|x86.Build.0 = Fuzzing|Win32 - {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.ReleaseStatic|ARM64.ActiveCfg = ReleaseStatic|ARM64 - {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.ReleaseStatic|ARM64.Build.0 = ReleaseStatic|ARM64 - {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.ReleaseStatic|x64.ActiveCfg = ReleaseStatic|x64 - {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.ReleaseStatic|x64.Build.0 = ReleaseStatic|x64 - {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.ReleaseStatic|x86.ActiveCfg = ReleaseStatic|Win32 - {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.ReleaseStatic|x86.Build.0 = ReleaseStatic|Win32 + {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.Release|ARM.ActiveCfg = Release|ARM + {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.Release|ARM.Build.0 = Release|ARM {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.Release|ARM64.ActiveCfg = Release|ARM64 {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.Release|ARM64.Build.0 = Release|ARM64 {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.Release|x64.ActiveCfg = Release|x64 {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.Release|x64.Build.0 = Release|x64 {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.Release|x86.ActiveCfg = Release|Win32 {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.Release|x86.Build.0 = Release|Win32 + {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.ReleaseStatic|ARM.ActiveCfg = ReleaseStatic|ARM + {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.ReleaseStatic|ARM.Build.0 = ReleaseStatic|ARM + {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.ReleaseStatic|ARM64.ActiveCfg = ReleaseStatic|ARM64 + {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.ReleaseStatic|ARM64.Build.0 = ReleaseStatic|ARM64 + {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.ReleaseStatic|x64.ActiveCfg = ReleaseStatic|x64 + {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.ReleaseStatic|x64.Build.0 = ReleaseStatic|x64 + {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.ReleaseStatic|x86.ActiveCfg = ReleaseStatic|Win32 + {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.ReleaseStatic|x86.Build.0 = ReleaseStatic|Win32 + {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.TestRelease|ARM.ActiveCfg = Release|ARM + {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.TestRelease|ARM.Build.0 = Release|ARM {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.TestRelease|ARM64.ActiveCfg = Release|ARM64 {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.TestRelease|ARM64.Build.0 = Release|ARM64 {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.TestRelease|x64.ActiveCfg = Release|x64 {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.TestRelease|x64.Build.0 = Release|x64 {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.TestRelease|x86.ActiveCfg = Release|Win32 {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.TestRelease|x86.Build.0 = Release|Win32 + {CA460806-5E41-4E97-9A3D-1D74B433B663}.Debug|ARM.ActiveCfg = Debug|ARM + {CA460806-5E41-4E97-9A3D-1D74B433B663}.Debug|ARM.Build.0 = Debug|ARM {CA460806-5E41-4E97-9A3D-1D74B433B663}.Debug|ARM64.ActiveCfg = Debug|ARM64 {CA460806-5E41-4E97-9A3D-1D74B433B663}.Debug|ARM64.Build.0 = Debug|ARM64 {CA460806-5E41-4E97-9A3D-1D74B433B663}.Debug|x64.ActiveCfg = Debug|x64 {CA460806-5E41-4E97-9A3D-1D74B433B663}.Debug|x64.Build.0 = Debug|x64 {CA460806-5E41-4E97-9A3D-1D74B433B663}.Debug|x86.ActiveCfg = Debug|Win32 {CA460806-5E41-4E97-9A3D-1D74B433B663}.Debug|x86.Build.0 = Debug|Win32 + {CA460806-5E41-4E97-9A3D-1D74B433B663}.Fuzzing|ARM.ActiveCfg = Debug|ARM + {CA460806-5E41-4E97-9A3D-1D74B433B663}.Fuzzing|ARM.Build.0 = Debug|ARM {CA460806-5E41-4E97-9A3D-1D74B433B663}.Fuzzing|ARM64.ActiveCfg = Release|ARM64 {CA460806-5E41-4E97-9A3D-1D74B433B663}.Fuzzing|x64.ActiveCfg = Release|x64 {CA460806-5E41-4E97-9A3D-1D74B433B663}.Fuzzing|x86.ActiveCfg = Release|Win32 - {CA460806-5E41-4E97-9A3D-1D74B433B663}.ReleaseStatic|ARM64.ActiveCfg = ReleaseStatic|ARM64 - {CA460806-5E41-4E97-9A3D-1D74B433B663}.ReleaseStatic|ARM64.Build.0 = ReleaseStatic|ARM64 - {CA460806-5E41-4E97-9A3D-1D74B433B663}.ReleaseStatic|x64.ActiveCfg = ReleaseStatic|x64 - {CA460806-5E41-4E97-9A3D-1D74B433B663}.ReleaseStatic|x64.Build.0 = ReleaseStatic|x64 - {CA460806-5E41-4E97-9A3D-1D74B433B663}.ReleaseStatic|x86.ActiveCfg = ReleaseStatic|Win32 - {CA460806-5E41-4E97-9A3D-1D74B433B663}.ReleaseStatic|x86.Build.0 = ReleaseStatic|Win32 + {CA460806-5E41-4E97-9A3D-1D74B433B663}.Release|ARM.ActiveCfg = Release|ARM + {CA460806-5E41-4E97-9A3D-1D74B433B663}.Release|ARM.Build.0 = Release|ARM {CA460806-5E41-4E97-9A3D-1D74B433B663}.Release|ARM64.ActiveCfg = Release|ARM64 {CA460806-5E41-4E97-9A3D-1D74B433B663}.Release|ARM64.Build.0 = Release|ARM64 {CA460806-5E41-4E97-9A3D-1D74B433B663}.Release|x64.ActiveCfg = Release|x64 {CA460806-5E41-4E97-9A3D-1D74B433B663}.Release|x64.Build.0 = Release|x64 {CA460806-5E41-4E97-9A3D-1D74B433B663}.Release|x86.ActiveCfg = Release|Win32 {CA460806-5E41-4E97-9A3D-1D74B433B663}.Release|x86.Build.0 = Release|Win32 + {CA460806-5E41-4E97-9A3D-1D74B433B663}.ReleaseStatic|ARM.ActiveCfg = ReleaseStatic|ARM + {CA460806-5E41-4E97-9A3D-1D74B433B663}.ReleaseStatic|ARM.Build.0 = ReleaseStatic|ARM + {CA460806-5E41-4E97-9A3D-1D74B433B663}.ReleaseStatic|ARM64.ActiveCfg = ReleaseStatic|ARM64 + {CA460806-5E41-4E97-9A3D-1D74B433B663}.ReleaseStatic|ARM64.Build.0 = ReleaseStatic|ARM64 + {CA460806-5E41-4E97-9A3D-1D74B433B663}.ReleaseStatic|x64.ActiveCfg = ReleaseStatic|x64 + {CA460806-5E41-4E97-9A3D-1D74B433B663}.ReleaseStatic|x64.Build.0 = ReleaseStatic|x64 + {CA460806-5E41-4E97-9A3D-1D74B433B663}.ReleaseStatic|x86.ActiveCfg = ReleaseStatic|Win32 + {CA460806-5E41-4E97-9A3D-1D74B433B663}.ReleaseStatic|x86.Build.0 = ReleaseStatic|Win32 + {CA460806-5E41-4E97-9A3D-1D74B433B663}.TestRelease|ARM.ActiveCfg = Release|ARM + {CA460806-5E41-4E97-9A3D-1D74B433B663}.TestRelease|ARM.Build.0 = Release|ARM {CA460806-5E41-4E97-9A3D-1D74B433B663}.TestRelease|ARM64.ActiveCfg = Release|ARM64 {CA460806-5E41-4E97-9A3D-1D74B433B663}.TestRelease|ARM64.Build.0 = Release|ARM64 {CA460806-5E41-4E97-9A3D-1D74B433B663}.TestRelease|x64.ActiveCfg = Release|x64 {CA460806-5E41-4E97-9A3D-1D74B433B663}.TestRelease|x64.Build.0 = Release|x64 {CA460806-5E41-4E97-9A3D-1D74B433B663}.TestRelease|x86.ActiveCfg = Release|Win32 {CA460806-5E41-4E97-9A3D-1D74B433B663}.TestRelease|x86.Build.0 = Release|Win32 + {E8454BF1-2068-4513-A525-ABF55CC8742C}.Debug|ARM.ActiveCfg = Debug|Any CPU + {E8454BF1-2068-4513-A525-ABF55CC8742C}.Debug|ARM.Build.0 = Debug|Any CPU {E8454BF1-2068-4513-A525-ABF55CC8742C}.Debug|ARM64.ActiveCfg = Debug|Any CPU {E8454BF1-2068-4513-A525-ABF55CC8742C}.Debug|ARM64.Build.0 = Debug|Any CPU {E8454BF1-2068-4513-A525-ABF55CC8742C}.Debug|x64.ActiveCfg = Debug|Any CPU {E8454BF1-2068-4513-A525-ABF55CC8742C}.Debug|x64.Build.0 = Debug|Any CPU {E8454BF1-2068-4513-A525-ABF55CC8742C}.Debug|x86.ActiveCfg = Debug|Any CPU {E8454BF1-2068-4513-A525-ABF55CC8742C}.Debug|x86.Build.0 = Debug|Any CPU + {E8454BF1-2068-4513-A525-ABF55CC8742C}.Fuzzing|ARM.ActiveCfg = ReleaseStatic|Any CPU + {E8454BF1-2068-4513-A525-ABF55CC8742C}.Fuzzing|ARM.Build.0 = ReleaseStatic|Any CPU {E8454BF1-2068-4513-A525-ABF55CC8742C}.Fuzzing|ARM64.ActiveCfg = Release|Any CPU {E8454BF1-2068-4513-A525-ABF55CC8742C}.Fuzzing|x64.ActiveCfg = Release|Any CPU {E8454BF1-2068-4513-A525-ABF55CC8742C}.Fuzzing|x86.ActiveCfg = Release|Any CPU - {E8454BF1-2068-4513-A525-ABF55CC8742C}.ReleaseStatic|ARM64.ActiveCfg = ReleaseStatic|Any CPU - {E8454BF1-2068-4513-A525-ABF55CC8742C}.ReleaseStatic|ARM64.Build.0 = ReleaseStatic|Any CPU - {E8454BF1-2068-4513-A525-ABF55CC8742C}.ReleaseStatic|x64.ActiveCfg = ReleaseStatic|Any CPU - {E8454BF1-2068-4513-A525-ABF55CC8742C}.ReleaseStatic|x64.Build.0 = ReleaseStatic|Any CPU - {E8454BF1-2068-4513-A525-ABF55CC8742C}.ReleaseStatic|x86.ActiveCfg = ReleaseStatic|Any CPU - {E8454BF1-2068-4513-A525-ABF55CC8742C}.ReleaseStatic|x86.Build.0 = ReleaseStatic|Any CPU + {E8454BF1-2068-4513-A525-ABF55CC8742C}.Release|ARM.ActiveCfg = Release|Any CPU + {E8454BF1-2068-4513-A525-ABF55CC8742C}.Release|ARM.Build.0 = Release|Any CPU {E8454BF1-2068-4513-A525-ABF55CC8742C}.Release|ARM64.ActiveCfg = Release|Any CPU {E8454BF1-2068-4513-A525-ABF55CC8742C}.Release|ARM64.Build.0 = Release|Any CPU {E8454BF1-2068-4513-A525-ABF55CC8742C}.Release|x64.ActiveCfg = Release|Any CPU {E8454BF1-2068-4513-A525-ABF55CC8742C}.Release|x64.Build.0 = Release|Any CPU {E8454BF1-2068-4513-A525-ABF55CC8742C}.Release|x86.ActiveCfg = Release|Any CPU {E8454BF1-2068-4513-A525-ABF55CC8742C}.Release|x86.Build.0 = Release|Any CPU + {E8454BF1-2068-4513-A525-ABF55CC8742C}.ReleaseStatic|ARM.ActiveCfg = ReleaseStatic|Any CPU + {E8454BF1-2068-4513-A525-ABF55CC8742C}.ReleaseStatic|ARM.Build.0 = ReleaseStatic|Any CPU + {E8454BF1-2068-4513-A525-ABF55CC8742C}.ReleaseStatic|ARM64.ActiveCfg = ReleaseStatic|Any CPU + {E8454BF1-2068-4513-A525-ABF55CC8742C}.ReleaseStatic|ARM64.Build.0 = ReleaseStatic|Any CPU + {E8454BF1-2068-4513-A525-ABF55CC8742C}.ReleaseStatic|x64.ActiveCfg = ReleaseStatic|Any CPU + {E8454BF1-2068-4513-A525-ABF55CC8742C}.ReleaseStatic|x64.Build.0 = ReleaseStatic|Any CPU + {E8454BF1-2068-4513-A525-ABF55CC8742C}.ReleaseStatic|x86.ActiveCfg = ReleaseStatic|Any CPU + {E8454BF1-2068-4513-A525-ABF55CC8742C}.ReleaseStatic|x86.Build.0 = ReleaseStatic|Any CPU + {E8454BF1-2068-4513-A525-ABF55CC8742C}.TestRelease|ARM.ActiveCfg = Release|Any CPU + {E8454BF1-2068-4513-A525-ABF55CC8742C}.TestRelease|ARM.Build.0 = Release|Any CPU {E8454BF1-2068-4513-A525-ABF55CC8742C}.TestRelease|ARM64.ActiveCfg = Release|Any CPU {E8454BF1-2068-4513-A525-ABF55CC8742C}.TestRelease|ARM64.Build.0 = Release|Any CPU {E8454BF1-2068-4513-A525-ABF55CC8742C}.TestRelease|x64.ActiveCfg = Release|Any CPU {E8454BF1-2068-4513-A525-ABF55CC8742C}.TestRelease|x64.Build.0 = Release|Any CPU {E8454BF1-2068-4513-A525-ABF55CC8742C}.TestRelease|x86.ActiveCfg = Release|Any CPU {E8454BF1-2068-4513-A525-ABF55CC8742C}.TestRelease|x86.Build.0 = Release|Any CPU + {EE43C990-7789-4A60-B077-BF0ED3D093A1}.Debug|ARM.ActiveCfg = Debug|x64 + {EE43C990-7789-4A60-B077-BF0ED3D093A1}.Debug|ARM.Build.0 = Debug|x64 {EE43C990-7789-4A60-B077-BF0ED3D093A1}.Debug|ARM64.ActiveCfg = Debug|arm64 {EE43C990-7789-4A60-B077-BF0ED3D093A1}.Debug|ARM64.Build.0 = Debug|arm64 {EE43C990-7789-4A60-B077-BF0ED3D093A1}.Debug|x64.ActiveCfg = Debug|x64 {EE43C990-7789-4A60-B077-BF0ED3D093A1}.Debug|x64.Build.0 = Debug|x64 {EE43C990-7789-4A60-B077-BF0ED3D093A1}.Debug|x86.ActiveCfg = Debug|x86 {EE43C990-7789-4A60-B077-BF0ED3D093A1}.Debug|x86.Build.0 = Debug|x86 + {EE43C990-7789-4A60-B077-BF0ED3D093A1}.Fuzzing|ARM.ActiveCfg = Release|x64 + {EE43C990-7789-4A60-B077-BF0ED3D093A1}.Fuzzing|ARM.Build.0 = Release|x64 {EE43C990-7789-4A60-B077-BF0ED3D093A1}.Fuzzing|ARM64.ActiveCfg = Release|arm64 {EE43C990-7789-4A60-B077-BF0ED3D093A1}.Fuzzing|x64.ActiveCfg = Release|x64 {EE43C990-7789-4A60-B077-BF0ED3D093A1}.Fuzzing|x86.ActiveCfg = Release|x86 - {EE43C990-7789-4A60-B077-BF0ED3D093A1}.ReleaseStatic|ARM64.ActiveCfg = Release|arm64 - {EE43C990-7789-4A60-B077-BF0ED3D093A1}.ReleaseStatic|x64.ActiveCfg = Release|x64 - {EE43C990-7789-4A60-B077-BF0ED3D093A1}.ReleaseStatic|x86.ActiveCfg = Release|x86 + {EE43C990-7789-4A60-B077-BF0ED3D093A1}.Release|ARM.ActiveCfg = Release|x64 + {EE43C990-7789-4A60-B077-BF0ED3D093A1}.Release|ARM.Build.0 = Release|x64 {EE43C990-7789-4A60-B077-BF0ED3D093A1}.Release|ARM64.ActiveCfg = Release|arm64 {EE43C990-7789-4A60-B077-BF0ED3D093A1}.Release|ARM64.Build.0 = Release|arm64 {EE43C990-7789-4A60-B077-BF0ED3D093A1}.Release|x64.ActiveCfg = Release|x64 {EE43C990-7789-4A60-B077-BF0ED3D093A1}.Release|x64.Build.0 = Release|x64 {EE43C990-7789-4A60-B077-BF0ED3D093A1}.Release|x86.ActiveCfg = Release|x86 {EE43C990-7789-4A60-B077-BF0ED3D093A1}.Release|x86.Build.0 = Release|x86 + {EE43C990-7789-4A60-B077-BF0ED3D093A1}.ReleaseStatic|ARM.ActiveCfg = Release|x64 + {EE43C990-7789-4A60-B077-BF0ED3D093A1}.ReleaseStatic|ARM.Build.0 = Release|x64 + {EE43C990-7789-4A60-B077-BF0ED3D093A1}.ReleaseStatic|ARM64.ActiveCfg = Release|arm64 + {EE43C990-7789-4A60-B077-BF0ED3D093A1}.ReleaseStatic|x64.ActiveCfg = Release|x64 + {EE43C990-7789-4A60-B077-BF0ED3D093A1}.ReleaseStatic|x86.ActiveCfg = Release|x86 + {EE43C990-7789-4A60-B077-BF0ED3D093A1}.TestRelease|ARM.ActiveCfg = Release|x64 + {EE43C990-7789-4A60-B077-BF0ED3D093A1}.TestRelease|ARM.Build.0 = Release|x64 {EE43C990-7789-4A60-B077-BF0ED3D093A1}.TestRelease|ARM64.ActiveCfg = Release|arm64 {EE43C990-7789-4A60-B077-BF0ED3D093A1}.TestRelease|x64.ActiveCfg = Release|x64 {EE43C990-7789-4A60-B077-BF0ED3D093A1}.TestRelease|x86.ActiveCfg = Release|x86 + {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.Debug|ARM.ActiveCfg = Debug|Any CPU + {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.Debug|ARM.Build.0 = Debug|Any CPU {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.Debug|ARM64.ActiveCfg = Debug|Any CPU {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.Debug|ARM64.Build.0 = Debug|Any CPU {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.Debug|x64.ActiveCfg = Debug|Any CPU {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.Debug|x64.Build.0 = Debug|Any CPU {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.Debug|x86.ActiveCfg = Debug|Any CPU {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.Debug|x86.Build.0 = Debug|Any CPU + {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.Fuzzing|ARM.ActiveCfg = ReleaseStatic|Any CPU + {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.Fuzzing|ARM.Build.0 = ReleaseStatic|Any CPU {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.Fuzzing|ARM64.ActiveCfg = Release|Any CPU {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.Fuzzing|x64.ActiveCfg = Release|Any CPU {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.Fuzzing|x86.ActiveCfg = Release|Any CPU - {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.ReleaseStatic|ARM64.ActiveCfg = ReleaseStatic|Any CPU - {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.ReleaseStatic|ARM64.Build.0 = ReleaseStatic|Any CPU - {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.ReleaseStatic|x64.ActiveCfg = ReleaseStatic|Any CPU - {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.ReleaseStatic|x64.Build.0 = ReleaseStatic|Any CPU - {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.ReleaseStatic|x86.ActiveCfg = ReleaseStatic|Any CPU - {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.ReleaseStatic|x86.Build.0 = ReleaseStatic|Any CPU + {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.Release|ARM.ActiveCfg = Release|Any CPU + {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.Release|ARM.Build.0 = Release|Any CPU {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.Release|ARM64.ActiveCfg = Release|Any CPU {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.Release|ARM64.Build.0 = Release|Any CPU {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.Release|x64.ActiveCfg = Release|Any CPU {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.Release|x64.Build.0 = Release|Any CPU {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.Release|x86.ActiveCfg = Release|Any CPU {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.Release|x86.Build.0 = Release|Any CPU + {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.ReleaseStatic|ARM.ActiveCfg = ReleaseStatic|Any CPU + {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.ReleaseStatic|ARM.Build.0 = ReleaseStatic|Any CPU + {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.ReleaseStatic|ARM64.ActiveCfg = ReleaseStatic|Any CPU + {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.ReleaseStatic|ARM64.Build.0 = ReleaseStatic|Any CPU + {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.ReleaseStatic|x64.ActiveCfg = ReleaseStatic|Any CPU + {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.ReleaseStatic|x64.Build.0 = ReleaseStatic|Any CPU + {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.ReleaseStatic|x86.ActiveCfg = ReleaseStatic|Any CPU + {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.ReleaseStatic|x86.Build.0 = ReleaseStatic|Any CPU + {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.TestRelease|ARM.ActiveCfg = Release|Any CPU + {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.TestRelease|ARM.Build.0 = Release|Any CPU {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.TestRelease|ARM64.ActiveCfg = Release|Any CPU {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.TestRelease|ARM64.Build.0 = Release|Any CPU {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.TestRelease|x64.ActiveCfg = Release|Any CPU {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.TestRelease|x64.Build.0 = Release|Any CPU {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.TestRelease|x86.ActiveCfg = Release|Any CPU {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.TestRelease|x86.Build.0 = Release|Any CPU + {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.Debug|ARM.ActiveCfg = Debug|arm + {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.Debug|ARM.Build.0 = Debug|arm {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.Debug|ARM64.ActiveCfg = Debug|arm64 {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.Debug|ARM64.Build.0 = Debug|arm64 {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.Debug|x64.ActiveCfg = Debug|x64 {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.Debug|x64.Build.0 = Debug|x64 {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.Debug|x86.ActiveCfg = Debug|x86 {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.Debug|x86.Build.0 = Debug|x86 + {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.Fuzzing|ARM.ActiveCfg = Debug|arm + {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.Fuzzing|ARM.Build.0 = Debug|arm {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.Fuzzing|ARM64.ActiveCfg = Release|arm64 {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.Fuzzing|x64.ActiveCfg = Release|x64 {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.Fuzzing|x86.ActiveCfg = Release|x86 - {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.ReleaseStatic|ARM64.ActiveCfg = Release|arm64 - {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.ReleaseStatic|x64.ActiveCfg = Release|x64 - {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.ReleaseStatic|x86.ActiveCfg = Release|x86 + {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.Release|ARM.ActiveCfg = Release|arm + {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.Release|ARM.Build.0 = Release|arm {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.Release|ARM64.ActiveCfg = Release|arm64 {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.Release|ARM64.Build.0 = Release|arm64 {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.Release|x64.ActiveCfg = Release|x64 {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.Release|x64.Build.0 = Release|x64 {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.Release|x86.ActiveCfg = Release|x86 {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.Release|x86.Build.0 = Release|x86 + {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.ReleaseStatic|ARM.ActiveCfg = Release|arm + {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.ReleaseStatic|ARM.Build.0 = Release|arm + {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.ReleaseStatic|ARM64.ActiveCfg = Release|arm64 + {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.ReleaseStatic|x64.ActiveCfg = Release|x64 + {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.ReleaseStatic|x86.ActiveCfg = Release|x86 + {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.TestRelease|ARM.ActiveCfg = Release|arm + {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.TestRelease|ARM.Build.0 = Release|arm {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.TestRelease|ARM64.ActiveCfg = Release|arm64 {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.TestRelease|ARM64.Build.0 = Release|arm64 {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.TestRelease|x64.ActiveCfg = Release|x64 {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.TestRelease|x64.Build.0 = Release|x64 {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.TestRelease|x86.ActiveCfg = Release|x86 {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.TestRelease|x86.Build.0 = Release|x86 + {1F56BECB-D65D-4BBA-8788-6671B251392A}.Debug|ARM.ActiveCfg = Debug|Any CPU + {1F56BECB-D65D-4BBA-8788-6671B251392A}.Debug|ARM.Build.0 = Debug|Any CPU {1F56BECB-D65D-4BBA-8788-6671B251392A}.Debug|ARM64.ActiveCfg = Debug|Any CPU {1F56BECB-D65D-4BBA-8788-6671B251392A}.Debug|ARM64.Build.0 = Debug|Any CPU {1F56BECB-D65D-4BBA-8788-6671B251392A}.Debug|x64.ActiveCfg = Debug|Any CPU {1F56BECB-D65D-4BBA-8788-6671B251392A}.Debug|x64.Build.0 = Debug|Any CPU {1F56BECB-D65D-4BBA-8788-6671B251392A}.Debug|x86.ActiveCfg = Debug|Any CPU {1F56BECB-D65D-4BBA-8788-6671B251392A}.Debug|x86.Build.0 = Debug|Any CPU + {1F56BECB-D65D-4BBA-8788-6671B251392A}.Fuzzing|ARM.ActiveCfg = ReleaseStatic|Any CPU + {1F56BECB-D65D-4BBA-8788-6671B251392A}.Fuzzing|ARM.Build.0 = ReleaseStatic|Any CPU {1F56BECB-D65D-4BBA-8788-6671B251392A}.Fuzzing|ARM64.ActiveCfg = Release|Any CPU {1F56BECB-D65D-4BBA-8788-6671B251392A}.Fuzzing|x64.ActiveCfg = Release|Any CPU {1F56BECB-D65D-4BBA-8788-6671B251392A}.Fuzzing|x86.ActiveCfg = Release|Any CPU - {1F56BECB-D65D-4BBA-8788-6671B251392A}.ReleaseStatic|ARM64.ActiveCfg = Release|Any CPU - {1F56BECB-D65D-4BBA-8788-6671B251392A}.ReleaseStatic|x64.ActiveCfg = ReleaseStatic|Any CPU - {1F56BECB-D65D-4BBA-8788-6671B251392A}.ReleaseStatic|x64.Build.0 = ReleaseStatic|Any CPU - {1F56BECB-D65D-4BBA-8788-6671B251392A}.ReleaseStatic|x86.ActiveCfg = ReleaseStatic|Any CPU - {1F56BECB-D65D-4BBA-8788-6671B251392A}.ReleaseStatic|x86.Build.0 = ReleaseStatic|Any CPU + {1F56BECB-D65D-4BBA-8788-6671B251392A}.Release|ARM.ActiveCfg = Release|Any CPU + {1F56BECB-D65D-4BBA-8788-6671B251392A}.Release|ARM.Build.0 = Release|Any CPU {1F56BECB-D65D-4BBA-8788-6671B251392A}.Release|ARM64.ActiveCfg = Release|Any CPU {1F56BECB-D65D-4BBA-8788-6671B251392A}.Release|ARM64.Build.0 = Release|Any CPU {1F56BECB-D65D-4BBA-8788-6671B251392A}.Release|x64.ActiveCfg = Release|Any CPU {1F56BECB-D65D-4BBA-8788-6671B251392A}.Release|x64.Build.0 = Release|Any CPU {1F56BECB-D65D-4BBA-8788-6671B251392A}.Release|x86.ActiveCfg = Release|Any CPU {1F56BECB-D65D-4BBA-8788-6671B251392A}.Release|x86.Build.0 = Release|Any CPU + {1F56BECB-D65D-4BBA-8788-6671B251392A}.ReleaseStatic|ARM.ActiveCfg = ReleaseStatic|Any CPU + {1F56BECB-D65D-4BBA-8788-6671B251392A}.ReleaseStatic|ARM.Build.0 = ReleaseStatic|Any CPU + {1F56BECB-D65D-4BBA-8788-6671B251392A}.ReleaseStatic|ARM64.ActiveCfg = Release|Any CPU + {1F56BECB-D65D-4BBA-8788-6671B251392A}.ReleaseStatic|x64.ActiveCfg = ReleaseStatic|Any CPU + {1F56BECB-D65D-4BBA-8788-6671B251392A}.ReleaseStatic|x64.Build.0 = ReleaseStatic|Any CPU + {1F56BECB-D65D-4BBA-8788-6671B251392A}.ReleaseStatic|x86.ActiveCfg = ReleaseStatic|Any CPU + {1F56BECB-D65D-4BBA-8788-6671B251392A}.ReleaseStatic|x86.Build.0 = ReleaseStatic|Any CPU + {1F56BECB-D65D-4BBA-8788-6671B251392A}.TestRelease|ARM.ActiveCfg = Release|Any CPU + {1F56BECB-D65D-4BBA-8788-6671B251392A}.TestRelease|ARM.Build.0 = Release|Any CPU {1F56BECB-D65D-4BBA-8788-6671B251392A}.TestRelease|ARM64.ActiveCfg = Release|Any CPU {1F56BECB-D65D-4BBA-8788-6671B251392A}.TestRelease|x64.ActiveCfg = Release|Any CPU {1F56BECB-D65D-4BBA-8788-6671B251392A}.TestRelease|x86.ActiveCfg = Release|Any CPU + {167F634B-A3AD-494E-8E67-B888103E35FF}.Debug|ARM.ActiveCfg = Debug|Any CPU + {167F634B-A3AD-494E-8E67-B888103E35FF}.Debug|ARM.Build.0 = Debug|Any CPU {167F634B-A3AD-494E-8E67-B888103E35FF}.Debug|ARM64.ActiveCfg = Debug|Any CPU {167F634B-A3AD-494E-8E67-B888103E35FF}.Debug|ARM64.Build.0 = Debug|Any CPU {167F634B-A3AD-494E-8E67-B888103E35FF}.Debug|x64.ActiveCfg = Debug|Any CPU {167F634B-A3AD-494E-8E67-B888103E35FF}.Debug|x64.Build.0 = Debug|Any CPU {167F634B-A3AD-494E-8E67-B888103E35FF}.Debug|x86.ActiveCfg = Debug|Any CPU {167F634B-A3AD-494E-8E67-B888103E35FF}.Debug|x86.Build.0 = Debug|Any CPU + {167F634B-A3AD-494E-8E67-B888103E35FF}.Fuzzing|ARM.ActiveCfg = ReleaseStatic|Any CPU + {167F634B-A3AD-494E-8E67-B888103E35FF}.Fuzzing|ARM.Build.0 = ReleaseStatic|Any CPU {167F634B-A3AD-494E-8E67-B888103E35FF}.Fuzzing|ARM64.ActiveCfg = Release|Any CPU {167F634B-A3AD-494E-8E67-B888103E35FF}.Fuzzing|x64.ActiveCfg = Release|Any CPU {167F634B-A3AD-494E-8E67-B888103E35FF}.Fuzzing|x86.ActiveCfg = Release|Any CPU - {167F634B-A3AD-494E-8E67-B888103E35FF}.ReleaseStatic|ARM64.ActiveCfg = Release|Any CPU - {167F634B-A3AD-494E-8E67-B888103E35FF}.ReleaseStatic|x64.ActiveCfg = ReleaseStatic|Any CPU - {167F634B-A3AD-494E-8E67-B888103E35FF}.ReleaseStatic|x64.Build.0 = ReleaseStatic|Any CPU - {167F634B-A3AD-494E-8E67-B888103E35FF}.ReleaseStatic|x86.ActiveCfg = ReleaseStatic|Any CPU - {167F634B-A3AD-494E-8E67-B888103E35FF}.ReleaseStatic|x86.Build.0 = ReleaseStatic|Any CPU + {167F634B-A3AD-494E-8E67-B888103E35FF}.Release|ARM.ActiveCfg = Release|Any CPU + {167F634B-A3AD-494E-8E67-B888103E35FF}.Release|ARM.Build.0 = Release|Any CPU {167F634B-A3AD-494E-8E67-B888103E35FF}.Release|ARM64.ActiveCfg = Release|Any CPU {167F634B-A3AD-494E-8E67-B888103E35FF}.Release|ARM64.Build.0 = Release|Any CPU {167F634B-A3AD-494E-8E67-B888103E35FF}.Release|x64.ActiveCfg = Release|Any CPU {167F634B-A3AD-494E-8E67-B888103E35FF}.Release|x64.Build.0 = Release|Any CPU {167F634B-A3AD-494E-8E67-B888103E35FF}.Release|x86.ActiveCfg = Release|Any CPU {167F634B-A3AD-494E-8E67-B888103E35FF}.Release|x86.Build.0 = Release|Any CPU + {167F634B-A3AD-494E-8E67-B888103E35FF}.ReleaseStatic|ARM.ActiveCfg = ReleaseStatic|Any CPU + {167F634B-A3AD-494E-8E67-B888103E35FF}.ReleaseStatic|ARM.Build.0 = ReleaseStatic|Any CPU + {167F634B-A3AD-494E-8E67-B888103E35FF}.ReleaseStatic|ARM64.ActiveCfg = Release|Any CPU + {167F634B-A3AD-494E-8E67-B888103E35FF}.ReleaseStatic|x64.ActiveCfg = ReleaseStatic|Any CPU + {167F634B-A3AD-494E-8E67-B888103E35FF}.ReleaseStatic|x64.Build.0 = ReleaseStatic|Any CPU + {167F634B-A3AD-494E-8E67-B888103E35FF}.ReleaseStatic|x86.ActiveCfg = ReleaseStatic|Any CPU + {167F634B-A3AD-494E-8E67-B888103E35FF}.ReleaseStatic|x86.Build.0 = ReleaseStatic|Any CPU + {167F634B-A3AD-494E-8E67-B888103E35FF}.TestRelease|ARM.ActiveCfg = Release|Any CPU + {167F634B-A3AD-494E-8E67-B888103E35FF}.TestRelease|ARM.Build.0 = Release|Any CPU {167F634B-A3AD-494E-8E67-B888103E35FF}.TestRelease|ARM64.ActiveCfg = Release|Any CPU {167F634B-A3AD-494E-8E67-B888103E35FF}.TestRelease|x64.ActiveCfg = Release|Any CPU {167F634B-A3AD-494E-8E67-B888103E35FF}.TestRelease|x86.ActiveCfg = Release|Any CPU + {C54F80ED-B736-49B0-9BD3-662F57024D01}.Debug|ARM.ActiveCfg = Debug|Any CPU + {C54F80ED-B736-49B0-9BD3-662F57024D01}.Debug|ARM.Build.0 = Debug|Any CPU {C54F80ED-B736-49B0-9BD3-662F57024D01}.Debug|ARM64.ActiveCfg = Debug|Any CPU {C54F80ED-B736-49B0-9BD3-662F57024D01}.Debug|ARM64.Build.0 = Debug|Any CPU {C54F80ED-B736-49B0-9BD3-662F57024D01}.Debug|x64.ActiveCfg = Debug|Any CPU {C54F80ED-B736-49B0-9BD3-662F57024D01}.Debug|x64.Build.0 = Debug|Any CPU {C54F80ED-B736-49B0-9BD3-662F57024D01}.Debug|x86.ActiveCfg = Debug|Any CPU {C54F80ED-B736-49B0-9BD3-662F57024D01}.Debug|x86.Build.0 = Debug|Any CPU + {C54F80ED-B736-49B0-9BD3-662F57024D01}.Fuzzing|ARM.ActiveCfg = ReleaseStatic|Any CPU + {C54F80ED-B736-49B0-9BD3-662F57024D01}.Fuzzing|ARM.Build.0 = ReleaseStatic|Any CPU {C54F80ED-B736-49B0-9BD3-662F57024D01}.Fuzzing|ARM64.ActiveCfg = Release|Any CPU {C54F80ED-B736-49B0-9BD3-662F57024D01}.Fuzzing|x64.ActiveCfg = Release|Any CPU {C54F80ED-B736-49B0-9BD3-662F57024D01}.Fuzzing|x86.ActiveCfg = Release|Any CPU - {C54F80ED-B736-49B0-9BD3-662F57024D01}.ReleaseStatic|ARM64.ActiveCfg = Release|Any CPU - {C54F80ED-B736-49B0-9BD3-662F57024D01}.ReleaseStatic|x64.ActiveCfg = ReleaseStatic|Any CPU - {C54F80ED-B736-49B0-9BD3-662F57024D01}.ReleaseStatic|x64.Build.0 = ReleaseStatic|Any CPU - {C54F80ED-B736-49B0-9BD3-662F57024D01}.ReleaseStatic|x86.ActiveCfg = ReleaseStatic|Any CPU - {C54F80ED-B736-49B0-9BD3-662F57024D01}.ReleaseStatic|x86.Build.0 = ReleaseStatic|Any CPU + {C54F80ED-B736-49B0-9BD3-662F57024D01}.Release|ARM.ActiveCfg = Release|Any CPU + {C54F80ED-B736-49B0-9BD3-662F57024D01}.Release|ARM.Build.0 = Release|Any CPU {C54F80ED-B736-49B0-9BD3-662F57024D01}.Release|ARM64.ActiveCfg = Release|Any CPU {C54F80ED-B736-49B0-9BD3-662F57024D01}.Release|ARM64.Build.0 = Release|Any CPU {C54F80ED-B736-49B0-9BD3-662F57024D01}.Release|x64.ActiveCfg = Release|Any CPU {C54F80ED-B736-49B0-9BD3-662F57024D01}.Release|x64.Build.0 = Release|Any CPU {C54F80ED-B736-49B0-9BD3-662F57024D01}.Release|x86.ActiveCfg = Release|Any CPU {C54F80ED-B736-49B0-9BD3-662F57024D01}.Release|x86.Build.0 = Release|Any CPU + {C54F80ED-B736-49B0-9BD3-662F57024D01}.ReleaseStatic|ARM.ActiveCfg = ReleaseStatic|Any CPU + {C54F80ED-B736-49B0-9BD3-662F57024D01}.ReleaseStatic|ARM.Build.0 = ReleaseStatic|Any CPU + {C54F80ED-B736-49B0-9BD3-662F57024D01}.ReleaseStatic|ARM64.ActiveCfg = Release|Any CPU + {C54F80ED-B736-49B0-9BD3-662F57024D01}.ReleaseStatic|x64.ActiveCfg = ReleaseStatic|Any CPU + {C54F80ED-B736-49B0-9BD3-662F57024D01}.ReleaseStatic|x64.Build.0 = ReleaseStatic|Any CPU + {C54F80ED-B736-49B0-9BD3-662F57024D01}.ReleaseStatic|x86.ActiveCfg = ReleaseStatic|Any CPU + {C54F80ED-B736-49B0-9BD3-662F57024D01}.ReleaseStatic|x86.Build.0 = ReleaseStatic|Any CPU + {C54F80ED-B736-49B0-9BD3-662F57024D01}.TestRelease|ARM.ActiveCfg = Release|Any CPU + {C54F80ED-B736-49B0-9BD3-662F57024D01}.TestRelease|ARM.Build.0 = Release|Any CPU {C54F80ED-B736-49B0-9BD3-662F57024D01}.TestRelease|ARM64.ActiveCfg = Release|Any CPU {C54F80ED-B736-49B0-9BD3-662F57024D01}.TestRelease|x64.ActiveCfg = Release|Any CPU {C54F80ED-B736-49B0-9BD3-662F57024D01}.TestRelease|x86.ActiveCfg = Release|Any CPU + {2268D5AD-7F2A-485A-8C4B-C574497514C9}.Debug|ARM.ActiveCfg = Debug|ARM + {2268D5AD-7F2A-485A-8C4B-C574497514C9}.Debug|ARM.Build.0 = Debug|ARM {2268D5AD-7F2A-485A-8C4B-C574497514C9}.Debug|ARM64.ActiveCfg = Debug|ARM64 {2268D5AD-7F2A-485A-8C4B-C574497514C9}.Debug|ARM64.Build.0 = Debug|ARM64 {2268D5AD-7F2A-485A-8C4B-C574497514C9}.Debug|x64.ActiveCfg = Debug|x64 {2268D5AD-7F2A-485A-8C4B-C574497514C9}.Debug|x64.Build.0 = Debug|x64 {2268D5AD-7F2A-485A-8C4B-C574497514C9}.Debug|x86.ActiveCfg = Debug|Win32 {2268D5AD-7F2A-485A-8C4B-C574497514C9}.Debug|x86.Build.0 = Debug|Win32 + {2268D5AD-7F2A-485A-8C4B-C574497514C9}.Fuzzing|ARM.ActiveCfg = Debug|ARM + {2268D5AD-7F2A-485A-8C4B-C574497514C9}.Fuzzing|ARM.Build.0 = Debug|ARM {2268D5AD-7F2A-485A-8C4B-C574497514C9}.Fuzzing|ARM64.ActiveCfg = Release|ARM64 {2268D5AD-7F2A-485A-8C4B-C574497514C9}.Fuzzing|x64.ActiveCfg = Release|x64 {2268D5AD-7F2A-485A-8C4B-C574497514C9}.Fuzzing|x86.ActiveCfg = Release|Win32 - {2268D5AD-7F2A-485A-8C4B-C574497514C9}.ReleaseStatic|ARM64.ActiveCfg = ReleaseStatic|ARM64 - {2268D5AD-7F2A-485A-8C4B-C574497514C9}.ReleaseStatic|ARM64.Build.0 = ReleaseStatic|ARM64 - {2268D5AD-7F2A-485A-8C4B-C574497514C9}.ReleaseStatic|x64.ActiveCfg = ReleaseStatic|x64 - {2268D5AD-7F2A-485A-8C4B-C574497514C9}.ReleaseStatic|x64.Build.0 = ReleaseStatic|x64 - {2268D5AD-7F2A-485A-8C4B-C574497514C9}.ReleaseStatic|x86.ActiveCfg = ReleaseStatic|Win32 - {2268D5AD-7F2A-485A-8C4B-C574497514C9}.ReleaseStatic|x86.Build.0 = ReleaseStatic|Win32 + {2268D5AD-7F2A-485A-8C4B-C574497514C9}.Release|ARM.ActiveCfg = Release|ARM + {2268D5AD-7F2A-485A-8C4B-C574497514C9}.Release|ARM.Build.0 = Release|ARM {2268D5AD-7F2A-485A-8C4B-C574497514C9}.Release|ARM64.ActiveCfg = Release|ARM64 {2268D5AD-7F2A-485A-8C4B-C574497514C9}.Release|ARM64.Build.0 = Release|ARM64 {2268D5AD-7F2A-485A-8C4B-C574497514C9}.Release|x64.ActiveCfg = Release|x64 {2268D5AD-7F2A-485A-8C4B-C574497514C9}.Release|x64.Build.0 = Release|x64 {2268D5AD-7F2A-485A-8C4B-C574497514C9}.Release|x86.ActiveCfg = Release|Win32 {2268D5AD-7F2A-485A-8C4B-C574497514C9}.Release|x86.Build.0 = Release|Win32 + {2268D5AD-7F2A-485A-8C4B-C574497514C9}.ReleaseStatic|ARM.ActiveCfg = ReleaseStatic|ARM + {2268D5AD-7F2A-485A-8C4B-C574497514C9}.ReleaseStatic|ARM.Build.0 = ReleaseStatic|ARM + {2268D5AD-7F2A-485A-8C4B-C574497514C9}.ReleaseStatic|ARM64.ActiveCfg = ReleaseStatic|ARM64 + {2268D5AD-7F2A-485A-8C4B-C574497514C9}.ReleaseStatic|ARM64.Build.0 = ReleaseStatic|ARM64 + {2268D5AD-7F2A-485A-8C4B-C574497514C9}.ReleaseStatic|x64.ActiveCfg = ReleaseStatic|x64 + {2268D5AD-7F2A-485A-8C4B-C574497514C9}.ReleaseStatic|x64.Build.0 = ReleaseStatic|x64 + {2268D5AD-7F2A-485A-8C4B-C574497514C9}.ReleaseStatic|x86.ActiveCfg = ReleaseStatic|Win32 + {2268D5AD-7F2A-485A-8C4B-C574497514C9}.ReleaseStatic|x86.Build.0 = ReleaseStatic|Win32 + {2268D5AD-7F2A-485A-8C4B-C574497514C9}.TestRelease|ARM.ActiveCfg = Release|ARM + {2268D5AD-7F2A-485A-8C4B-C574497514C9}.TestRelease|ARM.Build.0 = Release|ARM {2268D5AD-7F2A-485A-8C4B-C574497514C9}.TestRelease|ARM64.ActiveCfg = Release|ARM64 {2268D5AD-7F2A-485A-8C4B-C574497514C9}.TestRelease|ARM64.Build.0 = Release|ARM64 {2268D5AD-7F2A-485A-8C4B-C574497514C9}.TestRelease|x64.ActiveCfg = Release|x64 {2268D5AD-7F2A-485A-8C4B-C574497514C9}.TestRelease|x64.Build.0 = Release|x64 {2268D5AD-7F2A-485A-8C4B-C574497514C9}.TestRelease|x86.ActiveCfg = Release|Win32 {2268D5AD-7F2A-485A-8C4B-C574497514C9}.TestRelease|x86.Build.0 = Release|Win32 + {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.Debug|ARM.ActiveCfg = Debug|Any CPU + {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.Debug|ARM.Build.0 = Debug|Any CPU {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.Debug|ARM64.ActiveCfg = Debug|Any CPU {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.Debug|ARM64.Build.0 = Debug|Any CPU {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.Debug|x64.ActiveCfg = Debug|Any CPU {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.Debug|x64.Build.0 = Debug|Any CPU {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.Debug|x86.ActiveCfg = Debug|Any CPU {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.Debug|x86.Build.0 = Debug|Any CPU + {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.Fuzzing|ARM.ActiveCfg = Release|Any CPU + {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.Fuzzing|ARM.Build.0 = Release|Any CPU {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.Fuzzing|ARM64.ActiveCfg = Release|Any CPU {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.Fuzzing|x64.ActiveCfg = Release|Any CPU {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.Fuzzing|x86.ActiveCfg = Release|Any CPU - {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.ReleaseStatic|ARM64.ActiveCfg = Release|Any CPU - {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.ReleaseStatic|x64.ActiveCfg = Release|Any CPU - {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.ReleaseStatic|x86.ActiveCfg = Release|Any CPU + {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.Release|ARM.ActiveCfg = Release|Any CPU + {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.Release|ARM.Build.0 = Release|Any CPU {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.Release|ARM64.ActiveCfg = Release|Any CPU {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.Release|ARM64.Build.0 = Release|Any CPU {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.Release|x64.ActiveCfg = Release|Any CPU {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.Release|x64.Build.0 = Release|Any CPU {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.Release|x86.ActiveCfg = Release|Any CPU {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.Release|x86.Build.0 = Release|Any CPU + {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.ReleaseStatic|ARM.ActiveCfg = Release|Any CPU + {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.ReleaseStatic|ARM.Build.0 = Release|Any CPU + {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.ReleaseStatic|ARM64.ActiveCfg = Release|Any CPU + {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.ReleaseStatic|x64.ActiveCfg = Release|Any CPU + {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.ReleaseStatic|x86.ActiveCfg = Release|Any CPU + {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.TestRelease|ARM.ActiveCfg = Release|Any CPU + {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.TestRelease|ARM.Build.0 = Release|Any CPU {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.TestRelease|ARM64.ActiveCfg = Release|Any CPU {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.TestRelease|x64.ActiveCfg = Release|Any CPU {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.TestRelease|x86.ActiveCfg = Release|Any CPU + {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.Debug|ARM.ActiveCfg = Debug|Any CPU + {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.Debug|ARM.Build.0 = Debug|Any CPU {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.Debug|ARM64.ActiveCfg = Debug|Any CPU {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.Debug|ARM64.Build.0 = Debug|Any CPU {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.Debug|x64.ActiveCfg = Debug|Any CPU {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.Debug|x64.Build.0 = Debug|Any CPU {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.Debug|x86.ActiveCfg = Debug|Any CPU {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.Debug|x86.Build.0 = Debug|Any CPU + {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.Fuzzing|ARM.ActiveCfg = ReleaseStatic|Any CPU + {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.Fuzzing|ARM.Build.0 = ReleaseStatic|Any CPU {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.Fuzzing|ARM64.ActiveCfg = Release|Any CPU {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.Fuzzing|x64.ActiveCfg = Release|Any CPU {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.Fuzzing|x86.ActiveCfg = Release|Any CPU - {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.ReleaseStatic|ARM64.ActiveCfg = ReleaseStatic|Any CPU - {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.ReleaseStatic|ARM64.Build.0 = ReleaseStatic|Any CPU - {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.ReleaseStatic|x64.ActiveCfg = ReleaseStatic|Any CPU - {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.ReleaseStatic|x64.Build.0 = ReleaseStatic|Any CPU - {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.ReleaseStatic|x86.ActiveCfg = ReleaseStatic|Any CPU - {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.ReleaseStatic|x86.Build.0 = ReleaseStatic|Any CPU + {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.Release|ARM.ActiveCfg = Release|Any CPU + {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.Release|ARM.Build.0 = Release|Any CPU {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.Release|ARM64.ActiveCfg = Release|Any CPU {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.Release|ARM64.Build.0 = Release|Any CPU {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.Release|x64.ActiveCfg = Release|Any CPU {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.Release|x64.Build.0 = Release|Any CPU {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.Release|x86.ActiveCfg = Release|Any CPU {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.Release|x86.Build.0 = Release|Any CPU + {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.ReleaseStatic|ARM.ActiveCfg = ReleaseStatic|Any CPU + {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.ReleaseStatic|ARM.Build.0 = ReleaseStatic|Any CPU + {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.ReleaseStatic|ARM64.ActiveCfg = ReleaseStatic|Any CPU + {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.ReleaseStatic|ARM64.Build.0 = ReleaseStatic|Any CPU + {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.ReleaseStatic|x64.ActiveCfg = ReleaseStatic|Any CPU + {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.ReleaseStatic|x64.Build.0 = ReleaseStatic|Any CPU + {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.ReleaseStatic|x86.ActiveCfg = ReleaseStatic|Any CPU + {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.ReleaseStatic|x86.Build.0 = ReleaseStatic|Any CPU + {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.TestRelease|ARM.ActiveCfg = Release|Any CPU + {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.TestRelease|ARM.Build.0 = Release|Any CPU {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.TestRelease|ARM64.ActiveCfg = Release|Any CPU {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.TestRelease|x64.ActiveCfg = Release|Any CPU {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.TestRelease|x86.ActiveCfg = Release|Any CPU + {1B9077B3-8923-4ECD-8FC9-B3190FCBE4D4}.Debug|ARM.ActiveCfg = Debug|ARM + {1B9077B3-8923-4ECD-8FC9-B3190FCBE4D4}.Debug|ARM.Build.0 = Debug|ARM {1B9077B3-8923-4ECD-8FC9-B3190FCBE4D4}.Debug|ARM64.ActiveCfg = Debug|ARM64 {1B9077B3-8923-4ECD-8FC9-B3190FCBE4D4}.Debug|ARM64.Build.0 = Debug|ARM64 {1B9077B3-8923-4ECD-8FC9-B3190FCBE4D4}.Debug|x64.ActiveCfg = Debug|x64 {1B9077B3-8923-4ECD-8FC9-B3190FCBE4D4}.Debug|x64.Build.0 = Debug|x64 {1B9077B3-8923-4ECD-8FC9-B3190FCBE4D4}.Debug|x86.ActiveCfg = Debug|Win32 {1B9077B3-8923-4ECD-8FC9-B3190FCBE4D4}.Debug|x86.Build.0 = Debug|Win32 + {1B9077B3-8923-4ECD-8FC9-B3190FCBE4D4}.Fuzzing|ARM.ActiveCfg = Debug|ARM + {1B9077B3-8923-4ECD-8FC9-B3190FCBE4D4}.Fuzzing|ARM.Build.0 = Debug|ARM {1B9077B3-8923-4ECD-8FC9-B3190FCBE4D4}.Fuzzing|ARM64.ActiveCfg = Release|ARM64 {1B9077B3-8923-4ECD-8FC9-B3190FCBE4D4}.Fuzzing|x64.ActiveCfg = Release|x64 {1B9077B3-8923-4ECD-8FC9-B3190FCBE4D4}.Fuzzing|x86.ActiveCfg = Release|Win32 - {1B9077B3-8923-4ECD-8FC9-B3190FCBE4D4}.ReleaseStatic|ARM64.ActiveCfg = ReleaseStatic|ARM64 - {1B9077B3-8923-4ECD-8FC9-B3190FCBE4D4}.ReleaseStatic|ARM64.Build.0 = ReleaseStatic|ARM64 - {1B9077B3-8923-4ECD-8FC9-B3190FCBE4D4}.ReleaseStatic|x64.ActiveCfg = ReleaseStatic|x64 - {1B9077B3-8923-4ECD-8FC9-B3190FCBE4D4}.ReleaseStatic|x64.Build.0 = ReleaseStatic|x64 - {1B9077B3-8923-4ECD-8FC9-B3190FCBE4D4}.ReleaseStatic|x86.ActiveCfg = ReleaseStatic|Win32 - {1B9077B3-8923-4ECD-8FC9-B3190FCBE4D4}.ReleaseStatic|x86.Build.0 = ReleaseStatic|Win32 + {1B9077B3-8923-4ECD-8FC9-B3190FCBE4D4}.Release|ARM.ActiveCfg = Release|ARM + {1B9077B3-8923-4ECD-8FC9-B3190FCBE4D4}.Release|ARM.Build.0 = Release|ARM {1B9077B3-8923-4ECD-8FC9-B3190FCBE4D4}.Release|ARM64.ActiveCfg = Release|ARM64 {1B9077B3-8923-4ECD-8FC9-B3190FCBE4D4}.Release|ARM64.Build.0 = Release|ARM64 {1B9077B3-8923-4ECD-8FC9-B3190FCBE4D4}.Release|x64.ActiveCfg = Release|x64 {1B9077B3-8923-4ECD-8FC9-B3190FCBE4D4}.Release|x64.Build.0 = Release|x64 {1B9077B3-8923-4ECD-8FC9-B3190FCBE4D4}.Release|x86.ActiveCfg = Release|Win32 {1B9077B3-8923-4ECD-8FC9-B3190FCBE4D4}.Release|x86.Build.0 = Release|Win32 + {1B9077B3-8923-4ECD-8FC9-B3190FCBE4D4}.ReleaseStatic|ARM.ActiveCfg = ReleaseStatic|ARM + {1B9077B3-8923-4ECD-8FC9-B3190FCBE4D4}.ReleaseStatic|ARM.Build.0 = ReleaseStatic|ARM + {1B9077B3-8923-4ECD-8FC9-B3190FCBE4D4}.ReleaseStatic|ARM64.ActiveCfg = ReleaseStatic|ARM64 + {1B9077B3-8923-4ECD-8FC9-B3190FCBE4D4}.ReleaseStatic|ARM64.Build.0 = ReleaseStatic|ARM64 + {1B9077B3-8923-4ECD-8FC9-B3190FCBE4D4}.ReleaseStatic|x64.ActiveCfg = ReleaseStatic|x64 + {1B9077B3-8923-4ECD-8FC9-B3190FCBE4D4}.ReleaseStatic|x64.Build.0 = ReleaseStatic|x64 + {1B9077B3-8923-4ECD-8FC9-B3190FCBE4D4}.ReleaseStatic|x86.ActiveCfg = ReleaseStatic|Win32 + {1B9077B3-8923-4ECD-8FC9-B3190FCBE4D4}.ReleaseStatic|x86.Build.0 = ReleaseStatic|Win32 + {1B9077B3-8923-4ECD-8FC9-B3190FCBE4D4}.TestRelease|ARM.ActiveCfg = Release|ARM + {1B9077B3-8923-4ECD-8FC9-B3190FCBE4D4}.TestRelease|ARM.Build.0 = Release|ARM {1B9077B3-8923-4ECD-8FC9-B3190FCBE4D4}.TestRelease|ARM64.ActiveCfg = Release|ARM64 {1B9077B3-8923-4ECD-8FC9-B3190FCBE4D4}.TestRelease|ARM64.Build.0 = Release|ARM64 {1B9077B3-8923-4ECD-8FC9-B3190FCBE4D4}.TestRelease|x64.ActiveCfg = Release|x64 {1B9077B3-8923-4ECD-8FC9-B3190FCBE4D4}.TestRelease|x64.Build.0 = Release|x64 {1B9077B3-8923-4ECD-8FC9-B3190FCBE4D4}.TestRelease|x86.ActiveCfg = Release|Win32 {1B9077B3-8923-4ECD-8FC9-B3190FCBE4D4}.TestRelease|x86.Build.0 = Release|Win32 + {98920AB6-27B0-4C0F-B336-FA49DE57A1BA}.Debug|ARM.ActiveCfg = Debug|ARM + {98920AB6-27B0-4C0F-B336-FA49DE57A1BA}.Debug|ARM.Build.0 = Debug|ARM + {98920AB6-27B0-4C0F-B336-FA49DE57A1BA}.Debug|ARM64.ActiveCfg = Debug|x64 + {98920AB6-27B0-4C0F-B336-FA49DE57A1BA}.Debug|ARM64.Build.0 = Debug|x64 + {98920AB6-27B0-4C0F-B336-FA49DE57A1BA}.Debug|x64.ActiveCfg = Debug|x64 + {98920AB6-27B0-4C0F-B336-FA49DE57A1BA}.Debug|x64.Build.0 = Debug|x64 + {98920AB6-27B0-4C0F-B336-FA49DE57A1BA}.Debug|x86.ActiveCfg = Debug|Win32 + {98920AB6-27B0-4C0F-B336-FA49DE57A1BA}.Debug|x86.Build.0 = Debug|Win32 + {98920AB6-27B0-4C0F-B336-FA49DE57A1BA}.Fuzzing|ARM.ActiveCfg = Fuzzing|x64 + {98920AB6-27B0-4C0F-B336-FA49DE57A1BA}.Fuzzing|ARM.Build.0 = Fuzzing|x64 + {98920AB6-27B0-4C0F-B336-FA49DE57A1BA}.Fuzzing|ARM64.ActiveCfg = Debug|x64 + {98920AB6-27B0-4C0F-B336-FA49DE57A1BA}.Fuzzing|ARM64.Build.0 = Debug|x64 + {98920AB6-27B0-4C0F-B336-FA49DE57A1BA}.Fuzzing|x64.ActiveCfg = Debug|x64 + {98920AB6-27B0-4C0F-B336-FA49DE57A1BA}.Fuzzing|x64.Build.0 = Debug|x64 + {98920AB6-27B0-4C0F-B336-FA49DE57A1BA}.Fuzzing|x86.ActiveCfg = Debug|Win32 + {98920AB6-27B0-4C0F-B336-FA49DE57A1BA}.Fuzzing|x86.Build.0 = Debug|Win32 + {98920AB6-27B0-4C0F-B336-FA49DE57A1BA}.Release|ARM.ActiveCfg = Release|ARM + {98920AB6-27B0-4C0F-B336-FA49DE57A1BA}.Release|ARM.Build.0 = Release|ARM + {98920AB6-27B0-4C0F-B336-FA49DE57A1BA}.Release|ARM64.ActiveCfg = Release|x64 + {98920AB6-27B0-4C0F-B336-FA49DE57A1BA}.Release|ARM64.Build.0 = Release|x64 + {98920AB6-27B0-4C0F-B336-FA49DE57A1BA}.Release|x64.ActiveCfg = Release|x64 + {98920AB6-27B0-4C0F-B336-FA49DE57A1BA}.Release|x64.Build.0 = Release|x64 + {98920AB6-27B0-4C0F-B336-FA49DE57A1BA}.Release|x86.ActiveCfg = Release|Win32 + {98920AB6-27B0-4C0F-B336-FA49DE57A1BA}.Release|x86.Build.0 = Release|Win32 + {98920AB6-27B0-4C0F-B336-FA49DE57A1BA}.ReleaseStatic|ARM.ActiveCfg = ReleaseStatic|ARM + {98920AB6-27B0-4C0F-B336-FA49DE57A1BA}.ReleaseStatic|ARM.Build.0 = ReleaseStatic|ARM + {98920AB6-27B0-4C0F-B336-FA49DE57A1BA}.ReleaseStatic|ARM64.ActiveCfg = Release|x64 + {98920AB6-27B0-4C0F-B336-FA49DE57A1BA}.ReleaseStatic|ARM64.Build.0 = Release|x64 + {98920AB6-27B0-4C0F-B336-FA49DE57A1BA}.ReleaseStatic|x64.ActiveCfg = Release|x64 + {98920AB6-27B0-4C0F-B336-FA49DE57A1BA}.ReleaseStatic|x64.Build.0 = Release|x64 + {98920AB6-27B0-4C0F-B336-FA49DE57A1BA}.ReleaseStatic|x86.ActiveCfg = Release|Win32 + {98920AB6-27B0-4C0F-B336-FA49DE57A1BA}.ReleaseStatic|x86.Build.0 = Release|Win32 + {98920AB6-27B0-4C0F-B336-FA49DE57A1BA}.TestRelease|ARM.ActiveCfg = Release|ARM + {98920AB6-27B0-4C0F-B336-FA49DE57A1BA}.TestRelease|ARM.Build.0 = Release|ARM + {98920AB6-27B0-4C0F-B336-FA49DE57A1BA}.TestRelease|ARM64.ActiveCfg = Release|x64 + {98920AB6-27B0-4C0F-B336-FA49DE57A1BA}.TestRelease|ARM64.Build.0 = Release|x64 + {98920AB6-27B0-4C0F-B336-FA49DE57A1BA}.TestRelease|x64.ActiveCfg = Release|x64 + {98920AB6-27B0-4C0F-B336-FA49DE57A1BA}.TestRelease|x64.Build.0 = Release|x64 + {98920AB6-27B0-4C0F-B336-FA49DE57A1BA}.TestRelease|x86.ActiveCfg = Release|Win32 + {98920AB6-27B0-4C0F-B336-FA49DE57A1BA}.TestRelease|x86.Build.0 = Release|Win32 + {0BA531C8-CF0C-405B-8221-0FE51BA529D1}.Debug|ARM.ActiveCfg = Debug|x64 + {0BA531C8-CF0C-405B-8221-0FE51BA529D1}.Debug|ARM.Build.0 = Debug|x64 {0BA531C8-CF0C-405B-8221-0FE51BA529D1}.Debug|ARM64.ActiveCfg = Debug|ARM64 {0BA531C8-CF0C-405B-8221-0FE51BA529D1}.Debug|ARM64.Build.0 = Debug|ARM64 {0BA531C8-CF0C-405B-8221-0FE51BA529D1}.Debug|x64.ActiveCfg = Debug|x64 {0BA531C8-CF0C-405B-8221-0FE51BA529D1}.Debug|x64.Build.0 = Debug|x64 {0BA531C8-CF0C-405B-8221-0FE51BA529D1}.Debug|x86.ActiveCfg = Debug|Win32 {0BA531C8-CF0C-405B-8221-0FE51BA529D1}.Debug|x86.Build.0 = Debug|Win32 + {0BA531C8-CF0C-405B-8221-0FE51BA529D1}.Fuzzing|ARM.ActiveCfg = ReleaseStatic|x64 + {0BA531C8-CF0C-405B-8221-0FE51BA529D1}.Fuzzing|ARM.Build.0 = ReleaseStatic|x64 {0BA531C8-CF0C-405B-8221-0FE51BA529D1}.Fuzzing|ARM64.ActiveCfg = Release|ARM64 {0BA531C8-CF0C-405B-8221-0FE51BA529D1}.Fuzzing|x64.ActiveCfg = Release|x64 {0BA531C8-CF0C-405B-8221-0FE51BA529D1}.Fuzzing|x86.ActiveCfg = Release|Win32 - {0BA531C8-CF0C-405B-8221-0FE51BA529D1}.ReleaseStatic|ARM64.ActiveCfg = ReleaseStatic|ARM64 - {0BA531C8-CF0C-405B-8221-0FE51BA529D1}.ReleaseStatic|ARM64.Build.0 = ReleaseStatic|ARM64 - {0BA531C8-CF0C-405B-8221-0FE51BA529D1}.ReleaseStatic|x64.ActiveCfg = ReleaseStatic|x64 - {0BA531C8-CF0C-405B-8221-0FE51BA529D1}.ReleaseStatic|x64.Build.0 = ReleaseStatic|x64 - {0BA531C8-CF0C-405B-8221-0FE51BA529D1}.ReleaseStatic|x86.ActiveCfg = ReleaseStatic|Win32 - {0BA531C8-CF0C-405B-8221-0FE51BA529D1}.ReleaseStatic|x86.Build.0 = ReleaseStatic|Win32 + {0BA531C8-CF0C-405B-8221-0FE51BA529D1}.Release|ARM.ActiveCfg = Release|x64 + {0BA531C8-CF0C-405B-8221-0FE51BA529D1}.Release|ARM.Build.0 = Release|x64 {0BA531C8-CF0C-405B-8221-0FE51BA529D1}.Release|ARM64.ActiveCfg = Release|ARM64 {0BA531C8-CF0C-405B-8221-0FE51BA529D1}.Release|ARM64.Build.0 = Release|ARM64 {0BA531C8-CF0C-405B-8221-0FE51BA529D1}.Release|x64.ActiveCfg = Release|x64 {0BA531C8-CF0C-405B-8221-0FE51BA529D1}.Release|x64.Build.0 = Release|x64 {0BA531C8-CF0C-405B-8221-0FE51BA529D1}.Release|x86.ActiveCfg = Release|Win32 {0BA531C8-CF0C-405B-8221-0FE51BA529D1}.Release|x86.Build.0 = Release|Win32 + {0BA531C8-CF0C-405B-8221-0FE51BA529D1}.ReleaseStatic|ARM.ActiveCfg = ReleaseStatic|x64 + {0BA531C8-CF0C-405B-8221-0FE51BA529D1}.ReleaseStatic|ARM.Build.0 = ReleaseStatic|x64 + {0BA531C8-CF0C-405B-8221-0FE51BA529D1}.ReleaseStatic|ARM64.ActiveCfg = ReleaseStatic|ARM64 + {0BA531C8-CF0C-405B-8221-0FE51BA529D1}.ReleaseStatic|ARM64.Build.0 = ReleaseStatic|ARM64 + {0BA531C8-CF0C-405B-8221-0FE51BA529D1}.ReleaseStatic|x64.ActiveCfg = ReleaseStatic|x64 + {0BA531C8-CF0C-405B-8221-0FE51BA529D1}.ReleaseStatic|x64.Build.0 = ReleaseStatic|x64 + {0BA531C8-CF0C-405B-8221-0FE51BA529D1}.ReleaseStatic|x86.ActiveCfg = ReleaseStatic|Win32 + {0BA531C8-CF0C-405B-8221-0FE51BA529D1}.ReleaseStatic|x86.Build.0 = ReleaseStatic|Win32 + {0BA531C8-CF0C-405B-8221-0FE51BA529D1}.TestRelease|ARM.ActiveCfg = Release|x64 + {0BA531C8-CF0C-405B-8221-0FE51BA529D1}.TestRelease|ARM.Build.0 = Release|x64 {0BA531C8-CF0C-405B-8221-0FE51BA529D1}.TestRelease|ARM64.ActiveCfg = Release|ARM64 {0BA531C8-CF0C-405B-8221-0FE51BA529D1}.TestRelease|ARM64.Build.0 = Release|ARM64 {0BA531C8-CF0C-405B-8221-0FE51BA529D1}.TestRelease|x64.ActiveCfg = Release|x64 @@ -1275,6 +1749,7 @@ Global {5A52D9FC-0059-4A4A-8196-427A7AA0D1C5} = {7C218A3E-9BC8-48FF-B91B-BCACD828C0C9} {1B9077B3-8923-4ECD-8FC9-B3190FCBE4D4} = {60618CAC-2995-4DF9-9914-45C6FC02C995} {76B26B2C-602A-4AD0-9736-4162D3FCA92A} = {1A5D7A7D-5CB2-47D5-B40D-4E61CAEDC798} + {98920AB6-27B0-4C0F-B336-FA49DE57A1BA} = {A66FF147-BBB4-4A84-95A0-18413D973941} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {B6FDB70C-A751-422C-ACD1-E35419495857} diff --git a/src/AppInstallerCLICore/AppInstallerCLICore.vcxproj b/src/AppInstallerCLICore/AppInstallerCLICore.vcxproj index 45c9c0fa04..f484b447f1 100644 --- a/src/AppInstallerCLICore/AppInstallerCLICore.vcxproj +++ b/src/AppInstallerCLICore/AppInstallerCLICore.vcxproj @@ -223,9 +223,9 @@ Disabled _DEBUG;%(PreprocessorDefinitions);CLICOREDLLBUILD - $(ProjectDir);$(ProjectDir)..\AppInstallerRepositoryCore\Public;$(ProjectDir)..\AppInstallerCommonCore\Public;$(ProjectDir)..\AppInstallerSharedLib\Public;$(ProjectDir)..\JsonCppLib\json;$(ProjectDir)..\JsonCppLib;%(AdditionalIncludeDirectories) - $(ProjectDir);$(ProjectDir)..\AppInstallerRepositoryCore\Public;$(ProjectDir)..\AppInstallerCommonCore\Public;$(ProjectDir)..\AppInstallerSharedLib\Public;$(ProjectDir)..\JsonCppLib\json;$(ProjectDir)..\JsonCppLib;%(AdditionalIncludeDirectories) - $(ProjectDir);$(ProjectDir)..\AppInstallerRepositoryCore\Public;$(ProjectDir)..\AppInstallerCommonCore\Public;$(ProjectDir)..\AppInstallerSharedLib\Public;$(ProjectDir)..\JsonCppLib\json;$(ProjectDir)..\JsonCppLib;%(AdditionalIncludeDirectories) + $(ProjectDir);$(ProjectDir)..\AppInstallerRepositoryCore\Public;$(ProjectDir)..\AppInstallerCommonCore\Public;$(ProjectDir)..\AppInstallerSharedLib\Public;$(ProjectDir)..\JsonCppLib\json;$(ProjectDir)..\JsonCppLib;$(ProjectDir)..\Internal;%(AdditionalIncludeDirectories) + $(ProjectDir);$(ProjectDir)..\AppInstallerRepositoryCore\Public;$(ProjectDir)..\AppInstallerCommonCore\Public;$(ProjectDir)..\AppInstallerSharedLib\Public;$(ProjectDir)..\JsonCppLib\json;$(ProjectDir)..\JsonCppLib;$(ProjectDir)..\Internal;%(AdditionalIncludeDirectories) + $(ProjectDir);$(ProjectDir)..\AppInstallerRepositoryCore\Public;$(ProjectDir)..\AppInstallerCommonCore\Public;$(ProjectDir)..\AppInstallerSharedLib\Public;$(ProjectDir)..\JsonCppLib\json;$(ProjectDir)..\JsonCppLib;$(ProjectDir)..\Internal;%(AdditionalIncludeDirectories) true true true @@ -265,10 +265,10 @@ true true NDEBUG;%(PreprocessorDefinitions);CLICOREDLLBUILD - $(ProjectDir);$(ProjectDir)..\AppInstallerRepositoryCore\Public;$(ProjectDir)..\AppInstallerCommonCore\Public;$(ProjectDir)..\AppInstallerSharedLib\Public;$(ProjectDir)..\JsonCppLib\json;$(ProjectDir)..\JsonCppLib;%(AdditionalIncludeDirectories) - $(ProjectDir);$(ProjectDir)..\AppInstallerRepositoryCore\Public;$(ProjectDir)..\AppInstallerCommonCore\Public;$(ProjectDir)..\AppInstallerSharedLib\Public;$(ProjectDir)..\JsonCppLib\json;$(ProjectDir)..\JsonCppLib;%(AdditionalIncludeDirectories) - $(ProjectDir);$(ProjectDir)..\AppInstallerRepositoryCore\Public;$(ProjectDir)..\AppInstallerCommonCore\Public;$(ProjectDir)..\AppInstallerSharedLib\Public;$(ProjectDir)..\JsonCppLib\json;$(ProjectDir)..\JsonCppLib;%(AdditionalIncludeDirectories) - $(ProjectDir);$(ProjectDir)..\AppInstallerRepositoryCore\Public;$(ProjectDir)..\AppInstallerCommonCore\Public;$(ProjectDir)..\AppInstallerSharedLib\Public;$(ProjectDir)..\JsonCppLib\json;$(ProjectDir)..\JsonCppLib;%(AdditionalIncludeDirectories) + $(ProjectDir);$(ProjectDir)..\AppInstallerRepositoryCore\Public;$(ProjectDir)..\AppInstallerCommonCore\Public;$(ProjectDir)..\AppInstallerSharedLib\Public;$(ProjectDir)..\JsonCppLib\json;$(ProjectDir)..\JsonCppLib;$(ProjectDir)..\Internal;%(AdditionalIncludeDirectories) + $(ProjectDir);$(ProjectDir)..\AppInstallerRepositoryCore\Public;$(ProjectDir)..\AppInstallerCommonCore\Public;$(ProjectDir)..\AppInstallerSharedLib\Public;$(ProjectDir)..\JsonCppLib\json;$(ProjectDir)..\JsonCppLib;$(ProjectDir)..\Internal;%(AdditionalIncludeDirectories) + $(ProjectDir);$(ProjectDir)..\AppInstallerRepositoryCore\Public;$(ProjectDir)..\AppInstallerCommonCore\Public;$(ProjectDir)..\AppInstallerSharedLib\Public;$(ProjectDir)..\JsonCppLib\json;$(ProjectDir)..\JsonCppLib;$(ProjectDir)..\Internal;%(AdditionalIncludeDirectories) + $(ProjectDir);$(ProjectDir)..\AppInstallerRepositoryCore\Public;$(ProjectDir)..\AppInstallerCommonCore\Public;$(ProjectDir)..\AppInstallerSharedLib\Public;$(ProjectDir)..\JsonCppLib\json;$(ProjectDir)..\JsonCppLib;$(ProjectDir)..\Internal;%(AdditionalIncludeDirectories) true true true @@ -302,10 +302,10 @@ true true NDEBUG;%(PreprocessorDefinitions);CLICOREDLLBUILD - $(ProjectDir);$(ProjectDir)..\AppInstallerRepositoryCore\Public;$(ProjectDir)..\AppInstallerCommonCore\Public;$(ProjectDir)..\AppInstallerSharedLib\Public;$(ProjectDir)..\JsonCppLib\json;$(ProjectDir)..\JsonCppLib;%(AdditionalIncludeDirectories) - $(ProjectDir);$(ProjectDir)..\AppInstallerRepositoryCore\Public;$(ProjectDir)..\AppInstallerCommonCore\Public;$(ProjectDir)..\AppInstallerSharedLib\Public;$(ProjectDir)..\JsonCppLib\json;$(ProjectDir)..\JsonCppLib;%(AdditionalIncludeDirectories) - $(ProjectDir);$(ProjectDir)..\AppInstallerRepositoryCore\Public;$(ProjectDir)..\AppInstallerCommonCore\Public;$(ProjectDir)..\AppInstallerSharedLib\Public;$(ProjectDir)..\JsonCppLib\json;$(ProjectDir)..\JsonCppLib;%(AdditionalIncludeDirectories) - $(ProjectDir);$(ProjectDir)..\AppInstallerRepositoryCore\Public;$(ProjectDir)..\AppInstallerCommonCore\Public;$(ProjectDir)..\AppInstallerSharedLib\Public;$(ProjectDir)..\JsonCppLib\json;$(ProjectDir)..\JsonCppLib;%(AdditionalIncludeDirectories) + $(ProjectDir);$(ProjectDir)..\AppInstallerRepositoryCore\Public;$(ProjectDir)..\AppInstallerCommonCore\Public;$(ProjectDir)..\AppInstallerSharedLib\Public;$(ProjectDir)..\JsonCppLib\json;$(ProjectDir)..\JsonCppLib;$(ProjectDir)..\Internal;%(AdditionalIncludeDirectories) + $(ProjectDir);$(ProjectDir)..\AppInstallerRepositoryCore\Public;$(ProjectDir)..\AppInstallerCommonCore\Public;$(ProjectDir)..\AppInstallerSharedLib\Public;$(ProjectDir)..\JsonCppLib\json;$(ProjectDir)..\JsonCppLib;$(ProjectDir)..\Internal;%(AdditionalIncludeDirectories) + $(ProjectDir);$(ProjectDir)..\AppInstallerRepositoryCore\Public;$(ProjectDir)..\AppInstallerCommonCore\Public;$(ProjectDir)..\AppInstallerSharedLib\Public;$(ProjectDir)..\JsonCppLib\json;$(ProjectDir)..\JsonCppLib;$(ProjectDir)..\Internal;%(AdditionalIncludeDirectories) + $(ProjectDir);$(ProjectDir)..\AppInstallerRepositoryCore\Public;$(ProjectDir)..\AppInstallerCommonCore\Public;$(ProjectDir)..\AppInstallerSharedLib\Public;$(ProjectDir)..\JsonCppLib\json;$(ProjectDir)..\JsonCppLib;$(ProjectDir)..\Internal;%(AdditionalIncludeDirectories) true true true @@ -390,6 +390,7 @@ + @@ -455,6 +456,7 @@ + diff --git a/src/AppInstallerCLICore/AppInstallerCLICore.vcxproj.filters b/src/AppInstallerCLICore/AppInstallerCLICore.vcxproj.filters index a8f48edd34..2e72317921 100644 --- a/src/AppInstallerCLICore/AppInstallerCLICore.vcxproj.filters +++ b/src/AppInstallerCLICore/AppInstallerCLICore.vcxproj.filters @@ -257,6 +257,9 @@ Commands + + Workflows + Header Files @@ -493,6 +496,9 @@ Commands + + Workflows + Source Files diff --git a/src/AppInstallerCLICore/Resources.h b/src/AppInstallerCLICore/Resources.h index 5aa7616509..6a317da115 100644 --- a/src/AppInstallerCLICore/Resources.h +++ b/src/AppInstallerCLICore/Resources.h @@ -694,6 +694,8 @@ namespace AppInstaller::CLI::Resource WINGET_DEFINE_RESOURCE_STRINGID(UpgradeRequireExplicitCount); WINGET_DEFINE_RESOURCE_STRINGID(UpgradeUnknownVersionCount); WINGET_DEFINE_RESOURCE_STRINGID(UpgradeUnknownVersionExplanation); + WINGET_DEFINE_RESOURCE_STRINGID(UriBlockedBySmartScreen); + WINGET_DEFINE_RESOURCE_STRINGID(UriSecurityZoneBlockedByPolicy); WINGET_DEFINE_RESOURCE_STRINGID(UriNotWellFormed); WINGET_DEFINE_RESOURCE_STRINGID(UriSchemeNotSupported); WINGET_DEFINE_RESOURCE_STRINGID(Usage); diff --git a/src/AppInstallerCLICore/Workflows/ConfigurationFlow.cpp b/src/AppInstallerCLICore/Workflows/ConfigurationFlow.cpp index 819f1cf9bc..705baf0eda 100644 --- a/src/AppInstallerCLICore/Workflows/ConfigurationFlow.cpp +++ b/src/AppInstallerCLICore/Workflows/ConfigurationFlow.cpp @@ -2,6 +2,7 @@ // Licensed under the MIT License. #include "pch.h" #include "ConfigurationFlow.h" +#include "UriValidationFLow.h" #include "PromptFlow.h" #include "TableOutput.h" #include "Public/ConfigurationSetProcessorFactoryRemoting.h" @@ -1298,7 +1299,7 @@ namespace AppInstaller::CLI::Workflow } } - void CreateConfigurationProcessor(Context& context) + void CreateConfigurationProcessorInternal(Context& context) { auto progressScope = context.Reporter.BeginAsyncProgress(true); progressScope->Callback().SetProgressMessage(Resource::String::ConfigurationInitializing()); @@ -1306,6 +1307,13 @@ namespace AppInstaller::CLI::Workflow anon::ConfigureProcessorForUse(context, ConfigurationProcessor{ anon::CreateConfigurationSetProcessorFactory(context) }); } + void CreateConfigurationProcessor(Context& context) + { + context << + ExecuteUriValidation(UriValidationSource::ConfigurationSource) << + CreateConfigurationProcessorInternal; + } + void CreateConfigurationProcessorWithoutFactory(Execution::Context& context) { anon::ConfigureProcessorForUse(context, ConfigurationProcessor{ IConfigurationSetProcessorFactory{ nullptr } }); diff --git a/src/AppInstallerCLICore/Workflows/DownloadFlow.cpp b/src/AppInstallerCLICore/Workflows/DownloadFlow.cpp index 084cbb4d3f..5b2ddb16bb 100644 --- a/src/AppInstallerCLICore/Workflows/DownloadFlow.cpp +++ b/src/AppInstallerCLICore/Workflows/DownloadFlow.cpp @@ -2,6 +2,7 @@ // Licensed under the MIT License. #include "pch.h" #include "DownloadFlow.h" +#include "UriValidationFlow.h" #include "MSStoreInstallerHandler.h" #include #include @@ -193,20 +194,8 @@ namespace AppInstaller::CLI::Workflow } } - void DownloadInstaller(Execution::Context& context) + void DownloadInstallerInternal(Execution::Context& context) { - // Check if file was already downloaded. - // This may happen after a failed installation or if the download was done - // separately before, e.g. on COM scenarios. - context << - ReportExecutionStage(ExecutionStage::Download) << - CheckForExistingInstaller; - - if (context.IsTerminated()) - { - return; - } - bool installerDownloadOnly = WI_IsFlagSet(context.GetFlags(), Execution::ContextFlag::InstallerDownloadOnly); // CheckForExistingInstaller will set the InstallerPath if found @@ -268,6 +257,25 @@ namespace AppInstaller::CLI::Workflow } } + void DownloadInstaller(Execution::Context& context) + { + // Check if file was already downloaded. + // This may happen after a failed installation or if the download was done + // separately before, e.g. on COM scenarios. + context << + ReportExecutionStage(ExecutionStage::Download) << + CheckForExistingInstaller; + + if (context.IsTerminated()) + { + return; + } + + context << + ExecuteUriValidation(UriValidationSource::PackageCatalogSource) << + DownloadInstallerInternal; + } + void CheckForExistingInstaller(Execution::Context& context) { const auto& installer = context.Get().value(); diff --git a/src/AppInstallerCLICore/Workflows/UriValidationFlow.cpp b/src/AppInstallerCLICore/Workflows/UriValidationFlow.cpp new file mode 100644 index 0000000000..8310357bc5 --- /dev/null +++ b/src/AppInstallerCLICore/Workflows/UriValidationFlow.cpp @@ -0,0 +1,194 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. +#include "pch.h" +#include "UriValidationFlow.h" +#include +#include +#include + +namespace AppInstaller::CLI::Workflow +{ + // Check if smart screen is required for a given zone. + bool IsSmartScreenRequired(Settings::SecurityZoneOptions zone) + { + auto isSmartScreenEnabled = Settings::GroupPolicies().IsEnabled(Settings::TogglePolicy::Policy::SmartScreenCheck); + AICLI_LOG(Core, Info, << "SmartScreen validation is " << (isSmartScreenEnabled ? "enabled" : "disabled")); + + auto isSecurityZoneCheckRequired = zone == Settings::SecurityZoneOptions::Internet || zone == Settings::SecurityZoneOptions::UntrustedSites; + AICLI_LOG(Core, Info, << "Security zone check is " << (isSecurityZoneCheckRequired ? "required" : "not required")); + + return isSmartScreenEnabled && isSecurityZoneCheckRequired; + } + + // Check if the given uri is blocked by smart screen. + bool IsBlockedBySmartScreen(Execution::Context& context, const std::string& uri) + { + auto response = AppInstaller::UriValidation::ValidateUri(uri); + switch (response.Decision()) + { + case AppInstaller::UriValidation::UriValidationDecision::Block: + AICLI_LOG(Core, Error, << "URI '" << uri << "' was blocked by smart screen. Feedback URL: " << response.Feedback()); + context.Reporter.Error() << Resource::String::UriBlockedBySmartScreen << std::endl; + return true; + case AppInstaller::UriValidation::UriValidationDecision::Allow: + default: + return false; + } + } + + // Get Uri zone for a given uri or file path. + HRESULT GetUriZone(const std::string& uri, Settings::SecurityZoneOptions* zone) + { + if (!zone) + { + return E_INVALIDARG; + } + + #ifndef AICLI_DISABLE_TEST_HOOKS + // For testing purposes, allow the zone to be set via the uri + std::smatch match; + if (std::regex_search(uri, match, std::regex("/zone(\\d+)/"))) + { + std::string number = match[1].str(); + *zone = static_cast(std::stoul(number)); + return S_OK; + } + #endif + + DWORD dwZone; + auto pInternetSecurityManager = winrt::create_instance(CLSID_InternetSecurityManager, CLSCTX_ALL); + auto mapResult = pInternetSecurityManager->MapUrlToZone(AppInstaller::Utility::ConvertToUTF16(uri).c_str(), &dwZone, 0); + + // Ensure MapUrlToZone was successful and the zone value is valid + if (FAILED(mapResult)) + { + return mapResult; + } + + // Treat all zones higher than untrusted as untrusted + if (dwZone > static_cast(Settings::SecurityZoneOptions::UntrustedSites)) + { + *zone = Settings::SecurityZoneOptions::UntrustedSites; + } + else + { + *zone = static_cast(dwZone); + } + + return S_OK; + } + + // Validate group policy for a given zone. + bool IsBlockedByGroupPolicy(Execution::Context& context, const Settings::SecurityZoneOptions zone) + { + if (!Settings::GroupPolicies().IsEnabled(Settings::TogglePolicy::Policy::AllowedSecurityZones)) + { + AICLI_LOG(Core, Info, << "WindowsPackageManagerAllowedSecurityZones policy is disabled"); + return false; + } + + auto allowedSecurityZones = Settings::GroupPolicies().GetValue(); + if (!allowedSecurityZones.has_value()) + { + AICLI_LOG(Core, Warning, << "WindowsPackageManagerAllowedSecurityZones policy is not set"); + return false; + } + + if (allowedSecurityZones->find(zone) == allowedSecurityZones->end()) + { + AICLI_LOG(Core, Warning, << "Security zone " << zone << " was not found in the group policy WindowsPackageManagerAllowedSecurityZones"); + return false; + } + + auto isAllowed = allowedSecurityZones->at(zone); + if(!isAllowed) + { + AICLI_LOG(Core, Error, << "Security zone " << zone << " is blocked by group policy"); + context.Reporter.Error() << Resource::String::UriSecurityZoneBlockedByPolicy << std::endl; + return true; + } + + AICLI_LOG(Core, Info, << "Configuration is configured in zone " << zone << " with value " << (isAllowed ? "allowed" : "blocked")); + return false; + } + + // Evaluate the given uri for group policy and smart screen. + HRESULT EvaluateUri(Execution::Context& context, const std::string& uri) + { + AICLI_LOG(Core, Info, << "Validating URI: " << uri); + + Settings::SecurityZoneOptions zone; + auto zoneResult = GetUriZone(uri, &zone); + + if (SUCCEEDED(zoneResult)) + { + if(IsBlockedByGroupPolicy(context, zone)) + { + return APPINSTALLER_CLI_ERROR_BLOCKED_BY_POLICY; + } + + if (IsSmartScreenRequired(zone) && IsBlockedBySmartScreen(context, uri)) + { + return APPINSTALLER_CLI_ERROR_BLOCKED_BY_REPUTATION_SERVICE; + } + } + else + { + AICLI_LOG(Core, Warning, << "Failed to get zone for URI: " << uri << " with error: " << zoneResult << ". Skipping validation."); + } + + return S_OK; + } + + // Evaluate the configuration uri for group policy and smart screen. + HRESULT EvaluateConfigurationUri(Execution::Context& context) + { + if (context.Args.Contains(Execution::Args::Type::ConfigurationFile)) + { + std::string argPath{ context.Args.GetArg(Execution::Args::Type::ConfigurationFile) }; + return EvaluateUri(context, argPath); + } + + return S_OK; + } + + // Evaluate the download uri for group policy and smart screen. + HRESULT EvaluateDownloadUri(Execution::Context& context) + { + if (context.Contains(Execution::Data::PackageVersion)) + { + const auto packageVersion = context.Get(); + const auto source = packageVersion->GetSource(); + const auto isTrusted = WI_IsFlagSet(source.GetDetails().TrustLevel, Repository::SourceTrustLevel::Trusted); + if (!isTrusted && context.Contains(Execution::Data::Installer)) + { + auto installer = context.Get(); + return EvaluateUri(context, installer->Url); + } + } + + return S_OK; + } + + // Execute the smart screen flow. + void ExecuteUriValidation::operator()(Execution::Context& context) const + { + if (m_uriValidationSource == UriValidationSource::ConfigurationSource) + { + auto uriValidation = EvaluateConfigurationUri(context); + if (FAILED(uriValidation)) + { + AICLI_TERMINATE_CONTEXT(uriValidation); + } + + } + else + { + auto uriValidation = EvaluateDownloadUri(context); + if (FAILED(uriValidation)) + { + AICLI_TERMINATE_CONTEXT(uriValidation); + } + } + } +} diff --git a/src/AppInstallerCLICore/Workflows/UriValidationFlow.h b/src/AppInstallerCLICore/Workflows/UriValidationFlow.h new file mode 100644 index 0000000000..55439ba4cb --- /dev/null +++ b/src/AppInstallerCLICore/Workflows/UriValidationFlow.h @@ -0,0 +1,29 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. +#pragma once +#include "ExecutionContext.h" + +namespace AppInstaller::CLI::Workflow +{ + enum UriValidationSource + { + ConfigurationSource, + PackageCatalogSource, + }; + + // Composite flow that chooses what to do based on whether or not the + // configuration flow is being run. + // Required Args: None + // Inputs: IsConfigurationFlow + // Outputs: None + struct ExecuteUriValidation: public WorkflowTask + { + ExecuteUriValidation(UriValidationSource uriValidationSource) : WorkflowTask("ExecuteUriValidation"), m_uriValidationSource(uriValidationSource) {} + + void operator()(Execution::Context& context) const override; + + private: + UriValidationSource m_uriValidationSource; + }; +} + diff --git a/src/AppInstallerCLIPackage/AppInstallerCLIPackage.wapproj b/src/AppInstallerCLIPackage/AppInstallerCLIPackage.wapproj index 06a24b4e09..5a7744f96f 100644 --- a/src/AppInstallerCLIPackage/AppInstallerCLIPackage.wapproj +++ b/src/AppInstallerCLIPackage/AppInstallerCLIPackage.wapproj @@ -238,6 +238,9 @@ WindowsPackageManager.dll + + libsmartscreen.dll + Microsoft.Management.Deployment.winmd diff --git a/src/AppInstallerCLIPackage/Shared/Strings/en-us/winget.resw b/src/AppInstallerCLIPackage/Shared/Strings/en-us/winget.resw index 46d093b80c..b1ecc5b6bc 100644 --- a/src/AppInstallerCLIPackage/Shared/Strings/en-us/winget.resw +++ b/src/AppInstallerCLIPackage/Shared/Strings/en-us/winget.resw @@ -2685,6 +2685,14 @@ Please specify one of them using the --source option to proceed. Uri not well formed: {0} {Locked="{0}"} Error message displayed when the provided uri is not well formed. {0} is a placeholder replaced by the provided uri. + + This operation was blocked as unsafe by Microsoft Defender SmartScreen. + Error message displayed when an operation is using a URI that was blocked by Microsoft Defender SmartScreen. + + + The operation you are attempting to apply has been blocked by your administrator. + Error message displayed when an operation is using a URI zone that was blocked by group policy. + Failed to parse {0} configuration unit settings content or settings content is empty. {Locked="{0}"} {0} is a placeholder replaced by the input winget configure resource unit type. @@ -2834,6 +2842,14 @@ Please specify one of them using the --source option to proceed. Enable Windows Package Manager proxy command line options Describes a Group Policy that can enable the use of the --proxy option to set a proxy + + Enable Windows Package Manager smart screen validation + + + + Enable Windows App Installer Allowed Security Zones + + Set a proxy to use for this execution @@ -3174,4 +3190,4 @@ Please specify one of them using the --source option to proceed. Version - \ No newline at end of file + diff --git a/src/AppInstallerCLITests/AppInstallerCLITests.vcxproj b/src/AppInstallerCLITests/AppInstallerCLITests.vcxproj index 7500b2c1bb..e667520890 100644 --- a/src/AppInstallerCLITests/AppInstallerCLITests.vcxproj +++ b/src/AppInstallerCLITests/AppInstallerCLITests.vcxproj @@ -14,6 +14,7 @@ 10.0.17763.0 AppInstallerCLITests + @@ -339,6 +340,7 @@ + @@ -1029,6 +1031,9 @@ {866c3f06-636f-4be8-bc24-5f86ecc606a1} + + {98920ab6-27b0-4c0f-b336-fa49de57a1ba} + {82b39fda-e86b-4713-a873-9d56de00247a} diff --git a/src/AppInstallerCLITests/AppInstallerCLITests.vcxproj.filters b/src/AppInstallerCLITests/AppInstallerCLITests.vcxproj.filters index 5d28140d17..dd12cf2785 100644 --- a/src/AppInstallerCLITests/AppInstallerCLITests.vcxproj.filters +++ b/src/AppInstallerCLITests/AppInstallerCLITests.vcxproj.filters @@ -365,6 +365,9 @@ Source Files\CLI + + Source Files\CLI + Source Files\Repository diff --git a/src/AppInstallerCLITests/GroupPolicy.cpp b/src/AppInstallerCLITests/GroupPolicy.cpp index 907c55969e..d359a0a1ac 100644 --- a/src/AppInstallerCLITests/GroupPolicy.cpp +++ b/src/AppInstallerCLITests/GroupPolicy.cpp @@ -402,6 +402,8 @@ TEST_CASE("GroupPolicy_AllEnabled", "[groupPolicy]") SetRegistryValue(policiesKey.get(), EnableWindowsPackageManagerCommandLineInterfaces, 1); SetRegistryValue(policiesKey.get(), ConfigurationPolicyValueName, 1); SetRegistryValue(policiesKey.get(), ProxyCommandLineOptionsPolicyValueName, 1); + SetRegistryValue(policiesKey.get(), AllowedSecurityZonesPolicyValueName, 1); + SetRegistryValue(policiesKey.get(), SmartScreenValidationPolicyValueName, 1); GroupPolicy groupPolicy{ policiesKey.get() }; for (const auto& policy : TogglePolicy::GetAllPolicies()) diff --git a/src/AppInstallerCLITests/TestSettings.h b/src/AppInstallerCLITests/TestSettings.h index 7da1a728ef..09b40181b0 100644 --- a/src/AppInstallerCLITests/TestSettings.h +++ b/src/AppInstallerCLITests/TestSettings.h @@ -23,6 +23,8 @@ namespace TestCommon const std::wstring EnableWindowsPackageManagerCommandLineInterfaces = L"EnableWindowsPackageManagerCommandLineInterfaces"; const std::wstring ConfigurationPolicyValueName = L"EnableWindowsPackageManagerConfiguration"; const std::wstring ProxyCommandLineOptionsPolicyValueName = L"EnableWindowsPackageManagerProxyCommandLineOptions"; + const std::wstring AllowedSecurityZonesPolicyValueName = L"EnableWindowsPackageManagerAllowedSecurityZones"; + const std::wstring SmartScreenValidationPolicyValueName = L"EnableWindowsPackageManagerSmartScreenCheck"; const std::wstring SourceUpdateIntervalPolicyValueName = L"SourceAutoUpdateInterval"; const std::wstring SourceUpdateIntervalPolicyOldValueName = L"SourceAutoUpdateIntervalInMinutes"; @@ -90,4 +92,4 @@ namespace TestCommon }; #define REQUIRE_POLICY_EXCEPTION(_expr_, _policy_) REQUIRE_THROWS_MATCHES(_expr_, AppInstaller::Settings::GroupPolicyException, TestCommon::GroupPolicyExceptionMatcher(_policy_)) -} \ No newline at end of file +} diff --git a/src/AppInstallerCLITests/UriValidationFlow.cpp b/src/AppInstallerCLITests/UriValidationFlow.cpp new file mode 100644 index 0000000000..4be423ddaa --- /dev/null +++ b/src/AppInstallerCLITests/UriValidationFlow.cpp @@ -0,0 +1,202 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. +#include "pch.h" +#include "WorkflowCommon.h" +#include "TestSettings.h" +#include "TestCommon.h" +#include + +using namespace TestCommon; +using namespace AppInstaller::CLI; +using namespace AppInstaller::CLI::Execution; +using namespace AppInstaller::CLI::Workflow; +using namespace AppInstaller::Manifest; +using namespace AppInstaller::Settings; + +// Test uri with the following format: https://URI_VALIDATION// +constexpr std::string_view InternetAllow = "https://URI_VALIDATION/zone3/allow"sv; +constexpr std::string_view LocalBlock = "https://URI_VALIDATION/zone0/block"sv; +constexpr std::string_view IntranetBlock = "https://URI_VALIDATION/zone1/block"sv; +constexpr std::string_view TrustedBlock = "https://URI_VALIDATION/zone2/block"sv; +constexpr std::string_view InternetBlock = "https://URI_VALIDATION/zone3/block"sv; +constexpr std::string_view UntrustedBlock = "https://URI_VALIDATION/zone4/block"sv; + +#define SET_POLICY_STATE(_policy_, _state_) \ + GroupPolicyTestOverride policies; \ + policies.SetState(_policy_, _state_); + +#define SET_ZONE_POLICY_STATE_AND_BLOCK_ZONE(_state_, _zone_) \ + SET_POLICY_STATE(TogglePolicy::Policy::AllowedSecurityZones, _state_); \ + std::map securityZones; \ + securityZones[_zone_] = false; \ + policies.SetValue(securityZones); \ + +#define EXECUTE_CONTEXT_FOR_CONFIGURATION(_uri_) \ + std::ostringstream uriValidationOutput; \ + TestContext context{ uriValidationOutput, std::cin }; \ + context.Args.AddArg(Execution::Args::Type::ConfigurationFile, _uri_); \ + context << ExecuteUriValidation(UriValidationSource::ConfigurationSource); \ + INFO(uriValidationOutput.str()); + +#define EXECUTE_CONTEXT_FOR_PACKAGE_CATALOG_SOURCE(_uri_) \ + std::ostringstream uriValidationOutput; \ + TestContext context{ uriValidationOutput, std::cin }; \ + context.Add(Manifest()); \ + auto source = std::make_shared(); \ + context.Add(TestPackageVersion::Make(context.Get(), source)); \ + ManifestInstaller installer; \ + installer.Url = _uri_; \ + context.Add(std::move(installer)); \ + context << ExecuteUriValidation(UriValidationSource::PackageCatalogSource); \ + INFO(uriValidationOutput.str()); + +TEST_CASE("UriValidationFlow_Configuration_SecurityZonePolicy", "[UriValidationFlow][workflow]") +{ + SECTION("Not configured") + { + SET_POLICY_STATE(TogglePolicy::Policy::AllowedSecurityZones, PolicyState::NotConfigured); + EXECUTE_CONTEXT_FOR_CONFIGURATION(InternetAllow); + REQUIRE(S_OK == context.GetTerminationHR()); + } + + SECTION("Enabled") + { + SET_ZONE_POLICY_STATE_AND_BLOCK_ZONE(PolicyState::Enabled, SecurityZoneOptions::Internet); + EXECUTE_CONTEXT_FOR_CONFIGURATION(InternetAllow); + REQUIRE_TERMINATED_WITH(context, APPINSTALLER_CLI_ERROR_BLOCKED_BY_POLICY); + REQUIRE_OUTPUT_HAS_LOC(uriValidationOutput, Resource::String::UriSecurityZoneBlockedByPolicy); + } + + SECTION("Disabled") + { + SET_ZONE_POLICY_STATE_AND_BLOCK_ZONE(PolicyState::Disabled, SecurityZoneOptions::Internet); + EXECUTE_CONTEXT_FOR_CONFIGURATION(InternetAllow); + REQUIRE(S_OK == context.GetTerminationHR()); + } +} + +TEST_CASE("UriValidationFlow_Configuration_SmartScreen", "[UriValidationFlow][workflow]") +{ + SECTION("Not configured") + { + SET_POLICY_STATE(TogglePolicy::Policy::SmartScreenCheck, PolicyState::NotConfigured); + EXECUTE_CONTEXT_FOR_CONFIGURATION(InternetBlock); + REQUIRE_TERMINATED_WITH(context, APPINSTALLER_CLI_ERROR_BLOCKED_BY_REPUTATION_SERVICE); + REQUIRE_OUTPUT_HAS_LOC(uriValidationOutput, Resource::String::UriBlockedBySmartScreen); + } + + SECTION("Enabled") + { + SET_POLICY_STATE(TogglePolicy::Policy::SmartScreenCheck, PolicyState::Enabled); + EXECUTE_CONTEXT_FOR_CONFIGURATION(InternetBlock); + REQUIRE_TERMINATED_WITH(context, APPINSTALLER_CLI_ERROR_BLOCKED_BY_REPUTATION_SERVICE); + REQUIRE_OUTPUT_HAS_LOC(uriValidationOutput, Resource::String::UriBlockedBySmartScreen); + } + + SECTION("Disabled") + { + SET_POLICY_STATE(TogglePolicy::Policy::SmartScreenCheck, PolicyState::Disabled); + EXECUTE_CONTEXT_FOR_CONFIGURATION(InternetBlock); + REQUIRE(S_OK == context.GetTerminationHR()); + } +} + +TEST_CASE("UriValidationFlow_PackageCatalogSource_SecurityZonePolicy", "[UriValidationFlow][workflow]") +{ + SECTION("Not configured") + { + SET_POLICY_STATE(TogglePolicy::Policy::AllowedSecurityZones, PolicyState::NotConfigured); + EXECUTE_CONTEXT_FOR_PACKAGE_CATALOG_SOURCE(InternetAllow); + REQUIRE(S_OK == context.GetTerminationHR()); + } + + SECTION("Enabled") + { + SET_ZONE_POLICY_STATE_AND_BLOCK_ZONE(PolicyState::Enabled, SecurityZoneOptions::Internet); + EXECUTE_CONTEXT_FOR_PACKAGE_CATALOG_SOURCE(InternetAllow); + REQUIRE_TERMINATED_WITH(context, APPINSTALLER_CLI_ERROR_BLOCKED_BY_POLICY); + REQUIRE_OUTPUT_HAS_LOC(uriValidationOutput, Resource::String::UriSecurityZoneBlockedByPolicy); + } + + SECTION("Disabled") + { + SET_ZONE_POLICY_STATE_AND_BLOCK_ZONE(PolicyState::Disabled, SecurityZoneOptions::Internet); + EXECUTE_CONTEXT_FOR_PACKAGE_CATALOG_SOURCE(InternetAllow); + REQUIRE(S_OK == context.GetTerminationHR()); + } +} + +TEST_CASE("UriValidationFlow_PackageCatalogSource_SmartScreen", "[UriValidationFlow][workflow]") +{ + SECTION("Not configured") + { + SET_POLICY_STATE(TogglePolicy::Policy::SmartScreenCheck, PolicyState::NotConfigured); + EXECUTE_CONTEXT_FOR_PACKAGE_CATALOG_SOURCE(InternetBlock); + REQUIRE_TERMINATED_WITH(context, APPINSTALLER_CLI_ERROR_BLOCKED_BY_REPUTATION_SERVICE); + REQUIRE_OUTPUT_HAS_LOC(uriValidationOutput, Resource::String::UriBlockedBySmartScreen); + } + + SECTION("Enabled") + { + SET_POLICY_STATE(TogglePolicy::Policy::SmartScreenCheck, PolicyState::Enabled); + EXECUTE_CONTEXT_FOR_PACKAGE_CATALOG_SOURCE(InternetBlock); + REQUIRE_TERMINATED_WITH(context, APPINSTALLER_CLI_ERROR_BLOCKED_BY_REPUTATION_SERVICE); + REQUIRE_OUTPUT_HAS_LOC(uriValidationOutput, Resource::String::UriBlockedBySmartScreen); + } + + SECTION("Disabled") + { + SET_POLICY_STATE(TogglePolicy::Policy::SmartScreenCheck, PolicyState::Disabled); + EXECUTE_CONTEXT_FOR_PACKAGE_CATALOG_SOURCE(InternetBlock); + REQUIRE(S_OK == context.GetTerminationHR()); + } +} + +TEST_CASE("UriValidationFlow_SmartScreenZoneRequirement", "[UriValidationFlow][workflow]") +{ + // Smart screen should only be evaluated for Internet and Untrusted zones. + SECTION("Local") + { + SET_POLICY_STATE(TogglePolicy::Policy::SmartScreenCheck, PolicyState::Enabled); + EXECUTE_CONTEXT_FOR_CONFIGURATION(LocalBlock); + REQUIRE(S_OK == context.GetTerminationHR()); + } + + SECTION("Intranet") + { + SET_POLICY_STATE(TogglePolicy::Policy::SmartScreenCheck, PolicyState::Enabled); + EXECUTE_CONTEXT_FOR_CONFIGURATION(IntranetBlock); + REQUIRE(S_OK == context.GetTerminationHR()); + } + + SECTION("Trusted") + { + SET_POLICY_STATE(TogglePolicy::Policy::SmartScreenCheck, PolicyState::Enabled); + EXECUTE_CONTEXT_FOR_CONFIGURATION(TrustedBlock); + REQUIRE(S_OK == context.GetTerminationHR()); + } + + SECTION("Internet") + { + SET_POLICY_STATE(TogglePolicy::Policy::SmartScreenCheck, PolicyState::Enabled); + EXECUTE_CONTEXT_FOR_CONFIGURATION(InternetBlock); + REQUIRE_TERMINATED_WITH(context, APPINSTALLER_CLI_ERROR_BLOCKED_BY_REPUTATION_SERVICE); + REQUIRE_OUTPUT_HAS_LOC(uriValidationOutput, Resource::String::UriBlockedBySmartScreen); + } + + SECTION("Untrusted") + { + SET_POLICY_STATE(TogglePolicy::Policy::SmartScreenCheck, PolicyState::Enabled); + EXECUTE_CONTEXT_FOR_CONFIGURATION(UntrustedBlock); + REQUIRE_TERMINATED_WITH(context, APPINSTALLER_CLI_ERROR_BLOCKED_BY_REPUTATION_SERVICE); + REQUIRE_OUTPUT_HAS_LOC(uriValidationOutput, Resource::String::UriBlockedBySmartScreen); + } +} + +TEST_CASE("UriValidationFlow_BlockedSecurityZoneDoesNotImpactOtherSecurityZones", "[UriValidationFlow][workflow]") +{ + SET_ZONE_POLICY_STATE_AND_BLOCK_ZONE(PolicyState::Enabled, SecurityZoneOptions::Internet); + EXECUTE_CONTEXT_FOR_CONFIGURATION(UntrustedBlock); + REQUIRE_TERMINATED_WITH(context, APPINSTALLER_CLI_ERROR_BLOCKED_BY_REPUTATION_SERVICE); + REQUIRE_OUTPUT_HAS_LOC(uriValidationOutput, Resource::String::UriBlockedBySmartScreen); +} diff --git a/src/AppInstallerCLITests/WorkflowCommon.h b/src/AppInstallerCLITests/WorkflowCommon.h index 8bd5348d2d..ad75213e97 100644 --- a/src/AppInstallerCLITests/WorkflowCommon.h +++ b/src/AppInstallerCLITests/WorkflowCommon.h @@ -13,6 +13,9 @@ REQUIRE(_context_.IsTerminated()); \ REQUIRE(_hr_ == _context_.GetTerminationHR()) +#define REQUIRE_OUTPUT_HAS_LOC(_output_, _resource_) \ + REQUIRE(_output_.str().find(Resource::LocString(_resource_).get()) != std::string::npos); + namespace TestCommon { using namespace std::string_view_literals; diff --git a/src/AppInstallerSharedLib/GroupPolicy.cpp b/src/AppInstallerSharedLib/GroupPolicy.cpp index 862c1ccce4..3921329804 100644 --- a/src/AppInstallerSharedLib/GroupPolicy.cpp +++ b/src/AppInstallerSharedLib/GroupPolicy.cpp @@ -116,6 +116,44 @@ namespace AppInstaller::Settings (FoldHelper{}, ..., Validate(P)>(policiesKey, policies)); } + + template + std::optional::value_t> ReadEnums(const Registry::Key& policiesKey) + { + using Mapping = details::ValuePolicyMapping

; + + auto enumKey = policiesKey.SubKey(Mapping::KeyName); + if (!enumKey.has_value()) + { + return std::nullopt; + } + + typename Mapping::value_t map; + for (const auto& value : enumKey->Values()) + { + std::optional potentialValue = value.Value(); + + if (potentialValue) + { + auto entry = Mapping::ReadAndValidateItem(value); + if (entry.has_value()) + { + map.insert(*entry); + } + else + { + AICLI_LOG(Core, Warning, << "Failed to read Group Policy enum value. Policy [" << Mapping::KeyName << "], Value [" << value.Name() << ']'); + } + } + else + { + AICLI_LOG(Core, Verbose, << "Group Policy enum value not found. Policy [" << Mapping::KeyName << "], Value [" << value.Name() << ']'); + } + } + + return map; + } + // Reads a list from a Group Policy. // The list is stored in a sub-key of the policies key, and each value in that key is a list item. // Cases not considered by this function because we don't use them: @@ -255,9 +293,16 @@ namespace AppInstaller::Settings return ReadList<_policy_>(policiesKey); \ } +#define POLICY_MAPPING_DEFAULT_ENUM_READ(_policy_) \ + std::optional::value_t> ValuePolicyMapping<_policy_>::ReadAndValidate(const Registry::Key& policiesKey) \ + { \ + return ReadEnums<_policy_>(policiesKey); \ + } + POLICY_MAPPING_DEFAULT_LIST_READ(ValuePolicy::AdditionalSources); POLICY_MAPPING_DEFAULT_LIST_READ(ValuePolicy::AllowedSources); POLICY_MAPPING_DEFAULT_READ(ValuePolicy::DefaultProxy); + POLICY_MAPPING_DEFAULT_ENUM_READ(ValuePolicy::AllowedSecurityZones); std::nullopt_t ValuePolicyMapping::ReadAndValidate(const Registry::Key&) { @@ -292,6 +337,27 @@ namespace AppInstaller::Settings { return ReadSourceFromRegistryValue(item); } + + std::optional> ValuePolicyMapping::ReadAndValidateItem(const Registry::ValueList::ValueRef& entry) + { +#define CONFIGURATION_ALLOWED_ZONES_READ(_zone_) \ + if (entry.Name() == #_zone_) \ + { \ + auto data = entry.Value()->TryGetValue(); \ + auto value = data.value_or(true); \ + return std::make_pair(SecurityZoneOptions::_zone_, value); \ + } + + CONFIGURATION_ALLOWED_ZONES_READ(LocalMachine); + CONFIGURATION_ALLOWED_ZONES_READ(Intranet); + CONFIGURATION_ALLOWED_ZONES_READ(TrustedSites); + CONFIGURATION_ALLOWED_ZONES_READ(Internet); + CONFIGURATION_ALLOWED_ZONES_READ(UntrustedSites); +#undef CONFIGURATION_ALLOWED_ZONES_READ + + AICLI_LOG(Core, Warning, << "Unknown value in WindowsPackageManagerAllowedSecurityZones: " << entry.Name()); + return std::nullopt; + } } TogglePolicy TogglePolicy::GetPolicy(TogglePolicy::Policy policy) @@ -326,6 +392,10 @@ namespace AppInstaller::Settings return TogglePolicy(policy, "EnableWindowsPackageManagerConfiguration"sv, String::PolicyEnableWinGetConfiguration); case TogglePolicy::Policy::ProxyCommandLineOptions: return TogglePolicy(policy, "EnableWindowsPackageManagerProxyCommandLineOptions"sv, String::PolicyEnableProxyCommandLineOptions); + case TogglePolicy::Policy::AllowedSecurityZones: + return TogglePolicy(policy, "EnableWindowsPackageManagerAllowedSecurityZones"sv, String::PolicyEnableAllowedSecurityZones); + case TogglePolicy::Policy::SmartScreenCheck: + return TogglePolicy(policy, "EnableWindowsPackageManagerSmartScreenCheck"sv, String::PolicyEnableSmartScreenValidation); default: THROW_HR(E_UNEXPECTED); } diff --git a/src/AppInstallerSharedLib/Public/AppInstallerErrors.h b/src/AppInstallerSharedLib/Public/AppInstallerErrors.h index d00bc8a18a..463d2f2ae1 100644 --- a/src/AppInstallerSharedLib/Public/AppInstallerErrors.h +++ b/src/AppInstallerSharedLib/Public/AppInstallerErrors.h @@ -152,6 +152,7 @@ #define APPINSTALLER_CLI_ERROR_SFSCLIENT_PACKAGE_NOT_SUPPORTED ((HRESULT)0x8A150084) #define APPINSTALLER_CLI_ERROR_LICENSING_API_FAILED_FORBIDDEN ((HRESULT)0x8A150085) #define APPINSTALLER_CLI_ERROR_INSTALLER_ZERO_BYTE_FILE ((HRESULT)0x8A150086) +#define APPINSTALLER_CLI_ERROR_BLOCKED_BY_REPUTATION_SERVICE ((HRESULT)0x8A150087) // Install errors. #define APPINSTALLER_CLI_ERROR_INSTALL_PACKAGE_IN_USE ((HRESULT)0x8A150101) diff --git a/src/AppInstallerSharedLib/Public/winget/GroupPolicy.h b/src/AppInstallerSharedLib/Public/winget/GroupPolicy.h index 850526f60c..d91bab156a 100644 --- a/src/AppInstallerSharedLib/Public/winget/GroupPolicy.h +++ b/src/AppInstallerSharedLib/Public/winget/GroupPolicy.h @@ -23,9 +23,20 @@ namespace AppInstaller::Settings AdditionalSources, AllowedSources, DefaultProxy, + AllowedSecurityZones, Max, }; + // Enum for the configurable security zones + enum class SecurityZoneOptions : DWORD + { + LocalMachine = 0, + Intranet = 1, + TrustedSites = 2, + Internet = 3, + UntrustedSites = 4, + }; + // A policy that acts as a toggle to enable or disable a feature. // They are backed by a DWORD value with values 0 and 1. struct TogglePolicy @@ -47,6 +58,8 @@ namespace AppInstaller::Settings WinGetCommandLineInterfaces, Configuration, ProxyCommandLineOptions, + AllowedSecurityZones, + SmartScreenCheck, Max, }; @@ -113,6 +126,12 @@ namespace AppInstaller::Settings // item_t - Type of each item // KeyName -- Name of the sub-key containing the list // ReadAndValidateItem() - Function that reads a single item from a subkey + + // For enums: + // KeyName - Name of the sub-key containing the enums + // _mapTypeKey_ - Type of the key in the map + // _mapTypeValue_ - Type of the value in the map + // _mapTypeName_ - Name of the map type }; template<> @@ -149,11 +168,20 @@ namespace AppInstaller::Settings static std::optional ReadAndValidateItem(const Registry::Value& item); \ ) +#define POLICY_MAPPING_ENUM_SPECIALIZATION(_policy_, _mapTypeName_, _mapTypeKey_, _mapTypeValue_, _keyName_) \ + typedef std::map<_mapTypeKey_, _mapTypeValue_> _mapTypeName_; \ + POLICY_MAPPING_SPECIALIZATION(_policy_, _mapTypeName_, \ + static constexpr std::string_view KeyName = _keyName_; \ + static std::optional ReadAndValidateItem(const Registry::ValueList::ValueRef& item); \ + ) + POLICY_MAPPING_VALUE_SPECIALIZATION(ValuePolicy::SourceAutoUpdateIntervalInMinutes, uint32_t, "SourceAutoUpdateInterval"sv, Registry::Value::Type::DWord); POLICY_MAPPING_VALUE_SPECIALIZATION(ValuePolicy::DefaultProxy, std::string, "DefaultProxy"sv, Registry::Value::Type::String); POLICY_MAPPING_LIST_SPECIALIZATION(ValuePolicy::AdditionalSources, SourceFromPolicy, "AdditionalSources"sv); POLICY_MAPPING_LIST_SPECIALIZATION(ValuePolicy::AllowedSources, SourceFromPolicy, "AllowedSources"sv); + + POLICY_MAPPING_ENUM_SPECIALIZATION(ValuePolicy::AllowedSecurityZones, SecurityZoneMap_t, SecurityZoneOptions, bool, "WindowsPackageManagerAllowedSecurityZones"sv); } // Representation of the policies read from the registry. diff --git a/src/AppInstallerSharedLib/Public/winget/Resources.h b/src/AppInstallerSharedLib/Public/winget/Resources.h index dc6591abd0..081e30f33f 100644 --- a/src/AppInstallerSharedLib/Public/winget/Resources.h +++ b/src/AppInstallerSharedLib/Public/winget/Resources.h @@ -60,6 +60,8 @@ namespace AppInstaller WINGET_DEFINE_RESOURCE_STRINGID(PolicyEnableWindowsPackageManagerCommandLineInterfaces); WINGET_DEFINE_RESOURCE_STRINGID(PolicyEnableWinGetConfiguration); WINGET_DEFINE_RESOURCE_STRINGID(PolicyEnableProxyCommandLineOptions); + WINGET_DEFINE_RESOURCE_STRINGID(PolicyEnableAllowedSecurityZones); + WINGET_DEFINE_RESOURCE_STRINGID(PolicyEnableSmartScreenValidation); WINGET_DEFINE_RESOURCE_STRINGID(SettingsWarningInvalidFieldFormat); WINGET_DEFINE_RESOURCE_STRINGID(SettingsWarningInvalidFieldValue); diff --git a/src/Internal/UriValidation/.gitignore b/src/Internal/UriValidation/.gitignore new file mode 100644 index 0000000000..a19a3d9a13 --- /dev/null +++ b/src/Internal/UriValidation/.gitignore @@ -0,0 +1,4 @@ +# The following files are injected in the pipeline build +packages.config +UriValidation.props +UriValidation_internal.cpp \ No newline at end of file diff --git a/src/Internal/UriValidation/UriValidation.cpp b/src/Internal/UriValidation/UriValidation.cpp new file mode 100644 index 0000000000..8599606f88 --- /dev/null +++ b/src/Internal/UriValidation/UriValidation.cpp @@ -0,0 +1,34 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +#include "UriValidation.h" + +namespace AppInstaller::UriValidation +{ + namespace + { + bool EndsWith(const std::string& value, const std::string& ending) + { + if (ending.size() > value.size()) + { + return false; + } + + return std::equal(ending.rbegin(), ending.rend(), value.rbegin()); + } + } + + UriValidationResult ValidateUri(const std::string& uri) + { +#ifndef AICLI_DISABLE_TEST_HOOKS + // For testing purposes, block all URIs that end with "/block" + if (EndsWith(uri, "/block")) + { + return UriValidationResult(UriValidationDecision::Block, std::string()); + } +#endif + + // In Dev mode, allow all URIs + return UriValidationResult(UriValidationDecision::Allow, std::string()); + } +} diff --git a/src/Internal/UriValidation/UriValidation.h b/src/Internal/UriValidation/UriValidation.h new file mode 100644 index 0000000000..b8676c4450 --- /dev/null +++ b/src/Internal/UriValidation/UriValidation.h @@ -0,0 +1,34 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. +#pragma once + +#include + +namespace AppInstaller::UriValidation +{ + // The decision made based on the Uri validation. + enum class UriValidationDecision + { + Allow, + Block, + }; + + // The result of a Uri validation. + class UriValidationResult + { + public: + UriValidationResult(UriValidationDecision decision) : m_decision(decision), m_feedback(std::string()) {} + UriValidationResult(UriValidationDecision decision, std::string feedback) : m_decision(decision), m_feedback(feedback) {} + UriValidationDecision Decision() const { return m_decision; } + std::string Feedback() const { return m_feedback; } + private: + // The decision made based on the Uri validation. + UriValidationDecision m_decision; + + // Uri to give feedback to smart screen about the decision. + std::string m_feedback; + }; + + // Validate the given Uri. + UriValidationResult ValidateUri(const std::string& uri); +} diff --git a/src/Internal/UriValidation/UriValidation.vcxproj b/src/Internal/UriValidation/UriValidation.vcxproj new file mode 100644 index 0000000000..48cfe3d68c --- /dev/null +++ b/src/Internal/UriValidation/UriValidation.vcxproj @@ -0,0 +1,414 @@ + + + + + + true + true + true + 15.0 + {98920ab6-27b0-4c0f-b336-fa49de57a1ba} + Win32Proj + UriValidation + 10.0.22621.0 + 10.0.17763.0 + true + true + + + + + Debug + ARM + + + Debug + ARM64 + + + Debug + Win32 + + + Fuzzing + x64 + + + Fuzzing + Win32 + + + ReleaseStatic + ARM + + + ReleaseStatic + ARM64 + + + ReleaseStatic + Win32 + + + ReleaseStatic + x64 + + + Release + ARM + + + Release + ARM64 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + StaticLibrary + v140 + v141 + v142 + v143 + Unicode + + + true + true + + + false + true + false + + + false + true + false + + + false + false + false + true + + + Spectre + + + Spectre + + + Spectre + + + Spectre + + + Spectre + + + Spectre + + + Spectre + + + Spectre + + + + + + + + + + + + true + $(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\ + true + true + ..\..\CodeAnalysis.ruleset + + + true + $(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\ + true + true + ..\..\CodeAnalysis.ruleset + + + true + $(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\ + true + true + ..\..\CodeAnalysis.ruleset + + + true + $(SolutionDir)x86\$(Configuration)\$(ProjectName)\ + true + true + ..\..\CodeAnalysis.ruleset + + + false + $(SolutionDir)x86\$(Configuration)\$(ProjectName)\ + true + false + ..\..\CodeAnalysis.ruleset + + + false + $(SolutionDir)x86\$(Configuration)\$(ProjectName)\ + true + false + ..\..\CodeAnalysis.ruleset + + + false + $(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\ + true + false + ..\..\CodeAnalysis.ruleset + + + false + $(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\ + true + false + ..\..\CodeAnalysis.ruleset + + + false + $(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\ + + + false + $(SolutionDir)x86\$(Configuration)\$(ProjectName)\ + + + false + $(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\ + true + false + ..\..\CodeAnalysis.ruleset + + + false + $(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\ + true + false + ..\..\CodeAnalysis.ruleset + + + false + $(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\ + true + false + ..\..\CodeAnalysis.ruleset + + + false + $(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\ + true + false + ..\..\CodeAnalysis.ruleset + + + + NotUsing + _CONSOLE;%(PreprocessorDefinitions) + Level4 + %(AdditionalOptions) /permissive- /D _SILENCE_CXX17_ITERATOR_BASE_CLASS_DEPRECATION_WARNING + + + + + Disabled + _NO_ASYNCRTIMP;_SILENCE_STDEXT_ARR_ITERS_DEPRECATION_WARNING;_DEBUG;%(PreprocessorDefinitions);CLICOREDLLBUILD + $(ProjectDir);$(ProjectDir)..\..\AppInstallerSharedLib;$(ProjectDir)..\..\AppInstallerSharedLib\Public;%(AdditionalIncludeDirectories) + $(ProjectDir);$(ProjectDir)..\..\AppInstallerSharedLib;$(ProjectDir)..\..\AppInstallerSharedLib\Public;%(AdditionalIncludeDirectories) + $(ProjectDir);$(ProjectDir)..\..\AppInstallerSharedLib;$(ProjectDir)..\..\AppInstallerSharedLib\Public;%(AdditionalIncludeDirectories) + true + true + true + true + true + true + true + true + true + false + false + false + + + false + Windows + Windows + Windows + + + + + _NO_ASYNCRTIMP;_SILENCE_STDEXT_ARR_ITERS_DEPRECATION_WARNING;WIN32;%(PreprocessorDefinitions);CLICOREDLLBUILD + $(ProjectDir);$(ProjectDir)..\..\AppInstallerSharedLib;$(ProjectDir)..\..\AppInstallerSharedLib\Public;%(AdditionalIncludeDirectories) + true + true + true + false + + + Windows + + + + + MaxSpeed + true + true + _NO_ASYNCRTIMP;_SILENCE_STDEXT_ARR_ITERS_DEPRECATION_WARNING;NDEBUG;%(PreprocessorDefinitions);CLICOREDLLBUILD + $(ProjectDir);$(ProjectDir)..\..\AppInstallerSharedLib;$(ProjectDir)..\..\AppInstallerSharedLib\Public;%(AdditionalIncludeDirectories) + $(ProjectDir);$(ProjectDir)..\..\AppInstallerSharedLib;$(ProjectDir)..\..\AppInstallerSharedLib\Public;%(AdditionalIncludeDirectories) + $(ProjectDir);$(ProjectDir)..\..\AppInstallerSharedLib;$(ProjectDir)..\..\AppInstallerSharedLib\Public;%(AdditionalIncludeDirectories) + $(ProjectDir);$(ProjectDir)..\..\AppInstallerSharedLib;$(ProjectDir)..\..\AppInstallerSharedLib\Public;%(AdditionalIncludeDirectories) + true + true + true + true + true + true + true + true + false + false + false + false + false + false + false + false + + + true + true + false + Windows + Windows + Windows + Windows + + + + + MaxSpeed + true + true + _NO_ASYNCRTIMP;_SILENCE_STDEXT_ARR_ITERS_DEPRECATION_WARNING;NDEBUG;%(PreprocessorDefinitions);CLICOREDLLBUILD + $(ProjectDir);$(ProjectDir)..\..\AppInstallerSharedLib;$(ProjectDir)..\..\AppInstallerSharedLib\Public;%(AdditionalIncludeDirectories) + $(ProjectDir);$(ProjectDir)..\..\AppInstallerSharedLib;$(ProjectDir)..\..\AppInstallerSharedLib\Public;%(AdditionalIncludeDirectories) + $(ProjectDir);$(ProjectDir)..\..\AppInstallerSharedLib;$(ProjectDir)..\..\AppInstallerSharedLib\Public;%(AdditionalIncludeDirectories) + $(ProjectDir);$(ProjectDir)..\..\AppInstallerSharedLib;$(ProjectDir)..\..\AppInstallerSharedLib\Public;%(AdditionalIncludeDirectories) + true + true + true + true + true + true + true + true + false + false + false + false + MultiThreaded + MultiThreaded + MultiThreaded + MultiThreaded + false + false + false + false + + + true + true + false + Windows + Windows + Windows + Windows + + + + + MaxSpeed + true + true + _NO_ASYNCRTIMP;NDEBUG;%(PreprocessorDefinitions);CLICOREDLLBUILD;WINGET_DISABLE_FOR_FUZZING;_DISABLE_VECTOR_ANNOTATION;_DISABLE_STRING_ANNOTATION + $(ProjectDir);$(ProjectDir)..\..\AppInstallerSharedLib;$(ProjectDir)..\..\AppInstallerSharedLib\Public;%(AdditionalIncludeDirectories) + true + stdcpp17 + MultiThreaded + %(AdditionalOptions) /fsanitize=address /fsanitize-coverage=inline-8bit-counters /fsanitize-coverage=edge /fsanitize-coverage=trace-cmp /fsanitize-coverage=trace-div + false + + + true + true + false + Windows + + + + + AICLI_DISABLE_TEST_HOOKS;%(PreprocessorDefinitions) + + + + + WINGET_DISABLE_EXPERIMENTAL_FEATURES;%(PreprocessorDefinitions) + + + + + WINGET_ENABLE_RELEASE_BUILD;%(PreprocessorDefinitions) + + + + + + + + + + + + + + + + + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + \ No newline at end of file diff --git a/src/Internal/UriValidation/UriValidation.vcxproj.filters b/src/Internal/UriValidation/UriValidation.vcxproj.filters new file mode 100644 index 0000000000..01ce4a95da --- /dev/null +++ b/src/Internal/UriValidation/UriValidation.vcxproj.filters @@ -0,0 +1,36 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Header Files + + + + + Source Files + + + Source Files + + + + + + + + + \ No newline at end of file diff --git a/src/WindowsPackageManager/WindowsPackageManager.vcxproj b/src/WindowsPackageManager/WindowsPackageManager.vcxproj index 510d07aa61..c2f46098e8 100644 --- a/src/WindowsPackageManager/WindowsPackageManager.vcxproj +++ b/src/WindowsPackageManager/WindowsPackageManager.vcxproj @@ -17,6 +17,7 @@ . + @@ -219,7 +220,8 @@ true false $(ProjectDir)..\vcpkg_installed - + + x64-release-static @@ -519,6 +521,9 @@ {866c3f06-636f-4be8-bc24-5f86ecc606a1} + + {98920ab6-27b0-4c0f-b336-fa49de57a1ba} + {82b39fda-e86b-4713-a873-9d56de00247a} @@ -551,4 +556,4 @@ - + \ No newline at end of file