diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 00000000..fd05618e --- /dev/null +++ b/.editorconfig @@ -0,0 +1,202 @@ +# Rules in this file were initially inferred by Visual Studio IntelliCode from the Template Studio codebase. +# You can modify the rules from these initially generated values to suit your own policies. +# You can learn more about editorconfig here: https://docs.microsoft.com/en-us/visualstudio/ide/editorconfig-code-style-settings-reference. + +[*.cs] + +#Core editorconfig formatting - indentation + +#use soft tabs (spaces) for indentation +indent_style = space + +#Formatting - new line options + +#place else statements on a new line +csharp_new_line_before_else = true +#require braces to be on a new line for lambdas, methods, control_blocks, types, properties, and accessors (also known as "Allman" style) +csharp_new_line_before_open_brace = all + +#Formatting - organize using options + +#sort System.* using directives alphabetically, and place them before other usings +dotnet_sort_system_directives_first = true + +#Formatting - spacing options + +#require NO space between a cast and the value +csharp_space_after_cast = false +#require a space before the colon for bases or interfaces in a type declaration +csharp_space_after_colon_in_inheritance_clause = true +#require a space after a keyword in a control flow statement such as a for loop +csharp_space_after_keywords_in_control_flow_statements = true +#require a space before the colon for bases or interfaces in a type declaration +csharp_space_before_colon_in_inheritance_clause = true +#remove space within empty argument list parentheses +csharp_space_between_method_call_empty_parameter_list_parentheses = false +#remove space between method call name and opening parenthesis +csharp_space_between_method_call_name_and_opening_parenthesis = false +#do not place space characters after the opening parenthesis and before the closing parenthesis of a method call +csharp_space_between_method_call_parameter_list_parentheses = false +#remove space within empty parameter list parentheses for a method declaration +csharp_space_between_method_declaration_empty_parameter_list_parentheses = false +#place a space character after the opening parenthesis and before the closing parenthesis of a method declaration parameter list. +csharp_space_between_method_declaration_parameter_list_parentheses = false + +#Formatting - wrapping options + +#leave code block on separate lines +csharp_preserve_single_line_blocks = false + +#Style - Code block preferences + +#prefer curly braces even for one line of code +csharp_prefer_braces = true:suggestion + +#Style - expression bodied member options + +#prefer expression bodies for accessors +csharp_style_expression_bodied_accessors = true:warning +#prefer block bodies for constructors +csharp_style_expression_bodied_constructors = false:suggestion +#prefer expression bodies for methods +csharp_style_expression_bodied_methods = when_on_single_line:silent +#prefer expression-bodied members for properties +csharp_style_expression_bodied_properties = true:warning + +#Style - expression level options + +#prefer out variables to be declared before the method call +csharp_style_inlined_variable_declaration = false:suggestion +#prefer the language keyword for member access expressions, instead of the type name, for types that have a keyword to represent them +dotnet_style_predefined_type_for_member_access = true:suggestion + +#Style - Expression-level preferences + +#prefer default over default(T) +csharp_prefer_simple_default_expression = true:suggestion +#prefer objects to be initialized using object initializers when possible +dotnet_style_object_initializer = true:suggestion + +#Style - implicit and explicit types + +#prefer var over explicit type in all cases, unless overridden by another code style rule +csharp_style_var_elsewhere = true:suggestion +#prefer var is used to declare variables with built-in system types such as int +csharp_style_var_for_built_in_types = true:suggestion +#prefer var when the type is already mentioned on the right-hand side of a declaration expression +csharp_style_var_when_type_is_apparent = true:suggestion + +#Style - language keyword and framework type options + +#prefer the language keyword for local variables, method parameters, and class members, instead of the type name, for types that have a keyword to represent them +dotnet_style_predefined_type_for_locals_parameters_members = true:suggestion + +#Style - Language rules +csharp_style_implicit_object_creation_when_type_is_apparent = true:warning +csharp_style_var_for_built_in_types = true:warning + +#Style - modifier options + +#prefer accessibility modifiers to be declared except for public interface members. This will currently not differ from always and will act as future proofing for if C# adds default interface methods. +dotnet_style_require_accessibility_modifiers = for_non_interface_members:suggestion + +#Style - Modifier preferences + +#when this rule is set to a list of modifiers, prefer the specified ordering. +csharp_preferred_modifier_order = public,private,protected,internal,static,async,readonly,override,sealed,abstract,virtual:warning +dotnet_style_readonly_field = true:warning + +#Style - Pattern matching + +#prefer pattern matching instead of is expression with type casts +csharp_style_pattern_matching_over_as_with_null_check = true:warning + +#Style - qualification options + +#prefer events not to be prefaced with this. or Me. in Visual Basic +dotnet_style_qualification_for_event = false:suggestion +#prefer fields not to be prefaced with this. or Me. in Visual Basic +dotnet_style_qualification_for_field = false:suggestion +#prefer methods not to be prefaced with this. or Me. in Visual Basic +dotnet_style_qualification_for_method = false:suggestion +#prefer properties not to be prefaced with this. or Me. in Visual Basic +dotnet_style_qualification_for_property = false:suggestion +csharp_indent_labels = one_less_than_current +csharp_using_directive_placement = outside_namespace:silent +csharp_prefer_simple_using_statement = true:warning +csharp_style_namespace_declarations = file_scoped:warning +csharp_style_expression_bodied_operators = false:silent +csharp_style_expression_bodied_indexers = true:silent +csharp_style_expression_bodied_lambdas = true:silent +csharp_style_expression_bodied_local_functions = false:silent + +[*.{cs,vb}] +dotnet_style_operator_placement_when_wrapping = beginning_of_line +tab_width = 4 +indent_size = 4 +end_of_line = crlf +dotnet_style_coalesce_expression = true:suggestion +dotnet_style_null_propagation = true:suggestion +dotnet_style_prefer_is_null_check_over_reference_equality_method = true:suggestion +dotnet_style_prefer_auto_properties = true:silent +dotnet_style_object_initializer = true:suggestion +dotnet_style_collection_initializer = true:suggestion +dotnet_style_prefer_simplified_boolean_expressions = true:suggestion +dotnet_style_prefer_conditional_expression_over_assignment = true:silent +dotnet_style_prefer_conditional_expression_over_return = true:silent +[*.{cs,vb}] + +#Style - Unnecessary code rules +csharp_style_unused_value_assignment_preference = discard_variable:warning + +#### Naming styles #### + +# Naming rules + +dotnet_naming_rule.interface_should_be_begins_with_i.severity = suggestion +dotnet_naming_rule.interface_should_be_begins_with_i.symbols = interface +dotnet_naming_rule.interface_should_be_begins_with_i.style = begins_with_i + +dotnet_naming_rule.types_should_be_pascal_case.severity = suggestion +dotnet_naming_rule.types_should_be_pascal_case.symbols = types +dotnet_naming_rule.types_should_be_pascal_case.style = pascal_case + +dotnet_naming_rule.non_field_members_should_be_pascal_case.severity = suggestion +dotnet_naming_rule.non_field_members_should_be_pascal_case.symbols = non_field_members +dotnet_naming_rule.non_field_members_should_be_pascal_case.style = pascal_case + +# Symbol specifications + +dotnet_naming_symbols.interface.applicable_kinds = interface +dotnet_naming_symbols.interface.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected +dotnet_naming_symbols.interface.required_modifiers = + +dotnet_naming_symbols.types.applicable_kinds = class, struct, interface, enum +dotnet_naming_symbols.types.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected +dotnet_naming_symbols.types.required_modifiers = + +dotnet_naming_symbols.non_field_members.applicable_kinds = property, event, method +dotnet_naming_symbols.non_field_members.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected +dotnet_naming_symbols.non_field_members.required_modifiers = + +# Naming styles + +dotnet_naming_style.begins_with_i.required_prefix = I +dotnet_naming_style.begins_with_i.required_suffix = +dotnet_naming_style.begins_with_i.word_separator = +dotnet_naming_style.begins_with_i.capitalization = pascal_case + +dotnet_naming_style.pascal_case.required_prefix = +dotnet_naming_style.pascal_case.required_suffix = +dotnet_naming_style.pascal_case.word_separator = +dotnet_naming_style.pascal_case.capitalization = pascal_case + +dotnet_naming_style.pascal_case.required_prefix = +dotnet_naming_style.pascal_case.required_suffix = +dotnet_naming_style.pascal_case.word_separator = +dotnet_naming_style.pascal_case.capitalization = pascal_case +dotnet_style_explicit_tuple_names = true:suggestion +dotnet_style_prefer_inferred_tuple_names = true:suggestion +dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion +dotnet_style_prefer_compound_assignment = true:warning +dotnet_style_prefer_simplified_interpolation = true:suggestion diff --git a/.vsconfig b/.vsconfig new file mode 100644 index 00000000..65d1f73d --- /dev/null +++ b/.vsconfig @@ -0,0 +1,16 @@ +{ + "version": "1.0", + "components": [ + "Microsoft.Component.MSBuild", + "Microsoft.NetCore.Component.Runtime.7.0", + "Microsoft.NetCore.Component.SDK", + "Microsoft.VisualStudio.Component.ManagedDesktop.Core", + "Microsoft.VisualStudio.Component.ManagedDesktop.Prerequisites", + "Microsoft.VisualStudio.Component.NuGet", + "Microsoft.VisualStudio.Component.Windows10SDK.19041", + "Microsoft.VisualStudio.Component.Windows10SDK", + "Microsoft.VisualStudio.ComponentGroup.MSIX.Packaging", + "Microsoft.VisualStudio.ComponentGroup.WindowsAppSDK.Cs", + "Microsoft.VisualStudio.Workload.ManagedDesktop" + ] +} diff --git a/WinClassicSamplesCS.sln b/WinClassicSamplesCS.sln deleted file mode 100644 index 81553974..00000000 --- a/WinClassicSamplesCS.sln +++ /dev/null @@ -1,2076 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.1.32210.238 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ExplorerBrowserSearch", "Win7Samples\winui\shell\appplatform\ExplorerBrowserSearch\ExplorerBrowserSearch.csproj", "{BF35499A-12D1-4BEE-90C1-9C74F5236741}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ExplorerBrowserCustomContents", "Win7Samples\winui\shell\appplatform\ExplorerBrowserCustomContents\ExplorerBrowserCustomContents.csproj", "{DFE20AAB-EA60-4401-9FE5-C2D32F81BC11}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ChangeNotifyWatcher", "Win7Samples\winui\shell\appplatform\ChangeNotifyWatcher\ChangeNotifyWatcher.csproj", "{CBA2C308-CD96-407F-ACB3-B83AD7CA0B08}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Win7Samples", "Win7Samples", "{F64D0F04-967C-4AC2-92C0-C93C4C04AFAA}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "winui", "winui", "{A74C6952-488E-4926-BE04-E17684FDAA0C}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "shell", "shell", "{49EF5E85-E0CD-47CA-9489-2434649CA6FD}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "appplatform", "appplatform", "{EC86EA97-FDE0-44A0-8A95-F0076988987F}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "searchfolder", "Win7Samples\winui\shell\appplatform\searchfolder\searchfolder.csproj", "{8C0538E7-6662-4508-960F-F0193A0E02E6}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ExecInExplorer", "Win7Samples\winui\shell\appplatform\ExecInExplorer\ExecInExplorer.csproj", "{B3108BC1-2E87-4155-9B80-6D4DDD6C7D01}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "fileisinuse", "Win7Samples\winui\shell\appplatform\fileisinuse\fileisinuse.csproj", "{5419B69C-7DBE-4006-B62F-38BC06935A6A}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "appshellintegration", "appshellintegration", "{DF85BF81-EE96-41EF-AA3F-ED1EAE463619}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AutomaticJumpList", "Win7Samples\winui\shell\appshellintegration\AutomaticJumpList\AutomaticJumpList.csproj", "{095A4A6A-6A1D-4493-AC12-527199274635}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CustomJumpList", "Win7Samples\winui\shell\appshellintegration\CustomJumpList\CustomJumpList.csproj", "{4BFC28A4-20D7-487E-AEFB-EAD48D7BB01C}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DropTargetVerb", "Win7Samples\winui\shell\appshellintegration\DropTargetVerb\DropTargetVerb.csproj", "{614B6038-7A52-407E-B48C-79817C1F7669}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PlaylistCreator", "Win7Samples\winui\shell\appshellintegration\PlaylistCreator\PlaylistCreator.csproj", "{1294BA2E-698E-4B71-9437-55088B620849}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "fileoperations", "Win7Samples\winui\shell\appplatform\fileoperations\fileoperations.csproj", "{C3176341-2229-42A7-A9DF-846CB8C360A9}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ParsingWithParameters", "Win7Samples\winui\shell\appplatform\ParsingWithParameters\ParsingWithParameters.csproj", "{4FBDBE52-2844-47F0-8D2E-CA06234E76A8}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sampler", "Sampler\Sampler.csproj", "{42D061DF-6C64-4907-B23B-38EAAE1EC701}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "security", "security", "{3F7A94C8-F84A-43A3-9276-B2F5F3047394}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "lsapolicy", "lsapolicy", "{057BB3A2-3548-4B4A-8D5E-B6E527D0BD3B}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "lsaprivs", "Win7Samples\security\lsapolicy\lsaprivs\lsaprivs.csproj", "{0BF5C2B5-0F01-48B5-BE4E-5E3E13D149A6}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "machacct", "Win7Samples\security\lsapolicy\machacct\machacct.csproj", "{9EC5AB81-93F6-4150-9F67-61A0C2207E27}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "authorization", "authorization", "{EF89CDDF-DD30-43FF-A14D-05EFA08FE508}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "aclapi", "Win7Samples\security\authorization\aclapi\aclapi.csproj", "{946AC805-126B-489D-BADF-D9823955E482}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "audit", "Win7Samples\security\authorization\audit\audit.csproj", "{B5CB45DC-4DED-4EE2-9242-3F7B0EAEAF58}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "authz", "Win7Samples\security\authorization\authz\authz.csproj", "{86EB6286-8842-4D4C-896B-BB7E5BB5D6D6}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "azman", "Win7Samples\security\authorization\azman\azman.csproj", "{69DA869D-1797-4417-8102-F02D3AD7C029}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "klist", "Win7Samples\security\authorization\klist\klist.csproj", "{DF8723BA-89E4-455F-8D0D-61859E6F4631}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "mytoken", "Win7Samples\security\authorization\mytoken\mytoken.csproj", "{50646A7D-3564-442A-A08C-CCAF3FAA64D4}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "secprint", "Win7Samples\security\authorization\secprint\secprint.csproj", "{D2EBE7E5-3679-471F-812D-77A3997C6BD3}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "securobj", "Win7Samples\security\authorization\securobj\securobj.csproj", "{8FE2DF3A-4675-4577-AC0C-77D8BF8841CB}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "textsid", "Win7Samples\security\authorization\textsid\textsid.csproj", "{DD455B6C-392A-4D04-A031-46D491722A9F}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "WindowsSearch", "WindowsSearch", "{3B612B74-8DF0-4B45-8C49-4883022467C2}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "StructuredQuerySample", "Win7Samples\winui\WindowsSearch\StructuredQuerySample\StructuredQuerySample.csproj", "{88514BF5-4E9B-4781-8F11-5A181E287BA2}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DSearch", "Win7Samples\winui\WindowsSearch\DSearch\DSearch.csproj", "{B0DAF5CC-6B09-48EE-9438-99BE81AC704C}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IFilterSample", "Win7Samples\winui\WindowsSearch\IFilterSample\IFilterSample.csproj", "{CC44E5B9-E246-44FE-81B3-82394BF84707}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SearchEvents", "Win7Samples\winui\WindowsSearch\SearchEvents\SearchEvents.csproj", "{A31CF827-F17B-48C1-9EB1-31D2EF87BD66}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "cryptoapi", "cryptoapi", "{5FFDBDCB-7524-438E-9C4F-4FA4A9CF13A8}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BuildChain", "Win7Samples\security\cryptoapi\BuildChain\BuildChain.csproj", "{1721B3E2-4CE8-4FAF-A00B-766478F60B54}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CertSelect", "Win7Samples\security\cryptoapi\CertSelect\CertSelect.csproj", "{6E4E4DF1-9A3E-4DB6-98BC-6784125A8FF5}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CertSign", "Win7Samples\security\cryptoapi\CertSign\CertSign.csproj", "{6B9F3B39-7CDA-46ED-BAFC-F54A57792597}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CreateCertificate", "Win7Samples\security\cryptoapi\CreateCertificate\CreateCertificate.csproj", "{17C03355-60EB-4A66-A62B-DF2A8407FF8F}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "encrypt", "Win7Samples\security\cryptoapi\encrypt\encrypt.csproj", "{38087D48-66EF-4379-9989-CA6F2CA7DAC9}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "encryptmessage", "Win7Samples\security\cryptoapi\encryptmessage\encryptmessage.csproj", "{ADECA52F-A04F-4A8F-812E-59A9FBE3EC68}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "enumalgs", "Win7Samples\security\cryptoapi\enumalgs\enumalgs.csproj", "{6AD1E7B2-B9A7-497C-A61D-21C6FCE9F3BC}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "signhash", "Win7Samples\security\cryptoapi\signhash\signhash.csproj", "{097E5E27-6233-45BC-9C76-81C9ECF34DE2}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WinsockBluetoothConnection", "WinsockBluetoothConnection\WinsockBluetoothConnection.csproj", "{5F006E2E-82A2-4696-81DF-DF7501622BFE}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BacgroundIntelligenceTransferServicePolicy", "BacgroundIntelligenceTransferServicePolicy\BacgroundIntelligenceTransferServicePolicy.csproj", "{302CEFC1-3011-4B2A-B443-EA6FA0C0B4FD}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BackgroundCopyFileProperties", "BackgroundCopyFileProperties\BackgroundCopyFileProperties.csproj", "{313955BB-513D-43BD-9367-938635B9AC9A}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConnectionManagerCost", "ConnectionManagerCost\ConnectionManagerCost.csproj", "{17A3F4FC-4BE8-4865-BBD3-50116CE7599B}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DNSAsyncNetworkNameResolution", "DNSAsyncNetworkNameResolution\DNSAsyncNetworkNameResolution.csproj", "{782CFC81-0B0E-4722-B685-52B3CC137060}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DesktopToasts", "DesktopToasts\DesktopToasts.csproj", "{331269B7-C7F6-453F-98FB-D59516C6044E}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DNSAsyncQuery", "DNSAsyncQuery\DNSAsyncQuery.csproj", "{678455CA-F4F2-4285-B414-E220026C4AA7}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NetworkCost", "NetworkCost\NetworkCost.csproj", "{45B91ECD-3F16-401F-BA6F-DE4E42661EAC}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CloudMirror", "CloudMirror\CloudMirror.csproj", "{50300F25-6B64-4869-9684-CB14D44E468A}" -EndProject -Project("{C7167F0D-BC9F-4E6E-AFE1-012C56B48DB5}") = "CloudMirrorPackage", "CloudMirrorPackage\CloudMirrorPackage.wapproj", "{1FAB5D02-237C-4B9C-B820-2EB7C3B6E63A}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProjectedFileSystem", "ProjectedFileSystem\ProjectedFileSystem.csproj", "{EB4659EE-9D90-4413-A9E2-301715CAF4EF}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AppVisibility", "AppVisibility\AppVisibility.csproj", "{E5A7F376-432F-44DB-94A7-A14A2D4E5C4B}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DesktopAutomationDismiss", "DesktopAutomationDismiss\DesktopAutomationDismiss.csproj", "{8CE621E6-B633-4957-8D64-508F54461DF0}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MagnificationWindowed", "MagnificationWindowed\MagnificationWindowed.csproj", "{4451ED6E-508F-4627-987A-699C19A48DE5}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MagnificationFullscreen", "MagnificationFullscreen\MagnificationFullscreen.csproj", "{C1BE10FD-E8E1-47C7-94A9-90A24443A3CE}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GroupChat", "Win7Samples\netds\peertopeer\GroupChat\GroupChat.csproj", "{934740D8-9853-4EF7-AD9E-1A090329E70E}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "netds", "netds", "{E40CF076-974B-4882-8B68-2FE71A7266E3}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "peertopeer", "peertopeer", "{2CF2BB74-B979-4610-9A38-CAF45EEC27BD}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DrtSdkSample", "Win7Samples\netds\peertopeer\DRT\DrtSdkSample.csproj", "{9CFD42DE-61AE-4FD0-BBAD-A85807025C19}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "rpc", "rpc", "{BF9294FF-74C6-4777-9B69-7867F161F582}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "hello", "hello", "{0B3E0C08-2F75-40A4-A35B-0C335F9C1D61}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "helloc", "Win7Samples\netds\rpc\hello\helloc\helloc.csproj", "{1521D741-3C9A-47D9-8CC2-062B881AA1D1}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "hellos", "Win7Samples\netds\rpc\hello\hellos\hellos.csproj", "{C746B9BF-0DE6-4D3A-B537-EC132486C76A}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ChooseFont", "Win7Samples\winui\ChooseFont\ChooseFont.csproj", "{8075BE2B-9D61-42D9-B099-F5854AEA4C86}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "sendto", "Win7Samples\winui\sendto\sendto.csproj", "{3046E8E0-2116-4FA2-B4EC-9BAAA181069C}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "winbase", "winbase", "{4A26BBA8-2CDF-47C2-9028-8197C45F5F2E}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ISCSICli", "Win7Samples\winbase\ISCSI\ISCSICli.csproj", "{B352F52C-5091-4857-9BA8-3CD1221FC447}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RmFilterApp", "Win7Samples\winbase\RmFilterApp\RmFilterApp.csproj", "{C403C0EA-AB5D-4769-8D6D-C507BCBD2684}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "io", "io", "{B6D6F885-55E8-4A2C-A873-54953586E387}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DLEdit", "Win7Samples\winbase\io\DLEdit\DLEdit.csproj", "{6ECDFE7A-CF7C-478B-922F-0CA23BE51A58}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EnumMountPoints", "Win7Samples\winbase\io\EnumMountPoints\EnumMountPoints.csproj", "{58C7C38B-63B8-485B-9051-7A804E7DC270}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ExtendedFileAPIs", "Win7Samples\winbase\io\ExtendedFileAPIs\ExtendedFileAPIs.csproj", "{5323002C-F5BF-40A2-9732-23F9E25EB8AA}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AsyncCreate", "Win7Samples\winbase\io\AsyncCreate\AsyncCreate.csproj", "{77A8D383-EFCA-44E2-BFF0-F179B245E4A9}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FCopy", "Win7Samples\winbase\io\FCopy\FCopy.csproj", "{E0B5CE9F-FB29-4873-A434-8D22F22EE84E}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Mount", "Win7Samples\winbase\io\Mount\Mount.csproj", "{824E112B-6FD9-4E73-BC0F-7E9FFA089CB2}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "UnBufCp2", "Win7Samples\winbase\io\UnBufCp2\UnBufCp2.csproj", "{B997EAFC-13A1-48EB-8581-B9E3074F7A26}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CrawlScopeCommandLine", "Win7Samples\winui\WindowsSearch\CrawlScopeCommandLine\CrawlScopeCommandLine.csproj", "{47736DBE-538F-4A65-8AD3-3DD803343C81}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "dataaccess", "dataaccess", "{65BAA9ED-E48A-4868-9C6C-90DF2E00AA5D}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "OPC", "OPC", "{3F73FB3A-9E0D-4777-8306-AEA1BD9FBF06}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MusicBundle", "Win7Samples\dataaccess\OPC\MusicBundle\MusicBundle.csproj", "{956E7526-FD0A-4E38-AF31-B99D4B1FE17F}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WindowsConnectNow", "Win7Samples\netds\WindowsConnectNow\WindowsConnectNow.csproj", "{8B71A10A-B37F-447C-86DE-6460B5159BD0}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "DeviceFoundation", "DeviceFoundation", "{28247C7F-D953-4148-B2B5-FFC566202651}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "FunctionDiscovery", "FunctionDiscovery", "{DBE71E97-BE9F-4B06-AADD-3D775BB9F5F3}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "fdsample", "Win7Samples\winbase\DeviceFoundation\FunctionDIscovery\fdsample\fdsample.csproj", "{92A58FFE-C27A-4C5E-B6EF-0CF4C5C86CD9}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "IMAPI", "IMAPI", "{4DFB1EEE-D389-4FE1-8710-F1D364790715}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "imapi2sample", "Win7Samples\winbase\imapi\imapi2sample\imapi2sample.csproj", "{64DAD0ED-C4A5-4460-9559-69CD02BFE134}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IBurn", "Win7Samples\winbase\imapi\IBurn\IBurn.csproj", "{5DEBB03B-5502-444A-9E50-E943A18F50D1}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tsf", "tsf", "{0E0F6C16-9633-486B-A09B-64717AF3EA63}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "tsfapp", "Win7Samples\winui\tsf\tsfapp\tsfapp.csproj", "{70950A43-0516-4902-B37F-9DE9EDF96FC6}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "tsfcase", "Win7Samples\winui\tsf\tsfcase\tsfcase.csproj", "{E4A44DBD-9790-4C08-8AAF-C7215E514706}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "multimedia", "multimedia", "{C98EAE44-7B2D-4AC8-858C-D74C806225CA}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DuckingCaptureSample", "Win7Samples\multimedia\audio\DuckingCaptureSample\DuckingCaptureSample.csproj", "{F7051618-E80F-4B53-B97D-D58147224630}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "audio", "audio", "{9BDA35D4-07CE-4BE2-B3D6-F33CA456875A}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DuckingMediaPlayer", "Win7Samples\multimedia\audio\DuckingMediaPlayer\DuckingMediaPlayer.csproj", "{6C01471F-C35B-4390-9C76-F71CD8BD227F}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "shellextensibility", "shellextensibility", "{87B5CB14-2AFF-40CA-B5B1-D9214D5A8ADF}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "deskbands", "Win7Samples\winui\shell\shellextensibility\deskbands\deskbands.csproj", "{D06AB451-D752-48A1-9A35-8AECCAE1AF61}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "explorerdataprovider", "Win7Samples\winui\shell\shellextensibility\explorerdataprovider\explorerdataprovider.csproj", "{C893DDA9-D185-4C60-AF13-3719474D638A}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "imapiv2", "imapiv2", "{B4781ABB-45AF-43A9-881B-BEAD004A98F3}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EraseSample", "Win7Samples\winbase\imapi\imapiv2\erasesample\EraseSample.csproj", "{3C69A73F-3C17-4963-9BAD-69BA7D2FC059}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "storage", "storage", "{909F9E92-42D8-4A67-8540-6AADD647102E}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EhStorEnumerator2", "Win7Samples\winbase\storage\EhStorEnumerator\EhStorEnumerator2.csproj", "{8AD99F31-1B31-45CF-A1A2-3BAD6F7BAC00}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "vss", "vss", "{0CFA4CE4-B4B8-48F0-9D2E-E7FD7EE79ABD}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "vshadow", "Win7Samples\winbase\vss\vshadow\vshadow.csproj", "{CE284858-D665-4B68-B921-419FEBC8159B}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WinhttpProxy", "WinhttpProxy\WinhttpProxy.csproj", "{F47EA32E-29D5-4D2A-849E-29ECDD2A0A83}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Hyper-V", "Hyper-V", "{3B9AF35F-45F6-4652-A197-99B939812205}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Storage", "Hyper-V\Storage\Storage.csproj", "{BA281A36-2842-48EC-B2A7-93C7C81C5BCC}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CimFSAPI", "CimFSAPI\CimFSAPI.csproj", "{21DF136E-EBE7-449D-8F30-4021AB21F927}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "dhcp", "dhcp", "{16D9B8DC-6C57-47F7-BBCC-68E9927D7AFE}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "dhcprequest", "Win7Samples\netds\dhcp\dhcprequest\dhcprequest.csproj", "{A9572C4A-7A90-4779-8BBE-35457C2CA601}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "dhcpnotify", "Win7Samples\netds\dhcp\dhcpnotify\dhcpnotify.csproj", "{BE575FEA-FA7A-4196-AE0A-6834CE34CE59}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "dhcppersist", "Win7Samples\netds\dhcp\dhcppersist\dhcppersist.csproj", "{F99B42FF-45A3-46E8-BE58-EC38C83E06E4}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "filehistory", "filehistory\filehistory.csproj", "{CE908E26-D36B-4849-BCCA-B98CBFD45B71}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "winsock", "winsock", "{87D52AC1-D713-4D70-BD09-6F8E1981FC9E}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "iphelp", "iphelp", "{231BEB1C-7F5A-4401-B2DE-1D21A7562924}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "iprenew", "Win7Samples\netds\iphelp\iprenew\iprenew.csproj", "{4DB8DFA1-82F0-4585-BC1C-32AB93A4F928}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "recvmsg", "Win7Samples\netds\winsock\recvmsg\recvmsg.csproj", "{E5BA6D7A-B104-48F2-B4ED-42DC6B4B7520}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WSAPollSample", "Win7Samples\netds\winsock\wsapoll\WSAPollSample.csproj", "{028EBB7D-C7D4-4EB1-AABD-3BF2D5BB8D4B}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IPChange", "Win7Samples\netds\iphelp\ipchange\IPChange.csproj", "{E791AE5F-7B7E-4CEF-897B-0A8D72CDE445}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "winnt", "winnt", "{6FBA50C2-1277-4EDA-BA07-03D4145B0732}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "perftool", "perftool", "{5284B03E-A850-4D19-A648-AC9B5AE6BAC0}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "pdh", "pdh", "{0ABCB063-EBB6-41D9-8515-AE3825C5F3C4}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "StatList", "Win7Samples\winbase\winnt\perftool\pdh\StatList\StatList.csproj", "{52B5D05F-9F76-41A8-9334-2580ACE435C6}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PerMonitorDPIAware", "PerMonitorDPIAware\cs\WpfApplication\PerMonitorDPIAware.csproj", "{700F2674-4EA4-4CDB-B2CA-2FC2BD138E2B}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "uri", "Win7Samples\netds\uri\uri.csproj", "{99318E2F-805D-4AF7-8E51-BAF6FCC257CE}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "web", "web", "{44938E1F-6821-476A-A9C1-8D35839D25AF}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Wininet", "Wininet", "{16F97640-3694-4BA8-98E3-FF4A7C602BE1}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "httpauth", "Win7Samples\web\Wininet\httpauth\httpauth.csproj", "{E68F82B2-14C7-47C5-9747-62C262722D1E}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Security", "Security", "{BDA50AE4-E6AF-4861-A580-5A8ED29DBE37}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CodeSigning", "Security\CodeSigning\CodeSigning.csproj", "{4E4EFE27-E464-477E-81EC-25C7494F3576}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CacheEnumerate", "Win7Samples\web\Wininet\CacheEnumerate\CacheEnumerate.csproj", "{EBCA4B00-6277-46D6-AF36-E638CCC610E2}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "async", "Win7Samples\web\Wininet\async\async.csproj", "{C1A415DC-597E-4AD8-8A89-C6AF52F5026D}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "winhttp", "winhttp", "{AC7213D9-5A97-429C-B1A0-964B8A9C2F1B}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WinHttpPostSample", "Win7Samples\web\winhttp\WinHttpPostSample\WinHttpPostSample.csproj", "{211FD731-0F62-4910-8343-6AA5ADA9686E}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WinhttpAsyncSample", "Win7Samples\web\winhttp\WinhttpAsyncSample\WinhttpAsyncSample.csproj", "{7B2497DF-1016-4C40-B894-9EDE00B4CA56}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "bits", "bits", "{0C0F48CF-FEAB-482B-95CE-CCC9C626A7D5}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CONTROLS", "Win7Samples\web\bits\CONTROLS\CONTROLS.csproj", "{9BD06E47-C47D-455E-84AD-B9835BDA2943}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DOWNLOADS", "Win7Samples\web\bits\DOWNLOADS\DOWNLOADS.csproj", "{4B3CF3C7-EF23-4149-8024-963201BE5EB4}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PEERCACHING", "Win7Samples\web\bits\PEERCACHING\PEERCACHING.csproj", "{634B6143-B564-4FA9-BF7B-7D15F26045BA}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "UPLOADS", "Win7Samples\web\bits\UPLOADS\UPLOADS.csproj", "{049C8D2C-B00E-4369-90A6-6043C393C2ED}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "dns", "dns", "{68B2586F-5AE9-4754-AAB3-BB6512581CF3}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Dnsquery", "Win7Samples\netds\dns\Dnsquery\Dnsquery.csproj", "{171A091E-0477-4CC6-AC83-F0FFF5594375}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ModifyRecords", "Win7Samples\netds\dns\ModifyRecords\ModifyRecords.csproj", "{014491C6-58A0-4DFA-ACFC-4988ADCD546A}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "http", "http", "{6D4E6E9C-39F7-44D9-95F2-BE8B5B07B279}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "server", "Win7Samples\netds\http\server\server.csproj", "{C94242B3-AF74-4966-9508-55CEA7B589E9}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HttpV2Server", "Win7Samples\netds\http\HttpV2Server\HttpV2Server.csproj", "{73162237-344C-4196-9754-F0D270649C0E}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ServiceConfig4", "Win7Samples\netds\http\ServiceConfig4\ServiceConfig4.csproj", "{5E2F6EFC-61EF-467E-85C8-17CDB62DE450}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Qos", "Qos", "{8A0F5048-C9A6-4206-971F-696C4695D3C9}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Qos2", "Win7Samples\netds\Qos\Qos2\Qos2.csproj", "{98776527-60A3-4346-8A3E-A74A6D9FEEB4}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TCSample", "Win7Samples\netds\Qos\TCSample\TCSample.csproj", "{028A8572-A183-43DC-BE68-622C36ED36DA}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "securitycenter", "Win7Samples\security\securitycenter\securitycenter.csproj", "{C3D5CA53-026A-4996-BC2F-9A3849536537}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WscApiSample", "WebSecurityCenter\WscApiSample.csproj", "{CB5BDADA-8032-4F68-A17D-CA18BA63F4F0}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WinhttpWebsocket", "WinhttpWebsocket\WinhttpWebsocket.csproj", "{E01C820C-E103-4387-B1E8-680ED4218600}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Websocket", "Websocket\Websocket.csproj", "{48D69FD8-942B-46A2-ADD4-068BC35D98C4}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "CWMFEx", "CWMFEx", "{30DA959F-B00E-4649-BB59-5BB83B4FD516}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CWMFExSender", "Win7Samples\winui\CWMFEx\CWMFExSender\CWMFExSender.csproj", "{AB21D4DB-F483-4977-A75F-8763198B941B}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CWMFExReceiver", "Win7Samples\winui\CWMFEx\CWMFExReceiver\CWMFExReceiver.csproj", "{B31F1FBD-F505-42D9-9761-05A5E19F87B1}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RegisterHotKey", "Win7Samples\winui\RegisterHotKey\RegisterHotKey.csproj", "{4D20BE29-3DB1-479D-B4E8-BA900BBB48B1}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ClipboardChainImprovementAPIs", "Win7Samples\winui\ClipboardChainImprovementAPIs\ClipboardChainImprovementAPIs.csproj", "{ABD44B89-6B8C-4902-8EB4-DB6F4F19C9D3}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MagnifierSample", "Win7Samples\winui\magnificiation\MagnifierSample.csproj", "{45EAC490-1351-4FB5-9E16-AAFEEDDB36AD}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NamedNlsFunctions", "Win7Samples\winui\NamedNlsFunctions\NamedNlsFunctions.csproj", "{79338A1C-5A2B-42D4-AF30-BBAB98613880}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Obscure", "Win7Samples\winui\obscure\Obscure.csproj", "{6D91EB21-0E27-4F8A-9B65-397C831531C7}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "pictures", "pictures", "{D6B1DEF4-8447-45F7-9A80-5448EE354371}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TranscodeImage", "Win7Samples\winui\pictures\transcodeimage\TranscodeImage.csproj", "{C19499AE-568C-4FE4-8E4F-EA6E2219E0FF}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "legacysamples", "legacysamples", "{488267F7-B4B5-4A2E-9488-51E8472220BC}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "fakemenu", "Win7Samples\winui\shell\legacysamples\fakemenu\fakemenu.csproj", "{287DC56C-725C-4FCE-9AFB-D4F9F3E7481C}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EventTracingEnumerateProviders", "EventTracingEnumerateProviders\EventTracingEnumerateProviders.csproj", "{BDA5D50F-3ADA-41F5-8DE8-1C9E6CB64118}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WASAPIRendering", "WASAPIRendering\WASAPIRendering.csproj", "{850D52F8-D99D-468D-8A0D-8C42D3D16318}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SystemHandlePassing", "SystemHandlePassing", "{4E3A307F-6683-4806-8C92-374ECF37B434}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Client", "SystemHandlePassing\Client\Client.csproj", "{25339E9B-7AE9-4CA2-986C-0606B75DC344}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Server", "SystemHandlePassing\Server\Server.csproj", "{B48569C5-16E7-478F-9270-810994007CE6}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PackageManagerFindPackagesWithPackageTypes", "PackageManagerFindPackagesWithPackageTypes\PackageManagerFindPackagesWithPackageTypes.csproj", "{671862A9-4A85-45E6-9ED9-BF81AEA5141F}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - Release|Any CPU = Release|Any CPU - Release|x64 = Release|x64 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {BF35499A-12D1-4BEE-90C1-9C74F5236741}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BF35499A-12D1-4BEE-90C1-9C74F5236741}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BF35499A-12D1-4BEE-90C1-9C74F5236741}.Debug|x64.ActiveCfg = Debug|Any CPU - {BF35499A-12D1-4BEE-90C1-9C74F5236741}.Debug|x64.Build.0 = Debug|Any CPU - {BF35499A-12D1-4BEE-90C1-9C74F5236741}.Debug|x86.ActiveCfg = Debug|Any CPU - {BF35499A-12D1-4BEE-90C1-9C74F5236741}.Debug|x86.Build.0 = Debug|Any CPU - {BF35499A-12D1-4BEE-90C1-9C74F5236741}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BF35499A-12D1-4BEE-90C1-9C74F5236741}.Release|Any CPU.Build.0 = Release|Any CPU - {BF35499A-12D1-4BEE-90C1-9C74F5236741}.Release|x64.ActiveCfg = Release|Any CPU - {BF35499A-12D1-4BEE-90C1-9C74F5236741}.Release|x64.Build.0 = Release|Any CPU - {BF35499A-12D1-4BEE-90C1-9C74F5236741}.Release|x86.ActiveCfg = Release|Any CPU - {BF35499A-12D1-4BEE-90C1-9C74F5236741}.Release|x86.Build.0 = Release|Any CPU - {DFE20AAB-EA60-4401-9FE5-C2D32F81BC11}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DFE20AAB-EA60-4401-9FE5-C2D32F81BC11}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DFE20AAB-EA60-4401-9FE5-C2D32F81BC11}.Debug|x64.ActiveCfg = Debug|Any CPU - {DFE20AAB-EA60-4401-9FE5-C2D32F81BC11}.Debug|x64.Build.0 = Debug|Any CPU - {DFE20AAB-EA60-4401-9FE5-C2D32F81BC11}.Debug|x86.ActiveCfg = Debug|Any CPU - {DFE20AAB-EA60-4401-9FE5-C2D32F81BC11}.Debug|x86.Build.0 = Debug|Any CPU - {DFE20AAB-EA60-4401-9FE5-C2D32F81BC11}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DFE20AAB-EA60-4401-9FE5-C2D32F81BC11}.Release|Any CPU.Build.0 = Release|Any CPU - {DFE20AAB-EA60-4401-9FE5-C2D32F81BC11}.Release|x64.ActiveCfg = Release|Any CPU - {DFE20AAB-EA60-4401-9FE5-C2D32F81BC11}.Release|x64.Build.0 = Release|Any CPU - {DFE20AAB-EA60-4401-9FE5-C2D32F81BC11}.Release|x86.ActiveCfg = Release|Any CPU - {DFE20AAB-EA60-4401-9FE5-C2D32F81BC11}.Release|x86.Build.0 = Release|Any CPU - {CBA2C308-CD96-407F-ACB3-B83AD7CA0B08}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CBA2C308-CD96-407F-ACB3-B83AD7CA0B08}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CBA2C308-CD96-407F-ACB3-B83AD7CA0B08}.Debug|x64.ActiveCfg = Debug|Any CPU - {CBA2C308-CD96-407F-ACB3-B83AD7CA0B08}.Debug|x64.Build.0 = Debug|Any CPU - {CBA2C308-CD96-407F-ACB3-B83AD7CA0B08}.Debug|x86.ActiveCfg = Debug|Any CPU - {CBA2C308-CD96-407F-ACB3-B83AD7CA0B08}.Debug|x86.Build.0 = Debug|Any CPU - {CBA2C308-CD96-407F-ACB3-B83AD7CA0B08}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CBA2C308-CD96-407F-ACB3-B83AD7CA0B08}.Release|Any CPU.Build.0 = Release|Any CPU - {CBA2C308-CD96-407F-ACB3-B83AD7CA0B08}.Release|x64.ActiveCfg = Release|Any CPU - {CBA2C308-CD96-407F-ACB3-B83AD7CA0B08}.Release|x64.Build.0 = Release|Any CPU - {CBA2C308-CD96-407F-ACB3-B83AD7CA0B08}.Release|x86.ActiveCfg = Release|Any CPU - {CBA2C308-CD96-407F-ACB3-B83AD7CA0B08}.Release|x86.Build.0 = Release|Any CPU - {8C0538E7-6662-4508-960F-F0193A0E02E6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8C0538E7-6662-4508-960F-F0193A0E02E6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8C0538E7-6662-4508-960F-F0193A0E02E6}.Debug|x64.ActiveCfg = Debug|Any CPU - {8C0538E7-6662-4508-960F-F0193A0E02E6}.Debug|x64.Build.0 = Debug|Any CPU - {8C0538E7-6662-4508-960F-F0193A0E02E6}.Debug|x86.ActiveCfg = Debug|Any CPU - {8C0538E7-6662-4508-960F-F0193A0E02E6}.Debug|x86.Build.0 = Debug|Any CPU - {8C0538E7-6662-4508-960F-F0193A0E02E6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8C0538E7-6662-4508-960F-F0193A0E02E6}.Release|Any CPU.Build.0 = Release|Any CPU - {8C0538E7-6662-4508-960F-F0193A0E02E6}.Release|x64.ActiveCfg = Release|Any CPU - {8C0538E7-6662-4508-960F-F0193A0E02E6}.Release|x64.Build.0 = Release|Any CPU - {8C0538E7-6662-4508-960F-F0193A0E02E6}.Release|x86.ActiveCfg = Release|Any CPU - {8C0538E7-6662-4508-960F-F0193A0E02E6}.Release|x86.Build.0 = Release|Any CPU - {B3108BC1-2E87-4155-9B80-6D4DDD6C7D01}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B3108BC1-2E87-4155-9B80-6D4DDD6C7D01}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B3108BC1-2E87-4155-9B80-6D4DDD6C7D01}.Debug|x64.ActiveCfg = Debug|Any CPU - {B3108BC1-2E87-4155-9B80-6D4DDD6C7D01}.Debug|x64.Build.0 = Debug|Any CPU - {B3108BC1-2E87-4155-9B80-6D4DDD6C7D01}.Debug|x86.ActiveCfg = Debug|Any CPU - {B3108BC1-2E87-4155-9B80-6D4DDD6C7D01}.Debug|x86.Build.0 = Debug|Any CPU - {B3108BC1-2E87-4155-9B80-6D4DDD6C7D01}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B3108BC1-2E87-4155-9B80-6D4DDD6C7D01}.Release|Any CPU.Build.0 = Release|Any CPU - {B3108BC1-2E87-4155-9B80-6D4DDD6C7D01}.Release|x64.ActiveCfg = Release|Any CPU - {B3108BC1-2E87-4155-9B80-6D4DDD6C7D01}.Release|x64.Build.0 = Release|Any CPU - {B3108BC1-2E87-4155-9B80-6D4DDD6C7D01}.Release|x86.ActiveCfg = Release|Any CPU - {B3108BC1-2E87-4155-9B80-6D4DDD6C7D01}.Release|x86.Build.0 = Release|Any CPU - {5419B69C-7DBE-4006-B62F-38BC06935A6A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5419B69C-7DBE-4006-B62F-38BC06935A6A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5419B69C-7DBE-4006-B62F-38BC06935A6A}.Debug|x64.ActiveCfg = Debug|Any CPU - {5419B69C-7DBE-4006-B62F-38BC06935A6A}.Debug|x64.Build.0 = Debug|Any CPU - {5419B69C-7DBE-4006-B62F-38BC06935A6A}.Debug|x86.ActiveCfg = Debug|Any CPU - {5419B69C-7DBE-4006-B62F-38BC06935A6A}.Debug|x86.Build.0 = Debug|Any CPU - {5419B69C-7DBE-4006-B62F-38BC06935A6A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5419B69C-7DBE-4006-B62F-38BC06935A6A}.Release|Any CPU.Build.0 = Release|Any CPU - {5419B69C-7DBE-4006-B62F-38BC06935A6A}.Release|x64.ActiveCfg = Release|Any CPU - {5419B69C-7DBE-4006-B62F-38BC06935A6A}.Release|x64.Build.0 = Release|Any CPU - {5419B69C-7DBE-4006-B62F-38BC06935A6A}.Release|x86.ActiveCfg = Release|Any CPU - {5419B69C-7DBE-4006-B62F-38BC06935A6A}.Release|x86.Build.0 = Release|Any CPU - {095A4A6A-6A1D-4493-AC12-527199274635}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {095A4A6A-6A1D-4493-AC12-527199274635}.Debug|Any CPU.Build.0 = Debug|Any CPU - {095A4A6A-6A1D-4493-AC12-527199274635}.Debug|x64.ActiveCfg = Debug|Any CPU - {095A4A6A-6A1D-4493-AC12-527199274635}.Debug|x64.Build.0 = Debug|Any CPU - {095A4A6A-6A1D-4493-AC12-527199274635}.Debug|x86.ActiveCfg = Debug|Any CPU - {095A4A6A-6A1D-4493-AC12-527199274635}.Debug|x86.Build.0 = Debug|Any CPU - {095A4A6A-6A1D-4493-AC12-527199274635}.Release|Any CPU.ActiveCfg = Release|Any CPU - {095A4A6A-6A1D-4493-AC12-527199274635}.Release|Any CPU.Build.0 = Release|Any CPU - {095A4A6A-6A1D-4493-AC12-527199274635}.Release|x64.ActiveCfg = Release|Any CPU - {095A4A6A-6A1D-4493-AC12-527199274635}.Release|x64.Build.0 = Release|Any CPU - {095A4A6A-6A1D-4493-AC12-527199274635}.Release|x86.ActiveCfg = Release|Any CPU - {095A4A6A-6A1D-4493-AC12-527199274635}.Release|x86.Build.0 = Release|Any CPU - {4BFC28A4-20D7-487E-AEFB-EAD48D7BB01C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4BFC28A4-20D7-487E-AEFB-EAD48D7BB01C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4BFC28A4-20D7-487E-AEFB-EAD48D7BB01C}.Debug|x64.ActiveCfg = Debug|Any CPU - {4BFC28A4-20D7-487E-AEFB-EAD48D7BB01C}.Debug|x64.Build.0 = Debug|Any CPU - {4BFC28A4-20D7-487E-AEFB-EAD48D7BB01C}.Debug|x86.ActiveCfg = Debug|Any CPU - {4BFC28A4-20D7-487E-AEFB-EAD48D7BB01C}.Debug|x86.Build.0 = Debug|Any CPU - {4BFC28A4-20D7-487E-AEFB-EAD48D7BB01C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4BFC28A4-20D7-487E-AEFB-EAD48D7BB01C}.Release|Any CPU.Build.0 = Release|Any CPU - {4BFC28A4-20D7-487E-AEFB-EAD48D7BB01C}.Release|x64.ActiveCfg = Release|Any CPU - {4BFC28A4-20D7-487E-AEFB-EAD48D7BB01C}.Release|x64.Build.0 = Release|Any CPU - {4BFC28A4-20D7-487E-AEFB-EAD48D7BB01C}.Release|x86.ActiveCfg = Release|Any CPU - {4BFC28A4-20D7-487E-AEFB-EAD48D7BB01C}.Release|x86.Build.0 = Release|Any CPU - {614B6038-7A52-407E-B48C-79817C1F7669}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {614B6038-7A52-407E-B48C-79817C1F7669}.Debug|Any CPU.Build.0 = Debug|Any CPU - {614B6038-7A52-407E-B48C-79817C1F7669}.Debug|x64.ActiveCfg = Debug|Any CPU - {614B6038-7A52-407E-B48C-79817C1F7669}.Debug|x64.Build.0 = Debug|Any CPU - {614B6038-7A52-407E-B48C-79817C1F7669}.Debug|x86.ActiveCfg = Debug|Any CPU - {614B6038-7A52-407E-B48C-79817C1F7669}.Debug|x86.Build.0 = Debug|Any CPU - {614B6038-7A52-407E-B48C-79817C1F7669}.Release|Any CPU.ActiveCfg = Release|Any CPU - {614B6038-7A52-407E-B48C-79817C1F7669}.Release|Any CPU.Build.0 = Release|Any CPU - {614B6038-7A52-407E-B48C-79817C1F7669}.Release|x64.ActiveCfg = Release|Any CPU - {614B6038-7A52-407E-B48C-79817C1F7669}.Release|x64.Build.0 = Release|Any CPU - {614B6038-7A52-407E-B48C-79817C1F7669}.Release|x86.ActiveCfg = Release|Any CPU - {614B6038-7A52-407E-B48C-79817C1F7669}.Release|x86.Build.0 = Release|Any CPU - {1294BA2E-698E-4B71-9437-55088B620849}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1294BA2E-698E-4B71-9437-55088B620849}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1294BA2E-698E-4B71-9437-55088B620849}.Debug|x64.ActiveCfg = Debug|Any CPU - {1294BA2E-698E-4B71-9437-55088B620849}.Debug|x64.Build.0 = Debug|Any CPU - {1294BA2E-698E-4B71-9437-55088B620849}.Debug|x86.ActiveCfg = Debug|Any CPU - {1294BA2E-698E-4B71-9437-55088B620849}.Debug|x86.Build.0 = Debug|Any CPU - {1294BA2E-698E-4B71-9437-55088B620849}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1294BA2E-698E-4B71-9437-55088B620849}.Release|Any CPU.Build.0 = Release|Any CPU - {1294BA2E-698E-4B71-9437-55088B620849}.Release|x64.ActiveCfg = Release|Any CPU - {1294BA2E-698E-4B71-9437-55088B620849}.Release|x64.Build.0 = Release|Any CPU - {1294BA2E-698E-4B71-9437-55088B620849}.Release|x86.ActiveCfg = Release|Any CPU - {1294BA2E-698E-4B71-9437-55088B620849}.Release|x86.Build.0 = Release|Any CPU - {C3176341-2229-42A7-A9DF-846CB8C360A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C3176341-2229-42A7-A9DF-846CB8C360A9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C3176341-2229-42A7-A9DF-846CB8C360A9}.Debug|x64.ActiveCfg = Debug|Any CPU - {C3176341-2229-42A7-A9DF-846CB8C360A9}.Debug|x64.Build.0 = Debug|Any CPU - {C3176341-2229-42A7-A9DF-846CB8C360A9}.Debug|x86.ActiveCfg = Debug|Any CPU - {C3176341-2229-42A7-A9DF-846CB8C360A9}.Debug|x86.Build.0 = Debug|Any CPU - {C3176341-2229-42A7-A9DF-846CB8C360A9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C3176341-2229-42A7-A9DF-846CB8C360A9}.Release|Any CPU.Build.0 = Release|Any CPU - {C3176341-2229-42A7-A9DF-846CB8C360A9}.Release|x64.ActiveCfg = Release|Any CPU - {C3176341-2229-42A7-A9DF-846CB8C360A9}.Release|x64.Build.0 = Release|Any CPU - {C3176341-2229-42A7-A9DF-846CB8C360A9}.Release|x86.ActiveCfg = Release|Any CPU - {C3176341-2229-42A7-A9DF-846CB8C360A9}.Release|x86.Build.0 = Release|Any CPU - {4FBDBE52-2844-47F0-8D2E-CA06234E76A8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4FBDBE52-2844-47F0-8D2E-CA06234E76A8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4FBDBE52-2844-47F0-8D2E-CA06234E76A8}.Debug|x64.ActiveCfg = Debug|Any CPU - {4FBDBE52-2844-47F0-8D2E-CA06234E76A8}.Debug|x64.Build.0 = Debug|Any CPU - {4FBDBE52-2844-47F0-8D2E-CA06234E76A8}.Debug|x86.ActiveCfg = Debug|Any CPU - {4FBDBE52-2844-47F0-8D2E-CA06234E76A8}.Debug|x86.Build.0 = Debug|Any CPU - {4FBDBE52-2844-47F0-8D2E-CA06234E76A8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4FBDBE52-2844-47F0-8D2E-CA06234E76A8}.Release|Any CPU.Build.0 = Release|Any CPU - {4FBDBE52-2844-47F0-8D2E-CA06234E76A8}.Release|x64.ActiveCfg = Release|Any CPU - {4FBDBE52-2844-47F0-8D2E-CA06234E76A8}.Release|x64.Build.0 = Release|Any CPU - {4FBDBE52-2844-47F0-8D2E-CA06234E76A8}.Release|x86.ActiveCfg = Release|Any CPU - {4FBDBE52-2844-47F0-8D2E-CA06234E76A8}.Release|x86.Build.0 = Release|Any CPU - {42D061DF-6C64-4907-B23B-38EAAE1EC701}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {42D061DF-6C64-4907-B23B-38EAAE1EC701}.Debug|x64.ActiveCfg = Debug|Any CPU - {42D061DF-6C64-4907-B23B-38EAAE1EC701}.Debug|x64.Build.0 = Debug|Any CPU - {42D061DF-6C64-4907-B23B-38EAAE1EC701}.Debug|x86.ActiveCfg = Debug|Any CPU - {42D061DF-6C64-4907-B23B-38EAAE1EC701}.Debug|x86.Build.0 = Debug|Any CPU - {42D061DF-6C64-4907-B23B-38EAAE1EC701}.Release|Any CPU.ActiveCfg = Release|Any CPU - {42D061DF-6C64-4907-B23B-38EAAE1EC701}.Release|x64.ActiveCfg = Release|Any CPU - {42D061DF-6C64-4907-B23B-38EAAE1EC701}.Release|x64.Build.0 = Release|Any CPU - {42D061DF-6C64-4907-B23B-38EAAE1EC701}.Release|x86.ActiveCfg = Release|Any CPU - {42D061DF-6C64-4907-B23B-38EAAE1EC701}.Release|x86.Build.0 = Release|Any CPU - {0BF5C2B5-0F01-48B5-BE4E-5E3E13D149A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0BF5C2B5-0F01-48B5-BE4E-5E3E13D149A6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0BF5C2B5-0F01-48B5-BE4E-5E3E13D149A6}.Debug|x64.ActiveCfg = Debug|Any CPU - {0BF5C2B5-0F01-48B5-BE4E-5E3E13D149A6}.Debug|x64.Build.0 = Debug|Any CPU - {0BF5C2B5-0F01-48B5-BE4E-5E3E13D149A6}.Debug|x86.ActiveCfg = Debug|Any CPU - {0BF5C2B5-0F01-48B5-BE4E-5E3E13D149A6}.Debug|x86.Build.0 = Debug|Any CPU - {0BF5C2B5-0F01-48B5-BE4E-5E3E13D149A6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0BF5C2B5-0F01-48B5-BE4E-5E3E13D149A6}.Release|Any CPU.Build.0 = Release|Any CPU - {0BF5C2B5-0F01-48B5-BE4E-5E3E13D149A6}.Release|x64.ActiveCfg = Release|Any CPU - {0BF5C2B5-0F01-48B5-BE4E-5E3E13D149A6}.Release|x64.Build.0 = Release|Any CPU - {0BF5C2B5-0F01-48B5-BE4E-5E3E13D149A6}.Release|x86.ActiveCfg = Release|Any CPU - {0BF5C2B5-0F01-48B5-BE4E-5E3E13D149A6}.Release|x86.Build.0 = Release|Any CPU - {9EC5AB81-93F6-4150-9F67-61A0C2207E27}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9EC5AB81-93F6-4150-9F67-61A0C2207E27}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9EC5AB81-93F6-4150-9F67-61A0C2207E27}.Debug|x64.ActiveCfg = Debug|Any CPU - {9EC5AB81-93F6-4150-9F67-61A0C2207E27}.Debug|x64.Build.0 = Debug|Any CPU - {9EC5AB81-93F6-4150-9F67-61A0C2207E27}.Debug|x86.ActiveCfg = Debug|Any CPU - {9EC5AB81-93F6-4150-9F67-61A0C2207E27}.Debug|x86.Build.0 = Debug|Any CPU - {9EC5AB81-93F6-4150-9F67-61A0C2207E27}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9EC5AB81-93F6-4150-9F67-61A0C2207E27}.Release|Any CPU.Build.0 = Release|Any CPU - {9EC5AB81-93F6-4150-9F67-61A0C2207E27}.Release|x64.ActiveCfg = Release|Any CPU - {9EC5AB81-93F6-4150-9F67-61A0C2207E27}.Release|x64.Build.0 = Release|Any CPU - {9EC5AB81-93F6-4150-9F67-61A0C2207E27}.Release|x86.ActiveCfg = Release|Any CPU - {9EC5AB81-93F6-4150-9F67-61A0C2207E27}.Release|x86.Build.0 = Release|Any CPU - {946AC805-126B-489D-BADF-D9823955E482}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {946AC805-126B-489D-BADF-D9823955E482}.Debug|Any CPU.Build.0 = Debug|Any CPU - {946AC805-126B-489D-BADF-D9823955E482}.Debug|x64.ActiveCfg = Debug|Any CPU - {946AC805-126B-489D-BADF-D9823955E482}.Debug|x64.Build.0 = Debug|Any CPU - {946AC805-126B-489D-BADF-D9823955E482}.Debug|x86.ActiveCfg = Debug|Any CPU - {946AC805-126B-489D-BADF-D9823955E482}.Debug|x86.Build.0 = Debug|Any CPU - {946AC805-126B-489D-BADF-D9823955E482}.Release|Any CPU.ActiveCfg = Release|Any CPU - {946AC805-126B-489D-BADF-D9823955E482}.Release|Any CPU.Build.0 = Release|Any CPU - {946AC805-126B-489D-BADF-D9823955E482}.Release|x64.ActiveCfg = Release|Any CPU - {946AC805-126B-489D-BADF-D9823955E482}.Release|x64.Build.0 = Release|Any CPU - {946AC805-126B-489D-BADF-D9823955E482}.Release|x86.ActiveCfg = Release|Any CPU - {946AC805-126B-489D-BADF-D9823955E482}.Release|x86.Build.0 = Release|Any CPU - {B5CB45DC-4DED-4EE2-9242-3F7B0EAEAF58}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B5CB45DC-4DED-4EE2-9242-3F7B0EAEAF58}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B5CB45DC-4DED-4EE2-9242-3F7B0EAEAF58}.Debug|x64.ActiveCfg = Debug|Any CPU - {B5CB45DC-4DED-4EE2-9242-3F7B0EAEAF58}.Debug|x64.Build.0 = Debug|Any CPU - {B5CB45DC-4DED-4EE2-9242-3F7B0EAEAF58}.Debug|x86.ActiveCfg = Debug|Any CPU - {B5CB45DC-4DED-4EE2-9242-3F7B0EAEAF58}.Debug|x86.Build.0 = Debug|Any CPU - {B5CB45DC-4DED-4EE2-9242-3F7B0EAEAF58}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B5CB45DC-4DED-4EE2-9242-3F7B0EAEAF58}.Release|Any CPU.Build.0 = Release|Any CPU - {B5CB45DC-4DED-4EE2-9242-3F7B0EAEAF58}.Release|x64.ActiveCfg = Release|Any CPU - {B5CB45DC-4DED-4EE2-9242-3F7B0EAEAF58}.Release|x64.Build.0 = Release|Any CPU - {B5CB45DC-4DED-4EE2-9242-3F7B0EAEAF58}.Release|x86.ActiveCfg = Release|Any CPU - {B5CB45DC-4DED-4EE2-9242-3F7B0EAEAF58}.Release|x86.Build.0 = Release|Any CPU - {86EB6286-8842-4D4C-896B-BB7E5BB5D6D6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {86EB6286-8842-4D4C-896B-BB7E5BB5D6D6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {86EB6286-8842-4D4C-896B-BB7E5BB5D6D6}.Debug|x64.ActiveCfg = Debug|Any CPU - {86EB6286-8842-4D4C-896B-BB7E5BB5D6D6}.Debug|x64.Build.0 = Debug|Any CPU - {86EB6286-8842-4D4C-896B-BB7E5BB5D6D6}.Debug|x86.ActiveCfg = Debug|Any CPU - {86EB6286-8842-4D4C-896B-BB7E5BB5D6D6}.Debug|x86.Build.0 = Debug|Any CPU - {86EB6286-8842-4D4C-896B-BB7E5BB5D6D6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {86EB6286-8842-4D4C-896B-BB7E5BB5D6D6}.Release|Any CPU.Build.0 = Release|Any CPU - {86EB6286-8842-4D4C-896B-BB7E5BB5D6D6}.Release|x64.ActiveCfg = Release|Any CPU - {86EB6286-8842-4D4C-896B-BB7E5BB5D6D6}.Release|x64.Build.0 = Release|Any CPU - {86EB6286-8842-4D4C-896B-BB7E5BB5D6D6}.Release|x86.ActiveCfg = Release|Any CPU - {86EB6286-8842-4D4C-896B-BB7E5BB5D6D6}.Release|x86.Build.0 = Release|Any CPU - {69DA869D-1797-4417-8102-F02D3AD7C029}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {69DA869D-1797-4417-8102-F02D3AD7C029}.Debug|Any CPU.Build.0 = Debug|Any CPU - {69DA869D-1797-4417-8102-F02D3AD7C029}.Debug|x64.ActiveCfg = Debug|Any CPU - {69DA869D-1797-4417-8102-F02D3AD7C029}.Debug|x64.Build.0 = Debug|Any CPU - {69DA869D-1797-4417-8102-F02D3AD7C029}.Debug|x86.ActiveCfg = Debug|Any CPU - {69DA869D-1797-4417-8102-F02D3AD7C029}.Debug|x86.Build.0 = Debug|Any CPU - {69DA869D-1797-4417-8102-F02D3AD7C029}.Release|Any CPU.ActiveCfg = Release|Any CPU - {69DA869D-1797-4417-8102-F02D3AD7C029}.Release|Any CPU.Build.0 = Release|Any CPU - {69DA869D-1797-4417-8102-F02D3AD7C029}.Release|x64.ActiveCfg = Release|Any CPU - {69DA869D-1797-4417-8102-F02D3AD7C029}.Release|x64.Build.0 = Release|Any CPU - {69DA869D-1797-4417-8102-F02D3AD7C029}.Release|x86.ActiveCfg = Release|Any CPU - {69DA869D-1797-4417-8102-F02D3AD7C029}.Release|x86.Build.0 = Release|Any CPU - {DF8723BA-89E4-455F-8D0D-61859E6F4631}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DF8723BA-89E4-455F-8D0D-61859E6F4631}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DF8723BA-89E4-455F-8D0D-61859E6F4631}.Debug|x64.ActiveCfg = Debug|Any CPU - {DF8723BA-89E4-455F-8D0D-61859E6F4631}.Debug|x64.Build.0 = Debug|Any CPU - {DF8723BA-89E4-455F-8D0D-61859E6F4631}.Debug|x86.ActiveCfg = Debug|Any CPU - {DF8723BA-89E4-455F-8D0D-61859E6F4631}.Debug|x86.Build.0 = Debug|Any CPU - {DF8723BA-89E4-455F-8D0D-61859E6F4631}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DF8723BA-89E4-455F-8D0D-61859E6F4631}.Release|Any CPU.Build.0 = Release|Any CPU - {DF8723BA-89E4-455F-8D0D-61859E6F4631}.Release|x64.ActiveCfg = Release|Any CPU - {DF8723BA-89E4-455F-8D0D-61859E6F4631}.Release|x64.Build.0 = Release|Any CPU - {DF8723BA-89E4-455F-8D0D-61859E6F4631}.Release|x86.ActiveCfg = Release|Any CPU - {DF8723BA-89E4-455F-8D0D-61859E6F4631}.Release|x86.Build.0 = Release|Any CPU - {50646A7D-3564-442A-A08C-CCAF3FAA64D4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {50646A7D-3564-442A-A08C-CCAF3FAA64D4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {50646A7D-3564-442A-A08C-CCAF3FAA64D4}.Debug|x64.ActiveCfg = Debug|Any CPU - {50646A7D-3564-442A-A08C-CCAF3FAA64D4}.Debug|x64.Build.0 = Debug|Any CPU - {50646A7D-3564-442A-A08C-CCAF3FAA64D4}.Debug|x86.ActiveCfg = Debug|Any CPU - {50646A7D-3564-442A-A08C-CCAF3FAA64D4}.Debug|x86.Build.0 = Debug|Any CPU - {50646A7D-3564-442A-A08C-CCAF3FAA64D4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {50646A7D-3564-442A-A08C-CCAF3FAA64D4}.Release|Any CPU.Build.0 = Release|Any CPU - {50646A7D-3564-442A-A08C-CCAF3FAA64D4}.Release|x64.ActiveCfg = Release|Any CPU - {50646A7D-3564-442A-A08C-CCAF3FAA64D4}.Release|x64.Build.0 = Release|Any CPU - {50646A7D-3564-442A-A08C-CCAF3FAA64D4}.Release|x86.ActiveCfg = Release|Any CPU - {50646A7D-3564-442A-A08C-CCAF3FAA64D4}.Release|x86.Build.0 = Release|Any CPU - {D2EBE7E5-3679-471F-812D-77A3997C6BD3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D2EBE7E5-3679-471F-812D-77A3997C6BD3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D2EBE7E5-3679-471F-812D-77A3997C6BD3}.Debug|x64.ActiveCfg = Debug|Any CPU - {D2EBE7E5-3679-471F-812D-77A3997C6BD3}.Debug|x64.Build.0 = Debug|Any CPU - {D2EBE7E5-3679-471F-812D-77A3997C6BD3}.Debug|x86.ActiveCfg = Debug|Any CPU - {D2EBE7E5-3679-471F-812D-77A3997C6BD3}.Debug|x86.Build.0 = Debug|Any CPU - {D2EBE7E5-3679-471F-812D-77A3997C6BD3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D2EBE7E5-3679-471F-812D-77A3997C6BD3}.Release|Any CPU.Build.0 = Release|Any CPU - {D2EBE7E5-3679-471F-812D-77A3997C6BD3}.Release|x64.ActiveCfg = Release|Any CPU - {D2EBE7E5-3679-471F-812D-77A3997C6BD3}.Release|x64.Build.0 = Release|Any CPU - {D2EBE7E5-3679-471F-812D-77A3997C6BD3}.Release|x86.ActiveCfg = Release|Any CPU - {D2EBE7E5-3679-471F-812D-77A3997C6BD3}.Release|x86.Build.0 = Release|Any CPU - {8FE2DF3A-4675-4577-AC0C-77D8BF8841CB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8FE2DF3A-4675-4577-AC0C-77D8BF8841CB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8FE2DF3A-4675-4577-AC0C-77D8BF8841CB}.Debug|x64.ActiveCfg = Debug|Any CPU - {8FE2DF3A-4675-4577-AC0C-77D8BF8841CB}.Debug|x64.Build.0 = Debug|Any CPU - {8FE2DF3A-4675-4577-AC0C-77D8BF8841CB}.Debug|x86.ActiveCfg = Debug|Any CPU - {8FE2DF3A-4675-4577-AC0C-77D8BF8841CB}.Debug|x86.Build.0 = Debug|Any CPU - {8FE2DF3A-4675-4577-AC0C-77D8BF8841CB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8FE2DF3A-4675-4577-AC0C-77D8BF8841CB}.Release|Any CPU.Build.0 = Release|Any CPU - {8FE2DF3A-4675-4577-AC0C-77D8BF8841CB}.Release|x64.ActiveCfg = Release|Any CPU - {8FE2DF3A-4675-4577-AC0C-77D8BF8841CB}.Release|x64.Build.0 = Release|Any CPU - {8FE2DF3A-4675-4577-AC0C-77D8BF8841CB}.Release|x86.ActiveCfg = Release|Any CPU - {8FE2DF3A-4675-4577-AC0C-77D8BF8841CB}.Release|x86.Build.0 = Release|Any CPU - {DD455B6C-392A-4D04-A031-46D491722A9F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DD455B6C-392A-4D04-A031-46D491722A9F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DD455B6C-392A-4D04-A031-46D491722A9F}.Debug|x64.ActiveCfg = Debug|Any CPU - {DD455B6C-392A-4D04-A031-46D491722A9F}.Debug|x64.Build.0 = Debug|Any CPU - {DD455B6C-392A-4D04-A031-46D491722A9F}.Debug|x86.ActiveCfg = Debug|Any CPU - {DD455B6C-392A-4D04-A031-46D491722A9F}.Debug|x86.Build.0 = Debug|Any CPU - {DD455B6C-392A-4D04-A031-46D491722A9F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DD455B6C-392A-4D04-A031-46D491722A9F}.Release|Any CPU.Build.0 = Release|Any CPU - {DD455B6C-392A-4D04-A031-46D491722A9F}.Release|x64.ActiveCfg = Release|Any CPU - {DD455B6C-392A-4D04-A031-46D491722A9F}.Release|x64.Build.0 = Release|Any CPU - {DD455B6C-392A-4D04-A031-46D491722A9F}.Release|x86.ActiveCfg = Release|Any CPU - {DD455B6C-392A-4D04-A031-46D491722A9F}.Release|x86.Build.0 = Release|Any CPU - {88514BF5-4E9B-4781-8F11-5A181E287BA2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {88514BF5-4E9B-4781-8F11-5A181E287BA2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {88514BF5-4E9B-4781-8F11-5A181E287BA2}.Debug|x64.ActiveCfg = Debug|Any CPU - {88514BF5-4E9B-4781-8F11-5A181E287BA2}.Debug|x64.Build.0 = Debug|Any CPU - {88514BF5-4E9B-4781-8F11-5A181E287BA2}.Debug|x86.ActiveCfg = Debug|Any CPU - {88514BF5-4E9B-4781-8F11-5A181E287BA2}.Debug|x86.Build.0 = Debug|Any CPU - {88514BF5-4E9B-4781-8F11-5A181E287BA2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {88514BF5-4E9B-4781-8F11-5A181E287BA2}.Release|Any CPU.Build.0 = Release|Any CPU - {88514BF5-4E9B-4781-8F11-5A181E287BA2}.Release|x64.ActiveCfg = Release|Any CPU - {88514BF5-4E9B-4781-8F11-5A181E287BA2}.Release|x64.Build.0 = Release|Any CPU - {88514BF5-4E9B-4781-8F11-5A181E287BA2}.Release|x86.ActiveCfg = Release|Any CPU - {88514BF5-4E9B-4781-8F11-5A181E287BA2}.Release|x86.Build.0 = Release|Any CPU - {B0DAF5CC-6B09-48EE-9438-99BE81AC704C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B0DAF5CC-6B09-48EE-9438-99BE81AC704C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B0DAF5CC-6B09-48EE-9438-99BE81AC704C}.Debug|x64.ActiveCfg = Debug|Any CPU - {B0DAF5CC-6B09-48EE-9438-99BE81AC704C}.Debug|x64.Build.0 = Debug|Any CPU - {B0DAF5CC-6B09-48EE-9438-99BE81AC704C}.Debug|x86.ActiveCfg = Debug|Any CPU - {B0DAF5CC-6B09-48EE-9438-99BE81AC704C}.Debug|x86.Build.0 = Debug|Any CPU - {B0DAF5CC-6B09-48EE-9438-99BE81AC704C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B0DAF5CC-6B09-48EE-9438-99BE81AC704C}.Release|Any CPU.Build.0 = Release|Any CPU - {B0DAF5CC-6B09-48EE-9438-99BE81AC704C}.Release|x64.ActiveCfg = Release|Any CPU - {B0DAF5CC-6B09-48EE-9438-99BE81AC704C}.Release|x64.Build.0 = Release|Any CPU - {B0DAF5CC-6B09-48EE-9438-99BE81AC704C}.Release|x86.ActiveCfg = Release|Any CPU - {B0DAF5CC-6B09-48EE-9438-99BE81AC704C}.Release|x86.Build.0 = Release|Any CPU - {CC44E5B9-E246-44FE-81B3-82394BF84707}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CC44E5B9-E246-44FE-81B3-82394BF84707}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CC44E5B9-E246-44FE-81B3-82394BF84707}.Debug|x64.ActiveCfg = Debug|Any CPU - {CC44E5B9-E246-44FE-81B3-82394BF84707}.Debug|x64.Build.0 = Debug|Any CPU - {CC44E5B9-E246-44FE-81B3-82394BF84707}.Debug|x86.ActiveCfg = Debug|Any CPU - {CC44E5B9-E246-44FE-81B3-82394BF84707}.Debug|x86.Build.0 = Debug|Any CPU - {CC44E5B9-E246-44FE-81B3-82394BF84707}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CC44E5B9-E246-44FE-81B3-82394BF84707}.Release|Any CPU.Build.0 = Release|Any CPU - {CC44E5B9-E246-44FE-81B3-82394BF84707}.Release|x64.ActiveCfg = Release|Any CPU - {CC44E5B9-E246-44FE-81B3-82394BF84707}.Release|x64.Build.0 = Release|Any CPU - {CC44E5B9-E246-44FE-81B3-82394BF84707}.Release|x86.ActiveCfg = Release|Any CPU - {CC44E5B9-E246-44FE-81B3-82394BF84707}.Release|x86.Build.0 = Release|Any CPU - {A31CF827-F17B-48C1-9EB1-31D2EF87BD66}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A31CF827-F17B-48C1-9EB1-31D2EF87BD66}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A31CF827-F17B-48C1-9EB1-31D2EF87BD66}.Debug|x64.ActiveCfg = Debug|Any CPU - {A31CF827-F17B-48C1-9EB1-31D2EF87BD66}.Debug|x86.ActiveCfg = Debug|Any CPU - {A31CF827-F17B-48C1-9EB1-31D2EF87BD66}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A31CF827-F17B-48C1-9EB1-31D2EF87BD66}.Release|Any CPU.Build.0 = Release|Any CPU - {A31CF827-F17B-48C1-9EB1-31D2EF87BD66}.Release|x64.ActiveCfg = Release|Any CPU - {A31CF827-F17B-48C1-9EB1-31D2EF87BD66}.Release|x86.ActiveCfg = Release|Any CPU - {1721B3E2-4CE8-4FAF-A00B-766478F60B54}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1721B3E2-4CE8-4FAF-A00B-766478F60B54}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1721B3E2-4CE8-4FAF-A00B-766478F60B54}.Debug|x64.ActiveCfg = Debug|Any CPU - {1721B3E2-4CE8-4FAF-A00B-766478F60B54}.Debug|x64.Build.0 = Debug|Any CPU - {1721B3E2-4CE8-4FAF-A00B-766478F60B54}.Debug|x86.ActiveCfg = Debug|Any CPU - {1721B3E2-4CE8-4FAF-A00B-766478F60B54}.Debug|x86.Build.0 = Debug|Any CPU - {1721B3E2-4CE8-4FAF-A00B-766478F60B54}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1721B3E2-4CE8-4FAF-A00B-766478F60B54}.Release|Any CPU.Build.0 = Release|Any CPU - {1721B3E2-4CE8-4FAF-A00B-766478F60B54}.Release|x64.ActiveCfg = Release|Any CPU - {1721B3E2-4CE8-4FAF-A00B-766478F60B54}.Release|x64.Build.0 = Release|Any CPU - {1721B3E2-4CE8-4FAF-A00B-766478F60B54}.Release|x86.ActiveCfg = Release|Any CPU - {1721B3E2-4CE8-4FAF-A00B-766478F60B54}.Release|x86.Build.0 = Release|Any CPU - {6E4E4DF1-9A3E-4DB6-98BC-6784125A8FF5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6E4E4DF1-9A3E-4DB6-98BC-6784125A8FF5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6E4E4DF1-9A3E-4DB6-98BC-6784125A8FF5}.Debug|x64.ActiveCfg = Debug|Any CPU - {6E4E4DF1-9A3E-4DB6-98BC-6784125A8FF5}.Debug|x64.Build.0 = Debug|Any CPU - {6E4E4DF1-9A3E-4DB6-98BC-6784125A8FF5}.Debug|x86.ActiveCfg = Debug|Any CPU - {6E4E4DF1-9A3E-4DB6-98BC-6784125A8FF5}.Debug|x86.Build.0 = Debug|Any CPU - {6E4E4DF1-9A3E-4DB6-98BC-6784125A8FF5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6E4E4DF1-9A3E-4DB6-98BC-6784125A8FF5}.Release|Any CPU.Build.0 = Release|Any CPU - {6E4E4DF1-9A3E-4DB6-98BC-6784125A8FF5}.Release|x64.ActiveCfg = Release|Any CPU - {6E4E4DF1-9A3E-4DB6-98BC-6784125A8FF5}.Release|x64.Build.0 = Release|Any CPU - {6E4E4DF1-9A3E-4DB6-98BC-6784125A8FF5}.Release|x86.ActiveCfg = Release|Any CPU - {6E4E4DF1-9A3E-4DB6-98BC-6784125A8FF5}.Release|x86.Build.0 = Release|Any CPU - {6B9F3B39-7CDA-46ED-BAFC-F54A57792597}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6B9F3B39-7CDA-46ED-BAFC-F54A57792597}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6B9F3B39-7CDA-46ED-BAFC-F54A57792597}.Debug|x64.ActiveCfg = Debug|Any CPU - {6B9F3B39-7CDA-46ED-BAFC-F54A57792597}.Debug|x64.Build.0 = Debug|Any CPU - {6B9F3B39-7CDA-46ED-BAFC-F54A57792597}.Debug|x86.ActiveCfg = Debug|Any CPU - {6B9F3B39-7CDA-46ED-BAFC-F54A57792597}.Debug|x86.Build.0 = Debug|Any CPU - {6B9F3B39-7CDA-46ED-BAFC-F54A57792597}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6B9F3B39-7CDA-46ED-BAFC-F54A57792597}.Release|Any CPU.Build.0 = Release|Any CPU - {6B9F3B39-7CDA-46ED-BAFC-F54A57792597}.Release|x64.ActiveCfg = Release|Any CPU - {6B9F3B39-7CDA-46ED-BAFC-F54A57792597}.Release|x64.Build.0 = Release|Any CPU - {6B9F3B39-7CDA-46ED-BAFC-F54A57792597}.Release|x86.ActiveCfg = Release|Any CPU - {6B9F3B39-7CDA-46ED-BAFC-F54A57792597}.Release|x86.Build.0 = Release|Any CPU - {17C03355-60EB-4A66-A62B-DF2A8407FF8F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {17C03355-60EB-4A66-A62B-DF2A8407FF8F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {17C03355-60EB-4A66-A62B-DF2A8407FF8F}.Debug|x64.ActiveCfg = Debug|Any CPU - {17C03355-60EB-4A66-A62B-DF2A8407FF8F}.Debug|x64.Build.0 = Debug|Any CPU - {17C03355-60EB-4A66-A62B-DF2A8407FF8F}.Debug|x86.ActiveCfg = Debug|Any CPU - {17C03355-60EB-4A66-A62B-DF2A8407FF8F}.Debug|x86.Build.0 = Debug|Any CPU - {17C03355-60EB-4A66-A62B-DF2A8407FF8F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {17C03355-60EB-4A66-A62B-DF2A8407FF8F}.Release|Any CPU.Build.0 = Release|Any CPU - {17C03355-60EB-4A66-A62B-DF2A8407FF8F}.Release|x64.ActiveCfg = Release|Any CPU - {17C03355-60EB-4A66-A62B-DF2A8407FF8F}.Release|x64.Build.0 = Release|Any CPU - {17C03355-60EB-4A66-A62B-DF2A8407FF8F}.Release|x86.ActiveCfg = Release|Any CPU - {17C03355-60EB-4A66-A62B-DF2A8407FF8F}.Release|x86.Build.0 = Release|Any CPU - {38087D48-66EF-4379-9989-CA6F2CA7DAC9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {38087D48-66EF-4379-9989-CA6F2CA7DAC9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {38087D48-66EF-4379-9989-CA6F2CA7DAC9}.Debug|x64.ActiveCfg = Debug|Any CPU - {38087D48-66EF-4379-9989-CA6F2CA7DAC9}.Debug|x64.Build.0 = Debug|Any CPU - {38087D48-66EF-4379-9989-CA6F2CA7DAC9}.Debug|x86.ActiveCfg = Debug|Any CPU - {38087D48-66EF-4379-9989-CA6F2CA7DAC9}.Debug|x86.Build.0 = Debug|Any CPU - {38087D48-66EF-4379-9989-CA6F2CA7DAC9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {38087D48-66EF-4379-9989-CA6F2CA7DAC9}.Release|Any CPU.Build.0 = Release|Any CPU - {38087D48-66EF-4379-9989-CA6F2CA7DAC9}.Release|x64.ActiveCfg = Release|Any CPU - {38087D48-66EF-4379-9989-CA6F2CA7DAC9}.Release|x64.Build.0 = Release|Any CPU - {38087D48-66EF-4379-9989-CA6F2CA7DAC9}.Release|x86.ActiveCfg = Release|Any CPU - {38087D48-66EF-4379-9989-CA6F2CA7DAC9}.Release|x86.Build.0 = Release|Any CPU - {ADECA52F-A04F-4A8F-812E-59A9FBE3EC68}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {ADECA52F-A04F-4A8F-812E-59A9FBE3EC68}.Debug|Any CPU.Build.0 = Debug|Any CPU - {ADECA52F-A04F-4A8F-812E-59A9FBE3EC68}.Debug|x64.ActiveCfg = Debug|Any CPU - {ADECA52F-A04F-4A8F-812E-59A9FBE3EC68}.Debug|x64.Build.0 = Debug|Any CPU - {ADECA52F-A04F-4A8F-812E-59A9FBE3EC68}.Debug|x86.ActiveCfg = Debug|Any CPU - {ADECA52F-A04F-4A8F-812E-59A9FBE3EC68}.Debug|x86.Build.0 = Debug|Any CPU - {ADECA52F-A04F-4A8F-812E-59A9FBE3EC68}.Release|Any CPU.ActiveCfg = Release|Any CPU - {ADECA52F-A04F-4A8F-812E-59A9FBE3EC68}.Release|Any CPU.Build.0 = Release|Any CPU - {ADECA52F-A04F-4A8F-812E-59A9FBE3EC68}.Release|x64.ActiveCfg = Release|Any CPU - {ADECA52F-A04F-4A8F-812E-59A9FBE3EC68}.Release|x64.Build.0 = Release|Any CPU - {ADECA52F-A04F-4A8F-812E-59A9FBE3EC68}.Release|x86.ActiveCfg = Release|Any CPU - {ADECA52F-A04F-4A8F-812E-59A9FBE3EC68}.Release|x86.Build.0 = Release|Any CPU - {6AD1E7B2-B9A7-497C-A61D-21C6FCE9F3BC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6AD1E7B2-B9A7-497C-A61D-21C6FCE9F3BC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6AD1E7B2-B9A7-497C-A61D-21C6FCE9F3BC}.Debug|x64.ActiveCfg = Debug|Any CPU - {6AD1E7B2-B9A7-497C-A61D-21C6FCE9F3BC}.Debug|x64.Build.0 = Debug|Any CPU - {6AD1E7B2-B9A7-497C-A61D-21C6FCE9F3BC}.Debug|x86.ActiveCfg = Debug|Any CPU - {6AD1E7B2-B9A7-497C-A61D-21C6FCE9F3BC}.Debug|x86.Build.0 = Debug|Any CPU - {6AD1E7B2-B9A7-497C-A61D-21C6FCE9F3BC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6AD1E7B2-B9A7-497C-A61D-21C6FCE9F3BC}.Release|Any CPU.Build.0 = Release|Any CPU - {6AD1E7B2-B9A7-497C-A61D-21C6FCE9F3BC}.Release|x64.ActiveCfg = Release|Any CPU - {6AD1E7B2-B9A7-497C-A61D-21C6FCE9F3BC}.Release|x64.Build.0 = Release|Any CPU - {6AD1E7B2-B9A7-497C-A61D-21C6FCE9F3BC}.Release|x86.ActiveCfg = Release|Any CPU - {6AD1E7B2-B9A7-497C-A61D-21C6FCE9F3BC}.Release|x86.Build.0 = Release|Any CPU - {097E5E27-6233-45BC-9C76-81C9ECF34DE2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {097E5E27-6233-45BC-9C76-81C9ECF34DE2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {097E5E27-6233-45BC-9C76-81C9ECF34DE2}.Debug|x64.ActiveCfg = Debug|Any CPU - {097E5E27-6233-45BC-9C76-81C9ECF34DE2}.Debug|x64.Build.0 = Debug|Any CPU - {097E5E27-6233-45BC-9C76-81C9ECF34DE2}.Debug|x86.ActiveCfg = Debug|Any CPU - {097E5E27-6233-45BC-9C76-81C9ECF34DE2}.Debug|x86.Build.0 = Debug|Any CPU - {097E5E27-6233-45BC-9C76-81C9ECF34DE2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {097E5E27-6233-45BC-9C76-81C9ECF34DE2}.Release|Any CPU.Build.0 = Release|Any CPU - {097E5E27-6233-45BC-9C76-81C9ECF34DE2}.Release|x64.ActiveCfg = Release|Any CPU - {097E5E27-6233-45BC-9C76-81C9ECF34DE2}.Release|x64.Build.0 = Release|Any CPU - {097E5E27-6233-45BC-9C76-81C9ECF34DE2}.Release|x86.ActiveCfg = Release|Any CPU - {097E5E27-6233-45BC-9C76-81C9ECF34DE2}.Release|x86.Build.0 = Release|Any CPU - {5F006E2E-82A2-4696-81DF-DF7501622BFE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5F006E2E-82A2-4696-81DF-DF7501622BFE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5F006E2E-82A2-4696-81DF-DF7501622BFE}.Debug|x64.ActiveCfg = Debug|Any CPU - {5F006E2E-82A2-4696-81DF-DF7501622BFE}.Debug|x64.Build.0 = Debug|Any CPU - {5F006E2E-82A2-4696-81DF-DF7501622BFE}.Debug|x86.ActiveCfg = Debug|Any CPU - {5F006E2E-82A2-4696-81DF-DF7501622BFE}.Debug|x86.Build.0 = Debug|Any CPU - {5F006E2E-82A2-4696-81DF-DF7501622BFE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5F006E2E-82A2-4696-81DF-DF7501622BFE}.Release|Any CPU.Build.0 = Release|Any CPU - {5F006E2E-82A2-4696-81DF-DF7501622BFE}.Release|x64.ActiveCfg = Release|Any CPU - {5F006E2E-82A2-4696-81DF-DF7501622BFE}.Release|x64.Build.0 = Release|Any CPU - {5F006E2E-82A2-4696-81DF-DF7501622BFE}.Release|x86.ActiveCfg = Release|Any CPU - {5F006E2E-82A2-4696-81DF-DF7501622BFE}.Release|x86.Build.0 = Release|Any CPU - {302CEFC1-3011-4B2A-B443-EA6FA0C0B4FD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {302CEFC1-3011-4B2A-B443-EA6FA0C0B4FD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {302CEFC1-3011-4B2A-B443-EA6FA0C0B4FD}.Debug|x64.ActiveCfg = Debug|Any CPU - {302CEFC1-3011-4B2A-B443-EA6FA0C0B4FD}.Debug|x64.Build.0 = Debug|Any CPU - {302CEFC1-3011-4B2A-B443-EA6FA0C0B4FD}.Debug|x86.ActiveCfg = Debug|Any CPU - {302CEFC1-3011-4B2A-B443-EA6FA0C0B4FD}.Debug|x86.Build.0 = Debug|Any CPU - {302CEFC1-3011-4B2A-B443-EA6FA0C0B4FD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {302CEFC1-3011-4B2A-B443-EA6FA0C0B4FD}.Release|Any CPU.Build.0 = Release|Any CPU - {302CEFC1-3011-4B2A-B443-EA6FA0C0B4FD}.Release|x64.ActiveCfg = Release|Any CPU - {302CEFC1-3011-4B2A-B443-EA6FA0C0B4FD}.Release|x64.Build.0 = Release|Any CPU - {302CEFC1-3011-4B2A-B443-EA6FA0C0B4FD}.Release|x86.ActiveCfg = Release|Any CPU - {302CEFC1-3011-4B2A-B443-EA6FA0C0B4FD}.Release|x86.Build.0 = Release|Any CPU - {313955BB-513D-43BD-9367-938635B9AC9A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {313955BB-513D-43BD-9367-938635B9AC9A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {313955BB-513D-43BD-9367-938635B9AC9A}.Debug|x64.ActiveCfg = Debug|Any CPU - {313955BB-513D-43BD-9367-938635B9AC9A}.Debug|x64.Build.0 = Debug|Any CPU - {313955BB-513D-43BD-9367-938635B9AC9A}.Debug|x86.ActiveCfg = Debug|Any CPU - {313955BB-513D-43BD-9367-938635B9AC9A}.Debug|x86.Build.0 = Debug|Any CPU - {313955BB-513D-43BD-9367-938635B9AC9A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {313955BB-513D-43BD-9367-938635B9AC9A}.Release|Any CPU.Build.0 = Release|Any CPU - {313955BB-513D-43BD-9367-938635B9AC9A}.Release|x64.ActiveCfg = Release|Any CPU - {313955BB-513D-43BD-9367-938635B9AC9A}.Release|x64.Build.0 = Release|Any CPU - {313955BB-513D-43BD-9367-938635B9AC9A}.Release|x86.ActiveCfg = Release|Any CPU - {313955BB-513D-43BD-9367-938635B9AC9A}.Release|x86.Build.0 = Release|Any CPU - {17A3F4FC-4BE8-4865-BBD3-50116CE7599B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {17A3F4FC-4BE8-4865-BBD3-50116CE7599B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {17A3F4FC-4BE8-4865-BBD3-50116CE7599B}.Debug|x64.ActiveCfg = Debug|Any CPU - {17A3F4FC-4BE8-4865-BBD3-50116CE7599B}.Debug|x64.Build.0 = Debug|Any CPU - {17A3F4FC-4BE8-4865-BBD3-50116CE7599B}.Debug|x86.ActiveCfg = Debug|Any CPU - {17A3F4FC-4BE8-4865-BBD3-50116CE7599B}.Debug|x86.Build.0 = Debug|Any CPU - {17A3F4FC-4BE8-4865-BBD3-50116CE7599B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {17A3F4FC-4BE8-4865-BBD3-50116CE7599B}.Release|Any CPU.Build.0 = Release|Any CPU - {17A3F4FC-4BE8-4865-BBD3-50116CE7599B}.Release|x64.ActiveCfg = Release|Any CPU - {17A3F4FC-4BE8-4865-BBD3-50116CE7599B}.Release|x64.Build.0 = Release|Any CPU - {17A3F4FC-4BE8-4865-BBD3-50116CE7599B}.Release|x86.ActiveCfg = Release|Any CPU - {17A3F4FC-4BE8-4865-BBD3-50116CE7599B}.Release|x86.Build.0 = Release|Any CPU - {782CFC81-0B0E-4722-B685-52B3CC137060}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {782CFC81-0B0E-4722-B685-52B3CC137060}.Debug|Any CPU.Build.0 = Debug|Any CPU - {782CFC81-0B0E-4722-B685-52B3CC137060}.Debug|x64.ActiveCfg = Debug|Any CPU - {782CFC81-0B0E-4722-B685-52B3CC137060}.Debug|x64.Build.0 = Debug|Any CPU - {782CFC81-0B0E-4722-B685-52B3CC137060}.Debug|x86.ActiveCfg = Debug|Any CPU - {782CFC81-0B0E-4722-B685-52B3CC137060}.Debug|x86.Build.0 = Debug|Any CPU - {782CFC81-0B0E-4722-B685-52B3CC137060}.Release|Any CPU.ActiveCfg = Release|Any CPU - {782CFC81-0B0E-4722-B685-52B3CC137060}.Release|Any CPU.Build.0 = Release|Any CPU - {782CFC81-0B0E-4722-B685-52B3CC137060}.Release|x64.ActiveCfg = Release|Any CPU - {782CFC81-0B0E-4722-B685-52B3CC137060}.Release|x64.Build.0 = Release|Any CPU - {782CFC81-0B0E-4722-B685-52B3CC137060}.Release|x86.ActiveCfg = Release|Any CPU - {782CFC81-0B0E-4722-B685-52B3CC137060}.Release|x86.Build.0 = Release|Any CPU - {331269B7-C7F6-453F-98FB-D59516C6044E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {331269B7-C7F6-453F-98FB-D59516C6044E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {331269B7-C7F6-453F-98FB-D59516C6044E}.Debug|x64.ActiveCfg = Debug|Any CPU - {331269B7-C7F6-453F-98FB-D59516C6044E}.Debug|x64.Build.0 = Debug|Any CPU - {331269B7-C7F6-453F-98FB-D59516C6044E}.Debug|x86.ActiveCfg = Debug|Any CPU - {331269B7-C7F6-453F-98FB-D59516C6044E}.Debug|x86.Build.0 = Debug|Any CPU - {331269B7-C7F6-453F-98FB-D59516C6044E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {331269B7-C7F6-453F-98FB-D59516C6044E}.Release|Any CPU.Build.0 = Release|Any CPU - {331269B7-C7F6-453F-98FB-D59516C6044E}.Release|x64.ActiveCfg = Release|Any CPU - {331269B7-C7F6-453F-98FB-D59516C6044E}.Release|x64.Build.0 = Release|Any CPU - {331269B7-C7F6-453F-98FB-D59516C6044E}.Release|x86.ActiveCfg = Release|Any CPU - {331269B7-C7F6-453F-98FB-D59516C6044E}.Release|x86.Build.0 = Release|Any CPU - {678455CA-F4F2-4285-B414-E220026C4AA7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {678455CA-F4F2-4285-B414-E220026C4AA7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {678455CA-F4F2-4285-B414-E220026C4AA7}.Debug|x64.ActiveCfg = Debug|Any CPU - {678455CA-F4F2-4285-B414-E220026C4AA7}.Debug|x64.Build.0 = Debug|Any CPU - {678455CA-F4F2-4285-B414-E220026C4AA7}.Debug|x86.ActiveCfg = Debug|Any CPU - {678455CA-F4F2-4285-B414-E220026C4AA7}.Debug|x86.Build.0 = Debug|Any CPU - {678455CA-F4F2-4285-B414-E220026C4AA7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {678455CA-F4F2-4285-B414-E220026C4AA7}.Release|Any CPU.Build.0 = Release|Any CPU - {678455CA-F4F2-4285-B414-E220026C4AA7}.Release|x64.ActiveCfg = Release|Any CPU - {678455CA-F4F2-4285-B414-E220026C4AA7}.Release|x64.Build.0 = Release|Any CPU - {678455CA-F4F2-4285-B414-E220026C4AA7}.Release|x86.ActiveCfg = Release|Any CPU - {678455CA-F4F2-4285-B414-E220026C4AA7}.Release|x86.Build.0 = Release|Any CPU - {45B91ECD-3F16-401F-BA6F-DE4E42661EAC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {45B91ECD-3F16-401F-BA6F-DE4E42661EAC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {45B91ECD-3F16-401F-BA6F-DE4E42661EAC}.Debug|x64.ActiveCfg = Debug|Any CPU - {45B91ECD-3F16-401F-BA6F-DE4E42661EAC}.Debug|x64.Build.0 = Debug|Any CPU - {45B91ECD-3F16-401F-BA6F-DE4E42661EAC}.Debug|x86.ActiveCfg = Debug|Any CPU - {45B91ECD-3F16-401F-BA6F-DE4E42661EAC}.Debug|x86.Build.0 = Debug|Any CPU - {45B91ECD-3F16-401F-BA6F-DE4E42661EAC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {45B91ECD-3F16-401F-BA6F-DE4E42661EAC}.Release|Any CPU.Build.0 = Release|Any CPU - {45B91ECD-3F16-401F-BA6F-DE4E42661EAC}.Release|x64.ActiveCfg = Release|Any CPU - {45B91ECD-3F16-401F-BA6F-DE4E42661EAC}.Release|x64.Build.0 = Release|Any CPU - {45B91ECD-3F16-401F-BA6F-DE4E42661EAC}.Release|x86.ActiveCfg = Release|Any CPU - {45B91ECD-3F16-401F-BA6F-DE4E42661EAC}.Release|x86.Build.0 = Release|Any CPU - {50300F25-6B64-4869-9684-CB14D44E468A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {50300F25-6B64-4869-9684-CB14D44E468A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {50300F25-6B64-4869-9684-CB14D44E468A}.Debug|x64.ActiveCfg = Debug|Any CPU - {50300F25-6B64-4869-9684-CB14D44E468A}.Debug|x64.Build.0 = Debug|Any CPU - {50300F25-6B64-4869-9684-CB14D44E468A}.Debug|x86.ActiveCfg = Debug|Any CPU - {50300F25-6B64-4869-9684-CB14D44E468A}.Debug|x86.Build.0 = Debug|Any CPU - {50300F25-6B64-4869-9684-CB14D44E468A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {50300F25-6B64-4869-9684-CB14D44E468A}.Release|Any CPU.Build.0 = Release|Any CPU - {50300F25-6B64-4869-9684-CB14D44E468A}.Release|x64.ActiveCfg = Release|Any CPU - {50300F25-6B64-4869-9684-CB14D44E468A}.Release|x64.Build.0 = Release|Any CPU - {50300F25-6B64-4869-9684-CB14D44E468A}.Release|x86.ActiveCfg = Release|Any CPU - {50300F25-6B64-4869-9684-CB14D44E468A}.Release|x86.Build.0 = Release|Any CPU - {1FAB5D02-237C-4B9C-B820-2EB7C3B6E63A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1FAB5D02-237C-4B9C-B820-2EB7C3B6E63A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1FAB5D02-237C-4B9C-B820-2EB7C3B6E63A}.Debug|Any CPU.Deploy.0 = Debug|Any CPU - {1FAB5D02-237C-4B9C-B820-2EB7C3B6E63A}.Debug|x64.ActiveCfg = Debug|x64 - {1FAB5D02-237C-4B9C-B820-2EB7C3B6E63A}.Debug|x64.Build.0 = Debug|x64 - {1FAB5D02-237C-4B9C-B820-2EB7C3B6E63A}.Debug|x64.Deploy.0 = Debug|x64 - {1FAB5D02-237C-4B9C-B820-2EB7C3B6E63A}.Debug|x86.ActiveCfg = Debug|x86 - {1FAB5D02-237C-4B9C-B820-2EB7C3B6E63A}.Debug|x86.Build.0 = Debug|x86 - {1FAB5D02-237C-4B9C-B820-2EB7C3B6E63A}.Debug|x86.Deploy.0 = Debug|x86 - {1FAB5D02-237C-4B9C-B820-2EB7C3B6E63A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1FAB5D02-237C-4B9C-B820-2EB7C3B6E63A}.Release|Any CPU.Build.0 = Release|Any CPU - {1FAB5D02-237C-4B9C-B820-2EB7C3B6E63A}.Release|Any CPU.Deploy.0 = Release|Any CPU - {1FAB5D02-237C-4B9C-B820-2EB7C3B6E63A}.Release|x64.ActiveCfg = Release|x64 - {1FAB5D02-237C-4B9C-B820-2EB7C3B6E63A}.Release|x64.Build.0 = Release|x64 - {1FAB5D02-237C-4B9C-B820-2EB7C3B6E63A}.Release|x64.Deploy.0 = Release|x64 - {1FAB5D02-237C-4B9C-B820-2EB7C3B6E63A}.Release|x86.ActiveCfg = Release|x86 - {1FAB5D02-237C-4B9C-B820-2EB7C3B6E63A}.Release|x86.Build.0 = Release|x86 - {1FAB5D02-237C-4B9C-B820-2EB7C3B6E63A}.Release|x86.Deploy.0 = Release|x86 - {EB4659EE-9D90-4413-A9E2-301715CAF4EF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EB4659EE-9D90-4413-A9E2-301715CAF4EF}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EB4659EE-9D90-4413-A9E2-301715CAF4EF}.Debug|x64.ActiveCfg = Debug|Any CPU - {EB4659EE-9D90-4413-A9E2-301715CAF4EF}.Debug|x64.Build.0 = Debug|Any CPU - {EB4659EE-9D90-4413-A9E2-301715CAF4EF}.Debug|x86.ActiveCfg = Debug|Any CPU - {EB4659EE-9D90-4413-A9E2-301715CAF4EF}.Debug|x86.Build.0 = Debug|Any CPU - {EB4659EE-9D90-4413-A9E2-301715CAF4EF}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EB4659EE-9D90-4413-A9E2-301715CAF4EF}.Release|Any CPU.Build.0 = Release|Any CPU - {EB4659EE-9D90-4413-A9E2-301715CAF4EF}.Release|x64.ActiveCfg = Release|Any CPU - {EB4659EE-9D90-4413-A9E2-301715CAF4EF}.Release|x64.Build.0 = Release|Any CPU - {EB4659EE-9D90-4413-A9E2-301715CAF4EF}.Release|x86.ActiveCfg = Release|Any CPU - {EB4659EE-9D90-4413-A9E2-301715CAF4EF}.Release|x86.Build.0 = Release|Any CPU - {E5A7F376-432F-44DB-94A7-A14A2D4E5C4B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E5A7F376-432F-44DB-94A7-A14A2D4E5C4B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E5A7F376-432F-44DB-94A7-A14A2D4E5C4B}.Debug|x64.ActiveCfg = Debug|Any CPU - {E5A7F376-432F-44DB-94A7-A14A2D4E5C4B}.Debug|x64.Build.0 = Debug|Any CPU - {E5A7F376-432F-44DB-94A7-A14A2D4E5C4B}.Debug|x86.ActiveCfg = Debug|Any CPU - {E5A7F376-432F-44DB-94A7-A14A2D4E5C4B}.Debug|x86.Build.0 = Debug|Any CPU - {E5A7F376-432F-44DB-94A7-A14A2D4E5C4B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E5A7F376-432F-44DB-94A7-A14A2D4E5C4B}.Release|Any CPU.Build.0 = Release|Any CPU - {E5A7F376-432F-44DB-94A7-A14A2D4E5C4B}.Release|x64.ActiveCfg = Release|Any CPU - {E5A7F376-432F-44DB-94A7-A14A2D4E5C4B}.Release|x64.Build.0 = Release|Any CPU - {E5A7F376-432F-44DB-94A7-A14A2D4E5C4B}.Release|x86.ActiveCfg = Release|Any CPU - {E5A7F376-432F-44DB-94A7-A14A2D4E5C4B}.Release|x86.Build.0 = Release|Any CPU - {8CE621E6-B633-4957-8D64-508F54461DF0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8CE621E6-B633-4957-8D64-508F54461DF0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8CE621E6-B633-4957-8D64-508F54461DF0}.Debug|x64.ActiveCfg = Debug|Any CPU - {8CE621E6-B633-4957-8D64-508F54461DF0}.Debug|x64.Build.0 = Debug|Any CPU - {8CE621E6-B633-4957-8D64-508F54461DF0}.Debug|x86.ActiveCfg = Debug|Any CPU - {8CE621E6-B633-4957-8D64-508F54461DF0}.Debug|x86.Build.0 = Debug|Any CPU - {8CE621E6-B633-4957-8D64-508F54461DF0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8CE621E6-B633-4957-8D64-508F54461DF0}.Release|Any CPU.Build.0 = Release|Any CPU - {8CE621E6-B633-4957-8D64-508F54461DF0}.Release|x64.ActiveCfg = Release|Any CPU - {8CE621E6-B633-4957-8D64-508F54461DF0}.Release|x64.Build.0 = Release|Any CPU - {8CE621E6-B633-4957-8D64-508F54461DF0}.Release|x86.ActiveCfg = Release|Any CPU - {8CE621E6-B633-4957-8D64-508F54461DF0}.Release|x86.Build.0 = Release|Any CPU - {4451ED6E-508F-4627-987A-699C19A48DE5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4451ED6E-508F-4627-987A-699C19A48DE5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4451ED6E-508F-4627-987A-699C19A48DE5}.Debug|x64.ActiveCfg = Debug|Any CPU - {4451ED6E-508F-4627-987A-699C19A48DE5}.Debug|x64.Build.0 = Debug|Any CPU - {4451ED6E-508F-4627-987A-699C19A48DE5}.Debug|x86.ActiveCfg = Debug|Any CPU - {4451ED6E-508F-4627-987A-699C19A48DE5}.Debug|x86.Build.0 = Debug|Any CPU - {4451ED6E-508F-4627-987A-699C19A48DE5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4451ED6E-508F-4627-987A-699C19A48DE5}.Release|Any CPU.Build.0 = Release|Any CPU - {4451ED6E-508F-4627-987A-699C19A48DE5}.Release|x64.ActiveCfg = Release|Any CPU - {4451ED6E-508F-4627-987A-699C19A48DE5}.Release|x64.Build.0 = Release|Any CPU - {4451ED6E-508F-4627-987A-699C19A48DE5}.Release|x86.ActiveCfg = Release|Any CPU - {4451ED6E-508F-4627-987A-699C19A48DE5}.Release|x86.Build.0 = Release|Any CPU - {C1BE10FD-E8E1-47C7-94A9-90A24443A3CE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C1BE10FD-E8E1-47C7-94A9-90A24443A3CE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C1BE10FD-E8E1-47C7-94A9-90A24443A3CE}.Debug|x64.ActiveCfg = Debug|Any CPU - {C1BE10FD-E8E1-47C7-94A9-90A24443A3CE}.Debug|x64.Build.0 = Debug|Any CPU - {C1BE10FD-E8E1-47C7-94A9-90A24443A3CE}.Debug|x86.ActiveCfg = Debug|Any CPU - {C1BE10FD-E8E1-47C7-94A9-90A24443A3CE}.Debug|x86.Build.0 = Debug|Any CPU - {C1BE10FD-E8E1-47C7-94A9-90A24443A3CE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C1BE10FD-E8E1-47C7-94A9-90A24443A3CE}.Release|Any CPU.Build.0 = Release|Any CPU - {C1BE10FD-E8E1-47C7-94A9-90A24443A3CE}.Release|x64.ActiveCfg = Release|Any CPU - {C1BE10FD-E8E1-47C7-94A9-90A24443A3CE}.Release|x64.Build.0 = Release|Any CPU - {C1BE10FD-E8E1-47C7-94A9-90A24443A3CE}.Release|x86.ActiveCfg = Release|Any CPU - {C1BE10FD-E8E1-47C7-94A9-90A24443A3CE}.Release|x86.Build.0 = Release|Any CPU - {934740D8-9853-4EF7-AD9E-1A090329E70E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {934740D8-9853-4EF7-AD9E-1A090329E70E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {934740D8-9853-4EF7-AD9E-1A090329E70E}.Debug|x64.ActiveCfg = Debug|Any CPU - {934740D8-9853-4EF7-AD9E-1A090329E70E}.Debug|x64.Build.0 = Debug|Any CPU - {934740D8-9853-4EF7-AD9E-1A090329E70E}.Debug|x86.ActiveCfg = Debug|Any CPU - {934740D8-9853-4EF7-AD9E-1A090329E70E}.Debug|x86.Build.0 = Debug|Any CPU - {934740D8-9853-4EF7-AD9E-1A090329E70E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {934740D8-9853-4EF7-AD9E-1A090329E70E}.Release|Any CPU.Build.0 = Release|Any CPU - {934740D8-9853-4EF7-AD9E-1A090329E70E}.Release|x64.ActiveCfg = Release|Any CPU - {934740D8-9853-4EF7-AD9E-1A090329E70E}.Release|x64.Build.0 = Release|Any CPU - {934740D8-9853-4EF7-AD9E-1A090329E70E}.Release|x86.ActiveCfg = Release|Any CPU - {934740D8-9853-4EF7-AD9E-1A090329E70E}.Release|x86.Build.0 = Release|Any CPU - {9CFD42DE-61AE-4FD0-BBAD-A85807025C19}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9CFD42DE-61AE-4FD0-BBAD-A85807025C19}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9CFD42DE-61AE-4FD0-BBAD-A85807025C19}.Debug|x64.ActiveCfg = Debug|Any CPU - {9CFD42DE-61AE-4FD0-BBAD-A85807025C19}.Debug|x64.Build.0 = Debug|Any CPU - {9CFD42DE-61AE-4FD0-BBAD-A85807025C19}.Debug|x86.ActiveCfg = Debug|Any CPU - {9CFD42DE-61AE-4FD0-BBAD-A85807025C19}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9CFD42DE-61AE-4FD0-BBAD-A85807025C19}.Release|Any CPU.Build.0 = Release|Any CPU - {9CFD42DE-61AE-4FD0-BBAD-A85807025C19}.Release|x64.ActiveCfg = Release|Any CPU - {9CFD42DE-61AE-4FD0-BBAD-A85807025C19}.Release|x64.Build.0 = Release|Any CPU - {9CFD42DE-61AE-4FD0-BBAD-A85807025C19}.Release|x86.ActiveCfg = Release|Any CPU - {9CFD42DE-61AE-4FD0-BBAD-A85807025C19}.Release|x86.Build.0 = Release|Any CPU - {1521D741-3C9A-47D9-8CC2-062B881AA1D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1521D741-3C9A-47D9-8CC2-062B881AA1D1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1521D741-3C9A-47D9-8CC2-062B881AA1D1}.Debug|x64.ActiveCfg = Debug|Any CPU - {1521D741-3C9A-47D9-8CC2-062B881AA1D1}.Debug|x64.Build.0 = Debug|Any CPU - {1521D741-3C9A-47D9-8CC2-062B881AA1D1}.Debug|x86.ActiveCfg = Debug|Any CPU - {1521D741-3C9A-47D9-8CC2-062B881AA1D1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1521D741-3C9A-47D9-8CC2-062B881AA1D1}.Release|Any CPU.Build.0 = Release|Any CPU - {1521D741-3C9A-47D9-8CC2-062B881AA1D1}.Release|x64.ActiveCfg = Release|Any CPU - {1521D741-3C9A-47D9-8CC2-062B881AA1D1}.Release|x64.Build.0 = Release|Any CPU - {1521D741-3C9A-47D9-8CC2-062B881AA1D1}.Release|x86.ActiveCfg = Release|Any CPU - {1521D741-3C9A-47D9-8CC2-062B881AA1D1}.Release|x86.Build.0 = Release|Any CPU - {C746B9BF-0DE6-4D3A-B537-EC132486C76A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C746B9BF-0DE6-4D3A-B537-EC132486C76A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C746B9BF-0DE6-4D3A-B537-EC132486C76A}.Debug|x64.ActiveCfg = Debug|Any CPU - {C746B9BF-0DE6-4D3A-B537-EC132486C76A}.Debug|x64.Build.0 = Debug|Any CPU - {C746B9BF-0DE6-4D3A-B537-EC132486C76A}.Debug|x86.ActiveCfg = Debug|Any CPU - {C746B9BF-0DE6-4D3A-B537-EC132486C76A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C746B9BF-0DE6-4D3A-B537-EC132486C76A}.Release|Any CPU.Build.0 = Release|Any CPU - {C746B9BF-0DE6-4D3A-B537-EC132486C76A}.Release|x64.ActiveCfg = Release|Any CPU - {C746B9BF-0DE6-4D3A-B537-EC132486C76A}.Release|x64.Build.0 = Release|Any CPU - {C746B9BF-0DE6-4D3A-B537-EC132486C76A}.Release|x86.ActiveCfg = Release|Any CPU - {C746B9BF-0DE6-4D3A-B537-EC132486C76A}.Release|x86.Build.0 = Release|Any CPU - {8075BE2B-9D61-42D9-B099-F5854AEA4C86}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8075BE2B-9D61-42D9-B099-F5854AEA4C86}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8075BE2B-9D61-42D9-B099-F5854AEA4C86}.Debug|x64.ActiveCfg = Debug|Any CPU - {8075BE2B-9D61-42D9-B099-F5854AEA4C86}.Debug|x64.Build.0 = Debug|Any CPU - {8075BE2B-9D61-42D9-B099-F5854AEA4C86}.Debug|x86.ActiveCfg = Debug|Any CPU - {8075BE2B-9D61-42D9-B099-F5854AEA4C86}.Debug|x86.Build.0 = Debug|Any CPU - {8075BE2B-9D61-42D9-B099-F5854AEA4C86}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8075BE2B-9D61-42D9-B099-F5854AEA4C86}.Release|Any CPU.Build.0 = Release|Any CPU - {8075BE2B-9D61-42D9-B099-F5854AEA4C86}.Release|x64.ActiveCfg = Release|Any CPU - {8075BE2B-9D61-42D9-B099-F5854AEA4C86}.Release|x64.Build.0 = Release|Any CPU - {8075BE2B-9D61-42D9-B099-F5854AEA4C86}.Release|x86.ActiveCfg = Release|Any CPU - {8075BE2B-9D61-42D9-B099-F5854AEA4C86}.Release|x86.Build.0 = Release|Any CPU - {3046E8E0-2116-4FA2-B4EC-9BAAA181069C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3046E8E0-2116-4FA2-B4EC-9BAAA181069C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3046E8E0-2116-4FA2-B4EC-9BAAA181069C}.Debug|x64.ActiveCfg = Debug|Any CPU - {3046E8E0-2116-4FA2-B4EC-9BAAA181069C}.Debug|x64.Build.0 = Debug|Any CPU - {3046E8E0-2116-4FA2-B4EC-9BAAA181069C}.Debug|x86.ActiveCfg = Debug|Any CPU - {3046E8E0-2116-4FA2-B4EC-9BAAA181069C}.Debug|x86.Build.0 = Debug|Any CPU - {3046E8E0-2116-4FA2-B4EC-9BAAA181069C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3046E8E0-2116-4FA2-B4EC-9BAAA181069C}.Release|Any CPU.Build.0 = Release|Any CPU - {3046E8E0-2116-4FA2-B4EC-9BAAA181069C}.Release|x64.ActiveCfg = Release|Any CPU - {3046E8E0-2116-4FA2-B4EC-9BAAA181069C}.Release|x64.Build.0 = Release|Any CPU - {3046E8E0-2116-4FA2-B4EC-9BAAA181069C}.Release|x86.ActiveCfg = Release|Any CPU - {3046E8E0-2116-4FA2-B4EC-9BAAA181069C}.Release|x86.Build.0 = Release|Any CPU - {B352F52C-5091-4857-9BA8-3CD1221FC447}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B352F52C-5091-4857-9BA8-3CD1221FC447}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B352F52C-5091-4857-9BA8-3CD1221FC447}.Debug|x64.ActiveCfg = Debug|Any CPU - {B352F52C-5091-4857-9BA8-3CD1221FC447}.Debug|x64.Build.0 = Debug|Any CPU - {B352F52C-5091-4857-9BA8-3CD1221FC447}.Debug|x86.ActiveCfg = Debug|Any CPU - {B352F52C-5091-4857-9BA8-3CD1221FC447}.Debug|x86.Build.0 = Debug|Any CPU - {B352F52C-5091-4857-9BA8-3CD1221FC447}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B352F52C-5091-4857-9BA8-3CD1221FC447}.Release|Any CPU.Build.0 = Release|Any CPU - {B352F52C-5091-4857-9BA8-3CD1221FC447}.Release|x64.ActiveCfg = Release|Any CPU - {B352F52C-5091-4857-9BA8-3CD1221FC447}.Release|x64.Build.0 = Release|Any CPU - {B352F52C-5091-4857-9BA8-3CD1221FC447}.Release|x86.ActiveCfg = Release|Any CPU - {B352F52C-5091-4857-9BA8-3CD1221FC447}.Release|x86.Build.0 = Release|Any CPU - {C403C0EA-AB5D-4769-8D6D-C507BCBD2684}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C403C0EA-AB5D-4769-8D6D-C507BCBD2684}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C403C0EA-AB5D-4769-8D6D-C507BCBD2684}.Debug|x64.ActiveCfg = Debug|Any CPU - {C403C0EA-AB5D-4769-8D6D-C507BCBD2684}.Debug|x64.Build.0 = Debug|Any CPU - {C403C0EA-AB5D-4769-8D6D-C507BCBD2684}.Debug|x86.ActiveCfg = Debug|Any CPU - {C403C0EA-AB5D-4769-8D6D-C507BCBD2684}.Debug|x86.Build.0 = Debug|Any CPU - {C403C0EA-AB5D-4769-8D6D-C507BCBD2684}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C403C0EA-AB5D-4769-8D6D-C507BCBD2684}.Release|Any CPU.Build.0 = Release|Any CPU - {C403C0EA-AB5D-4769-8D6D-C507BCBD2684}.Release|x64.ActiveCfg = Release|Any CPU - {C403C0EA-AB5D-4769-8D6D-C507BCBD2684}.Release|x64.Build.0 = Release|Any CPU - {C403C0EA-AB5D-4769-8D6D-C507BCBD2684}.Release|x86.ActiveCfg = Release|Any CPU - {C403C0EA-AB5D-4769-8D6D-C507BCBD2684}.Release|x86.Build.0 = Release|Any CPU - {6ECDFE7A-CF7C-478B-922F-0CA23BE51A58}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6ECDFE7A-CF7C-478B-922F-0CA23BE51A58}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6ECDFE7A-CF7C-478B-922F-0CA23BE51A58}.Debug|x64.ActiveCfg = Debug|Any CPU - {6ECDFE7A-CF7C-478B-922F-0CA23BE51A58}.Debug|x64.Build.0 = Debug|Any CPU - {6ECDFE7A-CF7C-478B-922F-0CA23BE51A58}.Debug|x86.ActiveCfg = Debug|Any CPU - {6ECDFE7A-CF7C-478B-922F-0CA23BE51A58}.Debug|x86.Build.0 = Debug|Any CPU - {6ECDFE7A-CF7C-478B-922F-0CA23BE51A58}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6ECDFE7A-CF7C-478B-922F-0CA23BE51A58}.Release|Any CPU.Build.0 = Release|Any CPU - {6ECDFE7A-CF7C-478B-922F-0CA23BE51A58}.Release|x64.ActiveCfg = Release|Any CPU - {6ECDFE7A-CF7C-478B-922F-0CA23BE51A58}.Release|x64.Build.0 = Release|Any CPU - {6ECDFE7A-CF7C-478B-922F-0CA23BE51A58}.Release|x86.ActiveCfg = Release|Any CPU - {6ECDFE7A-CF7C-478B-922F-0CA23BE51A58}.Release|x86.Build.0 = Release|Any CPU - {58C7C38B-63B8-485B-9051-7A804E7DC270}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {58C7C38B-63B8-485B-9051-7A804E7DC270}.Debug|Any CPU.Build.0 = Debug|Any CPU - {58C7C38B-63B8-485B-9051-7A804E7DC270}.Debug|x64.ActiveCfg = Debug|Any CPU - {58C7C38B-63B8-485B-9051-7A804E7DC270}.Debug|x64.Build.0 = Debug|Any CPU - {58C7C38B-63B8-485B-9051-7A804E7DC270}.Debug|x86.ActiveCfg = Debug|Any CPU - {58C7C38B-63B8-485B-9051-7A804E7DC270}.Debug|x86.Build.0 = Debug|Any CPU - {58C7C38B-63B8-485B-9051-7A804E7DC270}.Release|Any CPU.ActiveCfg = Release|Any CPU - {58C7C38B-63B8-485B-9051-7A804E7DC270}.Release|Any CPU.Build.0 = Release|Any CPU - {58C7C38B-63B8-485B-9051-7A804E7DC270}.Release|x64.ActiveCfg = Release|Any CPU - {58C7C38B-63B8-485B-9051-7A804E7DC270}.Release|x64.Build.0 = Release|Any CPU - {58C7C38B-63B8-485B-9051-7A804E7DC270}.Release|x86.ActiveCfg = Release|Any CPU - {58C7C38B-63B8-485B-9051-7A804E7DC270}.Release|x86.Build.0 = Release|Any CPU - {5323002C-F5BF-40A2-9732-23F9E25EB8AA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5323002C-F5BF-40A2-9732-23F9E25EB8AA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5323002C-F5BF-40A2-9732-23F9E25EB8AA}.Debug|x64.ActiveCfg = Debug|Any CPU - {5323002C-F5BF-40A2-9732-23F9E25EB8AA}.Debug|x64.Build.0 = Debug|Any CPU - {5323002C-F5BF-40A2-9732-23F9E25EB8AA}.Debug|x86.ActiveCfg = Debug|Any CPU - {5323002C-F5BF-40A2-9732-23F9E25EB8AA}.Debug|x86.Build.0 = Debug|Any CPU - {5323002C-F5BF-40A2-9732-23F9E25EB8AA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5323002C-F5BF-40A2-9732-23F9E25EB8AA}.Release|Any CPU.Build.0 = Release|Any CPU - {5323002C-F5BF-40A2-9732-23F9E25EB8AA}.Release|x64.ActiveCfg = Release|Any CPU - {5323002C-F5BF-40A2-9732-23F9E25EB8AA}.Release|x64.Build.0 = Release|Any CPU - {5323002C-F5BF-40A2-9732-23F9E25EB8AA}.Release|x86.ActiveCfg = Release|Any CPU - {5323002C-F5BF-40A2-9732-23F9E25EB8AA}.Release|x86.Build.0 = Release|Any CPU - {77A8D383-EFCA-44E2-BFF0-F179B245E4A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {77A8D383-EFCA-44E2-BFF0-F179B245E4A9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {77A8D383-EFCA-44E2-BFF0-F179B245E4A9}.Debug|x64.ActiveCfg = Debug|Any CPU - {77A8D383-EFCA-44E2-BFF0-F179B245E4A9}.Debug|x64.Build.0 = Debug|Any CPU - {77A8D383-EFCA-44E2-BFF0-F179B245E4A9}.Debug|x86.ActiveCfg = Debug|Any CPU - {77A8D383-EFCA-44E2-BFF0-F179B245E4A9}.Debug|x86.Build.0 = Debug|Any CPU - {77A8D383-EFCA-44E2-BFF0-F179B245E4A9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {77A8D383-EFCA-44E2-BFF0-F179B245E4A9}.Release|Any CPU.Build.0 = Release|Any CPU - {77A8D383-EFCA-44E2-BFF0-F179B245E4A9}.Release|x64.ActiveCfg = Release|Any CPU - {77A8D383-EFCA-44E2-BFF0-F179B245E4A9}.Release|x64.Build.0 = Release|Any CPU - {77A8D383-EFCA-44E2-BFF0-F179B245E4A9}.Release|x86.ActiveCfg = Release|Any CPU - {77A8D383-EFCA-44E2-BFF0-F179B245E4A9}.Release|x86.Build.0 = Release|Any CPU - {E0B5CE9F-FB29-4873-A434-8D22F22EE84E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E0B5CE9F-FB29-4873-A434-8D22F22EE84E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E0B5CE9F-FB29-4873-A434-8D22F22EE84E}.Debug|x64.ActiveCfg = Debug|Any CPU - {E0B5CE9F-FB29-4873-A434-8D22F22EE84E}.Debug|x64.Build.0 = Debug|Any CPU - {E0B5CE9F-FB29-4873-A434-8D22F22EE84E}.Debug|x86.ActiveCfg = Debug|Any CPU - {E0B5CE9F-FB29-4873-A434-8D22F22EE84E}.Debug|x86.Build.0 = Debug|Any CPU - {E0B5CE9F-FB29-4873-A434-8D22F22EE84E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E0B5CE9F-FB29-4873-A434-8D22F22EE84E}.Release|Any CPU.Build.0 = Release|Any CPU - {E0B5CE9F-FB29-4873-A434-8D22F22EE84E}.Release|x64.ActiveCfg = Release|Any CPU - {E0B5CE9F-FB29-4873-A434-8D22F22EE84E}.Release|x64.Build.0 = Release|Any CPU - {E0B5CE9F-FB29-4873-A434-8D22F22EE84E}.Release|x86.ActiveCfg = Release|Any CPU - {E0B5CE9F-FB29-4873-A434-8D22F22EE84E}.Release|x86.Build.0 = Release|Any CPU - {824E112B-6FD9-4E73-BC0F-7E9FFA089CB2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {824E112B-6FD9-4E73-BC0F-7E9FFA089CB2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {824E112B-6FD9-4E73-BC0F-7E9FFA089CB2}.Debug|x64.ActiveCfg = Debug|Any CPU - {824E112B-6FD9-4E73-BC0F-7E9FFA089CB2}.Debug|x64.Build.0 = Debug|Any CPU - {824E112B-6FD9-4E73-BC0F-7E9FFA089CB2}.Debug|x86.ActiveCfg = Debug|Any CPU - {824E112B-6FD9-4E73-BC0F-7E9FFA089CB2}.Debug|x86.Build.0 = Debug|Any CPU - {824E112B-6FD9-4E73-BC0F-7E9FFA089CB2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {824E112B-6FD9-4E73-BC0F-7E9FFA089CB2}.Release|Any CPU.Build.0 = Release|Any CPU - {824E112B-6FD9-4E73-BC0F-7E9FFA089CB2}.Release|x64.ActiveCfg = Release|Any CPU - {824E112B-6FD9-4E73-BC0F-7E9FFA089CB2}.Release|x64.Build.0 = Release|Any CPU - {824E112B-6FD9-4E73-BC0F-7E9FFA089CB2}.Release|x86.ActiveCfg = Release|Any CPU - {824E112B-6FD9-4E73-BC0F-7E9FFA089CB2}.Release|x86.Build.0 = Release|Any CPU - {B997EAFC-13A1-48EB-8581-B9E3074F7A26}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B997EAFC-13A1-48EB-8581-B9E3074F7A26}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B997EAFC-13A1-48EB-8581-B9E3074F7A26}.Debug|x64.ActiveCfg = Debug|Any CPU - {B997EAFC-13A1-48EB-8581-B9E3074F7A26}.Debug|x64.Build.0 = Debug|Any CPU - {B997EAFC-13A1-48EB-8581-B9E3074F7A26}.Debug|x86.ActiveCfg = Debug|Any CPU - {B997EAFC-13A1-48EB-8581-B9E3074F7A26}.Debug|x86.Build.0 = Debug|Any CPU - {B997EAFC-13A1-48EB-8581-B9E3074F7A26}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B997EAFC-13A1-48EB-8581-B9E3074F7A26}.Release|Any CPU.Build.0 = Release|Any CPU - {B997EAFC-13A1-48EB-8581-B9E3074F7A26}.Release|x64.ActiveCfg = Release|Any CPU - {B997EAFC-13A1-48EB-8581-B9E3074F7A26}.Release|x64.Build.0 = Release|Any CPU - {B997EAFC-13A1-48EB-8581-B9E3074F7A26}.Release|x86.ActiveCfg = Release|Any CPU - {B997EAFC-13A1-48EB-8581-B9E3074F7A26}.Release|x86.Build.0 = Release|Any CPU - {47736DBE-538F-4A65-8AD3-3DD803343C81}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {47736DBE-538F-4A65-8AD3-3DD803343C81}.Debug|Any CPU.Build.0 = Debug|Any CPU - {47736DBE-538F-4A65-8AD3-3DD803343C81}.Debug|x64.ActiveCfg = Debug|Any CPU - {47736DBE-538F-4A65-8AD3-3DD803343C81}.Debug|x64.Build.0 = Debug|Any CPU - {47736DBE-538F-4A65-8AD3-3DD803343C81}.Debug|x86.ActiveCfg = Debug|Any CPU - {47736DBE-538F-4A65-8AD3-3DD803343C81}.Debug|x86.Build.0 = Debug|Any CPU - {47736DBE-538F-4A65-8AD3-3DD803343C81}.Release|Any CPU.ActiveCfg = Release|Any CPU - {47736DBE-538F-4A65-8AD3-3DD803343C81}.Release|Any CPU.Build.0 = Release|Any CPU - {47736DBE-538F-4A65-8AD3-3DD803343C81}.Release|x64.ActiveCfg = Release|Any CPU - {47736DBE-538F-4A65-8AD3-3DD803343C81}.Release|x64.Build.0 = Release|Any CPU - {47736DBE-538F-4A65-8AD3-3DD803343C81}.Release|x86.ActiveCfg = Release|Any CPU - {47736DBE-538F-4A65-8AD3-3DD803343C81}.Release|x86.Build.0 = Release|Any CPU - {956E7526-FD0A-4E38-AF31-B99D4B1FE17F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {956E7526-FD0A-4E38-AF31-B99D4B1FE17F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {956E7526-FD0A-4E38-AF31-B99D4B1FE17F}.Debug|x64.ActiveCfg = Debug|Any CPU - {956E7526-FD0A-4E38-AF31-B99D4B1FE17F}.Debug|x64.Build.0 = Debug|Any CPU - {956E7526-FD0A-4E38-AF31-B99D4B1FE17F}.Debug|x86.ActiveCfg = Debug|Any CPU - {956E7526-FD0A-4E38-AF31-B99D4B1FE17F}.Debug|x86.Build.0 = Debug|Any CPU - {956E7526-FD0A-4E38-AF31-B99D4B1FE17F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {956E7526-FD0A-4E38-AF31-B99D4B1FE17F}.Release|Any CPU.Build.0 = Release|Any CPU - {956E7526-FD0A-4E38-AF31-B99D4B1FE17F}.Release|x64.ActiveCfg = Release|Any CPU - {956E7526-FD0A-4E38-AF31-B99D4B1FE17F}.Release|x64.Build.0 = Release|Any CPU - {956E7526-FD0A-4E38-AF31-B99D4B1FE17F}.Release|x86.ActiveCfg = Release|Any CPU - {956E7526-FD0A-4E38-AF31-B99D4B1FE17F}.Release|x86.Build.0 = Release|Any CPU - {8B71A10A-B37F-447C-86DE-6460B5159BD0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8B71A10A-B37F-447C-86DE-6460B5159BD0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8B71A10A-B37F-447C-86DE-6460B5159BD0}.Debug|x64.ActiveCfg = Debug|Any CPU - {8B71A10A-B37F-447C-86DE-6460B5159BD0}.Debug|x64.Build.0 = Debug|Any CPU - {8B71A10A-B37F-447C-86DE-6460B5159BD0}.Debug|x86.ActiveCfg = Debug|Any CPU - {8B71A10A-B37F-447C-86DE-6460B5159BD0}.Debug|x86.Build.0 = Debug|Any CPU - {8B71A10A-B37F-447C-86DE-6460B5159BD0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8B71A10A-B37F-447C-86DE-6460B5159BD0}.Release|Any CPU.Build.0 = Release|Any CPU - {8B71A10A-B37F-447C-86DE-6460B5159BD0}.Release|x64.ActiveCfg = Release|Any CPU - {8B71A10A-B37F-447C-86DE-6460B5159BD0}.Release|x64.Build.0 = Release|Any CPU - {8B71A10A-B37F-447C-86DE-6460B5159BD0}.Release|x86.ActiveCfg = Release|Any CPU - {8B71A10A-B37F-447C-86DE-6460B5159BD0}.Release|x86.Build.0 = Release|Any CPU - {92A58FFE-C27A-4C5E-B6EF-0CF4C5C86CD9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {92A58FFE-C27A-4C5E-B6EF-0CF4C5C86CD9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {92A58FFE-C27A-4C5E-B6EF-0CF4C5C86CD9}.Debug|x64.ActiveCfg = Debug|Any CPU - {92A58FFE-C27A-4C5E-B6EF-0CF4C5C86CD9}.Debug|x64.Build.0 = Debug|Any CPU - {92A58FFE-C27A-4C5E-B6EF-0CF4C5C86CD9}.Debug|x86.ActiveCfg = Debug|Any CPU - {92A58FFE-C27A-4C5E-B6EF-0CF4C5C86CD9}.Debug|x86.Build.0 = Debug|Any CPU - {92A58FFE-C27A-4C5E-B6EF-0CF4C5C86CD9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {92A58FFE-C27A-4C5E-B6EF-0CF4C5C86CD9}.Release|Any CPU.Build.0 = Release|Any CPU - {92A58FFE-C27A-4C5E-B6EF-0CF4C5C86CD9}.Release|x64.ActiveCfg = Release|Any CPU - {92A58FFE-C27A-4C5E-B6EF-0CF4C5C86CD9}.Release|x64.Build.0 = Release|Any CPU - {92A58FFE-C27A-4C5E-B6EF-0CF4C5C86CD9}.Release|x86.ActiveCfg = Release|Any CPU - {92A58FFE-C27A-4C5E-B6EF-0CF4C5C86CD9}.Release|x86.Build.0 = Release|Any CPU - {64DAD0ED-C4A5-4460-9559-69CD02BFE134}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {64DAD0ED-C4A5-4460-9559-69CD02BFE134}.Debug|Any CPU.Build.0 = Debug|Any CPU - {64DAD0ED-C4A5-4460-9559-69CD02BFE134}.Debug|x64.ActiveCfg = Debug|Any CPU - {64DAD0ED-C4A5-4460-9559-69CD02BFE134}.Debug|x64.Build.0 = Debug|Any CPU - {64DAD0ED-C4A5-4460-9559-69CD02BFE134}.Debug|x86.ActiveCfg = Debug|Any CPU - {64DAD0ED-C4A5-4460-9559-69CD02BFE134}.Debug|x86.Build.0 = Debug|Any CPU - {64DAD0ED-C4A5-4460-9559-69CD02BFE134}.Release|Any CPU.ActiveCfg = Release|Any CPU - {64DAD0ED-C4A5-4460-9559-69CD02BFE134}.Release|Any CPU.Build.0 = Release|Any CPU - {64DAD0ED-C4A5-4460-9559-69CD02BFE134}.Release|x64.ActiveCfg = Release|Any CPU - {64DAD0ED-C4A5-4460-9559-69CD02BFE134}.Release|x64.Build.0 = Release|Any CPU - {64DAD0ED-C4A5-4460-9559-69CD02BFE134}.Release|x86.ActiveCfg = Release|Any CPU - {64DAD0ED-C4A5-4460-9559-69CD02BFE134}.Release|x86.Build.0 = Release|Any CPU - {5DEBB03B-5502-444A-9E50-E943A18F50D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5DEBB03B-5502-444A-9E50-E943A18F50D1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5DEBB03B-5502-444A-9E50-E943A18F50D1}.Debug|x64.ActiveCfg = Debug|x64 - {5DEBB03B-5502-444A-9E50-E943A18F50D1}.Debug|x64.Build.0 = Debug|x64 - {5DEBB03B-5502-444A-9E50-E943A18F50D1}.Debug|x86.ActiveCfg = Debug|Any CPU - {5DEBB03B-5502-444A-9E50-E943A18F50D1}.Debug|x86.Build.0 = Debug|Any CPU - {5DEBB03B-5502-444A-9E50-E943A18F50D1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5DEBB03B-5502-444A-9E50-E943A18F50D1}.Release|Any CPU.Build.0 = Release|Any CPU - {5DEBB03B-5502-444A-9E50-E943A18F50D1}.Release|x64.ActiveCfg = Release|x64 - {5DEBB03B-5502-444A-9E50-E943A18F50D1}.Release|x64.Build.0 = Release|x64 - {5DEBB03B-5502-444A-9E50-E943A18F50D1}.Release|x86.ActiveCfg = Release|Any CPU - {5DEBB03B-5502-444A-9E50-E943A18F50D1}.Release|x86.Build.0 = Release|Any CPU - {70950A43-0516-4902-B37F-9DE9EDF96FC6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {70950A43-0516-4902-B37F-9DE9EDF96FC6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {70950A43-0516-4902-B37F-9DE9EDF96FC6}.Debug|x64.ActiveCfg = Debug|Any CPU - {70950A43-0516-4902-B37F-9DE9EDF96FC6}.Debug|x64.Build.0 = Debug|Any CPU - {70950A43-0516-4902-B37F-9DE9EDF96FC6}.Debug|x86.ActiveCfg = Debug|Any CPU - {70950A43-0516-4902-B37F-9DE9EDF96FC6}.Debug|x86.Build.0 = Debug|Any CPU - {70950A43-0516-4902-B37F-9DE9EDF96FC6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {70950A43-0516-4902-B37F-9DE9EDF96FC6}.Release|Any CPU.Build.0 = Release|Any CPU - {70950A43-0516-4902-B37F-9DE9EDF96FC6}.Release|x64.ActiveCfg = Release|Any CPU - {70950A43-0516-4902-B37F-9DE9EDF96FC6}.Release|x64.Build.0 = Release|Any CPU - {70950A43-0516-4902-B37F-9DE9EDF96FC6}.Release|x86.ActiveCfg = Release|Any CPU - {70950A43-0516-4902-B37F-9DE9EDF96FC6}.Release|x86.Build.0 = Release|Any CPU - {E4A44DBD-9790-4C08-8AAF-C7215E514706}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E4A44DBD-9790-4C08-8AAF-C7215E514706}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E4A44DBD-9790-4C08-8AAF-C7215E514706}.Debug|x64.ActiveCfg = Debug|Any CPU - {E4A44DBD-9790-4C08-8AAF-C7215E514706}.Debug|x64.Build.0 = Debug|Any CPU - {E4A44DBD-9790-4C08-8AAF-C7215E514706}.Debug|x86.ActiveCfg = Debug|Any CPU - {E4A44DBD-9790-4C08-8AAF-C7215E514706}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E4A44DBD-9790-4C08-8AAF-C7215E514706}.Release|Any CPU.Build.0 = Release|Any CPU - {E4A44DBD-9790-4C08-8AAF-C7215E514706}.Release|x64.ActiveCfg = Release|Any CPU - {E4A44DBD-9790-4C08-8AAF-C7215E514706}.Release|x64.Build.0 = Release|Any CPU - {E4A44DBD-9790-4C08-8AAF-C7215E514706}.Release|x86.ActiveCfg = Release|Any CPU - {E4A44DBD-9790-4C08-8AAF-C7215E514706}.Release|x86.Build.0 = Release|Any CPU - {F7051618-E80F-4B53-B97D-D58147224630}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F7051618-E80F-4B53-B97D-D58147224630}.Debug|x64.ActiveCfg = Debug|Any CPU - {F7051618-E80F-4B53-B97D-D58147224630}.Debug|x64.Build.0 = Debug|Any CPU - {F7051618-E80F-4B53-B97D-D58147224630}.Debug|x86.ActiveCfg = Debug|Any CPU - {F7051618-E80F-4B53-B97D-D58147224630}.Debug|x86.Build.0 = Debug|Any CPU - {F7051618-E80F-4B53-B97D-D58147224630}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F7051618-E80F-4B53-B97D-D58147224630}.Release|x64.ActiveCfg = Release|Any CPU - {F7051618-E80F-4B53-B97D-D58147224630}.Release|x64.Build.0 = Release|Any CPU - {F7051618-E80F-4B53-B97D-D58147224630}.Release|x86.ActiveCfg = Release|Any CPU - {F7051618-E80F-4B53-B97D-D58147224630}.Release|x86.Build.0 = Release|Any CPU - {6C01471F-C35B-4390-9C76-F71CD8BD227F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6C01471F-C35B-4390-9C76-F71CD8BD227F}.Debug|x64.ActiveCfg = Debug|Any CPU - {6C01471F-C35B-4390-9C76-F71CD8BD227F}.Debug|x64.Build.0 = Debug|Any CPU - {6C01471F-C35B-4390-9C76-F71CD8BD227F}.Debug|x86.ActiveCfg = Debug|Any CPU - {6C01471F-C35B-4390-9C76-F71CD8BD227F}.Debug|x86.Build.0 = Debug|Any CPU - {6C01471F-C35B-4390-9C76-F71CD8BD227F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6C01471F-C35B-4390-9C76-F71CD8BD227F}.Release|x64.ActiveCfg = Release|Any CPU - {6C01471F-C35B-4390-9C76-F71CD8BD227F}.Release|x64.Build.0 = Release|Any CPU - {6C01471F-C35B-4390-9C76-F71CD8BD227F}.Release|x86.ActiveCfg = Release|Any CPU - {6C01471F-C35B-4390-9C76-F71CD8BD227F}.Release|x86.Build.0 = Release|Any CPU - {D06AB451-D752-48A1-9A35-8AECCAE1AF61}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D06AB451-D752-48A1-9A35-8AECCAE1AF61}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D06AB451-D752-48A1-9A35-8AECCAE1AF61}.Debug|x64.ActiveCfg = Debug|Any CPU - {D06AB451-D752-48A1-9A35-8AECCAE1AF61}.Debug|x64.Build.0 = Debug|Any CPU - {D06AB451-D752-48A1-9A35-8AECCAE1AF61}.Debug|x86.ActiveCfg = Debug|Any CPU - {D06AB451-D752-48A1-9A35-8AECCAE1AF61}.Debug|x86.Build.0 = Debug|Any CPU - {D06AB451-D752-48A1-9A35-8AECCAE1AF61}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D06AB451-D752-48A1-9A35-8AECCAE1AF61}.Release|Any CPU.Build.0 = Release|Any CPU - {D06AB451-D752-48A1-9A35-8AECCAE1AF61}.Release|x64.ActiveCfg = Release|Any CPU - {D06AB451-D752-48A1-9A35-8AECCAE1AF61}.Release|x64.Build.0 = Release|Any CPU - {D06AB451-D752-48A1-9A35-8AECCAE1AF61}.Release|x86.ActiveCfg = Release|Any CPU - {D06AB451-D752-48A1-9A35-8AECCAE1AF61}.Release|x86.Build.0 = Release|Any CPU - {C893DDA9-D185-4C60-AF13-3719474D638A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C893DDA9-D185-4C60-AF13-3719474D638A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C893DDA9-D185-4C60-AF13-3719474D638A}.Debug|x64.ActiveCfg = Debug|Any CPU - {C893DDA9-D185-4C60-AF13-3719474D638A}.Debug|x64.Build.0 = Debug|Any CPU - {C893DDA9-D185-4C60-AF13-3719474D638A}.Debug|x86.ActiveCfg = Debug|Any CPU - {C893DDA9-D185-4C60-AF13-3719474D638A}.Debug|x86.Build.0 = Debug|Any CPU - {C893DDA9-D185-4C60-AF13-3719474D638A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C893DDA9-D185-4C60-AF13-3719474D638A}.Release|Any CPU.Build.0 = Release|Any CPU - {C893DDA9-D185-4C60-AF13-3719474D638A}.Release|x64.ActiveCfg = Release|Any CPU - {C893DDA9-D185-4C60-AF13-3719474D638A}.Release|x64.Build.0 = Release|Any CPU - {C893DDA9-D185-4C60-AF13-3719474D638A}.Release|x86.ActiveCfg = Release|Any CPU - {C893DDA9-D185-4C60-AF13-3719474D638A}.Release|x86.Build.0 = Release|Any CPU - {3C69A73F-3C17-4963-9BAD-69BA7D2FC059}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3C69A73F-3C17-4963-9BAD-69BA7D2FC059}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3C69A73F-3C17-4963-9BAD-69BA7D2FC059}.Debug|x64.ActiveCfg = Debug|Any CPU - {3C69A73F-3C17-4963-9BAD-69BA7D2FC059}.Debug|x64.Build.0 = Debug|Any CPU - {3C69A73F-3C17-4963-9BAD-69BA7D2FC059}.Debug|x86.ActiveCfg = Debug|Any CPU - {3C69A73F-3C17-4963-9BAD-69BA7D2FC059}.Debug|x86.Build.0 = Debug|Any CPU - {3C69A73F-3C17-4963-9BAD-69BA7D2FC059}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3C69A73F-3C17-4963-9BAD-69BA7D2FC059}.Release|Any CPU.Build.0 = Release|Any CPU - {3C69A73F-3C17-4963-9BAD-69BA7D2FC059}.Release|x64.ActiveCfg = Release|Any CPU - {3C69A73F-3C17-4963-9BAD-69BA7D2FC059}.Release|x64.Build.0 = Release|Any CPU - {3C69A73F-3C17-4963-9BAD-69BA7D2FC059}.Release|x86.ActiveCfg = Release|Any CPU - {3C69A73F-3C17-4963-9BAD-69BA7D2FC059}.Release|x86.Build.0 = Release|Any CPU - {8AD99F31-1B31-45CF-A1A2-3BAD6F7BAC00}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8AD99F31-1B31-45CF-A1A2-3BAD6F7BAC00}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8AD99F31-1B31-45CF-A1A2-3BAD6F7BAC00}.Debug|x64.ActiveCfg = Debug|Any CPU - {8AD99F31-1B31-45CF-A1A2-3BAD6F7BAC00}.Debug|x64.Build.0 = Debug|Any CPU - {8AD99F31-1B31-45CF-A1A2-3BAD6F7BAC00}.Debug|x86.ActiveCfg = Debug|Any CPU - {8AD99F31-1B31-45CF-A1A2-3BAD6F7BAC00}.Debug|x86.Build.0 = Debug|Any CPU - {8AD99F31-1B31-45CF-A1A2-3BAD6F7BAC00}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8AD99F31-1B31-45CF-A1A2-3BAD6F7BAC00}.Release|Any CPU.Build.0 = Release|Any CPU - {8AD99F31-1B31-45CF-A1A2-3BAD6F7BAC00}.Release|x64.ActiveCfg = Release|Any CPU - {8AD99F31-1B31-45CF-A1A2-3BAD6F7BAC00}.Release|x64.Build.0 = Release|Any CPU - {8AD99F31-1B31-45CF-A1A2-3BAD6F7BAC00}.Release|x86.ActiveCfg = Release|Any CPU - {8AD99F31-1B31-45CF-A1A2-3BAD6F7BAC00}.Release|x86.Build.0 = Release|Any CPU - {CE284858-D665-4B68-B921-419FEBC8159B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CE284858-D665-4B68-B921-419FEBC8159B}.Debug|x64.ActiveCfg = Debug|Any CPU - {CE284858-D665-4B68-B921-419FEBC8159B}.Debug|x64.Build.0 = Debug|Any CPU - {CE284858-D665-4B68-B921-419FEBC8159B}.Debug|x86.ActiveCfg = Debug|Any CPU - {CE284858-D665-4B68-B921-419FEBC8159B}.Debug|x86.Build.0 = Debug|Any CPU - {CE284858-D665-4B68-B921-419FEBC8159B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CE284858-D665-4B68-B921-419FEBC8159B}.Release|x64.ActiveCfg = Release|Any CPU - {CE284858-D665-4B68-B921-419FEBC8159B}.Release|x64.Build.0 = Release|Any CPU - {CE284858-D665-4B68-B921-419FEBC8159B}.Release|x86.ActiveCfg = Release|Any CPU - {CE284858-D665-4B68-B921-419FEBC8159B}.Release|x86.Build.0 = Release|Any CPU - {F47EA32E-29D5-4D2A-849E-29ECDD2A0A83}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F47EA32E-29D5-4D2A-849E-29ECDD2A0A83}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F47EA32E-29D5-4D2A-849E-29ECDD2A0A83}.Debug|x64.ActiveCfg = Debug|Any CPU - {F47EA32E-29D5-4D2A-849E-29ECDD2A0A83}.Debug|x64.Build.0 = Debug|Any CPU - {F47EA32E-29D5-4D2A-849E-29ECDD2A0A83}.Debug|x86.ActiveCfg = Debug|Any CPU - {F47EA32E-29D5-4D2A-849E-29ECDD2A0A83}.Debug|x86.Build.0 = Debug|Any CPU - {F47EA32E-29D5-4D2A-849E-29ECDD2A0A83}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F47EA32E-29D5-4D2A-849E-29ECDD2A0A83}.Release|Any CPU.Build.0 = Release|Any CPU - {F47EA32E-29D5-4D2A-849E-29ECDD2A0A83}.Release|x64.ActiveCfg = Release|Any CPU - {F47EA32E-29D5-4D2A-849E-29ECDD2A0A83}.Release|x64.Build.0 = Release|Any CPU - {F47EA32E-29D5-4D2A-849E-29ECDD2A0A83}.Release|x86.ActiveCfg = Release|Any CPU - {F47EA32E-29D5-4D2A-849E-29ECDD2A0A83}.Release|x86.Build.0 = Release|Any CPU - {BA281A36-2842-48EC-B2A7-93C7C81C5BCC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BA281A36-2842-48EC-B2A7-93C7C81C5BCC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BA281A36-2842-48EC-B2A7-93C7C81C5BCC}.Debug|x64.ActiveCfg = Debug|Any CPU - {BA281A36-2842-48EC-B2A7-93C7C81C5BCC}.Debug|x64.Build.0 = Debug|Any CPU - {BA281A36-2842-48EC-B2A7-93C7C81C5BCC}.Debug|x86.ActiveCfg = Debug|Any CPU - {BA281A36-2842-48EC-B2A7-93C7C81C5BCC}.Debug|x86.Build.0 = Debug|Any CPU - {BA281A36-2842-48EC-B2A7-93C7C81C5BCC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BA281A36-2842-48EC-B2A7-93C7C81C5BCC}.Release|Any CPU.Build.0 = Release|Any CPU - {BA281A36-2842-48EC-B2A7-93C7C81C5BCC}.Release|x64.ActiveCfg = Release|Any CPU - {BA281A36-2842-48EC-B2A7-93C7C81C5BCC}.Release|x64.Build.0 = Release|Any CPU - {BA281A36-2842-48EC-B2A7-93C7C81C5BCC}.Release|x86.ActiveCfg = Release|Any CPU - {BA281A36-2842-48EC-B2A7-93C7C81C5BCC}.Release|x86.Build.0 = Release|Any CPU - {21DF136E-EBE7-449D-8F30-4021AB21F927}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {21DF136E-EBE7-449D-8F30-4021AB21F927}.Debug|Any CPU.Build.0 = Debug|Any CPU - {21DF136E-EBE7-449D-8F30-4021AB21F927}.Debug|x64.ActiveCfg = Debug|Any CPU - {21DF136E-EBE7-449D-8F30-4021AB21F927}.Debug|x64.Build.0 = Debug|Any CPU - {21DF136E-EBE7-449D-8F30-4021AB21F927}.Debug|x86.ActiveCfg = Debug|Any CPU - {21DF136E-EBE7-449D-8F30-4021AB21F927}.Debug|x86.Build.0 = Debug|Any CPU - {21DF136E-EBE7-449D-8F30-4021AB21F927}.Release|Any CPU.ActiveCfg = Release|Any CPU - {21DF136E-EBE7-449D-8F30-4021AB21F927}.Release|Any CPU.Build.0 = Release|Any CPU - {21DF136E-EBE7-449D-8F30-4021AB21F927}.Release|x64.ActiveCfg = Release|Any CPU - {21DF136E-EBE7-449D-8F30-4021AB21F927}.Release|x64.Build.0 = Release|Any CPU - {21DF136E-EBE7-449D-8F30-4021AB21F927}.Release|x86.ActiveCfg = Release|Any CPU - {21DF136E-EBE7-449D-8F30-4021AB21F927}.Release|x86.Build.0 = Release|Any CPU - {A9572C4A-7A90-4779-8BBE-35457C2CA601}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A9572C4A-7A90-4779-8BBE-35457C2CA601}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A9572C4A-7A90-4779-8BBE-35457C2CA601}.Debug|x64.ActiveCfg = Debug|Any CPU - {A9572C4A-7A90-4779-8BBE-35457C2CA601}.Debug|x64.Build.0 = Debug|Any CPU - {A9572C4A-7A90-4779-8BBE-35457C2CA601}.Debug|x86.ActiveCfg = Debug|Any CPU - {A9572C4A-7A90-4779-8BBE-35457C2CA601}.Debug|x86.Build.0 = Debug|Any CPU - {A9572C4A-7A90-4779-8BBE-35457C2CA601}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A9572C4A-7A90-4779-8BBE-35457C2CA601}.Release|Any CPU.Build.0 = Release|Any CPU - {A9572C4A-7A90-4779-8BBE-35457C2CA601}.Release|x64.ActiveCfg = Release|Any CPU - {A9572C4A-7A90-4779-8BBE-35457C2CA601}.Release|x64.Build.0 = Release|Any CPU - {A9572C4A-7A90-4779-8BBE-35457C2CA601}.Release|x86.ActiveCfg = Release|Any CPU - {A9572C4A-7A90-4779-8BBE-35457C2CA601}.Release|x86.Build.0 = Release|Any CPU - {BE575FEA-FA7A-4196-AE0A-6834CE34CE59}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BE575FEA-FA7A-4196-AE0A-6834CE34CE59}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BE575FEA-FA7A-4196-AE0A-6834CE34CE59}.Debug|x64.ActiveCfg = Debug|Any CPU - {BE575FEA-FA7A-4196-AE0A-6834CE34CE59}.Debug|x64.Build.0 = Debug|Any CPU - {BE575FEA-FA7A-4196-AE0A-6834CE34CE59}.Debug|x86.ActiveCfg = Debug|Any CPU - {BE575FEA-FA7A-4196-AE0A-6834CE34CE59}.Debug|x86.Build.0 = Debug|Any CPU - {BE575FEA-FA7A-4196-AE0A-6834CE34CE59}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BE575FEA-FA7A-4196-AE0A-6834CE34CE59}.Release|Any CPU.Build.0 = Release|Any CPU - {BE575FEA-FA7A-4196-AE0A-6834CE34CE59}.Release|x64.ActiveCfg = Release|Any CPU - {BE575FEA-FA7A-4196-AE0A-6834CE34CE59}.Release|x64.Build.0 = Release|Any CPU - {BE575FEA-FA7A-4196-AE0A-6834CE34CE59}.Release|x86.ActiveCfg = Release|Any CPU - {BE575FEA-FA7A-4196-AE0A-6834CE34CE59}.Release|x86.Build.0 = Release|Any CPU - {F99B42FF-45A3-46E8-BE58-EC38C83E06E4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F99B42FF-45A3-46E8-BE58-EC38C83E06E4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F99B42FF-45A3-46E8-BE58-EC38C83E06E4}.Debug|x64.ActiveCfg = Debug|Any CPU - {F99B42FF-45A3-46E8-BE58-EC38C83E06E4}.Debug|x64.Build.0 = Debug|Any CPU - {F99B42FF-45A3-46E8-BE58-EC38C83E06E4}.Debug|x86.ActiveCfg = Debug|Any CPU - {F99B42FF-45A3-46E8-BE58-EC38C83E06E4}.Debug|x86.Build.0 = Debug|Any CPU - {F99B42FF-45A3-46E8-BE58-EC38C83E06E4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F99B42FF-45A3-46E8-BE58-EC38C83E06E4}.Release|Any CPU.Build.0 = Release|Any CPU - {F99B42FF-45A3-46E8-BE58-EC38C83E06E4}.Release|x64.ActiveCfg = Release|Any CPU - {F99B42FF-45A3-46E8-BE58-EC38C83E06E4}.Release|x64.Build.0 = Release|Any CPU - {F99B42FF-45A3-46E8-BE58-EC38C83E06E4}.Release|x86.ActiveCfg = Release|Any CPU - {F99B42FF-45A3-46E8-BE58-EC38C83E06E4}.Release|x86.Build.0 = Release|Any CPU - {CE908E26-D36B-4849-BCCA-B98CBFD45B71}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CE908E26-D36B-4849-BCCA-B98CBFD45B71}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CE908E26-D36B-4849-BCCA-B98CBFD45B71}.Debug|x64.ActiveCfg = Debug|Any CPU - {CE908E26-D36B-4849-BCCA-B98CBFD45B71}.Debug|x64.Build.0 = Debug|Any CPU - {CE908E26-D36B-4849-BCCA-B98CBFD45B71}.Debug|x86.ActiveCfg = Debug|Any CPU - {CE908E26-D36B-4849-BCCA-B98CBFD45B71}.Debug|x86.Build.0 = Debug|Any CPU - {CE908E26-D36B-4849-BCCA-B98CBFD45B71}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CE908E26-D36B-4849-BCCA-B98CBFD45B71}.Release|Any CPU.Build.0 = Release|Any CPU - {CE908E26-D36B-4849-BCCA-B98CBFD45B71}.Release|x64.ActiveCfg = Release|Any CPU - {CE908E26-D36B-4849-BCCA-B98CBFD45B71}.Release|x64.Build.0 = Release|Any CPU - {CE908E26-D36B-4849-BCCA-B98CBFD45B71}.Release|x86.ActiveCfg = Release|Any CPU - {CE908E26-D36B-4849-BCCA-B98CBFD45B71}.Release|x86.Build.0 = Release|Any CPU - {4DB8DFA1-82F0-4585-BC1C-32AB93A4F928}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4DB8DFA1-82F0-4585-BC1C-32AB93A4F928}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4DB8DFA1-82F0-4585-BC1C-32AB93A4F928}.Debug|x64.ActiveCfg = Debug|Any CPU - {4DB8DFA1-82F0-4585-BC1C-32AB93A4F928}.Debug|x64.Build.0 = Debug|Any CPU - {4DB8DFA1-82F0-4585-BC1C-32AB93A4F928}.Debug|x86.ActiveCfg = Debug|Any CPU - {4DB8DFA1-82F0-4585-BC1C-32AB93A4F928}.Debug|x86.Build.0 = Debug|Any CPU - {4DB8DFA1-82F0-4585-BC1C-32AB93A4F928}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4DB8DFA1-82F0-4585-BC1C-32AB93A4F928}.Release|Any CPU.Build.0 = Release|Any CPU - {4DB8DFA1-82F0-4585-BC1C-32AB93A4F928}.Release|x64.ActiveCfg = Release|Any CPU - {4DB8DFA1-82F0-4585-BC1C-32AB93A4F928}.Release|x64.Build.0 = Release|Any CPU - {4DB8DFA1-82F0-4585-BC1C-32AB93A4F928}.Release|x86.ActiveCfg = Release|Any CPU - {4DB8DFA1-82F0-4585-BC1C-32AB93A4F928}.Release|x86.Build.0 = Release|Any CPU - {E5BA6D7A-B104-48F2-B4ED-42DC6B4B7520}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E5BA6D7A-B104-48F2-B4ED-42DC6B4B7520}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E5BA6D7A-B104-48F2-B4ED-42DC6B4B7520}.Debug|x64.ActiveCfg = Debug|Any CPU - {E5BA6D7A-B104-48F2-B4ED-42DC6B4B7520}.Debug|x64.Build.0 = Debug|Any CPU - {E5BA6D7A-B104-48F2-B4ED-42DC6B4B7520}.Debug|x86.ActiveCfg = Debug|Any CPU - {E5BA6D7A-B104-48F2-B4ED-42DC6B4B7520}.Debug|x86.Build.0 = Debug|Any CPU - {E5BA6D7A-B104-48F2-B4ED-42DC6B4B7520}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E5BA6D7A-B104-48F2-B4ED-42DC6B4B7520}.Release|Any CPU.Build.0 = Release|Any CPU - {E5BA6D7A-B104-48F2-B4ED-42DC6B4B7520}.Release|x64.ActiveCfg = Release|Any CPU - {E5BA6D7A-B104-48F2-B4ED-42DC6B4B7520}.Release|x64.Build.0 = Release|Any CPU - {E5BA6D7A-B104-48F2-B4ED-42DC6B4B7520}.Release|x86.ActiveCfg = Release|Any CPU - {E5BA6D7A-B104-48F2-B4ED-42DC6B4B7520}.Release|x86.Build.0 = Release|Any CPU - {028EBB7D-C7D4-4EB1-AABD-3BF2D5BB8D4B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {028EBB7D-C7D4-4EB1-AABD-3BF2D5BB8D4B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {028EBB7D-C7D4-4EB1-AABD-3BF2D5BB8D4B}.Debug|x64.ActiveCfg = Debug|Any CPU - {028EBB7D-C7D4-4EB1-AABD-3BF2D5BB8D4B}.Debug|x64.Build.0 = Debug|Any CPU - {028EBB7D-C7D4-4EB1-AABD-3BF2D5BB8D4B}.Debug|x86.ActiveCfg = Debug|Any CPU - {028EBB7D-C7D4-4EB1-AABD-3BF2D5BB8D4B}.Debug|x86.Build.0 = Debug|Any CPU - {028EBB7D-C7D4-4EB1-AABD-3BF2D5BB8D4B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {028EBB7D-C7D4-4EB1-AABD-3BF2D5BB8D4B}.Release|Any CPU.Build.0 = Release|Any CPU - {028EBB7D-C7D4-4EB1-AABD-3BF2D5BB8D4B}.Release|x64.ActiveCfg = Release|Any CPU - {028EBB7D-C7D4-4EB1-AABD-3BF2D5BB8D4B}.Release|x64.Build.0 = Release|Any CPU - {028EBB7D-C7D4-4EB1-AABD-3BF2D5BB8D4B}.Release|x86.ActiveCfg = Release|Any CPU - {028EBB7D-C7D4-4EB1-AABD-3BF2D5BB8D4B}.Release|x86.Build.0 = Release|Any CPU - {E791AE5F-7B7E-4CEF-897B-0A8D72CDE445}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E791AE5F-7B7E-4CEF-897B-0A8D72CDE445}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E791AE5F-7B7E-4CEF-897B-0A8D72CDE445}.Debug|x64.ActiveCfg = Debug|Any CPU - {E791AE5F-7B7E-4CEF-897B-0A8D72CDE445}.Debug|x64.Build.0 = Debug|Any CPU - {E791AE5F-7B7E-4CEF-897B-0A8D72CDE445}.Debug|x86.ActiveCfg = Debug|Any CPU - {E791AE5F-7B7E-4CEF-897B-0A8D72CDE445}.Debug|x86.Build.0 = Debug|Any CPU - {E791AE5F-7B7E-4CEF-897B-0A8D72CDE445}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E791AE5F-7B7E-4CEF-897B-0A8D72CDE445}.Release|Any CPU.Build.0 = Release|Any CPU - {E791AE5F-7B7E-4CEF-897B-0A8D72CDE445}.Release|x64.ActiveCfg = Release|Any CPU - {E791AE5F-7B7E-4CEF-897B-0A8D72CDE445}.Release|x64.Build.0 = Release|Any CPU - {E791AE5F-7B7E-4CEF-897B-0A8D72CDE445}.Release|x86.ActiveCfg = Release|Any CPU - {E791AE5F-7B7E-4CEF-897B-0A8D72CDE445}.Release|x86.Build.0 = Release|Any CPU - {52B5D05F-9F76-41A8-9334-2580ACE435C6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {52B5D05F-9F76-41A8-9334-2580ACE435C6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {52B5D05F-9F76-41A8-9334-2580ACE435C6}.Debug|x64.ActiveCfg = Debug|Any CPU - {52B5D05F-9F76-41A8-9334-2580ACE435C6}.Debug|x64.Build.0 = Debug|Any CPU - {52B5D05F-9F76-41A8-9334-2580ACE435C6}.Debug|x86.ActiveCfg = Debug|Any CPU - {52B5D05F-9F76-41A8-9334-2580ACE435C6}.Debug|x86.Build.0 = Debug|Any CPU - {52B5D05F-9F76-41A8-9334-2580ACE435C6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {52B5D05F-9F76-41A8-9334-2580ACE435C6}.Release|Any CPU.Build.0 = Release|Any CPU - {52B5D05F-9F76-41A8-9334-2580ACE435C6}.Release|x64.ActiveCfg = Release|Any CPU - {52B5D05F-9F76-41A8-9334-2580ACE435C6}.Release|x64.Build.0 = Release|Any CPU - {52B5D05F-9F76-41A8-9334-2580ACE435C6}.Release|x86.ActiveCfg = Release|Any CPU - {52B5D05F-9F76-41A8-9334-2580ACE435C6}.Release|x86.Build.0 = Release|Any CPU - {700F2674-4EA4-4CDB-B2CA-2FC2BD138E2B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {700F2674-4EA4-4CDB-B2CA-2FC2BD138E2B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {700F2674-4EA4-4CDB-B2CA-2FC2BD138E2B}.Debug|x64.ActiveCfg = Debug|Any CPU - {700F2674-4EA4-4CDB-B2CA-2FC2BD138E2B}.Debug|x64.Build.0 = Debug|Any CPU - {700F2674-4EA4-4CDB-B2CA-2FC2BD138E2B}.Debug|x86.ActiveCfg = Debug|x86 - {700F2674-4EA4-4CDB-B2CA-2FC2BD138E2B}.Debug|x86.Build.0 = Debug|x86 - {700F2674-4EA4-4CDB-B2CA-2FC2BD138E2B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {700F2674-4EA4-4CDB-B2CA-2FC2BD138E2B}.Release|Any CPU.Build.0 = Release|Any CPU - {700F2674-4EA4-4CDB-B2CA-2FC2BD138E2B}.Release|x64.ActiveCfg = Release|Any CPU - {700F2674-4EA4-4CDB-B2CA-2FC2BD138E2B}.Release|x64.Build.0 = Release|Any CPU - {700F2674-4EA4-4CDB-B2CA-2FC2BD138E2B}.Release|x86.ActiveCfg = Release|x86 - {700F2674-4EA4-4CDB-B2CA-2FC2BD138E2B}.Release|x86.Build.0 = Release|x86 - {99318E2F-805D-4AF7-8E51-BAF6FCC257CE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {99318E2F-805D-4AF7-8E51-BAF6FCC257CE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {99318E2F-805D-4AF7-8E51-BAF6FCC257CE}.Debug|x64.ActiveCfg = Debug|Any CPU - {99318E2F-805D-4AF7-8E51-BAF6FCC257CE}.Debug|x64.Build.0 = Debug|Any CPU - {99318E2F-805D-4AF7-8E51-BAF6FCC257CE}.Debug|x86.ActiveCfg = Debug|Any CPU - {99318E2F-805D-4AF7-8E51-BAF6FCC257CE}.Debug|x86.Build.0 = Debug|Any CPU - {99318E2F-805D-4AF7-8E51-BAF6FCC257CE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {99318E2F-805D-4AF7-8E51-BAF6FCC257CE}.Release|Any CPU.Build.0 = Release|Any CPU - {99318E2F-805D-4AF7-8E51-BAF6FCC257CE}.Release|x64.ActiveCfg = Release|Any CPU - {99318E2F-805D-4AF7-8E51-BAF6FCC257CE}.Release|x64.Build.0 = Release|Any CPU - {99318E2F-805D-4AF7-8E51-BAF6FCC257CE}.Release|x86.ActiveCfg = Release|Any CPU - {99318E2F-805D-4AF7-8E51-BAF6FCC257CE}.Release|x86.Build.0 = Release|Any CPU - {E68F82B2-14C7-47C5-9747-62C262722D1E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E68F82B2-14C7-47C5-9747-62C262722D1E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E68F82B2-14C7-47C5-9747-62C262722D1E}.Debug|x64.ActiveCfg = Debug|Any CPU - {E68F82B2-14C7-47C5-9747-62C262722D1E}.Debug|x64.Build.0 = Debug|Any CPU - {E68F82B2-14C7-47C5-9747-62C262722D1E}.Debug|x86.ActiveCfg = Debug|Any CPU - {E68F82B2-14C7-47C5-9747-62C262722D1E}.Debug|x86.Build.0 = Debug|Any CPU - {E68F82B2-14C7-47C5-9747-62C262722D1E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E68F82B2-14C7-47C5-9747-62C262722D1E}.Release|Any CPU.Build.0 = Release|Any CPU - {E68F82B2-14C7-47C5-9747-62C262722D1E}.Release|x64.ActiveCfg = Release|Any CPU - {E68F82B2-14C7-47C5-9747-62C262722D1E}.Release|x64.Build.0 = Release|Any CPU - {E68F82B2-14C7-47C5-9747-62C262722D1E}.Release|x86.ActiveCfg = Release|Any CPU - {E68F82B2-14C7-47C5-9747-62C262722D1E}.Release|x86.Build.0 = Release|Any CPU - {4E4EFE27-E464-477E-81EC-25C7494F3576}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4E4EFE27-E464-477E-81EC-25C7494F3576}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4E4EFE27-E464-477E-81EC-25C7494F3576}.Debug|x64.ActiveCfg = Debug|Any CPU - {4E4EFE27-E464-477E-81EC-25C7494F3576}.Debug|x64.Build.0 = Debug|Any CPU - {4E4EFE27-E464-477E-81EC-25C7494F3576}.Debug|x86.ActiveCfg = Debug|Any CPU - {4E4EFE27-E464-477E-81EC-25C7494F3576}.Debug|x86.Build.0 = Debug|Any CPU - {4E4EFE27-E464-477E-81EC-25C7494F3576}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4E4EFE27-E464-477E-81EC-25C7494F3576}.Release|Any CPU.Build.0 = Release|Any CPU - {4E4EFE27-E464-477E-81EC-25C7494F3576}.Release|x64.ActiveCfg = Release|Any CPU - {4E4EFE27-E464-477E-81EC-25C7494F3576}.Release|x64.Build.0 = Release|Any CPU - {4E4EFE27-E464-477E-81EC-25C7494F3576}.Release|x86.ActiveCfg = Release|Any CPU - {4E4EFE27-E464-477E-81EC-25C7494F3576}.Release|x86.Build.0 = Release|Any CPU - {EBCA4B00-6277-46D6-AF36-E638CCC610E2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EBCA4B00-6277-46D6-AF36-E638CCC610E2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EBCA4B00-6277-46D6-AF36-E638CCC610E2}.Debug|x64.ActiveCfg = Debug|Any CPU - {EBCA4B00-6277-46D6-AF36-E638CCC610E2}.Debug|x64.Build.0 = Debug|Any CPU - {EBCA4B00-6277-46D6-AF36-E638CCC610E2}.Debug|x86.ActiveCfg = Debug|Any CPU - {EBCA4B00-6277-46D6-AF36-E638CCC610E2}.Debug|x86.Build.0 = Debug|Any CPU - {EBCA4B00-6277-46D6-AF36-E638CCC610E2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EBCA4B00-6277-46D6-AF36-E638CCC610E2}.Release|Any CPU.Build.0 = Release|Any CPU - {EBCA4B00-6277-46D6-AF36-E638CCC610E2}.Release|x64.ActiveCfg = Release|Any CPU - {EBCA4B00-6277-46D6-AF36-E638CCC610E2}.Release|x64.Build.0 = Release|Any CPU - {EBCA4B00-6277-46D6-AF36-E638CCC610E2}.Release|x86.ActiveCfg = Release|Any CPU - {EBCA4B00-6277-46D6-AF36-E638CCC610E2}.Release|x86.Build.0 = Release|Any CPU - {C1A415DC-597E-4AD8-8A89-C6AF52F5026D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C1A415DC-597E-4AD8-8A89-C6AF52F5026D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C1A415DC-597E-4AD8-8A89-C6AF52F5026D}.Debug|x64.ActiveCfg = Debug|Any CPU - {C1A415DC-597E-4AD8-8A89-C6AF52F5026D}.Debug|x64.Build.0 = Debug|Any CPU - {C1A415DC-597E-4AD8-8A89-C6AF52F5026D}.Debug|x86.ActiveCfg = Debug|Any CPU - {C1A415DC-597E-4AD8-8A89-C6AF52F5026D}.Debug|x86.Build.0 = Debug|Any CPU - {C1A415DC-597E-4AD8-8A89-C6AF52F5026D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C1A415DC-597E-4AD8-8A89-C6AF52F5026D}.Release|Any CPU.Build.0 = Release|Any CPU - {C1A415DC-597E-4AD8-8A89-C6AF52F5026D}.Release|x64.ActiveCfg = Release|Any CPU - {C1A415DC-597E-4AD8-8A89-C6AF52F5026D}.Release|x64.Build.0 = Release|Any CPU - {C1A415DC-597E-4AD8-8A89-C6AF52F5026D}.Release|x86.ActiveCfg = Release|Any CPU - {C1A415DC-597E-4AD8-8A89-C6AF52F5026D}.Release|x86.Build.0 = Release|Any CPU - {211FD731-0F62-4910-8343-6AA5ADA9686E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {211FD731-0F62-4910-8343-6AA5ADA9686E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {211FD731-0F62-4910-8343-6AA5ADA9686E}.Debug|x64.ActiveCfg = Debug|Any CPU - {211FD731-0F62-4910-8343-6AA5ADA9686E}.Debug|x64.Build.0 = Debug|Any CPU - {211FD731-0F62-4910-8343-6AA5ADA9686E}.Debug|x86.ActiveCfg = Debug|Any CPU - {211FD731-0F62-4910-8343-6AA5ADA9686E}.Debug|x86.Build.0 = Debug|Any CPU - {211FD731-0F62-4910-8343-6AA5ADA9686E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {211FD731-0F62-4910-8343-6AA5ADA9686E}.Release|Any CPU.Build.0 = Release|Any CPU - {211FD731-0F62-4910-8343-6AA5ADA9686E}.Release|x64.ActiveCfg = Release|Any CPU - {211FD731-0F62-4910-8343-6AA5ADA9686E}.Release|x64.Build.0 = Release|Any CPU - {211FD731-0F62-4910-8343-6AA5ADA9686E}.Release|x86.ActiveCfg = Release|Any CPU - {211FD731-0F62-4910-8343-6AA5ADA9686E}.Release|x86.Build.0 = Release|Any CPU - {7B2497DF-1016-4C40-B894-9EDE00B4CA56}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7B2497DF-1016-4C40-B894-9EDE00B4CA56}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7B2497DF-1016-4C40-B894-9EDE00B4CA56}.Debug|x64.ActiveCfg = Debug|Any CPU - {7B2497DF-1016-4C40-B894-9EDE00B4CA56}.Debug|x64.Build.0 = Debug|Any CPU - {7B2497DF-1016-4C40-B894-9EDE00B4CA56}.Debug|x86.ActiveCfg = Debug|Any CPU - {7B2497DF-1016-4C40-B894-9EDE00B4CA56}.Debug|x86.Build.0 = Debug|Any CPU - {7B2497DF-1016-4C40-B894-9EDE00B4CA56}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7B2497DF-1016-4C40-B894-9EDE00B4CA56}.Release|Any CPU.Build.0 = Release|Any CPU - {7B2497DF-1016-4C40-B894-9EDE00B4CA56}.Release|x64.ActiveCfg = Release|Any CPU - {7B2497DF-1016-4C40-B894-9EDE00B4CA56}.Release|x64.Build.0 = Release|Any CPU - {7B2497DF-1016-4C40-B894-9EDE00B4CA56}.Release|x86.ActiveCfg = Release|Any CPU - {7B2497DF-1016-4C40-B894-9EDE00B4CA56}.Release|x86.Build.0 = Release|Any CPU - {9BD06E47-C47D-455E-84AD-B9835BDA2943}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9BD06E47-C47D-455E-84AD-B9835BDA2943}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9BD06E47-C47D-455E-84AD-B9835BDA2943}.Debug|x64.ActiveCfg = Debug|Any CPU - {9BD06E47-C47D-455E-84AD-B9835BDA2943}.Debug|x64.Build.0 = Debug|Any CPU - {9BD06E47-C47D-455E-84AD-B9835BDA2943}.Debug|x86.ActiveCfg = Debug|Any CPU - {9BD06E47-C47D-455E-84AD-B9835BDA2943}.Debug|x86.Build.0 = Debug|Any CPU - {9BD06E47-C47D-455E-84AD-B9835BDA2943}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9BD06E47-C47D-455E-84AD-B9835BDA2943}.Release|Any CPU.Build.0 = Release|Any CPU - {9BD06E47-C47D-455E-84AD-B9835BDA2943}.Release|x64.ActiveCfg = Release|Any CPU - {9BD06E47-C47D-455E-84AD-B9835BDA2943}.Release|x64.Build.0 = Release|Any CPU - {9BD06E47-C47D-455E-84AD-B9835BDA2943}.Release|x86.ActiveCfg = Release|Any CPU - {9BD06E47-C47D-455E-84AD-B9835BDA2943}.Release|x86.Build.0 = Release|Any CPU - {4B3CF3C7-EF23-4149-8024-963201BE5EB4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4B3CF3C7-EF23-4149-8024-963201BE5EB4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4B3CF3C7-EF23-4149-8024-963201BE5EB4}.Debug|x64.ActiveCfg = Debug|Any CPU - {4B3CF3C7-EF23-4149-8024-963201BE5EB4}.Debug|x64.Build.0 = Debug|Any CPU - {4B3CF3C7-EF23-4149-8024-963201BE5EB4}.Debug|x86.ActiveCfg = Debug|Any CPU - {4B3CF3C7-EF23-4149-8024-963201BE5EB4}.Debug|x86.Build.0 = Debug|Any CPU - {4B3CF3C7-EF23-4149-8024-963201BE5EB4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4B3CF3C7-EF23-4149-8024-963201BE5EB4}.Release|Any CPU.Build.0 = Release|Any CPU - {4B3CF3C7-EF23-4149-8024-963201BE5EB4}.Release|x64.ActiveCfg = Release|Any CPU - {4B3CF3C7-EF23-4149-8024-963201BE5EB4}.Release|x64.Build.0 = Release|Any CPU - {4B3CF3C7-EF23-4149-8024-963201BE5EB4}.Release|x86.ActiveCfg = Release|Any CPU - {4B3CF3C7-EF23-4149-8024-963201BE5EB4}.Release|x86.Build.0 = Release|Any CPU - {634B6143-B564-4FA9-BF7B-7D15F26045BA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {634B6143-B564-4FA9-BF7B-7D15F26045BA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {634B6143-B564-4FA9-BF7B-7D15F26045BA}.Debug|x64.ActiveCfg = Debug|Any CPU - {634B6143-B564-4FA9-BF7B-7D15F26045BA}.Debug|x64.Build.0 = Debug|Any CPU - {634B6143-B564-4FA9-BF7B-7D15F26045BA}.Debug|x86.ActiveCfg = Debug|Any CPU - {634B6143-B564-4FA9-BF7B-7D15F26045BA}.Debug|x86.Build.0 = Debug|Any CPU - {634B6143-B564-4FA9-BF7B-7D15F26045BA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {634B6143-B564-4FA9-BF7B-7D15F26045BA}.Release|Any CPU.Build.0 = Release|Any CPU - {634B6143-B564-4FA9-BF7B-7D15F26045BA}.Release|x64.ActiveCfg = Release|Any CPU - {634B6143-B564-4FA9-BF7B-7D15F26045BA}.Release|x64.Build.0 = Release|Any CPU - {634B6143-B564-4FA9-BF7B-7D15F26045BA}.Release|x86.ActiveCfg = Release|Any CPU - {634B6143-B564-4FA9-BF7B-7D15F26045BA}.Release|x86.Build.0 = Release|Any CPU - {049C8D2C-B00E-4369-90A6-6043C393C2ED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {049C8D2C-B00E-4369-90A6-6043C393C2ED}.Debug|Any CPU.Build.0 = Debug|Any CPU - {049C8D2C-B00E-4369-90A6-6043C393C2ED}.Debug|x64.ActiveCfg = Debug|Any CPU - {049C8D2C-B00E-4369-90A6-6043C393C2ED}.Debug|x64.Build.0 = Debug|Any CPU - {049C8D2C-B00E-4369-90A6-6043C393C2ED}.Debug|x86.ActiveCfg = Debug|Any CPU - {049C8D2C-B00E-4369-90A6-6043C393C2ED}.Debug|x86.Build.0 = Debug|Any CPU - {049C8D2C-B00E-4369-90A6-6043C393C2ED}.Release|Any CPU.ActiveCfg = Release|Any CPU - {049C8D2C-B00E-4369-90A6-6043C393C2ED}.Release|Any CPU.Build.0 = Release|Any CPU - {049C8D2C-B00E-4369-90A6-6043C393C2ED}.Release|x64.ActiveCfg = Release|Any CPU - {049C8D2C-B00E-4369-90A6-6043C393C2ED}.Release|x64.Build.0 = Release|Any CPU - {049C8D2C-B00E-4369-90A6-6043C393C2ED}.Release|x86.ActiveCfg = Release|Any CPU - {049C8D2C-B00E-4369-90A6-6043C393C2ED}.Release|x86.Build.0 = Release|Any CPU - {171A091E-0477-4CC6-AC83-F0FFF5594375}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {171A091E-0477-4CC6-AC83-F0FFF5594375}.Debug|Any CPU.Build.0 = Debug|Any CPU - {171A091E-0477-4CC6-AC83-F0FFF5594375}.Debug|x64.ActiveCfg = Debug|Any CPU - {171A091E-0477-4CC6-AC83-F0FFF5594375}.Debug|x64.Build.0 = Debug|Any CPU - {171A091E-0477-4CC6-AC83-F0FFF5594375}.Debug|x86.ActiveCfg = Debug|Any CPU - {171A091E-0477-4CC6-AC83-F0FFF5594375}.Debug|x86.Build.0 = Debug|Any CPU - {171A091E-0477-4CC6-AC83-F0FFF5594375}.Release|Any CPU.ActiveCfg = Release|Any CPU - {171A091E-0477-4CC6-AC83-F0FFF5594375}.Release|Any CPU.Build.0 = Release|Any CPU - {171A091E-0477-4CC6-AC83-F0FFF5594375}.Release|x64.ActiveCfg = Release|Any CPU - {171A091E-0477-4CC6-AC83-F0FFF5594375}.Release|x64.Build.0 = Release|Any CPU - {171A091E-0477-4CC6-AC83-F0FFF5594375}.Release|x86.ActiveCfg = Release|Any CPU - {171A091E-0477-4CC6-AC83-F0FFF5594375}.Release|x86.Build.0 = Release|Any CPU - {014491C6-58A0-4DFA-ACFC-4988ADCD546A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {014491C6-58A0-4DFA-ACFC-4988ADCD546A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {014491C6-58A0-4DFA-ACFC-4988ADCD546A}.Debug|x64.ActiveCfg = Debug|Any CPU - {014491C6-58A0-4DFA-ACFC-4988ADCD546A}.Debug|x64.Build.0 = Debug|Any CPU - {014491C6-58A0-4DFA-ACFC-4988ADCD546A}.Debug|x86.ActiveCfg = Debug|Any CPU - {014491C6-58A0-4DFA-ACFC-4988ADCD546A}.Debug|x86.Build.0 = Debug|Any CPU - {014491C6-58A0-4DFA-ACFC-4988ADCD546A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {014491C6-58A0-4DFA-ACFC-4988ADCD546A}.Release|Any CPU.Build.0 = Release|Any CPU - {014491C6-58A0-4DFA-ACFC-4988ADCD546A}.Release|x64.ActiveCfg = Release|Any CPU - {014491C6-58A0-4DFA-ACFC-4988ADCD546A}.Release|x64.Build.0 = Release|Any CPU - {014491C6-58A0-4DFA-ACFC-4988ADCD546A}.Release|x86.ActiveCfg = Release|Any CPU - {014491C6-58A0-4DFA-ACFC-4988ADCD546A}.Release|x86.Build.0 = Release|Any CPU - {C94242B3-AF74-4966-9508-55CEA7B589E9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C94242B3-AF74-4966-9508-55CEA7B589E9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C94242B3-AF74-4966-9508-55CEA7B589E9}.Debug|x64.ActiveCfg = Debug|Any CPU - {C94242B3-AF74-4966-9508-55CEA7B589E9}.Debug|x64.Build.0 = Debug|Any CPU - {C94242B3-AF74-4966-9508-55CEA7B589E9}.Debug|x86.ActiveCfg = Debug|Any CPU - {C94242B3-AF74-4966-9508-55CEA7B589E9}.Debug|x86.Build.0 = Debug|Any CPU - {C94242B3-AF74-4966-9508-55CEA7B589E9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C94242B3-AF74-4966-9508-55CEA7B589E9}.Release|Any CPU.Build.0 = Release|Any CPU - {C94242B3-AF74-4966-9508-55CEA7B589E9}.Release|x64.ActiveCfg = Release|Any CPU - {C94242B3-AF74-4966-9508-55CEA7B589E9}.Release|x64.Build.0 = Release|Any CPU - {C94242B3-AF74-4966-9508-55CEA7B589E9}.Release|x86.ActiveCfg = Release|Any CPU - {C94242B3-AF74-4966-9508-55CEA7B589E9}.Release|x86.Build.0 = Release|Any CPU - {73162237-344C-4196-9754-F0D270649C0E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {73162237-344C-4196-9754-F0D270649C0E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {73162237-344C-4196-9754-F0D270649C0E}.Debug|x64.ActiveCfg = Debug|Any CPU - {73162237-344C-4196-9754-F0D270649C0E}.Debug|x64.Build.0 = Debug|Any CPU - {73162237-344C-4196-9754-F0D270649C0E}.Debug|x86.ActiveCfg = Debug|Any CPU - {73162237-344C-4196-9754-F0D270649C0E}.Debug|x86.Build.0 = Debug|Any CPU - {73162237-344C-4196-9754-F0D270649C0E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {73162237-344C-4196-9754-F0D270649C0E}.Release|Any CPU.Build.0 = Release|Any CPU - {73162237-344C-4196-9754-F0D270649C0E}.Release|x64.ActiveCfg = Release|Any CPU - {73162237-344C-4196-9754-F0D270649C0E}.Release|x64.Build.0 = Release|Any CPU - {73162237-344C-4196-9754-F0D270649C0E}.Release|x86.ActiveCfg = Release|Any CPU - {73162237-344C-4196-9754-F0D270649C0E}.Release|x86.Build.0 = Release|Any CPU - {5E2F6EFC-61EF-467E-85C8-17CDB62DE450}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5E2F6EFC-61EF-467E-85C8-17CDB62DE450}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5E2F6EFC-61EF-467E-85C8-17CDB62DE450}.Debug|x64.ActiveCfg = Debug|Any CPU - {5E2F6EFC-61EF-467E-85C8-17CDB62DE450}.Debug|x64.Build.0 = Debug|Any CPU - {5E2F6EFC-61EF-467E-85C8-17CDB62DE450}.Debug|x86.ActiveCfg = Debug|Any CPU - {5E2F6EFC-61EF-467E-85C8-17CDB62DE450}.Debug|x86.Build.0 = Debug|Any CPU - {5E2F6EFC-61EF-467E-85C8-17CDB62DE450}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5E2F6EFC-61EF-467E-85C8-17CDB62DE450}.Release|Any CPU.Build.0 = Release|Any CPU - {5E2F6EFC-61EF-467E-85C8-17CDB62DE450}.Release|x64.ActiveCfg = Release|Any CPU - {5E2F6EFC-61EF-467E-85C8-17CDB62DE450}.Release|x64.Build.0 = Release|Any CPU - {5E2F6EFC-61EF-467E-85C8-17CDB62DE450}.Release|x86.ActiveCfg = Release|Any CPU - {5E2F6EFC-61EF-467E-85C8-17CDB62DE450}.Release|x86.Build.0 = Release|Any CPU - {98776527-60A3-4346-8A3E-A74A6D9FEEB4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {98776527-60A3-4346-8A3E-A74A6D9FEEB4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {98776527-60A3-4346-8A3E-A74A6D9FEEB4}.Debug|x64.ActiveCfg = Debug|Any CPU - {98776527-60A3-4346-8A3E-A74A6D9FEEB4}.Debug|x64.Build.0 = Debug|Any CPU - {98776527-60A3-4346-8A3E-A74A6D9FEEB4}.Debug|x86.ActiveCfg = Debug|Any CPU - {98776527-60A3-4346-8A3E-A74A6D9FEEB4}.Debug|x86.Build.0 = Debug|Any CPU - {98776527-60A3-4346-8A3E-A74A6D9FEEB4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {98776527-60A3-4346-8A3E-A74A6D9FEEB4}.Release|Any CPU.Build.0 = Release|Any CPU - {98776527-60A3-4346-8A3E-A74A6D9FEEB4}.Release|x64.ActiveCfg = Release|Any CPU - {98776527-60A3-4346-8A3E-A74A6D9FEEB4}.Release|x64.Build.0 = Release|Any CPU - {98776527-60A3-4346-8A3E-A74A6D9FEEB4}.Release|x86.ActiveCfg = Release|Any CPU - {98776527-60A3-4346-8A3E-A74A6D9FEEB4}.Release|x86.Build.0 = Release|Any CPU - {028A8572-A183-43DC-BE68-622C36ED36DA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {028A8572-A183-43DC-BE68-622C36ED36DA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {028A8572-A183-43DC-BE68-622C36ED36DA}.Debug|x64.ActiveCfg = Debug|Any CPU - {028A8572-A183-43DC-BE68-622C36ED36DA}.Debug|x64.Build.0 = Debug|Any CPU - {028A8572-A183-43DC-BE68-622C36ED36DA}.Debug|x86.ActiveCfg = Debug|Any CPU - {028A8572-A183-43DC-BE68-622C36ED36DA}.Debug|x86.Build.0 = Debug|Any CPU - {028A8572-A183-43DC-BE68-622C36ED36DA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {028A8572-A183-43DC-BE68-622C36ED36DA}.Release|Any CPU.Build.0 = Release|Any CPU - {028A8572-A183-43DC-BE68-622C36ED36DA}.Release|x64.ActiveCfg = Release|Any CPU - {028A8572-A183-43DC-BE68-622C36ED36DA}.Release|x64.Build.0 = Release|Any CPU - {028A8572-A183-43DC-BE68-622C36ED36DA}.Release|x86.ActiveCfg = Release|Any CPU - {028A8572-A183-43DC-BE68-622C36ED36DA}.Release|x86.Build.0 = Release|Any CPU - {C3D5CA53-026A-4996-BC2F-9A3849536537}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C3D5CA53-026A-4996-BC2F-9A3849536537}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C3D5CA53-026A-4996-BC2F-9A3849536537}.Debug|x64.ActiveCfg = Debug|Any CPU - {C3D5CA53-026A-4996-BC2F-9A3849536537}.Debug|x64.Build.0 = Debug|Any CPU - {C3D5CA53-026A-4996-BC2F-9A3849536537}.Debug|x86.ActiveCfg = Debug|Any CPU - {C3D5CA53-026A-4996-BC2F-9A3849536537}.Debug|x86.Build.0 = Debug|Any CPU - {C3D5CA53-026A-4996-BC2F-9A3849536537}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C3D5CA53-026A-4996-BC2F-9A3849536537}.Release|Any CPU.Build.0 = Release|Any CPU - {C3D5CA53-026A-4996-BC2F-9A3849536537}.Release|x64.ActiveCfg = Release|Any CPU - {C3D5CA53-026A-4996-BC2F-9A3849536537}.Release|x64.Build.0 = Release|Any CPU - {C3D5CA53-026A-4996-BC2F-9A3849536537}.Release|x86.ActiveCfg = Release|Any CPU - {C3D5CA53-026A-4996-BC2F-9A3849536537}.Release|x86.Build.0 = Release|Any CPU - {CB5BDADA-8032-4F68-A17D-CA18BA63F4F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CB5BDADA-8032-4F68-A17D-CA18BA63F4F0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CB5BDADA-8032-4F68-A17D-CA18BA63F4F0}.Debug|x64.ActiveCfg = Debug|Any CPU - {CB5BDADA-8032-4F68-A17D-CA18BA63F4F0}.Debug|x64.Build.0 = Debug|Any CPU - {CB5BDADA-8032-4F68-A17D-CA18BA63F4F0}.Debug|x86.ActiveCfg = Debug|Any CPU - {CB5BDADA-8032-4F68-A17D-CA18BA63F4F0}.Debug|x86.Build.0 = Debug|Any CPU - {CB5BDADA-8032-4F68-A17D-CA18BA63F4F0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CB5BDADA-8032-4F68-A17D-CA18BA63F4F0}.Release|Any CPU.Build.0 = Release|Any CPU - {CB5BDADA-8032-4F68-A17D-CA18BA63F4F0}.Release|x64.ActiveCfg = Release|Any CPU - {CB5BDADA-8032-4F68-A17D-CA18BA63F4F0}.Release|x64.Build.0 = Release|Any CPU - {CB5BDADA-8032-4F68-A17D-CA18BA63F4F0}.Release|x86.ActiveCfg = Release|Any CPU - {CB5BDADA-8032-4F68-A17D-CA18BA63F4F0}.Release|x86.Build.0 = Release|Any CPU - {E01C820C-E103-4387-B1E8-680ED4218600}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E01C820C-E103-4387-B1E8-680ED4218600}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E01C820C-E103-4387-B1E8-680ED4218600}.Debug|x64.ActiveCfg = Debug|Any CPU - {E01C820C-E103-4387-B1E8-680ED4218600}.Debug|x64.Build.0 = Debug|Any CPU - {E01C820C-E103-4387-B1E8-680ED4218600}.Debug|x86.ActiveCfg = Debug|Any CPU - {E01C820C-E103-4387-B1E8-680ED4218600}.Debug|x86.Build.0 = Debug|Any CPU - {E01C820C-E103-4387-B1E8-680ED4218600}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E01C820C-E103-4387-B1E8-680ED4218600}.Release|Any CPU.Build.0 = Release|Any CPU - {E01C820C-E103-4387-B1E8-680ED4218600}.Release|x64.ActiveCfg = Release|Any CPU - {E01C820C-E103-4387-B1E8-680ED4218600}.Release|x64.Build.0 = Release|Any CPU - {E01C820C-E103-4387-B1E8-680ED4218600}.Release|x86.ActiveCfg = Release|Any CPU - {E01C820C-E103-4387-B1E8-680ED4218600}.Release|x86.Build.0 = Release|Any CPU - {48D69FD8-942B-46A2-ADD4-068BC35D98C4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {48D69FD8-942B-46A2-ADD4-068BC35D98C4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {48D69FD8-942B-46A2-ADD4-068BC35D98C4}.Debug|x64.ActiveCfg = Debug|Any CPU - {48D69FD8-942B-46A2-ADD4-068BC35D98C4}.Debug|x64.Build.0 = Debug|Any CPU - {48D69FD8-942B-46A2-ADD4-068BC35D98C4}.Debug|x86.ActiveCfg = Debug|Any CPU - {48D69FD8-942B-46A2-ADD4-068BC35D98C4}.Debug|x86.Build.0 = Debug|Any CPU - {48D69FD8-942B-46A2-ADD4-068BC35D98C4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {48D69FD8-942B-46A2-ADD4-068BC35D98C4}.Release|Any CPU.Build.0 = Release|Any CPU - {48D69FD8-942B-46A2-ADD4-068BC35D98C4}.Release|x64.ActiveCfg = Release|Any CPU - {48D69FD8-942B-46A2-ADD4-068BC35D98C4}.Release|x64.Build.0 = Release|Any CPU - {48D69FD8-942B-46A2-ADD4-068BC35D98C4}.Release|x86.ActiveCfg = Release|Any CPU - {48D69FD8-942B-46A2-ADD4-068BC35D98C4}.Release|x86.Build.0 = Release|Any CPU - {AB21D4DB-F483-4977-A75F-8763198B941B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {AB21D4DB-F483-4977-A75F-8763198B941B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {AB21D4DB-F483-4977-A75F-8763198B941B}.Debug|x64.ActiveCfg = Debug|Any CPU - {AB21D4DB-F483-4977-A75F-8763198B941B}.Debug|x64.Build.0 = Debug|Any CPU - {AB21D4DB-F483-4977-A75F-8763198B941B}.Debug|x86.ActiveCfg = Debug|Any CPU - {AB21D4DB-F483-4977-A75F-8763198B941B}.Debug|x86.Build.0 = Debug|Any CPU - {AB21D4DB-F483-4977-A75F-8763198B941B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {AB21D4DB-F483-4977-A75F-8763198B941B}.Release|Any CPU.Build.0 = Release|Any CPU - {AB21D4DB-F483-4977-A75F-8763198B941B}.Release|x64.ActiveCfg = Release|Any CPU - {AB21D4DB-F483-4977-A75F-8763198B941B}.Release|x64.Build.0 = Release|Any CPU - {AB21D4DB-F483-4977-A75F-8763198B941B}.Release|x86.ActiveCfg = Release|Any CPU - {AB21D4DB-F483-4977-A75F-8763198B941B}.Release|x86.Build.0 = Release|Any CPU - {B31F1FBD-F505-42D9-9761-05A5E19F87B1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B31F1FBD-F505-42D9-9761-05A5E19F87B1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B31F1FBD-F505-42D9-9761-05A5E19F87B1}.Debug|x64.ActiveCfg = Debug|Any CPU - {B31F1FBD-F505-42D9-9761-05A5E19F87B1}.Debug|x64.Build.0 = Debug|Any CPU - {B31F1FBD-F505-42D9-9761-05A5E19F87B1}.Debug|x86.ActiveCfg = Debug|Any CPU - {B31F1FBD-F505-42D9-9761-05A5E19F87B1}.Debug|x86.Build.0 = Debug|Any CPU - {B31F1FBD-F505-42D9-9761-05A5E19F87B1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B31F1FBD-F505-42D9-9761-05A5E19F87B1}.Release|Any CPU.Build.0 = Release|Any CPU - {B31F1FBD-F505-42D9-9761-05A5E19F87B1}.Release|x64.ActiveCfg = Release|Any CPU - {B31F1FBD-F505-42D9-9761-05A5E19F87B1}.Release|x64.Build.0 = Release|Any CPU - {B31F1FBD-F505-42D9-9761-05A5E19F87B1}.Release|x86.ActiveCfg = Release|Any CPU - {B31F1FBD-F505-42D9-9761-05A5E19F87B1}.Release|x86.Build.0 = Release|Any CPU - {4D20BE29-3DB1-479D-B4E8-BA900BBB48B1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4D20BE29-3DB1-479D-B4E8-BA900BBB48B1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4D20BE29-3DB1-479D-B4E8-BA900BBB48B1}.Debug|x64.ActiveCfg = Debug|Any CPU - {4D20BE29-3DB1-479D-B4E8-BA900BBB48B1}.Debug|x64.Build.0 = Debug|Any CPU - {4D20BE29-3DB1-479D-B4E8-BA900BBB48B1}.Debug|x86.ActiveCfg = Debug|Any CPU - {4D20BE29-3DB1-479D-B4E8-BA900BBB48B1}.Debug|x86.Build.0 = Debug|Any CPU - {4D20BE29-3DB1-479D-B4E8-BA900BBB48B1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4D20BE29-3DB1-479D-B4E8-BA900BBB48B1}.Release|Any CPU.Build.0 = Release|Any CPU - {4D20BE29-3DB1-479D-B4E8-BA900BBB48B1}.Release|x64.ActiveCfg = Release|Any CPU - {4D20BE29-3DB1-479D-B4E8-BA900BBB48B1}.Release|x64.Build.0 = Release|Any CPU - {4D20BE29-3DB1-479D-B4E8-BA900BBB48B1}.Release|x86.ActiveCfg = Release|Any CPU - {4D20BE29-3DB1-479D-B4E8-BA900BBB48B1}.Release|x86.Build.0 = Release|Any CPU - {ABD44B89-6B8C-4902-8EB4-DB6F4F19C9D3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {ABD44B89-6B8C-4902-8EB4-DB6F4F19C9D3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {ABD44B89-6B8C-4902-8EB4-DB6F4F19C9D3}.Debug|x64.ActiveCfg = Debug|Any CPU - {ABD44B89-6B8C-4902-8EB4-DB6F4F19C9D3}.Debug|x64.Build.0 = Debug|Any CPU - {ABD44B89-6B8C-4902-8EB4-DB6F4F19C9D3}.Debug|x86.ActiveCfg = Debug|Any CPU - {ABD44B89-6B8C-4902-8EB4-DB6F4F19C9D3}.Debug|x86.Build.0 = Debug|Any CPU - {ABD44B89-6B8C-4902-8EB4-DB6F4F19C9D3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {ABD44B89-6B8C-4902-8EB4-DB6F4F19C9D3}.Release|Any CPU.Build.0 = Release|Any CPU - {ABD44B89-6B8C-4902-8EB4-DB6F4F19C9D3}.Release|x64.ActiveCfg = Release|Any CPU - {ABD44B89-6B8C-4902-8EB4-DB6F4F19C9D3}.Release|x64.Build.0 = Release|Any CPU - {ABD44B89-6B8C-4902-8EB4-DB6F4F19C9D3}.Release|x86.ActiveCfg = Release|Any CPU - {ABD44B89-6B8C-4902-8EB4-DB6F4F19C9D3}.Release|x86.Build.0 = Release|Any CPU - {45EAC490-1351-4FB5-9E16-AAFEEDDB36AD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {45EAC490-1351-4FB5-9E16-AAFEEDDB36AD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {45EAC490-1351-4FB5-9E16-AAFEEDDB36AD}.Debug|x64.ActiveCfg = Debug|Any CPU - {45EAC490-1351-4FB5-9E16-AAFEEDDB36AD}.Debug|x64.Build.0 = Debug|Any CPU - {45EAC490-1351-4FB5-9E16-AAFEEDDB36AD}.Debug|x86.ActiveCfg = Debug|Any CPU - {45EAC490-1351-4FB5-9E16-AAFEEDDB36AD}.Debug|x86.Build.0 = Debug|Any CPU - {45EAC490-1351-4FB5-9E16-AAFEEDDB36AD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {45EAC490-1351-4FB5-9E16-AAFEEDDB36AD}.Release|Any CPU.Build.0 = Release|Any CPU - {45EAC490-1351-4FB5-9E16-AAFEEDDB36AD}.Release|x64.ActiveCfg = Release|Any CPU - {45EAC490-1351-4FB5-9E16-AAFEEDDB36AD}.Release|x64.Build.0 = Release|Any CPU - {45EAC490-1351-4FB5-9E16-AAFEEDDB36AD}.Release|x86.ActiveCfg = Release|Any CPU - {45EAC490-1351-4FB5-9E16-AAFEEDDB36AD}.Release|x86.Build.0 = Release|Any CPU - {79338A1C-5A2B-42D4-AF30-BBAB98613880}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {79338A1C-5A2B-42D4-AF30-BBAB98613880}.Debug|Any CPU.Build.0 = Debug|Any CPU - {79338A1C-5A2B-42D4-AF30-BBAB98613880}.Debug|x64.ActiveCfg = Debug|Any CPU - {79338A1C-5A2B-42D4-AF30-BBAB98613880}.Debug|x64.Build.0 = Debug|Any CPU - {79338A1C-5A2B-42D4-AF30-BBAB98613880}.Debug|x86.ActiveCfg = Debug|Any CPU - {79338A1C-5A2B-42D4-AF30-BBAB98613880}.Debug|x86.Build.0 = Debug|Any CPU - {79338A1C-5A2B-42D4-AF30-BBAB98613880}.Release|Any CPU.ActiveCfg = Release|Any CPU - {79338A1C-5A2B-42D4-AF30-BBAB98613880}.Release|Any CPU.Build.0 = Release|Any CPU - {79338A1C-5A2B-42D4-AF30-BBAB98613880}.Release|x64.ActiveCfg = Release|Any CPU - {79338A1C-5A2B-42D4-AF30-BBAB98613880}.Release|x64.Build.0 = Release|Any CPU - {79338A1C-5A2B-42D4-AF30-BBAB98613880}.Release|x86.ActiveCfg = Release|Any CPU - {79338A1C-5A2B-42D4-AF30-BBAB98613880}.Release|x86.Build.0 = Release|Any CPU - {6D91EB21-0E27-4F8A-9B65-397C831531C7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6D91EB21-0E27-4F8A-9B65-397C831531C7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6D91EB21-0E27-4F8A-9B65-397C831531C7}.Debug|x64.ActiveCfg = Debug|Any CPU - {6D91EB21-0E27-4F8A-9B65-397C831531C7}.Debug|x64.Build.0 = Debug|Any CPU - {6D91EB21-0E27-4F8A-9B65-397C831531C7}.Debug|x86.ActiveCfg = Debug|Any CPU - {6D91EB21-0E27-4F8A-9B65-397C831531C7}.Debug|x86.Build.0 = Debug|Any CPU - {6D91EB21-0E27-4F8A-9B65-397C831531C7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6D91EB21-0E27-4F8A-9B65-397C831531C7}.Release|Any CPU.Build.0 = Release|Any CPU - {6D91EB21-0E27-4F8A-9B65-397C831531C7}.Release|x64.ActiveCfg = Release|Any CPU - {6D91EB21-0E27-4F8A-9B65-397C831531C7}.Release|x64.Build.0 = Release|Any CPU - {6D91EB21-0E27-4F8A-9B65-397C831531C7}.Release|x86.ActiveCfg = Release|Any CPU - {6D91EB21-0E27-4F8A-9B65-397C831531C7}.Release|x86.Build.0 = Release|Any CPU - {C19499AE-568C-4FE4-8E4F-EA6E2219E0FF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C19499AE-568C-4FE4-8E4F-EA6E2219E0FF}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C19499AE-568C-4FE4-8E4F-EA6E2219E0FF}.Debug|x64.ActiveCfg = Debug|Any CPU - {C19499AE-568C-4FE4-8E4F-EA6E2219E0FF}.Debug|x64.Build.0 = Debug|Any CPU - {C19499AE-568C-4FE4-8E4F-EA6E2219E0FF}.Debug|x86.ActiveCfg = Debug|Any CPU - {C19499AE-568C-4FE4-8E4F-EA6E2219E0FF}.Debug|x86.Build.0 = Debug|Any CPU - {C19499AE-568C-4FE4-8E4F-EA6E2219E0FF}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C19499AE-568C-4FE4-8E4F-EA6E2219E0FF}.Release|Any CPU.Build.0 = Release|Any CPU - {C19499AE-568C-4FE4-8E4F-EA6E2219E0FF}.Release|x64.ActiveCfg = Release|Any CPU - {C19499AE-568C-4FE4-8E4F-EA6E2219E0FF}.Release|x64.Build.0 = Release|Any CPU - {C19499AE-568C-4FE4-8E4F-EA6E2219E0FF}.Release|x86.ActiveCfg = Release|Any CPU - {C19499AE-568C-4FE4-8E4F-EA6E2219E0FF}.Release|x86.Build.0 = Release|Any CPU - {287DC56C-725C-4FCE-9AFB-D4F9F3E7481C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {287DC56C-725C-4FCE-9AFB-D4F9F3E7481C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {287DC56C-725C-4FCE-9AFB-D4F9F3E7481C}.Debug|x64.ActiveCfg = Debug|Any CPU - {287DC56C-725C-4FCE-9AFB-D4F9F3E7481C}.Debug|x64.Build.0 = Debug|Any CPU - {287DC56C-725C-4FCE-9AFB-D4F9F3E7481C}.Debug|x86.ActiveCfg = Debug|Any CPU - {287DC56C-725C-4FCE-9AFB-D4F9F3E7481C}.Debug|x86.Build.0 = Debug|Any CPU - {287DC56C-725C-4FCE-9AFB-D4F9F3E7481C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {287DC56C-725C-4FCE-9AFB-D4F9F3E7481C}.Release|Any CPU.Build.0 = Release|Any CPU - {287DC56C-725C-4FCE-9AFB-D4F9F3E7481C}.Release|x64.ActiveCfg = Release|Any CPU - {287DC56C-725C-4FCE-9AFB-D4F9F3E7481C}.Release|x64.Build.0 = Release|Any CPU - {287DC56C-725C-4FCE-9AFB-D4F9F3E7481C}.Release|x86.ActiveCfg = Release|Any CPU - {287DC56C-725C-4FCE-9AFB-D4F9F3E7481C}.Release|x86.Build.0 = Release|Any CPU - {BDA5D50F-3ADA-41F5-8DE8-1C9E6CB64118}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BDA5D50F-3ADA-41F5-8DE8-1C9E6CB64118}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BDA5D50F-3ADA-41F5-8DE8-1C9E6CB64118}.Debug|x64.ActiveCfg = Debug|Any CPU - {BDA5D50F-3ADA-41F5-8DE8-1C9E6CB64118}.Debug|x64.Build.0 = Debug|Any CPU - {BDA5D50F-3ADA-41F5-8DE8-1C9E6CB64118}.Debug|x86.ActiveCfg = Debug|Any CPU - {BDA5D50F-3ADA-41F5-8DE8-1C9E6CB64118}.Debug|x86.Build.0 = Debug|Any CPU - {BDA5D50F-3ADA-41F5-8DE8-1C9E6CB64118}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BDA5D50F-3ADA-41F5-8DE8-1C9E6CB64118}.Release|Any CPU.Build.0 = Release|Any CPU - {BDA5D50F-3ADA-41F5-8DE8-1C9E6CB64118}.Release|x64.ActiveCfg = Release|Any CPU - {BDA5D50F-3ADA-41F5-8DE8-1C9E6CB64118}.Release|x64.Build.0 = Release|Any CPU - {BDA5D50F-3ADA-41F5-8DE8-1C9E6CB64118}.Release|x86.ActiveCfg = Release|Any CPU - {BDA5D50F-3ADA-41F5-8DE8-1C9E6CB64118}.Release|x86.Build.0 = Release|Any CPU - {850D52F8-D99D-468D-8A0D-8C42D3D16318}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {850D52F8-D99D-468D-8A0D-8C42D3D16318}.Debug|Any CPU.Build.0 = Debug|Any CPU - {850D52F8-D99D-468D-8A0D-8C42D3D16318}.Debug|x64.ActiveCfg = Debug|Any CPU - {850D52F8-D99D-468D-8A0D-8C42D3D16318}.Debug|x64.Build.0 = Debug|Any CPU - {850D52F8-D99D-468D-8A0D-8C42D3D16318}.Debug|x86.ActiveCfg = Debug|Any CPU - {850D52F8-D99D-468D-8A0D-8C42D3D16318}.Debug|x86.Build.0 = Debug|Any CPU - {850D52F8-D99D-468D-8A0D-8C42D3D16318}.Release|Any CPU.ActiveCfg = Release|Any CPU - {850D52F8-D99D-468D-8A0D-8C42D3D16318}.Release|Any CPU.Build.0 = Release|Any CPU - {850D52F8-D99D-468D-8A0D-8C42D3D16318}.Release|x64.ActiveCfg = Release|Any CPU - {850D52F8-D99D-468D-8A0D-8C42D3D16318}.Release|x64.Build.0 = Release|Any CPU - {850D52F8-D99D-468D-8A0D-8C42D3D16318}.Release|x86.ActiveCfg = Release|Any CPU - {850D52F8-D99D-468D-8A0D-8C42D3D16318}.Release|x86.Build.0 = Release|Any CPU - {25339E9B-7AE9-4CA2-986C-0606B75DC344}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {25339E9B-7AE9-4CA2-986C-0606B75DC344}.Debug|Any CPU.Build.0 = Debug|Any CPU - {25339E9B-7AE9-4CA2-986C-0606B75DC344}.Debug|x64.ActiveCfg = Debug|Any CPU - {25339E9B-7AE9-4CA2-986C-0606B75DC344}.Debug|x64.Build.0 = Debug|Any CPU - {25339E9B-7AE9-4CA2-986C-0606B75DC344}.Debug|x86.ActiveCfg = Debug|Any CPU - {25339E9B-7AE9-4CA2-986C-0606B75DC344}.Debug|x86.Build.0 = Debug|Any CPU - {25339E9B-7AE9-4CA2-986C-0606B75DC344}.Release|Any CPU.ActiveCfg = Release|Any CPU - {25339E9B-7AE9-4CA2-986C-0606B75DC344}.Release|Any CPU.Build.0 = Release|Any CPU - {25339E9B-7AE9-4CA2-986C-0606B75DC344}.Release|x64.ActiveCfg = Release|Any CPU - {25339E9B-7AE9-4CA2-986C-0606B75DC344}.Release|x64.Build.0 = Release|Any CPU - {25339E9B-7AE9-4CA2-986C-0606B75DC344}.Release|x86.ActiveCfg = Release|Any CPU - {25339E9B-7AE9-4CA2-986C-0606B75DC344}.Release|x86.Build.0 = Release|Any CPU - {B48569C5-16E7-478F-9270-810994007CE6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B48569C5-16E7-478F-9270-810994007CE6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B48569C5-16E7-478F-9270-810994007CE6}.Debug|x64.ActiveCfg = Debug|Any CPU - {B48569C5-16E7-478F-9270-810994007CE6}.Debug|x64.Build.0 = Debug|Any CPU - {B48569C5-16E7-478F-9270-810994007CE6}.Debug|x86.ActiveCfg = Debug|Any CPU - {B48569C5-16E7-478F-9270-810994007CE6}.Debug|x86.Build.0 = Debug|Any CPU - {B48569C5-16E7-478F-9270-810994007CE6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B48569C5-16E7-478F-9270-810994007CE6}.Release|Any CPU.Build.0 = Release|Any CPU - {B48569C5-16E7-478F-9270-810994007CE6}.Release|x64.ActiveCfg = Release|Any CPU - {B48569C5-16E7-478F-9270-810994007CE6}.Release|x64.Build.0 = Release|Any CPU - {B48569C5-16E7-478F-9270-810994007CE6}.Release|x86.ActiveCfg = Release|Any CPU - {B48569C5-16E7-478F-9270-810994007CE6}.Release|x86.Build.0 = Release|Any CPU - {671862A9-4A85-45E6-9ED9-BF81AEA5141F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {671862A9-4A85-45E6-9ED9-BF81AEA5141F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {671862A9-4A85-45E6-9ED9-BF81AEA5141F}.Debug|x64.ActiveCfg = Debug|Any CPU - {671862A9-4A85-45E6-9ED9-BF81AEA5141F}.Debug|x64.Build.0 = Debug|Any CPU - {671862A9-4A85-45E6-9ED9-BF81AEA5141F}.Debug|x86.ActiveCfg = Debug|Any CPU - {671862A9-4A85-45E6-9ED9-BF81AEA5141F}.Debug|x86.Build.0 = Debug|Any CPU - {671862A9-4A85-45E6-9ED9-BF81AEA5141F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {671862A9-4A85-45E6-9ED9-BF81AEA5141F}.Release|Any CPU.Build.0 = Release|Any CPU - {671862A9-4A85-45E6-9ED9-BF81AEA5141F}.Release|x64.ActiveCfg = Release|Any CPU - {671862A9-4A85-45E6-9ED9-BF81AEA5141F}.Release|x64.Build.0 = Release|Any CPU - {671862A9-4A85-45E6-9ED9-BF81AEA5141F}.Release|x86.ActiveCfg = Release|Any CPU - {671862A9-4A85-45E6-9ED9-BF81AEA5141F}.Release|x86.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {BF35499A-12D1-4BEE-90C1-9C74F5236741} = {EC86EA97-FDE0-44A0-8A95-F0076988987F} - {DFE20AAB-EA60-4401-9FE5-C2D32F81BC11} = {EC86EA97-FDE0-44A0-8A95-F0076988987F} - {CBA2C308-CD96-407F-ACB3-B83AD7CA0B08} = {EC86EA97-FDE0-44A0-8A95-F0076988987F} - {A74C6952-488E-4926-BE04-E17684FDAA0C} = {F64D0F04-967C-4AC2-92C0-C93C4C04AFAA} - {49EF5E85-E0CD-47CA-9489-2434649CA6FD} = {A74C6952-488E-4926-BE04-E17684FDAA0C} - {EC86EA97-FDE0-44A0-8A95-F0076988987F} = {49EF5E85-E0CD-47CA-9489-2434649CA6FD} - {8C0538E7-6662-4508-960F-F0193A0E02E6} = {EC86EA97-FDE0-44A0-8A95-F0076988987F} - {B3108BC1-2E87-4155-9B80-6D4DDD6C7D01} = {EC86EA97-FDE0-44A0-8A95-F0076988987F} - {5419B69C-7DBE-4006-B62F-38BC06935A6A} = {EC86EA97-FDE0-44A0-8A95-F0076988987F} - {DF85BF81-EE96-41EF-AA3F-ED1EAE463619} = {49EF5E85-E0CD-47CA-9489-2434649CA6FD} - {095A4A6A-6A1D-4493-AC12-527199274635} = {DF85BF81-EE96-41EF-AA3F-ED1EAE463619} - {4BFC28A4-20D7-487E-AEFB-EAD48D7BB01C} = {DF85BF81-EE96-41EF-AA3F-ED1EAE463619} - {614B6038-7A52-407E-B48C-79817C1F7669} = {DF85BF81-EE96-41EF-AA3F-ED1EAE463619} - {1294BA2E-698E-4B71-9437-55088B620849} = {DF85BF81-EE96-41EF-AA3F-ED1EAE463619} - {C3176341-2229-42A7-A9DF-846CB8C360A9} = {EC86EA97-FDE0-44A0-8A95-F0076988987F} - {4FBDBE52-2844-47F0-8D2E-CA06234E76A8} = {EC86EA97-FDE0-44A0-8A95-F0076988987F} - {3F7A94C8-F84A-43A3-9276-B2F5F3047394} = {F64D0F04-967C-4AC2-92C0-C93C4C04AFAA} - {057BB3A2-3548-4B4A-8D5E-B6E527D0BD3B} = {3F7A94C8-F84A-43A3-9276-B2F5F3047394} - {0BF5C2B5-0F01-48B5-BE4E-5E3E13D149A6} = {057BB3A2-3548-4B4A-8D5E-B6E527D0BD3B} - {9EC5AB81-93F6-4150-9F67-61A0C2207E27} = {057BB3A2-3548-4B4A-8D5E-B6E527D0BD3B} - {EF89CDDF-DD30-43FF-A14D-05EFA08FE508} = {3F7A94C8-F84A-43A3-9276-B2F5F3047394} - {946AC805-126B-489D-BADF-D9823955E482} = {EF89CDDF-DD30-43FF-A14D-05EFA08FE508} - {B5CB45DC-4DED-4EE2-9242-3F7B0EAEAF58} = {EF89CDDF-DD30-43FF-A14D-05EFA08FE508} - {86EB6286-8842-4D4C-896B-BB7E5BB5D6D6} = {EF89CDDF-DD30-43FF-A14D-05EFA08FE508} - {69DA869D-1797-4417-8102-F02D3AD7C029} = {EF89CDDF-DD30-43FF-A14D-05EFA08FE508} - {DF8723BA-89E4-455F-8D0D-61859E6F4631} = {EF89CDDF-DD30-43FF-A14D-05EFA08FE508} - {50646A7D-3564-442A-A08C-CCAF3FAA64D4} = {EF89CDDF-DD30-43FF-A14D-05EFA08FE508} - {D2EBE7E5-3679-471F-812D-77A3997C6BD3} = {EF89CDDF-DD30-43FF-A14D-05EFA08FE508} - {8FE2DF3A-4675-4577-AC0C-77D8BF8841CB} = {EF89CDDF-DD30-43FF-A14D-05EFA08FE508} - {DD455B6C-392A-4D04-A031-46D491722A9F} = {EF89CDDF-DD30-43FF-A14D-05EFA08FE508} - {3B612B74-8DF0-4B45-8C49-4883022467C2} = {A74C6952-488E-4926-BE04-E17684FDAA0C} - {88514BF5-4E9B-4781-8F11-5A181E287BA2} = {3B612B74-8DF0-4B45-8C49-4883022467C2} - {B0DAF5CC-6B09-48EE-9438-99BE81AC704C} = {3B612B74-8DF0-4B45-8C49-4883022467C2} - {CC44E5B9-E246-44FE-81B3-82394BF84707} = {3B612B74-8DF0-4B45-8C49-4883022467C2} - {A31CF827-F17B-48C1-9EB1-31D2EF87BD66} = {3B612B74-8DF0-4B45-8C49-4883022467C2} - {5FFDBDCB-7524-438E-9C4F-4FA4A9CF13A8} = {3F7A94C8-F84A-43A3-9276-B2F5F3047394} - {1721B3E2-4CE8-4FAF-A00B-766478F60B54} = {5FFDBDCB-7524-438E-9C4F-4FA4A9CF13A8} - {6E4E4DF1-9A3E-4DB6-98BC-6784125A8FF5} = {5FFDBDCB-7524-438E-9C4F-4FA4A9CF13A8} - {6B9F3B39-7CDA-46ED-BAFC-F54A57792597} = {5FFDBDCB-7524-438E-9C4F-4FA4A9CF13A8} - {17C03355-60EB-4A66-A62B-DF2A8407FF8F} = {5FFDBDCB-7524-438E-9C4F-4FA4A9CF13A8} - {38087D48-66EF-4379-9989-CA6F2CA7DAC9} = {5FFDBDCB-7524-438E-9C4F-4FA4A9CF13A8} - {ADECA52F-A04F-4A8F-812E-59A9FBE3EC68} = {5FFDBDCB-7524-438E-9C4F-4FA4A9CF13A8} - {6AD1E7B2-B9A7-497C-A61D-21C6FCE9F3BC} = {5FFDBDCB-7524-438E-9C4F-4FA4A9CF13A8} - {097E5E27-6233-45BC-9C76-81C9ECF34DE2} = {5FFDBDCB-7524-438E-9C4F-4FA4A9CF13A8} - {934740D8-9853-4EF7-AD9E-1A090329E70E} = {2CF2BB74-B979-4610-9A38-CAF45EEC27BD} - {E40CF076-974B-4882-8B68-2FE71A7266E3} = {F64D0F04-967C-4AC2-92C0-C93C4C04AFAA} - {2CF2BB74-B979-4610-9A38-CAF45EEC27BD} = {E40CF076-974B-4882-8B68-2FE71A7266E3} - {9CFD42DE-61AE-4FD0-BBAD-A85807025C19} = {2CF2BB74-B979-4610-9A38-CAF45EEC27BD} - {BF9294FF-74C6-4777-9B69-7867F161F582} = {E40CF076-974B-4882-8B68-2FE71A7266E3} - {0B3E0C08-2F75-40A4-A35B-0C335F9C1D61} = {BF9294FF-74C6-4777-9B69-7867F161F582} - {1521D741-3C9A-47D9-8CC2-062B881AA1D1} = {0B3E0C08-2F75-40A4-A35B-0C335F9C1D61} - {C746B9BF-0DE6-4D3A-B537-EC132486C76A} = {0B3E0C08-2F75-40A4-A35B-0C335F9C1D61} - {8075BE2B-9D61-42D9-B099-F5854AEA4C86} = {A74C6952-488E-4926-BE04-E17684FDAA0C} - {3046E8E0-2116-4FA2-B4EC-9BAAA181069C} = {A74C6952-488E-4926-BE04-E17684FDAA0C} - {4A26BBA8-2CDF-47C2-9028-8197C45F5F2E} = {F64D0F04-967C-4AC2-92C0-C93C4C04AFAA} - {B352F52C-5091-4857-9BA8-3CD1221FC447} = {4A26BBA8-2CDF-47C2-9028-8197C45F5F2E} - {C403C0EA-AB5D-4769-8D6D-C507BCBD2684} = {4A26BBA8-2CDF-47C2-9028-8197C45F5F2E} - {B6D6F885-55E8-4A2C-A873-54953586E387} = {4A26BBA8-2CDF-47C2-9028-8197C45F5F2E} - {6ECDFE7A-CF7C-478B-922F-0CA23BE51A58} = {B6D6F885-55E8-4A2C-A873-54953586E387} - {58C7C38B-63B8-485B-9051-7A804E7DC270} = {B6D6F885-55E8-4A2C-A873-54953586E387} - {5323002C-F5BF-40A2-9732-23F9E25EB8AA} = {B6D6F885-55E8-4A2C-A873-54953586E387} - {77A8D383-EFCA-44E2-BFF0-F179B245E4A9} = {B6D6F885-55E8-4A2C-A873-54953586E387} - {E0B5CE9F-FB29-4873-A434-8D22F22EE84E} = {B6D6F885-55E8-4A2C-A873-54953586E387} - {824E112B-6FD9-4E73-BC0F-7E9FFA089CB2} = {B6D6F885-55E8-4A2C-A873-54953586E387} - {B997EAFC-13A1-48EB-8581-B9E3074F7A26} = {B6D6F885-55E8-4A2C-A873-54953586E387} - {47736DBE-538F-4A65-8AD3-3DD803343C81} = {3B612B74-8DF0-4B45-8C49-4883022467C2} - {65BAA9ED-E48A-4868-9C6C-90DF2E00AA5D} = {F64D0F04-967C-4AC2-92C0-C93C4C04AFAA} - {3F73FB3A-9E0D-4777-8306-AEA1BD9FBF06} = {65BAA9ED-E48A-4868-9C6C-90DF2E00AA5D} - {956E7526-FD0A-4E38-AF31-B99D4B1FE17F} = {3F73FB3A-9E0D-4777-8306-AEA1BD9FBF06} - {8B71A10A-B37F-447C-86DE-6460B5159BD0} = {E40CF076-974B-4882-8B68-2FE71A7266E3} - {28247C7F-D953-4148-B2B5-FFC566202651} = {4A26BBA8-2CDF-47C2-9028-8197C45F5F2E} - {DBE71E97-BE9F-4B06-AADD-3D775BB9F5F3} = {28247C7F-D953-4148-B2B5-FFC566202651} - {92A58FFE-C27A-4C5E-B6EF-0CF4C5C86CD9} = {DBE71E97-BE9F-4B06-AADD-3D775BB9F5F3} - {4DFB1EEE-D389-4FE1-8710-F1D364790715} = {4A26BBA8-2CDF-47C2-9028-8197C45F5F2E} - {64DAD0ED-C4A5-4460-9559-69CD02BFE134} = {4DFB1EEE-D389-4FE1-8710-F1D364790715} - {5DEBB03B-5502-444A-9E50-E943A18F50D1} = {4DFB1EEE-D389-4FE1-8710-F1D364790715} - {0E0F6C16-9633-486B-A09B-64717AF3EA63} = {A74C6952-488E-4926-BE04-E17684FDAA0C} - {70950A43-0516-4902-B37F-9DE9EDF96FC6} = {0E0F6C16-9633-486B-A09B-64717AF3EA63} - {E4A44DBD-9790-4C08-8AAF-C7215E514706} = {0E0F6C16-9633-486B-A09B-64717AF3EA63} - {C98EAE44-7B2D-4AC8-858C-D74C806225CA} = {F64D0F04-967C-4AC2-92C0-C93C4C04AFAA} - {F7051618-E80F-4B53-B97D-D58147224630} = {9BDA35D4-07CE-4BE2-B3D6-F33CA456875A} - {9BDA35D4-07CE-4BE2-B3D6-F33CA456875A} = {C98EAE44-7B2D-4AC8-858C-D74C806225CA} - {6C01471F-C35B-4390-9C76-F71CD8BD227F} = {9BDA35D4-07CE-4BE2-B3D6-F33CA456875A} - {87B5CB14-2AFF-40CA-B5B1-D9214D5A8ADF} = {49EF5E85-E0CD-47CA-9489-2434649CA6FD} - {D06AB451-D752-48A1-9A35-8AECCAE1AF61} = {87B5CB14-2AFF-40CA-B5B1-D9214D5A8ADF} - {C893DDA9-D185-4C60-AF13-3719474D638A} = {87B5CB14-2AFF-40CA-B5B1-D9214D5A8ADF} - {B4781ABB-45AF-43A9-881B-BEAD004A98F3} = {4DFB1EEE-D389-4FE1-8710-F1D364790715} - {3C69A73F-3C17-4963-9BAD-69BA7D2FC059} = {B4781ABB-45AF-43A9-881B-BEAD004A98F3} - {909F9E92-42D8-4A67-8540-6AADD647102E} = {4A26BBA8-2CDF-47C2-9028-8197C45F5F2E} - {8AD99F31-1B31-45CF-A1A2-3BAD6F7BAC00} = {909F9E92-42D8-4A67-8540-6AADD647102E} - {0CFA4CE4-B4B8-48F0-9D2E-E7FD7EE79ABD} = {4A26BBA8-2CDF-47C2-9028-8197C45F5F2E} - {CE284858-D665-4B68-B921-419FEBC8159B} = {0CFA4CE4-B4B8-48F0-9D2E-E7FD7EE79ABD} - {BA281A36-2842-48EC-B2A7-93C7C81C5BCC} = {3B9AF35F-45F6-4652-A197-99B939812205} - {16D9B8DC-6C57-47F7-BBCC-68E9927D7AFE} = {E40CF076-974B-4882-8B68-2FE71A7266E3} - {A9572C4A-7A90-4779-8BBE-35457C2CA601} = {16D9B8DC-6C57-47F7-BBCC-68E9927D7AFE} - {BE575FEA-FA7A-4196-AE0A-6834CE34CE59} = {16D9B8DC-6C57-47F7-BBCC-68E9927D7AFE} - {F99B42FF-45A3-46E8-BE58-EC38C83E06E4} = {16D9B8DC-6C57-47F7-BBCC-68E9927D7AFE} - {87D52AC1-D713-4D70-BD09-6F8E1981FC9E} = {E40CF076-974B-4882-8B68-2FE71A7266E3} - {231BEB1C-7F5A-4401-B2DE-1D21A7562924} = {E40CF076-974B-4882-8B68-2FE71A7266E3} - {4DB8DFA1-82F0-4585-BC1C-32AB93A4F928} = {231BEB1C-7F5A-4401-B2DE-1D21A7562924} - {E5BA6D7A-B104-48F2-B4ED-42DC6B4B7520} = {87D52AC1-D713-4D70-BD09-6F8E1981FC9E} - {028EBB7D-C7D4-4EB1-AABD-3BF2D5BB8D4B} = {87D52AC1-D713-4D70-BD09-6F8E1981FC9E} - {E791AE5F-7B7E-4CEF-897B-0A8D72CDE445} = {231BEB1C-7F5A-4401-B2DE-1D21A7562924} - {6FBA50C2-1277-4EDA-BA07-03D4145B0732} = {4A26BBA8-2CDF-47C2-9028-8197C45F5F2E} - {5284B03E-A850-4D19-A648-AC9B5AE6BAC0} = {6FBA50C2-1277-4EDA-BA07-03D4145B0732} - {0ABCB063-EBB6-41D9-8515-AE3825C5F3C4} = {5284B03E-A850-4D19-A648-AC9B5AE6BAC0} - {52B5D05F-9F76-41A8-9334-2580ACE435C6} = {0ABCB063-EBB6-41D9-8515-AE3825C5F3C4} - {99318E2F-805D-4AF7-8E51-BAF6FCC257CE} = {E40CF076-974B-4882-8B68-2FE71A7266E3} - {44938E1F-6821-476A-A9C1-8D35839D25AF} = {F64D0F04-967C-4AC2-92C0-C93C4C04AFAA} - {16F97640-3694-4BA8-98E3-FF4A7C602BE1} = {44938E1F-6821-476A-A9C1-8D35839D25AF} - {E68F82B2-14C7-47C5-9747-62C262722D1E} = {16F97640-3694-4BA8-98E3-FF4A7C602BE1} - {4E4EFE27-E464-477E-81EC-25C7494F3576} = {BDA50AE4-E6AF-4861-A580-5A8ED29DBE37} - {EBCA4B00-6277-46D6-AF36-E638CCC610E2} = {16F97640-3694-4BA8-98E3-FF4A7C602BE1} - {C1A415DC-597E-4AD8-8A89-C6AF52F5026D} = {16F97640-3694-4BA8-98E3-FF4A7C602BE1} - {AC7213D9-5A97-429C-B1A0-964B8A9C2F1B} = {44938E1F-6821-476A-A9C1-8D35839D25AF} - {211FD731-0F62-4910-8343-6AA5ADA9686E} = {AC7213D9-5A97-429C-B1A0-964B8A9C2F1B} - {7B2497DF-1016-4C40-B894-9EDE00B4CA56} = {AC7213D9-5A97-429C-B1A0-964B8A9C2F1B} - {0C0F48CF-FEAB-482B-95CE-CCC9C626A7D5} = {44938E1F-6821-476A-A9C1-8D35839D25AF} - {9BD06E47-C47D-455E-84AD-B9835BDA2943} = {0C0F48CF-FEAB-482B-95CE-CCC9C626A7D5} - {4B3CF3C7-EF23-4149-8024-963201BE5EB4} = {0C0F48CF-FEAB-482B-95CE-CCC9C626A7D5} - {634B6143-B564-4FA9-BF7B-7D15F26045BA} = {0C0F48CF-FEAB-482B-95CE-CCC9C626A7D5} - {049C8D2C-B00E-4369-90A6-6043C393C2ED} = {0C0F48CF-FEAB-482B-95CE-CCC9C626A7D5} - {68B2586F-5AE9-4754-AAB3-BB6512581CF3} = {E40CF076-974B-4882-8B68-2FE71A7266E3} - {171A091E-0477-4CC6-AC83-F0FFF5594375} = {68B2586F-5AE9-4754-AAB3-BB6512581CF3} - {014491C6-58A0-4DFA-ACFC-4988ADCD546A} = {68B2586F-5AE9-4754-AAB3-BB6512581CF3} - {6D4E6E9C-39F7-44D9-95F2-BE8B5B07B279} = {E40CF076-974B-4882-8B68-2FE71A7266E3} - {C94242B3-AF74-4966-9508-55CEA7B589E9} = {6D4E6E9C-39F7-44D9-95F2-BE8B5B07B279} - {73162237-344C-4196-9754-F0D270649C0E} = {6D4E6E9C-39F7-44D9-95F2-BE8B5B07B279} - {5E2F6EFC-61EF-467E-85C8-17CDB62DE450} = {6D4E6E9C-39F7-44D9-95F2-BE8B5B07B279} - {8A0F5048-C9A6-4206-971F-696C4695D3C9} = {E40CF076-974B-4882-8B68-2FE71A7266E3} - {98776527-60A3-4346-8A3E-A74A6D9FEEB4} = {8A0F5048-C9A6-4206-971F-696C4695D3C9} - {028A8572-A183-43DC-BE68-622C36ED36DA} = {8A0F5048-C9A6-4206-971F-696C4695D3C9} - {C3D5CA53-026A-4996-BC2F-9A3849536537} = {3F7A94C8-F84A-43A3-9276-B2F5F3047394} - {30DA959F-B00E-4649-BB59-5BB83B4FD516} = {A74C6952-488E-4926-BE04-E17684FDAA0C} - {AB21D4DB-F483-4977-A75F-8763198B941B} = {30DA959F-B00E-4649-BB59-5BB83B4FD516} - {B31F1FBD-F505-42D9-9761-05A5E19F87B1} = {30DA959F-B00E-4649-BB59-5BB83B4FD516} - {4D20BE29-3DB1-479D-B4E8-BA900BBB48B1} = {A74C6952-488E-4926-BE04-E17684FDAA0C} - {ABD44B89-6B8C-4902-8EB4-DB6F4F19C9D3} = {A74C6952-488E-4926-BE04-E17684FDAA0C} - {45EAC490-1351-4FB5-9E16-AAFEEDDB36AD} = {A74C6952-488E-4926-BE04-E17684FDAA0C} - {79338A1C-5A2B-42D4-AF30-BBAB98613880} = {A74C6952-488E-4926-BE04-E17684FDAA0C} - {6D91EB21-0E27-4F8A-9B65-397C831531C7} = {A74C6952-488E-4926-BE04-E17684FDAA0C} - {D6B1DEF4-8447-45F7-9A80-5448EE354371} = {A74C6952-488E-4926-BE04-E17684FDAA0C} - {C19499AE-568C-4FE4-8E4F-EA6E2219E0FF} = {D6B1DEF4-8447-45F7-9A80-5448EE354371} - {488267F7-B4B5-4A2E-9488-51E8472220BC} = {49EF5E85-E0CD-47CA-9489-2434649CA6FD} - {287DC56C-725C-4FCE-9AFB-D4F9F3E7481C} = {488267F7-B4B5-4A2E-9488-51E8472220BC} - {25339E9B-7AE9-4CA2-986C-0606B75DC344} = {4E3A307F-6683-4806-8C92-374ECF37B434} - {B48569C5-16E7-478F-9270-810994007CE6} = {4E3A307F-6683-4806-8C92-374ECF37B434} - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {82D57A23-9C32-4014-9AFB-25B38D08E1D1} - EndGlobalSection -EndGlobal diff --git a/WinUIClassicSamplesBrowser/Activation/ActivationHandler.cs b/WinUIClassicSamplesBrowser/Activation/ActivationHandler.cs new file mode 100644 index 00000000..4bbd4528 --- /dev/null +++ b/WinUIClassicSamplesBrowser/Activation/ActivationHandler.cs @@ -0,0 +1,17 @@ +namespace WinUIClassicSamplesBrowser.Activation; + +// Extend this class to implement new ActivationHandlers. See DefaultActivationHandler for an example. +// https://github.com/microsoft/TemplateStudio/blob/main/docs/WinUI/activation.md +public abstract class ActivationHandler : IActivationHandler + where T : class +{ + // Override this method to add the logic for whether to handle the activation. + protected virtual bool CanHandleInternal(T args) => true; + + // Override this method to add the logic for your activation handler. + protected abstract Task HandleInternalAsync(T args); + + public bool CanHandle(object args) => args is T && CanHandleInternal((args as T)!); + + public async Task HandleAsync(object args) => await HandleInternalAsync((args as T)!); +} diff --git a/WinUIClassicSamplesBrowser/Activation/AppNotificationActivationHandler.cs b/WinUIClassicSamplesBrowser/Activation/AppNotificationActivationHandler.cs new file mode 100644 index 00000000..01101361 --- /dev/null +++ b/WinUIClassicSamplesBrowser/Activation/AppNotificationActivationHandler.cs @@ -0,0 +1,51 @@ +using Microsoft.UI.Dispatching; +using Microsoft.UI.Xaml; +using Microsoft.Windows.AppLifecycle; +using Microsoft.Windows.AppNotifications; + +using WinUIClassicSamplesBrowser.Contracts.Services; +using WinUIClassicSamplesBrowser.ViewModels; + +namespace WinUIClassicSamplesBrowser.Activation; + +public class AppNotificationActivationHandler : ActivationHandler +{ + private readonly INavigationService _navigationService; + private readonly IAppNotificationService _notificationService; + + public AppNotificationActivationHandler(INavigationService navigationService, IAppNotificationService notificationService) + { + _navigationService = navigationService; + _notificationService = notificationService; + } + + protected override bool CanHandleInternal(LaunchActivatedEventArgs args) + { + return AppInstance.GetCurrent().GetActivatedEventArgs()?.Kind == ExtendedActivationKind.AppNotification; + } + + protected async override Task HandleInternalAsync(LaunchActivatedEventArgs args) + { + // TODO: Handle notification activations. + + //// // Access the AppNotificationActivatedEventArgs. + //// var activatedEventArgs = (AppNotificationActivatedEventArgs)AppInstance.GetCurrent().GetActivatedEventArgs().Data; + + //// // Navigate to a specific page based on the notification arguments. + //// if (_notificationService.ParseArguments(activatedEventArgs.Argument)["action"] == "Settings") + //// { + //// // Queue navigation with low priority to allow the UI to initialize. + //// App.MainWindow.DispatcherQueue.TryEnqueue(DispatcherQueuePriority.Low, () => + //// { + //// _navigationService.NavigateTo(typeof(SettingsViewModel).FullName!); + //// }); + //// } + + App.MainWindow.DispatcherQueue.TryEnqueue(DispatcherQueuePriority.Low, () => + { + App.MainWindow.ShowMessageDialogAsync("TODO: Handle notification activations.", "Notification Activation"); + }); + + await Task.CompletedTask; + } +} diff --git a/WinUIClassicSamplesBrowser/Activation/DefaultActivationHandler.cs b/WinUIClassicSamplesBrowser/Activation/DefaultActivationHandler.cs new file mode 100644 index 00000000..8cb8e2d9 --- /dev/null +++ b/WinUIClassicSamplesBrowser/Activation/DefaultActivationHandler.cs @@ -0,0 +1,29 @@ +using Microsoft.UI.Xaml; + +using WinUIClassicSamplesBrowser.Contracts.Services; +using WinUIClassicSamplesBrowser.ViewModels; + +namespace WinUIClassicSamplesBrowser.Activation; + +public class DefaultActivationHandler : ActivationHandler +{ + private readonly INavigationService _navigationService; + + public DefaultActivationHandler(INavigationService navigationService) + { + _navigationService = navigationService; + } + + protected override bool CanHandleInternal(LaunchActivatedEventArgs args) + { + // None of the ActivationHandlers has handled the activation. + return _navigationService.Frame?.Content == null; + } + + protected async override Task HandleInternalAsync(LaunchActivatedEventArgs args) + { + _navigationService.NavigateTo(typeof(MainViewModel).FullName!, args.Arguments); + + await Task.CompletedTask; + } +} diff --git a/WinUIClassicSamplesBrowser/Activation/IActivationHandler.cs b/WinUIClassicSamplesBrowser/Activation/IActivationHandler.cs new file mode 100644 index 00000000..9d79dcc4 --- /dev/null +++ b/WinUIClassicSamplesBrowser/Activation/IActivationHandler.cs @@ -0,0 +1,8 @@ +namespace WinUIClassicSamplesBrowser.Activation; + +public interface IActivationHandler +{ + bool CanHandle(object args); + + Task HandleAsync(object args); +} diff --git a/WinUIClassicSamplesBrowser/App.xaml b/WinUIClassicSamplesBrowser/App.xaml new file mode 100644 index 00000000..df0dd996 --- /dev/null +++ b/WinUIClassicSamplesBrowser/App.xaml @@ -0,0 +1,15 @@ + + + + + + + + + + + + diff --git a/WinUIClassicSamplesBrowser/App.xaml.cs b/WinUIClassicSamplesBrowser/App.xaml.cs new file mode 100644 index 00000000..7d722dc6 --- /dev/null +++ b/WinUIClassicSamplesBrowser/App.xaml.cs @@ -0,0 +1,107 @@ +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Microsoft.UI.Xaml; + +using WinUIClassicSamplesBrowser.Activation; +using WinUIClassicSamplesBrowser.Contracts.Services; +using WinUIClassicSamplesBrowser.Helpers; +using WinUIClassicSamplesBrowser.Models; +using WinUIClassicSamplesBrowser.Notifications; +using WinUIClassicSamplesBrowser.Services; +using WinUIClassicSamplesBrowser.ViewModels; +using WinUIClassicSamplesBrowser.Views; + +namespace WinUIClassicSamplesBrowser; + +// To learn more about WinUI 3, see https://docs.microsoft.com/windows/apps/winui/winui3/. +public partial class App : Application +{ + // The .NET Generic Host provides dependency injection, configuration, logging, and other services. + // https://docs.microsoft.com/dotnet/core/extensions/generic-host + // https://docs.microsoft.com/dotnet/core/extensions/dependency-injection + // https://docs.microsoft.com/dotnet/core/extensions/configuration + // https://docs.microsoft.com/dotnet/core/extensions/logging + public IHost Host + { + get; + } + + public static T GetService() + where T : class + { + if ((Current as App)!.Host.Services.GetService(typeof(T)) is not T service) + { + throw new ArgumentException($"{typeof(T)} needs to be registered in ConfigureServices within App.xaml.cs."); + } + + return service; + } + + public static WindowEx MainWindow { get; } = new MainWindow(); + + public static UIElement? AppTitlebar { get; set; } + + public App() + { + InitializeComponent(); + + Host = Microsoft.Extensions.Hosting.Host. + CreateDefaultBuilder(). + UseContentRoot(AppContext.BaseDirectory). + ConfigureServices((context, services) => + { + // Default Activation Handler + services.AddTransient, DefaultActivationHandler>(); + + // Other Activation Handlers + services.AddTransient(); + + // Services + services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(); + services.AddTransient(); + services.AddTransient(); + + services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(); + + // Core Services + services.AddSingleton(); + + // Views and ViewModels + services.AddTransient(); + services.AddTransient(); + services.AddTransient(); + services.AddTransient(); + services.AddTransient(); + services.AddTransient(); + services.AddTransient(); + services.AddTransient(); + + // Configuration + services.Configure(context.Configuration.GetSection(nameof(LocalSettingsOptions))); + }). + Build(); + + GetService().Initialize(); + + UnhandledException += App_UnhandledException; + } + + private void App_UnhandledException(object sender, Microsoft.UI.Xaml.UnhandledExceptionEventArgs e) + { + // TODO: Log and handle exceptions as appropriate. + // https://docs.microsoft.com/windows/windows-app-sdk/api/winrt/microsoft.ui.xaml.application.unhandledexception. + } + + protected async override void OnLaunched(LaunchActivatedEventArgs args) + { + base.OnLaunched(args); + + GetService().Show(string.Format("AppNotificationSamplePayload".GetLocalized(), AppContext.BaseDirectory)); + + await GetService().ActivateAsync(args); + } +} diff --git a/WinUIClassicSamplesBrowser/Assets/LockScreenLogo.scale-200.png b/WinUIClassicSamplesBrowser/Assets/LockScreenLogo.scale-200.png new file mode 100644 index 00000000..735f57ad Binary files /dev/null and b/WinUIClassicSamplesBrowser/Assets/LockScreenLogo.scale-200.png differ diff --git a/WinUIClassicSamplesBrowser/Assets/Miscellaneous Debris/Microsoft WinUI Logo.png b/WinUIClassicSamplesBrowser/Assets/Miscellaneous Debris/Microsoft WinUI Logo.png new file mode 100644 index 00000000..ac9af493 Binary files /dev/null and b/WinUIClassicSamplesBrowser/Assets/Miscellaneous Debris/Microsoft WinUI Logo.png differ diff --git a/WinUIClassicSamplesBrowser/Assets/Miscellaneous Debris/Vamara Icon.ico b/WinUIClassicSamplesBrowser/Assets/Miscellaneous Debris/Vamara Icon.ico new file mode 100644 index 00000000..99d681bf Binary files /dev/null and b/WinUIClassicSamplesBrowser/Assets/Miscellaneous Debris/Vamara Icon.ico differ diff --git a/WinUIClassicSamplesBrowser/Assets/SplashScreen.scale-200.png b/WinUIClassicSamplesBrowser/Assets/SplashScreen.scale-200.png new file mode 100644 index 00000000..023e7f1f Binary files /dev/null and b/WinUIClassicSamplesBrowser/Assets/SplashScreen.scale-200.png differ diff --git a/WinUIClassicSamplesBrowser/Assets/Square150x150Logo.scale-200.png b/WinUIClassicSamplesBrowser/Assets/Square150x150Logo.scale-200.png new file mode 100644 index 00000000..af49fec1 Binary files /dev/null and b/WinUIClassicSamplesBrowser/Assets/Square150x150Logo.scale-200.png differ diff --git a/WinUIClassicSamplesBrowser/Assets/Square44x44Logo.scale-200.png b/WinUIClassicSamplesBrowser/Assets/Square44x44Logo.scale-200.png new file mode 100644 index 00000000..ce342a2e Binary files /dev/null and b/WinUIClassicSamplesBrowser/Assets/Square44x44Logo.scale-200.png differ diff --git a/WinUIClassicSamplesBrowser/Assets/Square44x44Logo.targetsize-24_altform-unplated.png b/WinUIClassicSamplesBrowser/Assets/Square44x44Logo.targetsize-24_altform-unplated.png new file mode 100644 index 00000000..f6c02ce9 Binary files /dev/null and b/WinUIClassicSamplesBrowser/Assets/Square44x44Logo.targetsize-24_altform-unplated.png differ diff --git a/WinUIClassicSamplesBrowser/Assets/StoreLogo.png b/WinUIClassicSamplesBrowser/Assets/StoreLogo.png new file mode 100644 index 00000000..7385b56c Binary files /dev/null and b/WinUIClassicSamplesBrowser/Assets/StoreLogo.png differ diff --git a/WinUIClassicSamplesBrowser/Assets/Wide310x150Logo.scale-200.png b/WinUIClassicSamplesBrowser/Assets/Wide310x150Logo.scale-200.png new file mode 100644 index 00000000..288995b3 Binary files /dev/null and b/WinUIClassicSamplesBrowser/Assets/Wide310x150Logo.scale-200.png differ diff --git a/WinUIClassicSamplesBrowser/Assets/WindowIcon.Dark.ico b/WinUIClassicSamplesBrowser/Assets/WindowIcon.Dark.ico new file mode 100644 index 00000000..bc84cd7a Binary files /dev/null and b/WinUIClassicSamplesBrowser/Assets/WindowIcon.Dark.ico differ diff --git a/WinUIClassicSamplesBrowser/Assets/WindowIcon.ico b/WinUIClassicSamplesBrowser/Assets/WindowIcon.ico new file mode 100644 index 00000000..99d681bf Binary files /dev/null and b/WinUIClassicSamplesBrowser/Assets/WindowIcon.ico differ diff --git a/WinUIClassicSamplesBrowser/Behaviors/NavigationViewHeaderBehavior.cs b/WinUIClassicSamplesBrowser/Behaviors/NavigationViewHeaderBehavior.cs new file mode 100644 index 00000000..48442291 --- /dev/null +++ b/WinUIClassicSamplesBrowser/Behaviors/NavigationViewHeaderBehavior.cs @@ -0,0 +1,122 @@ +using Microsoft.UI.Xaml; +using Microsoft.UI.Xaml.Controls; +using Microsoft.UI.Xaml.Navigation; +using Microsoft.Xaml.Interactivity; + +using WinUIClassicSamplesBrowser.Contracts.Services; + +namespace WinUIClassicSamplesBrowser.Behaviors; + +public class NavigationViewHeaderBehavior : Behavior +{ + private static NavigationViewHeaderBehavior? _current; + + private Page? _currentPage; + + public DataTemplate? DefaultHeaderTemplate + { + get; set; + } + + public object DefaultHeader + { + get => GetValue(DefaultHeaderProperty); + set => SetValue(DefaultHeaderProperty, value); + } + + public static readonly DependencyProperty DefaultHeaderProperty = + DependencyProperty.Register("DefaultHeader", typeof(object), typeof(NavigationViewHeaderBehavior), new PropertyMetadata(null, (d, e) => _current!.UpdateHeader())); + + public static NavigationViewHeaderMode GetHeaderMode(Page item) => (NavigationViewHeaderMode)item.GetValue(HeaderModeProperty); + + public static void SetHeaderMode(Page item, NavigationViewHeaderMode value) => item.SetValue(HeaderModeProperty, value); + + public static readonly DependencyProperty HeaderModeProperty = + DependencyProperty.RegisterAttached("HeaderMode", typeof(bool), typeof(NavigationViewHeaderBehavior), new PropertyMetadata(NavigationViewHeaderMode.Always, (d, e) => _current!.UpdateHeader())); + + public static object GetHeaderContext(Page item) => item.GetValue(HeaderContextProperty); + + public static void SetHeaderContext(Page item, object value) => item.SetValue(HeaderContextProperty, value); + + public static readonly DependencyProperty HeaderContextProperty = + DependencyProperty.RegisterAttached("HeaderContext", typeof(object), typeof(NavigationViewHeaderBehavior), new PropertyMetadata(null, (d, e) => _current!.UpdateHeader())); + + public static DataTemplate GetHeaderTemplate(Page item) => (DataTemplate)item.GetValue(HeaderTemplateProperty); + + public static void SetHeaderTemplate(Page item, DataTemplate value) => item.SetValue(HeaderTemplateProperty, value); + + public static readonly DependencyProperty HeaderTemplateProperty = + DependencyProperty.RegisterAttached("HeaderTemplate", typeof(DataTemplate), typeof(NavigationViewHeaderBehavior), new PropertyMetadata(null, (d, e) => _current!.UpdateHeaderTemplate())); + + protected override void OnAttached() + { + base.OnAttached(); + + var navigationService = App.GetService(); + navigationService.Navigated += OnNavigated; + + _current = this; + } + + protected override void OnDetaching() + { + base.OnDetaching(); + + var navigationService = App.GetService(); + navigationService.Navigated -= OnNavigated; + } + + private void OnNavigated(object sender, NavigationEventArgs e) + { + if (sender is Frame frame && frame.Content is Page page) + { + _currentPage = page; + + UpdateHeader(); + UpdateHeaderTemplate(); + } + } + + private void UpdateHeader() + { + if (_currentPage != null) + { + var headerMode = GetHeaderMode(_currentPage); + if (headerMode == NavigationViewHeaderMode.Never) + { + AssociatedObject.Header = null; + AssociatedObject.AlwaysShowHeader = false; + } + else + { + var headerFromPage = GetHeaderContext(_currentPage); + if (headerFromPage != null) + { + AssociatedObject.Header = headerFromPage; + } + else + { + AssociatedObject.Header = DefaultHeader; + } + + if (headerMode == NavigationViewHeaderMode.Always) + { + AssociatedObject.AlwaysShowHeader = true; + } + else + { + AssociatedObject.AlwaysShowHeader = false; + } + } + } + } + + private void UpdateHeaderTemplate() + { + if (_currentPage != null) + { + var headerTemplate = GetHeaderTemplate(_currentPage); + AssociatedObject.HeaderTemplate = headerTemplate ?? DefaultHeaderTemplate; + } + } +} diff --git a/WinUIClassicSamplesBrowser/Behaviors/NavigationViewHeaderMode.cs b/WinUIClassicSamplesBrowser/Behaviors/NavigationViewHeaderMode.cs new file mode 100644 index 00000000..21d5fa8a --- /dev/null +++ b/WinUIClassicSamplesBrowser/Behaviors/NavigationViewHeaderMode.cs @@ -0,0 +1,8 @@ +namespace WinUIClassicSamplesBrowser.Behaviors; + +public enum NavigationViewHeaderMode +{ + Always, + Never, + Minimal +} diff --git a/WinUIClassicSamplesBrowser/Contracts/Services/IActivationService.cs b/WinUIClassicSamplesBrowser/Contracts/Services/IActivationService.cs new file mode 100644 index 00000000..83df7402 --- /dev/null +++ b/WinUIClassicSamplesBrowser/Contracts/Services/IActivationService.cs @@ -0,0 +1,6 @@ +namespace WinUIClassicSamplesBrowser.Contracts.Services; + +public interface IActivationService +{ + Task ActivateAsync(object activationArgs); +} diff --git a/WinUIClassicSamplesBrowser/Contracts/Services/IAppNotificationService.cs b/WinUIClassicSamplesBrowser/Contracts/Services/IAppNotificationService.cs new file mode 100644 index 00000000..7ee73aee --- /dev/null +++ b/WinUIClassicSamplesBrowser/Contracts/Services/IAppNotificationService.cs @@ -0,0 +1,14 @@ +using System.Collections.Specialized; + +namespace WinUIClassicSamplesBrowser.Contracts.Services; + +public interface IAppNotificationService +{ + void Initialize(); + + bool Show(string payload); + + NameValueCollection ParseArguments(string arguments); + + void Unregister(); +} diff --git a/WinUIClassicSamplesBrowser/Contracts/Services/IFileService.cs b/WinUIClassicSamplesBrowser/Contracts/Services/IFileService.cs new file mode 100644 index 00000000..32a5c898 --- /dev/null +++ b/WinUIClassicSamplesBrowser/Contracts/Services/IFileService.cs @@ -0,0 +1,14 @@ +namespace WinUIClassicSamplesBrowser.Contracts.Services; + +public interface IFileService +{ + T Read(string folderPath, string fileName); + + void Save(string folderPath, string fileName, T content); + + void Delete(string folderPath, string fileName); + + bool IsExecutable(string filePath); + + bool IsPeExecutable(string filePath); +} diff --git a/WinUIClassicSamplesBrowser/Contracts/Services/ILocalSettingsService.cs b/WinUIClassicSamplesBrowser/Contracts/Services/ILocalSettingsService.cs new file mode 100644 index 00000000..b5dc5f42 --- /dev/null +++ b/WinUIClassicSamplesBrowser/Contracts/Services/ILocalSettingsService.cs @@ -0,0 +1,8 @@ +namespace WinUIClassicSamplesBrowser.Contracts.Services; + +public interface ILocalSettingsService +{ + Task ReadSettingAsync(string key); + + Task SaveSettingAsync(string key, T value); +} diff --git a/WinUIClassicSamplesBrowser/Contracts/Services/INavigationService.cs b/WinUIClassicSamplesBrowser/Contracts/Services/INavigationService.cs new file mode 100644 index 00000000..b91d5897 --- /dev/null +++ b/WinUIClassicSamplesBrowser/Contracts/Services/INavigationService.cs @@ -0,0 +1,23 @@ +using Microsoft.UI.Xaml.Controls; +using Microsoft.UI.Xaml.Navigation; + +namespace WinUIClassicSamplesBrowser.Contracts.Services; + +public interface INavigationService +{ + event NavigatedEventHandler Navigated; + + bool CanGoBack + { + get; + } + + Frame? Frame + { + get; set; + } + + bool NavigateTo(string pageKey, object? parameter = null, bool clearNavigation = false); + + bool GoBack(); +} diff --git a/WinUIClassicSamplesBrowser/Contracts/Services/INavigationViewService.cs b/WinUIClassicSamplesBrowser/Contracts/Services/INavigationViewService.cs new file mode 100644 index 00000000..d39812bc --- /dev/null +++ b/WinUIClassicSamplesBrowser/Contracts/Services/INavigationViewService.cs @@ -0,0 +1,22 @@ +using Microsoft.UI.Xaml.Controls; + +namespace WinUIClassicSamplesBrowser.Contracts.Services; + +public interface INavigationViewService +{ + IList? MenuItems + { + get; + } + + object? SettingsItem + { + get; + } + + void Initialize(NavigationView navigationView); + + void UnregisterEvents(); + + NavigationViewItem? GetSelectedItem(Type pageType); +} diff --git a/WinUIClassicSamplesBrowser/Contracts/Services/IPageService.cs b/WinUIClassicSamplesBrowser/Contracts/Services/IPageService.cs new file mode 100644 index 00000000..2564bb52 --- /dev/null +++ b/WinUIClassicSamplesBrowser/Contracts/Services/IPageService.cs @@ -0,0 +1,6 @@ +namespace WinUIClassicSamplesBrowser.Contracts.Services; + +public interface IPageService +{ + Type GetPageType(string key); +} diff --git a/WinUIClassicSamplesBrowser/Contracts/Services/IThemeSelectorService.cs b/WinUIClassicSamplesBrowser/Contracts/Services/IThemeSelectorService.cs new file mode 100644 index 00000000..fa44fe83 --- /dev/null +++ b/WinUIClassicSamplesBrowser/Contracts/Services/IThemeSelectorService.cs @@ -0,0 +1,17 @@ +using Microsoft.UI.Xaml; + +namespace WinUIClassicSamplesBrowser.Contracts.Services; + +public interface IThemeSelectorService +{ + ElementTheme Theme + { + get; + } + + Task InitializeAsync(); + + Task SetThemeAsync(ElementTheme theme); + + Task SetRequestedThemeAsync(); +} diff --git a/WinUIClassicSamplesBrowser/Contracts/Services/IWebViewService.cs b/WinUIClassicSamplesBrowser/Contracts/Services/IWebViewService.cs new file mode 100644 index 00000000..846b639b --- /dev/null +++ b/WinUIClassicSamplesBrowser/Contracts/Services/IWebViewService.cs @@ -0,0 +1,34 @@ +using Microsoft.UI.Xaml.Controls; +using Microsoft.Web.WebView2.Core; + +namespace WinUIClassicSamplesBrowser.Contracts.Services; + +public interface IWebViewService +{ + Uri? Source + { + get; + } + + bool CanGoBack + { + get; + } + + bool CanGoForward + { + get; + } + + event EventHandler? NavigationCompleted; + + void Initialize(WebView2 webView); + + void GoBack(); + + void GoForward(); + + void Reload(); + + void UnregisterEvents(); +} diff --git a/WinUIClassicSamplesBrowser/Contracts/ViewModels/INavigationAware.cs b/WinUIClassicSamplesBrowser/Contracts/ViewModels/INavigationAware.cs new file mode 100644 index 00000000..7e8fe3df --- /dev/null +++ b/WinUIClassicSamplesBrowser/Contracts/ViewModels/INavigationAware.cs @@ -0,0 +1,8 @@ +namespace WinUIClassicSamplesBrowser.Contracts.ViewModels; + +public interface INavigationAware +{ + void OnNavigatedTo(object parameter); + + void OnNavigatedFrom(); +} diff --git a/WinUIClassicSamplesBrowser/Controls/ExplorerBrowserControl.xaml b/WinUIClassicSamplesBrowser/Controls/ExplorerBrowserControl.xaml new file mode 100644 index 00000000..21d69d55 --- /dev/null +++ b/WinUIClassicSamplesBrowser/Controls/ExplorerBrowserControl.xaml @@ -0,0 +1,15 @@ + + + + + + + + diff --git a/WinUIClassicSamplesBrowser/Controls/ExplorerBrowserControl.xaml.cs b/WinUIClassicSamplesBrowser/Controls/ExplorerBrowserControl.xaml.cs new file mode 100644 index 00000000..a01a1289 --- /dev/null +++ b/WinUIClassicSamplesBrowser/Controls/ExplorerBrowserControl.xaml.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.InteropServices.WindowsRuntime; +using Microsoft.UI.Xaml; +using Microsoft.UI.Xaml.Controls; +using Microsoft.UI.Xaml.Data; +using Microsoft.UI.Xaml.Documents; +using Microsoft.UI.Xaml.Input; +using Microsoft.UI.Xaml.Media; + +// To learn more about WinUI, the WinUI project structure, +// and more about our project templates, see: http://aka.ms/winui-project-info. + +namespace WinUIClassicSamplesBrowser.Controls; + + +public sealed partial class ExplorerBrowserControl : UserControl +{ + public ExplorerBrowserControl() + { + } +} diff --git a/WinUIClassicSamplesBrowser/Helpers/EnumToBooleanConverter.cs b/WinUIClassicSamplesBrowser/Helpers/EnumToBooleanConverter.cs new file mode 100644 index 00000000..b04375a4 --- /dev/null +++ b/WinUIClassicSamplesBrowser/Helpers/EnumToBooleanConverter.cs @@ -0,0 +1,38 @@ +using Microsoft.UI.Xaml; +using Microsoft.UI.Xaml.Data; + +namespace WinUIClassicSamplesBrowser.Helpers; + +public class EnumToBooleanConverter : IValueConverter +{ + public EnumToBooleanConverter() + { + } + + public object Convert(object value, Type targetType, object parameter, string language) + { + if (parameter is string enumString) + { + if (!Enum.IsDefined(typeof(ElementTheme), value)) + { + throw new ArgumentException("ExceptionEnumToBooleanConverterValueMustBeAnEnum"); + } + + var enumValue = Enum.Parse(typeof(ElementTheme), enumString); + + return enumValue.Equals(value); + } + + throw new ArgumentException("ExceptionEnumToBooleanConverterParameterMustBeAnEnumName"); + } + + public object ConvertBack(object value, Type targetType, object parameter, string language) + { + if (parameter is string enumString) + { + return Enum.Parse(typeof(ElementTheme), enumString); + } + + throw new ArgumentException("ExceptionEnumToBooleanConverterParameterMustBeAnEnumName"); + } +} diff --git a/WinUIClassicSamplesBrowser/Helpers/FrameExtensions.cs b/WinUIClassicSamplesBrowser/Helpers/FrameExtensions.cs new file mode 100644 index 00000000..2f0af0c5 --- /dev/null +++ b/WinUIClassicSamplesBrowser/Helpers/FrameExtensions.cs @@ -0,0 +1,8 @@ +using Microsoft.UI.Xaml.Controls; + +namespace WinUIClassicSamplesBrowser.Helpers; + +public static class FrameExtensions +{ + public static object? GetPageViewModel(this Frame frame) => frame?.Content?.GetType().GetProperty("ViewModel")?.GetValue(frame.Content, null); +} diff --git a/WinUIClassicSamplesBrowser/Helpers/Json.cs b/WinUIClassicSamplesBrowser/Helpers/Json.cs new file mode 100644 index 00000000..c00eade5 --- /dev/null +++ b/WinUIClassicSamplesBrowser/Helpers/Json.cs @@ -0,0 +1,22 @@ +using Newtonsoft.Json; + +namespace WinUIClassicSamplesBrowser.Helpers; + +public static class Json +{ + public static async Task ToObjectAsync(string value) + { + return await Task.Run(() => + { + return JsonConvert.DeserializeObject(value); + }); + } + + public static async Task StringifyAsync(object value) + { + return await Task.Run(() => + { + return JsonConvert.SerializeObject(value); + }); + } +} diff --git a/WinUIClassicSamplesBrowser/Helpers/NavigationHelper.cs b/WinUIClassicSamplesBrowser/Helpers/NavigationHelper.cs new file mode 100644 index 00000000..af660e01 --- /dev/null +++ b/WinUIClassicSamplesBrowser/Helpers/NavigationHelper.cs @@ -0,0 +1,21 @@ +using Microsoft.UI.Xaml; +using Microsoft.UI.Xaml.Controls; + +namespace WinUIClassicSamplesBrowser.Helpers; + +// Helper class to set the navigation target for a NavigationViewItem. +// +// Usage in XAML: +// +// +// Usage in code: +// NavigationHelper.SetNavigateTo(navigationViewItem, typeof(MainViewModel).FullName); +public class NavigationHelper +{ + public static string GetNavigateTo(NavigationViewItem item) => (string)item.GetValue(NavigateToProperty); + + public static void SetNavigateTo(NavigationViewItem item, string value) => item.SetValue(NavigateToProperty, value); + + public static readonly DependencyProperty NavigateToProperty = + DependencyProperty.RegisterAttached("NavigateTo", typeof(string), typeof(NavigationHelper), new PropertyMetadata(null)); +} diff --git a/WinUIClassicSamplesBrowser/Helpers/ResourceExtensions.cs b/WinUIClassicSamplesBrowser/Helpers/ResourceExtensions.cs new file mode 100644 index 00000000..8774dee7 --- /dev/null +++ b/WinUIClassicSamplesBrowser/Helpers/ResourceExtensions.cs @@ -0,0 +1,10 @@ +using Microsoft.Windows.ApplicationModel.Resources; + +namespace WinUIClassicSamplesBrowser.Helpers; + +public static class ResourceExtensions +{ + private static readonly ResourceLoader ResourceLoader = new(); + + public static string GetLocalized(this string resourceKey) => ResourceLoader.GetString(resourceKey); +} diff --git a/WinUIClassicSamplesBrowser/Helpers/RuntimeHelper.cs b/WinUIClassicSamplesBrowser/Helpers/RuntimeHelper.cs new file mode 100644 index 00000000..468a1b8e --- /dev/null +++ b/WinUIClassicSamplesBrowser/Helpers/RuntimeHelper.cs @@ -0,0 +1,20 @@ +using System.Runtime.InteropServices; +using System.Text; + +namespace WinUIClassicSamplesBrowser.Helpers; + +public class RuntimeHelper +{ + [DllImport("kernel32.dll", CharSet = CharSet.Unicode, SetLastError = true)] + private static extern int GetCurrentPackageFullName(ref int packageFullNameLength, StringBuilder? packageFullName); + + public static bool IsMSIX + { + get + { + var length = 0; + + return GetCurrentPackageFullName(ref length, null) != 15700L; + } + } +} diff --git a/WinUIClassicSamplesBrowser/Helpers/SettingsStorageExtensions.cs b/WinUIClassicSamplesBrowser/Helpers/SettingsStorageExtensions.cs new file mode 100644 index 00000000..22eba7a7 --- /dev/null +++ b/WinUIClassicSamplesBrowser/Helpers/SettingsStorageExtensions.cs @@ -0,0 +1,110 @@ +using Windows.Storage; +using Windows.Storage.Streams; + +namespace WinUIClassicSamplesBrowser.Helpers; + +// Use these extension methods to store and retrieve local and roaming app data +// More details regarding storing and retrieving app data at https://docs.microsoft.com/windows/apps/design/app-settings/store-and-retrieve-app-data +public static class SettingsStorageExtensions +{ + private const string FileExtension = ".json"; + + public static bool IsRoamingStorageAvailable(this ApplicationData appData) + { + return appData.RoamingStorageQuota == 0; + } + + public static async Task SaveAsync(this StorageFolder folder, string name, T content) + { + var file = await folder.CreateFileAsync(GetFileName(name), CreationCollisionOption.ReplaceExisting); + var fileContent = await Json.StringifyAsync(content); + + await FileIO.WriteTextAsync(file, fileContent); + } + + public static async Task ReadAsync(this StorageFolder folder, string name) + { + if (!File.Exists(Path.Combine(folder.Path, GetFileName(name)))) + { + return default; + } + + var file = await folder.GetFileAsync($"{name}.json"); + var fileContent = await FileIO.ReadTextAsync(file); + + return await Json.ToObjectAsync(fileContent); + } + + public static async Task SaveAsync(this ApplicationDataContainer settings, string key, T value) + { + settings.SaveString(key, await Json.StringifyAsync(value)); + } + + public static void SaveString(this ApplicationDataContainer settings, string key, string value) + { + settings.Values[key] = value; + } + + public static async Task ReadAsync(this ApplicationDataContainer settings, string key) + { + object? obj; + + if (settings.Values.TryGetValue(key, out obj)) + { + return await Json.ToObjectAsync((string)obj); + } + + return default; + } + + public static async Task SaveFileAsync(this StorageFolder folder, byte[] content, string fileName, CreationCollisionOption options = CreationCollisionOption.ReplaceExisting) + { + if (content == null) + { + throw new ArgumentNullException(nameof(content)); + } + + if (string.IsNullOrEmpty(fileName)) + { + throw new ArgumentException("File name is null or empty. Specify a valid file name", nameof(fileName)); + } + + var storageFile = await folder.CreateFileAsync(fileName, options); + await FileIO.WriteBytesAsync(storageFile, content); + return storageFile; + } + + public static async Task ReadFileAsync(this StorageFolder folder, string fileName) + { + var item = await folder.TryGetItemAsync(fileName).AsTask().ConfigureAwait(false); + + if ((item != null) && item.IsOfType(StorageItemTypes.File)) + { + var storageFile = await folder.GetFileAsync(fileName); + var content = await storageFile.ReadBytesAsync(); + return content; + } + + return null; + } + + public static async Task ReadBytesAsync(this StorageFile file) + { + if (file != null) + { + using IRandomAccessStream stream = await file.OpenReadAsync(); + using var reader = new DataReader(stream.GetInputStreamAt(0)); + await reader.LoadAsync((uint)stream.Size); + var bytes = new byte[stream.Size]; + reader.ReadBytes(bytes); + return bytes; + } + + return null; + } + + private static string GetFileName(string name) + { + return string.Concat(name, FileExtension); + } +} diff --git a/WinUIClassicSamplesBrowser/Helpers/TitleBarHelper.cs b/WinUIClassicSamplesBrowser/Helpers/TitleBarHelper.cs new file mode 100644 index 00000000..97935d3c --- /dev/null +++ b/WinUIClassicSamplesBrowser/Helpers/TitleBarHelper.cs @@ -0,0 +1,96 @@ +using System.Runtime.InteropServices; + +using Microsoft.UI; +using Microsoft.UI.Xaml; +using Microsoft.UI.Xaml.Media; + +using Windows.UI; +using Windows.UI.ViewManagement; + +namespace WinUIClassicSamplesBrowser.Helpers; + +// Helper class to workaround custom title bar bugs. +// DISCLAIMER: The resource key names and color values used below are subject to change. Do not depend on them. +// https://github.com/microsoft/TemplateStudio/issues/4516 +internal class TitleBarHelper +{ + private const int WAINACTIVE = 0x00; + private const int WAACTIVE = 0x01; + private const int WMACTIVATE = 0x0006; + + [DllImport("user32.dll")] + private static extern IntPtr GetActiveWindow(); + + [DllImport("user32.dll", CharSet = CharSet.Auto)] + private static extern IntPtr SendMessage(IntPtr hWnd, int msg, int wParam, IntPtr lParam); + + public static void UpdateTitleBar(ElementTheme theme) + { + if (App.MainWindow.ExtendsContentIntoTitleBar) + { + if (theme == ElementTheme.Default) + { + var uiSettings = new UISettings(); + var background = uiSettings.GetColorValue(UIColorType.Background); + + theme = background == Colors.White ? ElementTheme.Light : ElementTheme.Dark; + } + + if (theme == ElementTheme.Default) + { + theme = Application.Current.RequestedTheme == ApplicationTheme.Light ? ElementTheme.Light : ElementTheme.Dark; + } + + App.MainWindow.AppWindow.TitleBar.ButtonForegroundColor = theme switch + { + ElementTheme.Dark => Colors.White, + ElementTheme.Light => Colors.Black, + _ => Colors.Transparent + }; + + App.MainWindow.AppWindow.TitleBar.ButtonHoverForegroundColor = theme switch + { + ElementTheme.Dark => Colors.White, + ElementTheme.Light => Colors.Black, + _ => Colors.Transparent + }; + + App.MainWindow.AppWindow.TitleBar.ButtonHoverBackgroundColor = theme switch + { + ElementTheme.Dark => Color.FromArgb(0x33, 0xFF, 0xFF, 0xFF), + ElementTheme.Light => Color.FromArgb(0x33, 0x00, 0x00, 0x00), + _ => Colors.Transparent + }; + + App.MainWindow.AppWindow.TitleBar.ButtonPressedBackgroundColor = theme switch + { + ElementTheme.Dark => Color.FromArgb(0x66, 0xFF, 0xFF, 0xFF), + ElementTheme.Light => Color.FromArgb(0x66, 0x00, 0x00, 0x00), + _ => Colors.Transparent + }; + + App.MainWindow.AppWindow.TitleBar.BackgroundColor = Colors.Transparent; + + var hwnd = WinRT.Interop.WindowNative.GetWindowHandle(App.MainWindow); + if (hwnd == GetActiveWindow()) + { + SendMessage(hwnd, WMACTIVATE, WAINACTIVE, IntPtr.Zero); + SendMessage(hwnd, WMACTIVATE, WAACTIVE, IntPtr.Zero); + } + else + { + SendMessage(hwnd, WMACTIVATE, WAACTIVE, IntPtr.Zero); + SendMessage(hwnd, WMACTIVATE, WAINACTIVE, IntPtr.Zero); + } + } + } + + public static void ApplySystemThemeToCaptionButtons() + { + var frame = App.AppTitlebar as FrameworkElement; + if (frame != null) + { + UpdateTitleBar(frame.ActualTheme); + } + } +} diff --git a/WinUIClassicSamplesBrowser/MainWindow.xaml b/WinUIClassicSamplesBrowser/MainWindow.xaml new file mode 100644 index 00000000..673229e8 --- /dev/null +++ b/WinUIClassicSamplesBrowser/MainWindow.xaml @@ -0,0 +1,16 @@ + + + + + diff --git a/WinUIClassicSamplesBrowser/MainWindow.xaml.cs b/WinUIClassicSamplesBrowser/MainWindow.xaml.cs new file mode 100644 index 00000000..bb9e17d8 --- /dev/null +++ b/WinUIClassicSamplesBrowser/MainWindow.xaml.cs @@ -0,0 +1,35 @@ +using Windows.UI.ViewManagement; + +using WinUIClassicSamplesBrowser.Helpers; + +namespace WinUIClassicSamplesBrowser; + +public sealed partial class MainWindow : WindowEx +{ + private Microsoft.UI.Dispatching.DispatcherQueue _dispatcherQueue = Microsoft.UI.Dispatching.DispatcherQueue.GetForCurrentThread(); + + private UISettings _settings = new(); + + public MainWindow() + { + InitializeComponent(); + + AppWindow.SetIcon(Path.Combine(AppContext.BaseDirectory, "Assets/WindowIcon.ico")); + Content = null; + Title = "AppDisplayName".GetLocalized(); + + // Theme change code picked from https://github.com/microsoft/WinUI-Gallery/pull/1239 + _settings.ColorValuesChanged += Settings_ColorValuesChanged; // cannot use FrameworkElement.ActualThemeChanged event + } + + // this handles updating the caption button colors correctly when indows system theme is changed + // while the app is open + private void Settings_ColorValuesChanged(UISettings sender, object args) + { + // This calls comes off-thread, hence we will need to dispatch it to current app's thread + _dispatcherQueue.TryEnqueue(() => + { + TitleBarHelper.ApplySystemThemeToCaptionButtons(); + }); + } +} diff --git a/WinUIClassicSamplesBrowser/Models/ClassicSamplesTestApp.cs b/WinUIClassicSamplesBrowser/Models/ClassicSamplesTestApp.cs new file mode 100644 index 00000000..b80a5334 --- /dev/null +++ b/WinUIClassicSamplesBrowser/Models/ClassicSamplesTestApp.cs @@ -0,0 +1,43 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using CommunityToolkit.Mvvm.ComponentModel; +using WinUIClassicSamplesBrowser.Contracts.Services; +using WinUIClassicSamplesBrowser.Services; + +namespace WinUIClassicSamplesBrowser.Models; + +public partial class ClassicSamplesTestApp : ObservableObject +{ + [ObservableProperty] + private string _name; + + [ObservableProperty] + private string _relativePath; + + [ObservableProperty] + private bool _isAvailable; + + [ObservableProperty] + private bool _isRunning; + +// private ImagePath _imageSource; + + public ClassicSamplesTestApp(string relativePath) + { + _relativePath = relativePath; + _name = Path.GetFileName(relativePath); + } + + public async Task CheckAvailability(IFileService fileService) + { + // TODO: Test for file exists + + if (fileService.IsExecutable(RelativePath)) + { + IsAvailable = true; + } + } +} diff --git a/WinUIClassicSamplesBrowser/Models/LocalSettingsOptions.cs b/WinUIClassicSamplesBrowser/Models/LocalSettingsOptions.cs new file mode 100644 index 00000000..0f4c2e95 --- /dev/null +++ b/WinUIClassicSamplesBrowser/Models/LocalSettingsOptions.cs @@ -0,0 +1,14 @@ +namespace WinUIClassicSamplesBrowser.Models; + +public class LocalSettingsOptions +{ + public string? ApplicationDataFolder + { + get; set; + } + + public string? LocalSettingsFile + { + get; set; + } +} diff --git a/WinUIClassicSamplesBrowser/Package.appinstaller b/WinUIClassicSamplesBrowser/Package.appinstaller new file mode 100644 index 00000000..c6194579 --- /dev/null +++ b/WinUIClassicSamplesBrowser/Package.appinstaller @@ -0,0 +1,17 @@ + + + + + + + + + + + + diff --git a/WinUIClassicSamplesBrowser/Package.appxmanifest b/WinUIClassicSamplesBrowser/Package.appxmanifest new file mode 100644 index 00000000..df3957a7 --- /dev/null +++ b/WinUIClassicSamplesBrowser/Package.appxmanifest @@ -0,0 +1,76 @@ + + + + + + + + + + WinUIClassicSamplesBrowser + tajbe + Assets\StoreLogo.png + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/WinUIClassicSamplesBrowser/Properties/PublishProfiles/win10-arm64.pubxml b/WinUIClassicSamplesBrowser/Properties/PublishProfiles/win10-arm64.pubxml new file mode 100644 index 00000000..b2f476e7 --- /dev/null +++ b/WinUIClassicSamplesBrowser/Properties/PublishProfiles/win10-arm64.pubxml @@ -0,0 +1,13 @@ + + + + FileSystem + arm64 + win10-arm64 + bin\$(Configuration)\$(TargetFramework)\$(RuntimeIdentifier)\publish\ + True + False + False + True + + diff --git a/WinUIClassicSamplesBrowser/Properties/PublishProfiles/win10-x64.pubxml b/WinUIClassicSamplesBrowser/Properties/PublishProfiles/win10-x64.pubxml new file mode 100644 index 00000000..a8146b5c --- /dev/null +++ b/WinUIClassicSamplesBrowser/Properties/PublishProfiles/win10-x64.pubxml @@ -0,0 +1,13 @@ + + + + FileSystem + x64 + win10-x64 + bin\$(Configuration)\$(TargetFramework)\$(RuntimeIdentifier)\publish\ + True + False + False + True + + diff --git a/WinUIClassicSamplesBrowser/Properties/PublishProfiles/win10-x86.pubxml b/WinUIClassicSamplesBrowser/Properties/PublishProfiles/win10-x86.pubxml new file mode 100644 index 00000000..eae09480 --- /dev/null +++ b/WinUIClassicSamplesBrowser/Properties/PublishProfiles/win10-x86.pubxml @@ -0,0 +1,13 @@ + + + + FileSystem + x86 + win10-x86 + bin\$(Configuration)\$(TargetFramework)\$(RuntimeIdentifier)\publish\ + True + False + False + True + + diff --git a/WinUIClassicSamplesBrowser/README.md b/WinUIClassicSamplesBrowser/README.md new file mode 100644 index 00000000..c00c05cf --- /dev/null +++ b/WinUIClassicSamplesBrowser/README.md @@ -0,0 +1,47 @@ +# WinUI Classic Samples Browser + +A Sample Application for browsing the [WinClassicSamplesCS](https://github.com/dahall/WinClassicSamplesCS) Gallery, built with Template Studio for WinUI. + +## Table of Contents +- [Prerequisites](#prerequisites) +- [Getting Started with Template Studio for WinUI](#getting-started-with-template-studio-for-winui) + +## Prerequisites +- [Visual Studio 2022](https://visualstudio.microsoft.com/vs/) with the following workloads: + - Universal Windows Platform development + - .NET desktop development + - Desktop development with C++ +- [Windows App SDK](https://docs.microsoft.com/windows/apps/windows-app-sdk/) version 1.4 or later + +The following libraries and tools are used in this project: +- [Vanara](https://github.com/dahall/Vanara) A set of .NET libraries for Windows implementing PInvoke calls to many native Windows APIs with supporting wrappers. +- [WinUI 3](https://docs.microsoft.com/windows/apps/winui/) for building the user interface, including the following Extensions: + - [Template Studio for WinUI](https://marketplace.visualstudio.com/items?itemName=VisualStudioClient.MicrosoftTemplateStudio) Visual Studio extension + - [WinUIEx](https://dotmorten.github.io/WinUIEx/) WinUI Extensions library + + +## Getting Started with Template Studio for WinUI + +Browse and address `TODO:` comments in `View -> Task List` to learn the codebase and understand next steps for turning the generated code into production code. + +Explore the [WinUI Gallery](https://www.microsoft.com/store/productId/9P3JFPWWDZRC) to learn about available controls and design patterns. + +Relaunch Template Studio to modify the project by right-clicking on the project in `View -> Solution Explorer` then selecting `Add -> New Item (Template Studio)`. + +## Publishing + +For projects with MSIX packaging, right-click on the application project and select `Package and Publish -> Create App Packages...` to create an MSIX package. + +For projects without MSIX packaging, follow the [deployment guide](https://docs.microsoft.com/windows/apps/windows-app-sdk/deploy-unpackaged-apps) or add the `Self-Contained` Feature to enable xcopy deployment. + +## CI Pipelines + +See [README.md](https://github.com/microsoft/TemplateStudio/blob/main/docs/WinUI/pipelines/README.md) for guidance on building and testing projects in CI pipelines. + +## Changelog + +See [releases](https://github.com/microsoft/TemplateStudio/releases) and [milestones](https://github.com/microsoft/TemplateStudio/milestones). + +## Feedback + +Bugs and feature requests should be filed at https://aka.ms/templatestudio. diff --git a/WinUIClassicSamplesBrowser/Services/ActivationService.cs b/WinUIClassicSamplesBrowser/Services/ActivationService.cs new file mode 100644 index 00000000..38790565 --- /dev/null +++ b/WinUIClassicSamplesBrowser/Services/ActivationService.cs @@ -0,0 +1,72 @@ +using Microsoft.UI.Xaml; +using Microsoft.UI.Xaml.Controls; + +using WinUIClassicSamplesBrowser.Activation; +using WinUIClassicSamplesBrowser.Contracts.Services; +using WinUIClassicSamplesBrowser.Views; + +namespace WinUIClassicSamplesBrowser.Services; + +public class ActivationService : IActivationService +{ + private readonly ActivationHandler _defaultHandler; + private readonly IEnumerable _activationHandlers; + private readonly IThemeSelectorService _themeSelectorService; + private UIElement? _shell = null; + + public ActivationService(ActivationHandler defaultHandler, IEnumerable activationHandlers, IThemeSelectorService themeSelectorService) + { + _defaultHandler = defaultHandler; + _activationHandlers = activationHandlers; + _themeSelectorService = themeSelectorService; + } + + public async Task ActivateAsync(object activationArgs) + { + // Execute tasks before activation. + await InitializeAsync(); + + // Set the MainWindow Content. + if (App.MainWindow.Content == null) + { + _shell = App.GetService(); + App.MainWindow.Content = _shell ?? new Frame(); + } + + // Handle activation via ActivationHandlers. + await HandleActivationAsync(activationArgs); + + // Activate the MainWindow. + App.MainWindow.Activate(); + + // Execute tasks after activation. + await StartupAsync(); + } + + private async Task HandleActivationAsync(object activationArgs) + { + var activationHandler = _activationHandlers.FirstOrDefault(h => h.CanHandle(activationArgs)); + + if (activationHandler != null) + { + await activationHandler.HandleAsync(activationArgs); + } + + if (_defaultHandler.CanHandle(activationArgs)) + { + await _defaultHandler.HandleAsync(activationArgs); + } + } + + private async Task InitializeAsync() + { + await _themeSelectorService.InitializeAsync().ConfigureAwait(false); + await Task.CompletedTask; + } + + private async Task StartupAsync() + { + await _themeSelectorService.SetRequestedThemeAsync(); + await Task.CompletedTask; + } +} diff --git a/WinUIClassicSamplesBrowser/Services/AppNotificationService.cs b/WinUIClassicSamplesBrowser/Services/AppNotificationService.cs new file mode 100644 index 00000000..4b3d332b --- /dev/null +++ b/WinUIClassicSamplesBrowser/Services/AppNotificationService.cs @@ -0,0 +1,71 @@ +using System.Collections.Specialized; +using System.Web; + +using Microsoft.Windows.AppNotifications; + +using WinUIClassicSamplesBrowser.Contracts.Services; +using WinUIClassicSamplesBrowser.ViewModels; + +namespace WinUIClassicSamplesBrowser.Notifications; + +public class AppNotificationService : IAppNotificationService +{ + private readonly INavigationService _navigationService; + + public AppNotificationService(INavigationService navigationService) + { + _navigationService = navigationService; + } + + ~AppNotificationService() + { + Unregister(); + } + + public void Initialize() + { + AppNotificationManager.Default.NotificationInvoked += OnNotificationInvoked; + + AppNotificationManager.Default.Register(); + } + + public void OnNotificationInvoked(AppNotificationManager sender, AppNotificationActivatedEventArgs args) + { + // TODO: Handle notification invocations when your app is already running. + + //// // Navigate to a specific page based on the notification arguments. + //// if (ParseArguments(args.Argument)["action"] == "Settings") + //// { + //// App.MainWindow.DispatcherQueue.TryEnqueue(() => + //// { + //// _navigationService.NavigateTo(typeof(SettingsViewModel).FullName!); + //// }); + //// } + + App.MainWindow.DispatcherQueue.TryEnqueue(() => + { + App.MainWindow.ShowMessageDialogAsync("TODO: Handle notification invocations when your app is already running.", "Notification Invoked"); + + App.MainWindow.BringToFront(); + }); + } + + public bool Show(string payload) + { + var appNotification = new AppNotification(payload); + + AppNotificationManager.Default.Show(appNotification); + + return appNotification.Id != 0; + } + + public NameValueCollection ParseArguments(string arguments) + { + return HttpUtility.ParseQueryString(arguments); + } + + public void Unregister() + { + AppNotificationManager.Default.Unregister(); + } +} diff --git a/WinUIClassicSamplesBrowser/Services/FileService.cs b/WinUIClassicSamplesBrowser/Services/FileService.cs new file mode 100644 index 00000000..bc82d8e1 --- /dev/null +++ b/WinUIClassicSamplesBrowser/Services/FileService.cs @@ -0,0 +1,76 @@ +using System.Text; + +using Newtonsoft.Json; +using WinUIClassicSamplesBrowser.Contracts.Services; + +namespace WinUIClassicSamplesBrowser.Services; + +public class FileService : IFileService +{ + public T Read(string folderPath, string fileName) + { + var path = Path.Combine(folderPath, fileName); + if (File.Exists(path)) + { + var json = File.ReadAllText(path); + return JsonConvert.DeserializeObject(json); + } + + return default; + } + + public void Save(string folderPath, string fileName, T content) + { + if (!Directory.Exists(folderPath)) + { + Directory.CreateDirectory(folderPath); + } + + var fileContent = JsonConvert.SerializeObject(content); + File.WriteAllText(Path.Combine(folderPath, fileName), fileContent, Encoding.UTF8); + } + + public void Delete(string folderPath, string fileName) + { + if (fileName != null && File.Exists(Path.Combine(folderPath, fileName))) + { + File.Delete(Path.Combine(folderPath, fileName)); + } + } + + public bool IsExecutable(string filePath) + { + if (File.Exists(filePath)) + { + var isExecutable = string.Equals(Path.GetExtension(filePath), ".exe", StringComparison.OrdinalIgnoreCase) + || string.Equals(Path.GetExtension(filePath), ".com", StringComparison.OrdinalIgnoreCase); + + if (isExecutable) + return true; + } + + return false; + } + + public bool IsPeExecutable(string filePath) + { + if (!File.Exists(filePath)) + return false; + + using var fs = new FileStream(filePath, FileMode.Open, FileAccess.Read); + using var br = new BinaryReader(fs); + + // DOS-Header: "MZ" + if (br.ReadUInt16() != 0x5A4D) + return false; + + // PE-Header-Offset + fs.Seek(0x3C, SeekOrigin.Begin); + int peOffset = br.ReadInt32(); + + fs.Seek(peOffset, SeekOrigin.Begin); + + // PE-Signature: "PE\0\0" + return br.ReadUInt32() == 0x00004550; + } +} diff --git a/WinUIClassicSamplesBrowser/Services/LocalSettingsService.cs b/WinUIClassicSamplesBrowser/Services/LocalSettingsService.cs new file mode 100644 index 00000000..2cd702f5 --- /dev/null +++ b/WinUIClassicSamplesBrowser/Services/LocalSettingsService.cs @@ -0,0 +1,84 @@ +using Microsoft.Extensions.Options; + +using Windows.ApplicationModel; +using Windows.Storage; + +using WinUIClassicSamplesBrowser.Contracts.Services; +using WinUIClassicSamplesBrowser.Helpers; +using WinUIClassicSamplesBrowser.Models; + +namespace WinUIClassicSamplesBrowser.Services; + +public class LocalSettingsService : ILocalSettingsService +{ + private const string DefaultApplicationDataFolder = "WinUIClassicSamplesBrowser/ApplicationData"; + private const string DefaultLocalSettingsFile = "LocalSettings.json"; + + private readonly IFileService _fileService; + private readonly LocalSettingsOptions _options; + + private readonly string _localApplicationData = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); + private readonly string _applicationDataFolder; + private readonly string _localsettingsFile; + + private IDictionary _settings = new Dictionary(); + + private bool _isInitialized; + + public LocalSettingsService(IFileService fileService, IOptions options) + { + _fileService = fileService; + _options = options.Value; + + _applicationDataFolder = Path.Combine(_localApplicationData, _options.ApplicationDataFolder ?? DefaultApplicationDataFolder); + _localsettingsFile = _options.LocalSettingsFile ?? DefaultLocalSettingsFile; + } + + private async Task InitializeAsync() + { + if (!_isInitialized) + { + _settings = await Task.Run(() => _fileService.Read>(_applicationDataFolder, _localsettingsFile)) ?? new Dictionary(); + + _isInitialized = true; + } + } + + public async Task ReadSettingAsync(string key) + { + if (RuntimeHelper.IsMSIX) + { + if (ApplicationData.Current.LocalSettings.Values.TryGetValue(key, out var obj)) + { + return await Json.ToObjectAsync((string)obj); + } + } + else + { + await InitializeAsync(); + + if (_settings != null && _settings.TryGetValue(key, out var obj)) + { + return await Json.ToObjectAsync((string)obj); + } + } + + return default; + } + + public async Task SaveSettingAsync(string key, T value) + { + if (RuntimeHelper.IsMSIX) + { + ApplicationData.Current.LocalSettings.Values[key] = await Json.StringifyAsync(value); + } + else + { + await InitializeAsync(); + + _settings[key] = await Json.StringifyAsync(value); + + await Task.Run(() => _fileService.Save(_applicationDataFolder, _localsettingsFile, _settings)); + } + } +} diff --git a/WinUIClassicSamplesBrowser/Services/NavigationService.cs b/WinUIClassicSamplesBrowser/Services/NavigationService.cs new file mode 100644 index 00000000..be526aca --- /dev/null +++ b/WinUIClassicSamplesBrowser/Services/NavigationService.cs @@ -0,0 +1,126 @@ +using System.Diagnostics.CodeAnalysis; + +using Microsoft.UI.Xaml.Controls; +using Microsoft.UI.Xaml.Navigation; + +using WinUIClassicSamplesBrowser.Contracts.Services; +using WinUIClassicSamplesBrowser.Contracts.ViewModels; +using WinUIClassicSamplesBrowser.Helpers; + +namespace WinUIClassicSamplesBrowser.Services; + +// For more information on navigation between pages see +// https://github.com/microsoft/TemplateStudio/blob/main/docs/WinUI/navigation.md +public class NavigationService : INavigationService +{ + private readonly IPageService _pageService; + private object? _lastParameterUsed; + private Frame? _frame; + + public event NavigatedEventHandler? Navigated; + + public Frame? Frame + { + get + { + if (_frame == null) + { + _frame = App.MainWindow.Content as Frame; + RegisterFrameEvents(); + } + + return _frame; + } + + set + { + UnregisterFrameEvents(); + _frame = value; + RegisterFrameEvents(); + } + } + + [MemberNotNullWhen(true, nameof(Frame), nameof(_frame))] + public bool CanGoBack => Frame != null && Frame.CanGoBack; + + public NavigationService(IPageService pageService) + { + _pageService = pageService; + } + + private void RegisterFrameEvents() + { + if (_frame != null) + { + _frame.Navigated += OnNavigated; + } + } + + private void UnregisterFrameEvents() + { + if (_frame != null) + { + _frame.Navigated -= OnNavigated; + } + } + + public bool GoBack() + { + if (CanGoBack) + { + var vmBeforeNavigation = _frame.GetPageViewModel(); + _frame.GoBack(); + if (vmBeforeNavigation is INavigationAware navigationAware) + { + navigationAware.OnNavigatedFrom(); + } + + return true; + } + + return false; + } + + public bool NavigateTo(string pageKey, object? parameter = null, bool clearNavigation = false) + { + var pageType = _pageService.GetPageType(pageKey); + + if (_frame != null && (_frame.Content?.GetType() != pageType || (parameter != null && !parameter.Equals(_lastParameterUsed)))) + { + _frame.Tag = clearNavigation; + var vmBeforeNavigation = _frame.GetPageViewModel(); + var navigated = _frame.Navigate(pageType, parameter); + if (navigated) + { + _lastParameterUsed = parameter; + if (vmBeforeNavigation is INavigationAware navigationAware) + { + navigationAware.OnNavigatedFrom(); + } + } + + return navigated; + } + + return false; + } + + private void OnNavigated(object sender, NavigationEventArgs e) + { + if (sender is Frame frame) + { + var clearNavigation = (bool)frame.Tag; + if (clearNavigation) + { + frame.BackStack.Clear(); + } + + if (frame.GetPageViewModel() is INavigationAware navigationAware) + { + navigationAware.OnNavigatedTo(e.Parameter); + } + + Navigated?.Invoke(sender, e); + } + } +} diff --git a/WinUIClassicSamplesBrowser/Services/NavigationViewService.cs b/WinUIClassicSamplesBrowser/Services/NavigationViewService.cs new file mode 100644 index 00000000..8f375250 --- /dev/null +++ b/WinUIClassicSamplesBrowser/Services/NavigationViewService.cs @@ -0,0 +1,103 @@ +using System.Diagnostics.CodeAnalysis; + +using Microsoft.UI.Xaml.Controls; + +using WinUIClassicSamplesBrowser.Contracts.Services; +using WinUIClassicSamplesBrowser.Helpers; +using WinUIClassicSamplesBrowser.ViewModels; + +namespace WinUIClassicSamplesBrowser.Services; + +public class NavigationViewService : INavigationViewService +{ + private readonly INavigationService _navigationService; + + private readonly IPageService _pageService; + + private NavigationView? _navigationView; + + public IList? MenuItems => _navigationView?.MenuItems; + + public object? SettingsItem => _navigationView?.SettingsItem; + + public NavigationViewService(INavigationService navigationService, IPageService pageService) + { + _navigationService = navigationService; + _pageService = pageService; + } + + [MemberNotNull(nameof(_navigationView))] + public void Initialize(NavigationView navigationView) + { + _navigationView = navigationView; + _navigationView.BackRequested += OnBackRequested; + _navigationView.ItemInvoked += OnItemInvoked; + } + + public void UnregisterEvents() + { + if (_navigationView != null) + { + _navigationView.BackRequested -= OnBackRequested; + _navigationView.ItemInvoked -= OnItemInvoked; + } + } + + public NavigationViewItem? GetSelectedItem(Type pageType) + { + if (_navigationView != null) + { + return GetSelectedItem(_navigationView.MenuItems, pageType) ?? GetSelectedItem(_navigationView.FooterMenuItems, pageType); + } + + return null; + } + + private void OnBackRequested(NavigationView sender, NavigationViewBackRequestedEventArgs args) => _navigationService.GoBack(); + + private void OnItemInvoked(NavigationView sender, NavigationViewItemInvokedEventArgs args) + { + if (args.IsSettingsInvoked) + { + _navigationService.NavigateTo(typeof(SettingsViewModel).FullName!); + } + else + { + var selectedItem = args.InvokedItemContainer as NavigationViewItem; + + if (selectedItem?.GetValue(NavigationHelper.NavigateToProperty) is string pageKey) + { + _navigationService.NavigateTo(pageKey); + } + } + } + + private NavigationViewItem? GetSelectedItem(IEnumerable menuItems, Type pageType) + { + foreach (var item in menuItems.OfType()) + { + if (IsMenuItemForPageType(item, pageType)) + { + return item; + } + + var selectedChild = GetSelectedItem(item.MenuItems, pageType); + if (selectedChild != null) + { + return selectedChild; + } + } + + return null; + } + + private bool IsMenuItemForPageType(NavigationViewItem menuItem, Type sourcePageType) + { + if (menuItem.GetValue(NavigationHelper.NavigateToProperty) is string pageKey) + { + return _pageService.GetPageType(pageKey) == sourcePageType; + } + + return false; + } +} diff --git a/WinUIClassicSamplesBrowser/Services/PageService.cs b/WinUIClassicSamplesBrowser/Services/PageService.cs new file mode 100644 index 00000000..dbc8e667 --- /dev/null +++ b/WinUIClassicSamplesBrowser/Services/PageService.cs @@ -0,0 +1,57 @@ +using CommunityToolkit.Mvvm.ComponentModel; + +using Microsoft.UI.Xaml.Controls; + +using WinUIClassicSamplesBrowser.Contracts.Services; +using WinUIClassicSamplesBrowser.ViewModels; +using WinUIClassicSamplesBrowser.Views; + +namespace WinUIClassicSamplesBrowser.Services; + +public class PageService : IPageService +{ + private readonly Dictionary _pages = new(); + + public PageService() + { + Configure(); + Configure(); + Configure(); + } + + public Type GetPageType(string key) + { + Type? pageType; + lock (_pages) + { + if (!_pages.TryGetValue(key, out pageType)) + { + throw new ArgumentException($"Page not found: {key}. Did you forget to call PageService.Configure?"); + } + } + + return pageType; + } + + private void Configure() + where TVm : ObservableObject + where TV : Page + { + lock (_pages) + { + var key = typeof(TVm).FullName!; + if (_pages.ContainsKey(key)) + { + throw new ArgumentException($"The key {key} is already configured in PageService"); + } + + var type = typeof(TV); + if (_pages.ContainsValue(type)) + { + throw new ArgumentException($"This type is already configured with key {_pages.First(p => p.Value == type).Key}"); + } + + _pages.Add(key, type); + } + } +} diff --git a/WinUIClassicSamplesBrowser/Services/ThemeSelectorService.cs b/WinUIClassicSamplesBrowser/Services/ThemeSelectorService.cs new file mode 100644 index 00000000..ce35583a --- /dev/null +++ b/WinUIClassicSamplesBrowser/Services/ThemeSelectorService.cs @@ -0,0 +1,63 @@ +using Microsoft.UI.Xaml; + +using WinUIClassicSamplesBrowser.Contracts.Services; +using WinUIClassicSamplesBrowser.Helpers; + +namespace WinUIClassicSamplesBrowser.Services; + +public class ThemeSelectorService : IThemeSelectorService +{ + private const string SettingsKey = "AppBackgroundRequestedTheme"; + + public ElementTheme Theme { get; set; } = ElementTheme.Default; + + private readonly ILocalSettingsService _localSettingsService; + + public ThemeSelectorService(ILocalSettingsService localSettingsService) + { + _localSettingsService = localSettingsService; + } + + public async Task InitializeAsync() + { + Theme = await LoadThemeFromSettingsAsync(); + await Task.CompletedTask; + } + + public async Task SetThemeAsync(ElementTheme theme) + { + Theme = theme; + + await SetRequestedThemeAsync(); + await SaveThemeInSettingsAsync(Theme); + } + + public async Task SetRequestedThemeAsync() + { + if (App.MainWindow.Content is FrameworkElement rootElement) + { + rootElement.RequestedTheme = Theme; + + TitleBarHelper.UpdateTitleBar(Theme); + } + + await Task.CompletedTask; + } + + private async Task LoadThemeFromSettingsAsync() + { + var themeName = await _localSettingsService.ReadSettingAsync(SettingsKey); + + if (Enum.TryParse(themeName, out ElementTheme cacheTheme)) + { + return cacheTheme; + } + + return ElementTheme.Default; + } + + private async Task SaveThemeInSettingsAsync(ElementTheme theme) + { + await _localSettingsService.SaveSettingAsync(SettingsKey, theme.ToString()); + } +} diff --git a/WinUIClassicSamplesBrowser/Services/WebViewService.cs b/WinUIClassicSamplesBrowser/Services/WebViewService.cs new file mode 100644 index 00000000..85eec343 --- /dev/null +++ b/WinUIClassicSamplesBrowser/Services/WebViewService.cs @@ -0,0 +1,50 @@ +using System.Diagnostics.CodeAnalysis; + +using Microsoft.UI.Xaml.Controls; +using Microsoft.Web.WebView2.Core; + +using WinUIClassicSamplesBrowser.Contracts.Services; + +namespace WinUIClassicSamplesBrowser.Services; + +public class WebViewService : IWebViewService +{ + private WebView2? _webView; + + public Uri? Source => _webView?.Source; + + [MemberNotNullWhen(true, nameof(_webView))] + public bool CanGoBack => _webView != null && _webView.CanGoBack; + + [MemberNotNullWhen(true, nameof(_webView))] + public bool CanGoForward => _webView != null && _webView.CanGoForward; + + public event EventHandler? NavigationCompleted; + + public WebViewService() + { + } + + [MemberNotNull(nameof(_webView))] + public void Initialize(WebView2 webView) + { + _webView = webView; + _webView.NavigationCompleted += OnWebViewNavigationCompleted; + } + + public void GoBack() => _webView?.GoBack(); + + public void GoForward() => _webView?.GoForward(); + + public void Reload() => _webView?.Reload(); + + public void UnregisterEvents() + { + if (_webView != null) + { + _webView.NavigationCompleted -= OnWebViewNavigationCompleted; + } + } + + private void OnWebViewNavigationCompleted(WebView2 sender, CoreWebView2NavigationCompletedEventArgs args) => NavigationCompleted?.Invoke(this, args.WebErrorStatus); +} diff --git a/WinUIClassicSamplesBrowser/Strings/en-us/Resources.resw b/WinUIClassicSamplesBrowser/Strings/en-us/Resources.resw new file mode 100644 index 00000000..3c83b875 --- /dev/null +++ b/WinUIClassicSamplesBrowser/Strings/en-us/Resources.resw @@ -0,0 +1,212 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ClassicSamplesBrowser + + + ClassicSamplesBrowser winUI 3 + + + Classic Samples Browser + + + Loading... + + + Page failed to load. Check connection and reload. + + + Browser back + + + Browser back + + + Browser forward + + + Browser forward + + + Reload + + + Reload + + + Reload + + + Open in browser + + + Open in browser + + + Web Browser + + + Personalization + + + Theme + + + Light + + + Dark + + + Default + + + About this application + + + Vanara - WinUIClassicSamplesBrowser + + + Privacy Statement + + + https://github.com/dahall/Vanara + + + <toast launch="action=ToastClick"> + <visual> + <binding template="ToastGeneric"> + <text>App Notification</text> + <text></text> + <image placement="appLogoOverride" hint-crop="circle" src="{0}Assets/WindowIcon.ico"/> + </binding> + </visual> + <actions> + <action content="Settings" arguments="action=Settings"/> + </actions> +</toast> + + + Markdown Viewer + + + Ribbon Converter + + \ No newline at end of file diff --git a/WinUIClassicSamplesBrowser/Styles/FontSizes.xaml b/WinUIClassicSamplesBrowser/Styles/FontSizes.xaml new file mode 100644 index 00000000..44904b1c --- /dev/null +++ b/WinUIClassicSamplesBrowser/Styles/FontSizes.xaml @@ -0,0 +1,9 @@ + + + 24 + + 16 + + diff --git a/WinUIClassicSamplesBrowser/Styles/TextBlock.xaml b/WinUIClassicSamplesBrowser/Styles/TextBlock.xaml new file mode 100644 index 00000000..0f9eb84e --- /dev/null +++ b/WinUIClassicSamplesBrowser/Styles/TextBlock.xaml @@ -0,0 +1,20 @@ + + + + + + + \ No newline at end of file diff --git a/WinUIClassicSamplesBrowser/Styles/Thickness.xaml b/WinUIClassicSamplesBrowser/Styles/Thickness.xaml new file mode 100644 index 00000000..96ef0c9b --- /dev/null +++ b/WinUIClassicSamplesBrowser/Styles/Thickness.xaml @@ -0,0 +1,36 @@ + + + 0,36,0,0 + 0,36,0,36 + + 0,24,0,0 + 0,24,0,24 + 24,0,24,0 + 0,0,0,24 + + 12,0,0,0 + 12,0,12,0 + 0,12,0,0 + 0,0,12,0 + 0,12,0,12 + + 8,0,0,0 + 0,8,0,0 + 8,8,8,8 + + 0,4,0,0 + 4,4,4,4 + + 1,1,0,0 + 8,0,0,0 + 0,48,0,0 + 56,34,0,0 + 56,24,56,0 + + 36,24,36,0 + + -12,4,0,0 + + diff --git a/WinUIClassicSamplesBrowser/TemplateStudio.xml b/WinUIClassicSamplesBrowser/TemplateStudio.xml new file mode 100644 index 00000000..0c8e42db --- /dev/null +++ b/WinUIClassicSamplesBrowser/TemplateStudio.xml @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/WinUIClassicSamplesBrowser/Usings.cs b/WinUIClassicSamplesBrowser/Usings.cs new file mode 100644 index 00000000..4cc487e9 --- /dev/null +++ b/WinUIClassicSamplesBrowser/Usings.cs @@ -0,0 +1 @@ +global using WinUIEx; diff --git a/WinUIClassicSamplesBrowser/ViewModels/MainViewModel.cs b/WinUIClassicSamplesBrowser/ViewModels/MainViewModel.cs new file mode 100644 index 00000000..d87e7e0c --- /dev/null +++ b/WinUIClassicSamplesBrowser/ViewModels/MainViewModel.cs @@ -0,0 +1,17 @@ +using CommunityToolkit.Mvvm.ComponentModel; +using WinUIClassicSamplesBrowser.Contracts.Services; +using WinUIClassicSamplesBrowser.Models; + +namespace WinUIClassicSamplesBrowser.ViewModels; + +public partial class MainViewModel : ObservableRecipient +{ + [ObservableProperty] + private ClassicSamplesTestApp[] _sampleApps = new ClassicSamplesTestApp[] { + new(@"*.\TestExampleA\bin\UnitTest.exe"), + new(@"*.\TestExample2\bin\UnitTest.exe"), + new(@"*.\TestExample3\bin\UnitTest.exe"), + }; + + public IFileService FileService; +} diff --git a/WinUIClassicSamplesBrowser/ViewModels/RuntimeInfoViewModel.cs b/WinUIClassicSamplesBrowser/ViewModels/RuntimeInfoViewModel.cs new file mode 100644 index 00000000..264b0b64 --- /dev/null +++ b/WinUIClassicSamplesBrowser/ViewModels/RuntimeInfoViewModel.cs @@ -0,0 +1,177 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Reflection; +using System.Text; +using CommunityToolkit.Mvvm.ComponentModel; +using CommunityToolkit.Mvvm.Input; +using Microsoft.Extensions.DependencyModel; +using Windows.ApplicationModel.DataTransfer; + +namespace WinUIClassicSamplesBrowser.ViewModels; + +public partial class RuntimeInfoViewModel : ObservableObject +{ + public ObservableCollection LoadedAssemblies + { + get; + } + = new(); + + public ObservableCollection ReferencedLibraries + { + get; + } + = new(); + + public ObservableCollection TableItems + { + get; + } + = new(); + + public RuntimeInfoViewModel() + { + LoadLoadedAssemblies(); + LoadReferencedLibraries(); + } + + [RelayCommand] + private void CopyTableToClipboard() + { + var sb = new StringBuilder(); + + foreach (var item in TableItems) + sb.AppendLine($"{item.Key}: {item.Value}"); + + Clipboard.SetContent( + new DataPackage + { + RequestedOperation = DataPackageOperation.Copy, + // taj Text = sb.ToString() + }); + } + + [RelayCommand] + private void ExportMarkdown() + { + var sb = new StringBuilder(); + sb.AppendLine("| Key | Value |"); + sb.AppendLine("|-----|--------|"); + + foreach (var item in TableItems) + sb.AppendLine($"| {item.Key} | {item.Value} |"); + + Clipboard.SetContent( + new DataPackage + { + RequestedOperation = DataPackageOperation.Copy, + // taj Text = sb.ToString() + }); + } + + private void LoadLoadedAssemblies() + { + var assemblies = AppDomain.CurrentDomain + .GetAssemblies() + .OrderBy(a => a.GetName().Name); + + foreach (var asm in assemblies) + { + var name = asm.GetName(); + var info = asm.GetCustomAttribute()?.InformationalVersion; + + LoadedAssemblies.Add(new AssemblyInfoModel + { + Name = name.Name, + Version = name.Version?.ToString(), + InformationalVersion = info, + Location = SafeGetLocation(asm) + }); + } + } + + private void LoadReferencedLibraries() + { + var context = DependencyContext.Default; + + if (context == null) + return; + + foreach (var lib in context.RuntimeLibraries.OrderBy(l => l.Name)) + { + ReferencedLibraries.Add(new LibraryInfoModel + { + Name = lib.Name, + Version = lib.Version, + Type = lib.Type, + Path = string.Join(";", lib.RuntimeAssemblyGroups + .SelectMany(g => g.AssetPaths)) + }); + } + } + + private static string SafeGetLocation(Assembly asm) + { + try + { + return asm.Location; + } + catch + { + return "(dynamic / in-memory)"; + } + } + + public void LoadTableFromAssembly(AssemblyInfoModel asm) + { + TableItems.Clear(); + + TableItems.Add(new KeyValueItem { Key = "Name", Value = asm.Name }); + TableItems.Add(new KeyValueItem { Key = "Version", Value = asm.Version }); + TableItems.Add(new KeyValueItem { Key = "Informational Version", Value = asm.InformationalVersion }); + TableItems.Add(new KeyValueItem { Key = "Location", Value = asm.Location }); + } +} + +public class AssemblyInfoModel +{ + public string Name + { + get; set; + } + public string Version + { + get; set; + } + public string InformationalVersion + { + get; set; + } + public string Location + { + get; set; + } +} + +public class LibraryInfoModel +{ + public string Name + { + get; set; + } + public string Version + { + get; set; + } + public string Type + { + get; set; + } + public string Path + { + get; set; + } +} + diff --git a/WinUIClassicSamplesBrowser/ViewModels/SettingsViewModel.cs b/WinUIClassicSamplesBrowser/ViewModels/SettingsViewModel.cs new file mode 100644 index 00000000..2d0be004 --- /dev/null +++ b/WinUIClassicSamplesBrowser/ViewModels/SettingsViewModel.cs @@ -0,0 +1,80 @@ +using System.Reflection; +using System.Windows.Input; + +using CommunityToolkit.Mvvm.ComponentModel; +using CommunityToolkit.Mvvm.Input; + +using Microsoft.UI.Xaml; + +using Windows.ApplicationModel; + +using WinUIClassicSamplesBrowser.Contracts.Services; +using WinUIClassicSamplesBrowser.Helpers; + +namespace WinUIClassicSamplesBrowser.ViewModels; + +public partial class SettingsViewModel : ObservableRecipient +{ + private readonly IThemeSelectorService _themeSelectorService; + + [ObservableProperty] + private ElementTheme _elementTheme; + + [ObservableProperty] + private string _versionDescription = GetVersionDescription(); + + [ObservableProperty] + private string _tableItems; + + + public ICommand SwitchThemeCommand + { + get; + } + + public SettingsViewModel(IThemeSelectorService themeSelectorService) + { + _themeSelectorService = themeSelectorService; + _elementTheme = _themeSelectorService.Theme; + + SwitchThemeCommand = new RelayCommand( + async (param) => + { + if (ElementTheme != param) + { + ElementTheme = param; + await _themeSelectorService.SetThemeAsync(param); + } + }); + } + + private static string GetVersionDescription() + { + Version version; + + if (RuntimeHelper.IsMSIX) + { + var packageVersion = Package.Current.Id.Version; + + version = new(packageVersion.Major, packageVersion.Minor, packageVersion.Build, packageVersion.Revision); + } + else + { + version = Assembly.GetExecutingAssembly().GetName().Version!; + } + + return $"{"AppDisplayName".GetLocalized()} - {version.Major}.{version.Minor}.{version.Build}.{version.Revision}"; + } +} + +public class KeyValueItem +{ + public string Key + { + get; set; + } + public string Value + { + get; set; + } +} diff --git a/WinUIClassicSamplesBrowser/ViewModels/ShellViewModel.cs b/WinUIClassicSamplesBrowser/ViewModels/ShellViewModel.cs new file mode 100644 index 00000000..98ddec49 --- /dev/null +++ b/WinUIClassicSamplesBrowser/ViewModels/ShellViewModel.cs @@ -0,0 +1,51 @@ +using CommunityToolkit.Mvvm.ComponentModel; + +using Microsoft.UI.Xaml.Navigation; + +using WinUIClassicSamplesBrowser.Contracts.Services; +using WinUIClassicSamplesBrowser.Views; + +namespace WinUIClassicSamplesBrowser.ViewModels; + +public partial class ShellViewModel : ObservableRecipient +{ + [ObservableProperty] + private bool _isBackEnabled; + + [ObservableProperty] + private object? _selected; + + public INavigationService NavigationService + { + get; + } + + public INavigationViewService NavigationViewService + { + get; + } + + public ShellViewModel(INavigationService navigationService, INavigationViewService navigationViewService) + { + NavigationService = navigationService; + NavigationService.Navigated += OnNavigated; + NavigationViewService = navigationViewService; + } + + private void OnNavigated(object sender, NavigationEventArgs e) + { + IsBackEnabled = NavigationService.CanGoBack; + + if (e.SourcePageType == typeof(SettingsPage)) + { + Selected = NavigationViewService.SettingsItem; + return; + } + + var selectedItem = NavigationViewService.GetSelectedItem(e.SourcePageType); + if (selectedItem != null) + { + Selected = selectedItem; + } + } +} diff --git a/WinUIClassicSamplesBrowser/ViewModels/WebBrowserViewModel.cs b/WinUIClassicSamplesBrowser/ViewModels/WebBrowserViewModel.cs new file mode 100644 index 00000000..eaaed54c --- /dev/null +++ b/WinUIClassicSamplesBrowser/ViewModels/WebBrowserViewModel.cs @@ -0,0 +1,110 @@ +using CommunityToolkit.Mvvm.ComponentModel; +using CommunityToolkit.Mvvm.Input; + +using Microsoft.Web.WebView2.Core; + +using WinUIClassicSamplesBrowser.Contracts.Services; +using WinUIClassicSamplesBrowser.Contracts.ViewModels; + +namespace WinUIClassicSamplesBrowser.ViewModels; + +// TODO: Review best practices and distribution guidelines for WebView2. +// https://docs.microsoft.com/microsoft-edge/webview2/get-started/winui +// https://docs.microsoft.com/microsoft-edge/webview2/concepts/developer-guide +// https://docs.microsoft.com/microsoft-edge/webview2/concepts/distribution +public partial class WebBrowserViewModel : ObservableRecipient, INavigationAware +{ + // TODO: Set the default URL to display. + [ObservableProperty] + private Uri _source = new("https://github.com/dahall/WinClassicSamplesCS?tab=readme-ov-file#winclassicsamplescs"); + + [ObservableProperty] + private bool _isLoading = true; + + [ObservableProperty] + private bool _hasFailures; + + public IWebViewService WebViewService + { + get; + } + + public WebBrowserViewModel(IWebViewService webViewService) + { + WebViewService = webViewService; + } + + [RelayCommand] + private async Task OpenInBrowser() + { + if (WebViewService.Source != null) + { + await Windows.System.Launcher.LaunchUriAsync(WebViewService.Source); + } + } + + [RelayCommand] + private void Reload() + { + WebViewService.Reload(); + } + + [RelayCommand(CanExecute = nameof(BrowserCanGoForward))] + private void BrowserForward() + { + if (WebViewService.CanGoForward) + { + WebViewService.GoForward(); + } + } + + private bool BrowserCanGoForward() + { + return WebViewService.CanGoForward; + } + + [RelayCommand(CanExecute = nameof(BrowserCanGoBack))] + private void BrowserBack() + { + if (WebViewService.CanGoBack) + { + WebViewService.GoBack(); + } + } + + private bool BrowserCanGoBack() + { + return WebViewService.CanGoBack; + } + + public void OnNavigatedTo(object parameter) + { + WebViewService.NavigationCompleted += OnNavigationCompleted; + } + + public void OnNavigatedFrom() + { + WebViewService.UnregisterEvents(); + WebViewService.NavigationCompleted -= OnNavigationCompleted; + } + + private void OnNavigationCompleted(object? sender, CoreWebView2WebErrorStatus webErrorStatus) + { + IsLoading = false; + BrowserBackCommand.NotifyCanExecuteChanged(); + BrowserForwardCommand.NotifyCanExecuteChanged(); + + if (webErrorStatus != default) + { + HasFailures = true; + } + } + + [RelayCommand] + private void OnRetry() + { + HasFailures = false; + IsLoading = true; + WebViewService?.Reload(); + } +} diff --git a/WinUIClassicSamplesBrowser/Views/MainPage.xaml b/WinUIClassicSamplesBrowser/Views/MainPage.xaml new file mode 100644 index 00000000..3dbc1bca --- /dev/null +++ b/WinUIClassicSamplesBrowser/Views/MainPage.xaml @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/WinUIClassicSamplesBrowser/Views/MainPage.xaml.cs b/WinUIClassicSamplesBrowser/Views/MainPage.xaml.cs new file mode 100644 index 00000000..31af1960 --- /dev/null +++ b/WinUIClassicSamplesBrowser/Views/MainPage.xaml.cs @@ -0,0 +1,28 @@ +using CommunityToolkit.Mvvm.ComponentModel; +using Microsoft.UI.Xaml.Controls; +using WinUIClassicSamplesBrowser.Models; +using WinUIClassicSamplesBrowser.ViewModels; + +namespace WinUIClassicSamplesBrowser.Views; + +public sealed partial class MainPage : Page +{ + public MainViewModel ViewModel + { + get; + } = App.GetService(); + + public ClassicSamplesTestApp[] SampleApps => ViewModel.SampleApps; + +// [ObservableProperty] +// private ClassicSamplesTestApp[] samples +// { +// get => ViewModel.SampleApps; +// set => ViewModel.SampleApps = value; +// } + + public MainPage() + { + InitializeComponent(); + } +} diff --git a/WinUIClassicSamplesBrowser/Views/SettingsPage.xaml b/WinUIClassicSamplesBrowser/Views/SettingsPage.xaml new file mode 100644 index 00000000..1bcb7660 --- /dev/null +++ b/WinUIClassicSamplesBrowser/Views/SettingsPage.xaml @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + + + + + + + + + + + Light + + + + + Dark + + + + + Default + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/WinUIClassicSamplesBrowser/Views/WebBrowserPage.xaml.cs b/WinUIClassicSamplesBrowser/Views/WebBrowserPage.xaml.cs new file mode 100644 index 00000000..c5267b89 --- /dev/null +++ b/WinUIClassicSamplesBrowser/Views/WebBrowserPage.xaml.cs @@ -0,0 +1,21 @@ +using Microsoft.UI.Xaml.Controls; + +using WinUIClassicSamplesBrowser.ViewModels; + +namespace WinUIClassicSamplesBrowser.Views; + +// To learn more about WebView2, see https://docs.microsoft.com/microsoft-edge/webview2/. +public sealed partial class WebBrowserPage : Page +{ + public WebBrowserViewModel ViewModel + { + get; + } = App.GetService(); + + public WebBrowserPage() + { + InitializeComponent(); + + ViewModel.WebViewService.Initialize(WebView); + } +} diff --git a/WinUIClassicSamplesBrowser/WinUIClassicSamplesBrowser.csproj b/WinUIClassicSamplesBrowser/WinUIClassicSamplesBrowser.csproj new file mode 100644 index 00000000..2a498bce --- /dev/null +++ b/WinUIClassicSamplesBrowser/WinUIClassicSamplesBrowser.csproj @@ -0,0 +1,63 @@ + + + WinExe + net7.0-windows10.0.19041.0 + 10.0.17763.0 + WinUIClassicSamplesBrowser + Assets\WindowIcon.ico + app.manifest + x86;x64;arm64 + win10-x86;win10-x64;win10-arm64 + Properties\PublishProfiles\win10-$(Platform).pubxml + enable + enable + true + true + Assets\Miscellaneous Debris\Microsoft WinUI Logo.png + README.md + true + + + + + + + + + + + + + + + + + + + + + + + Always + + + True + \ + + + MSBuild:Compile + + + True + \ + + + + + + + + + true + + diff --git a/WinUIClassicSamplesBrowser/WinUIClassicSamplesBrowser.slnx b/WinUIClassicSamplesBrowser/WinUIClassicSamplesBrowser.slnx new file mode 100644 index 00000000..010b3e82 --- /dev/null +++ b/WinUIClassicSamplesBrowser/WinUIClassicSamplesBrowser.slnx @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/WinUIClassicSamplesBrowser/app.manifest b/WinUIClassicSamplesBrowser/app.manifest new file mode 100644 index 00000000..45f4f56d --- /dev/null +++ b/WinUIClassicSamplesBrowser/app.manifest @@ -0,0 +1,15 @@ + + + + + + + + + + + true/PM + PerMonitorV2, PerMonitor + + + diff --git a/WinUIClassicSamplesBrowser/appsettings.json b/WinUIClassicSamplesBrowser/appsettings.json new file mode 100644 index 00000000..a3badf2d --- /dev/null +++ b/WinUIClassicSamplesBrowser/appsettings.json @@ -0,0 +1,6 @@ +{ + "LocalSettingsOptions": { + "ApplicationDataFolder": "WinUIClassicSamplesBrowser/ApplicationData", + "LocalSettingsFile": "LocalSettings.json" + } +}