gitextract_0a_1gga6/ ├── .azure-pipelines/ │ └── release.yml ├── .code-coverage/ │ └── coverlet.settings.xml ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── auth-issue.yml │ │ └── feature-req.yml │ ├── dependabot.yml │ └── workflows/ │ ├── codeql-analysis.yml │ ├── continuous-integration.yml │ ├── lint-docs.yml │ ├── maintainer-absence.yml │ └── validate-install-from-source.yml ├── .gitignore ├── .lycheeignore ├── .markdownlint.jsonc ├── .vscode/ │ ├── launch.json │ └── tasks.json ├── CODEOWNERS ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── Directory.Build.props ├── Directory.Build.targets ├── Git-Credential-Manager.sln ├── Git-Credential-Manager.sln.DotSettings ├── LICENSE ├── NOTICE ├── README.md ├── SECURITY.md ├── VERSION ├── assets/ │ └── gcm.xaml ├── build/ │ ├── GCM.MSBuild.csproj │ ├── GCM.tasks │ ├── GenerateWindowsAppManifest.cs │ └── GetVersion.cs ├── docs/ │ ├── README.md │ ├── architecture.md │ ├── autodetect.md │ ├── azrepos-misp.md │ ├── azrepos-users-and-tokens.md │ ├── bitbucket-authentication.md │ ├── bitbucket-development.md │ ├── configuration.md │ ├── credstores.md │ ├── development.md │ ├── enterprise-config.md │ ├── environment.md │ ├── faq.md │ ├── generic-oauth.md │ ├── github-apideprecation.md │ ├── gitlab.md │ ├── hostprovider.md │ ├── install.md │ ├── linux-fromsrc-uninstall.md │ ├── linux-validate-gpg.md │ ├── migration.md │ ├── multiple-users.md │ ├── netconfig.md │ ├── ntlm-kerberos.md │ ├── rename.md │ ├── usage.md │ ├── windows-broker.md │ └── wsl.md ├── global.json ├── nuget.config └── src/ ├── linux/ │ ├── Directory.Build.props │ └── Packaging.Linux/ │ ├── Packaging.Linux.csproj │ ├── build.sh │ ├── install-from-source.sh │ ├── layout.sh │ └── pack.sh ├── osx/ │ ├── .gitignore │ ├── Directory.Build.props │ └── Installer.Mac/ │ ├── Installer.Mac.csproj │ ├── build.sh │ ├── codesign.sh │ ├── dist.sh │ ├── distribution.arm64.xml │ ├── distribution.x64.xml │ ├── entitlements.xml │ ├── layout.sh │ ├── notarize.sh │ ├── pack.sh │ ├── resources/ │ │ └── en.lproj/ │ │ ├── conclusion.html │ │ └── welcome.html │ ├── scripts/ │ │ └── postinstall │ └── uninstall.sh ├── shared/ │ ├── Atlassian.Bitbucket/ │ │ ├── Atlassian.Bitbucket.csproj │ │ ├── AuthenticationMethod.cs │ │ ├── BitbucketAuthentication.cs │ │ ├── BitbucketConstants.cs │ │ ├── BitbucketHelper.cs │ │ ├── BitbucketHostProvider.cs │ │ ├── BitbucketOAuth2Client.cs │ │ ├── BitbucketResources.Designer.cs │ │ ├── BitbucketResources.resx │ │ ├── BitbucketRestApiRegistry.cs │ │ ├── BitbucketTokenEndpointResponseJson.cs │ │ ├── Cloud/ │ │ │ ├── BitbucketOAuth2Client.cs │ │ │ ├── BitbucketRestApi.cs │ │ │ ├── CloudConstants.cs │ │ │ └── UserInfo.cs │ │ ├── DataCenter/ │ │ │ ├── BitbucketOAuth2Client.cs │ │ │ ├── BitbucketRestApi.cs │ │ │ ├── DataCenterConstants.cs │ │ │ ├── LoginOption.cs │ │ │ ├── LoginOptions.cs │ │ │ └── UserInfo.cs │ │ ├── IBitbucketRestApi.cs │ │ ├── IRegistry.cs │ │ ├── IUserInfo.cs │ │ ├── InternalsVisibleTo.cs │ │ ├── OAuth2ClientRegistry.cs │ │ ├── RestApiResult.cs │ │ └── UI/ │ │ ├── Commands/ │ │ │ └── CredentialsCommand.cs │ │ ├── ViewModels/ │ │ │ └── CredentialsViewModel.cs │ │ └── Views/ │ │ ├── CredentialsView.axaml │ │ └── CredentialsView.axaml.cs │ ├── Atlassian.Bitbucket.Tests/ │ │ ├── Atlassian.Bitbucket.Tests.csproj │ │ ├── BitbucketAuthenticationTest.cs │ │ ├── BitbucketHelperTest.cs │ │ ├── BitbucketHostProviderTest.cs │ │ ├── BitbucketRestApiRegistryTest.cs │ │ ├── BitbucketTokenEndpointResponseJsonTest.cs │ │ ├── Cloud/ │ │ │ ├── BitbucketOAuth2ClientTest.cs │ │ │ ├── BitbucketRestApiTest.cs │ │ │ └── UserInfoTest.cs │ │ ├── DataCenter/ │ │ │ ├── BitbucketOAuth2ClientTest.cs │ │ │ ├── BitbucketRestApiTest.cs │ │ │ ├── LoginOptionsTest.cs │ │ │ └── UserInfoTest.cs │ │ └── OAuth2ClientRegistryTest.cs │ ├── Core/ │ │ ├── Application.cs │ │ ├── ApplicationBase.cs │ │ ├── AssemblyUtils.cs │ │ ├── Authentication/ │ │ │ ├── AuthenticationBase.cs │ │ │ ├── BasicAuthentication.cs │ │ │ ├── MicrosoftAuthentication.cs │ │ │ ├── OAuth/ │ │ │ │ ├── HttpListenerExtensions.cs │ │ │ │ ├── IOAuth2WebBrowser.cs │ │ │ │ ├── Json/ │ │ │ │ │ ├── DeviceAuthorizationEndpointResponseJson.cs │ │ │ │ │ ├── ErrorResponseJson.cs │ │ │ │ │ └── TokenEndpointResponseJson.cs │ │ │ │ ├── OAuth2AuthorizationCodeResult.cs │ │ │ │ ├── OAuth2Client.cs │ │ │ │ ├── OAuth2Constants.cs │ │ │ │ ├── OAuth2CryptographicGenerator.cs │ │ │ │ ├── OAuth2DeviceCodeResult.cs │ │ │ │ ├── OAuth2Exception.cs │ │ │ │ ├── OAuth2ServerEndpoints.cs │ │ │ │ ├── OAuth2SystemWebBrowser.cs │ │ │ │ └── OAuth2TokenResult.cs │ │ │ ├── OAuthAuthentication.cs │ │ │ └── WindowsIntegratedAuthentication.cs │ │ ├── Base64UrlConvert.cs │ │ ├── ChildProcess.cs │ │ ├── CommandContext.cs │ │ ├── CommandExtensions.cs │ │ ├── Commands/ │ │ │ ├── ConfigurationCommands.cs │ │ │ ├── DiagnoseCommand.cs │ │ │ ├── EraseCommand.cs │ │ │ ├── GetCommand.cs │ │ │ ├── GitCommandBase.cs │ │ │ ├── ProviderCommand.cs │ │ │ └── StoreCommand.cs │ │ ├── ConfigurationService.cs │ │ ├── Constants.cs │ │ ├── ConvertUtils.cs │ │ ├── Core.csproj │ │ ├── Credential.cs │ │ ├── CredentialCacheStore.cs │ │ ├── CredentialStore.cs │ │ ├── CurlCookie.cs │ │ ├── Diagnostics/ │ │ │ ├── CredentialStoreDiagnostic.cs │ │ │ ├── Diagnostic.cs │ │ │ ├── EnvironmentDiagnostic.cs │ │ │ ├── FileSystemDiagnostic.cs │ │ │ ├── GitDiagnostic.cs │ │ │ ├── IDiagnosticProvider.cs │ │ │ ├── MicrosoftAuthenticationDiagnostic.cs │ │ │ └── NetworkingDiagnostic.cs │ │ ├── DictionaryExtensions.cs │ │ ├── DisposableObject.cs │ │ ├── EncodingEx.cs │ │ ├── EnsureArgument.cs │ │ ├── EnumerableExtensions.cs │ │ ├── EnvironmentBase.cs │ │ ├── FileCredential.cs │ │ ├── FileSystem.cs │ │ ├── GenericHostProvider.cs │ │ ├── GenericOAuthConfig.cs │ │ ├── Git.cs │ │ ├── GitConfiguration.cs │ │ ├── GitConfigurationEntry.cs │ │ ├── GitConfigurationKeyComparer.cs │ │ ├── GitStreamReader.cs │ │ ├── GitVersion.cs │ │ ├── Gpg.cs │ │ ├── HostProvider.cs │ │ ├── HostProviderRegistry.cs │ │ ├── HttpClientExtensions.cs │ │ ├── HttpClientFactory.cs │ │ ├── HttpContentExtensions.cs │ │ ├── HttpRequestExtensions.cs │ │ ├── ICredentialStore.cs │ │ ├── ISessionManager.cs │ │ ├── ISystemPrompts.cs │ │ ├── ITerminal.cs │ │ ├── ITrace2Writer.cs │ │ ├── IniFile.cs │ │ ├── InputArguments.cs │ │ ├── InternalsVisibleTo.cs │ │ ├── Interop/ │ │ │ ├── InteropException.cs │ │ │ ├── InteropUtils.cs │ │ │ ├── Linux/ │ │ │ │ ├── LinuxConfigParser.cs │ │ │ │ ├── LinuxFileSystem.cs │ │ │ │ ├── LinuxSessionManager.cs │ │ │ │ ├── LinuxSettings.cs │ │ │ │ ├── LinuxTerminal.cs │ │ │ │ ├── Native/ │ │ │ │ │ ├── Glib.cs │ │ │ │ │ ├── Gobject.cs │ │ │ │ │ ├── Libsecret.cs │ │ │ │ │ └── termios_Linux.cs │ │ │ │ ├── SecretServiceCollection.cs │ │ │ │ └── SecretServiceCredential.cs │ │ │ ├── MacOS/ │ │ │ │ ├── MacOSEnvironment.cs │ │ │ │ ├── MacOSFileSystem.cs │ │ │ │ ├── MacOSKeychain.cs │ │ │ │ ├── MacOSKeychainCredential.cs │ │ │ │ ├── MacOSPreferences.cs │ │ │ │ ├── MacOSSessionManager.cs │ │ │ │ ├── MacOSSettings.cs │ │ │ │ ├── MacOSTerminal.cs │ │ │ │ └── Native/ │ │ │ │ ├── CoreFoundation.cs │ │ │ │ ├── LibC.cs │ │ │ │ ├── LibSystem.cs │ │ │ │ ├── SecurityFramework.cs │ │ │ │ └── termios_MacOS.cs │ │ │ ├── Posix/ │ │ │ │ ├── GpgPassCredentialStore.cs │ │ │ │ ├── Native/ │ │ │ │ │ ├── Fcntl.cs │ │ │ │ │ ├── Signal.cs │ │ │ │ │ ├── Stat.cs │ │ │ │ │ ├── Stdio.cs │ │ │ │ │ ├── Stdlib.cs │ │ │ │ │ ├── Termios.cs │ │ │ │ │ └── Unistd.cs │ │ │ │ ├── PosixEnvironment.cs │ │ │ │ ├── PosixFileDescriptor.cs │ │ │ │ ├── PosixFileSystem.cs │ │ │ │ ├── PosixSessionManager.cs │ │ │ │ └── PosixTerminal.cs │ │ │ ├── U8StringConverter.cs │ │ │ ├── U8StringMarshaler.cs │ │ │ └── Windows/ │ │ │ ├── DpapiCredentialStore.cs │ │ │ ├── Native/ │ │ │ │ ├── Advapi32.cs │ │ │ │ ├── CredUi.cs │ │ │ │ ├── Kernel32.cs │ │ │ │ ├── Ole32.cs │ │ │ │ ├── Shell32.cs │ │ │ │ ├── User32.cs │ │ │ │ └── Win32Error.cs │ │ │ ├── WindowsCredential.cs │ │ │ ├── WindowsCredentialManager.cs │ │ │ ├── WindowsEnvironment.cs │ │ │ ├── WindowsFileSystem.cs │ │ │ ├── WindowsProcessManager.cs │ │ │ ├── WindowsSessionManager.cs │ │ │ ├── WindowsSettings.cs │ │ │ ├── WindowsSystemPrompts.cs │ │ │ └── WindowsTerminal.cs │ │ ├── NameValueCollectionExtensions.cs │ │ ├── NullCredentialStore.cs │ │ ├── PlaintextCredentialStore.cs │ │ ├── PlatformUtils.cs │ │ ├── ProcessManager.cs │ │ ├── Settings.cs │ │ ├── StandardStreams.cs │ │ ├── StreamExtensions.cs │ │ ├── StringExtensions.cs │ │ ├── TerminalMenu.cs │ │ ├── Trace.cs │ │ ├── Trace2.cs │ │ ├── Trace2CollectorWriter.cs │ │ ├── Trace2Exception.cs │ │ ├── Trace2FileWriter.cs │ │ ├── Trace2Message.cs │ │ ├── Trace2StreamWriter.cs │ │ ├── TraceUtils.cs │ │ ├── UI/ │ │ │ ├── Assets/ │ │ │ │ ├── Base.axaml │ │ │ │ ├── ButtonHyperlink.axaml │ │ │ │ ├── Controls.axaml │ │ │ │ └── Images.axaml │ │ │ ├── AvaloniaApp.axaml │ │ │ ├── AvaloniaApp.axaml.cs │ │ │ ├── AvaloniaUi.cs │ │ │ ├── Commands/ │ │ │ │ ├── CredentialsCommand.cs │ │ │ │ ├── DefaultAccountCommand.cs │ │ │ │ ├── DeviceCodeCommand.cs │ │ │ │ └── OAuthCommand.cs │ │ │ ├── Controls/ │ │ │ │ ├── AboutWindow.axaml │ │ │ │ ├── AboutWindow.axaml.cs │ │ │ │ ├── DialogWindow.axaml │ │ │ │ ├── DialogWindow.axaml.cs │ │ │ │ ├── IFocusable.cs │ │ │ │ ├── ProgressWindow.axaml │ │ │ │ └── ProgressWindow.axaml.cs │ │ │ ├── Converters/ │ │ │ │ ├── BoolConvertersEx.cs │ │ │ │ └── WindowClientAreaConverters.cs │ │ │ ├── Dispatcher.cs │ │ │ ├── HelperApplication.cs │ │ │ ├── HelperCommand.cs │ │ │ ├── RelayCommand.cs │ │ │ ├── ViewModels/ │ │ │ │ ├── CredentialsViewModel.cs │ │ │ │ ├── DefaultAccountViewModel.cs │ │ │ │ ├── DeviceCodeViewModel.cs │ │ │ │ ├── EnableNtlmViewModel.cs │ │ │ │ ├── OAuthViewModel.cs │ │ │ │ ├── ViewModel.cs │ │ │ │ └── WindowViewModel.cs │ │ │ └── Views/ │ │ │ ├── CredentialsView.axaml │ │ │ ├── CredentialsView.axaml.cs │ │ │ ├── DefaultAccountView.axaml │ │ │ ├── DefaultAccountView.axaml.cs │ │ │ ├── DeviceCodeView.axaml │ │ │ ├── DeviceCodeView.axaml.cs │ │ │ ├── EnableNtlmView.axaml │ │ │ ├── EnableNtlmView.cs │ │ │ ├── OAuthView.axaml │ │ │ └── OAuthView.axaml.cs │ │ ├── UriExtensions.cs │ │ ├── WslUtils.cs │ │ └── X509Utils.cs │ ├── Core.Tests/ │ │ ├── ApplicationTests.cs │ │ ├── Authentication/ │ │ │ ├── AuthenticationBaseTests.cs │ │ │ ├── BasicAuthenticationTests.cs │ │ │ ├── MicrosoftAuthenticationTests.cs │ │ │ ├── OAuth2ClientTests.cs │ │ │ ├── OAuth2CryptographicCodeGeneratorTests.cs │ │ │ ├── OAuth2SystemWebBrowserTests.cs │ │ │ └── WindowsIntegratedAuthenticationTests.cs │ │ ├── Base64UrlConvertTests.cs │ │ ├── Commands/ │ │ │ ├── ConfigureCommandTests.cs │ │ │ ├── DiagnoseCommandTests.cs │ │ │ ├── EraseCommandTests.cs │ │ │ ├── GetCommandTests.cs │ │ │ ├── GitCommandBaseTests.cs │ │ │ ├── StoreCommandTests.cs │ │ │ └── UnconfigureCommandTests.cs │ │ ├── ConfigurationServiceTests.cs │ │ ├── Core.Tests.csproj │ │ ├── CurlCookieTests.cs │ │ ├── EnsureArgumentTests.cs │ │ ├── EnumerableExtensionsTests.cs │ │ ├── EnvironmentTests.cs │ │ ├── GenericHostProviderTests.cs │ │ ├── GenericOAuthConfigTests.cs │ │ ├── GitConfigurationKeyComparerTests.cs │ │ ├── GitConfigurationTests.cs │ │ ├── GitStreamReaderTests.cs │ │ ├── GitTests.cs │ │ ├── GitVersionTests.cs │ │ ├── HostProviderRegistryTests.cs │ │ ├── HostProviderTests.cs │ │ ├── HttpClientExtensionsTests.cs │ │ ├── HttpClientFactoryTests.cs │ │ ├── HttpRequestExtensionsTests.cs │ │ ├── IniFileTests.cs │ │ ├── InputArgumentsTests.cs │ │ ├── Interop/ │ │ │ ├── Linux/ │ │ │ │ ├── LinuxConfigParserTests.cs │ │ │ │ ├── LinuxFileSystemTests.cs │ │ │ │ ├── LinuxSettingsTests.cs │ │ │ │ └── SecretServiceCollectionTests.cs │ │ │ ├── MacOS/ │ │ │ │ ├── MacOSFileSystemTests.cs │ │ │ │ ├── MacOSKeychainTests.cs │ │ │ │ └── MacOSPreferencesTests.cs │ │ │ ├── Posix/ │ │ │ │ ├── GnuPassCredentialStoreTests.cs │ │ │ │ └── PosixFileSystemTests.cs │ │ │ ├── U8StringConverterTests.cs │ │ │ └── Windows/ │ │ │ ├── DpapiCredentialStoreTests.cs │ │ │ ├── WindowsCredentialManagerTests.cs │ │ │ ├── WindowsFileSystemTests.cs │ │ │ └── WindowsSystemPromptsTests.cs │ │ ├── PlaintextCredentialStoreTests.cs │ │ ├── ProcessManagerTests.cs │ │ ├── SettingsTests.cs │ │ ├── StreamExtensionsTests.cs │ │ ├── StringExtensionsTests.cs │ │ ├── TestProcessManager.cs │ │ ├── TokenEndpointResponseJsonTest.cs │ │ ├── Trace2MessageTests.cs │ │ ├── Trace2Tests.cs │ │ ├── TraceTests.cs │ │ ├── TraceUtilsTests.cs │ │ ├── UriExtensionsTests.cs │ │ └── WslUtilsTests.cs │ ├── Directory.Build.props │ ├── DotnetTool/ │ │ ├── DotnetTool.csproj │ │ ├── DotnetToolSettings.xml │ │ ├── dotnet-tool.nuspec │ │ ├── layout.ps1 │ │ └── pack.ps1 │ ├── Git-Credential-Manager/ │ │ ├── Git-Credential-Manager.csproj │ │ ├── NOTICE │ │ └── Program.cs │ ├── GitHub/ │ │ ├── AuthenticationResult.cs │ │ ├── Diagnostics/ │ │ │ └── GitHubApiDiagnostic.cs │ │ ├── GitHub.csproj │ │ ├── GitHubAuthChallenge.cs │ │ ├── GitHubAuthentication.cs │ │ ├── GitHubConstants.cs │ │ ├── GitHubHostProvider.Commands.cs │ │ ├── GitHubHostProvider.cs │ │ ├── GitHubOAuth2Client.cs │ │ ├── GitHubResources.Designer.cs │ │ ├── GitHubResources.resx │ │ ├── GitHubRestApi.cs │ │ ├── InternalsVisibleTo.cs │ │ └── UI/ │ │ ├── Commands/ │ │ │ ├── CredentialsCommand.cs │ │ │ ├── DeviceCommand.cs │ │ │ ├── SelectAccountCommand.cs │ │ │ └── TwoFactorCommand.cs │ │ ├── Controls/ │ │ │ ├── HorizontalShadowDivider.axaml │ │ │ ├── HorizontalShadowDivider.axaml.cs │ │ │ ├── SixDigitInput.axaml │ │ │ └── SixDigitInput.axaml.cs │ │ ├── ViewModels/ │ │ │ ├── CredentialsViewModel.cs │ │ │ ├── DeviceCodeViewModel.cs │ │ │ ├── SelectAccountViewModel.cs │ │ │ └── TwoFactorViewModel.cs │ │ └── Views/ │ │ ├── CredentialsView.axaml │ │ ├── CredentialsView.axaml.cs │ │ ├── DeviceCodeView.axaml │ │ ├── DeviceCodeView.axaml.cs │ │ ├── SelectAccountView.axaml │ │ ├── SelectAccountView.axaml.cs │ │ ├── TwoFactorView.axaml │ │ └── TwoFactorView.axaml.cs │ ├── GitHub.Tests/ │ │ ├── GitHub.Tests.csproj │ │ ├── GitHubAuthChallengeTests.cs │ │ ├── GitHubAuthenticationTests.cs │ │ ├── GitHubHostProviderTests.cs │ │ └── GitHubRestApiTests.cs │ ├── GitHub.UI.Avalonia/ │ │ └── Commands/ │ │ └── SelectAccountCommandImpl.cs │ ├── GitLab/ │ │ ├── GitLab.csproj │ │ ├── GitLabAuthentication.cs │ │ ├── GitLabConstants.cs │ │ ├── GitLabHostProvider.cs │ │ ├── GitLabOAuth2Client.cs │ │ ├── InternalsVisibleTo.cs │ │ └── UI/ │ │ ├── Assets/ │ │ │ └── Images.axaml │ │ ├── Commands/ │ │ │ └── CredentialsCommand.cs │ │ ├── ViewModels/ │ │ │ └── CredentialsViewModel.cs │ │ └── Views/ │ │ ├── CredentialsView.axaml │ │ └── CredentialsView.axaml.cs │ ├── GitLab.Tests/ │ │ ├── GitLab.Tests.csproj │ │ ├── GitLabAuthenticationTests.cs │ │ └── GitLabHostProviderTests.cs │ ├── Microsoft.AzureRepos/ │ │ ├── AzureDevOpsAuthorityCache.cs │ │ ├── AzureDevOpsConstants.cs │ │ ├── AzureDevOpsRestApi.cs │ │ ├── AzureReposBindingManager.cs │ │ ├── AzureReposHostProvider.cs │ │ ├── InternalsVisibleTo.cs │ │ ├── Microsoft.AzureRepos.csproj │ │ └── UriHelpers.cs │ ├── Microsoft.AzureRepos.Tests/ │ │ ├── AzureDevOpsApiTests.cs │ │ ├── AzureReposAuthorityCacheTests.cs │ │ ├── AzureReposBindingManagerTests.cs │ │ ├── AzureReposHostProviderTests.cs │ │ ├── Microsoft.AzureRepos.Tests.csproj │ │ └── UriHelpersTests.cs │ └── TestInfrastructure/ │ ├── AssertEx.cs │ ├── GitTestUtilities.cs │ ├── Objects/ │ │ ├── NullTrace.cs │ │ ├── TestCommandContext.cs │ │ ├── TestCredentialStore.cs │ │ ├── TestEnvironment.cs │ │ ├── TestFileSystem.cs │ │ ├── TestGit.cs │ │ ├── TestGitConfiguration.cs │ │ ├── TestGpg.cs │ │ ├── TestHostProvider.cs │ │ ├── TestHostProviderRegistry.cs │ │ ├── TestHttpClientFactory.cs │ │ ├── TestHttpMessageHandler.cs │ │ ├── TestOAuth2Server.cs │ │ ├── TestOAuth2WebBrowser.cs │ │ ├── TestSessionManager.cs │ │ ├── TestSettings.cs │ │ ├── TestStandardStreams.cs │ │ └── TestTerminal.cs │ ├── PlatformAttributes.cs │ ├── RestTestUtilities.cs │ ├── TestInfrastructure.csproj │ └── TestUtils.cs └── windows/ ├── Directory.Build.props └── Installer.Windows/ ├── Installer.Windows.csproj ├── Setup.iss └── layout.ps1